mirror of
https://github.com/Lissy93/dashy.git
synced 2025-04-07 20:55:11 +02:00
✨ Adds widget compatibility into workspace view
This commit is contained in:
parent
7b7c427c97
commit
63904366ce
@ -55,6 +55,7 @@ export default {
|
||||
/* Toggles the section clicked, and closes all other sections */
|
||||
openSection(index) {
|
||||
this.isOpen = this.isOpen.map((val, ind) => (ind !== index ? false : !val));
|
||||
if (this.sections[index].widgets) this.$emit('launch-widget', this.sections[index].widgets);
|
||||
},
|
||||
/* When item clicked, emit a launch event */
|
||||
launchApp(options) {
|
||||
|
39
src/components/Workspace/WidgetView.vue
Normal file
39
src/components/Workspace/WidgetView.vue
Normal file
@ -0,0 +1,39 @@
|
||||
<template>
|
||||
<div class="workspace-widget-view" v-if="widgets">
|
||||
<WidgetBase
|
||||
v-for="(widget, widgetIndx) in widgets"
|
||||
:key="widgetIndx"
|
||||
:widget="widget"
|
||||
:index="widgetIndx"
|
||||
class="workspace-widget"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import WidgetBase from '@/components/Widgets/WidgetBase';
|
||||
|
||||
export default {
|
||||
components: {
|
||||
WidgetBase,
|
||||
},
|
||||
props: {
|
||||
widgets: Array,
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.workspace-widget-view {
|
||||
padding: 1rem 0;
|
||||
background: var(--background);
|
||||
position: absolute;
|
||||
left: var(--side-bar-width);
|
||||
height: calc(100% - var(--header-height) - 1rem);
|
||||
width: calc(100% - var(--side-bar-width));
|
||||
.workspace-widget {
|
||||
max-width: 800px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
}
|
||||
</style>
|
@ -1,8 +1,14 @@
|
||||
<template>
|
||||
<div class="work-space">
|
||||
<SideBar :sections="sections" @launch-app="launchApp" :initUrl="getInitialUrl()" />
|
||||
<SideBar
|
||||
:sections="sections"
|
||||
@launch-app="launchApp"
|
||||
@launch-widget="launchWidget"
|
||||
:initUrl="getInitialUrl()"
|
||||
/>
|
||||
<WebContent :url="url" v-if="!isMultiTaskingEnabled" />
|
||||
<MultiTaskingWebComtent :url="url" v-else />
|
||||
<WidgetView :widgets="widgets" v-if="widgets" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@ -10,6 +16,7 @@
|
||||
import HomeMixin from '@/mixins/HomeMixin';
|
||||
import SideBar from '@/components/Workspace/SideBar';
|
||||
import WebContent from '@/components/Workspace/WebContent';
|
||||
import WidgetView from '@/components/Workspace/WidgetView';
|
||||
import MultiTaskingWebComtent from '@/components/Workspace/MultiTaskingWebComtent';
|
||||
import Defaults from '@/utils/defaults';
|
||||
import { GetTheme, ApplyLocalTheme, ApplyCustomVariables } from '@/utils/ThemeHelper';
|
||||
@ -19,6 +26,7 @@ export default {
|
||||
mixins: [HomeMixin],
|
||||
data: () => ({
|
||||
url: '',
|
||||
widgets: null,
|
||||
GetTheme,
|
||||
ApplyLocalTheme,
|
||||
ApplyCustomVariables,
|
||||
@ -37,6 +45,7 @@ export default {
|
||||
components: {
|
||||
SideBar,
|
||||
WebContent,
|
||||
WidgetView,
|
||||
MultiTaskingWebComtent,
|
||||
},
|
||||
methods: {
|
||||
@ -46,6 +55,11 @@ export default {
|
||||
} else {
|
||||
this.url = options.url;
|
||||
}
|
||||
this.widgets = null;
|
||||
},
|
||||
launchWidget(widgets) {
|
||||
this.url = '';
|
||||
this.widgets = widgets;
|
||||
},
|
||||
setTheme() {
|
||||
const theme = this.GetTheme();
|
||||
|
Loading…
x
Reference in New Issue
Block a user