Compare commits

...
Sign in to create a new pull request.

64 commits

Author SHA1 Message Date
d2421f90bf Merge pull request 'release v3.9.1' (#266) from develop into master
Reviewed-on: deblan/side_menu#266
2023-06-29 13:04:13 +02:00
Simon Vieille
0ea5a579a6
release v3.9.1 2023-06-29 12:54:49 +02:00
b9c3543c61 Merge pull request 'fix top position of always opened menu' (#264) from fix/issue262 into develop
Reviewed-on: deblan/side_menu#264
2023-06-29 12:53:02 +02:00
Simon Vieille
49979c858b
fix top position of always opened menu
fix dashboard menu when using always opened menu
2023-06-23 15:37:03 +02:00
b16da36507 Merge pull request 'release v3.9.0' (#263) from develop into master
Reviewed-on: deblan/side_menu#263
2023-06-23 12:33:54 +02:00
Simon Vieille
def1ec4aa7
release v3.8.0 2023-06-23 12:28:02 +02:00
Simon Vieille
40441a61ae
update changelog 2023-06-23 12:27:34 +02:00
ea3820904c Merge pull request 'fix app redirect' (#261) from fix/issue257 into develop
Reviewed-on: deblan/side_menu#261
2023-06-17 15:21:54 +02:00
dad7d8a964 Merge pull request 'add compatibility with nextcloud 27' (#260) from feature/issue256 into develop
Reviewed-on: deblan/side_menu#260
2023-06-17 15:17:24 +02:00
Simon Vieille
32f1869828
add compatibility with nextcloud 27 2023-06-17 13:04:25 +02:00
Simon Vieille
dd9fbcb654
fix default menu redirect (#257) 2023-06-17 12:59:45 +02:00
Simon Vieille
a96e6e3c70
fix default menu redirect (#257) 2023-06-17 12:53:10 +02:00
29f0ead9cc Merge pull request 'release v3.8.0' (#255) from develop into master
Reviewed-on: deblan/side_menu#255
2023-05-25 13:49:08 +02:00
Simon Vieille
a5effe1fd3
release v3.8.0 2023-05-25 13:39:45 +02:00
Simon Vieille
13b6ae23c2
ci: remove check-code-quality 2023-05-25 13:39:21 +02:00
79ddb5fa47 Merge pull request 'add option to show hovered label only on top menu' (#254) from feature/issue253 into develop
Reviewed-on: deblan/side_menu#254
2023-05-23 20:13:11 +02:00
Simon Vieille
1454dbba4d
update changelog 2023-05-23 19:56:35 +02:00
Simon Vieille
ee8ca7134c
refactoring choices 2023-05-23 14:17:45 +02:00
Simon Vieille
93fef37033
add option to show hovered label only on top menu 2023-05-23 14:09:55 +02:00
e1567b0689 Merge pull request 'v3.7.4' (#249) from develop into master
Reviewed-on: deblan/side_menu#249
2023-04-16 18:05:46 +02:00
Simon Vieille
135f27cc32
release v3.7.4 2023-04-16 18:05:25 +02:00
c5e1a8d37b Merge pull request 'fix Integrity failed' (#248) from fix/issue247 into develop
Reviewed-on: deblan/side_menu#248
2023-04-16 18:03:04 +02:00
Simon Vieille
27f8888a90
update signature generation 2023-04-16 14:24:17 +02:00
Simon Vieille
6583883e2d
update signature generation 2023-04-16 14:17:09 +02:00
Simon Vieille
0a556670b1
update signature generation 2023-04-16 14:16:18 +02:00
aa139bc671 Merge pull request 'release v3.7.3' (#246) from develop into master
Reviewed-on: deblan/side_menu#246
2023-04-14 21:13:10 +02:00
Simon Vieille
b9264d7e05
release v3.7.3 2023-04-14 21:12:35 +02:00
88c14b6aec Merge pull request 'use app href for redirection' (#245) from fix/issue244 into develop
Reviewed-on: deblan/side_menu#245
2023-04-14 21:11:29 +02:00
2be53211b8 Merge pull request 'add signature generation' (#243) from feature/issue240 into develop
Reviewed-on: deblan/side_menu#243
2023-04-14 21:00:37 +02:00
Simon Vieille
dca727c120
use app href for redirection (fix #244) 2023-04-14 20:58:56 +02:00
Simon Vieille
361badff6b
update changelog 2023-03-31 17:06:30 +02:00
Simon Vieille
917288eb54
add signature generation
rename steps
2023-03-31 14:07:19 +02:00
b133ba3a97 Merge pull request 'release of v3.7.2' (#238) from develop into master
Reviewed-on: deblan/side_menu#238
2023-03-27 18:47:15 +02:00
2ff4fee927 Merge pull request 'changelog' (#237) from changelog into develop
Reviewed-on: deblan/side_menu#237
2023-03-27 18:36:34 +02:00
Simon Vieille
b65c0c650a
update app version 2023-03-27 18:35:59 +02:00
22335700ce Merge pull request 'update pipeline conditions allowing fix/*' (#234) from feature/ci into develop
Reviewed-on: deblan/side_menu#234
2023-03-27 18:35:12 +02:00
Simon Vieille
7ab2816bd9
update changelog 2023-03-27 18:34:50 +02:00
396d3cfbc5 Merge pull request 'load configuration and then retrieve apps in default side menu display' (#235) from feature/issue233 into develop
Reviewed-on: deblan/side_menu#235
2023-03-27 18:34:21 +02:00
Simon Vieille
66e4d2989a
update pipeline conditions allowing fix/* 2023-03-23 22:22:36 +01:00
Simon Vieille
9ccd11b6dc
load configuration and then retrieve apps in default side menu display
fix #233
2023-03-23 22:17:05 +01:00
aaf2bb55db Merge pull request 'release v3.7.1' (#232) from develop into master
Reviewed-on: deblan/side_menu#232
2023-03-19 10:00:00 +01:00
a7ec95da7c Merge pull request 'Fix build process' (#231) from fix/issue230 into develop
Reviewed-on: deblan/side_menu#231
2023-03-19 09:58:11 +01:00
Simon Vieille
42043c5390
update changelog 2023-03-19 09:52:37 +01:00
Simon Vieille
019f79d45f
update ci conf 2023-03-19 09:45:51 +01:00
Simon Vieille
3a80215657
update ci conf 2023-03-19 09:35:59 +01:00
Simon Vieille
7d0b55243e
add debug version 2023-03-19 09:34:52 +01:00
Simon Vieille
097ccc9dc9
update ci conf 2023-03-19 09:34:23 +01:00
Simon Vieille
7227f59dab
add tag on event restriction for build steps 2023-03-17 17:25:22 +01:00
Simon Vieille
3a51e6ecd5
add debug version 2023-03-17 17:22:59 +01:00
Simon Vieille
112e669723
reduce release task as packaging (ci)
move translation build in specific step (ci)
2023-03-17 17:22:35 +01:00
Simon Vieille
fc5a6a4c64
fix typo in ci configuration 2023-03-17 17:13:31 +01:00
Simon Vieille
02afac5267
add debug version 2023-03-17 17:11:16 +01:00
Simon Vieille
1eb392834c
use specifics images in ci 2023-03-17 17:10:56 +01:00
749f25a231 Merge pull request 'add badge of downloads' (#228) from develop into master
Reviewed-on: deblan/side_menu#228
2023-03-11 00:30:39 +01:00
Simon Vieille
5df389dd42
add badge of downloads 2023-03-11 00:29:32 +01:00
04026f5c75 Merge pull request 'release v3.7.0' (#227) from develop into master
Reviewed-on: deblan/side_menu#227
2023-03-09 16:57:33 +01:00
48b2b30406 Merge pull request 'update issue template' (#223) from develop into master
Reviewed-on: deblan/side_menu#223
2023-02-20 14:06:23 +01:00
22e5445330 Merge pull request 'release v3.6.0' (#221) from develop into master
Reviewed-on: deblan/side_menu#221
2023-02-17 11:53:27 +01:00
0544fd3765 Merge pull request 'doc' (#218) from develop into master
Reviewed-on: deblan/side_menu#218
2023-02-12 16:56:39 +01:00
2635dd89ca Merge pull request 'Doc' (#217) from develop into master
Reviewed-on: deblan/side_menu#217
2023-02-12 00:34:56 +01:00
aa203bb406 Merge pull request 'release v3.5.2' (#213) from develop into master
Reviewed-on: deblan/side_menu#213
2023-01-21 22:31:21 +01:00
368c59a2bd Merge pull request 'next release' (#200) from develop into master
Reviewed-on: deblan/side_menu#200
2023-01-07 10:40:14 +01:00
ab7b1e96fe Merge pull request 'add gitea ISSUE/FEATURE templates' (#202) from gitea into master
Reviewed-on: deblan/side_menu#202
2022-12-29 22:45:50 +01:00
f4322a8d71 Merge pull request 'add gitea ISSUE/FEATURE templates' (#201) from gitea into master
Reviewed-on: deblan/side_menu#201
2022-12-29 22:45:03 +01:00
19 changed files with 188 additions and 73 deletions

View file

@ -1,47 +1,78 @@
pipeline:
dependencies:
image: gitnet.fr/deblan/devenv
image: node:16
pull: true
commands:
- make dep
- npm i
when:
event: [tag, push, pull_request]
branch: [master, develop, feature/*, translations]
branch: [master, develop, feature/*, fix/*, translations]
osv_detector:
image: gitnet.fr/deblan/docker-osv-detector:v0.9
osv-detector:
image: gitnet.fr/deblan/osv-detector:v0.10
commands:
- osv-detector package-lock.json
failure: ignore
build:
image: gitnet.fr/deblan/devenv
build-js:
image: node:16
commands:
- make build
- npm run build
when:
branch: [master, develop, feature/*, translations]
event: [push, pull_request]
branch: [master, develop, feature/*, fix/*, translations]
event: [tag, push, pull_request]
code_quality:
image: sonarsource/sonar-scanner-cli
secrets: [sonar_token, sonar_host, sonar_project]
build-translations:
image: deblan/php:8.0
commands:
- sonar-scanner
-Dsonar.projectKey=$SONAR_PROJECT
-Dsonar.sources=.
-Dsonar.host.url=$SONAR_HOST
-Dsonar.pullrequest.key=$CI_COMMIT_PULL_REQUEST
-Dsonar.pullrequest.branch=$CI_COMMIT_SOURCE_BRANCH
-Dsonar.pullrequest.base=$CI_COMMIT_TARGET_BRANCH
failure: ignore
- php bin/generate_l10n.php
when:
event: [pull_request]
branch: [master, develop, feature/*, fix/*, translations]
event: [tag, push, pull_request]
package:
image: gitnet.fr/deblan/devenv
create-signature:
image: nextcloud:25
secrets: [app_certificate, app_public_certificate]
environment:
SQLITE_DATABASE: /var/www/data/data.db
NEXTCLOUD_ADMIN_USER: admin
NEXTCLOUD_ADMIN_PASSWORD: admin
commands:
- echo "$APP_CERTIFICATE" > "/tmp/side_menu.key"
- echo "$APP_PUBLIC_CERTIFICATE" > "/tmp/side_menu.crt"
- mkdir /tmp/app
- cp -r README.md CHANGELOG.md appinfo css lib img l10n js src templates screenshots vendor /tmp/app
- /usr/src/nextcloud/occ integrity:sign-app
--privateKey=/tmp/side_menu.key
--certificate=/tmp/side_menu.crt
--path=/tmp/app
- mv /tmp/app/appinfo/signature.json appinfo/
when:
event: [tag]
# check-code-quality:
# image: sonarsource/sonar-scanner-cli
# secrets: [sonar_token, sonar_host, sonar_project]
# commands:
# - sonar-scanner
# -Dsonar.projectKey=$SONAR_PROJECT
# -Dsonar.sources=.
# -Dsonar.host.url=$SONAR_HOST
# -Dsonar.pullrequest.key=$CI_COMMIT_PULL_REQUEST
# -Dsonar.pullrequest.branch=$CI_COMMIT_SOURCE_BRANCH
# -Dsonar.pullrequest.base=$CI_COMMIT_TARGET_BRANCH
# failure: ignore
# when:
# event: [pull_request]
create-package:
image: deblan/php:8.0
volumes:
- /var/www/html/artifacts:/var/www/html/artifacts
secrets: [app_certificate]
commands:
- apt-get update
- apt-get install -y zip make
- mkdir -p "$HOME/.nextcloud/certificates"
- echo "$APP_CERTIFICATE" > "$HOME/.nextcloud/certificates/side_menu.key"
- export VERSION=$(grep "<version>" appinfo/info.xml | grep -o "[0-9]*\.[0-9]*\.[0-9]*" --color=never)
@ -50,7 +81,7 @@ pipeline:
when:
event: [tag]
release:
push-release:
image: plugins/gitea-release
volumes:
- /var/www/html/artifacts:/var/www/html/artifacts

View file

@ -1,5 +1,39 @@
## [Unreleased]
## 3.9.1
### Fixed
* fix fixed menu on dashboard (#262)
## 3.9.0
### Added
* add compatibility with NC27
### Fixed
* fix app redirect (#261)
## 3.8.0
### Added
* add option to show hovered label only on top menu (fix #253)
## 3.7.4
### Fixed
* fix Integrity failed (#247)
## 3.7.3
### Fixed
* fix #244: use app href for redirection
### Added
* add signature on build
## 3.7.2
### Added
* update pipeline conditions allowing `fix/*`
### Fixed
* fix #233: load configuration and then retrieve apps in default side menu display
## 3.7.1
### Fixed
* fix build process (#230)
## 3.7.0
### Added
* add translations (thanks to AHOHNMYC)

View file

@ -9,7 +9,7 @@ dep:
npm link @nextcloud/vue || sudo npm link @nextcloud/vue
.ONESHELL:
release: build translations
release:
if [ -z "$$VERSION" ]; then
echo "VERSION required"
exit 1

View file

@ -3,6 +3,7 @@
[![Build Status](https://ci.gitnet.fr/api/badges/deblan/side_menu/status.svg)](https://ci.gitnet.fr/deblan/side_menu)
[![Translations](https://translate.codeberg.org/widgets/custom-menu/-/application/svg-badge.svg)](https://translate.codeberg.org/engage/custom-menu/)
![Downloads](https://img.shields.io/badge/dynamic/json?color=brightgreen&label=downloads&query=%24.K_downloads&suffix=K&url=https%3A%2F%2Fapi-side-menu.deblan.org%2Fdownloads.php)
Allows you to modify the position of the main menu by creating a panel on the left of the interface or with a big menu on the top.
You can also add and sort custom categories, define apps that must be displayed in the top menu, etc. Fully customisable.

View file

@ -32,7 +32,7 @@ Notice
Because I believe in a free and decentralized Internet, [Gitnet](https://gitnet.fr) is **self-hosted at home**.
In case of downtime, you can download **Custom Menu** from [here](https://kim.deblan.fr/~side_menu/).
]]></description>
<version>3.7.0</version>
<version>3.9.1</version>
<licence>agpl</licence>
<author mail="contact@deblan.fr" homepage="https://www.deblan.io/">Simon Vieille</author>
<namespace>SideMenu</namespace>
@ -54,7 +54,7 @@ In case of downtime, you can download **Custom Menu** from [here](https://kim.de
<screenshot>https://gitnet.fr/deblan/side_menu/raw/branch/master/screenshots/nc25_big_menu.png</screenshot>
<screenshot>https://gitnet.fr/deblan/side_menu/raw/branch/master/screenshots/nc25_default_menu.png</screenshot>
<dependencies>
<nextcloud min-version="25" max-version="26"/>
<nextcloud min-version="25" max-version="27"/>
<php min-version="7.4"/>
</dependencies>
<settings>

View file

@ -239,14 +239,23 @@
left: 50px;
}
.side-menu-always-displayed #header {
position: absolute !important;
}
.side-menu-always-displayed #side-menu {
display: block;
}
.side-menu-always-displayed .side-menu-apps-list {
height: 100vh;
top: 0;
overflow: hidden;
}
.side-menu-always-displayed .side-menu-apps-list--with-settings {
height: calc(100vh - 49px);
top: 49px;
overflow: hidden;
}
.side-menu-always-displayed .side-menu-apps-list:hover {

View file

@ -74,33 +74,37 @@ class AppController extends Controller
$inTopMenuApps = in_array($app['id'], $topMenuApps);
$inHiddenApps = in_array($app['id'], $hiddenApps);
if (!$inTopMenuApps || $inHiddenApps) {
if (!$inTopMenuApps && $inHiddenApps) {
continue;
}
return $this->redirectToApp($app['id']);
return $this->redirectToApp($app, true);
}
return $this->redirectToApp('files');
}
protected function redirectToApp($appId): RedirectResponse
protected function redirectToApp($app, bool $isHref = false): RedirectResponse
{
$isIgnoreFrontController = true === OC::$server->getConfig()->getSystemValue(
'htaccess.IgnoreFrontController',
false
);
if (!$isHref) {
$isIgnoreFrontController = true === OC::$server->getConfig()->getSystemValue(
'htaccess.IgnoreFrontController',
false
);
$isFrontControllerActive = 'true' === getenv('front_controller_active');
$isFrontControllerActive = 'true' === getenv('front_controller_active');
if ($isIgnoreFrontController || $isFrontControllerActive) {
$path = '/apps/%s/';
if ($isIgnoreFrontController || $isFrontControllerActive) {
$path = '/apps/%s/';
} else {
$path = '/index.php/apps/%s/';
}
$url = $this->urlGenerator->getAbsoluteURL(sprintf($path, $app));
} else {
$path = '/index.php/apps/%s/';
$url = $app['href'];
}
$url = $this->urlGenerator->getAbsoluteURL(sprintf($path, $appId));
return new RedirectResponse($url);
}
}

View file

@ -171,7 +171,7 @@ class JsController extends Controller
'avatar' => $avatar,
'top-menu-apps' => $topMenuApps,
'top-side-menu-apps' => $topSideMenuApps,
'top-menu-mouse-over-hidden-label' => $this->config->getAppValueBool(
'top-menu-mouse-over-hidden-label' => $this->config->getAppValueInt(
'top-menu-mouse-over-hidden-label',
'0'
),

View file

@ -24,14 +24,14 @@
<nav class="app-menu show">
<ul
class="app-menu-main"
:class="{ 'app-menu-main__hidden-label': hiddenLabels }"
:class="{ 'app-menu-main__hidden-label': hiddenLabels === 1, 'app-menu-main__show-hovered': hiddenLabels === 2 }"
v-if="apps !== null"
>
<li v-for="app in mainAppList()"
:key="app.id"
:data-app-id="app.id"
class="app-menu-entry"
:class="{ 'app-menu-entry__active': app.active, 'app-menu-entry__hidden-label': hiddenLabels }"
:class="{ 'app-menu-entry__active': app.active, 'app-menu-entry__hidden-label': hiddenLabels === 1, 'app-menu-main__show-hovered': hiddenLabels === 2 }"
:style="makeStyle(app)"
>
<a :href="app.href"
@ -233,8 +233,8 @@ $header-icon-size: 20px;
overflow: hidden;
}
&:not(.app-menu-entry__hidden-label):hover,
&:not(.app-menu-entry__hidden-label):focus-within {
&:not(.app-menu-entry__hidden-label):not(.app-menu-entry__show-hovered):hover,
&:not(.app-menu-entry__hidden-label):not(.app-menu-entry__show-hovered):focus-within {
opacity: 1;
.app-menu-entry--label {
opacity: 1;
@ -245,7 +245,6 @@ $header-icon-size: 20px;
overflow: visible;
}
}
}
// Show labels
@ -256,8 +255,8 @@ $header-icon-size: 20px;
opacity: 1;
}
&:not(.app-menu-main__hidden-label):hover,
&:not(.app-menu-main__hidden-label):focus-within,
&:not(.app-menu-main__hidden-label):not(.app-menu-main__show-hovered):hover,
&:not(.app-menu-main__hidden-label):not(.app-menu-main__show-hovered):focus-within,
.app-menu-entry:not(.app-menu-entry__hidden-label):hover,
.app-menu-entry:not(.app-menu-entry__hidden-label):focus {
img {
@ -273,6 +272,22 @@ $header-icon-size: 20px;
opacity: 0;
}
}
&.app-menu-main__show-hovered .app-menu-entry:hover,
&.app-menu-main__show-hovered .app-menu-entry:focus {
img {
margin-top: -6px;
}
.app-menu-entry--label {
opacity: 1;
bottom: 0;
}
&::before, .app-menu-entry::before {
opacity: 0;
}
}
}
::v-deep .app-menu-more .button-vue--vue-tertiary {

View file

@ -16,7 +16,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
-->
<template>
<div id="side-menu">
<div class="side-menu-header">
<div class="side-menu-header" v-if="settings || !openerHover || (!avatar && !alwaysDisplayed && logo) || avatar">
<SettingsButton
v-if="settings"
v-bind:href="settings.href"
@ -26,7 +26,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
<OpenerButton />
<Logo
v-if="!avatar && logo" v-bind:classes="{'side-menu-logo': true, 'avatardiv': false}"
v-if="!avatar && !alwaysDisplayed && logo" v-bind:classes="{'side-menu-logo': true, 'avatardiv': false}"
v-bind:image="logo"
v-bind:link="logoLink"
/>
@ -38,7 +38,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/>
</div>
<ul class="side-menu-apps-list">
<ul class="side-menu-apps-list" :class="{'side-menu-apps-list--with-settings': !!settings}">
<SideMenuApp
v-for="(app, key) in apps"
v-if="!hiddenApps.includes(app.id)"
@ -79,6 +79,8 @@ export default {
targetBlankApps: [],
hiddenApps: [],
settings: null,
openerHover: false,
alwaysDisplayed: false,
}
},
methods: {
@ -93,7 +95,11 @@ export default {
for (let id in ncApps) {
if (window.topMenuApps.includes(id) && !window.topSideMenuApps.includes(id)) {
continue;
continue
}
if (this.hiddenApps.includes(id)) {
continue
}
let app = ncApps[id]
@ -104,10 +110,10 @@ export default {
finalApps.sort((a, b) => {
if (a.order === null || b.order === null) {
return a.name < b.name ? -1 : 1;
return a.name < b.name ? -1 : 1
}
return a.order < b.order ? -1 : 1;
return a.order < b.order ? -1 : 1
})
this.apps = finalApps
@ -118,24 +124,25 @@ export default {
},
retrieveConfig() {
axios
.get(OC.generateUrl('/apps/side_menu/js/config'))
.then((response) => {
const config = response.data
this.targetBlankApps = config['target-blank-apps']
this.forceLightIcon = config['force-light-icon']
this.avatar = config['avatar']
this.logo = config['logo']
this.logoLink = config['logo-link']
this.settings = config['settings']
this.hiddenApps = config['big-menu-hidden-apps']
})
},
},
mounted() {
this.retrieveConfig()
this.retrieveApps()
axios
.get(OC.generateUrl('/apps/side_menu/js/config'))
.then((response) => {
const config = response.data
this.targetBlankApps = config['target-blank-apps']
this.forceLightIcon = config['force-light-icon']
this.avatar = config['avatar']
this.logo = config['logo']
this.logoLink = config['logo-link']
this.settings = config['settings']
this.openerHover = config['opener-hover']
this.alwaysDisplayed = config['always-displayed']
this.hiddenApps = config['big-menu-hidden-apps']
this.retrieveApps()
})
}
}
</script>

View file

@ -91,3 +91,4 @@
"Applications kept in the top menu but also shown in side menu": "Aplikace ponechané v horní nabídce ale také zobrazené v té boční"
"These applications must be selected in the previous option.": "Tyto aplikace je třeba vybrat v předchozí volbě."
"Hide labels on mouse over": "Skrýt popisky při najetím ukazatele myši"
"Except the hovered app": "Except the hovered app"

View file

@ -91,3 +91,4 @@
"Applications kept in the top menu but also shown in side menu": "Applications kept in the top menu but also shown in side menu"
"These applications must be selected in the previous option.": "These applications must be selected in the previous option."
"Hide labels on mouse over": "Hide labels on mouse over"
"Except the hovered app": "Except the hovered app"

View file

@ -91,3 +91,4 @@
"Applications kept in the top menu but also shown in side menu": "Las aplicaciones se mantienen en el menú superior pero también se muestran en el menú lateral"
"These applications must be selected in the previous option.": "Estas aplicaciones deben ser seleccionadas en las opciones anteriores."
"Hide labels on mouse over": "Ocultar las etiquetas al pasar el ratón"
"Except the hovered app": "Except the hovered app"

View file

@ -91,3 +91,4 @@
"Applications kept in the top menu but also shown in side menu": "Applications conservées dans le menu supérieur mais également affichées dans le menu latéral"
"These applications must be selected in the previous option.": "Ces applications doivent également être sélectionnées dans l'option précédente."
"Hide labels on mouse over": "Masquer le libellé des applications au passage de la souris"
"Except the hovered app": "À l'exception de l'application survolée"

View file

@ -91,3 +91,4 @@
"Applications kept in the top menu but also shown in side menu": "Applicaties blijven in het topmenu maar worden ook in het zijmenu getoond"
"These applications must be selected in the previous option.": "Deze toepassingen moeten bij de vorige optie zijn geselecteerd."
"Hide labels on mouse over": "Hide labels on mouse over"
"Except the hovered app": "Except the hovered app"

View file

@ -91,3 +91,4 @@
"Applications kept in the top menu but also shown in side menu": "Applications kept in the top menu but also shown in side menu"
"These applications must be selected in the previous option.": "These applications must be selected in the previous option."
"Hide labels on mouse over": "Скрыть название при наведении мыши"
"Except the hovered app": "Except the hovered app"

View file

@ -93,3 +93,4 @@
"Applications kept in the top menu but also shown in side menu": ""
"These applications must be selected in the previous option.": ""
"Hide labels on mouse over": ""
"Except the hovered app": ""

View file

@ -91,3 +91,4 @@
"Applications kept in the top menu but also shown in side menu": "Applications kept in the top menu but also shown in side menu"
"These applications must be selected in the previous option.": "These applications must be selected in the previous option."
"Hide labels on mouse over": "Hide labels on mouse over"
"Except the hovered app": "Except the hovered app"

View file

@ -878,9 +878,15 @@ $labelAlwaysDisplayed = 'Always displayed';
<div class="side-menu-setting-label">
<?php p($l->t('Hide labels on mouse over')); ?>
</div>
<?php
$choices = array_merge(
$choicesYesNo,
['Except the hovered app' => '2']
);
?>
<div class="side-menu-setting-form">
<select id="side-menu-top-menu-mouse-over-hidden-label" name="top-menu-mouse-over-hidden-label" class="side-menu-setting">
<?php foreach ($choicesYesNo as $label => $value): ?>
<?php foreach ($choices as $label => $value): ?>
<option value="<?php echo $value ?>" <?php if ($value === $_['top-menu-mouse-over-hidden-label']): ?>selected<?php endif; ?>>
<?php echo $l->t($label); ?>
</option>