diff options
| author | syuilo <syuilotan@yahoo.co.jp> | 2017-11-16 14:19:14 +0900 |
|---|---|---|
| committer | syuilo <syuilotan@yahoo.co.jp> | 2017-11-16 14:19:14 +0900 |
| commit | 0cd69cabc9f01f19754ad08ed32a15eb4d4518be (patch) | |
| tree | 2150d238a17e69032f5903aaea8b7823dd0b8ba3 /src | |
| parent | :art: (diff) | |
| download | sharkey-0cd69cabc9f01f19754ad08ed32a15eb4d4518be.tar.gz sharkey-0cd69cabc9f01f19754ad08ed32a15eb4d4518be.tar.bz2 sharkey-0cd69cabc9f01f19754ad08ed32a15eb4d4518be.zip | |
お知らせをブロードキャストできるように
Diffstat (limited to 'src')
| -rw-r--r-- | src/api/endpoints/meta.ts | 3 | ||||
| -rw-r--r-- | src/web/app/common/tags/raw.tag | 4 | ||||
| -rw-r--r-- | src/web/app/desktop/tags/home-widgets/broadcast.tag | 71 |
3 files changed, 72 insertions, 6 deletions
diff --git a/src/api/endpoints/meta.ts b/src/api/endpoints/meta.ts index 4f626efa6f..e27ca39e7e 100644 --- a/src/api/endpoints/meta.ts +++ b/src/api/endpoints/meta.ts @@ -53,6 +53,7 @@ module.exports = (params) => new Promise(async (res, rej) => { model: os.cpus()[0].model, cores: os.cpus().length }, - top_image: meta.top_image + top_image: meta.top_image, + broadcasts: meta.broadcasts }); }); diff --git a/src/web/app/common/tags/raw.tag b/src/web/app/common/tags/raw.tag index e1285694e4..adc6de5a3b 100644 --- a/src/web/app/common/tags/raw.tag +++ b/src/web/app/common/tags/raw.tag @@ -5,5 +5,9 @@ </style> <script> this.root.innerHTML = this.opts.content; + + this.on('updated', () => { + this.root.innerHTML = this.opts.content; + }); </script> </mk-raw> diff --git a/src/web/app/desktop/tags/home-widgets/broadcast.tag b/src/web/app/desktop/tags/home-widgets/broadcast.tag index 7caf4dcddd..00fef83742 100644 --- a/src/web/app/desktop/tags/home-widgets/broadcast.tag +++ b/src/web/app/desktop/tags/home-widgets/broadcast.tag @@ -1,4 +1,4 @@ -<mk-broadcast-home-widget> +<mk-broadcast-home-widget data-found={ broadcasts.length != 0 } data-melt={ data.design == 1 }> <div class="icon"> <svg height="32" version="1.1" viewBox="0 0 32 32" width="32"> <path class="tower" d="M16.04,11.24c1.79,0,3.239-1.45,3.239-3.24S17.83,4.76,16.04,4.76c-1.79,0-3.24,1.45-3.24,3.24 C12.78,9.78,14.24,11.24,16.04,11.24z M16.04,13.84c-0.82,0-1.66-0.2-2.4-0.6L7.34,29.98h2.98l1.72-2h8l1.681,2H24.7L18.42,13.24 C17.66,13.64,16.859,13.84,16.04,13.84z M16.02,14.8l2.02,7.2h-4L16.02,14.8z M12.04,25.98l2-2h4l2,2H12.04z"></path> @@ -8,22 +8,35 @@ <path class="wave d" d="M29.18,1.06c-0.479-0.502-1.273-0.522-1.775-0.044c-0.016,0.015-0.029,0.029-0.045,0.044c-0.5,0.52-0.5,1.36,0,1.88 c1.361,1.4,2.041,3.24,2.041,5.08s-0.68,3.66-2.041,5.08c-0.5,0.52-0.5,1.36,0,1.88c0.509,0.508,1.332,0.508,1.841,0 c1.86-1.92,2.8-4.44,2.8-6.96C31.99,5.424,30.98,2.931,29.18,1.06z"></path> </svg> </div> - <h1>開発者募集中!</h1> - <p><a href="https://github.com/syuilo/misskey" target="_blank">Misskeyはオープンソースで開発されています。リポジトリはこちら。</a></p> + <p class="fetching" if={ fetching }>%i18n:desktop.tags.mk-broadcast-home-widget.fetching%<mk-ellipsis/></p> + <h1 if={ !fetching }>{ + broadcasts.length == 0 ? '%i18n:desktop.tags.mk-broadcast-home-widget.no-broadcasts%' : broadcasts[i].title + }</h1> + <p if={ !fetching }><mk-raw if={ broadcasts.length != 0 } content={ broadcasts[i].text }/><virtual if={ broadcasts.length == 0 }>%i18n:desktop.tags.mk-broadcast-home-widget.have-a-nice-day%</virtual></p> + <a if={ broadcasts.length > 1 } onclick={ next }>%i18n:desktop.tags.mk-broadcast-home-widget.next% >></a> <style> :scope display block - padding 10px 10px 10px 50px + padding 10px border solid 1px #4078c0 border-radius 6px + &[data-melt] + border none + + &[data-found] + padding-left 50px + + > .icon + display block + &:after content "" display block clear both > .icon - display block + display none float left margin-left -40px @@ -72,11 +85,59 @@ font-size 0.7em color #555 + &.fetching + text-align center + a color #555 + text-decoration underline + + > a + display block + font-size 0.7em </style> <script> + this.data = { + design: 0 + }; + this.mixin('widget'); + this.mixin('os'); + + this.i = 0; + this.fetching = true; + this.broadcasts = []; + + this.on('mount', () => { + this.mios.getMeta().then(meta => { + let broadcasts = []; + if (meta.broadcasts) { + meta.broadcasts.forEach(broadcast => { + if (broadcast[LANG]) { + broadcasts.push(broadcast[LANG]); + } + }); + } + this.update({ + fetching: false, + broadcasts: broadcasts + }); + }); + }); + + this.next = () => { + if (this.i == this.broadcasts.length - 1) { + this.i = 0; + } else { + this.i++; + } + this.update(); + }; + + this.func = () => { + if (++this.data.design == 2) this.data.design = 0; + this.save(); + }; </script> </mk-broadcast-home-widget> |