From 918c55da3e58b1abc8ecf2bf6a0fbdc2da4d2a52 Mon Sep 17 00:00:00 2001 From: Simon Vieille Date: Sat, 12 Sep 2020 16:10:48 +0200 Subject: [PATCH] add options to select apps that must be opend on new tab (UI) --- css/admin.css | 4 ++ lib/Controller/PersonalSettingController.php | 21 ++++++++-- lib/Settings/Admin.php | 2 +- lib/Settings/Personal.php | 3 +- src/admin.js | 11 ++++++ templates/settings/admin-form.php | 40 ++++++++++++++----- templates/settings/personal-form.php | 41 +++++++++++++++++--- 7 files changed, 102 insertions(+), 20 deletions(-) diff --git a/css/admin.css b/css/admin.css index aa40b92..a118556 100644 --- a/css/admin.css +++ b/css/admin.css @@ -64,3 +64,7 @@ font-size: 11px; font-weight: normal; } + +.side-menu-toggler { + cursor: pointer; +} diff --git a/lib/Controller/PersonalSettingController.php b/lib/Controller/PersonalSettingController.php index fa86a91..b907d69 100644 --- a/lib/Controller/PersonalSettingController.php +++ b/lib/Controller/PersonalSettingController.php @@ -65,11 +65,26 @@ class PersonalSettingController extends Controller } } - if ('target-blank' === $name) { + if ('target-blank-mode' === $name) { $doSave = true; - if (!in_array($value, ['-1', '0', '1'])) { - $value = '-1'; + if (!in_array($value, ['1', '2'])) { + $value = '1'; + } + } + + if ('target-blank-apps' === $name) { + $doSave = true; + $data = json_decode($value, true); + + if (!is_array($data)) { + $doSave = false; + } else { + foreach ($data as $v) { + if (!is_string($v)) { + $doSave = false; + } + } } } diff --git a/lib/Settings/Admin.php b/lib/Settings/Admin.php index cc039fd..9a901e4 100644 --- a/lib/Settings/Admin.php +++ b/lib/Settings/Admin.php @@ -75,7 +75,6 @@ class Admin implements ISettings 'cache' => $this->config->getAppValue('side_menu', 'cache', '0'), 'opener' => $this->config->getAppValue('side_menu', 'opener', 'side-menu-opener'), 'always-displayed' => $this->config->getAppValue('side_menu', 'always-displayed', '0'), - 'target-blank' => $this->config->getAppValue('side_menu', 'target-blank', '0'), 'big-menu' => $this->config->getAppValue('side_menu', 'big-menu', '0'), 'display-logo' => $this->config->getAppValue('side_menu', 'display-logo', '1'), 'opener-position' => $this->config->getAppValue('side_menu', 'opener-position', 'before'), @@ -84,6 +83,7 @@ class Admin implements ISettings 'hide-when-no-apps' => $this->config->getAppValue('side_menu', 'hide-when-no-apps', '0'), 'size-icon' => $this->config->getAppValue('side_menu', 'size-icon', 'normal'), 'size-text' => $this->config->getAppValue('side_menu', 'size-text', 'normal'), + 'target-blank-apps' => (array) json_decode($this->config->getAppValue('side_menu', 'target-blank-apps', '[]'), true), 'top-menu-apps' => (array) json_decode($this->config->getAppValue('side_menu', 'top-menu-apps', '[]'), true), 'apps' => $this->appRepository->getVisibleApps(), ]; diff --git a/lib/Settings/Personal.php b/lib/Settings/Personal.php index a115261..3de5063 100644 --- a/lib/Settings/Personal.php +++ b/lib/Settings/Personal.php @@ -72,7 +72,8 @@ class Personal implements ISettings $parameters = [ 'enabled' => $this->config->getUserValue($user->getUid(), 'side_menu', 'enabled', '1'), 'top-menu-apps' => (array) json_decode($this->config->getUserValue($user->getUid(), 'side_menu', 'top-menu-apps', '[]'), true), - 'target-blank' => $this->config->getUserValue($user->getUid(), 'side_menu', 'target-blank', '-1'), + 'target-blank-mode' => $this->config->getUserValue($user->getUid(), 'side_menu', 'target-blank-mode', '1'), + 'target-blank-apps' => (array) json_decode($this->config->getUserValue($user->getUid(), 'side_menu', 'target-blank-apps', '[]'), true), 'apps' => $this->appRepository->getVisibleApps(), ]; diff --git a/src/admin.js b/src/admin.js index 259e533..5728602 100644 --- a/src/admin.js +++ b/src/admin.js @@ -81,6 +81,10 @@ const saveSettings = (key) => { } } +const elementToggler = (element) => { + jQuery(element).toggle() +} + jQuery(document).ready(() => { elements = jQuery('.side-menu-setting') @@ -118,4 +122,11 @@ jQuery(document).ready(() => { document.documentElement.style.setProperty('--side-menu-' + name, value) }) + + jQuery('.side-menu-toggler').on('click', (event) => { + var target = jQuery(event.target) + var element = target.attr('data-target') + + elementToggler(element) + }) }); diff --git a/templates/settings/admin-form.php b/templates/settings/admin-form.php index dc7a5d1..c25a7e8 100644 --- a/templates/settings/admin-form.php +++ b/templates/settings/admin-form.php @@ -372,16 +372,32 @@ $choicesSizes = [ -
- +

+ + 🖱️ t('Show and hide the list of applications')); ?> + +

+ + +
+
-
+

+ + 🖱️ t('Show and hide the list of applications')); ?> + +

+ +
@@ -92,7 +115,13 @@ $choicesYesNo = [

-