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