diff --git a/css/sideMenu.css b/css/sideMenu.css
index 930a82e..63f72a9 100644
--- a/css/sideMenu.css
+++ b/css/sideMenu.css
@@ -21,7 +21,7 @@
left: 0;
height: 100vh;
width: 100%;
- max-width: 250px;
+ max-width: 290px;
background: linear-gradient(90deg, var(--side-menu-background-color, #333) 0%, var(--side-menu-background-color-to, #333) 100%);
z-index: 3000;
color: var(--side-menu-text-color, #fff);
@@ -103,27 +103,19 @@
position: fixed;
top: 150px;
width: 100%;
- max-width: 250px;
+ max-width: 290px;
overflow: auto;
}
.side-menu-app-icon {
width: 20px;
- vertical-align: top;
+ vertical-align: middle;
+ margin-top: -4px;
margin-right: 10px;
filter: invert(var(--side-menu-icon-invert-filter, 0%));
opacity: var(--side-menu-icon-opacity, 1);
}
-.side-menu-app-icon svg {
- vertical-align: middle;
- margin-top: -3px;
-}
-
-.side-menu-app-icon .app-icon-notification {
- display: none;
-}
-
.side-menu-app a {
line-height: 30px;
color: var(--side-menu-text-color, #fff);
@@ -151,7 +143,7 @@
height: 150px;
width: 100%;
z-index: 2300;
- max-width: 250px;
+ max-width: 290px;
position: fixed;
padding-top: 2px;
top: 0;
diff --git a/src/SideMenu.vue b/src/SideMenu.vue
index 2450967..65707ef 100644
--- a/src/SideMenu.vue
+++ b/src/SideMenu.vue
@@ -59,6 +59,7 @@ import OpenerButton from './OpenerButton'
import SettingsButton from './SettingsButton'
import SideMenuApp from './SideMenuApp'
import Logo from './Logo'
+import { loadState } from '@nextcloud/initial-state'
export default {
name: 'SideMenu',
@@ -81,89 +82,31 @@ export default {
},
methods: {
retrieveApps() {
- this.apps = []
- const links = document.querySelectorAll('#appmenu a')
- const menu = document.querySelector('#appmenu')
- let menuIsHidden = true
+ this.apps = loadState('core', 'apps', {})
- if (menu) {
- menuIsHidden = window.getComputedStyle(menu, null).getPropertyValue('display') === 'none'
- }
-
- for (let element of links) {
- let href = element.getAttribute('href')
- let parent = element.parentNode
-
- if (!parent) {
- continue
- }
-
- let dataId = parent.getAttribute('data-id')
- dataId = dataId !== null ? dataId : ''
-
- if (!parent.classList.contains('app-top-side-menu') && !parent.classList.contains('app-hidden') && !menuIsHidden) {
- continue
- }
-
- if (href !== '#') {
- let svg = element.querySelector('svg').outerHTML
-
- svg = svg
- .replace(/(height|width)="20"/, '')
- .replace('id="invertMenuMain', 'id="invertSideMenu')
- .replace('url(#invertMenuMain', 'url(#invertSideMenu')
-
- if (this.forceLightIcon) {
- svg = svg.replace(/filter="url[^"]+"/, '')
- }
-
- this.apps.push({
- id: dataId,
- href: href,
- name: trim(element.querySelector('span').innerHTML),
- icon: svg,
- active: element.classList.contains('active')
- })
- }
- }
-
- (function(apps) {
- window.setTimeout(function() {
- document.querySelector('body').dispatchEvent(new CustomEvent('side-menu.apps', {
- detail: {apps: apps},
- }))
- }, 1000)
- })(this.apps)
+ document.querySelector('body').dispatchEvent(new CustomEvent('side-menu.apps', {
+ detail: {apps: this.apps},
+ }))
},
retrieveConfig() {
- let that = this
-
axios
.get(OC.generateUrl('/apps/side_menu/js/config'))
- .then(function(response) {
+ .then((response) => {
const config = response.data
- that.targetBlankApps = config['target-blank-apps']
- that.forceLightIcon = config['force-light-icon']
- that.avatar = config['avatar']
- that.logo = config['logo']
- that.logoLink = config['logo-link']
- that.settings = config['settings']
+ this.targetBlankApps = config['target-blank-apps']
+ this.forceLightIcon = config['force-light-icon']
+ this.avatar = config['avatar']
+ this.logo = config['logo']
+ this.logoLink = config['logo-link']
+ this.settings = config['settings']
})
},
},
mounted() {
this.retrieveConfig()
this.retrieveApps()
-
- const menu = document.querySelector('#appmenu')
-
- if (menu) {
- const config = {attributes: true, childList: true, subtree: true}
- const observer = new MutationObserver(this.retrieveApps)
- observer.observe(menu, config)
- }
}
}
diff --git a/src/SideMenuApp.vue b/src/SideMenuApp.vue
index 85ad969..c910dce 100644
--- a/src/SideMenuApp.vue
+++ b/src/SideMenuApp.vue
@@ -17,7 +17,7 @@ along with this program. If not, see .
-
+