diff --git a/data/web/inc/functions.customize.inc.php b/data/web/inc/functions.customize.inc.php index ff739693..01460876 100644 --- a/data/web/inc/functions.customize.inc.php +++ b/data/web/inc/functions.customize.inc.php @@ -104,12 +104,14 @@ function customize($_action, $_item, $_data = null) { $apps = (array)$_data['app']; $links = (array)$_data['href']; $user_links = (array)$_data['user_href']; + $hide = (array)$_data['hide']; $out = array(); - if (count($apps) == count($links) && count($apps) == count($user_links)) { + if (count($apps) == count($links) && count($apps) == count($user_links) && count($apps) == count($hide)) { for ($i = 0; $i < count($apps); $i++) { $out[] = array($apps[$i] => array( 'link' => $links[$i], - 'user_link' => $user_links[$i] + 'user_link' => $user_links[$i], + 'hide' => ($hide[$i] === '0' || $hide[$i] === 0) ? false : true )); } try { diff --git a/data/web/inc/header.inc.php b/data/web/inc/header.inc.php index 73548620..5918cabe 100644 --- a/data/web/inc/header.inc.php +++ b/data/web/inc/header.inc.php @@ -31,11 +31,29 @@ if(!file_exists($CSSPath)) { } $mailcow_apps_processed = $MAILCOW_APPS; +$app_links = customize('get', 'app_links'); +$app_links_processed = $app_links; +$hide_mailcow_apps = true; for ($i = 0; $i < count($mailcow_apps_processed); $i++) { + if ($hide_mailcow_apps && !$mailcow_apps_processed[$i]['hide']){ + $hide_mailcow_apps = false; + } if (!empty($_SESSION['mailcow_cc_username'])){ $mailcow_apps_processed[$i]['user_link'] = str_replace('%u', $_SESSION['mailcow_cc_username'], $mailcow_apps_processed[$i]['user_link']); } } +if ($app_links_processed){ + for ($i = 0; $i < count($app_links_processed); $i++) { + $key = array_key_first($app_links_processed[$i]); + if ($hide_mailcow_apps && !$app_links_processed[$i][$key]['hide']){ + $hide_mailcow_apps = false; + } + if (!empty($_SESSION['mailcow_cc_username'])){ + $app_links_processed[$i][$key]['user_link'] = str_replace('%u', $_SESSION['mailcow_cc_username'], $app_links_processed[$i][$key]['user_link']); + } + } +} + $globalVariables = [ @@ -52,9 +70,11 @@ $globalVariables = [ 'lang' => $lang, 'skip_sogo' => (getenv('SKIP_SOGO') == 'y'), 'allow_admin_email_login' => (getenv('ALLOW_ADMIN_EMAIL_LOGIN') == 'n'), - 'mailcow_apps_processed' => $mailcow_apps_processed, + 'hide_mailcow_apps' => $hide_mailcow_apps, 'mailcow_apps' => $MAILCOW_APPS, - 'app_links' => customize('get', 'app_links'), + 'mailcow_apps_processed' => $mailcow_apps_processed, + 'app_links' => $app_links, + 'app_links_processed' => $app_links_processed, 'is_root_uri' => (parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH) == '/'), 'uri' => $_SERVER['REQUEST_URI'], 'last_login' => last_login('get', $_SESSION['mailcow_cc_username'], 7, 0)['ui']['time'] diff --git a/data/web/inc/vars.inc.php b/data/web/inc/vars.inc.php index 5e6d72e7..a77a3233 100644 --- a/data/web/inc/vars.inc.php +++ b/data/web/inc/vars.inc.php @@ -119,7 +119,9 @@ $SHOW_DKIM_PRIV_KEYS = false; $MAILCOW_APPS = array( array( 'name' => 'Webmail', - 'link' => '/SOGo/', + 'link' => '/SOGo/so/', + 'user_link' => '/sogo-auth.php?login=%u', + 'hide' => true ) ); diff --git a/data/web/js/site/admin.js b/data/web/js/site/admin.js index 192a6f15..160ad7ee 100644 --- a/data/web/js/site/admin.js +++ b/data/web/js/site/admin.js @@ -706,20 +706,34 @@ jQuery(function($){ } }) // App links + // setup eventlistener + setAppHideEvent(); + function setAppHideEvent(){ + $('.app_hide').off('change'); + $('.app_hide').on('change', function (e) { + var value = $(this).is(':checked') ? '1' : '0'; + console.log(value) + $(this).parent().children(':first-child').val(value); + }) + } function add_table_row(table_id, type) { var row = $(''); if (type == "app_link") { cols = ''; cols += ''; cols += ''; + cols += '
'; cols += '' + lang.remove_row + ''; } else if (type == "f2b_regex") { cols = ''; cols += ''; cols += '' + lang.remove_row + ''; } + row.append(cols); table_id.append(row); + if (type == "app_link") + setAppHideEvent(); } $('#app_link_table').on('click', 'tr a', function (e) { e.preventDefault(); diff --git a/data/web/templates/admin/tab-config-customize.twig b/data/web/templates/admin/tab-config-customize.twig index 7a95be30..e2f4b0f6 100644 --- a/data/web/templates/admin/tab-config-customize.twig +++ b/data/web/templates/admin/tab-config-customize.twig @@ -55,6 +55,7 @@ {{ lang.admin.app_name }} {{ lang.admin.link }} {{ lang.admin.user_link }} + {{ lang.admin.app_hide }}   {% for row in app_links %} @@ -63,6 +64,12 @@ + +
+ + +
+ {{ lang.admin.remove_row }} {% endfor %} @@ -72,6 +79,11 @@ + +
+ +
+ {{ lang.admin.remove_row }} {% endfor %} diff --git a/data/web/templates/index.twig b/data/web/templates/index.twig index 8b8a73bc..e66b3335 100644 --- a/data/web/templates/index.twig +++ b/data/web/templates/index.twig @@ -67,21 +67,25 @@

{{ lang.login.delayed|format(login_delay) }}

{% endif %}
- {% if not oauth2_request and (mailcow_apps or app_links) %} + {% if not oauth2_request and (mailcow_apps or app_links) and not hide_mailcow_apps %} {{ ui_texts.apps_name|raw }}
{% for app in mailcow_apps %} - {% if not skip_sogo or not is_uri('SOGo', app.link) %} -
- {{ app.name }} -
+ {% if not app.hide %} + {% if not skip_sogo or not is_uri('SOGo', app.link) %} +
+ {{ app.name }} +
+ {% endif %} {% endif %} {% endfor %} {% for row in app_links %} {% for key, val in row %} + {% if not val.hide %}
{{ key }}
+ {% endif %} {% endfor %} {% endfor %}