diff options
| author | syuilo <syuilotan@yahoo.co.jp> | 2018-02-15 01:07:09 +0900 |
|---|---|---|
| committer | syuilo <syuilotan@yahoo.co.jp> | 2018-02-15 01:07:09 +0900 |
| commit | 1febbbb12c8bfb55dda785b8335b32bfb2111e37 (patch) | |
| tree | 5b4baab9fe42d3e0d0c44856513cec94fb0b2fe4 /src/web | |
| parent | wip (diff) | |
| download | sharkey-1febbbb12c8bfb55dda785b8335b32bfb2111e37.tar.gz sharkey-1febbbb12c8bfb55dda785b8335b32bfb2111e37.tar.bz2 sharkey-1febbbb12c8bfb55dda785b8335b32bfb2111e37.zip | |
wip
Diffstat (limited to 'src/web')
| -rw-r--r-- | src/web/app/common/define-widget.ts | 51 | ||||
| -rw-r--r-- | src/web/app/common/views/components/widgets/profile.vue | 5 |
2 files changed, 56 insertions, 0 deletions
diff --git a/src/web/app/common/define-widget.ts b/src/web/app/common/define-widget.ts new file mode 100644 index 0000000000..9aed5a8902 --- /dev/null +++ b/src/web/app/common/define-widget.ts @@ -0,0 +1,51 @@ +import Vue from 'vue'; + +export default function(data: { + name: string; + props: any; +}) { + return Vue.extend({ + props: { + wid: { + type: String, + required: true + }, + place: { + type: String, + required: true + }, + wprops: { + type: Object, + required: false + } + }, + computed: { + id(): string { + return this.wid; + } + }, + data() { + return { + props: data.props + }; + }, + watch: { + props(newProps, oldProps) { + if (JSON.stringify(newProps) == JSON.stringify(oldProps)) return; + this.$root.$data.os.api('i/update_home', { + id: this.id, + data: newProps + }).then(() => { + this.$root.$data.os.i.client_settings.home.find(w => w.id == this.id).data = newProps; + }); + } + }, + created() { + if (this.props) { + Object.keys(this.wprops).forEach(prop => { + this.props[prop] = this.props.data.hasOwnProperty(prop) ? this.props.data[prop] : this.props[prop]; + }); + } + } + }); +} diff --git a/src/web/app/common/views/components/widgets/profile.vue b/src/web/app/common/views/components/widgets/profile.vue new file mode 100644 index 0000000000..4a22d2391b --- /dev/null +++ b/src/web/app/common/views/components/widgets/profile.vue @@ -0,0 +1,5 @@ +<template> +<div class="mkw-profile"> + +</div> +</template> |