From df8a2aea358ca3bcec60c878a6399df46390e3e1 Mon Sep 17 00:00:00 2001 From: syuilo Date: Sat, 24 Feb 2018 02:46:09 +0900 Subject: Implement #1098 --- src/web/app/common/define-widget.ts | 26 ++- src/web/app/common/scripts/check-for-update.ts | 4 +- src/web/app/common/views/components/index.ts | 30 ++++ .../common/views/components/widgets/access-log.vue | 90 ++++++++++ .../common/views/components/widgets/broadcast.vue | 161 +++++++++++++++++ .../common/views/components/widgets/calendar.vue | 199 +++++++++++++++++++++ .../common/views/components/widgets/donation.vue | 58 ++++++ .../app/common/views/components/widgets/nav.vue | 31 ++++ .../views/components/widgets/photo-stream.vue | 104 +++++++++++ .../common/views/components/widgets/profile.vue | 125 +++++++++++++ .../app/common/views/components/widgets/rss.vue | 93 ++++++++++ .../views/components/widgets/server.cpu-memory.vue | 127 +++++++++++++ .../common/views/components/widgets/server.cpu.vue | 68 +++++++ .../views/components/widgets/server.disk.vue | 76 ++++++++ .../views/components/widgets/server.info.vue | 25 +++ .../views/components/widgets/server.memory.vue | 76 ++++++++ .../common/views/components/widgets/server.pie.vue | 61 +++++++ .../views/components/widgets/server.uptimes.vue | 46 +++++ .../app/common/views/components/widgets/server.vue | 93 ++++++++++ .../common/views/components/widgets/slideshow.vue | 153 ++++++++++++++++ .../app/common/views/components/widgets/tips.vue | 108 +++++++++++ .../common/views/components/widgets/version.vue | 28 +++ 22 files changed, 1775 insertions(+), 7 deletions(-) create mode 100644 src/web/app/common/views/components/widgets/access-log.vue create mode 100644 src/web/app/common/views/components/widgets/broadcast.vue create mode 100644 src/web/app/common/views/components/widgets/calendar.vue create mode 100644 src/web/app/common/views/components/widgets/donation.vue create mode 100644 src/web/app/common/views/components/widgets/nav.vue create mode 100644 src/web/app/common/views/components/widgets/photo-stream.vue create mode 100644 src/web/app/common/views/components/widgets/profile.vue create mode 100644 src/web/app/common/views/components/widgets/rss.vue create mode 100644 src/web/app/common/views/components/widgets/server.cpu-memory.vue create mode 100644 src/web/app/common/views/components/widgets/server.cpu.vue create mode 100644 src/web/app/common/views/components/widgets/server.disk.vue create mode 100644 src/web/app/common/views/components/widgets/server.info.vue create mode 100644 src/web/app/common/views/components/widgets/server.memory.vue create mode 100644 src/web/app/common/views/components/widgets/server.pie.vue create mode 100644 src/web/app/common/views/components/widgets/server.uptimes.vue create mode 100644 src/web/app/common/views/components/widgets/server.vue create mode 100644 src/web/app/common/views/components/widgets/slideshow.vue create mode 100644 src/web/app/common/views/components/widgets/tips.vue create mode 100644 src/web/app/common/views/components/widgets/version.vue (limited to 'src/web/app/common') diff --git a/src/web/app/common/define-widget.ts b/src/web/app/common/define-widget.ts index fd13a3395b..60cd1969c0 100644 --- a/src/web/app/common/define-widget.ts +++ b/src/web/app/common/define-widget.ts @@ -8,6 +8,10 @@ export default function(data: { props: { widget: { type: Object + }, + isMobile: { + type: Boolean, + default: false } }, computed: { @@ -21,6 +25,7 @@ export default function(data: { }; }, created() { + if (this.widget.data == null) this.widget.data = {}; if (this.props) { Object.keys(this.props).forEach(prop => { if (this.widget.data.hasOwnProperty(prop)) { @@ -30,12 +35,21 @@ export default function(data: { } this.$watch('props', newProps => { - (this as any).api('i/update_home', { - id: this.id, - data: newProps - }).then(() => { - (this as any).os.i.client_settings.home.find(w => w.id == this.id).data = newProps; - }); + if (this.isMobile) { + (this as any).api('i/update_mobile_home', { + id: this.id, + data: newProps + }).then(() => { + (this as any).os.i.client_settings.mobile_home.find(w => w.id == this.id).data = newProps; + }); + } else { + (this as any).api('i/update_home', { + id: this.id, + data: newProps + }).then(() => { + (this as any).os.i.client_settings.home.find(w => w.id == this.id).data = newProps; + }); + } }, { deep: true }); diff --git a/src/web/app/common/scripts/check-for-update.ts b/src/web/app/common/scripts/check-for-update.ts index 0855676a42..fe539407da 100644 --- a/src/web/app/common/scripts/check-for-update.ts +++ b/src/web/app/common/scripts/check-for-update.ts @@ -9,7 +9,9 @@ export default async function(mios: MiOS) { // Clear cache (serive worker) try { - navigator.serviceWorker.controller.postMessage('clear'); + if (navigator.serviceWorker.controller) { + navigator.serviceWorker.controller.postMessage('clear'); + } navigator.serviceWorker.getRegistrations().then(registrations => { registrations.forEach(registration => registration.unregister()); diff --git a/src/web/app/common/views/components/index.ts b/src/web/app/common/views/components/index.ts index ab0f1767d4..e66a323266 100644 --- a/src/web/app/common/views/components/index.ts +++ b/src/web/app/common/views/components/index.ts @@ -21,6 +21,21 @@ import urlPreview from './url-preview.vue'; import twitterSetting from './twitter-setting.vue'; import fileTypeIcon from './file-type-icon.vue'; +//#region widgets +import wAccessLog from './widgets/access-log.vue'; +import wVersion from './widgets/version.vue'; +import wRss from './widgets/rss.vue'; +import wProfile from './widgets/profile.vue'; +import wServer from './widgets/server.vue'; +import wBroadcast from './widgets/broadcast.vue'; +import wCalendar from './widgets/calendar.vue'; +import wPhotoStream from './widgets/photo-stream.vue'; +import wSlideshow from './widgets/slideshow.vue'; +import wTips from './widgets/tips.vue'; +import wDonation from './widgets/donation.vue'; +import wNav from './widgets/nav.vue'; +//#endregion + Vue.component('mk-signin', signin); Vue.component('mk-signup', signup); Vue.component('mk-forkit', forkit); @@ -41,3 +56,18 @@ Vue.component('mk-messaging-room', messagingRoom); Vue.component('mk-url-preview', urlPreview); Vue.component('mk-twitter-setting', twitterSetting); Vue.component('mk-file-type-icon', fileTypeIcon); + +//#region widgets +Vue.component('mkw-nav', wNav); +Vue.component('mkw-calendar', wCalendar); +Vue.component('mkw-photo-stream', wPhotoStream); +Vue.component('mkw-slideshow', wSlideshow); +Vue.component('mkw-tips', wTips); +Vue.component('mkw-donation', wDonation); +Vue.component('mkw-broadcast', wBroadcast); +Vue.component('mkw-profile', wProfile); +Vue.component('mkw-server', wServer); +Vue.component('mkw-rss', wRss); +Vue.component('mkw-version', wVersion); +Vue.component('mkw-access-log', wAccessLog); +//#endregion diff --git a/src/web/app/common/views/components/widgets/access-log.vue b/src/web/app/common/views/components/widgets/access-log.vue new file mode 100644 index 0000000000..c810c2d157 --- /dev/null +++ b/src/web/app/common/views/components/widgets/access-log.vue @@ -0,0 +1,90 @@ + + + + + diff --git a/src/web/app/common/views/components/widgets/broadcast.vue b/src/web/app/common/views/components/widgets/broadcast.vue new file mode 100644 index 0000000000..0bb59caf43 --- /dev/null +++ b/src/web/app/common/views/components/widgets/broadcast.vue @@ -0,0 +1,161 @@ + + + + + diff --git a/src/web/app/common/views/components/widgets/calendar.vue b/src/web/app/common/views/components/widgets/calendar.vue new file mode 100644 index 0000000000..bfcbd7f68d --- /dev/null +++ b/src/web/app/common/views/components/widgets/calendar.vue @@ -0,0 +1,199 @@ + + + + + diff --git a/src/web/app/common/views/components/widgets/donation.vue b/src/web/app/common/views/components/widgets/donation.vue new file mode 100644 index 0000000000..08aab8ecd1 --- /dev/null +++ b/src/web/app/common/views/components/widgets/donation.vue @@ -0,0 +1,58 @@ + + + + + diff --git a/src/web/app/common/views/components/widgets/nav.vue b/src/web/app/common/views/components/widgets/nav.vue new file mode 100644 index 0000000000..ce88e587a8 --- /dev/null +++ b/src/web/app/common/views/components/widgets/nav.vue @@ -0,0 +1,31 @@ + + + + + diff --git a/src/web/app/common/views/components/widgets/photo-stream.vue b/src/web/app/common/views/components/widgets/photo-stream.vue new file mode 100644 index 0000000000..dcaa6624dd --- /dev/null +++ b/src/web/app/common/views/components/widgets/photo-stream.vue @@ -0,0 +1,104 @@ + + + + + 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..68cf469788 --- /dev/null +++ b/src/web/app/common/views/components/widgets/profile.vue @@ -0,0 +1,125 @@ + + + + + diff --git a/src/web/app/common/views/components/widgets/rss.vue b/src/web/app/common/views/components/widgets/rss.vue new file mode 100644 index 0000000000..e80896bea6 --- /dev/null +++ b/src/web/app/common/views/components/widgets/rss.vue @@ -0,0 +1,93 @@ + + + + + diff --git a/src/web/app/common/views/components/widgets/server.cpu-memory.vue b/src/web/app/common/views/components/widgets/server.cpu-memory.vue new file mode 100644 index 0000000000..d75a142568 --- /dev/null +++ b/src/web/app/common/views/components/widgets/server.cpu-memory.vue @@ -0,0 +1,127 @@ + + + + + diff --git a/src/web/app/common/views/components/widgets/server.cpu.vue b/src/web/app/common/views/components/widgets/server.cpu.vue new file mode 100644 index 0000000000..596c856da8 --- /dev/null +++ b/src/web/app/common/views/components/widgets/server.cpu.vue @@ -0,0 +1,68 @@ + + + + + diff --git a/src/web/app/common/views/components/widgets/server.disk.vue b/src/web/app/common/views/components/widgets/server.disk.vue new file mode 100644 index 0000000000..2af1982a96 --- /dev/null +++ b/src/web/app/common/views/components/widgets/server.disk.vue @@ -0,0 +1,76 @@ + + + + + diff --git a/src/web/app/common/views/components/widgets/server.info.vue b/src/web/app/common/views/components/widgets/server.info.vue new file mode 100644 index 0000000000..bed6a1b743 --- /dev/null +++ b/src/web/app/common/views/components/widgets/server.info.vue @@ -0,0 +1,25 @@ + + + + + diff --git a/src/web/app/common/views/components/widgets/server.memory.vue b/src/web/app/common/views/components/widgets/server.memory.vue new file mode 100644 index 0000000000..834a62671d --- /dev/null +++ b/src/web/app/common/views/components/widgets/server.memory.vue @@ -0,0 +1,76 @@ + + + + + diff --git a/src/web/app/common/views/components/widgets/server.pie.vue b/src/web/app/common/views/components/widgets/server.pie.vue new file mode 100644 index 0000000000..ce2cff1d00 --- /dev/null +++ b/src/web/app/common/views/components/widgets/server.pie.vue @@ -0,0 +1,61 @@ + + + + + diff --git a/src/web/app/common/views/components/widgets/server.uptimes.vue b/src/web/app/common/views/components/widgets/server.uptimes.vue new file mode 100644 index 0000000000..06713d83ce --- /dev/null +++ b/src/web/app/common/views/components/widgets/server.uptimes.vue @@ -0,0 +1,46 @@ + + + + + diff --git a/src/web/app/common/views/components/widgets/server.vue b/src/web/app/common/views/components/widgets/server.vue new file mode 100644 index 0000000000..4ebc5767d6 --- /dev/null +++ b/src/web/app/common/views/components/widgets/server.vue @@ -0,0 +1,93 @@ + + + + + diff --git a/src/web/app/common/views/components/widgets/slideshow.vue b/src/web/app/common/views/components/widgets/slideshow.vue new file mode 100644 index 0000000000..c2f4eb70d3 --- /dev/null +++ b/src/web/app/common/views/components/widgets/slideshow.vue @@ -0,0 +1,153 @@ + + + + + diff --git a/src/web/app/common/views/components/widgets/tips.vue b/src/web/app/common/views/components/widgets/tips.vue new file mode 100644 index 0000000000..2991fbc3b9 --- /dev/null +++ b/src/web/app/common/views/components/widgets/tips.vue @@ -0,0 +1,108 @@ + + + + + diff --git a/src/web/app/common/views/components/widgets/version.vue b/src/web/app/common/views/components/widgets/version.vue new file mode 100644 index 0000000000..ad2b27bc40 --- /dev/null +++ b/src/web/app/common/views/components/widgets/version.vue @@ -0,0 +1,28 @@ + + + + + -- cgit v1.2.3-freya