[Balance] Plugin wird geladen

This commit is contained in:
Tim Gröger 2020-10-31 17:33:40 +01:00
parent 09c6a806c9
commit a1f1be7fb6
5 changed files with 117 additions and 1 deletions

View File

@ -9,7 +9,7 @@ const config = {
// Do not change required Modules !!
requiredModules: ['User'],
// here you can import plugins.
loadModules: []
loadModules: ['Balance']
};
// do not change anything here !!

View File

@ -0,0 +1,12 @@
<template>
<q-page padding>
<h1>Add works</h1>
</q-page>
</template>
<script lang="ts">
import { defineComponent } from '@vue/composition-api'
export default defineComponent({
// name: 'PageName'
})
</script>

View File

@ -0,0 +1,48 @@
<template>
<div>
<q-page padding v-if="checkMain">
<q-card>
<q-card-section>
<q-list
v-for="(mainRoute, index) in mainRoutes"
:key="'mainRoute' + index"
>
<essential-link
v-for="(route, index2) in mainRoute.children"
:key="'route' + index2"
:title="route.title"
:icon="route.icon"
:link="route.name"
v-if="hasPermissions(route.permissions)"
/>
</q-list>
</q-card-section>
</q-card>
</q-page>
<router-view />
</div>
</template>
<script lang="ts">
import { computed, defineComponent } from '@vue/composition-api';
import EssentialLink from 'src/components/navigation/EssentialLink.vue';
import mainRoutes from 'src/plugins/balance/routes';
export default defineComponent({
// name: 'PageName'
components: { EssentialLink },
setup(_, { root }) {
const checkMain = computed(() => {
return root.$route.matched.length == 2;
});
function hasPermissions(permissions: FG.Permission[] | undefined) {
if (permissions) {
return permissions.every(permission => {
return root.$store.getters['user/permissions'].includes(permission)
})
}
return true
}
return { checkMain, mainRoutes, hasPermissions };
}
});
</script>

View File

@ -0,0 +1,13 @@
import {Module} from 'vuex';
import {StateInterface} from "src/store";
import mainRoutes from "./routes"
import { FG_Plugin } from 'src/plugins';
const plugin: FG_Plugin.Plugin = {
name: 'Balance',
mainRoutes,
requiredModules: ['User'],
version: '0.0.1',
}
export default plugin;

View File

@ -0,0 +1,43 @@
import {FG_Plugin} from 'src/plugins';
const permissions = {
// Show own and others balance
SHOW: "balance_show",
SHOW_OTHER: "balance_show_others",
// Credit balance
ADD: "balance_add",
// Debit balance
SUB: "balance_sub",
// Send from to other
SEND: "balance_send",
// Send from other to another
SEND_OTHER: "balance_send_others",
// Can set limit for users
SET_LIMIT: "balance_set_limit",
//Allow sending / sub while exceeding the set limit
EXCEED_LIMIT: "balance_exceed_limit"
}
const mainRoutes: FG_Plugin.PluginRouteConfig[] = [
{
title: 'Gerücht',
icon: 'mdi-cash-100',
path: 'balance',
name: 'balance',
component: () => import('../pages/MainPage.vue'),
meta: {permissions: ['user']},
children: [
{
title: 'Anschreiben',
icon: 'mdi-cash-100',
path: 'balance-add',
name: 'balance-add',
shortcut: true,
meta: {permissions: [permissions.ADD, permissions.SHOW]},
component: () => import('../pages/Add.vue')
}
]
}
]
export default mainRoutes