summaryrefslogtreecommitdiff
path: root/src/web
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2017-06-08 02:47:14 +0900
committersyuilo <syuilotan@yahoo.co.jp>2017-06-08 02:47:14 +0900
commit580c4517314b1114b59f55b7de15cc50a3d4cc41 (patch)
tree5dd40fa36700550afa6e51d63a3285f2cb788012 /src/web
parent[API] Improve aggregation/users/activity (diff)
downloadmisskey-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.tag83
-rw-r--r--src/web/app/desktop/tags/home.tag1
-rw-r--r--src/web/app/desktop/tags/index.js1
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');