diff options
| author | syuilo <syuilotan@yahoo.co.jp> | 2017-06-08 02:47:14 +0900 |
|---|---|---|
| committer | syuilo <syuilotan@yahoo.co.jp> | 2017-06-08 02:47:14 +0900 |
| commit | 580c4517314b1114b59f55b7de15cc50a3d4cc41 (patch) | |
| tree | 5dd40fa36700550afa6e51d63a3285f2cb788012 /src/web | |
| parent | [API] Improve aggregation/users/activity (diff) | |
| download | misskey-580c4517314b1114b59f55b7de15cc50a3d4cc41.tar.gz misskey-580c4517314b1114b59f55b7de15cc50a3d4cc41.tar.bz2 misskey-580c4517314b1114b59f55b7de15cc50a3d4cc41.zip | |
[Client] Add activity home widget
Diffstat (limited to 'src/web')
| -rw-r--r-- | src/web/app/desktop/tags/home-widgets/activity.tag | 83 | ||||
| -rw-r--r-- | src/web/app/desktop/tags/home.tag | 1 | ||||
| -rw-r--r-- | src/web/app/desktop/tags/index.js | 1 |
3 files changed, 85 insertions, 0 deletions
diff --git a/src/web/app/desktop/tags/home-widgets/activity.tag b/src/web/app/desktop/tags/home-widgets/activity.tag new file mode 100644 index 0000000000..d534db4e97 --- /dev/null +++ b/src/web/app/desktop/tags/home-widgets/activity.tag @@ -0,0 +1,83 @@ +<mk-activity-home-widget> + <p class="title"><i class="fa fa-bar-chart"></i>%i18n:desktop.tags.mk-activity-home-widget.title%</p> + <p class="initializing" if={ initializing }><i class="fa fa-spinner fa-pulse fa-fw"></i>%i18n:common.loading%<mk-ellipsis/></p> + <svg if={ !initializing } ref="canvas" viewBox="0 0 21 7" preserveAspectRatio="none"> + <rect each={ data } width="1" height="1" + riot-x={ x } riot-y={ date.weekday } + fill={ color }></rect> + </svg> + <style> + :scope + display block + background #fff + + > .title + z-index 1 + margin 0 + padding 0 16px + line-height 42px + font-size 0.9em + font-weight bold + color #888 + box-shadow 0 1px rgba(0, 0, 0, 0.07) + + > i + margin-right 4px + + > .initializing + margin 0 + padding 16px + text-align center + color #aaa + + > i + margin-right 4px + + > svg + display block + padding 10px + width 100% + + > rect + transform-origin center + transform scale(0.8) + + </style> + <script> + this.mixin('i'); + this.mixin('api'); + + this.initializing = true; + + this.on('mount', () => { + this.api('aggregation/users/activity', { + user_id: this.I.id, + limit: 20 * 7 + }).then(data => { + data.forEach(d => d.total = d.posts + d.replies + d.reposts); + this.peak = Math.max.apply(null, data.map(d => d.total)) / 2; + let x = 0; + data.reverse().forEach(d => { + d.x = x; + d.v = d.total / this.peak; + d.color = d.v > 0.75 + ? '#195061' + : d.v > 0.5 + ? '#238f9a' + : d.v > 0.25 + ? '#6fc5c9' + : d.v > 0 + ? '#8be4dc' + : '#eee'; + d.date.weekday = (new Date(d.date.year, d.date.month - 1, d.date.day)).getDay(); + if (d.date.weekday == 6) x++; + }); + + this.update({ + initializing: false, + data + }); + }); + }); + </script> +</mk-activity-home-widget> diff --git a/src/web/app/desktop/tags/home.tag b/src/web/app/desktop/tags/home.tag index ba89a01660..0e4a2ced10 100644 --- a/src/web/app/desktop/tags/home.tag +++ b/src/web/app/desktop/tags/home.tag @@ -66,6 +66,7 @@ left: [ 'profile', 'calendar', + 'activity', 'rss-reader', 'trends', 'photo-stream', diff --git a/src/web/app/desktop/tags/index.js b/src/web/app/desktop/tags/index.js index f92200b3d9..1e0ebd44cf 100644 --- a/src/web/app/desktop/tags/index.js +++ b/src/web/app/desktop/tags/index.js @@ -44,6 +44,7 @@ require('./home-widgets/broadcast.tag'); require('./home-widgets/version.tag'); require('./home-widgets/recommended-polls.tag'); require('./home-widgets/trends.tag'); +require('./home-widgets/activity.tag'); require('./timeline.tag'); require('./messaging/window.tag'); require('./messaging/room-window.tag'); |