release v2.0.0 #4
|
@ -2,9 +2,7 @@
|
||||||
<q-expansion-item
|
<q-expansion-item
|
||||||
v-if="isGranted(entry)"
|
v-if="isGranted(entry)"
|
||||||
clickable
|
clickable
|
||||||
tag="a"
|
:label="getTitle(entry)"
|
||||||
target="self"
|
|
||||||
:label="title"
|
|
||||||
:icon="entry.icon"
|
:icon="entry.icon"
|
||||||
expand-separator
|
expand-separator
|
||||||
>
|
>
|
||||||
|
@ -19,7 +17,7 @@
|
||||||
</q-item-section>
|
</q-item-section>
|
||||||
<q-item-section>
|
<q-item-section>
|
||||||
<q-item-label>
|
<q-item-label>
|
||||||
{{ child.title }}
|
{{ getTitle(child) }}
|
||||||
</q-item-label>
|
</q-item-label>
|
||||||
</q-item-section>
|
</q-item-section>
|
||||||
</q-item>
|
</q-item>
|
||||||
|
@ -29,9 +27,9 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { computed, defineComponent, PropType } from 'vue';
|
import { defineComponent, PropType } from 'vue';
|
||||||
import { hasPermissions } from '@flaschengeist/api';
|
|
||||||
import { FG_Plugin } from '@flaschengeist/types';
|
import { FG_Plugin } from '@flaschengeist/types';
|
||||||
|
import { useMainStore } from 'app/api';
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
name: 'EssentialExpansionLink',
|
name: 'EssentialExpansionLink',
|
||||||
|
@ -46,17 +44,20 @@ export default defineComponent({
|
||||||
addShortCut: (val: FG_Plugin.MenuLink) => val.link,
|
addShortCut: (val: FG_Plugin.MenuLink) => val.link,
|
||||||
},
|
},
|
||||||
setup(props, { emit }) {
|
setup(props, { emit }) {
|
||||||
|
const store = useMainStore();
|
||||||
|
|
||||||
function isGranted(val: FG_Plugin.MenuLink) {
|
function isGranted(val: FG_Plugin.MenuLink) {
|
||||||
return hasPermissions(val.permissions || []);
|
return !val.permissions || val.permissions.every((p) => store.permissions.includes(p));
|
||||||
}
|
}
|
||||||
const title = computed(() =>
|
function getTitle(entry: FG_Plugin.MenuLink) {
|
||||||
typeof props.entry.title === 'function' ? props.entry.title() : props.entry.title
|
return typeof entry.title === 'function' ? entry.title() : entry.title;
|
||||||
);
|
}
|
||||||
|
|
||||||
function addShortCut(val: FG_Plugin.MenuLink) {
|
function addShortCut(val: FG_Plugin.MenuLink) {
|
||||||
emit('addShortCut', val);
|
emit('addShortCut', val);
|
||||||
}
|
}
|
||||||
|
|
||||||
return { isGranted, title, addShortCut };
|
return { isGranted, getTitle, addShortCut };
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
Loading…
Reference in New Issue