From cf3fc97202588e835ade5d6ab1a3c087e46958ad Mon Sep 17 00:00:00 2001 From: syuilo Date: Sat, 11 Jul 2020 10:13:11 +0900 Subject: Deck (#6504) * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip --- src/client/widgets/activity.vue | 47 ++++++++--------- src/client/widgets/calendar.vue | 15 ++---- src/client/widgets/clock.vue | 23 ++++----- src/client/widgets/define.ts | 34 +++++++++---- src/client/widgets/digital-clock.vue | 75 +++++++++++++++++++++++++++ src/client/widgets/index.ts | 14 ++++++ src/client/widgets/memo.vue | 27 ++++------ src/client/widgets/notifications.vue | 70 ++++++-------------------- src/client/widgets/photos.vue | 44 ++++++++-------- src/client/widgets/rss.vue | 49 +++++++----------- src/client/widgets/timeline.vue | 98 ++++++++++++------------------------ src/client/widgets/trends.vue | 39 +++++++------- 12 files changed, 264 insertions(+), 271 deletions(-) create mode 100644 src/client/widgets/digital-clock.vue (limited to 'src/client/widgets') diff --git a/src/client/widgets/activity.vue b/src/client/widgets/activity.vue index 4fdd81ae52..58b1631367 100644 --- a/src/client/widgets/activity.vue +++ b/src/client/widgets/activity.vue @@ -1,18 +1,16 @@ diff --git a/src/client/widgets/define.ts b/src/client/widgets/define.ts index 96b1b4ab56..107045bf4b 100644 --- a/src/client/widgets/define.ts +++ b/src/client/widgets/define.ts @@ -1,6 +1,7 @@ import Vue from 'vue'; +import { Form } from '../scripts/form'; -export default function (data: { +export default function (data: { name: string; props?: () => T; }) { @@ -15,22 +16,22 @@ export default function (data: { } }, + data() { + return { + bakedOldProps: null + }; + }, + computed: { id(): string { return this.widget.id; }, - props(): T { + props(): Record { return this.widget.data; } }, - data() { - return { - bakedOldProps: null - }; - }, - created() { this.mergeProps(); @@ -45,11 +46,26 @@ export default function (data: { const defaultProps = data.props(); for (const prop of Object.keys(defaultProps)) { if (this.props.hasOwnProperty(prop)) continue; - Vue.set(this.props, prop, defaultProps[prop]); + Vue.set(this.props, prop, defaultProps[prop].default); } } }, + async setting() { + const form = data.props(); + for (const item of Object.keys(form)) { + form[item].default = this.props[item]; + } + const { canceled, result } = await this.$root.form(data.name, form); + if (canceled) return; + + for (const key of Object.keys(result)) { + Vue.set(this.props, key, result[key]); + } + + this.save(); + }, + save() { this.$store.commit('deviceUser/updateWidget', this.widget); } diff --git a/src/client/widgets/digital-clock.vue b/src/client/widgets/digital-clock.vue new file mode 100644 index 0000000000..0e68fe0ff4 --- /dev/null +++ b/src/client/widgets/digital-clock.vue @@ -0,0 +1,75 @@ + + + + + diff --git a/src/client/widgets/index.ts b/src/client/widgets/index.ts index 878d42c0c3..2d27d27e58 100644 --- a/src/client/widgets/index.ts +++ b/src/client/widgets/index.ts @@ -10,3 +10,17 @@ Vue.component('mkw-trends', () => import('./trends.vue').then(m => m.default)); Vue.component('mkw-clock', () => import('./clock.vue').then(m => m.default)); Vue.component('mkw-activity', () => import('./activity.vue').then(m => m.default)); Vue.component('mkw-photos', () => import('./photos.vue').then(m => m.default)); +Vue.component('mkw-digitalClock', () => import('./digital-clock.vue').then(m => m.default)); + +export const widgets = [ + 'memo', + 'notifications', + 'timeline', + 'calendar', + 'rss', + 'trends', + 'clock', + 'activity', + 'photos', + 'digitalClock', +]; diff --git a/src/client/widgets/memo.vue b/src/client/widgets/memo.vue index cdc716b9fa..0d319b225e 100644 --- a/src/client/widgets/memo.vue +++ b/src/client/widgets/memo.vue @@ -1,14 +1,12 @@ - - diff --git a/src/client/widgets/photos.vue b/src/client/widgets/photos.vue index 6e4e43a565..2b8399df9b 100644 --- a/src/client/widgets/photos.vue +++ b/src/client/widgets/photos.vue @@ -1,19 +1,17 @@ diff --git a/src/client/widgets/trends.vue b/src/client/widgets/trends.vue index 61f5bfbd32..d4a4b2d289 100644 --- a/src/client/widgets/trends.vue +++ b/src/client/widgets/trends.vue @@ -1,22 +1,20 @@