Compare commits

...

190 Commits

Author SHA1 Message Date
Simon Vieille 29f0ead9cc Merge pull request 'release v3.8.0' (#255) from develop into master
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/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
Simon Vieille 79ddb5fa47 Merge pull request 'add option to show hovered label only on top menu' (#254) from feature/issue253 into develop
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/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
Simon Vieille e1567b0689 Merge pull request 'v3.7.4' (#249) from develop into master
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/249
2023-04-16 18:05:46 +02:00
Simon Vieille 135f27cc32 release v3.7.4 2023-04-16 18:05:25 +02:00
Simon Vieille c5e1a8d37b Merge pull request 'fix Integrity failed' (#248) from fix/issue247 into develop
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/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
Simon Vieille aa139bc671 Merge pull request 'release v3.7.3' (#246) from develop into master
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/246
2023-04-14 21:13:10 +02:00
Simon Vieille b9264d7e05 release v3.7.3 2023-04-14 21:12:35 +02:00
Simon Vieille 88c14b6aec Merge pull request 'use app href for redirection' (#245) from fix/issue244 into develop
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/245
2023-04-14 21:11:29 +02:00
Simon Vieille 2be53211b8 Merge pull request 'add signature generation' (#243) from feature/issue240 into develop
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/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
Simon Vieille b133ba3a97 Merge pull request 'release of v3.7.2' (#238) from develop into master
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/238
2023-03-27 18:47:15 +02:00
Simon Vieille 2ff4fee927 Merge pull request 'changelog' (#237) from changelog into develop
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/237
2023-03-27 18:36:34 +02:00
Simon Vieille b65c0c650a update app version 2023-03-27 18:35:59 +02:00
Simon Vieille 22335700ce Merge pull request 'update pipeline conditions allowing fix/*' (#234) from feature/ci into develop
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/234
2023-03-27 18:35:12 +02:00
Simon Vieille 7ab2816bd9 update changelog 2023-03-27 18:34:50 +02:00
Simon Vieille 396d3cfbc5 Merge pull request 'load configuration and then retrieve apps in default side menu display' (#235) from feature/issue233 into develop
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/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
Simon Vieille aaf2bb55db Merge pull request 'release v3.7.1' (#232) from develop into master
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/232
2023-03-19 10:00:00 +01:00
Simon Vieille a7ec95da7c Merge pull request 'Fix build process' (#231) from fix/issue230 into develop
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/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
Simon Vieille 749f25a231 Merge pull request 'add badge of downloads' (#228) from develop into master
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/228
2023-03-11 00:30:39 +01:00
Simon Vieille 5df389dd42 add badge of downloads 2023-03-11 00:29:32 +01:00
Simon Vieille 04026f5c75 Merge pull request 'release v3.7.0' (#227) from develop into master
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/227
2023-03-09 16:57:33 +01:00
Simon Vieille dbd0de7679 release v3.7.0 2023-03-09 16:46:03 +01:00
Simon Vieille 07a1d356de Merge pull request 'set the app compatible with nextcloud 26' (#225) from feature/nc26 into develop
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/225
2023-03-09 15:55:35 +01:00
Simon Vieille d3359337f9 Merge pull request 'translations' (#226) from translations into develop
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/226
2023-03-09 15:54:50 +01:00
Simon Vieille 4b9378f923 set the app compatible with nextcloud 26 2023-03-09 14:05:30 +01:00
AHOHNMYC 117e33692b Translated using Weblate (Russian)
Currently translated at 84.7% (78 of 92 strings)

Translation: Custom menu/Application
Translate-URL: https://translate.codeberg.org/projects/custom-menu/application/ru/
2023-03-06 19:08:20 +00:00
Simon Vieille 48b2b30406 Merge pull request 'update issue template' (#223) from develop into master
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/223
2023-02-20 14:06:23 +01:00
Simon Vieille 18e8f42dc3 update issue template 2023-02-20 13:50:53 +01:00
Simon Vieille 22e5445330 Merge pull request 'release v3.6.0' (#221) from develop into master
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/221
2023-02-17 11:53:27 +01:00
Simon Vieille 01669f83c2 release v3.6.0 2023-02-17 11:46:31 +01:00
Simon Vieille f1c33cc626 release v3.6.0 2023-02-17 11:45:57 +01:00
Simon Vieille 87ff20aa19 Merge pull request 'add hidden apps compatible with default menu' (#220) from feature/issue219 into develop
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/220
2023-02-17 11:44:41 +01:00
Simon Vieille ce969b4061 Merge branch 'develop' into translations 2023-02-17 10:54:42 +01:00
Simon Vieille ed4ed62fb6 update admin (hidden apps compatible with defaul) 2023-02-17 10:51:39 +01:00
Simon Vieille 5a586c40a1 add hidden apps compatible with default menu (fix #219) 2023-02-17 10:51:11 +01:00
Simon Vieille 0544fd3765 Merge pull request 'doc' (#218) from develop into master
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/218
2023-02-12 16:56:39 +01:00
Simon Vieille b141d7ba7c update readme 2023-02-12 16:56:22 +01:00
Simon Vieille 2635dd89ca Merge pull request 'Doc' (#217) from develop into master
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/217
2023-02-12 00:34:56 +01:00
Simon Vieille 0ee10e08e9 update readme 2023-02-12 00:31:47 +01:00
Simon Vieille 1093042a17 update readme 2023-02-12 00:29:18 +01:00
Simon Vieille 9566d32a89 update readme 2023-02-12 00:28:51 +01:00
Simon Vieille aa203bb406 Merge pull request 'release v3.5.2' (#213) from develop into master
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/213
2023-01-21 22:31:21 +01:00
Simon Vieille 3861d78975 Merge pull request 'login error (#210)' (#212) from feature/login_error into develop
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/212
2023-01-21 22:26:04 +01:00
Simon Vieille 571706986e release v3.5.2 2023-01-21 22:18:45 +01:00
Simon Vieille ed31ed3623 add check if menu exists before adding event listeners 2023-01-21 22:12:17 +01:00
Simon Vieille 368c59a2bd Merge pull request 'next release' (#200) from develop into master
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/200
2023-01-07 10:40:14 +01:00
Simon Vieille 59af6a9068 release v3.5.1 2023-01-07 10:23:19 +01:00
Simon Vieille 1965aedc43 release v3.5.1 2023-01-07 10:22:56 +01:00
Simon Vieille ab46bd7341 docs(changelog): add v3.5.1 2023-01-07 10:21:46 +01:00
Simon Vieille 3aace8cbdd Merge pull request 'translations' (#209) from translations into develop
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/209
2023-01-07 10:19:00 +01:00
Codeberg Translate 6425546cd1 Merge branch 'origin/translations' into Weblate. 2023-01-01 23:31:48 +00:00
gallegonovato 3664b8979d Translated using Weblate (Spanish)
Currently translated at 100.0% (92 of 92 strings)

Translation: Custom menu/Application
Translate-URL: https://translate.codeberg.org/projects/custom-menu/application/es/
2023-01-01 23:31:47 +00:00
p-bo 83732994bb Translated using Weblate (Czech)
Currently translated at 100.0% (92 of 92 strings)

Translation: Custom menu/Application
Translate-URL: https://translate.codeberg.org/projects/custom-menu/application/cs/
2023-01-01 23:31:47 +00:00
Simon Vieille c65d09e268 Merge pull request 'ci: add osv detector' (#208) from feature/osv into develop
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/208
2023-01-01 14:59:05 +01:00
Simon Vieille 2da2e10017 ci: add osv detector 2023-01-01 14:52:30 +01:00
Simon Vieille 8da90bbc06 Merge branch 'gitea' into develop 2022-12-29 22:53:50 +01:00
Simon Vieille ab7b1e96fe Merge pull request 'add gitea ISSUE/FEATURE templates' (#202) from gitea into master
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/202
2022-12-29 22:45:50 +01:00
Simon Vieille d4adda19b3 add gitea ISSUE/FEATURE templates 2022-12-29 22:45:36 +01:00
Simon Vieille f4322a8d71 Merge pull request 'add gitea ISSUE/FEATURE templates' (#201) from gitea into master
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/201
2022-12-29 22:45:03 +01:00
Simon Vieille ae3db9cf7f add gitea ISSUE/FEATURE templates 2022-12-29 22:42:03 +01:00
Simon Vieille 05ff6d483b add gitea ISSUE/FEATURE templates 2022-12-29 22:41:06 +01:00
Simon Vieille dfc61140ec add gitea ISSUE/FEATURE templates 2022-12-29 22:30:33 +01:00
Simon Vieille 4918049270 update changelog 2022-12-28 11:14:09 +01:00
Simon Vieille 4001f162b6 Merge pull request 'Fix custom menu sorting is not applied on Mobile Screens' (#199) from feature/issue189 into develop
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/199
2022-12-27 23:20:21 +01:00
Simon Vieille 7a43ca2c75 add sort on in appList and fix appLabel function 2022-12-27 07:02:07 +01:00
Simon Vieille bc6470a440 Merge pull request 'develop' (#197) from develop into master
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/197
2022-12-26 14:00:48 +01:00
Simon Vieille 65e21ab4c5 Merge pull request 'next release' (#191) from develop into master
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/191
2022-12-26 13:59:24 +01:00
Simon Vieille 15ac74d8e9 update version 2022-12-26 13:53:40 +01:00
Simon Vieille 40229b93f6 update changelog 2022-12-26 13:53:40 +01:00
Simon Vieille 9b24f714ce Merge pull request 'translations' (#196) from translations into develop
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/196
2022-12-26 13:53:06 +01:00
deblan f0f6c4206a Translated using Weblate (Spanish)
Currently translated at 100.0% (92 of 92 strings)

Translation: Custom menu/Application
Translate-URL: https://translate.codeberg.org/projects/custom-menu/application/es/
2022-12-26 12:44:07 +00:00
deblan 3b6478edbb Translated using Weblate (Russian)
Currently translated at 80.4% (74 of 92 strings)

Translation: Custom menu/Application
Translate-URL: https://translate.codeberg.org/projects/custom-menu/application/ru/
2022-12-26 12:44:06 +00:00
deblan df7c94fe24 Translated using Weblate (Dutch)
Currently translated at 100.0% (92 of 92 strings)

Translation: Custom menu/Application
Translate-URL: https://translate.codeberg.org/projects/custom-menu/application/nl/
2022-12-26 12:44:06 +00:00
deblan 7b808d87b1 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (92 of 92 strings)

Translation: Custom menu/Application
Translate-URL: https://translate.codeberg.org/projects/custom-menu/application/zh_Hans/
2022-12-26 12:44:06 +00:00
deblan 39e3cf9dd3 Translated using Weblate (French)
Currently translated at 100.0% (92 of 92 strings)

Translation: Custom menu/Application
Translate-URL: https://translate.codeberg.org/projects/custom-menu/application/fr/
2022-12-26 12:44:06 +00:00
deblan 5598af213d Translated using Weblate (German)
Currently translated at 100.0% (92 of 92 strings)

Translation: Custom menu/Application
Translate-URL: https://translate.codeberg.org/projects/custom-menu/application/de/
2022-12-26 12:44:06 +00:00
deblan 367bd72bfb Translated using Weblate (Czech)
Currently translated at 100.0% (92 of 92 strings)

Translation: Custom menu/Application
Translate-URL: https://translate.codeberg.org/projects/custom-menu/application/cs/
2022-12-26 12:44:06 +00:00
Simon Vieille c46713dc56 add missing translations 2022-12-26 13:40:45 +01:00
Simon Vieille 1594f3583c Merge branch 'develop' into translations 2022-12-26 13:33:45 +01:00
Codeberg Translate ff7f423dcb Merge branch 'origin/translations' into Weblate. 2022-12-26 12:31:12 +00:00
thejenja f3e1784577 Translated using Weblate (Russian)
Currently translated at 80.2% (73 of 91 strings)

Translation: Custom menu/Application
Translate-URL: https://translate.codeberg.org/projects/custom-menu/application/ru/
2022-12-26 12:31:12 +00:00
Simon Vieille 9264b0f10d add translation configuration 2022-12-26 13:07:59 +01:00
Simon Vieille 08b418d55d add 'top-menu-mouse-over-hidden-label' as window property and use it in the AppMenu component 2022-12-26 13:07:59 +01:00
Simon Vieille 47af9088d4 add the 'top-menu-mouse-over-hidden-label' 2022-12-26 13:07:59 +01:00
Simon Vieille 690c437476 add hiddenLabels variables to show or hide of top menu items on mouse over 2022-12-26 13:07:59 +01:00
Simon Vieille be66c27452 Merge pull request '[FEATURE] Option to disable the display of Icon-Names in the top left Menu-Bar (#194)' (#195) from feature/issue194 into develop
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/195
2022-12-26 13:05:25 +01:00
Simon Vieille 785edbf5c5 add translation configuration 2022-12-26 12:59:19 +01:00
Simon Vieille 4258327a70 add 'top-menu-mouse-over-hidden-label' as window property and use it in the AppMenu component 2022-12-26 12:57:07 +01:00
Simon Vieille 37e00c51c3 add the 'top-menu-mouse-over-hidden-label' 2022-12-26 12:56:32 +01:00
Simon Vieille f7d463e734 add hiddenLabels variables to show or hide of top menu items on mouse over 2022-12-26 00:56:27 +01:00
Simon Vieille cae4d8ab66 Merge pull request 'translations' (#190) from translations into develop
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/190
2022-12-06 13:27:35 +01:00
Simon Vieille 66a1c1eecb Merge branch 'develop' into translations 2022-12-06 06:49:23 +01:00
Simon Vieille cc799060af update chanlog 2022-12-06 06:49:16 +01:00
Simon Vieille a3802ef298 update ci config 2022-12-06 06:48:27 +01:00
Simon Vieille 901668236f Merge branch 'develop' into translations 2022-12-05 23:44:49 +01:00
gallegonovato fef81eab0f Translated using Weblate (Spanish)
Currently translated at 100.0% (91 of 91 strings)

Translation: Custom menu/Application
Translate-URL: https://translate.codeberg.org/projects/custom-menu/application/es/
2022-12-05 22:39:36 +00:00
Simon Vieille 21e0f4cd89 Merge pull request 'feature/dependency_check' (#188) from feature/dependency_check into develop
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/188
2022-12-05 10:18:23 +01:00
Simon Vieille 5411267960 CI: use nodejs for dependency check 2022-12-04 22:52:02 +01:00
Simon Vieille b50cd5c4d0 CI: update dependency check 2022-12-04 22:42:50 +01:00
Simon Vieille 709ace5d4f CI: add dependency check 2022-12-04 22:25:04 +01:00
Simon Vieille b7595a371d Merge pull request 'improve code quality' (#187) from feature/code_quality into develop
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/187
2022-12-04 20:25:56 +01:00
Simon Vieille a7ab4573c5 update makefile run-code-quality-analysis command: use current branch and envvars 2022-12-04 20:23:48 +01:00
Simon Vieille 62c4333278 Merge branch 'develop' into feature/code_quality 2022-12-04 19:49:20 +01:00
Simon Vieille 8a8d8f2910 Merge pull request 'sonar-scanner configuration' (#186) from feature/ci into develop
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/186
2022-12-04 19:47:44 +01:00
Simon Vieille 7c72198736 sonar-scanner configuration 2022-12-04 19:06:19 +01:00
Simon Vieille d1b2a1ee3c sonar-scanner configuration 2022-12-04 18:59:21 +01:00
deblan 355c73185b Added translation using Weblate (Spanish) 2022-12-04 14:45:47 +00:00
Simon Vieille e1797e1e03 split long lines 2022-12-04 13:01:56 +01:00
Simon Vieille 3f04546a6e split long lines 2022-12-04 00:57:17 +01:00
Simon Vieille 0bd1a5baaf split long lines 2022-12-04 00:56:05 +01:00
Simon Vieille 24c87c0104 add missing img alt 2022-12-04 00:47:30 +01:00
Simon Vieille 4d05079c70 split long lines 2022-12-04 00:45:29 +01:00
Simon Vieille 0382e1c61d replace dupplicated string with variables 2022-12-04 00:19:54 +01:00
Simon Vieille 0f34275d04 remove duplicated selector ".side-menu-always-displayed body" 2022-12-04 00:14:38 +01:00
Simon Vieille 1c2f04f63f replace border-size with border-width 2022-12-04 00:13:28 +01:00
Simon Vieille 81bcad348e remove this unused import of 'trim' 2022-12-04 00:09:11 +01:00
Simon Vieille 053615c2c4 remove this unused "$topMenuAppsOrder" local variable 2022-12-04 00:08:20 +01:00
Simon Vieille 113e4db9b6 Merge pull request 'add code_quality in ci' (#185) from feature/ci into develop
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/185
2022-12-04 00:06:59 +01:00
Simon Vieille 89cf28f9a8 add code_quality in ci 2022-12-03 23:47:55 +01:00
Codeberg Translate 127fb45ece Merge branch 'origin/translations' into Weblate. 2022-12-03 21:18:59 +00:00
deblan a1d3df6018 Translated using Weblate (German)
Currently translated at 100.0% (91 of 91 strings)

Translation: Custom menu/Application
Translate-URL: https://translate.codeberg.org/projects/custom-menu/application/de/
2022-12-03 21:18:58 +00:00
Simon Vieille 9c3d9ccbc4 Merge pull request 'release v3.4.1' (#184) from develop into master
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/184
2022-12-02 12:33:30 +01:00
Simon Vieille 45a68cbfc8 release v3.4.1 2022-12-02 12:25:31 +01:00
Simon Vieille f42cb368db Merge pull request 'hide custom categories list when empty' (#183) from feature/issue182 into develop
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/183
2022-12-02 12:23:18 +01:00
Simon Vieille 6d940cc7c4 Merge pull request 'translations' (#181) from translations into develop
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/181
2022-12-02 12:19:04 +01:00
Simon Vieille 2d30a1f1ea hide custom categories list when empty 2022-12-02 12:16:49 +01:00
Simon Vieille 599e70bf8a Merge branch 'develop' into translations 2022-11-21 08:43:19 +01:00
Simon Vieille d012e464a1 add translations 2022-11-21 08:43:08 +01:00
Codeberg Translate ae2b52cb36 Merge branch 'origin/translations' into Weblate. 2022-11-20 22:26:39 +00:00
zonorti 5444bbf987 Translated using Weblate (Russian)
Currently translated at 67.0% (61 of 91 strings)

Translation: Custom menu/Application
Translate-URL: https://translate.codeberg.org/projects/custom-menu/application/ru/
2022-11-20 22:26:38 +00:00
jorisvandijk ed7d4f4750 Translated using Weblate (Dutch)
Currently translated at 100.0% (91 of 91 strings)

Translation: Custom menu/Application
Translate-URL: https://translate.codeberg.org/projects/custom-menu/application/nl/
2022-11-20 22:26:38 +00:00
Simon Vieille fe5ffcb6bf Merge pull request 'release v3.4.0' (#179) from develop into master
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/179
2022-11-20 15:17:23 +01:00
Simon Vieille f61f05c1c9 release v3.4.0 2022-11-20 15:10:50 +01:00
Simon Vieille c63ac1556e update ci 2022-11-20 15:04:54 +01:00
Simon Vieille c3cd78971b update changelog 2022-11-20 14:47:09 +01:00
Simon Vieille 0f24133b99 fix merge 2022-11-20 14:43:44 +01:00
deblan 887aa7f7f5 Added translation using Weblate (Dutch) 2022-11-20 14:41:02 +01:00
Codeberg Translate ac30ac25e9 Merge branch 'origin/develop' into Weblate. 2022-11-20 13:33:32 +00:00
Codeberg Translate 445b9d6986 Merge branch 'origin/develop' into Weblate. 2022-11-20 13:33:31 +00:00
nier 98d72a1e95 Translated using Weblate (Russian)
Currently translated at 64.8% (59 of 91 strings)

Translation: Custom menu/Application
Translate-URL: https://translate.codeberg.org/projects/custom-menu/application/ru/
2022-11-20 13:25:04 +00:00
deblan 5ad6af0b0d Translated using Weblate (Russian)
Currently translated at 64.8% (59 of 91 strings)

Translation: Custom menu/Application
Translate-URL: https://translate.codeberg.org/projects/custom-menu/application/ru/
2022-11-20 13:25:04 +00:00
deblan 0f93fbe7ea Translated using Weblate (Dutch)
Currently translated at 0.0% (0 of 91 strings)

Translation: Custom menu/Application
Translate-URL: https://translate.codeberg.org/projects/custom-menu/application/nl/
2022-11-20 13:25:04 +00:00
Timur 8db686b3a2 Translated using Weblate (Russian)
Currently translated at 60.4% (55 of 91 strings)

Translation: Custom menu/Application
Translate-URL: https://translate.codeberg.org/projects/custom-menu/application/ru/
2022-11-20 13:25:04 +00:00
deblan e208e19b1c Added translation using Weblate (Russian) 2022-11-20 13:25:04 +00:00
Simon Vieille d78bb6d93b update changelog 2022-11-20 14:13:54 +01:00
Simon Vieille 229d25cb44 Merge pull request 'feature/issue177' (#178) from feature/issue177 into develop
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/178
2022-11-20 14:12:11 +01:00
Simon Vieille 3ccf754e0d add possibility to define side_menu as default app and redirect to the first top menu app (#177) 2022-11-20 14:00:33 +01:00
Simon Vieille a4060c8db7 add possibility to define side_menu as default app and redirect to the first top menu app (#177) 2022-11-20 14:00:26 +01:00
Simon Vieille b474eeb29a update changelog 2022-11-11 21:20:20 +01:00
Simon Vieille e640343df9 Merge pull request 'translations' (#176) from translations into develop
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/176
2022-11-11 19:41:16 +01:00
p-bo 84d1dff0ff Translated using Weblate (Czech)
Currently translated at 100.0% (91 of 91 strings)

Translation: Custom menu/Application
Translate-URL: https://translate.codeberg.org/projects/custom-menu/application/cs/
2022-11-10 21:05:00 +00:00
deblan 13b19c407a Added translation using Weblate (Dutch) 2022-11-10 21:05:00 +00:00
Simon Vieille fa15824dad Merge pull request 'release v3.3.2' (#175) from develop into master
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/175
2022-11-10 13:08:27 +01:00
Simon Vieille 474387ff43 release v3.3.2 2022-11-10 13:07:35 +01:00
Simon Vieille 45ae1b3579 Merge pull request 'reduce the height of categories list (fix #173)' (#174) from feature/issue173 into develop
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/174
2022-11-09 13:04:12 +01:00
Simon Vieille c10d0e8442 reduce the height of categories list (fix #173) 2022-11-09 12:51:56 +01:00
Simon Vieille f5cabe9708 Merge pull request 'release v3.3.1' (#171) from develop into master
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/171
2022-11-06 17:01:43 +01:00
Simon Vieille 00e8a56e15 release v3.3.1 2022-11-06 16:55:23 +01:00
Simon Vieille 0ea7fe04bf Merge branch 'feature/issue162' into develop 2022-11-06 16:54:25 +01:00
Simon Vieille 0ac55b7ba4 fix #162: top and side app is broken 2022-11-05 15:40:52 +01:00
Simon Vieille 1794997ca0 Merge pull request 'Translated using Weblate (French)' (#169) from translations into develop
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/169
2022-11-05 12:25:05 +01:00
deblan 3c7cd2812f Translated using Weblate (French)
Currently translated at 100.0% (91 of 91 strings)

Translation: Custom menu/Application
Translate-URL: https://translate.codeberg.org/projects/custom-menu/application/fr/
2022-11-05 11:04:27 +00:00
Simon Vieille 2c75ebb3f7 Merge pull request 'translations' (#168) from translations into develop
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/168
2022-11-05 12:02:29 +01:00
Anonymous 8bf7c7a8ce Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (91 of 91 strings)

Translation: Custom menu/Application
Translate-URL: https://translate.codeberg.org/projects/custom-menu/application/zh_Hans/
2022-11-05 10:49:52 +00:00
Anonymous 5ed9e1e449 Translated using Weblate (French)
Currently translated at 100.0% (91 of 91 strings)

Translation: Custom menu/Application
Translate-URL: https://translate.codeberg.org/projects/custom-menu/application/fr/
2022-11-05 10:49:52 +00:00
Anonymous 2b4feb908e Translated using Weblate (German)
Currently translated at 100.0% (91 of 91 strings)

Translation: Custom menu/Application
Translate-URL: https://translate.codeberg.org/projects/custom-menu/application/de/
2022-11-05 10:49:51 +00:00
Anonymous 572f05ed52 Translated using Weblate (Czech)
Currently translated at 100.0% (91 of 91 strings)

Translation: Custom menu/Application
Translate-URL: https://translate.codeberg.org/projects/custom-menu/application/cs/
2022-11-05 10:49:51 +00:00
34 changed files with 930 additions and 273 deletions
-16
View File
@@ -1,16 +0,0 @@
---
name: "New feature"
about: "Use this template if you want to request a feature"
title: "[FEATURE] "
labels:
- enhancement
---
## Feature
### Description
...
### Benefits
...
@@ -0,0 +1,34 @@
name: New feature
about: Use this template if you want to request a feature
title: "[FEATURE] "
labels:
- enhancement
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this feature request!
- type: textarea
id: description
attributes:
label: Description
description: Describe the feature.
validations:
required: true
- type: textarea
id: benefits
attributes:
label: Benefits
description: Describe the benefits of this feature.
validations:
required: true
- type: textarea
id: extra
attributes:
label: More informations
description: If you want to share more things, this is here!
validations:
required: false
-32
View File
@@ -1,32 +0,0 @@
---
name: "New issue"
about: "Use this template if you have a bug"
title: "[BUG] "
labels:
- bug
---
## Issue
### Environment
* Custom menu version:
* Nextcloud version:
* PHP version:
* Web server (Nginx, Apache2):
* Web browser and version (Firefox 80, Google Chrome 74, etc):
```
Insert your configuration here. You can export the configuration using the admin page.
```
### Steps to reproduce
...
### Observed Results
...
### Expected Results
...
+69
View File
@@ -0,0 +1,69 @@
name: New issue
about: Use this template if you have a bug
title: "[Bug] "
labels:
- bug
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this bug report!
- type: textarea
id: environment
attributes:
label: Environment
value: |
* Custom menu version:
* Nextcloud version:
* PHP version:
* Web server (Nginx, Apache2):
* Web browser and version (Firefox 80, Google Chrome 74, etc):
validations:
required: true
- type: textarea
id: configuration
attributes:
label: Configuration
description: Export the configuration using the admin page and copy/paste here ([documentation](https://deblan.gitnet.page/side_menu_doc/tips/#export-the-configuration)).
value: |
```
{
...
}
```
validations:
required: true
- type: textarea
id: steps
attributes:
label: Steps to reproduce
description: How reproduce the bug?
validations:
required: false
- type: textarea
id: resuts
attributes:
label: Observed Results
description: What happened?
validations:
required: false
- type: textarea
id: expected
attributes:
label: Expected Results
description: What should happen?
validations:
required: false
- type: textarea
id: extra
attributes:
label: More informations
description: If you want to share more things, this is here!
validations:
required: false
+64 -11
View File
@@ -1,25 +1,78 @@
pipeline: pipeline:
dependencies: dependencies:
image: gitnet.fr/deblan/devenv image: node:16
pull: true
commands: commands:
- make dep - npm i
when: when:
event: [tag, push, pull_request] event: [tag, push, pull_request]
branch: [master, develop, feature/*] branch: [master, develop, feature/*, fix/*, translations]
build: osv-detector:
image: gitnet.fr/deblan/devenv image: gitnet.fr/deblan/osv-detector:v0.10
commands: commands:
- make build - osv-detector package-lock.json
when: failure: ignore
event: [push, pull_request]
package: build-js:
image: gitnet.fr/deblan/devenv image: node:16
commands:
- npm run build
when:
branch: [master, develop, feature/*, fix/*, translations]
event: [tag, push, pull_request]
build-translations:
image: deblan/php:8.0
commands:
- php bin/generate_l10n.php
when:
branch: [master, develop, feature/*, fix/*, translations]
event: [tag, push, pull_request]
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: volumes:
- /var/www/html/artifacts:/var/www/html/artifacts - /var/www/html/artifacts:/var/www/html/artifacts
secrets: [app_certificate] secrets: [app_certificate]
commands: commands:
- apt-get update
- apt-get install -y zip make
- mkdir -p "$HOME/.nextcloud/certificates" - mkdir -p "$HOME/.nextcloud/certificates"
- echo "$APP_CERTIFICATE" > "$HOME/.nextcloud/certificates/side_menu.key" - 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) - export VERSION=$(grep "<version>" appinfo/info.xml | grep -o "[0-9]*\.[0-9]*\.[0-9]*" --color=never)
@@ -28,7 +81,7 @@ pipeline:
when: when:
event: [tag] event: [tag]
release: push-release:
image: plugins/gitea-release image: plugins/gitea-release
volumes: volumes:
- /var/www/html/artifacts:/var/www/html/artifacts - /var/www/html/artifacts:/var/www/html/artifacts
+72
View File
@@ -1,5 +1,77 @@
## [Unreleased] ## [Unreleased]
## 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)
* add compatibility with NC26
## 3.6.0
### Added
* add hidden apps compatible with default menu (#219)
## 3.5.2
### Fixed
* add check if menu exists before adding event listeners (#210)
## 3.5.1
### Added
* add translations (thanks to p-bo adn gallegonovato)
### Fixed
* fix #189: sorting not applied on mobile
## 3.5.0
### Added
* add dependency check (ci)
* add code quality check (ci)
* add translations (thanks to gallegonovato)
* add option to disable the display labels in the top menu (#194)
### Fixed
* fix missing img alt (settings image)
* fix code quality alerts
## 3.4.1
### Added
* add translations (thanks to zonorti, jorisvandijk, jak2k)
### Fixed
* fix #183: hide custom categories list when empty (admin page)
## 3.4.0
### Added
* add translations (thanks to Pavelb, nier, Timur, p-bo)
* add possibility to define Custom Menu as default app and redirect to the first top menu app (#177)
## 3.3.2
### Fixed
* fix #173: reduce the height of categories list
## 3.3.1
### Fixed
* fix #162: top and side apps does work correctly
## 3.3.0 ## 3.3.0
### Added ### Added
* add documentation in admin page * add documentation in admin page
+2 -2
View File
@@ -9,7 +9,7 @@ dep:
npm link @nextcloud/vue || sudo npm link @nextcloud/vue npm link @nextcloud/vue || sudo npm link @nextcloud/vue
.ONESHELL: .ONESHELL:
release: build translations release:
if [ -z "$$VERSION" ]; then if [ -z "$$VERSION" ]; then
echo "VERSION required" echo "VERSION required"
exit 1 exit 1
@@ -34,4 +34,4 @@ translations:
.ONESHELL: .ONESHELL:
run-code-quality-analysis: run-code-quality-analysis:
export SONAR_TOKEN="$$SONAR_TOKEN_DEBLAN_SIDE_MENU" export SONAR_TOKEN="$$SONAR_TOKEN_DEBLAN_SIDE_MENU"
sonar-scanner -Dsonar.projectKey=deblan-side_menu -Dsonar.sources=. -Dsonar.host.url=https://cq.gitnet.fr sonar-scanner -Dsonar.projectKey=deblan-side_menu -Dsonar.sources=. -Dsonar.host.url=$$SONAR_SERVER -Dsonar.branch.name=$$(git branch --show-current)
+14 -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) [![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/) [![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. 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. You can also add and sort custom categories, define apps that must be displayed in the top menu, etc. Fully customisable.
@@ -18,10 +19,12 @@ You can customize colors depending of the theme (Dark theme and Breeze Dark).
You like this app and you want to support me? ☕ [Buy me a coffee](https://www.buymeacoffee.com/deblan) or [Donate with liberapay](https://liberapay.com/deblan) You like this app and you want to support me? ☕ [Buy me a coffee](https://www.buymeacoffee.com/deblan) or [Donate with liberapay](https://liberapay.com/deblan)
## [📘 Read the documentation](https://deblan.gitnet.page/side_menu_doc/)
Requirements Requirements
------------ ------------
* PHP >= 7.4 * PHP >= 8.0
* App `theming` enabled * App `theming` enabled
Installation and upgrade Installation and upgrade
@@ -47,6 +50,16 @@ Users can disable the menu using the page of personal settings.
Use the shortcut `Ctrl`+`o` to open and to hide the side menu. Use `tab` to navigate. Use the shortcut `Ctrl`+`o` to open and to hide the side menu. Use `tab` to navigate.
### Use first top menu app as default app
You can easily let Custom Menu redirect to the first app in the top menu by changing the following parameter in your `config/config.php`:
```
'defaultapp' => 'side_menu',
```
If the top menu is empty then it redirects to files.
How to contribute? How to contribute?
------------------ ------------------
+4 -4
View File
@@ -17,7 +17,7 @@ You can report a bug or request a feature by opening an issue.
Requirements: Requirements:
* PHP >= 7.4 * PHP >= 8.0
* App `theming` enabled * App `theming` enabled
If you like this application and if you want to support the development: If you like this application and if you want to support the development:
@@ -32,12 +32,12 @@ Notice
Because I believe in a free and decentralized Internet, [Gitnet](https://gitnet.fr) is **self-hosted at home**. 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/). In case of downtime, you can download **Custom Menu** from [here](https://kim.deblan.fr/~side_menu/).
]]></description> ]]></description>
<version>3.3.0</version> <version>3.8.0</version>
<licence>agpl</licence> <licence>agpl</licence>
<author mail="contact@deblan.fr" homepage="https://www.deblan.io/">Simon Vieille</author> <author mail="contact@deblan.fr" homepage="https://www.deblan.io/">Simon Vieille</author>
<namespace>SideMenu</namespace> <namespace>SideMenu</namespace>
<documentation> <documentation>
<admin>https://gitnet.fr/deblan/side_menu/src/branch/master/README.md</admin> <admin>https://deblan.gitnet.page/side_menu_doc/</admin>
<developer>https://gitnet.fr/deblan/side_menu/src/branch/master/README.md</developer> <developer>https://gitnet.fr/deblan/side_menu/src/branch/master/README.md</developer>
</documentation> </documentation>
<category>customization</category> <category>customization</category>
@@ -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_big_menu.png</screenshot>
<screenshot>https://gitnet.fr/deblan/side_menu/raw/branch/master/screenshots/nc25_default_menu.png</screenshot> <screenshot>https://gitnet.fr/deblan/side_menu/raw/branch/master/screenshots/nc25_default_menu.png</screenshot>
<dependencies> <dependencies>
<nextcloud min-version="25" max-version="25"/> <nextcloud min-version="25" max-version="26"/>
<php min-version="7.4"/> <php min-version="7.4"/>
</dependencies> </dependencies>
<settings> <settings>
+1
View File
@@ -19,6 +19,7 @@
return [ return [
'routes' => [ 'routes' => [
['name' => 'App#index', 'url' => '/', 'verb' => 'GET'],
['name' => 'Css#stylesheet', 'url' => '/css/stylesheet', 'verb' => 'GET'], ['name' => 'Css#stylesheet', 'url' => '/css/stylesheet', 'verb' => 'GET'],
['name' => 'Js#script', 'url' => '/js/script', 'verb' => 'GET'], ['name' => 'Js#script', 'url' => '/js/script', 'verb' => 'GET'],
['name' => 'Js#config', 'url' => '/js/config', 'verb' => 'GET'], ['name' => 'Js#config', 'url' => '/js/config', 'verb' => 'GET'],
+5 -1
View File
@@ -137,6 +137,10 @@
padding-right: 20px; padding-right: 20px;
} }
.side-menu-setting-label--top {
vertical-align: top;
}
.side-menu-setting-form { .side-menu-setting-form {
display: table-cell; display: table-cell;
min-width: 300px; min-width: 300px;
@@ -182,7 +186,7 @@
} }
.badge { .badge {
border-size: 1px; border-width: 1px;
padding: 2px 8px; padding: 2px 8px;
margin-right: 2px; margin-right: 2px;
margin-bottom: 5px; margin-bottom: 5px;
+1 -4
View File
@@ -198,7 +198,7 @@
} }
.side-menu-categories { .side-menu-categories {
max-height: calc(100vh - 5px); max-height: calc(100vh - 55px);
overflow: auto; overflow: auto;
position: relative; position: relative;
top: 5px; top: 5px;
@@ -235,9 +235,6 @@
.side-menu-always-displayed body { .side-menu-always-displayed body {
width: calc(100% - 50px) !important; width: calc(100% - 50px) !important;
}
.side-menu-always-displayed body {
position: absolute; position: absolute;
left: 50px; left: 50px;
} }
+110
View File
@@ -0,0 +1,110 @@
<?php
/**
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
namespace OCA\SideMenu\Controller;
use OC;
use OCA\SideMenu\Service\AppRepository;
use OCA\SideMenu\Service\ConfigProxy;
use OCP\AppFramework\Controller;
use OCP\AppFramework\Http\RedirectResponse;
use OCP\IRequest;
use OCP\IURLGenerator;
use OCP\IUserSession;
class AppController extends Controller
{
/**
* @var ConfigProxy
*/
protected $config;
/**
* @var AppRepository
*/
protected $appRepository;
public function __construct(
string $appName,
IRequest $request,
AppRepository $appRepository,
IURLGenerator $urlGenerator,
ConfigProxy $config
) {
parent::__construct($appName, $request);
$this->appRepository = $appRepository;
$this->urlGenerator = $urlGenerator;
$this->config = $config;
}
/**
* @NoAdminRequired
* @NoCSRFRequired
*/
public function index(): RedirectResponse
{
$user = OC::$server[IUserSession::class]->getUser();
$topMenuApps = $this->config->getAppValueArray('top-menu-apps', '[]');
$hiddenApps = $this->config->getAppValueArray('big-menu-hidden-apps', '[]');
$isForced = $this->config->getAppValueBool('force', '0');
$userTopMenuApps = $this->config->getUserValueArray($user, 'top-menu-apps', '[]');
$apps = $this->appRepository->getOrderedApps($user);
if (!$isForced && !empty($userTopMenuApps)) {
$topMenuApps = $userTopMenuApps;
}
foreach ($apps as $app) {
$inTopMenuApps = in_array($app['id'], $topMenuApps);
$inHiddenApps = in_array($app['id'], $hiddenApps);
if (!$inTopMenuApps || $inHiddenApps) {
continue;
}
return $this->redirectToApp($app, true);
}
return $this->redirectToApp('files');
}
protected function redirectToApp($app, bool $isHref = false): RedirectResponse
{
if (!$isHref) {
$isIgnoreFrontController = true === OC::$server->getConfig()->getSystemValue(
'htaccess.IgnoreFrontController',
false
);
$isFrontControllerActive = 'true' === getenv('front_controller_active');
if ($isIgnoreFrontController || $isFrontControllerActive) {
$path = '/apps/%s/';
} else {
$path = '/index.php/apps/%s/';
}
$url = $this->urlGenerator->getAbsoluteURL(sprintf($path, $app));
} else {
$url = $app['href'];
}
return new RedirectResponse($url);
}
}
+20 -11
View File
@@ -21,14 +21,14 @@ namespace OCA\SideMenu\Controller;
use OC; use OC;
use OC\User\User; use OC\User\User;
use OCA\SideMenu\AppInfo\Application; use OCA\SideMenu\AppInfo\Application;
use OCA\SideMenu\Service\Color;
use OCA\SideMenu\Service\ConfigProxy; use OCA\SideMenu\Service\ConfigProxy;
use OCA\Theming\ThemingDefaults;
use OCP\AppFramework\Controller; use OCP\AppFramework\Controller;
use OCP\AppFramework\Http\Response; use OCP\AppFramework\Http\Response;
use OCP\AppFramework\Http\TemplateResponse; use OCP\AppFramework\Http\TemplateResponse;
use OCP\IRequest; use OCP\IRequest;
use OCP\IUserSession; use OCP\IUserSession;
use OCA\Theming\ThemingDefaults;
use OCA\SideMenu\Service\Color;
class CssController extends Controller class CssController extends Controller
{ {
@@ -58,8 +58,7 @@ class CssController extends Controller
ConfigProxy $config, ConfigProxy $config,
ThemingDefaults $theming, ThemingDefaults $theming,
Color $color Color $color
) ) {
{
parent::__construct($appName, $request); parent::__construct($appName, $request);
$this->user = OC::$server[IUserSession::class]->getUser(); $this->user = OC::$server[IUserSession::class]->getUser();
@@ -105,16 +104,18 @@ class CssController extends Controller
$topSideMenuApps = $userTopSideMenuApps; $topSideMenuApps = $userTopSideMenuApps;
} }
$isDarkThemeUserEnabled = $this->config->getUserValue($this->user, 'theme', '', 'accessibility') === 'dark'; $isDarkThemeUserEnabled = 'dark' === $this->config->getUserValue($this->user, 'theme', '', 'accessibility');
$isBreezeDarkUserEnabled = $this->config->getUserValue($this->user, 'theme_enabled', '', 'breezedark'); $isBreezeDarkUserEnabled = $this->config->getUserValue($this->user, 'theme_enabled', '', 'breezedark');
$isBreezeDarkUserEnabled = $isBreezeDarkUserEnabled === '1' || ($isBreezeDarkGlobalEnabled && $isBreezeDarkUserEnabled === ''); $isBreezeDarkUserEnabled = '1' === $isBreezeDarkUserEnabled ||
($isBreezeDarkGlobalEnabled && '' === $isBreezeDarkUserEnabled);
} else { } else {
$isDarkThemeUserEnabled = false; $isDarkThemeUserEnabled = false;
$isBreezeDarkUserEnabled = false; $isBreezeDarkUserEnabled = false;
} }
$isDarkMode = ($isAccessibilityAppEnabled && $isDarkThemeUserEnabled) || ($isBreezeDarkAppEnabled && $isBreezeDarkUserEnabled); $isDarkMode = ($isAccessibilityAppEnabled && $isDarkThemeUserEnabled) ||
($isBreezeDarkAppEnabled && $isBreezeDarkUserEnabled);
$primaryColor = $this->theming->getColorPrimary(); $primaryColor = $this->theming->getColorPrimary();
$lightenPrimaryColor = $this->color->adjustBrightness($primaryColor, 0.2); $lightenPrimaryColor = $this->color->adjustBrightness($primaryColor, 0.2);
@@ -125,25 +126,33 @@ class CssController extends Controller
if ($isDarkMode) { if ($isDarkMode) {
$backgroundColor = $this->config->getAppValue('dark-mode-background-color', $darkenPrimaryColor); $backgroundColor = $this->config->getAppValue('dark-mode-background-color', $darkenPrimaryColor);
$backgroundColorTo = $this->config->getAppValue('dark-mode-background-color-to', $darkenPrimaryColor); $backgroundColorTo = $this->config->getAppValue('dark-mode-background-color-to', $darkenPrimaryColor);
$currentAppBackgroundColor = $this->config->getAppValue('dark-mode-current-app-background-color', $darkenPrimaryColor2); $currentAppBackgroundColor = $this->config->getAppValue(
'dark-mode-current-app-background-color',
$darkenPrimaryColor2
);
$loaderColor = $this->config->getAppValue('dark-mode-loader-color', $lightenPrimaryColor); $loaderColor = $this->config->getAppValue('dark-mode-loader-color', $lightenPrimaryColor);
$textColor = $this->config->getAppValue('dark-mode-text-color', $textColor); $textColor = $this->config->getAppValue('dark-mode-text-color', $textColor);
$iconInvertFilter = abs($this->config->getAppValueInt('dark-mode-icon-invert-filter', '0')).'%'; $iconInvertFilter = abs($this->config->getAppValueInt('dark-mode-icon-invert-filter', '0')).'%';
$iconOpacity = abs($this->config->getAppValueInt('dark-mode-icon-opacity', '100') / 100); $iconOpacity = abs($this->config->getAppValueInt('dark-mode-icon-opacity', '100') / 100);
$opener = $this->config->getAppValue('dark-mode-opener', 'side-menu-opener'); $opener = $this->config->getAppValue('dark-mode-opener', 'side-menu-opener');
$backgroundOpacity = dechex($this->config->getAppValueInt('dark-mode-background-color-opacity', '100') * 255 / 100); $opacity = $this->config->getAppValueInt('dark-mode-background-color-opacity', '100');
$backgroundOpacity = dechex($opacity * 255 / 100);
} else { } else {
$backgroundColor = $this->config->getAppValue('background-color', $darkenPrimaryColor); $backgroundColor = $this->config->getAppValue('background-color', $darkenPrimaryColor);
$backgroundColorTo = $this->config->getAppValue('background-color-to', $darkenPrimaryColor); $backgroundColorTo = $this->config->getAppValue('background-color-to', $darkenPrimaryColor);
$currentAppBackgroundColor = $this->config->getAppValue('current-app-background-color', $darkenPrimaryColor2); $currentAppBackgroundColor = $this->config->getAppValue(
'current-app-background-color',
$darkenPrimaryColor2
);
$loaderColor = $this->config->getAppValue('loader-color', $lightenPrimaryColor); $loaderColor = $this->config->getAppValue('loader-color', $lightenPrimaryColor);
$textColor = $this->config->getAppValue('text-color', $textColor); $textColor = $this->config->getAppValue('text-color', $textColor);
$iconInvertFilter = abs($this->config->getAppValueInt('icon-invert-filter', '0')).'%'; $iconInvertFilter = abs($this->config->getAppValueInt('icon-invert-filter', '0')).'%';
$iconOpacity = abs($this->config->getAppValueInt('icon-opacity', '100') / 100); $iconOpacity = abs($this->config->getAppValueInt('icon-opacity', '100') / 100);
$opener = $this->config->getAppValue('opener', 'side-menu-opener'); $opener = $this->config->getAppValue('opener', 'side-menu-opener');
$backgroundOpacity = dechex($this->config->getAppValueInt('background-color-opacity', '100') * 255 / 100); $opacity = $this->config->getAppValueInt('background-color-opacity', '100');
$backgroundOpacity = dechex($opacity * 255 / 100);
} }
$backgroundColor .= $backgroundOpacity; $backgroundColor .= $backgroundOpacity;
+4 -1
View File
@@ -95,7 +95,6 @@ class JsController extends Controller
{ {
$topMenuApps = $this->config->getAppValueArray('top-menu-apps', '[]'); $topMenuApps = $this->config->getAppValueArray('top-menu-apps', '[]');
$topSideMenuApps = $this->config->getAppValueArray('top-side-menu-apps', '[]'); $topSideMenuApps = $this->config->getAppValueArray('top-side-menu-apps', '[]');
$topMenuAppsOrder = $this->config->getAppValueArray('top-menu-apps-order', '[]');
$targetBlankApps = $this->config->getAppValueArray('target-blank-apps', '[]'); $targetBlankApps = $this->config->getAppValueArray('target-blank-apps', '[]');
$useAvatar = $this->config->getAppValueBool('use-avatar', '0'); $useAvatar = $this->config->getAppValueBool('use-avatar', '0');
$isForced = $this->config->getAppValueBool('force', '0'); $isForced = $this->config->getAppValueBool('force', '0');
@@ -172,6 +171,10 @@ class JsController extends Controller
'avatar' => $avatar, 'avatar' => $avatar,
'top-menu-apps' => $topMenuApps, 'top-menu-apps' => $topMenuApps,
'top-side-menu-apps' => $topSideMenuApps, 'top-side-menu-apps' => $topSideMenuApps,
'top-menu-mouse-over-hidden-label' => $this->config->getAppValueInt(
'top-menu-mouse-over-hidden-label',
'0'
),
'target-blank-apps' => $targetBlankApps, 'target-blank-apps' => $targetBlankApps,
'settings' => $settings, 'settings' => $settings,
'logo' => $this->themingDefaults->getLogo(), 'logo' => $this->themingDefaults->getLogo(),
+4 -4
View File
@@ -113,11 +113,11 @@ class NavController extends Controller
} }
foreach ($apps as $app) { foreach ($apps as $app) {
if (in_array($app['id'], $topMenuApps) && !in_array($app['id'], $userTopSideMenuApps)) { $inTopMenuApps = in_array($app['id'], $topMenuApps);
continue; $inTopSideMenuApps = in_array($app['id'], $topSideMenuApps);
} $inHiddenApps = in_array($app['id'], $hiddenApps);
if (in_array($app['id'], $hiddenApps)) { if (($inTopMenuApps && !$inTopSideMenuApps) || $inHiddenApps) {
continue; continue;
} }
+7 -2
View File
@@ -43,8 +43,13 @@ class PersonalSettingController extends Controller
*/ */
protected $userSession; protected $userSession;
public function __construct($appName, IRequest $request, IConfig $config, ConfigProxy $configProxy, IUserSession $userSession) public function __construct(
{ $appName,
IRequest $request,
IConfig $config,
ConfigProxy $configProxy,
IUserSession $userSession
) {
parent::__construct($appName, $request); parent::__construct($appName, $request);
$this->config = $config; $this->config = $config;
+2 -1
View File
@@ -74,7 +74,8 @@ class CategoryRepository
} }
foreach ($categoriesLabels as $k => $category) { foreach ($categoriesLabels as $k => $category) {
$categoriesLabels[$category['id']] = $category['translations'][$currentLanguage]['name'] ?? $category['translations']['en']['name']; $categoriesLabels[$category['id']] = $category['translations'][$currentLanguage]['name'] ??
$category['translations']['en']['name'];
unset($categoriesLabels[$k]); unset($categoriesLabels[$k]);
} }
+16 -3
View File
@@ -125,15 +125,24 @@ class Admin implements ISettings
'background-color' => $backgroundColor, 'background-color' => $backgroundColor,
'background-color-to' => $backgroundColorTo, 'background-color-to' => $backgroundColorTo,
'background-color-opacity' => $this->config->getAppValueInt('background-color-opacity', '100'), 'background-color-opacity' => $this->config->getAppValueInt('background-color-opacity', '100'),
'current-app-background-color' => $this->config->getAppValue('current-app-background-color', $darkenPrimaryColor2), 'current-app-background-color' => $this->config->getAppValue(
'current-app-background-color',
$darkenPrimaryColor2
),
'loader-color' => $this->config->getAppValue('loader-color', $lightenPrimaryColor), 'loader-color' => $this->config->getAppValue('loader-color', $lightenPrimaryColor),
'icon-invert-filter' => $this->config->getAppValueInt('icon-invert-filter', '0'), 'icon-invert-filter' => $this->config->getAppValueInt('icon-invert-filter', '0'),
'icon-opacity' => $this->config->getAppValueInt('icon-opacity', '100'), 'icon-opacity' => $this->config->getAppValueInt('icon-opacity', '100'),
'text-color' => $this->config->getAppValue('text-color', $textColor), 'text-color' => $this->config->getAppValue('text-color', $textColor),
'dark-mode-background-color' => $darkModeBackgroundColor, 'dark-mode-background-color' => $darkModeBackgroundColor,
'dark-mode-background-color-to' => $darkModeBackgroundColorTo, 'dark-mode-background-color-to' => $darkModeBackgroundColorTo,
'dark-mode-background-color-opacity' => $this->config->getAppValueInt('dark-mode-background-color-opacity', '100'), 'dark-mode-background-color-opacity' => $this->config->getAppValueInt(
'dark-mode-current-app-background-color' => $this->config->getAppValue('dark-mode-current-app-background-color', $darkenPrimaryColor2), 'dark-mode-background-color-opacity',
'100'
),
'dark-mode-current-app-background-color' => $this->config->getAppValue(
'dark-mode-current-app-background-color',
$darkenPrimaryColor2
),
'dark-mode-loader-color' => $this->config->getAppValue('dark-mode-loader-color', $textColor), 'dark-mode-loader-color' => $this->config->getAppValue('dark-mode-loader-color', $textColor),
'dark-mode-icon-invert-filter' => $this->config->getAppValueInt('dark-mode-icon-invert-filter', '0'), 'dark-mode-icon-invert-filter' => $this->config->getAppValueInt('dark-mode-icon-invert-filter', '0'),
'dark-mode-icon-opacity' => $this->config->getAppValueInt('dark-mode-icon-opacity', '100'), 'dark-mode-icon-opacity' => $this->config->getAppValueInt('dark-mode-icon-opacity', '100'),
@@ -159,6 +168,10 @@ class Admin implements ISettings
'force' => $this->config->getAppValue('force', '0'), 'force' => $this->config->getAppValue('force', '0'),
'target-blank-apps' => $this->config->getAppValueArray('target-blank-apps', '[]'), 'target-blank-apps' => $this->config->getAppValueArray('target-blank-apps', '[]'),
'top-menu-apps' => $this->config->getAppValueArray('top-menu-apps', '[]'), 'top-menu-apps' => $this->config->getAppValueArray('top-menu-apps', '[]'),
'top-menu-mouse-over-hidden-label' => $this->config->getAppValue(
'top-menu-mouse-over-hidden-label',
'0'
),
'apps-order' => $this->config->getAppValueArray('apps-order', '[]'), 'apps-order' => $this->config->getAppValueArray('apps-order', '[]'),
'ordered-apps' => $this->appRepository->getOrderedApps(), 'ordered-apps' => $this->appRepository->getOrderedApps(),
'top-side-menu-apps' => $this->config->getAppValueArray('top-side-menu-apps', '[]'), 'top-side-menu-apps' => $this->config->getAppValueArray('top-side-menu-apps', '[]'),
+7 -2
View File
@@ -54,8 +54,13 @@ class Personal implements ISettings
*/ */
private $appRepository; private $appRepository;
public function __construct(IL10N $l, ILogger $logger, ConfigProxy $config, IUserSession $userSession, AppRepository $appRepository) public function __construct(
{ IL10N $l,
ILogger $logger,
ConfigProxy $config,
IUserSession $userSession,
AppRepository $appRepository
) {
$this->l = $l; $this->l = $l;
$this->logger = $logger; $this->logger = $logger;
$this->config = $config; $this->config = $config;
+7 -1
View File
@@ -16,7 +16,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
--> -->
<template> <template>
<div> <div>
<ul class="side-menu-setting-list"> <ul class="side-menu-setting-list" :class="{hide: values.length === 0}">
<li v-for="item in values" class="side-menu-setting-list-item" v-on:click="showEditForm(item)"> <li v-for="item in values" class="side-menu-setting-list-item" v-on:click="showEditForm(item)">
<span v-text="item.en"></span> <span v-text="item.en"></span>
</li> </li>
@@ -77,6 +77,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
} }
</style> </style>
<style scoped>
.hide {
display: none;
}
</style>
<script> <script>
import NcModal from '@nextcloud/vue/dist/Components/NcModal' import NcModal from '@nextcloud/vue/dist/Components/NcModal'
import NcActions from '@nextcloud/vue/dist/Components/NcActions' import NcActions from '@nextcloud/vue/dist/Components/NcActions'
+41 -8
View File
@@ -22,12 +22,16 @@
<template> <template>
<nav class="app-menu show"> <nav class="app-menu show">
<ul class="app-menu-main" v-if="apps !== null"> <ul
class="app-menu-main"
: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()" <li v-for="app in mainAppList()"
:key="app.id" :key="app.id"
:data-app-id="app.id" :data-app-id="app.id"
class="app-menu-entry" class="app-menu-entry"
:class="{ 'app-menu-entry__active': app.active }" :class="{ 'app-menu-entry__active': app.active, 'app-menu-entry__hidden-label': hiddenLabels === 1, 'app-menu-main__show-hovered': hiddenLabels === 2 }"
:style="makeStyle(app)" :style="makeStyle(app)"
> >
<a :href="app.href" <a :href="app.href"
@@ -49,6 +53,7 @@
:aria-label="appLabel(app)" :aria-label="appLabel(app)"
:aria-current="app.active ? 'page' : false" :aria-current="app.active ? 'page' : false"
:href="app.href" :href="app.href"
:style="makeStyle(app)"
class="app-menu-popover-entry"> class="app-menu-popover-entry">
<template #icon> <template #icon>
<div class="app-icon" :class="{ 'has-unread': app.unread > 0 }"> <div class="app-icon" :class="{ 'has-unread': app.unread > 0 }">
@@ -77,6 +82,7 @@ export default {
appLimit: 0, appLimit: 0,
observer: null, observer: null,
targetBlankApps: [], targetBlankApps: [],
hiddenLabels: true
} }
}, },
mounted() { mounted() {
@@ -96,6 +102,7 @@ export default {
}) })
this.targetBlankApps = window.targetBlankApps this.targetBlankApps = window.targetBlankApps
this.hiddenLabels = window.topMenuAppsMouseOverHiddenLabel
this.observer = new ResizeObserver(this.resize) this.observer = new ResizeObserver(this.resize)
this.observer.observe(this.$el) this.observer.observe(this.$el)
this.resize() this.resize()
@@ -104,13 +111,19 @@ export default {
this.observer.disconnect() this.observer.disconnect()
}, },
methods: { methods: {
appLabel() { appLabel(app) {
return (app) => app.name return app.name
+ (app.active ? ' (' + t('core', 'Currently open') + ')' : '') + (app.active ? ' (' + t('core', 'Currently open') + ')' : '')
+ (app.unread > 0 ? ' (' + n('core', '{count} notification', '{count} notifications', app.unread, { count: app.unread }) + ')' : '') + (app.unread > 0 ? ' (' + n('core', '{count} notification', '{count} notifications', app.unread, { count: app.unread }) + ')' : '')
}, },
appList() { appList() {
return Object.values(this.apps) let items = Object.values(this.apps)
items.sort((a, b) => {
return a.order < b.order ? -1 : 1;
})
return items
}, },
mainAppList() { mainAppList() {
return this.appList().slice(0, this.appLimit) return this.appList().slice(0, this.appLimit)
@@ -220,8 +233,8 @@ $header-icon-size: 20px;
overflow: hidden; overflow: hidden;
} }
&:hover, &:not(.app-menu-entry__hidden-label):not(.app-menu-entry__show-hovered):hover,
&:focus-within { &:not(.app-menu-entry__hidden-label):not(.app-menu-entry__show-hovered):focus-within {
opacity: 1; opacity: 1;
.app-menu-entry--label { .app-menu-entry--label {
opacity: 1; opacity: 1;
@@ -232,7 +245,6 @@ $header-icon-size: 20px;
overflow: visible; overflow: visible;
} }
} }
} }
// Show labels // Show labels
@@ -241,7 +253,28 @@ $header-icon-size: 20px;
.app-menu-entry:hover, .app-menu-entry:hover,
.app-menu-entry:focus { .app-menu-entry:focus {
opacity: 1; opacity: 1;
}
&: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 {
margin-top: -6px;
}
.app-menu-entry--label {
opacity: 1;
bottom: 0;
}
&::before, .app-menu-entry::before {
opacity: 0;
}
}
&.app-menu-main__show-hovered .app-menu-entry:hover,
&.app-menu-main__show-hovered .app-menu-entry:focus {
img { img {
margin-top: -6px; margin-top: -6px;
} }
+1 -1
View File
@@ -20,7 +20,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
{{ label }} {{ label }}
<span class="avatardiv avatardiv-shown"> <span class="avatardiv avatardiv-shown">
<img v-bind:src="avatar"> <img v-bind:src="avatar" :alt="label">
</span> </span>
</a> </a>
</div> </div>
+23 -18
View File
@@ -41,6 +41,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
<ul class="side-menu-apps-list"> <ul class="side-menu-apps-list">
<SideMenuApp <SideMenuApp
v-for="(app, key) in apps" v-for="(app, key) in apps"
v-if="!hiddenApps.includes(app.id)"
v-bind:classes="{'side-menu-app': true, 'active': app.active}" v-bind:classes="{'side-menu-app': true, 'active': app.active}"
v-bind:key="key" v-bind:key="key"
v-bind:icon="app.icon" v-bind:icon="app.icon"
@@ -53,7 +54,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
</template> </template>
<script> <script>
import trim from 'trim'
import axios from 'axios' import axios from 'axios'
import OpenerButton from './OpenerButton' import OpenerButton from './OpenerButton'
import SettingsButton from './SettingsButton' import SettingsButton from './SettingsButton'
@@ -77,6 +77,7 @@ export default {
avatar: null, avatar: null,
forceLightIcon: false, forceLightIcon: false,
targetBlankApps: [], targetBlankApps: [],
hiddenApps: [],
settings: null, settings: null,
} }
}, },
@@ -92,7 +93,11 @@ export default {
for (let id in ncApps) { for (let id in ncApps) {
if (window.topMenuApps.includes(id) && !window.topSideMenuApps.includes(id)) { if (window.topMenuApps.includes(id) && !window.topSideMenuApps.includes(id)) {
continue; continue
}
if (this.hiddenApps.includes(id)) {
continue
} }
let app = ncApps[id] let app = ncApps[id]
@@ -103,10 +108,10 @@ export default {
finalApps.sort((a, b) => { finalApps.sort((a, b) => {
if (a.order === null || b.order === null) { 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 this.apps = finalApps
@@ -117,23 +122,23 @@ export default {
}, },
retrieveConfig() { 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']
})
}, },
}, },
mounted() { mounted() {
this.retrieveConfig() axios
this.retrieveApps() .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']
this.retrieveApps()
})
} }
} }
</script> </script>
+18 -32
View File
@@ -3,21 +3,14 @@
"No": "Ne" "No": "Ne"
"Yes": "Ano" "Yes": "Ano"
"Menu": "Nabídka" "Menu": "Nabídka"
? 'Use the shortcut <span class="keyboard-key">Ctrl</span>+<span class="keyboard-key">o</span> ? 'Use the shortcut <span class="keyboard-key">Ctrl</span>+<span class="keyboard-key">o</span> to open and to hide the side menu. Use <span class="keyboard-key">tab</span> to navigate.'
to open and to hide the side menu. Use <span class="keyboard-key">tab</span> to : 'Pro otevření/skrytí postranní nabídky použijte zkratku <span class="keyboard-key">Ctrl</span>+<span class="keyboard-key">O</span> („O“ jako otevřít). Pro pohyb po použijte klávesu <span class="keyboard-key">Tab</span>.'
navigate.'
: 'Pro otevření/skrytí postranní nabídky použijte zkratku <span class="keyboard-key">Ctrl</span>+<span
class="keyboard-key">O</span> („O“ jako otevřít). Pro pohyb po použijte klávesu
<span class="keyboard-key">Tab</span>.'
"Top menu": "Horní nabídka" "Top menu": "Horní nabídka"
"Apps that not must be moved in the side menu": "Aplikace, které nepřesouvat do postranní\ "Apps that not must be moved in the side menu": "Aplikace, které nepřesouvat do postranní nabídky"
\ nabídky" "If there is no selection then the global configuration is applied.": "Pokud neexistuje žádný výběr, je uplatněno globální nastavení."
"If there is no selection then the global configuration is applied.": "Pokud neexistuje\
\ žádný výběr, je uplatněno globální nastavení."
"Experimental": "Experimentální" "Experimental": "Experimentální"
"Save": "Uložit" "Save": "Uložit"
"You like this app and you want to support me?": "Líbí se vám tato aplikace a chcete\ "You like this app and you want to support me?": "Líbí se vám tato aplikace a chcete podpořit její vývoj?"
\ podpořit její vývoj?"
"Buy me a coffee ☕": "Kupte mi kafe ☕" "Buy me a coffee ☕": "Kupte mi kafe ☕"
"Hidden": "Skryté" "Hidden": "Skryté"
"Small": "Malé" "Small": "Malé"
@@ -44,21 +37,16 @@
"After the logo": "Za logem" "After the logo": "Za logem"
"Position": "Pozice" "Position": "Pozice"
"Show only the opener (hidden logo)": "Zobrazovat pouze otevírací tlačítko (logo skryto)" "Show only the opener (hidden logo)": "Zobrazovat pouze otevírací tlačítko (logo skryto)"
"Do not display the side menu and the opener if there is no application (eg: public pages).": "Nezobrazovat\ "Do not display the side menu and the opener if there is no application (eg: public pages).": "Nezobrazovat postranní nabídku a její otevírací tlačítko pokud nejsou dostupné žádné aplikace (např. na veřejných stránkách)."
\ postranní nabídku a její otevírací tlačítko pokud nejsou dostupné žádné aplikace\
\ (např. na veřejných stránkách)."
"Panel": "Panel" "Panel": "Panel"
"Open the menu when the mouse is hover the opener (automatically disabled on touch screens)": "Otevřít\ "Open the menu when the mouse is hover the opener (automatically disabled on touch screens)": "Otevřít nabídku při najetím ukazatelem na tlačítko nabídky (automaticky vypnuto pro dotykové obrazovky)"
\ nabídku při najetím ukazatelem na tlačítko nabídky (automaticky vypnuto pro dotykové\
\ obrazovky)"
"Display the big menu": "Zobrazit velkou nabídku" "Display the big menu": "Zobrazit velkou nabídku"
"Display the logo": "Zobrazit logo" "Display the logo": "Zobrazit logo"
"Icons and texts": "Ikony a texty" "Icons and texts": "Ikony a texty"
"Loader enabled": "Načítání zapnuto" "Loader enabled": "Načítání zapnuto"
"Tips": "Tipy" "Tips": "Tipy"
"Always displayed": "Vždy zobrazeno" "Always displayed": "Vždy zobrazeno"
"This is the automatic behavior when the menu is always displayed.": "Toto je automatické\ "This is the automatic behavior when the menu is always displayed.": "Toto je automatické chování, kdy je nabídka vždy zobrazena."
\ chování, kdy je nabídka vždy zobrazena."
"Not compatible with touch screens.": "Nekompatibilní s dotykovými obrazovkami." "Not compatible with touch screens.": "Nekompatibilní s dotykovými obrazovkami."
"Big menu": "Velká nabídka" "Big menu": "Velká nabídka"
"Live preview": "Živý náhled" "Live preview": "Živý náhled"
@@ -72,13 +60,10 @@
"Export the configuration": "Exportovat nastavení" "Export the configuration": "Exportovat nastavení"
"Purge the cache": "Vyprázdnit mezipaměť" "Purge the cache": "Vyprázdnit mezipaměť"
"Show the link to settings": "Zobrazit odkaz na nastavení" "Show the link to settings": "Zobrazit odkaz na nastavení"
"The menu is enabled by default for users": "Nabídka je ve výchozím stavu pro uživatele\ "The menu is enabled by default for users": "Nabídka je ve výchozím stavu pro uživatele zapnutá"
\ zapnutá"
"Except when the configuration is forced.": "S výjimkou, kdy je nastavení vynuceno." "Except when the configuration is forced.": "S výjimkou, kdy je nastavení vynuceno."
"Apps that should not be displayed in the menu": "Aplikace, které by neměly být v\ "Apps that should not be displayed in the menu": "Aplikace, které by neměly být v nabídce zobrazeny"
\ nabídce zobrazeny" "This feature is only compatible with the <code>big menu</code> display.": "Tato funkce je kompatibilní pouze s <code>velkou nabídkou</code>."
"This feature is only compatible with the <code>big menu</code> display.": "Tato funkce\
\ je kompatibilní pouze s <code>velkou nabídkou</code>."
"The logo is a link to the default app": "Logo je odkaz na výchozí aplikaci" "The logo is a link to the default app": "Logo je odkaz na výchozí aplikaci"
"Others": "Ostatní" "Others": "Ostatní"
"Categories": "Kategorie" "Categories": "Kategorie"
@@ -87,8 +72,7 @@
"Name": "Název" "Name": "Název"
"Customed": "Přizpůsobeno" "Customed": "Přizpůsobeno"
"Show and hide the list of categories": "Zobrazit/skrýt seznam kategorií" "Show and hide the list of categories": "Zobrazit/skrýt seznam kategorií"
"This parameters are used when Dark theme or Breeze Dark Theme are enabled.": "Tyto\ "This parameters are used when Dark theme or Breeze Dark Theme are enabled.": "Tyto parametry jsou použity v případě, že je zapnutý (Breeze) tmavý motiv vzhledu."
\ parametry jsou použity v případě, že je zapnutý (Breeze) tmavý motiv vzhledu."
"Dark mode colors": "Barvy tmavého režimu" "Dark mode colors": "Barvy tmavého režimu"
"With categories": "S kategoriemi" "With categories": "S kategoriemi"
"Custom categories": "Vlastní kategorie" "Custom categories": "Vlastní kategorie"
@@ -102,7 +86,9 @@
"Small text": "Malý text" "Small text": "Malý text"
"Normal text": "Normální text" "Normal text": "Normální text"
"Big text": "Velký text" "Big text": "Velký text"
"Applications": "Applications" "Applications": "Aplikace"
"Applications kept in the top menu": "Applications kept in the top menu" "Applications kept in the top menu": "Aplikace ponechané v horní nabídce"
"Applications kept in the top menu but also shown in side menu": "Applications kept in the top menu but also shown in side menu" "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.": "These applications must be selected in the previous option." "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"
+17 -34
View File
@@ -3,21 +3,14 @@
"No": "Nein" "No": "Nein"
"Yes": "Ja" "Yes": "Ja"
"Menu": "Menü" "Menu": "Menü"
? 'Use the shortcut <span class="keyboard-key">Ctrl</span>+<span class="keyboard-key">o</span> ? 'Use the shortcut <span class="keyboard-key">Ctrl</span>+<span class="keyboard-key">o</span> to open and to hide the side menu. Use <span class="keyboard-key">tab</span> to navigate.'
to open and to hide the side menu. Use <span class="keyboard-key">tab</span> to : 'Verwende die Tastenkombination <span class="keyboard-key">Strg</span>+<span class="keyboard-key">o</span>, um das Seitenmenü ein- und auszublenden. Verwende <span class="keyboard-key">tab</span> zum Navigieren.'
navigate.'
: 'Verwende die Tastenkombination <span class="keyboard-key">Strg</span>+<span class="keyboard-key">o</span>,
um das Seitenmenü ein- und auszublenden. Verwende <span class="keyboard-key">tab</span>
zum Navigieren.'
"Top menu": "Obere Navigationsleiste" "Top menu": "Obere Navigationsleiste"
"Apps that not must be moved in the side menu": "Anwendungen, die nicht ins Seitenmenü\ "Apps that not must be moved in the side menu": "Anwendungen, die nicht ins Seitenmenü verschoben werden sollen"
\ verschoben werden sollen" "If there is no selection then the global configuration is applied.": "Wenn keine Auswahl vorhanden ist, wird die globale Konfiguration angewendet."
"If there is no selection then the global configuration is applied.": "Wenn keine\
\ Auswahl vorhanden ist, wird die globale Konfiguration angewendet."
"Experimental": "Experimentell" "Experimental": "Experimentell"
"Save": "Speichern" "Save": "Speichern"
"You like this app and you want to support me?": "Du magst diese Anwendung und möchtest\ "You like this app and you want to support me?": "Du magst diese Anwendung und möchtest mich unterstützen?"
\ mich unterstützen?"
"Buy me a coffee ☕": "Gib mir einen Kaffee aus ☕" "Buy me a coffee ☕": "Gib mir einen Kaffee aus ☕"
"Hidden": "Ausblenden" "Hidden": "Ausblenden"
"Small": "Klein" "Small": "Klein"
@@ -44,21 +37,16 @@
"After the logo": "Nach dem Logo" "After the logo": "Nach dem Logo"
"Position": "Position" "Position": "Position"
"Show only the opener (hidden logo)": "Nur das Menü-Symbol anzeigen (Logo wird ausgeblendet)" "Show only the opener (hidden logo)": "Nur das Menü-Symbol anzeigen (Logo wird ausgeblendet)"
"Do not display the side menu and the opener if there is no application (eg: public pages).": "Zeige\ "Do not display the side menu and the opener if there is no application (eg: public pages).": "Zeige das Seitenmenü und das Menü-Symbol nicht an, wenn keine Anwendung vorhanden ist (z.B. bei öffentlichen Seiten)."
\ das Seitenmenü und das Menü-Symbol nicht an, wenn keine Anwendung vorhanden ist\
\ (z.B. bei öffentlichen Seiten)."
"Panel": "Panel" "Panel": "Panel"
"Open the menu when the mouse is hover the opener (automatically disabled on touch screens)": "Öffne\ "Open the menu when the mouse is hover the opener (automatically disabled on touch screens)": "Öffne das Menü, wenn die Maus über das Menü-Symbol bewegt wird (auf Touchscreens automatisch deaktiviert)"
\ das Menü, wenn die Maus über das Menü-Symbol bewegt wird (auf Touchscreens automatisch\
\ deaktiviert)"
"Display the big menu": "Großes Menü anzeigen" "Display the big menu": "Großes Menü anzeigen"
"Display the logo": "Logo anzeigen" "Display the logo": "Logo anzeigen"
"Icons and texts": "Symbole und Texte" "Icons and texts": "Symbole und Texte"
"Loader enabled": "Ladestandanzeige aktiviert" "Loader enabled": "Ladestandanzeige aktiviert"
"Tips": "Tipps" "Tips": "Tipps"
"Always displayed": "Immer anzeigen" "Always displayed": "Immer anzeigen"
"This is the automatic behavior when the menu is always displayed.": "Dies ist das\ "This is the automatic behavior when the menu is always displayed.": "Dies ist das automatische Verhalten, wenn das Menü immer angezeigt wird."
\ automatische Verhalten, wenn das Menü immer angezeigt wird."
"Not compatible with touch screens.": "Nicht kompatibel mit Touchscreens." "Not compatible with touch screens.": "Nicht kompatibel mit Touchscreens."
"Big menu": "Großes Menü" "Big menu": "Großes Menü"
"Live preview": "Live-Vorschau" "Live preview": "Live-Vorschau"
@@ -67,20 +55,15 @@
"Use my selection": "Verwende meine Auswahl" "Use my selection": "Verwende meine Auswahl"
"Show and hide the list of applications": "Ein- und Ausblenden der Anwendungsliste" "Show and hide the list of applications": "Ein- und Ausblenden der Anwendungsliste"
"Use the avatar instead of the logo": "Avatar anstelle des Logos anzeigen" "Use the avatar instead of the logo": "Avatar anstelle des Logos anzeigen"
"You do not have permission to change the settings.": "Du hast keine Berechtigung,\ "You do not have permission to change the settings.": "Du hast keine Berechtigung, die Einstellungen dieser Anwendung zu ändern."
\ die Einstellungen dieser Anwendung zu ändern."
"Force this configuration to users": "Konfiguration für alle Benutzer erzwingen" "Force this configuration to users": "Konfiguration für alle Benutzer erzwingen"
"Export the configuration": "Konfiguration exportieren" "Export the configuration": "Konfiguration exportieren"
"Purge the cache": "Cache leeren" "Purge the cache": "Cache leeren"
"Show the link to settings": "Link zu den Einstellungen anzeigen" "Show the link to settings": "Link zu den Einstellungen anzeigen"
"The menu is enabled by default for users": "Das Menü ist standardmäßig für alle Benutzer\ "The menu is enabled by default for users": "Das Menü ist standardmäßig für alle Benutzer aktiviert"
\ aktiviert" "Except when the configuration is forced.": "Gilt nicht, wenn die Konfiguration erzwungen wird."
"Except when the configuration is forced.": "Gilt nicht, wenn die Konfiguration erzwungen\ "Apps that should not be displayed in the menu": "Anwendungen, die nicht im Menü angezeigt werden sollen"
\ wird." "This feature is only compatible with the <code>big menu</code> display.": "Kompatibel mit dem <code>großen Menü</code>."
"Apps that should not be displayed in the menu": "Anwendungen, die nicht im Menü angezeigt\
\ werden sollen"
"This feature is only compatible with the <code>big menu</code> display.": "Kompatibel\
\ mit dem <code>großen Menü</code>."
"The logo is a link to the default app": "Das Logo ist ein Link zur Standard-App" "The logo is a link to the default app": "Das Logo ist ein Link zur Standard-App"
"Others": "Andere" "Others": "Andere"
"Categories": "Kategorien" "Categories": "Kategorien"
@@ -89,9 +72,7 @@
"Name": "Name" "Name": "Name"
"Customed": "Benutzerdefiniert" "Customed": "Benutzerdefiniert"
"Show and hide the list of categories": "Liste der Kategorien ein- und ausblenden" "Show and hide the list of categories": "Liste der Kategorien ein- und ausblenden"
"This parameters are used when Dark theme or Breeze Dark Theme are enabled.": "Diese\ "This parameters are used when Dark theme or Breeze Dark Theme are enabled.": "Diese Optionen werden auf <code>Dark Theme</code> oder <code>Breeze Dark Theme</code> angewendet."
\ Optionen werden auf <code>Dark Theme</code> oder <code>Breeze Dark Theme</code>\
\ angewendet."
"Dark mode colors": "Farben für den dunklen Modus" "Dark mode colors": "Farben für den dunklen Modus"
"With categories": "Mit Kategorien" "With categories": "Mit Kategorien"
"Custom categories": "Benutzerdefinierte Kategorien" "Custom categories": "Benutzerdefinierte Kategorien"
@@ -105,7 +86,9 @@
"Small text": "Kleiner Text" "Small text": "Kleiner Text"
"Normal text": "Normaler Text" "Normal text": "Normaler Text"
"Big text": "Großer Text" "Big text": "Großer Text"
"Applications": "Applications" "Applications": "Anwendungen"
"Applications kept in the top menu": "Applications kept in the top menu" "Applications kept in the top menu": "Applications kept in the top menu"
"Applications kept in the top menu but also shown in side menu": "Applications kept in the top menu but also shown in side menu" "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." "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"
+94
View File
@@ -0,0 +1,94 @@
"Custom menu": "Menú personalizado"
"Enable the custom menu": "Habilitar el menú personalizado"
"No": "No"
"Yes": "Sí"
"Menu": "Menú"
? 'Use the shortcut <span class="keyboard-key">Ctrl</span>+<span class="keyboard-key">o</span> to open and to hide the side menu. Use <span class="keyboard-key">tab</span> to navigate.'
: 'Usa la combinación de teclas <span class="keyboard-key">Ctrl</span>+<span class="keyboard-key">o</span> para activar y desactivar el menú lateral. Use <span class="keyboard-key">tab</span> para navegar.'
"Top menu": "Menu principal"
"Apps that not must be moved in the side menu": "Aplicaciones que no se deben mover al menú lateral"
"If there is no selection then the global configuration is applied.": "Si no hay selección, se aplica la configuración global."
"Experimental": "En pruebas"
"Save": "Guardar"
"You like this app and you want to support me?": "¿Te gusta esta aplicación y quieres apoyarme?"
"Buy me a coffee ☕": "Cómprame un café ☕"
"Hidden": "Oculto"
"Small": "Pequeño"
"Normal": "Normal"
"Big": "Grande"
"Hidden icon": "Ocultar Icono"
"Small icon": "Icono pequeño"
"Normal icon": "Icono normal"
"Big icon": "Icono grande"
"Hidden text": "Texto oculto"
"Small text": "Texto pequeño"
"Normal text": "Texto normal"
"Big text": "Texto grande"
"Colors": "Colores"
"Background color": "Color de fondo"
"Background color of current app": "Color de fondo de la aplicación actual"
"Text color": "Color del texto"
"Loader": "Cargador"
"Icon": "Icono"
"Same color": "El mismo color"
"Opposite color": "Color opuesto"
"Transparent": "Transparente"
"Opaque": "Opaco"
"Opener": "Abrir"
"Default": "Por defecto"
"Default (dark)": "Por defecto (oscuro)"
"Hamburger": "Hamburguesa"
"Hamburger (dark)": "Hamburger (negro)"
"Hamburger 2": "Hamburguesa 2"
"Hamburger 2 (dark)": "Hamburger 2 (negro)"
"Before the logo": "Antes del logotipo"
"After the logo": "Después del logotipo"
"Position": "Posición"
"Show only the opener (hidden logo)": "Mostrar solo abrir (ocultar logotipo)"
"Do not display the side menu and the opener if there is no application (eg: public pages).": "No mostrar el menú lateral y el abridor si no hay aplicación (por ejemplo: páginas públicas)."
"Panel": "Panel"
"Open the menu when the mouse is hover the opener (automatically disabled on touch screens)": "Abra el menú cuando el ratón esté sobre el icono (se desactiva automáticamente en las pantallas táctiles)"
"Display the big menu": "Mostrar el menú grande"
"Display the logo": "Mostrar el logotipo"
"Icons and texts": "Iconos y textos"
"Loader enabled": "Cargador activado"
"Tips": "Consejos"
"Always displayed": "Siempre se muestra"
"This is the automatic behavior when the menu is always displayed.": "Este es el comportamiento automático cuando aún se muestra el menú."
"Not compatible with touch screens.": "No es compatible con las pantallas táctiles."
"Big menu": "Menú grande"
"Live preview": "Previsualización en directo"
"Open apps in new tab": "Abrir las aplicaciones en una nueva pestaña"
"Use the global setting": "Utilizar la configuración global"
"Use my selection": "Utilizar mi selección"
"Show and hide the list of applications": "Mostrar y ocultar la lista de aplicaciones"
"Use the avatar instead of the logo": "Utilizar un avatar en lugar de un logotipo"
"You do not have permission to change the settings.": "No tienes permiso para cambiar la configuración."
"Force this configuration to users": "Forzar esta configuración a todos los usuarios"
"Export the configuration": "Exportar la configuración"
"Purge the cache": "Vaciar la caché"
"Show the link to settings": "Mostrar un enlace a la configuración"
"The menu is enabled by default for users": "El menú está activado por defecto para los usuarios"
"Except when the configuration is forced.": "Excepto cuando la configuración es forzada."
"Apps that should not be displayed in the menu": "Aplicaciones que no deben aparecer en el menú"
"This feature is only compatible with the <code>big menu</code> display.": "Esta función sólo es compatible con la pantalla del <code>menú grande</code>."
"The logo is a link to the default app": "El logotipo es un enlace a la aplicación por defecto"
"Others": "Otros"
"Categories": "Categorías"
"Customize sorting": "Personalizar la clasificación"
"Order by": "Ordenar por"
"Name": "Nombre"
"Customed": "Personalizado"
"Show and hide the list of categories": "Mostrar y ocultar la lista de categorías"
"This parameters are used when Dark theme or Breeze Dark Theme are enabled.": "Estos parámetros se utilizan cuando el tema oscuro o el tema oscuro de Breeze están activados."
"Dark mode colors": "Colores del modo oscuro"
"With categories": "Con categorías"
"Custom categories": "Categorías personalizadas"
"Customize application categories": "Personalizar las categorías de las aplicaciones"
"Reset to default": "Restablecer los valores por defecto"
"Applications": "Aplicaciones"
"Applications kept in the top menu": "Aplicaciones guardadas en el menú superior"
"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"
+18 -35
View File
@@ -3,21 +3,14 @@
"No": "Non" "No": "Non"
"Yes": "Oui" "Yes": "Oui"
"Menu": "Menu" "Menu": "Menu"
? 'Use the shortcut <span class="keyboard-key">Ctrl</span>+<span class="keyboard-key">o</span> ? 'Use the shortcut <span class="keyboard-key">Ctrl</span>+<span class="keyboard-key">o</span> to open and to hide the side menu. Use <span class="keyboard-key">tab</span> to navigate.'
to open and to hide the side menu. Use <span class="keyboard-key">tab</span> to : 'Utiliser le raccourcis clavier <span class="keyboard-key">Ctrl</span>+<span class="keyboard-key">o</span> pour ouvrir et fermer le menu latéral. Utiliser <span class="keyboard-key">tab</span> pour naviguer.'
navigate.'
: 'Utiliser le raccourcis clavier <span class="keyboard-key">Ctrl</span>+<span class="keyboard-key">o</span>
pour ouvrir et fermer le menu latéral. Utiliser <span class="keyboard-key">tab</span>
pour naviguer.'
"Top menu": "Menu supérieur" "Top menu": "Menu supérieur"
"Apps that not must be moved in the side menu": "Les applications qui ne doivent pas\ "Apps that not must be moved in the side menu": "Les applications qui ne doivent pas être affichées dans le menu latéral"
\ être affichées dans le menu latéral" "If there is no selection then the global configuration is applied.": "Si il n'y a aucune sélection alors la configuration globale sera appliquée."
"If there is no selection then the global configuration is applied.": "Si il n'y a\
\ aucune sélection alors la configuration globale sera appliquée."
"Experimental": "Expérimental" "Experimental": "Expérimental"
"Save": "Sauvegarder" "Save": "Sauvegarder"
"You like this app and you want to support me?": "Vous aimer cette application et\ "You like this app and you want to support me?": "Vous aimer cette application et vous souhaitez m'aider ?"
\ vous souhaitez m'aider ?"
"Buy me a coffee ☕": "Offrez moi un café ☕" "Buy me a coffee ☕": "Offrez moi un café ☕"
"Hidden": "Caché" "Hidden": "Caché"
"Small": "Petit" "Small": "Petit"
@@ -51,22 +44,17 @@
"Before the logo": "Avant le logo" "Before the logo": "Avant le logo"
"After the logo": "Après le logo" "After the logo": "Après le logo"
"Position": "Position" "Position": "Position"
"Show only the opener (hidden logo)": "Afficher uniquement le bouton d'ouverture (masquer\ "Show only the opener (hidden logo)": "Afficher uniquement le bouton d'ouverture (masquer le logo)"
\ le logo)" "Do not display the side menu and the opener if there is no application (eg: public pages).": "Ne pas afficher le menu latéral et le bouton d'ouverture s'il n'y a aucune application (exemple : page publiques)."
"Do not display the side menu and the opener if there is no application (eg: public pages).": "Ne\
\ pas afficher le menu latéral et le bouton d'ouverture s'il n'y a aucune application\
\ (exemple : page publiques)."
"Panel": "Panneau" "Panel": "Panneau"
"Open the menu when the mouse is hover the opener (automatically disabled on touch screens)": "Ouvrir\ "Open the menu when the mouse is hover the opener (automatically disabled on touch screens)": "Ouvrir le menu au passage de la souris (automatiquement désactivé sur les écrans tactiles)"
\ le menu au passage de la souris (automatiquement désactivé sur les écrans tactiles)"
"Display the big menu": "Afficher le menu large" "Display the big menu": "Afficher le menu large"
"Display the logo": "Afficher le logo" "Display the logo": "Afficher le logo"
"Icons and texts": "Icônes et textes" "Icons and texts": "Icônes et textes"
"Loader enabled": "Activation de l'indicateur de chargement" "Loader enabled": "Activation de l'indicateur de chargement"
"Tips": "Astuces" "Tips": "Astuces"
"Always displayed": "Toujours affiché" "Always displayed": "Toujours affiché"
"This is the automatic behavior when the menu is always displayed.": "C'est le comportement\ "This is the automatic behavior when the menu is always displayed.": "C'est le comportement automatique lorsque le menu est toujours affiché."
\ automatique lorsque le menu est toujours affiché."
"Not compatible with touch screens.": "Incompatible avec les écrans tactiles." "Not compatible with touch screens.": "Incompatible avec les écrans tactiles."
"Big menu": "Menu large" "Big menu": "Menu large"
"Live preview": "Aperçu en direct" "Live preview": "Aperçu en direct"
@@ -75,21 +63,16 @@
"Use my selection": "Utiliser ma sélection" "Use my selection": "Utiliser ma sélection"
"Show and hide the list of applications": "Afficher et masquer la liste des applications" "Show and hide the list of applications": "Afficher et masquer la liste des applications"
"Use the avatar instead of the logo": "Utiliser l'avatar à la place du logo" "Use the avatar instead of the logo": "Utiliser l'avatar à la place du logo"
"You do not have permission to change the settings.": "Vous n'avez pas la permission\ "You do not have permission to change the settings.": "Vous n'avez pas la permission de changer les paramètres."
\ de changer les paramètres."
"Force this configuration to users": "Forcer cette configuration aux utilisateurs" "Force this configuration to users": "Forcer cette configuration aux utilisateurs"
"Export the configuration": "Exporter la configuration" "Export the configuration": "Exporter la configuration"
"Purge the cache": "Purger le cache" "Purge the cache": "Purger le cache"
"Show the link to settings": "Afficher le lien vers les paramètres" "Show the link to settings": "Afficher le lien vers les paramètres"
"The menu is enabled by default for users": "Le menu est activé par défaut pour les\ "The menu is enabled by default for users": "Le menu est activé par défaut pour les utilisateurs"
\ utilisateurs"
"Except when the configuration is forced.": "Sauf lorsque la configuration est forcée." "Except when the configuration is forced.": "Sauf lorsque la configuration est forcée."
"Apps that should not be displayed in the menu": "Applications qui ne doivent pas\ "Apps that should not be displayed in the menu": "Applications qui ne doivent pas être affichées dans le menu"
\ être affichées dans le menu" "This feature is only compatible with the <code>big menu</code> display.": "Compatible avec l'affichage <code>Menu large</code>."
"This feature is only compatible with the <code>big menu</code> display.": "Compatible\ "The logo is a link to the default app": "Le logo est un lien vers l'application par défaut"
\ avec l'affichage <code>Menu large</code>."
"The logo is a link to the default app": "Le logo est un lien vers l'application par\
\ défaut"
"Others": "Autres" "Others": "Autres"
"Categories": "Catégories" "Categories": "Catégories"
"Customize sorting": "Personnaliser le tri" "Customize sorting": "Personnaliser le tri"
@@ -97,9 +80,7 @@
"Name": "Nom" "Name": "Nom"
"Customed": "Personnalisé" "Customed": "Personnalisé"
"Show and hide the list of categories": "Afficher et masquer la liste des catégories" "Show and hide the list of categories": "Afficher et masquer la liste des catégories"
"This parameters are used when Dark theme or Breeze Dark Theme are enabled.": "Ces\ "This parameters are used when Dark theme or Breeze Dark Theme are enabled.": "Ces paramètres sont utilisés lorsque le thème sombre ou le thème Breeze Dark sont activés."
\ paramètres sont utilisés lorsque le thème sombre ou le thème Breeze Dark sont\
\ activés."
"Dark mode colors": "Couleurs du mode sombre" "Dark mode colors": "Couleurs du mode sombre"
"With categories": "Avec les catégories" "With categories": "Avec les catégories"
"Custom categories": "Catégories personnalisées" "Custom categories": "Catégories personnalisées"
@@ -108,4 +89,6 @@
"Applications": "Applications" "Applications": "Applications"
"Applications kept in the top menu": "Applications conservées dans le menu supérieur" "Applications kept in the top menu": "Applications conservées dans le menu supérieur"
"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" "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" "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"
+94
View File
@@ -0,0 +1,94 @@
"Custom menu": "Aangepast menu"
"Enable the custom menu": "Het aangepaste menu inschakelen"
"No": "Nee"
"Yes": "Ja"
"Menu": "Menu"
? 'Use the shortcut <span class="keyboard-key">Ctrl</span>+<span class="keyboard-key">o</span> to open and to hide the side menu. Use <span class="keyboard-key">tab</span> to navigate.'
: 'Gebruik de snelkoppeling <span class="keyboard-key">Ctrl</span>+<span class="keyboard-key">o</span> om het zijmenu te openen en te verbergen. Gebruik <span class="keyboard-key">tab</span> om te navigeren.'
"Top menu": "Bovenste menu"
"Apps that not must be moved in the side menu": "Apps die niet moeten worden verplaatst in het zijmenu"
"If there is no selection then the global configuration is applied.": "Als er geen keuze is, wordt de globale configuratie toegepast."
"Experimental": "Experimenteel"
"Save": "Opslaan"
"You like this app and you want to support me?": "Vind je deze app leuk en wil je me steunen?"
"Buy me a coffee ☕": "Koop een koffie voor me ☕"
"Hidden": "Verborgen"
"Small": "Klein"
"Normal": "Normaal"
"Big": "Groot"
"Hidden icon": "Verborgen icoon"
"Small icon": "Klein icoon"
"Normal icon": "Normaal icoon"
"Big icon": "Groot icoon"
"Hidden text": "Verborgen tekst"
"Small text": "Kleine tekst"
"Normal text": "Normale tekst"
"Big text": "Grote tekst"
"Colors": "Kleuren"
"Background color": "Achtergrond kleur"
"Background color of current app": "Achtergrondkleur van huidige app"
"Text color": "Tekst kleur"
"Loader": "Lader"
"Icon": "Icoon"
"Same color": "Zelfde kleur"
"Opposite color": "Tegenovergestelde kleur"
"Transparent": "Transparant"
"Opaque": "Ondoorzichtig"
"Opener": "Opener"
"Default": "Standaard"
"Default (dark)": "Standaard (donker)"
"Hamburger": "Hamburger"
"Hamburger (dark)": "Hamburger (donker)"
"Hamburger 2": "Hamburger 2"
"Hamburger 2 (dark)": "Hamburger 2 (donker)"
"Before the logo": "Voor het logo"
"After the logo": "Na het logo"
"Position": "Positie"
"Show only the opener (hidden logo)": "Toon alleen de opener (verborgen logo)"
"Do not display the side menu and the opener if there is no application (eg: public pages).": "Geef het zijmenu en de opener niet weer als er geen toepassing is (bijv. openbare pagina's)."
"Panel": "Paneel"
"Open the menu when the mouse is hover the opener (automatically disabled on touch screens)": "Open het menu wanneer de muis over de opener gaat (automatisch uitgeschakeld op aanraakschermen)"
"Display the big menu": "Toon het grote menu"
"Display the logo": "Toon het logo"
"Icons and texts": "Iconen en teksten"
"Loader enabled": "Lader ingeschakeld"
"Tips": "Tips"
"Always displayed": "Altijd weergegeven"
"This is the automatic behavior when the menu is always displayed.": "Dit is het automatische gedrag wanneer het menu altijd wordt weergegeven."
"Not compatible with touch screens.": "Niet compatibel met aanraakschermen."
"Big menu": "Groot menu"
"Live preview": "Live voorbeeld"
"Open apps in new tab": "Open apps in nieuwe tab"
"Use the global setting": "Gebruik de globale instellingen"
"Use my selection": "Gebruik mijn selectie"
"Show and hide the list of applications": "De lijst met toepassingen tonen en verbergen"
"Use the avatar instead of the logo": "Gebruik avatar in plaats van het logo"
"You do not have permission to change the settings.": "Je hebt geen toestemming om de instellingen te veranderen."
"Force this configuration to users": "Forceer deze configuratie aan gebruikers"
"Export the configuration": "Exporteer de configuratie"
"Purge the cache": "De cache wissen"
"Show the link to settings": "Toon de link naar de instellingen"
"The menu is enabled by default for users": "Het menu is standaard ingeschakeld voor gebruikers"
"Except when the configuration is forced.": "Behalve als de configuratie geforceerd is."
"Apps that should not be displayed in the menu": "Apps die niet in het menu weergegeven mogen worden"
"This feature is only compatible with the <code>big menu</code> display.": "Deze functie is alleen compatibel met het <code>grote menu</code> scherm."
"The logo is a link to the default app": "Het logo is een link naar de standaard app"
"Others": "Overige"
"Categories": "Categorieën"
"Customize sorting": "Sortering aanpassen"
"Order by": "Sorteer op"
"Name": "Naam"
"Customed": "Aangepast"
"Show and hide the list of categories": "De lijst met categorieën tonen en verbergen"
"This parameters are used when Dark theme or Breeze Dark Theme are enabled.": "Deze parameters worden gebruikt wanneer Dark theme of Breeze Dark Theme zijn ingeschakeld."
"Dark mode colors": "Donkere modus kleuren"
"With categories": "Met categorieën"
"Custom categories": "Aangepaste categorieën"
"Customize application categories": "Toepassingscategorieën aanpassen"
"Reset to default": "Terugzetten naar standaard"
"Applications": "Applicaties"
"Applications kept in the top menu": "Applicaties bewaard in het bovenste menu"
"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"
+94
View File
@@ -0,0 +1,94 @@
"Custom menu": "Custom menu"
"Enable the custom menu": "Включить пользовательское меню"
"No": "Нет"
"Yes": "Да"
"Menu": "Меню"
? 'Use the shortcut <span class="keyboard-key">Ctrl</span>+<span class="keyboard-key">o</span> to open and to hide the side menu. Use <span class="keyboard-key">tab</span> to navigate.'
: 'Используйте сочетание клавиш <span class="keyboard-key">Ctrl</span>+<span class="keyboard-key">o</span>, чтобы открыть или скрыть боковое меню. Используйте <span class="keyboard-key">Tab</span> для навигации.'
"Top menu": "Верхнее меню"
"Apps that not must be moved in the side menu": "Приложения не перемещаемые в боковое меню"
"If there is no selection then the global configuration is applied.": "Если тут ничего не отмечено, применяются глобальные настройки."
"Experimental": "Экспериментальный"
"Save": "Сохранить"
"You like this app and you want to support me?": "Вам нравится приложение или вы хотите поддержать меня?"
"Buy me a coffee ☕": "Купить мне чашку кофе ☕"
"Hidden": "Скрыто"
"Small": "Маленький"
"Normal": "Средний"
"Big": "Большой"
"Hidden icon": "Без иконки"
"Small icon": "Маленькая иконка"
"Normal icon": "Средняя иконка"
"Big icon": "Большая иконка"
"Hidden text": "Без текста"
"Small text": "Маленький текст"
"Normal text": "Средний текст"
"Big text": "Большой текст"
"Colors": "Цвета"
"Background color": "Цвет фона"
"Background color of current app": "Цвет фона выбранного приложения"
"Text color": "Цвет текста"
"Loader": "Загрузчик"
"Icon": "Иконка"
"Same color": "Такой же цвет"
"Opposite color": "Противоположный цвет"
"Transparent": "Прозрачный"
"Opaque": "Непрозрачный"
"Opener": "Открывалка"
"Default": "По умолчанию"
"Default (dark)": "По умолчанию (тёмный)"
"Hamburger": "Гамбургер"
"Hamburger (dark)": "Гамбургер (тёмный)"
"Hamburger 2": "Гамбургер 2"
"Hamburger 2 (dark)": "Гамбургер 2 (тёмный)"
"Before the logo": "Перед логотипом"
"After the logo": "После логотипа"
"Position": "Положение"
"Show only the opener (hidden logo)": "Показать только открывающую часть (скрытый логотип)"
"Do not display the side menu and the opener if there is no application (eg: public pages).": "Не отображать боковое меню и открывалку, если нет приложения (например, публичные страницы)."
"Panel": "Панель"
"Open the menu when the mouse is hover the opener (automatically disabled on touch screens)": "Открывать меню при наведении мыши на экран (автоматически отключается на сенсорных экранах)"
"Display the big menu": "Отобразить большое меню"
"Display the logo": "Показать логотип"
"Icons and texts": "Иконки и текст"
"Loader enabled": "Загрузчик включен"
"Tips": "Советы"
"Always displayed": "Всегда отображается"
"This is the automatic behavior when the menu is always displayed.": "This is the automatic behavior when the menu is always displayed."
"Not compatible with touch screens.": "Не совместимо с сенсорными экранами."
"Big menu": "Большое меню"
"Live preview": "Live preview"
"Open apps in new tab": "Открывать приложения в новой вкладке"
"Use the global setting": "Использовать глобальные настройки"
"Use my selection": "Использовать мои настройки"
"Show and hide the list of applications": "Показать или скрыть список приложений"
"Use the avatar instead of the logo": "Использовать аватар вместо логотипа"
"You do not have permission to change the settings.": "У вас нет разрешения изменять настройки."
"Force this configuration to users": "Force this configuration to users"
"Export the configuration": "Экспортировать конфигурацию"
"Purge the cache": "Очистить кэш"
"Show the link to settings": "Показать ссылку на настройки"
"The menu is enabled by default for users": "Это меню включено по умолчанию для пользователей"
"Except when the configuration is forced.": "Except when the configuration is forced."
"Apps that should not be displayed in the menu": "Ппрограммы, скрытые из меню"
"This feature is only compatible with the <code>big menu</code> display.": "This feature is only compatible with the <code>big menu</code> display."
"The logo is a link to the default app": "Логотип открывает приложение по умолчанию"
"Others": "Прочие"
"Categories": "Категории"
"Customize sorting": "Настроить сортировку"
"Order by": "В порядке"
"Name": "Название"
"Customed": "Customed"
"Show and hide the list of categories": "Показать или скрыть список категорий"
"This parameters are used when Dark theme or Breeze Dark Theme are enabled.": "Эти настройки используются темами Тёмная и Тёмная Breeze."
"Dark mode colors": "Цвета тёмной темы"
"With categories": "С категориями"
"Custom categories": "Пользовательские категории"
"Customize application categories": "Изменить категории приложений"
"Reset to default": "Сбросить к значениям по умолчанию"
"Applications": "Приложения"
"Applications kept in the top menu": "Applications kept in the top menu"
"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"
+2
View File
@@ -92,3 +92,5 @@
"Applications kept in the top menu": "" "Applications kept in the top menu": ""
"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": ""
+5 -2
View File
@@ -3,7 +3,8 @@
"No": "取消" "No": "取消"
"Yes": "确定" "Yes": "确定"
"Menu": "菜单" "Menu": "菜单"
"Use the shortcut <span class=\"keyboard-key\">Ctrl<\/span>+<span class=\"keyboard-key\">o<\/span> to open and to hide the side menu. Use <span class=\"keyboard-key\">tab<\/span> to navigate.": "使用快捷键 <span class=\"keyboard-key\">Ctrl<\/span>+<span class=\"keyboard-key\">o<\/span> 打开或隐藏侧边栏菜单。使用<span class=\"keyboard-key\">tab<\/span> 来导航。" ? "Use the shortcut <span class=\"keyboard-key\">Ctrl</span>+<span class=\"keyboard-key\">o</span> to open and to hide the side menu. Use <span class=\"keyboard-key\">tab</span> to navigate."
: "使用快捷键 <span class=\"keyboard-key\">Ctrl</span>+<span class=\"keyboard-key\">o</span> 打开或隐藏侧边栏菜单。使用<span class=\"keyboard-key\">tab</span> 来导航。"
"Top menu": "顶部菜单" "Top menu": "顶部菜单"
"Apps that not must be moved in the side menu": "禁止在侧边栏菜单移动的应用" "Apps that not must be moved in the side menu": "禁止在侧边栏菜单移动的应用"
"If there is no selection then the global configuration is applied.": "如不选择,将应用全局设定。" "If there is no selection then the global configuration is applied.": "如不选择,将应用全局设定。"
@@ -62,7 +63,7 @@
"The menu is enabled by default for users": "用户的默认菜单已激活" "The menu is enabled by default for users": "用户的默认菜单已激活"
"Except when the configuration is forced.": "除非设置被强制使用。" "Except when the configuration is forced.": "除非设置被强制使用。"
"Apps that should not be displayed in the menu": "禁止在菜单中显示的应用" "Apps that should not be displayed in the menu": "禁止在菜单中显示的应用"
"This feature is only compatible with the <code>big menu<\/code> display.": "此功能只和<code>大型菜单<\/code>兼容。" "This feature is only compatible with the <code>big menu</code> display.": "此功能只和<code>大型菜单</code>兼容。"
"The logo is a link to the default app": "logo链接到默认应用" "The logo is a link to the default app": "logo链接到默认应用"
"Others": "其他" "Others": "其他"
"Categories": "类别" "Categories": "类别"
@@ -89,3 +90,5 @@
"Applications kept in the top menu": "Applications kept in the top menu" "Applications kept in the top menu": "Applications kept in the top menu"
"Applications kept in the top menu but also shown in side menu": "Applications kept in the top menu but also shown in side menu" "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." "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"
+12 -5
View File
@@ -27,6 +27,7 @@ if ($_['always-displayed']) {
window.topMenuApps = <?php echo json_encode($_['top-menu-apps']), "\n"; ?> window.topMenuApps = <?php echo json_encode($_['top-menu-apps']), "\n"; ?>
window.topSideMenuApps = <?php echo json_encode($_['top-side-menu-apps']), "\n"; ?> window.topSideMenuApps = <?php echo json_encode($_['top-side-menu-apps']), "\n"; ?>
window.menuAppsOrder = <?php echo json_encode($_['apps-order']), "\n"; ?> window.menuAppsOrder = <?php echo json_encode($_['apps-order']), "\n"; ?>
window.topMenuAppsMouseOverHiddenLabel = <?php echo json_encode($_['top-menu-mouse-over-hidden-label']), "\n"; ?>
<?php if ($display === 'big-menu'): ?> <?php if ($display === 'big-menu'): ?>
sideMenu.setAttribute('data-bigmenu', '1') sideMenu.setAttribute('data-bigmenu', '1')
@@ -72,6 +73,10 @@ if ($_['always-displayed']) {
const headerMenuOpener = document.querySelector('#header .side-menu-opener') const headerMenuOpener = document.querySelector('#header .side-menu-opener')
const sideMenuOpener = document.querySelectorAll('#side-menu .side-menu-opener') const sideMenuOpener = document.querySelectorAll('#side-menu .side-menu-opener')
if (!headerMenuOpener) {
return
}
sideMenuFocus = () => { sideMenuFocus = () => {
let a = document.querySelector('.side-menu-app.active a', sideMenu) let a = document.querySelector('.side-menu-app.active a', sideMenu)
@@ -173,9 +178,11 @@ if ($_['always-displayed']) {
PageLoader() PageLoader()
<?php endif; ?> <?php endif; ?>
<?php if ($_['opener-position'] === 'before'): ?> if (nextcloud) {
nextcloud.parentNode.insertBefore(sideMenuOpener, nextcloud) <?php if ($_['opener-position'] === 'before'): ?>
<?php else: ?> nextcloud.parentNode.insertBefore(sideMenuOpener, nextcloud)
nextcloud.parentNode.insertBefore(sideMenuOpener, nextcloud.nextSibling) <?php else: ?>
<?php endif; ?> nextcloud.parentNode.insertBefore(sideMenuOpener, nextcloud.nextSibling)
<?php endif; ?>
}
})(); })();
+68 -42
View File
@@ -41,6 +41,10 @@ $choicesSizes = [
$labelShowHideApps = 'Show and hide the list of applications'; $labelShowHideApps = 'Show and hide the list of applications';
$labelReset = 'Reset to default'; $labelReset = 'Reset to default';
$labelDefault = 'Default';
$labelWithCategories = 'With categories';
$labelBigMenu = 'Big menu';
$labelAlwaysDisplayed = 'Always displayed';
?> ?>
<div id="side-menu-section"> <div id="side-menu-section">
@@ -61,7 +65,7 @@ $labelReset = 'Reset to default';
<div> <div>
<label> <label>
<?php p($l->t('Default')); ?> <?php p($l->t($labelDefault)); ?>
</label> </label>
</div> </div>
<p> <p>
@@ -70,12 +74,12 @@ $labelReset = 'Reset to default';
data-alwaysdiplayed="0" data-alwaysdiplayed="0"
data-bigmenu="0" data-bigmenu="0"
data-sidewithcategories="0" data-sidewithcategories="0"
src="<?php print_unescaped(image_path('side_menu', 'admin/layout-default.svg')); ?>" alt="<?php p($l->t('Default')); ?>"> src="<?php print_unescaped(image_path('side_menu', 'admin/layout-default.svg')); ?>" alt="<?php p($l->t($labelDefault)); ?>">
</p> </p>
<div> <div>
<label> <label>
<?php p($l->t('With categories')); ?> <?php p($l->t($labelWithCategories)); ?>
</label> </label>
</div> </div>
<p> <p>
@@ -84,12 +88,12 @@ $labelReset = 'Reset to default';
data-alwaysdiplayed="0" data-alwaysdiplayed="0"
data-bigmenu="0" data-bigmenu="0"
data-sidewithcategories="1" data-sidewithcategories="1"
src="<?php print_unescaped(image_path('side_menu', 'admin/layout-side-with-categories.svg')); ?>" alt="<?php p($l->t('With categories')); ?>"> src="<?php print_unescaped(image_path('side_menu', 'admin/layout-side-with-categories.svg')); ?>" alt="<?php p($l->t($labelWithCategories)); ?>">
</p> </p>
<div> <div>
<label for="side-menu-opener"> <label for="side-menu-opener">
<?php p($l->t('Big menu')); ?> <?php p($l->t($labelBigMenu)); ?>
</label> </label>
</div> </div>
<p> <p>
@@ -98,12 +102,12 @@ $labelReset = 'Reset to default';
data-alwaysdiplayed="0" data-alwaysdiplayed="0"
data-bigmenu="1" data-bigmenu="1"
data-sidewithcategories="0" data-sidewithcategories="0"
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($labelBigMenu)); ?>">
</p> </p>
<div> <div>
<label for="side-menu-opener"> <label for="side-menu-opener">
<?php p($l->t('Always displayed')); ?> <?php p($l->t($labelAlwaysDisplayed)); ?>
</label> </label>
</div> </div>
<p><em><?php p($l->t('Not compatible with touch screens.')); ?></em></p> <p><em><?php p($l->t('Not compatible with touch screens.')); ?></em></p>
@@ -113,7 +117,7 @@ $labelReset = 'Reset to default';
data-alwaysdiplayed="1" data-alwaysdiplayed="1"
data-bigmenu="0" data-bigmenu="0"
data-sidewithcategories="0" data-sidewithcategories="0"
src="<?php print_unescaped(image_path('side_menu', 'admin/layout-always-displayed.svg')); ?>" alt="<?php p($l->t('Always displayed')); ?>"> src="<?php print_unescaped(image_path('side_menu', 'admin/layout-always-displayed.svg')); ?>" alt="<?php p($l->t($labelAlwaysDisplayed)); ?>">
</p> </p>
<input <input
@@ -147,10 +151,10 @@ $labelReset = 'Reset to default';
</h2> </h2>
<div class="badges"> <div class="badges">
<span class="badge badge-1"><?php p($l->t('Default')); ?></span> <span class="badge badge-1"><?php p($l->t($labelDefault)); ?></span>
<span class="badge badge-2"><?php p($l->t('With categories')); ?></span> <span class="badge badge-2"><?php p($l->t($labelWithCategories)); ?></span>
<span class="badge badge-3"><?php p($l->t('Big menu')); ?></span> <span class="badge badge-3"><?php p($l->t($labelBigMenu)); ?></span>
<span class="badge badge-4"><?php p($l->t('Always displayed')); ?></span> <span class="badge badge-4"><?php p($l->t($labelAlwaysDisplayed)); ?></span>
</div> </div>
<div class="side-menu-setting-table"> <div class="side-menu-setting-table">
@@ -309,7 +313,7 @@ $labelReset = 'Reset to default';
<div class="side-menu-setting-table"> <div class="side-menu-setting-table">
<?php <?php
$choices = [ $choices = [
'Default' => 'side-menu-opener', $labelDefault => 'side-menu-opener',
'Default (dark)' => 'side-menu-opener-dark', 'Default (dark)' => 'side-menu-opener-dark',
'Hamburger' => 'side-menu-opener-hamburger', 'Hamburger' => 'side-menu-opener-hamburger',
'Hamburger (dark)' => 'side-menu-opener-hamburger-dark', 'Hamburger (dark)' => 'side-menu-opener-hamburger-dark',
@@ -338,10 +342,10 @@ $labelReset = 'Reset to default';
</h2> </h2>
<div class="badges"> <div class="badges">
<span class="badge badge-1"><?php p($l->t('Default')); ?></span> <span class="badge badge-1"><?php p($l->t($labelDefault)); ?></span>
<span class="badge badge-2"><?php p($l->t('With categories')); ?></span> <span class="badge badge-2"><?php p($l->t($labelWithCategories)); ?></span>
<span class="badge badge-3"><?php p($l->t('Big menu')); ?></span> <span class="badge badge-3"><?php p($l->t($labelBigMenu)); ?></span>
<span class="badge badge-4"><?php p($l->t('Always displayed')); ?></span> <span class="badge badge-4"><?php p($l->t($labelAlwaysDisplayed)); ?></span>
</div> </div>
<p> <p>
@@ -502,7 +506,7 @@ $labelReset = 'Reset to default';
<div class="side-menu-setting-table"> <div class="side-menu-setting-table">
<?php <?php
$choices = [ $choices = [
'Default' => 'side-menu-opener', $labelDefault => 'side-menu-opener',
'Default (dark)' => 'side-menu-opener-dark', 'Default (dark)' => 'side-menu-opener-dark',
'Hamburger' => 'side-menu-opener-hamburger', 'Hamburger' => 'side-menu-opener-hamburger',
'Hamburger (dark)' => 'side-menu-opener-hamburger-dark', 'Hamburger (dark)' => 'side-menu-opener-hamburger-dark',
@@ -533,10 +537,10 @@ $labelReset = 'Reset to default';
</h2> </h2>
<div class="badges"> <div class="badges">
<span class="badge badge-1"><?php p($l->t('Default')); ?></span> <span class="badge badge-1"><?php p($l->t($labelDefault)); ?></span>
<span class="badge badge-2"><?php p($l->t('With categories')); ?></span> <span class="badge badge-2"><?php p($l->t($labelWithCategories)); ?></span>
<span class="badge badge-3"><?php p($l->t('Big menu')); ?></span> <span class="badge badge-3"><?php p($l->t($labelBigMenu)); ?></span>
<span class="badge badge-4"><?php p($l->t('Always displayed')); ?></span> <span class="badge badge-4"><?php p($l->t($labelAlwaysDisplayed)); ?></span>
</div> </div>
<div class="side-menu-setting-table"> <div class="side-menu-setting-table">
@@ -618,7 +622,7 @@ $labelReset = 'Reset to default';
<?php p($l->t('Display the logo')); ?> <?php p($l->t('Display the logo')); ?>
<div class="badges"> <div class="badges">
<span class="badge badge-1"><?php p($l->t('Default')); ?></span> <span class="badge badge-1"><?php p($l->t($labelDefault)); ?></span>
</div> </div>
</div> </div>
<div class="side-menu-setting-form"> <div class="side-menu-setting-form">
@@ -637,7 +641,7 @@ $labelReset = 'Reset to default';
<?php p($l->t('Use the avatar instead of the logo')); ?> <?php p($l->t('Use the avatar instead of the logo')); ?>
<div class="badges"> <div class="badges">
<span class="badge badge-1"><?php p($l->t('Default')); ?></span> <span class="badge badge-1"><?php p($l->t($labelDefault)); ?></span>
</div> </div>
</div> </div>
<div class="side-menu-setting-form"> <div class="side-menu-setting-form">
@@ -656,7 +660,7 @@ $labelReset = 'Reset to default';
<?php p($l->t('The logo is a link to the default app')); ?> <?php p($l->t('The logo is a link to the default app')); ?>
<div class="badges"> <div class="badges">
<span class="badge badge-1"><?php p($l->t('Default')); ?></span> <span class="badge badge-1"><?php p($l->t($labelDefault)); ?></span>
</div> </div>
</div> </div>
<div class="side-menu-setting-form"> <div class="side-menu-setting-form">
@@ -675,8 +679,10 @@ $labelReset = 'Reset to default';
<?php p($l->t('Apps that should not be displayed in the menu')); ?> <?php p($l->t('Apps that should not be displayed in the menu')); ?>
<div class="badges"> <div class="badges">
<span class="badge badge-2"><?php p($l->t('With categories')); ?></span> <span class="badge badge-1"><?php p($l->t($labelDefault)); ?></span>
<span class="badge badge-3"><?php p($l->t('Big menu')); ?></span> <span class="badge badge-2"><?php p($l->t($labelWithCategories)); ?></span>
<span class="badge badge-3"><?php p($l->t($labelBigMenu)); ?></span>
<span class="badge badge-4"><?php p($l->t($labelAlwaysDisplayed)); ?></span>
</div> </div>
</div> </div>
<div class="side-menu-setting-form"> <div class="side-menu-setting-form">
@@ -798,10 +804,10 @@ $labelReset = 'Reset to default';
</h2> </h2>
<div class="badges"> <div class="badges">
<span class="badge badge-1"><?php p($l->t('Default')); ?></span> <span class="badge badge-1"><?php p($l->t($labelDefault)); ?></span>
<span class="badge badge-2"><?php p($l->t('With categories')); ?></span> <span class="badge badge-2"><?php p($l->t($labelWithCategories)); ?></span>
<span class="badge badge-3"><?php p($l->t('Big menu')); ?></span> <span class="badge badge-3"><?php p($l->t($labelBigMenu)); ?></span>
<span class="badge badge-4"><?php p($l->t('Always displayed')); ?></span> <span class="badge badge-4"><?php p($l->t($labelAlwaysDisplayed)); ?></span>
</div> </div>
<div class="side-menu-setting-table"> <div class="side-menu-setting-table">
@@ -868,6 +874,26 @@ $labelReset = 'Reset to default';
</div> </div>
</div> </div>
</div> </div>
<div class="side-menu-setting-row">
<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 ($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>
<?php endforeach; ?>
</select>
</div>
</div>
</div> </div>
</div> </div>
@@ -877,10 +903,10 @@ $labelReset = 'Reset to default';
</h2> </h2>
<div class="badges"> <div class="badges">
<span class="badge badge-1"><?php p($l->t('Default')); ?></span> <span class="badge badge-1"><?php p($l->t($labelDefault)); ?></span>
<span class="badge badge-2"><?php p($l->t('With categories')); ?></span> <span class="badge badge-2"><?php p($l->t($labelWithCategories)); ?></span>
<span class="badge badge-3"><?php p($l->t('Big menu')); ?></span> <span class="badge badge-3"><?php p($l->t($labelBigMenu)); ?></span>
<span class="badge badge-4"><?php p($l->t('Always displayed')); ?></span> <span class="badge badge-4"><?php p($l->t($labelAlwaysDisplayed)); ?></span>
</div> </div>
<div class="side-menu-setting-table"> <div class="side-menu-setting-table">
@@ -924,8 +950,8 @@ $labelReset = 'Reset to default';
</h2> </h2>
<div class="badges"> <div class="badges">
<span class="badge badge-2"><?php p($l->t('With categories')); ?></span> <span class="badge badge-2"><?php p($l->t($labelWithCategories)); ?></span>
<span class="badge badge-3"><?php p($l->t('Big menu')); ?></span> <span class="badge badge-3"><?php p($l->t($labelBigMenu)); ?></span>
</div> </div>
<div class="side-menu-setting-table"> <div class="side-menu-setting-table">
@@ -951,7 +977,7 @@ $labelReset = 'Reset to default';
</div> </div>
<div class="side-menu-setting-row"> <div class="side-menu-setting-row">
<div class="side-menu-setting-label"> <div class="side-menu-setting-label side-menu-setting-label--top">
<?php p($l->t('Custom categories')); ?> <?php p($l->t('Custom categories')); ?>
</div> </div>
<div class="side-menu-setting-form"> <div class="side-menu-setting-form">
@@ -1039,10 +1065,10 @@ $labelReset = 'Reset to default';
</h2> </h2>
<div class="badges"> <div class="badges">
<span class="badge badge-1"><?php p($l->t('Default')); ?></span> <span class="badge badge-1"><?php p($l->t($labelDefault)); ?></span>
<span class="badge badge-2"><?php p($l->t('With categories')); ?></span> <span class="badge badge-2"><?php p($l->t($labelWithCategories)); ?></span>
<span class="badge badge-3"><?php p($l->t('Big menu')); ?></span> <span class="badge badge-3"><?php p($l->t($labelBigMenu)); ?></span>
<span class="badge badge-4"><?php p($l->t('Always displayed')); ?></span> <span class="badge badge-4"><?php p($l->t($labelAlwaysDisplayed)); ?></span>
</div> </div>
<p> <p>