Compare commits

..

1 commit

Author SHA1 Message Date
Renovate Bot
3491c4bfcc chore(deps): update dependency prettier to v3.5.3 2025-04-16 20:02:55 +00:00
7 changed files with 10 additions and 35 deletions

View file

@ -1,18 +1,5 @@
## [Unreleased] ## [Unreleased]
## 5.0.3
### Fixed
* fix #422: undefined array key "HTTP_USER_AGENT"
## 5.0.2
### Fixed
* fix #413: add user-agent check for memories mobile app
* fix #418: allow non admin user to access their settings
## 5.0.1
### Fixed
* fix(StandardMenu): appLimit must return a value > 0
## 5.0.0 ## 5.0.0
### Fixed ### Fixed
* fix apps's order in the standard menu * fix apps's order in the standard menu

View file

@ -24,7 +24,8 @@ You like this app and you want to support me? ☕ [Buy me a coffee](https://www.
Requirements Requirements
------------ ------------
* PHP >= 8.1 * PHP >= 8.0
* App `theming` enabled
Installation and upgrade Installation and upgrade
------------------------ ------------------------
@ -40,7 +41,7 @@ If you want to install it from source, go to https://gitnet.fr/deblan/side_menu/
``` ```
$ cd /path/to/nextcloud/apps $ 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 - $ curl -sS https://gitnet.fr/attachments/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | tar xvfz -
``` ```
Administrators can edit many settings using the administration page. Administrators can edit many settings using the administration page.

View file

@ -30,7 +30,7 @@ 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>5.0.3</version> <version>5.0.0</version>
<licence>agpl</licence> <licence>agpl</licence>
<author mail="contact@deblan.fr" homepage="https://www.deblan.fr/">Simon Vieille</author> <author mail="contact@deblan.fr" homepage="https://www.deblan.fr/">Simon Vieille</author>
<namespace>SideMenu</namespace> <namespace>SideMenu</namespace>

View file

@ -49,11 +49,6 @@ class Application extends App implements IBootstrap
*/ */
protected $user; protected $user;
/**
* @var Request
*/
protected $request;
public function __construct(array $urlParams = []) public function __construct(array $urlParams = [])
{ {
parent::__construct(self::APP_ID, $urlParams); parent::__construct(self::APP_ID, $urlParams);
@ -101,7 +96,6 @@ class Application extends App implements IBootstrap
$this->config = \OC::$server->getConfig(); $this->config = \OC::$server->getConfig();
$this->cspnm = \OC::$server->getContentSecurityPolicyNonceManager(); $this->cspnm = \OC::$server->getContentSecurityPolicyNonceManager();
$this->user = \OC::$server[IUserSession::class]->getUser(); $this->user = \OC::$server[IUserSession::class]->getUser();
$this->request = \OC::$server->getRequest();
if (!$this->isEnabled()) { if (!$this->isEnabled()) {
return; return;
@ -112,10 +106,6 @@ class Application extends App implements IBootstrap
protected function isEnabled(): bool protected function isEnabled(): bool
{ {
if (isset($this->request->server['HTTP_USER_AGENT']) && preg_match('/MemoriesNative/', $this->request->server['HTTP_USER_AGENT'])) {
return false;
}
$enabled = true; $enabled = true;
$isForced = (bool) $this->config->getAppValue(self::APP_ID, 'force', '0'); $isForced = (bool) $this->config->getAppValue(self::APP_ID, 'force', '0');

View file

@ -98,7 +98,6 @@ class PersonalSettingController extends Controller
} }
#[NoCSRFRequired] #[NoCSRFRequired]
#[NoAdminRequired]
#[FrontpageRoute(verb: 'GET', url: '/user/config')] #[FrontpageRoute(verb: 'GET', url: '/user/config')]
public function configuration(): JSONResponse public function configuration(): JSONResponse
{ {

View file

@ -40,7 +40,7 @@
"file-loader": "^6.2.0", "file-loader": "^6.2.0",
"mini-css-extract-plugin": "^2.9.1", "mini-css-extract-plugin": "^2.9.1",
"postcss-loader": "^8.1.1", "postcss-loader": "^8.1.1",
"prettier": "3.4.2", "prettier": "3.5.3",
"sass": "^1.78.0", "sass": "^1.78.0",
"sass-loader": "^16.0.1", "sass-loader": "^16.0.1",
"source-map-loader": "^5.0.0", "source-map-loader": "^5.0.0",

View file

@ -142,7 +142,7 @@ const appLimit = () => {
}) })
} }
return Math.max(0, Math.floor((body.offsetWidth - size) / 70)) return Math.floor((body.offsetWidth - size) / 70)
} }
const makeStyle = (app) => { const makeStyle = (app) => {
@ -158,11 +158,6 @@ const computeLists = () => {
popoverAppList.value = appList.value.slice(appLimit()).sort((a, b) => a.order - b.order) popoverAppList.value = appList.value.slice(appLimit()).sort((a, b) => a.order - b.order)
} }
const reComputeLists = (delay) => {
window.clearTimeout(resizeTimeout)
resizeTimeout = window.setTimeout(computeLists, delay || 100)
}
onMounted(async () => { onMounted(async () => {
const config = await configStore.getConfig() const config = await configStore.getConfig()
@ -174,7 +169,10 @@ onMounted(async () => {
setApps(await navStore.getCoreApps()) setApps(await navStore.getCoreApps())
window.addEventListener('resize', reComputeLists) window.addEventListener('resize', () => {
window.clearTimeout(resizeTimeout)
resizeTimeout = window.setTimeout(computeLists, 100)
})
}) })
</script> </script>