side_menu/src/SideMenu.vue

59 lines
1.2 KiB
Vue
Raw Normal View History

2020-03-28 17:40:53 +01:00
<template>
<div id="side-menu">
2020-03-28 18:24:42 +01:00
<div class="side-menu-header">
<button class="side-menu-opener"></button>
2020-03-28 17:40:53 +01:00
2020-03-28 18:24:42 +01:00
<div v-if="logo" class="side-menu-logo">
<img v-bind:src="logo">
</div>
2020-03-28 17:40:53 +01:00
</div>
<ul class="side-menu-apps-list">
<li v-for="app in apps" v-bind:class="{'side-menu-app': true, 'is-active': app.active}">
2020-03-28 17:40:53 +01:00
<a v-bind:href="app.href">
<span class="side-menu-app-icon" v-html="app.icon"></span>
2020-03-28 17:40:53 +01:00
{{ app.name }}
</a>
</li>
</ul>
</div>
</template>
<script>
import axios from '@nextcloud/axios'
import { generateUrl } from '@nextcloud/router'
export default {
name: 'SideMenu',
data() {
return {
apps: [],
logo: null
}
},
created() {
let that = this
var links = document.querySelectorAll('#appmenu a')
2020-03-28 17:40:53 +01:00
this.logo = window.getComputedStyle(document.querySelector('#nextcloud .logo'), null)
.getPropertyValue('background-image')
.replace('url("', '')
.replace('")', '')
for (let element of links) {
let href = element.getAttribute('href')
if (href !== '#') {
that.apps.push({
href: href,
name: element.querySelector('span').innerHTML,
icon: element.querySelector('svg').outerHTML,
active: element.classList.contains('active')
})
}
}
2020-03-28 17:40:53 +01:00
}
}
</script>