diff --git a/css/sideMenu.css b/css/sideMenu.css index fdb1790..78b62ac 100644 --- a/css/sideMenu.css +++ b/css/sideMenu.css @@ -211,6 +211,10 @@ display: none; } +.side-menu-always-displayed #side-menu .side-menu-header { + height: 49px; +} + .side-menu-always-displayed #side-menu.open, .side-menu-always-displayed #side-menu.open .side-menu-apps-list, .side-menu-always-displayed #side-menu.open .side-menu-header, diff --git a/lib/Controller/JsController.php b/lib/Controller/JsController.php index d7dce2c..ecc193f 100644 --- a/lib/Controller/JsController.php +++ b/lib/Controller/JsController.php @@ -54,6 +54,7 @@ class JsController extends Controller { $user = OC::$server[IUserSession::class]->getUser(); $topMenuApps = (array) json_decode($this->config->getAppValue('side_menu', 'top-menu-apps', '[]'), true); + $targetBlank = (bool) $this->config->getAppValue('side_menu', 'target-blank', '0'); if ($user) { $userTopMenuApps = (array) json_decode($this->config->getUserValue($user->getUid(), 'side_menu', 'top-menu-apps', '[]'), true); @@ -61,8 +62,15 @@ class JsController extends Controller if (!empty($userTopMenuApps)) { $topMenuApps = $userTopMenuApps; } + + $userTargetBlank = (int) $this->config->getUserValue($user->getUid(), 'side_menu', 'target-blank', '-1'); + + if ($userTargetBlank !== -1) { + $targetBlank = (bool) $userTargetBlank; + } } + $parameters = [ 'opener-position' => $this->config->getAppValue('side_menu', 'opener-position', 'before'), 'opener-hover' => (bool) $this->config->getAppValue('side_menu', 'opener-hover', '0'), @@ -73,6 +81,7 @@ class JsController extends Controller 'always-displayed' => (bool) $this->config->getAppValue('side_menu', 'always-displayed', '0'), 'big-menu' => (bool) $this->config->getAppValue('side_menu', 'big-menu', '0'), 'top-menu-apps' => $topMenuApps, + 'target-blank' => $targetBlank, ]; $response = new TemplateResponse('side_menu', 'js/script', $parameters, 'blank'); diff --git a/lib/Controller/PersonalSettingController.php b/lib/Controller/PersonalSettingController.php index 5674175..fa86a91 100644 --- a/lib/Controller/PersonalSettingController.php +++ b/lib/Controller/PersonalSettingController.php @@ -65,6 +65,14 @@ class PersonalSettingController extends Controller } } + if ('target-blank' === $name) { + $doSave = true; + + if (!in_array($value, ['-1', '0', '1'])) { + $value = '-1'; + } + } + if ('top-menu-apps' === $name) { $doSave = true; $data = json_decode($value, true); diff --git a/lib/Settings/Admin.php b/lib/Settings/Admin.php index 3b8dbbd..cc039fd 100644 --- a/lib/Settings/Admin.php +++ b/lib/Settings/Admin.php @@ -75,6 +75,7 @@ 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'), diff --git a/lib/Settings/Personal.php b/lib/Settings/Personal.php index 4a80bfb..a115261 100644 --- a/lib/Settings/Personal.php +++ b/lib/Settings/Personal.php @@ -72,6 +72,7 @@ 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'), 'apps' => $this->appRepository->getVisibleApps(), ]; diff --git a/src/SideMenu.vue b/src/SideMenu.vue index 5fc2f2e..0ac61bf 100644 --- a/src/SideMenu.vue +++ b/src/SideMenu.vue @@ -26,7 +26,7 @@ along with this program. If not, see .