diff --git a/CHANGELOG.md b/CHANGELOG.md index 2ef54a9..4ae875d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,27 @@ ## [Unreleased] +## 5.2.2 +### Fixed +* fix #464: add Intl.Segmenter polyfill +### Added +* add new translations + +## 5.2.1 +### Added +* chore: set side_menu as package name +### Fixed +* fix(LangRepository): check orm capabilities to query entities +* fix(admin/\*SaveButton): cast settings to string + +## 5.2.0 +### Added +* add compatibility with NC33 +### Fixed +* fix #468: force nextcloud logo display css rule (opener-only) + ## 5.1.3 ### Fixed -- fix #445: fix build by adding package-lock.json +* fix #445: fix build by adding package-lock.json ## 5.1.2 ### Added @@ -336,323 +355,323 @@ ## 2.3.2 ### Fixed -- fix hidden menu +* fix hidden menu ## 2.3.1 ### Fixed -- fix #88: does not work with default menu +* fix #88: does not work with default menu ## 2.3.0 ### Added -- fix #82: add an option to keep visible an app in both menus -- fix #83: add custom categories -- add auto-reload when settings are saved +* fix #82: add an option to keep visible an app in both menus +* fix #83: add custom categories +* add auto-reload when settings are saved ## 2.2.0 ### Added -- fix #84: update icons -- fix #85: use Nextcloud colors by default +* fix #84: update icons +* fix #85: use Nextcloud colors by default ### Fixed -- fix categories order in large menu +* fix categories order in large menu ## 2.1.0 ### Added -- add compatibility with Nextcloud 23 +* add compatibility with Nextcloud 23 ## 2.0.1 ### Fixed -- fix #78: Top menu is broken - invisible apps are shown -- fix #77: Update personal settings - HTTP error 412 (Precondition Failed) -- fix js error on the personal settings page (undefined sortable) +* fix #78: Top menu is broken - invisible apps are shown +* fix #77: Update personal settings - HTTP error 412 (Precondition Failed) +* fix js error on the personal settings page (undefined sortable) ## 2.0.0 ### Fixed -- fix #66: removing usage of setInterval -- fix #73: icon background +* fix #66: removing usage of setInterval +* fix #73: icon background ### Changed -- fix #67: replace jQuery with Vanilla JS +* fix #67: replace jQuery with Vanilla JS ### Removed -- Nextcloud 18 is not supported anymore +* Nextcloud 18 is not supported anymore ## 1.28.0 ### Added -- fix #63: add a new side menu with categories +* fix #63: add a new side menu with categories ## 1.27.2 ### Fixed -- fix #62: hide app notification icon +* fix #62: hide app notification icon ## 1.27.1 ### Fixed -- fix German translation render +* fix German translation render ## 1.27.0 ### Added -- hide personal settings access when settings are forced by the administrator +* hide personal settings access when settings are forced by the administrator ### Fixed -- improve German translations +* improve German translations ## 1.26.0 ### Added -- add Czech translation +* add Czech translation ## 1.25.2 ### Fixed -- fix CHANGELOG +* fix CHANGELOG ## 1.25.1 ### Added -- add PHP version as dependency -- add chinese translation +* add PHP version as dependency +* add chinese translation ### Fixed -- fix CHANGELOG +* fix CHANGELOG ## 1.25.0 ### Added -- add compatibility with Nextcloud 22 -- add CHANGELOG.md (fix #59) -- update app icon +* add compatibility with Nextcloud 22 +* add CHANGELOG.md (fix #59) +* update app icon ## 1.24.0 ### Added -- add option to define the background opacity (fix #53) -- add missing translations +* add option to define the background opacity (fix #53) +* add missing translations ## 1.23.1 ### Fixed -- fix but wih dark mode opener option +* fix but wih dark mode opener option ## 1.23.0 ### Added -- add support of dark Theme and Breeze Dark -- add support of Nextcloud 21 +* add support of dark Theme and Breeze Dark +* add support of Nextcloud 21 ## 1.22.2 ### Fixed -- fix regression: apps does not open in new tab (fix #55) +* fix regression: apps does not open in new tab (fix #55) ## 1.22.1 ### Fixed -- fix regression: apps does not open in new tab +* fix regression: apps does not open in new tab ## 1.22.0 ### Added -- Add option to sort categories (fix #53) -- Update admin UI +* Add option to sort categories (fix #53) +* Update admin UI ## 1.21.0 ### Added -- [FEATURE] Logo in the menu links to main page of installation (#51) +* [FEATURE] Logo in the menu links to main page of installation (#51) ## 1.20.1 ### Fixed -- Fix translations +* Fix translations ## 1.20.0 ### Added -- [FEATURE] Ability to remove apps from the Big Menu (#49) +* [FEATURE] Ability to remove apps from the Big Menu (#49) ## 1.19.1 ### Fixed -- fix #47: setting for list/grid view in files app flashes and dissapears +* fix #47: setting for list/grid view in files app flashes and dissapears ## 1.19.0 ### Added -- add option: the menu is enabled by default for users (fix #46) +* add option: the menu is enabled by default for users (fix #46) ## 1.18.0 ### Added -- add option to show link to settings (fix #44) -- refactor menus using several components +* add option to show link to settings (fix #44) +* refactor menus using several components ## 1.17.0 ### Added -- compliance with the app checker -- add an action to export the configuration -- add an action to purge the cache +* compliance with the app checker +* add an action to export the configuration +* add an action to purge the cache ## 1.16.3 ### Fixed -- fix links that must be opened in new window (https://help.nextcloud.com/t/external-petit-probleme-concernant-lapplication-external-sites-ou-sites-externes/94884/11) +* fix links that must be opened in new window (https://help.nextcloud.com/t/external-petit-probleme-concernant-lapplication-external-sites-ou-sites-externes/94884/11) ## 1.16.2 ### Fixed -- fix issue with personal settings when global settings are forced +* fix issue with personal settings when global settings are forced ## 1.16.1 ### Fixed -- fix #42: add cache to manage failures to access apps.nextcloud.com -- fix #41: side menu was hover apps list +* fix #42: add cache to manage failures to access apps.nextcloud.com +* fix #41: side menu was hover apps list ## 1.16.0 ### Added -- add an option to force settings to users (fix #38) +* add an option to force settings to users (fix #38) ## 1.15.0 ### Changed -- New name +* New name ### Fixed -- Fix #36: always displayed is not expanding +* Fix #36: always displayed is not expanding ## 1.14.0 ### Added -- add an api accessed by components -- add a config proxy in controllers +* add an api accessed by components +* add a config proxy in controllers ### Fixed -- fix translations +* fix translations ## 1.13.0 ### Added -- add an option to display the avatar instead of the logo (fix #34) +* add an option to display the avatar instead of the logo (fix #34) ## 1.12.3 ### Added -- add a delay before moving elements (fix #33) +* add a delay before moving elements (fix #33) ## 1.12.2 ### Fixed -- fix #30: `Always displayed` menu can not be close using touchscreens +* fix #30: `Always displayed` menu can not be close using touchscreens ## 1.12.1 ### Fixed -- fix typo -- fix translations +* fix typo +* fix translations ## 1.12.0 ### Fixed -- fix #30: administrators and users can select what apps must be opened in new tab -- fix typo +* fix #30: administrators and users can select what apps must be opened in new tab +* fix typo ## 1.11.0 ### Added -- add the option for opening apps in new tab (fix #29) +* add the option for opening apps in new tab (fix #29) ### Fixed -- fix issue with the header of the always displayed menu +* fix issue with the header of the always displayed menu ## 1.10.0 ### Added -- add images to select the display of the menu -- add live preview -- update translations -- update app info +* add images to select the display of the menu +* add live preview +* update translations +* update app info ## 1.9.3 ### Fixed -- fix regression with logo display +* fix regression with logo display ## 1.9.2 ### Added -- add the option “always displayed” which fixes the position of the menu to the left and always displays the application icons (fix #21, fix #2) +* add the option “always displayed” which fixes the position of the menu to the left and always displays the application icons (fix #21, fix #2) ## 1.8.6 ### Added -- add translations: `fr` and `de` -- improve and publish the `Makefile` -- update documentation +* add translations: `fr` and `de` +* improve and publish the `Makefile` +* update documentation ## 1.8.5 ### Fixed -- fix #28: menu items invisible after 1.8.4 +* fix #28: menu items invisible after 1.8.4 ## 1.8.4 ### Fixed -- fix #27: disable side menu on public pages - broken in 1.8.3 +* fix #27: disable side menu on public pages - broken in 1.8.3 ## 1.8.3 ### Fixed -- fix alphabetic order of apps (#26) +* fix alphabetic order of apps (#26) ## 1.8.2 ### Added -- add icon for closing the big menu (fix #25) +* add icon for closing the big menu (fix #25) ### Fixed -- fix hidden icons in the top menu (fix #23) -- fix missing apps (fix #24) +* fix hidden icons in the top menu (fix #23) +* fix missing apps (fix #24) ## 1.8.1 ### Fixed -- fix issue with links -- fix missing l10n files +* fix issue with links +* fix missing l10n files ## 1.8.0 ### Added -- add a `big menu` display (fix #22) -- add the possibility to choose what apps are displayed in the top menu (fix #22) -- add icon color filter -- add icon opacity filter +* add a `big menu` display (fix #22) +* add the possibility to choose what apps are displayed in the top menu (fix #22) +* add icon color filter +* add icon opacity filter ## 1.8.0-rc2 ## 1.7.0 ### Added -- add a loader when the page is unloading -- add compatibility with Nextcloud 19 +* add a loader when the page is unloading +* add compatibility with Nextcloud 19 ## 1.6.3 ### Fixed -- fix #20: add a shortcut to open and to hide the menu +* fix #20: add a shortcut to open and to hide the menu ## 1.6.2 ### Fixed -- fix #19: add a cache to limit flashes +* fix #19: add a cache to limit flashes ## 1.6.1 ### Fixed -- fix #19: add a hack to show external sites in the top menu with navigation +* fix #19: add a hack to show external sites in the top menu with navigation ## 1.6.0 ### Added -- Add a page of personal settings -- Add an option to disable the side menu as user -- Refactoring of javascripts +* Add a page of personal settings +* Add an option to disable the side menu as user +* Refactoring of javascripts ## 1.5.0 ### Added -- add option to force light icons instead of dark icons +* add option to force light icons instead of dark icons ### Fixed -- fix #19: add option to keep external sites in the top menu -- fix #16 #17: add dark icons and handle the svg filters +* fix #19: add option to keep external sites in the top menu +* fix #16 #17: add dark icons and handle the svg filters ## 1.4.1 ### Added -- Rendering harmonization with browsers +* Rendering harmonization with browsers ### Fixed -- FIX #15: make menu start after icon +* FIX #15: make menu start after icon ## 1.4.0 ### Fixed -- Fix #12: add an option to hide the opener and the panel when there is no application +* Fix #12: add an option to hide the opener and the panel when there is no application ## 1.3.4 ### Fixed -- FIX #14: add option to show only the opener -- FIX #13: add alternate hamburger icon -- FIX #11: remove error in the console +* FIX #14: add option to show only the opener +* FIX #13: add alternate hamburger icon +* FIX #11: remove error in the console ## 1.3.3 ### Added -- Add a second background color to create a background gradiant -- Update documentation +* Add a second background color to create a background gradiant +* Update documentation ### Fixed -- FIX #10: add options to select the size of the icons and the text, or hide them +* FIX #10: add options to select the size of the icons and the text, or hide them ## 1.3.2 ### Fixed -- FIX #9: opener icon not visible with multiple apps_paths +* FIX #9: opener icon not visible with multiple apps_paths ## 1.3.1 ### Fixed -- FIX #3: Add an opition the choose the position of the opener (after or before the logo) -- FIX #8: Remove extension of dynamic asset's routes (js, css) +* FIX #3: Add an opition the choose the position of the opener (after or before the logo) +* FIX #8: Remove extension of dynamic asset's routes (js, css) ## 1.3.0 ### Added -- `main.js` is replaced by a controller and a template +* `main.js` is replaced by a controller and a template ### Fixed -- FIX #2: add option to open the menu by hovering over opener +* FIX #2: add option to open the menu by hovering over opener ## 1.2.4 ### Fixed -- FIX #7: Opener icon not visible in Safari +* FIX #7: Opener icon not visible in Safari diff --git a/README.md b/README.md index 48614bf..3cb739f 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ If you want to install it from source, go to https://gitnet.fr/deblan/side_menu/ ``` $ cd /path/to/nextcloud/apps -$ VERSION=x.y.z; curl -sS https://gitnet.fr/deblan/side_menu/releases/download/v${VERSION}/side_menu_v${VERSION}.tar.gz | tar xvfz - +$ VERSION=x.y.z; curl -sS "https://gitnet.fr/deblan/side_menu/releases/download/${VERSION}/side_menu_v${VERSION}.tar.gz" | tar xvfz - ``` Administrators can edit many settings using the administration page. diff --git a/appinfo/info.xml b/appinfo/info.xml index 9cbc457..d7af92a 100644 --- a/appinfo/info.xml +++ b/appinfo/info.xml @@ -30,7 +30,7 @@ Notice Because I believe in a free and decentralized Internet, [Gitnet](https://gitnet.fr) is **self-hosted at home**. In case of downtime, you can download **Custom Menu** from [here](https://kim.deblan.fr/~side_menu/). ]]> - 5.1.3 + 5.2.2 agpl Simon Vieille SideMenu @@ -53,7 +53,7 @@ In case of downtime, you can download **Custom Menu** from [here](https://kim.de - + OCA\SideMenu\Settings\Admin diff --git a/lib/Service/LangRepository.php b/lib/Service/LangRepository.php index 1cde40a..4034b85 100644 --- a/lib/Service/LangRepository.php +++ b/lib/Service/LangRepository.php @@ -30,7 +30,12 @@ class LangRepository ->from('preferences') ; - $stmt = $qb->execute(); + // Nextcloud >=33+ + if (method_exists($qb, 'executeQuery')) { + $stmt = $qb->executeQuery(); + } else { + $stmt = $qb->execute(); + } $langs = ['en']; diff --git a/package-lock.json b/package-lock.json index fc750c5..0b5a50f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,5 +1,5 @@ { - "name": "src", + "name": "side_menu", "lockfileVersion": 3, "requires": true, "packages": { @@ -7,6 +7,7 @@ "license": "agpl", "dependencies": { "@babel/core": ">=7.12.0 <8.0.0", + "@formatjs/intl-segmenter": "^12.0.8", "@nextcloud/router": "^3.0.1", "@nextcloud/vue": "^9.0.0-alpha.8", "node-polyfill-webpack-plugin": "^4.1.0", @@ -532,6 +533,48 @@ "integrity": "sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==", "license": "MIT" }, + "node_modules/@formatjs/ecma402-abstract": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-3.0.8.tgz", + "integrity": "sha512-NRiqvxAvhbARZRFSRFPjN0y8txxmVutv2vMYvW2HSdCVf58w9l4osLj6Ujif643vImwZBcbKqhiKE0IOhY+DvA==", + "license": "MIT", + "dependencies": { + "@formatjs/fast-memoize": "3.0.3", + "@formatjs/intl-localematcher": "0.7.5", + "decimal.js": "^10.4.3", + "tslib": "^2.8.0" + } + }, + "node_modules/@formatjs/fast-memoize": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-3.0.3.tgz", + "integrity": "sha512-CArYtQKGLAOruCMeq5/RxCg6vUXFx3OuKBdTm30Wn/+gCefehmZ8Y2xSMxMrO2iel7hRyE3HKfV56t3vAU6D4Q==", + "license": "MIT", + "dependencies": { + "tslib": "^2.8.0" + } + }, + "node_modules/@formatjs/intl-localematcher": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.7.5.tgz", + "integrity": "sha512-7/nd90cn5CT7SVF71/ybUKAcnvBlr9nZlJJp8O8xIZHXFgYOC4SXExZlSdgHv2l6utjw1byidL06QzChvQMHwA==", + "license": "MIT", + "dependencies": { + "@formatjs/fast-memoize": "3.0.3", + "tslib": "^2.8.0" + } + }, + "node_modules/@formatjs/intl-segmenter": { + "version": "12.0.8", + "resolved": "https://registry.npmjs.org/@formatjs/intl-segmenter/-/intl-segmenter-12.0.8.tgz", + "integrity": "sha512-seByJgn5tx34X25O8mu63wYJ5JVQcUM4fkscobkA+wBhmyI1rJSgNCf6p8XZ28nCm514Cb2N0f3sAmpEyLPJ6g==", + "license": "MIT", + "dependencies": { + "@formatjs/ecma402-abstract": "3.0.8", + "@formatjs/intl-localematcher": "0.7.5", + "tslib": "^2.8.0" + } + }, "node_modules/@humanfs/core": { "version": "0.19.1", "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", @@ -2812,6 +2855,12 @@ } } }, + "node_modules/decimal.js": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz", + "integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==", + "license": "MIT" + }, "node_modules/decode-named-character-reference": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.1.0.tgz", @@ -7367,6 +7416,12 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, "node_modules/tty-browserify": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", diff --git a/package.json b/package.json index 0a23693..fdb050f 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ }, "dependencies": { "@babel/core": ">=7.12.0 <8.0.0", + "@formatjs/intl-segmenter": "^12.0.8", "@nextcloud/router": "^3.0.1", "@nextcloud/vue": "^9.0.0-alpha.8", "node-polyfill-webpack-plugin": "^4.1.0", diff --git a/src/admin.js b/src/admin.js index 06cdbe5..79505b7 100644 --- a/src/admin.js +++ b/src/admin.js @@ -17,6 +17,8 @@ import './scss/admin.scss' +import '@formatjs/intl-segmenter/polyfill.js' + import { createApp } from 'vue' import { createPinia } from 'pinia' import { waitContainer } from './lib/dom.js' diff --git a/src/components/settings/AdminSaveButton.vue b/src/components/settings/AdminSaveButton.vue index 14cc274..cd639a8 100644 --- a/src/components/settings/AdminSaveButton.vue +++ b/src/components/settings/AdminSaveButton.vue @@ -73,10 +73,10 @@ const save = async () => { if (Array.isArray(value) || typeof value === 'object') { value = JSON.stringify(value) } else if (typeof value === 'boolean') { - value = value ? 1 : 0 + value = value ? '1' : '0' } - OCP.AppConfig.setValue('side_menu', key, value, { + OCP.AppConfig.setValue('side_menu', key, value.toString(), { success() { update() }, diff --git a/src/components/settings/UserSaveButton.vue b/src/components/settings/UserSaveButton.vue index b2b8c6d..b14974e 100644 --- a/src/components/settings/UserSaveButton.vue +++ b/src/components/settings/UserSaveButton.vue @@ -69,11 +69,11 @@ const save = async () => { if (Array.isArray(value) || typeof value === 'object') { value = JSON.stringify(value) } else if (typeof value === 'boolean') { - value = value ? 1 : 0 + value = value ? '1' : '0' } formData.push('name=' + encodeURIComponent(key)) - formData.push('value=' + encodeURIComponent(value)) + formData.push('value=' + encodeURIComponent(value.toString())) fetch(url, { method: 'POST', diff --git a/src/l10n/fixtures/es.yaml b/src/l10n/fixtures/es.yaml index 1217c3b..e1af7a6 100644 --- a/src/l10n/fixtures/es.yaml +++ b/src/l10n/fixtures/es.yaml @@ -94,18 +94,18 @@ 'Search': 'Buscar' 'Toggle the menu': 'Alternar el menú' 'Open the documentation': 'Open the documentation' -'Ask the developer': 'Ask the developer' -'New request': 'New request' -'Report a bug': 'Report a bug' -'Show the configuration': 'Show the configuration' +'Ask the developer': 'Pregúntale al desarrollador' +'New request': 'Nueva solicitud' +'Report a bug': 'Informar de un fallo' +'Show the configuration': 'Mostrar los ajustes' 'Configuration:': 'Configuration:' -'Done!': 'Done!' -'Copy': 'Copy' -'Need help': 'Need help' -'I would like a new feature': 'I would like a new feature' -'Something went wrong': 'Something went wrong' -'Select apps': 'Select apps' -'Sort': 'Sort' -'Customize': 'Customize' +'Done!': '¡Realizado!' +'Copy': 'Copiar' +'Need help': 'Ayudame' +'I would like a new feature': 'Me gustaría una nueva función' +'Something went wrong': 'Algo salió mal' +'Select apps': 'Selecciona las aplicaciones' +'Sort': 'Ordenar' +'Customize': 'Personalizar' 'Custom': 'Custom' -'Close': 'Close' +'Close': 'Cerrar' diff --git a/src/l10n/fixtures/zh_CN.yaml b/src/l10n/fixtures/zh_CN.yaml index 58bf8ab..bc77571 100644 --- a/src/l10n/fixtures/zh_CN.yaml +++ b/src/l10n/fixtures/zh_CN.yaml @@ -38,7 +38,7 @@ '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)': '‌当鼠标悬停在触发器上时打开菜单(在触摸屏上自动禁用)' +'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': '图标和文本' diff --git a/src/menu.js b/src/menu.js index 7a92f62..9f41a0f 100644 --- a/src/menu.js +++ b/src/menu.js @@ -17,6 +17,8 @@ import './scss/menu.scss' +import '@formatjs/intl-segmenter/polyfill.js' + import { createApp } from 'vue' import { createPinia } from 'pinia' import { createElement, waitContainer } from './lib/dom.js' diff --git a/src/user.js b/src/user.js index 0f4b27a..0147a7c 100644 --- a/src/user.js +++ b/src/user.js @@ -17,6 +17,8 @@ import './scss/admin.scss' +import '@formatjs/intl-segmenter/polyfill.js' + import { createApp } from 'vue' import { createPinia } from 'pinia' import { waitContainer } from './lib/dom.js' diff --git a/templates/css/stylesheet.php b/templates/css/stylesheet.php index 969f17a..5bdc08b 100644 --- a/templates/css/stylesheet.php +++ b/templates/css/stylesheet.php @@ -38,7 +38,7 @@ body[data-theme-light], body[data-theme-light-highcontrast] { #nextcloud { - display: none; + display: none !important; }