Compare commits

..

58 Commits

Author SHA1 Message Date
Simon Vieille f59e62bf0b Merge pull request 'develop' (#477) from develop into master
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/477
2026-03-01 13:18:57 +01:00
Simon Vieille b9f204b545 Merge pull request 'develop' (#474) from develop into master
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/474
2026-02-27 09:18:35 +01:00
Simon Vieille bed8d8ff21 Merge pull request 'develop' (#472) from develop into master
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/472
2026-02-27 09:17:06 +01:00
Simon Vieille 2e5404464e Merge pull request 'develop' (#457) from develop into master
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/457
2025-10-29 17:48:52 +01:00
Simon Vieille 28e08e51a3 Merge pull request 'develop' (#444) from develop into master
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/444
2025-09-28 19:50:12 +02:00
Simon Vieille 2b84ed37e8 Merge pull request 'release 5.1.1' (#433) from develop into master
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/433
2025-05-23 09:15:12 +02:00
Simon Vieille a4e459d8ed Merge pull request 'release v5.1.0' (#428) from develop into master
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/428
2025-04-30 13:01:55 +02:00
Simon Vieille 9fea794e2f Merge pull request 'release v5.0.3' (#423) from develop into master
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/423
2025-04-30 08:42:11 +02:00
Simon Vieille 55967ff81e Merge pull request 'release v5.0.2' (#420) from develop into master
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/420
2025-04-29 19:29:38 +02:00
Simon Vieille 12604b44fc Merge pull request 'fix(StandardMenu): appLimit must return a value > 0' (#412) from develop into master
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/412
2025-04-17 00:05:38 +02:00
Simon Vieille b1e19ac965 Merge pull request 'fix(build): remove css directory' (#408) from develop into master
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/408
2025-04-16 20:10:25 +02:00
Simon Vieille ea83cc050c Merge pull request 'fix(build): remove css directory' (#407) from develop into master
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/407
2025-04-16 20:04:19 +02:00
Simon Vieille 36750532f6 Merge pull request 'release v5.0.0' (#406) from develop into master
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/406
2025-04-16 19:56:55 +02:00
Simon Vieille cf9495de46 Merge pull request 'v4.1.1' (#400) from develop into master
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/400
2025-03-12 18:41:47 +01:00
Simon Vieille 076435dc8e Merge pull request 'update changelog' (#396) from develop into master
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/396
2025-03-10 19:17:35 +01:00
Simon Vieille fe5f0287c3 Merge pull request 'release v4.1.0' (#395) from develop into master
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/395
2025-03-10 19:15:37 +01:00
Simon Vieille eff18bb143 Merge pull request 'v4.0.1' (#372) from develop into master
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/372
2024-10-30 19:08:49 +01:00
Simon Vieille 29826d3c54 Merge pull request 'develop' (#364) from develop into master
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/364
2024-10-27 18:53:20 +01:00
Simon Vieille 695934c28b Merge pull request 'v4.0.0' (#363) from develop into master
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/363
2024-10-27 17:20:18 +01:00
Simon Vieille aa2246a1ec Merge pull request 'release v3.13.1' (#356) from develop into master
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/356
2024-07-10 19:58:09 +02:00
Simon Vieille da04cf4222 Merge pull request 'release v3.13.0' (#353) from develop into master
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/353
2024-07-05 13:02:19 +02:00
Simon Vieille 7b33271d00 Merge pull request 'ci: rollback tag check' (#346) from develop into master
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/346
2024-04-08 14:33:50 +02:00
Simon Vieille e4e054835d Merge pull request 'ci: fix signature step (volumes)' (#345) from develop into master
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/345
2024-04-08 14:14:59 +02:00
Simon Vieille eae8ce80fb Merge pull request 'release v3.12.0' (#344) from develop into master
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/344
2024-04-08 11:59:32 +02:00
Simon Vieille 972c69d880 Merge pull request 'release v3.11.8' (#336) from develop into master
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/336
2024-02-20 21:26:26 +01:00
Simon Vieille dd8561e691 Merge pull request 'release v3.11.7' (#331) from develop into master
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/331
2024-02-14 19:10:56 +01:00
Simon Vieille 61a4689eb2 Merge pull request 'release v3.11.6' (#328) from develop into master
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/328
2024-02-12 23:22:28 +01:00
Simon Vieille 4532dd345e Merge pull request 'update app info' (#317) from develop into master
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/317
2024-01-28 23:07:31 +01:00
Simon Vieille 6effdc6eed Merge pull request 'release 3.11.5' (#316) from develop into master
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/316
2024-01-28 23:06:25 +01:00
Simon Vieille 810d83880b Merge pull request 'release v3.11.4' (#313) from develop into master
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/313
2024-01-27 10:47:53 +01:00
Simon Vieille 25e70f276f Merge pull request 'fix appinfo version' (#308) from develop into master
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/308
2024-01-16 20:40:28 +01:00
Simon Vieille d06b6b9e31 Merge pull request 'release 3.11.3' (#307) from develop into master
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/307
2024-01-16 20:14:53 +01:00
Simon Vieille 5c218bff2a Merge pull request 'releave v3.11.2' (#300) from develop into master
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/300
2023-11-12 20:30:56 +01:00
Simon Vieille b0385c172b Merge pull request 'release v3.11.1' (#297) from develop into master
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/297
2023-11-12 17:03:21 +01:00
Simon Vieille 04ac7e5ed1 Merge pull request 'update changelogs' (#293) from develop into master
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/293
2023-11-05 18:46:46 +01:00
Simon Vieille 67743485cb Merge pull request 'release v3.11.0' (#292) from develop into master
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/292
2023-11-05 18:45:25 +01:00
Simon Vieille 0ce318d6ec Merge pull request 'fix ci syntax' (#281) from develop into master
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/281
2023-09-29 16:48:36 +02:00
Simon Vieille c26c5f26df Merge pull request 'release v3.10.3' (#276) from develop into master
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/276
2023-07-24 21:35:58 +02:00
Simon Vieille 6ce7d3223f Merge pull request 'release v3.10.2' (#272) from develop into master
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/272
2023-07-15 15:22:53 +02:00
Simon Vieille 6eb977dad5 Merge pull request 'release v3.10.1' (#271) from develop into master
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/271
2023-07-15 15:03:26 +02:00
Simon Vieille 5f307cd046 Merge pull request 'release v3.10.0' (#268) from develop into master
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/268
2023-07-13 22:30:27 +02:00
Simon Vieille d2421f90bf Merge pull request 'release v3.9.1' (#266) from develop into master
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/266
2023-06-29 13:04:13 +02:00
Simon Vieille b16da36507 Merge pull request 'release v3.9.0' (#263) from develop into master
Reviewed-on: https://gitnet.fr/deblan/side_menu/pulls/263
2023-06-23 12:33:54 +02:00
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 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 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 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 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 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 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 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 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 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 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 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 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 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 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
31 changed files with 626 additions and 2290 deletions
+133 -532
View File
File diff suppressed because it is too large Load Diff
+3 -3
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**.
In case of downtime, you can download **Custom Menu** from [here](https://kim.deblan.fr/~side_menu/).
]]></description>
<version>6.2.0</version>
<version>5.2.1</version>
<licence>agpl</licence>
<author mail="contact@deblan.fr" homepage="https://www.deblan.fr/">Simon Vieille</author>
<namespace>SideMenu</namespace>
@@ -52,8 +52,8 @@ In case of downtime, you can download **Custom Menu** from [here](https://kim.de
<screenshot><![CDATA[https://gitnet.fr/deblan/side_menu/raw/branch/master/screenshots/nc25_big_menu.png]]></screenshot>
<screenshot><![CDATA[https://gitnet.fr/deblan/side_menu/raw/branch/master/screenshots/nc25_default_menu.png]]></screenshot>
<dependencies>
<php min-version="8.1" max-version="8.5" />
<nextcloud min-version="34" max-version="35"/>
<php min-version="8.1" max-version="8.4" />
<nextcloud min-version="31" max-version="33"/>
</dependencies>
<settings>
<admin>OCA\SideMenu\Settings\Admin</admin>
+7 -10
View File
@@ -6,7 +6,6 @@ use OC\AllConfig;
use OC\App\AppStore\Fetcher\CategoryFetcher;
use OC\AppFramework\Http\Request;
use OC\Security\CSP\ContentSecurityPolicyNonceManager;
use OC\Security\CSRF\CsrfTokenManager;
use OC\User\User;
use OCA\SideMenu\Service\AppRepository;
use OCA\SideMenu\Service\CategoryRepository;
@@ -20,11 +19,8 @@ use OCP\AppFramework\Bootstrap\IRegistrationContext;
use OCP\EventDispatcher\IEventDispatcher;
use OCP\IConfig;
use OCP\INavigationManager;
use OCP\IRequest;
use OCP\IURLGenerator;
use OCP\IUserSession;
use OCP\L10N\IFactory;
use OCP\Server;
use OCP\Util;
use Psr\Container\ContainerInterface;
@@ -38,9 +34,9 @@ class Application extends App implements IBootstrap
public const APP_ID = 'side_menu';
public const APP_NAME = 'Custom menu';
protected IConfig $config;
protected AllConfig $config;
protected ContentSecurityPolicyNonceManager $cspnm;
protected IRequest $request;
protected Request $request;
protected ?User $user = null;
public function __construct(array $urlParams = [])
@@ -87,9 +83,10 @@ class Application extends App implements IBootstrap
public function boot(IBootContext $context): void
{
$this->config = Server::get(IConfig::class);
$this->user = Server::get(IUserSession::class)->getUser();
$this->request = Server::get(IRequest::class);
$this->config = \OC::$server->getConfig();
$this->cspnm = \OC::$server->getContentSecurityPolicyNonceManager();
$this->user = \OC::$server[IUserSession::class]->getUser();
$this->request = \OC::$server->getRequest();
if (!$this->isEnabled()) {
return;
@@ -141,7 +138,7 @@ class Application extends App implements IBootstrap
$cache = $this->config->getAppValue(self::APP_ID, 'cache', '0');
foreach ($assets as $value) {
$route = Server::get(IURLGenerator::class)->linkToRoute(
$route = \OC::$server->getURLGenerator()->linkToRoute(
$value['route'],
['v' => $cache]
);
+1 -13
View File
@@ -97,7 +97,6 @@ class AdminSettingController extends Controller
'use-avatar',
'add-logo-link',
'show-settings',
'show-search-form',
'loader-enabled',
'always-displayed',
'enabled',
@@ -138,7 +137,6 @@ class AdminSettingController extends Controller
'use-avatar' => '0',
'add-logo-link' => '1',
'show-settings' => '0',
'show-search-form' => '1',
'loader-enabled' => '1',
'always-displayed' => '0',
'enabled' => '1',
@@ -208,17 +206,7 @@ class AdminSettingController extends Controller
}
foreach ($defaults as $key => $default) {
if (array_key_exists($key, $config)) {
continue;
}
if (in_array($key, $booleans)) {
$config[$key] = $default === '1';
} elseif (in_array($key, $arrays)) {
$config[$key] = json_decode($default);
} elseif (in_array($key, $integers)) {
$config[$key] = (int) $default;
} else {
if (!array_key_exists($key, $config)) {
$config[$key] = $default;
}
}
-1
View File
@@ -135,7 +135,6 @@ class JsController extends Controller
'force-light-icon' => $this->config->getAppValueBool('force-light-icon', '0'),
'display-logo' => $this->config->getAppValueBool('display-logo', '1'),
'use-avatar' => $this->config->getAppValueBool('use-avatar', '0'),
'show-search-form' => $this->config->getAppValueBool('show-search-form', '1'),
'hide-when-no-apps' => $this->config->getAppValueBool('hide-when-no-apps', '0'),
'loader-enabled' => $this->config->getAppValueBool('loader-enabled', '1'),
'always-displayed' => $this->config->getAppValueBool('always-displayed', '0'),
+413 -1580
View File
File diff suppressed because it is too large Load Diff
+1 -2
View File
@@ -11,9 +11,8 @@
},
"dependencies": {
"@babel/core": ">=7.12.0 <8.0.0",
"@formatjs/intl-segmenter": "^12.0.8",
"@nextcloud/router": "^3.0.1",
"@nextcloud/vue": "^9.9.0",
"@nextcloud/vue": "^9.0.0-alpha.8",
"node-polyfill-webpack-plugin": "^4.1.0",
"pinia": "^3.0.1",
"postcss": "^7.0.0 || ^8.0.1",
-2
View File
@@ -17,8 +17,6 @@
import './scss/admin.scss'
import '@formatjs/intl-segmenter/polyfill.js'
import { createApp } from 'vue'
import { createPinia } from 'pinia'
import { waitContainer } from './lib/dom.js'
-1
View File
@@ -109,4 +109,3 @@
'Customize': 'Přizpůsobit'
'Custom': 'Custom'
'Close': 'Zavřít'
'Show the search form': 'Show the search form'
-1
View File
@@ -109,4 +109,3 @@
'Customize': 'Customize'
'Custom': 'Custom'
'Close': 'Close'
'Show the search form': 'Show the search form'
+13 -14
View File
@@ -94,19 +94,18 @@
'Search': 'Buscar'
'Toggle the menu': 'Alternar el menú'
'Open the documentation': 'Open the documentation'
'Ask the developer': 'Pregúntale al desarrollador'
'New request': 'Nueva solicitud'
'Report a bug': 'Informar de un fallo'
'Show the configuration': 'Mostrar los ajustes'
'Ask the developer': 'Ask the developer'
'New request': 'New request'
'Report a bug': 'Report a bug'
'Show the configuration': 'Show the configuration'
'Configuration:': 'Configuration:'
'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'
'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'
'Custom': 'Custom'
'Close': 'Cerrar'
'Show the search form': 'Show the search form'
'Close': 'Close'
-1
View File
@@ -128,4 +128,3 @@
'Customize': 'Personnaliser'
'Custom': 'Personnalisé'
'Close': 'Fermer'
'Show the search form': 'Afficher le formulaire de recherche'
-1
View File
@@ -109,4 +109,3 @@
'Customize': 'Personalizar'
'Custom': 'Personalizado'
'Close': 'Pechar'
'Show the search form': 'Show the search form'
-1
View File
@@ -109,4 +109,3 @@
'Customize': 'Customize'
'Custom': 'Custom'
'Close': 'Close'
'Show the search form': 'Show the search form'
-1
View File
@@ -107,4 +107,3 @@
'Customize': 'Customize'
'Custom': 'Custom'
'Close': 'Close'
'Show the search form': 'Show the search form'
-1
View File
@@ -109,4 +109,3 @@
'Customize': 'Приспособить'
'Custom': 'Custom'
'Close': 'Закрыть'
'Show the search form': 'Show the search form'
-1
View File
@@ -107,4 +107,3 @@
'Customize': 'Customize'
'Custom': 'Custom'
'Close': 'Close'
'Show the search form': 'Show the search form'
-1
View File
@@ -109,4 +109,3 @@
'Customize': 'Anpassa'
'Custom': 'Anpassad'
'Close': 'Stäng'
'Show the search form': 'Show the search form'
-1
View File
@@ -109,4 +109,3 @@
'Customize': 'Customize'
'Custom': 'Custom'
'Close': 'Close'
'Show the search form': 'Show the search form'
+1 -2
View File
@@ -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': '图标和文本'
@@ -109,4 +109,3 @@
'Customize': '自定义'
'Custom': '自定义'
'Close': '关闭'
'Show the search form': 'Show the search form'
-2
View File
@@ -17,8 +17,6 @@
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'
+1 -3
View File
@@ -27,7 +27,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
:label="settings.name"
:avatar="settings.avatar"
/>
<AppSearch v-if="showSearchForm" v-model="search" />
<AppSearch v-model="search" />
<OpenerButton
v-if="!openerHover"
@click="$emit('close')"
@@ -102,7 +102,6 @@ const activeApp = ref(null)
const targetBlankApps = ref([])
const settings = ref(null)
const search = ref('')
const showSearchForm = ref(true)
const openerHover = ref(false)
const menu = useTemplateRef('menu')
const isTouchDevice = window.matchMedia('(pointer: coarse)').matches
@@ -121,7 +120,6 @@ onMounted(async () => {
targetBlankApps.value = config['target-blank-apps']
settings.value = config['settings']
showSearchForm.value = config['show-search-form']
openerHover.value = config['opener-hover'] && !isTouchDevice
items.value = await navStore.getCategories()
+1 -3
View File
@@ -30,7 +30,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
:avatar="settings.avatar"
/>
<AppSearch
v-if="showSearchForm && open"
v-if="open"
v-model="search"
/>
<OpenerButton
@@ -103,7 +103,6 @@ const openerHover = ref(false)
const alwaysDisplayed = ref(false)
const displayLogo = ref(false)
const useAvatarAsLogo = ref(false)
const showSearchForm = ref(true)
const search = ref('')
const apps = ref([])
const menu = useTemplateRef('menu')
@@ -152,7 +151,6 @@ onMounted(async () => {
alwaysDisplayed.value = config['always-displayed']
targetBlankApps.value = config['target-blank-apps']
forceLightIcon.value = config['force-light-icon']
showSearchForm.value = config['show-search-form']
avatar.value = config['avatar']
logo.value = config['logo']
+12 -17
View File
@@ -62,9 +62,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
</li>
</ul>
<NcActions
class="cm-standardmenu-app-menu-more"
class="cm-standardmenu-app-menu-more app-menu-more"
:aria-label="t('core', 'More apps')"
:forceMenu="true"
>
<NcActionLink
v-for="app in popoverAppList"
@@ -133,27 +132,19 @@ const setApps = (value) => {
const appLimit = () => {
const headerStart = document.querySelector('#header .header-start')
const headerEnd = document.querySelector('#header .header-end')
const unifiedSearch = document.querySelector('#header .unified-search-input')
const body = document.querySelector('body')
let totalWidth = body.offsetWidth
let otherElementsWidth = headerEnd ? headerEnd.offsetWidth : 0
if (unifiedSearch && headerEnd.offsetWidth < unifiedSearch.offsetWidth) {
otherElementsWidth += unifiedSearch.offsetWidth
}
let maxWidth = body.offsetWidth - otherElementsWidth
let size = (headerEnd ? headerEnd.offsetWidth : 0) + 70
if (headerStart) {
Array.from(headerStart.children).forEach((child) => {
if (child.id !== 'app-menu-container') {
maxWidth -= child.offsetWidth
size += child.offsetWidth
}
})
}
return Math.max(0, Math.floor(maxWidth / 60))
return Math.max(0, Math.floor((body.offsetWidth - size) / 70))
}
const makeStyle = (app) => {
@@ -165,9 +156,13 @@ const makeStyle = (app) => {
}
const computeLists = () => {
const limit = appLimit()
mainAppList.value = appList.value.slice(0, limit)
popoverAppList.value = appList.value.slice(limit).sort((a, b) => a.order - b.order)
mainAppList.value = appList.value.slice(0, appLimit())
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 () => {
@@ -182,7 +177,7 @@ onMounted(async () => {
setApps(await navStore.getCoreApps())
window.setInterval(computeLists, 100)
window.addEventListener('resize', reComputeLists)
})
</script>
+1 -3
View File
@@ -31,7 +31,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
:label="settings.name"
:avatar="settings.avatar"
/>
<AppSearch v-if="showSearchForm" v-model="search" />
<AppSearch v-model="search" />
<OpenerButton
v-if="!openerHover"
@click="$emit('close')"
@@ -107,7 +107,6 @@ const activeApp = ref(null)
const targetBlankApps = ref([])
const settings = ref(null)
const search = ref('')
const showSearchForm = ref(true)
const openerHover = ref(false)
const menu = useTemplateRef('menu')
const isTouchDevice = window.matchMedia('(pointer: coarse)').matches
@@ -126,7 +125,6 @@ onMounted(async () => {
targetBlankApps.value = config['target-blank-apps']
settings.value = config['settings']
showSearchForm.value = config['show-search-form']
openerHover.value = config['opener-hover'] && !isTouchDevice
items.value = await navStore.getCategories()
-15
View File
@@ -29,8 +29,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/>
</NcAppNavigation>
<NcAppContent class="cm-settings cm-settings--nav">
<button @click="toggleNav" class="cm-settings-nav-toggle">{{ trans('Toggle menu') }}</button>
<SettingsSection :hidden="section !== 'panel'">
<SectionTitle label="Panel" />
@@ -82,15 +80,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
<FormYesNo v-model="config['show-settings']" />
</SettingValue>
</SettingItem>
<SettingItem :disabled="config['always-displayed']">
<SettingLabel
label="Show the search form"
:middle="true"
/>
<SettingValue>
<FormYesNo v-model="config['show-search-form']" />
</SettingValue>
</SettingItem>
<SettingItem>
<SettingLabel
label="Icons"
@@ -630,10 +619,6 @@ const filterConfig = (value) => {
return result
}
const toggleNav = () => {
document.querySelector('.cm-settings-nav .app-navigation-toggle-wrapper > button').click()
}
onMounted(async () => {
config.value = await configStore.getAppConfig()
+5 -16
View File
@@ -15,25 +15,14 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
.cm-settings-nav {
padding-top: 30px !important;
}
.cm-settings-nav-toggle {
margin-top: 40px !important;
margin-left: 15px !important;
}
.cm-settings-nav .app-navigation-toggle-wrapper > button {
display: none;
}
.cm-settings {
&-nav {
max-width: 50vw !important;
&--nav {
padding-top: 30px;
}
&-nav {
.app-navigation__content {
padding: 20px 10px 20px 10px;
padding: 20px;
}
.app-navigation-entry-icon {
+22 -58
View File
@@ -287,6 +287,14 @@
}
}
.cm-standardmenu {
visibility: hidden;
&.show {
visibility: visible;
}
}
.cm-always-displayed {
body {
width: calc(100% - 50px) !important;
@@ -355,16 +363,6 @@
right: 0 !important;
margin-left: 0 !important;
}
#content {
left: 53px;
width: calc(100% - (var(--body-container-margin) * 2) - 62px);
}
#content-vue {
width: calc(100% - (var(--body-container-margin) * 2) - 60px);
margin-left: 11px;
}
}
@media screen and (max-width: 1024px) {
@@ -387,16 +385,6 @@
padding: 10px 0;
}
}
#header {
.unified-search-input {
width: 80px !important;
.unified-search-input__label {
display: none;
}
}
}
}
@media screen and (min-width: 1024px) {
@@ -418,25 +406,11 @@
$header-icon-size: 20px;
.cm-standardmenu {
visibility: hidden;
width: 100%;
display: flex;
flex-shrink: 1;
flex-wrap: wrap;
&.show {
visibility: visible;
}
svg {
color: var(--color-background-plain-text) !important;
}
.app-menu-entry--label {
color: var(--color-background-plain-text) !important;
filter: var(--background-image-invert-if-bright, var(--primary-invert-if-bright)) !important;
}
.app-menu-main {
display: flex;
flex-wrap: nowrap;
@@ -496,7 +470,7 @@ $header-icon-size: 20px;
color: var(--color-primary-text);
text-align: center;
left: 50%;
top: 55%;
top: 45%;
display: block;
min-width: 100%;
transform: translateX(-50%);
@@ -568,28 +542,24 @@ $header-icon-size: 20px;
}
}
&-app-menu-more {
padding-top: 9px !important;
.app-menu-more .button-vue--vue-tertiary {
opacity: 0.7;
margin: 8px 3px 3px 3px;
filter: var(--background-image-invert-if-bright, var(--primary-invert-if-bright));
.button-vue--vue-tertiary {
opacity: 0.7;
margin: 8px 3px 3px 3px;
filter: var(--background-image-invert-if-bright, var(--primary-invert-if-bright));
&:not([aria-expanded='true']) {
color: var(--color-main-text);
&:not([aria-expanded='true']) {
color: var(--color-main-text);
&:hover {
opacity: 1;
background-color: transparent !important;
}
}
&:focus-visible {
&:hover {
opacity: 1;
outline: none !important;
background-color: transparent !important;
}
}
&:focus-visible {
opacity: 1;
outline: none !important;
}
}
&-app-menu-popover-entry {
@@ -629,9 +599,3 @@ $header-icon-size: 20px;
display: none;
}
}
#header {
.unified-search-input:not(.unified-search-input--mobile) {
position: unset !important;
}
}
-2
View File
@@ -17,8 +17,6 @@
import './scss/admin.scss'
import '@formatjs/intl-segmenter/polyfill.js'
import { createApp } from 'vue'
import { createPinia } from 'pinia'
import { waitContainer } from './lib/dom.js'
+12
View File
@@ -117,3 +117,15 @@ body[data-theme-light], body[data-theme-light-highcontrast] {
font-size: 16px;
}
<?php } ?>
<?php if ($_['always-displayed']) { ?>
#content {
left: 53px;
width: calc(100% - (var(--body-container-margin) * 2) - 62px);
}
#content-vue {
width: calc(100% - (var(--body-container-margin) * 2) - 60px);
margin-left: 11px;
}
<?php } ?>
-2
View File
@@ -7,7 +7,6 @@ const NodePolyfillPlugin = require('node-polyfill-webpack-plugin')
const TerserPlugin = require('terser-webpack-plugin')
const appName = 'side_menu'
const appVersion = '6.x'
const buildMode = process.env.NODE_ENV
const isDev = buildMode === 'development'
@@ -81,7 +80,6 @@ module.exports = {
new webpack.DefinePlugin({
appName: JSON.stringify(appName),
appVersion: JSON.stringify(appVersion),
}),
],