Compare commits

...

60 Commits

Author SHA1 Message Date
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
16 changed files with 220 additions and 111 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
+24 -15
View File
@@ -1,19 +1,34 @@
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/*, translations] branch: [master, develop, feature/*, 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
failure: ignore
build_js:
image: node:16
commands:
- npm run build
when: when:
branch: [master, develop, feature/*, translations] branch: [master, develop, feature/*, translations]
event: [push, pull_request] event: [tag, push, pull_request]
build_php:
image: deblan/php:8.0
commands:
- php bin/generate_l10n.php
when:
branch: [master, develop, feature/*, translations]
event: [tag, push, pull_request]
code_quality: code_quality:
image: sonarsource/sonar-scanner-cli image: sonarsource/sonar-scanner-cli
@@ -30,20 +45,14 @@ pipeline:
when: when:
event: [pull_request] event: [pull_request]
dependency_check:
image: node:16-slim
commands:
- npm audit
failure: ignore
when:
event: [pull_request]
package: package:
image: gitnet.fr/deblan/devenv 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)
+23
View File
@@ -1,5 +1,28 @@
## [Unreleased] ## [Unreleased]
## 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 ## 3.5.0
### Added ### Added
* add dependency check (ci) * add dependency check (ci)
+1 -1
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
+3
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,6 +19,8 @@ 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
------------ ------------
+3 -3
View File
@@ -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.5.0</version> <version>3.7.1</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>
+10 -3
View File
@@ -53,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 }">
@@ -110,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)
+3
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"
@@ -76,6 +77,7 @@ export default {
avatar: null, avatar: null,
forceLightIcon: false, forceLightIcon: false,
targetBlankApps: [], targetBlankApps: [],
hiddenApps: [],
settings: null, settings: null,
} }
}, },
@@ -127,6 +129,7 @@ export default {
this.logo = config['logo'] this.logo = config['logo']
this.logoLink = config['logo-link'] this.logoLink = config['logo-link']
this.settings = config['settings'] this.settings = config['settings']
this.hiddenApps = config['big-menu-hidden-apps']
}) })
}, },
}, },
+1 -1
View File
@@ -90,4 +90,4 @@
"Applications kept in the top menu": "Aplikace ponechané v horní nabídce" "Applications kept in the top menu": "Aplikace ponechané v horní nabídce"
"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í" "Applications kept in the top menu but also shown in side menu": "Aplikace ponechané v horní nabídce ale také zobrazené v té boční"
"These applications must be selected in the previous option.": "Tyto aplikace je třeba vybrat v předchozí volbě." "These applications must be selected in the previous option.": "Tyto aplikace je třeba vybrat v předchozí volbě."
"Hide labels on mouse over": "Hide labels on mouse over" "Hide labels on mouse over": "Skrýt popisky při najetím ukazatele myši"
+1 -1
View File
@@ -90,4 +90,4 @@
"Applications kept in the top menu": "Aplicaciones guardadas en el menú superior" "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" "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." "These applications must be selected in the previous option.": "Estas aplicaciones deben ser seleccionadas en las opciones anteriores."
"Hide labels on mouse over": "Hide labels on mouse over" "Hide labels on mouse over": "Ocultar las etiquetas al pasar el ratón"
+21 -21
View File
@@ -7,7 +7,7 @@
: 'Используйте сочетание клавиш <span class="keyboard-key">Ctrl</span>+<span class="keyboard-key">o</span>, чтобы открыть или скрыть боковое меню. Используйте <span class="keyboard-key">Tab</span> для навигации.' : 'Используйте сочетание клавиш <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." "If there is no selection then the global configuration is applied.": "Если тут ничего не отмечено, применяются глобальные настройки."
"Experimental": "Экспериментальный" "Experimental": "Экспериментальный"
"Save": "Сохранить" "Save": "Сохранить"
"You like this app and you want to support me?": "Вам нравится приложение или вы хотите поддержать меня?" "You like this app and you want to support me?": "Вам нравится приложение или вы хотите поддержать меня?"
@@ -16,11 +16,11 @@
"Small": "Маленький" "Small": "Маленький"
"Normal": "Средний" "Normal": "Средний"
"Big": "Большой" "Big": "Большой"
"Hidden icon": "Скрытая иконка" "Hidden icon": "Без иконки"
"Small icon": "Маленькая иконка" "Small icon": "Маленькая иконка"
"Normal icon": "Средняя иконка" "Normal icon": "Средняя иконка"
"Big icon": "Большая иконка" "Big icon": "Большая иконка"
"Hidden text": "Скрытый текст" "Hidden text": "Без текста"
"Small text": "Маленький текст" "Small text": "Маленький текст"
"Normal text": "Средний текст" "Normal text": "Средний текст"
"Big text": "Большой текст" "Big text": "Большой текст"
@@ -35,44 +35,44 @@
"Transparent": "Прозрачный" "Transparent": "Прозрачный"
"Opaque": "Непрозрачный" "Opaque": "Непрозрачный"
"Opener": "Открывалка" "Opener": "Открывалка"
"Default": "По-умолчанию" "Default": "По умолчанию"
"Default (dark)": "По-умолчанию (тёмный)" "Default (dark)": "По умолчанию (тёмный)"
"Hamburger": "Гамбургер" "Hamburger": "Гамбургер"
"Hamburger (dark)": "Гамбургер (тёмный)" "Hamburger (dark)": "Гамбургер (тёмный)"
"Hamburger 2": "Гамбургер 2" "Hamburger 2": "Гамбургер 2"
"Hamburger 2 (dark)": "Гамбургер 2 (тёмный)" "Hamburger 2 (dark)": "Гамбургер 2 (тёмный)"
"Before the logo": "Перед логотипом" "Before the logo": "Перед логотипом"
"After the logo": "После логотипа" "After the logo": "После логотипа"
"Position": "Позиция" "Position": "Положение"
"Show only the opener (hidden logo)": "Показать только открывающую часть (скрытый логотип)" "Show only the opener (hidden logo)": "Показать только открывающую часть (скрытый логотип)"
"Do not display the side menu and the opener if there is no application (eg: public pages).": "Не отображать боковое меню и открывалку, если нет приложения (например, публичные страницы)." "Do not display the side menu and the opener if there is no application (eg: public pages).": "Не отображать боковое меню и открывалку, если нет приложения (например, публичные страницы)."
"Panel": "Панеот" "Panel": "Панель"
"Open the menu when the mouse is hover the opener (automatically disabled on touch screens)": "Открывать меню при наведении мыши на экран (автоматически отключается на сенсорных экранах)" "Open the menu when the mouse is hover the opener (automatically disabled on touch screens)": "Открывать меню при наведении мыши на экран (автоматически отключается на сенсорных экранах)"
"Display the big menu": "Отобразить большое меню" "Display the big menu": "Отобразить большое меню"
"Display the logo": "Показать лого" "Display the logo": "Показать логотип"
"Icons and texts": "Иконки и текст" "Icons and texts": "Иконки и текст"
"Loader enabled": "Loader enabled" "Loader enabled": "Загрузчик включен"
"Tips": "Советы" "Tips": "Советы"
"Always displayed": "Всегда отображается" "Always displayed": "Всегда отображается"
"This is the automatic behavior when the menu is always displayed.": "This is the automatic behavior when the menu is 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.": "Не совместимо с сенсорными экранами" "Not compatible with touch screens.": "Не совместимо с сенсорными экранами."
"Big menu": "Большое меню" "Big menu": "Большое меню"
"Live preview": "Live preview" "Live preview": "Live preview"
"Open apps in new tab": "Открывать приложения в новой вкладке" "Open apps in new tab": "Открывать приложения в новой вкладке"
"Use the global setting": "Use the global setting" "Use the global setting": "Использовать глобальные настройки"
"Use my selection": "Use my selection" "Use my selection": "Использовать мои настройки"
"Show and hide the list of applications": "Показать или скрыть список приложений" "Show and hide the list of applications": "Показать или скрыть список приложений"
"Use the avatar instead of the logo": "Использовать аватар вместо логотипа" "Use the avatar instead of the logo": "Использовать аватар вместо логотипа"
"You do not have permission to change the settings.": "У вас нет разрешения изменять настройки" "You do not have permission to change the settings.": "У вас нет разрешения изменять настройки."
"Force this configuration to users": "Force this configuration to users" "Force this configuration to users": "Force this configuration to users"
"Export the configuration": "Экспортировать конфигурацию" "Export the configuration": "Экспортировать конфигурацию"
"Purge the cache": "Очистить кэш" "Purge the cache": "Очистить кэш"
"Show the link to settings": "Показать ссылку на настройки" "Show the link to settings": "Показать ссылку на настройки"
"The menu is enabled by default for users": "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." "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" "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." "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": "The logo is a link to the default app" "The logo is a link to the default app": "Логотип открывает приложение по умолчанию"
"Others": "Прочие" "Others": "Прочие"
"Categories": "Категории" "Categories": "Категории"
"Customize sorting": "Настроить сортировку" "Customize sorting": "Настроить сортировку"
@@ -80,14 +80,14 @@
"Name": "Название" "Name": "Название"
"Customed": "Customed" "Customed": "Customed"
"Show and hide the list of categories": "Показать или скрыть список категорий" "Show and hide the list of categories": "Показать или скрыть список категорий"
"This parameters are used when Dark theme or Breeze Dark Theme are enabled.": "This parameters are used when Dark theme or Breeze Dark Theme are enabled." "This parameters are used when Dark theme or Breeze Dark Theme are enabled.": "Эти настройки используются темами Тёмная и Тёмная Breeze."
"Dark mode colors": "Цвета тёмной темы" "Dark mode colors": "Цвета тёмной темы"
"With categories": "С категориями" "With categories": "С категориями"
"Custom categories": "Custom categories" "Custom categories": "Пользовательские категории"
"Customize application categories": "Customize application categories" "Customize application categories": "Изменить категории приложений"
"Reset to default": "Сбросить к значениям по-умолчанию" "Reset to default": "Сбросить к значениям по умолчанию"
"Applications": "Приложения" "Applications": "Приложения"
"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" "Hide labels on mouse over": "Скрыть название при наведении мыши"
+11 -5
View File
@@ -73,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)
@@ -174,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; ?>
}
})(); })();
+16 -13
View File
@@ -41,6 +41,7 @@ $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'; $labelWithCategories = 'With categories';
$labelBigMenu = 'Big menu'; $labelBigMenu = 'Big menu';
$labelAlwaysDisplayed = 'Always displayed'; $labelAlwaysDisplayed = 'Always displayed';
@@ -64,7 +65,7 @@ $labelAlwaysDisplayed = 'Always displayed';
<div> <div>
<label> <label>
<?php p($l->t('Default')); ?> <?php p($l->t($labelDefault)); ?>
</label> </label>
</div> </div>
<p> <p>
@@ -73,7 +74,7 @@ $labelAlwaysDisplayed = 'Always displayed';
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>
@@ -150,7 +151,7 @@ $labelAlwaysDisplayed = 'Always displayed';
</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($labelWithCategories)); ?></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-3"><?php p($l->t($labelBigMenu)); ?></span>
<span class="badge badge-4"><?php p($l->t($labelAlwaysDisplayed)); ?></span> <span class="badge badge-4"><?php p($l->t($labelAlwaysDisplayed)); ?></span>
@@ -312,7 +313,7 @@ $labelAlwaysDisplayed = 'Always displayed';
<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',
@@ -341,7 +342,7 @@ $labelAlwaysDisplayed = 'Always displayed';
</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($labelWithCategories)); ?></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-3"><?php p($l->t($labelBigMenu)); ?></span>
<span class="badge badge-4"><?php p($l->t($labelAlwaysDisplayed)); ?></span> <span class="badge badge-4"><?php p($l->t($labelAlwaysDisplayed)); ?></span>
@@ -505,7 +506,7 @@ $labelAlwaysDisplayed = 'Always displayed';
<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',
@@ -536,7 +537,7 @@ $labelAlwaysDisplayed = 'Always displayed';
</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($labelWithCategories)); ?></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-3"><?php p($l->t($labelBigMenu)); ?></span>
<span class="badge badge-4"><?php p($l->t($labelAlwaysDisplayed)); ?></span> <span class="badge badge-4"><?php p($l->t($labelAlwaysDisplayed)); ?></span>
@@ -621,7 +622,7 @@ $labelAlwaysDisplayed = 'Always displayed';
<?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">
@@ -640,7 +641,7 @@ $labelAlwaysDisplayed = 'Always displayed';
<?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">
@@ -659,7 +660,7 @@ $labelAlwaysDisplayed = 'Always displayed';
<?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">
@@ -678,8 +679,10 @@ $labelAlwaysDisplayed = 'Always displayed';
<?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-1"><?php p($l->t($labelDefault)); ?></span>
<span class="badge badge-2"><?php p($l->t($labelWithCategories)); ?></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-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">
@@ -801,7 +804,7 @@ $labelAlwaysDisplayed = 'Always displayed';
</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($labelWithCategories)); ?></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-3"><?php p($l->t($labelBigMenu)); ?></span>
<span class="badge badge-4"><?php p($l->t($labelAlwaysDisplayed)); ?></span> <span class="badge badge-4"><?php p($l->t($labelAlwaysDisplayed)); ?></span>
@@ -894,7 +897,7 @@ $labelAlwaysDisplayed = 'Always displayed';
</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($labelWithCategories)); ?></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-3"><?php p($l->t($labelBigMenu)); ?></span>
<span class="badge badge-4"><?php p($l->t($labelAlwaysDisplayed)); ?></span> <span class="badge badge-4"><?php p($l->t($labelAlwaysDisplayed)); ?></span>
@@ -1056,7 +1059,7 @@ $labelAlwaysDisplayed = 'Always displayed';
</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($labelWithCategories)); ?></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-3"><?php p($l->t($labelBigMenu)); ?></span>
<span class="badge badge-4"><?php p($l->t($labelAlwaysDisplayed)); ?></span> <span class="badge badge-4"><?php p($l->t($labelAlwaysDisplayed)); ?></span>