[Vue3] Fixed usage of plugins
This commit is contained in:
parent
9967296698
commit
b2d54a046f
|
@ -156,13 +156,13 @@ function loadShortCuts(
|
||||||
|
|
||||||
// loade plugins
|
// loade plugins
|
||||||
function loadPlugin(
|
function loadPlugin(
|
||||||
loadedPlugins: FG_Plugin.LoadedPlugins,
|
loadedPlugins: FG_Plugin.Flaschengeist,
|
||||||
modules: string[],
|
modules: string[],
|
||||||
backendpromise: Promise<Backend | null>,
|
backendpromise: Promise<Backend | null>,
|
||||||
plugins: FG_Plugin.Plugin[],
|
plugins: FG_Plugin.Plugin[],
|
||||||
store: Store<UserSessionState>,
|
store: Store<UserSessionState>,
|
||||||
router: Router
|
router: Router
|
||||||
): FG_Plugin.LoadedPlugins {
|
): FG_Plugin.Flaschengeist {
|
||||||
modules.forEach((requiredModule) => {
|
modules.forEach((requiredModule) => {
|
||||||
const plugin = plugins.find((plugin) => {
|
const plugin = plugins.find((plugin) => {
|
||||||
return plugin.name == requiredModule;
|
return plugin.name == requiredModule;
|
||||||
|
@ -223,7 +223,7 @@ export default boot<UserSessionState>(({ router, store, app }) => {
|
||||||
|
|
||||||
const backendPromise = getBackend();
|
const backendPromise = getBackend();
|
||||||
|
|
||||||
let loadedPlugins: FG_Plugin.LoadedPlugins = {
|
let loadedPlugins: FG_Plugin.Flaschengeist = {
|
||||||
routes,
|
routes,
|
||||||
plugins: [],
|
plugins: [],
|
||||||
mainLinks: [],
|
mainLinks: [],
|
||||||
|
@ -298,6 +298,10 @@ export default boot<UserSessionState>(({ router, store, app }) => {
|
||||||
loadedPlugins.routes.forEach((route) => router.addRoute(route));
|
loadedPlugins.routes.forEach((route) => router.addRoute(route));
|
||||||
|
|
||||||
// save plugins in VM-variable
|
// save plugins in VM-variable
|
||||||
|
<<<<<<< HEAD
|
||||||
console.log(store);
|
console.log(store);
|
||||||
app.provide('flaschengeistPlugins', loadedPlugins);
|
app.provide('flaschengeistPlugins', loadedPlugins);
|
||||||
|
=======
|
||||||
|
app.provide('flaschengeist', loadedPlugins);
|
||||||
|
>>>>>>> 3a1cb84... [Vue3] Fixed usage of plugins
|
||||||
});
|
});
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
<!-- Hier kommen die Shortlinks hin -->
|
<!-- Hier kommen die Shortlinks hin -->
|
||||||
<div>
|
<div>
|
||||||
<short-cut-link
|
<short-cut-link
|
||||||
v-for="(shortcut, index) in plugins.shortcuts"
|
v-for="(shortcut, index) in flaschengeist.shortcuts"
|
||||||
:key="'shortcut' + index"
|
:key="'shortcut' + index"
|
||||||
:link="shortcut.link"
|
:link="shortcut.link"
|
||||||
:icon="shortcut.icon"
|
:icon="shortcut.icon"
|
||||||
|
@ -46,7 +46,7 @@
|
||||||
<!-- Plugins -->
|
<!-- Plugins -->
|
||||||
<q-list>
|
<q-list>
|
||||||
<essential-link
|
<essential-link
|
||||||
v-for="(link, index) in plugins.mainLinks"
|
v-for="(link, index) in flaschengeist.mainLinks"
|
||||||
:key="'plugin' + index"
|
:key="'plugin' + index"
|
||||||
:title="link.title"
|
:title="link.title"
|
||||||
:link="link.link"
|
:link="link.link"
|
||||||
|
@ -137,7 +137,7 @@ export default defineComponent({
|
||||||
setup() {
|
setup() {
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
const store = useStore();
|
const store = useStore();
|
||||||
const plugins = inject<FG_Plugin.LoadedPlugins>('flaschengeistPlugins');
|
const flaschengeist = inject<FG_Plugin.Flaschengeist>('flaschengeist');
|
||||||
const leftDrawer = ref(false);
|
const leftDrawer = ref(false);
|
||||||
|
|
||||||
const leftDrawerOpen = ref(
|
const leftDrawerOpen = ref(
|
||||||
|
@ -155,7 +155,7 @@ export default defineComponent({
|
||||||
}
|
}
|
||||||
|
|
||||||
const pluginChildLinks = computed(() => {
|
const pluginChildLinks = computed(() => {
|
||||||
const link: FG_Plugin.PluginMainLink | undefined = plugins?.mainLinks.find(
|
const link: FG_Plugin.PluginMainLink | undefined = flaschengeist?.mainLinks.find(
|
||||||
(plugin: FG_Plugin.PluginMainLink) => {
|
(plugin: FG_Plugin.PluginMainLink) => {
|
||||||
if (route.matched.length > 1) {
|
if (route.matched.length > 1) {
|
||||||
return plugin.name == route.matched[1].name;
|
return plugin.name == route.matched[1].name;
|
||||||
|
@ -185,7 +185,7 @@ export default defineComponent({
|
||||||
pluginChildLinks,
|
pluginChildLinks,
|
||||||
shortcuts,
|
shortcuts,
|
||||||
logout,
|
logout,
|
||||||
plugins,
|
flaschengeist,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
</q-toolbar-title>
|
</q-toolbar-title>
|
||||||
<div>
|
<div>
|
||||||
<short-cut-link
|
<short-cut-link
|
||||||
v-for="(shortcut, index) in plugins.shortcutsOut"
|
v-for="(shortcut, index) in shortcuts"
|
||||||
:key="'shortcut' + index"
|
:key="'shortcut' + index"
|
||||||
:link="shortcut.link"
|
:link="shortcut.link"
|
||||||
:icon="shortcut.icon"
|
:icon="shortcut.icon"
|
||||||
|
@ -50,8 +50,8 @@ export default defineComponent({
|
||||||
name: 'OutLayout',
|
name: 'OutLayout',
|
||||||
components: { ShortCutLink },
|
components: { ShortCutLink },
|
||||||
setup() {
|
setup() {
|
||||||
const plugins = inject<FG_Plugin.LoadedPlugins>('flaschengeistPlugins');
|
const shortcuts = inject<FG_Plugin.Flaschengeist>('flaschengeist')?.shortcutsOut || [];
|
||||||
return { plugins };
|
return { shortcuts };
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -18,10 +18,10 @@ export default defineComponent({
|
||||||
name: 'Dashboard',
|
name: 'Dashboard',
|
||||||
setup() {
|
setup() {
|
||||||
const widgets = markRaw<Array<Component>>([]);
|
const widgets = markRaw<Array<Component>>([]);
|
||||||
const flaschengeistPlugins = inject<FG_Plugin.LoadedPlugins>('flaschengeistPlugins');
|
const flaschengeist = inject<FG_Plugin.Flaschengeist>('flaschengeist');
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
flaschengeistPlugins?.widgets.forEach((widget) => {
|
flaschengeist?.widgets.forEach((widget) => {
|
||||||
if (hasPermissions(widget.permissions)) widgets.push(widget.widget);
|
if (hasPermissions(widget.permissions)) widgets.push(widget.widget);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
<div v-if="$route.name == 'about'" class="col-12 text-h6 q-pa-sm">Geladene Plugins:</div>
|
<div v-if="$route.name == 'about'" class="col-12 text-h6 q-pa-sm">Geladene Plugins:</div>
|
||||||
<div v-if="$route.name == 'about'" class="col-12 q-pa-sm">
|
<div v-if="$route.name == 'about'" class="col-12 q-pa-sm">
|
||||||
<q-chip
|
<q-chip
|
||||||
v-for="(plugin, index) in $flaschengeistPlugins.plugins"
|
v-for="(plugin, index) in plugins"
|
||||||
:key="'plugin' + index"
|
:key="'plugin' + index"
|
||||||
square
|
square
|
||||||
:color="$q.dark.isActive ? 'accent' : ''"
|
:color="$q.dark.isActive ? 'accent' : ''"
|
||||||
|
@ -59,8 +59,9 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { defineComponent } from 'vue';
|
import { defineComponent, inject } from 'vue';
|
||||||
import Developer from 'components/about/Developer.vue';
|
import Developer from 'components/about/Developer.vue';
|
||||||
|
import { FG_Plugin } from 'src/plugins';
|
||||||
|
|
||||||
const developers = [
|
const developers = [
|
||||||
{
|
{
|
||||||
|
@ -94,10 +95,11 @@ const developers = [
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
// name: 'PageName'
|
name: 'About',
|
||||||
components: { Developer },
|
components: { Developer },
|
||||||
setup() {
|
setup() {
|
||||||
return { developers };
|
const plugins = inject<FG_Plugin.Flaschengeist>('flaschengeist')?.plugins || [];
|
||||||
|
return { developers, plugins };
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -54,7 +54,7 @@ declare namespace FG_Plugin {
|
||||||
version: string;
|
version: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface LoadedPlugins {
|
interface Flaschengeist {
|
||||||
plugins: LoadedPlugin[];
|
plugins: LoadedPlugin[];
|
||||||
routes: RouteRecordRaw[];
|
routes: RouteRecordRaw[];
|
||||||
mainLinks: PluginMainLink[];
|
mainLinks: PluginMainLink[];
|
||||||
|
|
Loading…
Reference in New Issue