add option to hide apps (big menu display)

This commit is contained in:
Simon Vieille 2020-11-03 12:16:36 +01:00
parent 10e90df4b8
commit 02825cee67
Signed by: deblan
GPG Key ID: 03383D15A1D31745
4 changed files with 41 additions and 2 deletions

View File

@ -150,6 +150,7 @@ class JsController extends Controller
'loader-enabled' => $this->config->getAppValueBool('loader-enabled', '1'), 'loader-enabled' => $this->config->getAppValueBool('loader-enabled', '1'),
'always-displayed' => $this->config->getAppValueBool('always-displayed', '0'), 'always-displayed' => $this->config->getAppValueBool('always-displayed', '0'),
'big-menu' => $this->config->getAppValueBool('big-menu', '0'), 'big-menu' => $this->config->getAppValueBool('big-menu', '0'),
'big-menu-hidden-apps' => $this->config->getAppValueArray('big-menu-hidden-apps', '[]'),
'avatar' => $avatar, 'avatar' => $avatar,
'top-menu-apps' => $topMenuApps, 'top-menu-apps' => $topMenuApps,
'target-blank-apps' => $targetBlankApps, 'target-blank-apps' => $targetBlankApps,

View File

@ -97,6 +97,7 @@ class NavController extends Controller
$apps = $this->appRepository->getVisibleApps(); $apps = $this->appRepository->getVisibleApps();
$currentLanguage = substr($this->l10nFactory->findLanguage(), 0, 2); $currentLanguage = substr($this->l10nFactory->findLanguage(), 0, 2);
$externalSitesInTopMenu = $this->config->getAppValueBool('external-sites-in-top-menu', '0'); $externalSitesInTopMenu = $this->config->getAppValueBool('external-sites-in-top-menu', '0');
$hiddenApps = $this->config->getAppValueArray('big-menu-hidden-apps', '[]');
$user = OC::$server[IUserSession::class]->getUser(); $user = OC::$server[IUserSession::class]->getUser();
$isForced = $this->config->getAppValueBool('force', '0'); $isForced = $this->config->getAppValueBool('force', '0');
$appsCategories = []; $appsCategories = [];
@ -142,6 +143,10 @@ class NavController extends Controller
continue; continue;
} }
if (in_array($app['id'], $hiddenApps)) {
continue;
}
$categories = (array) $app['category']; $categories = (array) $app['category'];
$appsCategories[$app['id']] = []; $appsCategories[$app['id']] = [];

View File

@ -77,6 +77,7 @@ class Admin implements ISettings
'opener' => $this->config->getAppValue('opener', 'side-menu-opener'), 'opener' => $this->config->getAppValue('opener', 'side-menu-opener'),
'always-displayed' => $this->config->getAppValue('always-displayed', '0'), 'always-displayed' => $this->config->getAppValue('always-displayed', '0'),
'big-menu' => $this->config->getAppValue('big-menu', '0'), 'big-menu' => $this->config->getAppValue('big-menu', '0'),
'big-menu-hidden-apps' => $this->config->getAppValueArray('big-menu-hidden-apps', '[]'),
'display-logo' => $this->config->getAppValue('display-logo', '1'), 'display-logo' => $this->config->getAppValue('display-logo', '1'),
'use-avatar' => $this->config->getAppValue('use-avatar', '0'), 'use-avatar' => $this->config->getAppValue('use-avatar', '0'),
'opener-position' => $this->config->getAppValue('opener-position', 'before'), 'opener-position' => $this->config->getAppValue('opener-position', 'before'),

View File

@ -288,8 +288,6 @@ $choicesSizes = [
src="<?php print_unescaped(image_path('side_menu', 'admin/layout-big-menu.svg')); ?>" alt="<?php p($l->t('Big menu')); ?>"> src="<?php print_unescaped(image_path('side_menu', 'admin/layout-big-menu.svg')); ?>" alt="<?php p($l->t('Big menu')); ?>">
</p> </p>
<br>
<div> <div>
<label for="side-menu-opener"> <label for="side-menu-opener">
<?php p($l->t('Always displayed')); ?> <?php p($l->t('Always displayed')); ?>
@ -361,6 +359,40 @@ $choicesSizes = [
</select> </select>
</div> </div>
<div>
<label for="side-menu-top-menu-apps">
<?php p($l->t('Apps that not must show in the menu')); ?>
</label>
</div>
<p><em><?php echo $l->t('This feature is only compatible with the <code>big menu</code> display.'); ?></em></p>
<p>
<a class="side-menu-toggler" data-target="#big-menu-hidden-apps" href="#_">
🖱️ <?php p($l->t('Show and hide the list of applications')); ?>
</a>
</p>
<div class="side-menu-setting" data-name="big-menu-hidden-apps" id="big-menu-hidden-apps" data-checkbox style="display: none">
<?php foreach ($_['apps'] as $app): ?>
<div>
<input
type="checkbox"
name="big-menu-hidden-apps[]"
value="<?php echo $app['id'] ?>"
id="big-menu-hidden-app-<?php echo $app['id'] ?>"
<?php if (in_array($app['id'], $_['big-menu-hidden-apps'])): ?>checked<?php endif; ?>
/>
<label for="big-menu-hidden-app-<?php echo $app['id'] ?>">
<?php echo p($l->t($app['name'])); ?>
</label>
</div>
<?php endforeach; ?>
</div>
<br>
<div> <div>
<label for="side-menu-show-settings"> <label for="side-menu-show-settings">
<?php p($l->t('Show the link to settings')); ?> <?php p($l->t('Show the link to settings')); ?>