From fb7e9310bfbf032aecff924a4e300b2ad3aeabbb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=93=E3=81=B4=E3=81=AA=E3=81=9F=E3=81=BF=E3=81=BD?= <syuilotan@yahoo.co.jp> Date: Wed, 7 Feb 2018 18:34:43 +0900 Subject: [PATCH] wip --- src/web/app/auth/tags/form.tag | 18 +++---- src/web/app/auth/tags/index.tag | 18 +++---- src/web/app/ch/tags/channel.tag | 30 +++++------ src/web/app/ch/tags/header.tag | 4 +- src/web/app/ch/tags/index.tag | 2 +- src/web/app/common/tags/activity-table.tag | 2 +- src/web/app/common/tags/authorized-apps.tag | 4 +- src/web/app/common/tags/error.tag | 20 +++---- src/web/app/common/tags/file-type-icon.tag | 2 +- src/web/app/common/tags/messaging/form.tag | 2 +- src/web/app/common/tags/messaging/index.tag | 12 ++--- src/web/app/common/tags/messaging/message.tag | 12 ++--- src/web/app/common/tags/messaging/room.tag | 12 ++--- src/web/app/common/tags/poll-editor.tag | 4 +- src/web/app/common/tags/poll.tag | 10 ++-- src/web/app/common/tags/post-menu.tag | 4 +- src/web/app/common/tags/reaction-icon.tag | 18 +++---- ...ctions-viewer.tag => reactions-viewer.vue} | 29 ++++++---- src/web/app/common/tags/signin-history.tag | 6 +-- src/web/app/common/tags/signin.tag | 2 +- src/web/app/common/tags/signup.tag | 32 +++++------ src/web/app/common/tags/special-message.tag | 4 +- src/web/app/common/tags/twitter-setting.tag | 8 +-- src/web/app/common/tags/uploader.tag | 10 ++-- .../desktop/tags/autocomplete-suggestion.tag | 2 +- .../app/desktop/tags/big-follow-button.tag | 10 ++-- .../app/desktop/tags/detailed-post-window.tag | 2 +- .../app/desktop/tags/drive/browser-window.tag | 2 +- src/web/app/desktop/tags/drive/browser.tag | 24 ++++----- src/web/app/desktop/tags/drive/file.tag | 6 +-- src/web/app/desktop/tags/drive/folder.tag | 2 +- src/web/app/desktop/tags/drive/nav-folder.tag | 2 +- src/web/app/desktop/tags/follow-button.tag | 10 ++-- .../app/desktop/tags/following-setuper.tag | 6 +-- .../desktop/tags/home-widgets/access-log.tag | 2 +- .../desktop/tags/home-widgets/broadcast.tag | 8 +-- .../app/desktop/tags/home-widgets/channel.tag | 14 ++--- .../desktop/tags/home-widgets/mentions.tag | 8 +-- .../desktop/tags/home-widgets/messaging.tag | 2 +- .../tags/home-widgets/notifications.tag | 2 +- .../tags/home-widgets/photo-stream.tag | 8 +-- .../desktop/tags/home-widgets/post-form.tag | 6 +-- .../tags/home-widgets/recommended-polls.tag | 12 ++--- .../desktop/tags/home-widgets/rss-reader.tag | 6 +-- .../app/desktop/tags/home-widgets/server.tag | 16 +++--- .../desktop/tags/home-widgets/slideshow.tag | 4 +- .../desktop/tags/home-widgets/timeline.tag | 10 ++-- .../app/desktop/tags/home-widgets/trends.tag | 8 +-- .../tags/home-widgets/user-recommendation.tag | 8 +-- src/web/app/desktop/tags/home.tag | 8 +-- src/web/app/desktop/tags/list-user.tag | 2 +- src/web/app/desktop/tags/notifications.tag | 26 ++++----- src/web/app/desktop/tags/pages/entrance.tag | 10 ++-- .../app/desktop/tags/pages/messaging-room.tag | 2 +- src/web/app/desktop/tags/pages/post.tag | 6 +-- src/web/app/desktop/tags/post-detail-sub.tag | 2 +- src/web/app/desktop/tags/post-detail.tag | 22 ++++---- src/web/app/desktop/tags/post-form-window.tag | 10 ++-- src/web/app/desktop/tags/post-form.tag | 6 +-- src/web/app/desktop/tags/progress-dialog.tag | 8 +-- src/web/app/desktop/tags/repost-form.tag | 6 +-- src/web/app/desktop/tags/search-posts.tag | 8 +-- .../tags/select-file-from-drive-window.tag | 2 +- src/web/app/desktop/tags/settings.tag | 10 ++-- src/web/app/desktop/tags/sub-post-content.tag | 8 +-- src/web/app/desktop/tags/timeline.tag | 34 ++++++------ src/web/app/desktop/tags/ui.tag | 26 ++++----- src/web/app/desktop/tags/user-preview.tag | 4 +- src/web/app/desktop/tags/user-timeline.tag | 8 +-- src/web/app/desktop/tags/user.tag | 46 ++++++++-------- src/web/app/desktop/tags/users-list.tag | 14 ++--- src/web/app/desktop/tags/widgets/activity.tag | 8 +-- src/web/app/desktop/tags/widgets/calendar.tag | 4 +- src/web/app/desktop/tags/window.tag | 20 +++---- src/web/app/dev/tags/new-app-form.tag | 14 ++--- src/web/app/dev/tags/pages/app.tag | 4 +- src/web/app/dev/tags/pages/apps.tag | 8 +-- src/web/app/mobile/tags/drive-selector.tag | 4 +- src/web/app/mobile/tags/drive.tag | 36 ++++++------- src/web/app/mobile/tags/drive/file-viewer.tag | 6 +-- src/web/app/mobile/tags/drive/file.tag | 2 +- src/web/app/mobile/tags/follow-button.tag | 10 ++-- src/web/app/mobile/tags/home-timeline.tag | 2 +- src/web/app/mobile/tags/init-following.tag | 6 +-- .../app/mobile/tags/notification-preview.tag | 14 ++--- src/web/app/mobile/tags/notification.tag | 14 ++--- src/web/app/mobile/tags/notifications.tag | 12 ++--- src/web/app/mobile/tags/page/entrance.tag | 6 +-- .../app/mobile/tags/page/messaging-room.tag | 2 +- src/web/app/mobile/tags/page/post.tag | 6 +-- src/web/app/mobile/tags/page/selectdrive.tag | 4 +- .../app/mobile/tags/page/user-followers.tag | 2 +- .../app/mobile/tags/page/user-following.tag | 2 +- src/web/app/mobile/tags/post-detail.tag | 22 ++++---- src/web/app/mobile/tags/post-form.tag | 6 +-- src/web/app/mobile/tags/sub-post-content.tag | 6 +-- src/web/app/mobile/tags/timeline.tag | 40 +++++++------- src/web/app/mobile/tags/ui.tag | 12 ++--- src/web/app/mobile/tags/user.tag | 54 +++++++++---------- src/web/app/mobile/tags/users-list.tag | 14 ++--- src/web/app/stats/tags/index.tag | 6 +-- 101 files changed, 534 insertions(+), 525 deletions(-) rename src/web/app/common/tags/{reactions-viewer.tag => reactions-viewer.vue} (58%) diff --git a/src/web/app/auth/tags/form.tag b/src/web/app/auth/tags/form.tag index 8f60aadb54..8c085ee9b8 100644 --- a/src/web/app/auth/tags/form.tag +++ b/src/web/app/auth/tags/form.tag @@ -12,15 +12,15 @@ <h2>このアプリは次の権限を要求しています:</h2> <ul> <virtual each={ p in app.permission }> - <li if={ p == 'account-read' }>アカウントの情報を見る。</li> - <li if={ p == 'account-write' }>アカウントの情報を操作する。</li> - <li if={ p == 'post-write' }>投稿する。</li> - <li if={ p == 'like-write' }>いいねしたりいいね解除する。</li> - <li if={ p == 'following-write' }>フォローしたりフォロー解除する。</li> - <li if={ p == 'drive-read' }>ドライブを見る。</li> - <li if={ p == 'drive-write' }>ドライブを操作する。</li> - <li if={ p == 'notification-read' }>通知を見る。</li> - <li if={ p == 'notification-write' }>通知を操作する。</li> + <li v-if="p == 'account-read'">アカウントの情報を見る。</li> + <li v-if="p == 'account-write'">アカウントの情報を操作する。</li> + <li v-if="p == 'post-write'">投稿する。</li> + <li v-if="p == 'like-write'">いいねしたりいいね解除する。</li> + <li v-if="p == 'following-write'">フォローしたりフォロー解除する。</li> + <li v-if="p == 'drive-read'">ドライブを見る。</li> + <li v-if="p == 'drive-write'">ドライブを操作する。</li> + <li v-if="p == 'notification-read'">通知を見る。</li> + <li v-if="p == 'notification-write'">通知を操作する。</li> </virtual> </ul> </section> diff --git a/src/web/app/auth/tags/index.tag b/src/web/app/auth/tags/index.tag index e1c0cb82ef..195c669094 100644 --- a/src/web/app/auth/tags/index.tag +++ b/src/web/app/auth/tags/index.tag @@ -1,21 +1,21 @@ <mk-index> - <main if={ SIGNIN }> - <p class="fetching" if={ fetching }>読み込み中<mk-ellipsis/></p> - <mk-form ref="form" if={ state == 'waiting' } session={ session }/> - <div class="denied" if={ state == 'denied' }> + <main v-if="SIGNIN"> + <p class="fetching" v-if="fetching">読み込み中<mk-ellipsis/></p> + <mk-form ref="form" v-if="state == 'waiting'" session={ session }/> + <div class="denied" v-if="state == 'denied'"> <h1>アプリケーションの連携をキャンセルしました。</h1> <p>このアプリがあなたのアカウントにアクセスすることはありません。</p> </div> - <div class="accepted" if={ state == 'accepted' }> + <div class="accepted" v-if="state == 'accepted'"> <h1>{ session.app.is_authorized ? 'このアプリは既に連携済みです' : 'アプリケーションの連携を許可しました'}</h1> - <p if={ session.app.callback_url }>アプリケーションに戻っています<mk-ellipsis/></p> - <p if={ !session.app.callback_url }>アプリケーションに戻って、やっていってください。</p> + <p v-if="session.app.callback_url">アプリケーションに戻っています<mk-ellipsis/></p> + <p v-if="!session.app.callback_url">アプリケーションに戻って、やっていってください。</p> </div> - <div class="error" if={ state == 'fetch-session-error' }> + <div class="error" v-if="state == 'fetch-session-error'"> <p>セッションが存在しません。</p> </div> </main> - <main class="signin" if={ !SIGNIN }> + <main class="signin" v-if="!SIGNIN"> <h1>サインインしてください</h1> <mk-signin/> </main> diff --git a/src/web/app/ch/tags/channel.tag b/src/web/app/ch/tags/channel.tag index ea0234340b..b01c2b5481 100644 --- a/src/web/app/ch/tags/channel.tag +++ b/src/web/app/ch/tags/channel.tag @@ -1,12 +1,12 @@ <mk-channel> <mk-header/> <hr> - <main if={ !fetching }> + <main v-if="!fetching"> <h1>{ channel.title }</h1> - <div if={ SIGNIN }> - <p if={ channel.is_watching }>このチャンネルをウォッチしています <a @click="unwatch">ウォッチ解除</a></p> - <p if={ !channel.is_watching }><a @click="watch">このチャンネルをウォッチする</a></p> + <div v-if="SIGNIN"> + <p v-if="channel.is_watching">このチャンネルをウォッチしています <a @click="unwatch">ウォッチ解除</a></p> + <p v-if="!channel.is_watching"><a @click="watch">このチャンネルをウォッチする</a></p> </div> <div class="share"> @@ -15,17 +15,17 @@ </div> <div class="body"> - <p if={ postsFetching }>読み込み中<mk-ellipsis/></p> - <div if={ !postsFetching }> - <p if={ posts == null || posts.length == 0 }>まだ投稿がありません</p> - <virtual if={ posts != null }> + <p v-if="postsFetching">読み込み中<mk-ellipsis/></p> + <div v-if="!postsFetching"> + <p v-if="posts == null || posts.length == 0">まだ投稿がありません</p> + <virtual v-if="posts != null"> <mk-channel-post each={ post in posts.slice().reverse() } post={ post } form={ parent.refs.form }/> </virtual> </div> </div> <hr> - <mk-channel-form if={ SIGNIN } channel={ channel } ref="form"/> - <div if={ !SIGNIN }> + <mk-channel-form v-if="SIGNIN" channel={ channel } ref="form"/> + <div v-if="!SIGNIN"> <p>参加するには<a href={ _URL_ }>ログインまたは新規登録</a>してください</p> </div> <hr> @@ -171,9 +171,9 @@ <span>ID:<i>{ post.user.username }</i></span> </header> <div> - <a if={ post.reply }>>>{ post.reply.index }</a> + <a v-if="post.reply">>>{ post.reply.index }</a> { post.text } - <div class="media" if={ post.media }> + <div class="media" v-if="post.media"> <virtual each={ file in post.media }> <a href={ file.url } target="_blank"> <img src={ file.url + '?thumbnail&size=512' } alt={ file.name } title={ file.name }/> @@ -241,17 +241,17 @@ </mk-channel-post> <mk-channel-form> - <p if={ reply }><b>>>{ reply.index }</b> ({ reply.user.name }): <a @click="clearReply">[x]</a></p> + <p v-if="reply"><b>>>{ reply.index }</b> ({ reply.user.name }): <a @click="clearReply">[x]</a></p> <textarea ref="text" disabled={ wait } oninput={ update } onkeydown={ onkeydown } onpaste={ onpaste } placeholder="%i18n:ch.tags.mk-channel-form.textarea%"></textarea> <div class="actions"> <button @click="selectFile">%fa:upload%%i18n:ch.tags.mk-channel-form.upload%</button> <button @click="drive">%fa:cloud%%i18n:ch.tags.mk-channel-form.drive%</button> <button class={ wait: wait } ref="submit" disabled={ wait || (refs.text.value.length == 0) } @click="post"> - <virtual if={ !wait }>%fa:paper-plane%</virtual>{ wait ? '%i18n:ch.tags.mk-channel-form.posting%' : '%i18n:ch.tags.mk-channel-form.post%' }<mk-ellipsis if={ wait }/> + <virtual v-if="!wait">%fa:paper-plane%</virtual>{ wait ? '%i18n:ch.tags.mk-channel-form.posting%' : '%i18n:ch.tags.mk-channel-form.post%' }<mk-ellipsis v-if="wait"/> </button> </div> <mk-uploader ref="uploader"/> - <ol if={ files }> + <ol v-if="files"> <li each={ files }>{ name }</li> </ol> <input ref="file" type="file" accept="image/*" multiple="multiple" onchange={ changeFile }/> diff --git a/src/web/app/ch/tags/header.tag b/src/web/app/ch/tags/header.tag index 8af6f1c37e..84575b03d6 100644 --- a/src/web/app/ch/tags/header.tag +++ b/src/web/app/ch/tags/header.tag @@ -3,8 +3,8 @@ <a href={ _CH_URL_ }>Index</a> | <a href={ _URL_ }>Misskey</a> </div> <div> - <a if={ !SIGNIN } href={ _URL_ }>ログイン(新規登録)</a> - <a if={ SIGNIN } href={ _URL_ + '/' + I.username }>{ I.username }</a> + <a v-if="!SIGNIN" href={ _URL_ }>ログイン(新規登録)</a> + <a v-if="SIGNIN" href={ _URL_ + '/' + I.username }>{ I.username }</a> </div> <style lang="stylus" scoped> :scope diff --git a/src/web/app/ch/tags/index.tag b/src/web/app/ch/tags/index.tag index 2fd5493681..e058da6a3f 100644 --- a/src/web/app/ch/tags/index.tag +++ b/src/web/app/ch/tags/index.tag @@ -3,7 +3,7 @@ <hr> <button @click="n">%i18n:ch.tags.mk-index.new%</button> <hr> - <ul if={ channels }> + <ul v-if="channels"> <li each={ channels }><a href={ '/' + this.id }>{ this.title }</a></li> </ul> <style lang="stylus" scoped> diff --git a/src/web/app/common/tags/activity-table.tag b/src/web/app/common/tags/activity-table.tag index b0a1000906..39d4d7205e 100644 --- a/src/web/app/common/tags/activity-table.tag +++ b/src/web/app/common/tags/activity-table.tag @@ -1,5 +1,5 @@ <mk-activity-table> - <svg if={ data } ref="canvas" viewBox="0 0 53 7" preserveAspectRatio="none"> + <svg v-if="data" ref="canvas" viewBox="0 0 53 7" preserveAspectRatio="none"> <rect each={ data } width="1" height="1" riot-x={ x } riot-y={ date.weekday } rx="1" ry="1" diff --git a/src/web/app/common/tags/authorized-apps.tag b/src/web/app/common/tags/authorized-apps.tag index 324871949d..0511c1bc6d 100644 --- a/src/web/app/common/tags/authorized-apps.tag +++ b/src/web/app/common/tags/authorized-apps.tag @@ -1,8 +1,8 @@ <mk-authorized-apps> - <div class="none ui info" if={ !fetching && apps.length == 0 }> + <div class="none ui info" v-if="!fetching && apps.length == 0"> <p>%fa:info-circle%%i18n:common.tags.mk-authorized-apps.no-apps%</p> </div> - <div class="apps" if={ apps.length != 0 }> + <div class="apps" v-if="apps.length != 0"> <div each={ app in apps }> <p><b>{ app.name }</b></p> <p>{ app.description }</p> diff --git a/src/web/app/common/tags/error.tag b/src/web/app/common/tags/error.tag index 0a65357622..f72f403a9e 100644 --- a/src/web/app/common/tags/error.tag +++ b/src/web/app/common/tags/error.tag @@ -8,8 +8,8 @@ }</a>{ '%i18n:common.tags.mk-error.description%'.substr('%i18n:common.tags.mk-error.description%'.indexOf('}') + 1) }</p> - <button if={ !troubleshooting } @click="troubleshoot">%i18n:common.tags.mk-error.troubleshoot%</button> - <mk-troubleshooter if={ troubleshooting }/> + <button v-if="!troubleshooting" @click="troubleshoot">%i18n:common.tags.mk-error.troubleshoot%</button> + <mk-troubleshooter v-if="troubleshooting"/> <p class="thanks">%i18n:common.tags.mk-error.thanks%</p> <style lang="stylus" scoped> :scope @@ -98,15 +98,15 @@ <mk-troubleshooter> <h1>%fa:wrench%%i18n:common.tags.mk-error.troubleshooter.title%</h1> <div> - <p data-wip={ network == null }><virtual if={ network != null }><virtual if={ network }>%fa:check%</virtual><virtual if={ !network }>%fa:times%</virtual></virtual>{ network == null ? '%i18n:common.tags.mk-error.troubleshooter.checking-network%' : '%i18n:common.tags.mk-error.troubleshooter.network%' }<mk-ellipsis if={ network == null }/></p> - <p if={ network == true } data-wip={ internet == null }><virtual if={ internet != null }><virtual if={ internet }>%fa:check%</virtual><virtual if={ !internet }>%fa:times%</virtual></virtual>{ internet == null ? '%i18n:common.tags.mk-error.troubleshooter.checking-internet%' : '%i18n:common.tags.mk-error.troubleshooter.internet%' }<mk-ellipsis if={ internet == null }/></p> - <p if={ internet == true } data-wip={ server == null }><virtual if={ server != null }><virtual if={ server }>%fa:check%</virtual><virtual if={ !server }>%fa:times%</virtual></virtual>{ server == null ? '%i18n:common.tags.mk-error.troubleshooter.checking-server%' : '%i18n:common.tags.mk-error.troubleshooter.server%' }<mk-ellipsis if={ server == null }/></p> + <p data-wip={ network == null }><virtual v-if="network != null"><virtual v-if="network">%fa:check%</virtual><virtual v-if="!network">%fa:times%</virtual></virtual>{ network == null ? '%i18n:common.tags.mk-error.troubleshooter.checking-network%' : '%i18n:common.tags.mk-error.troubleshooter.network%' }<mk-ellipsis v-if="network == null"/></p> + <p v-if="network == true" data-wip={ internet == null }><virtual v-if="internet != null"><virtual v-if="internet">%fa:check%</virtual><virtual v-if="!internet">%fa:times%</virtual></virtual>{ internet == null ? '%i18n:common.tags.mk-error.troubleshooter.checking-internet%' : '%i18n:common.tags.mk-error.troubleshooter.internet%' }<mk-ellipsis v-if="internet == null"/></p> + <p v-if="internet == true" data-wip={ server == null }><virtual v-if="server != null"><virtual v-if="server">%fa:check%</virtual><virtual v-if="!server">%fa:times%</virtual></virtual>{ server == null ? '%i18n:common.tags.mk-error.troubleshooter.checking-server%' : '%i18n:common.tags.mk-error.troubleshooter.server%' }<mk-ellipsis v-if="server == null"/></p> </div> - <p if={ !end }>%i18n:common.tags.mk-error.troubleshooter.finding%<mk-ellipsis/></p> - <p if={ network === false }><b>%fa:exclamation-triangle%%i18n:common.tags.mk-error.troubleshooter.no-network%</b><br>%i18n:common.tags.mk-error.troubleshooter.no-network-desc%</p> - <p if={ internet === false }><b>%fa:exclamation-triangle%%i18n:common.tags.mk-error.troubleshooter.no-internet%</b><br>%i18n:common.tags.mk-error.troubleshooter.no-internet-desc%</p> - <p if={ server === false }><b>%fa:exclamation-triangle%%i18n:common.tags.mk-error.troubleshooter.no-server%</b><br>%i18n:common.tags.mk-error.troubleshooter.no-server-desc%</p> - <p if={ server === true } class="success"><b>%fa:info-circle%%i18n:common.tags.mk-error.troubleshooter.success%</b><br>%i18n:common.tags.mk-error.troubleshooter.success-desc%</p> + <p v-if="!end">%i18n:common.tags.mk-error.troubleshooter.finding%<mk-ellipsis/></p> + <p v-if="network === false"><b>%fa:exclamation-triangle%%i18n:common.tags.mk-error.troubleshooter.no-network%</b><br>%i18n:common.tags.mk-error.troubleshooter.no-network-desc%</p> + <p v-if="internet === false"><b>%fa:exclamation-triangle%%i18n:common.tags.mk-error.troubleshooter.no-internet%</b><br>%i18n:common.tags.mk-error.troubleshooter.no-internet-desc%</p> + <p v-if="server === false"><b>%fa:exclamation-triangle%%i18n:common.tags.mk-error.troubleshooter.no-server%</b><br>%i18n:common.tags.mk-error.troubleshooter.no-server-desc%</p> + <p v-if="server === true" class="success"><b>%fa:info-circle%%i18n:common.tags.mk-error.troubleshooter.success%</b><br>%i18n:common.tags.mk-error.troubleshooter.success-desc%</p> <style lang="stylus" scoped> :scope diff --git a/src/web/app/common/tags/file-type-icon.tag b/src/web/app/common/tags/file-type-icon.tag index 035aec247c..d47f96fd09 100644 --- a/src/web/app/common/tags/file-type-icon.tag +++ b/src/web/app/common/tags/file-type-icon.tag @@ -1,5 +1,5 @@ <mk-file-type-icon> - <virtual if={ kind == 'image' }>%fa:file-image%</virtual> + <virtual v-if="kind == 'image'">%fa:file-image%</virtual> <style lang="stylus" scoped> :scope display inline diff --git a/src/web/app/common/tags/messaging/form.tag b/src/web/app/common/tags/messaging/form.tag index 33b0beb885..df0658741f 100644 --- a/src/web/app/common/tags/messaging/form.tag +++ b/src/web/app/common/tags/messaging/form.tag @@ -3,7 +3,7 @@ <div class="files"></div> <mk-uploader ref="uploader"/> <button class="send" @click="send" disabled={ sending } title="%i18n:common.send%"> - <virtual if={ !sending }>%fa:paper-plane%</virtual><virtual if={ sending }>%fa:spinner .spin%</virtual> + <virtual v-if="!sending">%fa:paper-plane%</virtual><virtual v-if="sending">%fa:spinner .spin%</virtual> </button> <button class="attach-from-local" type="button" title="%i18n:common.tags.mk-messaging-form.attach-from-local%"> %fa:upload% diff --git a/src/web/app/common/tags/messaging/index.tag b/src/web/app/common/tags/messaging/index.tag index 24d49257c5..fa12a78d8f 100644 --- a/src/web/app/common/tags/messaging/index.tag +++ b/src/web/app/common/tags/messaging/index.tag @@ -1,11 +1,11 @@ <mk-messaging data-compact={ opts.compact }> - <div class="search" if={ !opts.compact }> + <div class="search" v-if="!opts.compact"> <div class="form"> <label for="search-input">%fa:search%</label> <input ref="search" type="search" oninput={ search } onkeydown={ onSearchKeydown } placeholder="%i18n:common.tags.mk-messaging.search-user%"/> </div> <div class="result"> - <ol class="users" if={ searchResult.length > 0 } ref="searchResult"> + <ol class="users" v-if="searchResult.length > 0" ref="searchResult"> <li each={ user, i in searchResult } onkeydown={ parent.onSearchResultKeydown.bind(null, i) } @click="user._click" tabindex="-1"> <img class="avatar" src={ user.avatar_url + '?thumbnail&size=32' } alt=""/> <span class="name">{ user.name }</span> @@ -14,7 +14,7 @@ </ol> </div> </div> - <div class="history" if={ history.length > 0 }> + <div class="history" v-if="history.length > 0"> <virtual each={ history }> <a class="user" data-is-me={ is_me } data-is-read={ is_read } @click="_click"> <div> @@ -25,14 +25,14 @@ <mk-time time={ created_at }/> </header> <div class="body"> - <p class="text"><span class="me" if={ is_me }>%i18n:common.tags.mk-messaging.you%:</span>{ text }</p> + <p class="text"><span class="me" v-if="is_me">%i18n:common.tags.mk-messaging.you%:</span>{ text }</p> </div> </div> </a> </virtual> </div> - <p class="no-history" if={ !fetching && history.length == 0 }>%i18n:common.tags.mk-messaging.no-history%</p> - <p class="fetching" if={ fetching }>%fa:spinner .pulse .fw%%i18n:common.loading%<mk-ellipsis/></p> + <p class="no-history" v-if="!fetching && history.length == 0">%i18n:common.tags.mk-messaging.no-history%</p> + <p class="fetching" v-if="fetching">%fa:spinner .pulse .fw%%i18n:common.loading%<mk-ellipsis/></p> <style lang="stylus" scoped> :scope display block diff --git a/src/web/app/common/tags/messaging/message.tag b/src/web/app/common/tags/messaging/message.tag index d65bb8770a..4f75e9049f 100644 --- a/src/web/app/common/tags/messaging/message.tag +++ b/src/web/app/common/tags/messaging/message.tag @@ -4,18 +4,18 @@ </a> <div class="content-container"> <div class="balloon"> - <p class="read" if={ message.is_me && message.is_read }>%i18n:common.tags.mk-messaging-message.is-read%</p> - <button class="delete-button" if={ message.is_me } title="%i18n:common.delete%"><img src="/assets/desktop/messaging/delete.png" alt="Delete"/></button> - <div class="content" if={ !message.is_deleted }> + <p class="read" v-if="message.is_me && message.is_read">%i18n:common.tags.mk-messaging-message.is-read%</p> + <button class="delete-button" v-if="message.is_me" title="%i18n:common.delete%"><img src="/assets/desktop/messaging/delete.png" alt="Delete"/></button> + <div class="content" v-if="!message.is_deleted"> <div ref="text"></div> - <div class="image" if={ message.file }><img src={ message.file.url } alt="image" title={ message.file.name }/></div> + <div class="image" v-if="message.file"><img src={ message.file.url } alt="image" title={ message.file.name }/></div> </div> - <div class="content" if={ message.is_deleted }> + <div class="content" v-if="message.is_deleted"> <p class="is-deleted">%i18n:common.tags.mk-messaging-message.deleted%</p> </div> </div> <footer> - <mk-time time={ message.created_at }/><virtual if={ message.is_edited }>%fa:pencil-alt%</virtual> + <mk-time time={ message.created_at }/><virtual v-if="message.is_edited">%fa:pencil-alt%</virtual> </footer> </div> <style lang="stylus" scoped> diff --git a/src/web/app/common/tags/messaging/room.tag b/src/web/app/common/tags/messaging/room.tag index 0a669dbc9a..e659b778b6 100644 --- a/src/web/app/common/tags/messaging/room.tag +++ b/src/web/app/common/tags/messaging/room.tag @@ -1,14 +1,14 @@ <mk-messaging-room> <div class="stream"> - <p class="init" if={ init }>%fa:spinner .spin%%i18n:common.loading%</p> - <p class="empty" if={ !init && messages.length == 0 }>%fa:info-circle%%i18n:common.tags.mk-messaging-room.empty%</p> - <p class="no-history" if={ !init && messages.length > 0 && !moreMessagesIsInStock }>%fa:flag%%i18n:common.tags.mk-messaging-room.no-history%</p> - <button class="more { fetching: fetchingMoreMessages }" if={ moreMessagesIsInStock } @click="fetchMoreMessages" disabled={ fetchingMoreMessages }> - <virtual if={ fetchingMoreMessages }>%fa:spinner .pulse .fw%</virtual>{ fetchingMoreMessages ? '%i18n:common.loading%' : '%i18n:common.tags.mk-messaging-room.more%' } + <p class="init" v-if="init">%fa:spinner .spin%%i18n:common.loading%</p> + <p class="empty" v-if="!init && messages.length == 0">%fa:info-circle%%i18n:common.tags.mk-messaging-room.empty%</p> + <p class="no-history" v-if="!init && messages.length > 0 && !moreMessagesIsInStock">%fa:flag%%i18n:common.tags.mk-messaging-room.no-history%</p> + <button class="more { fetching: fetchingMoreMessages }" v-if="moreMessagesIsInStock" @click="fetchMoreMessages" disabled={ fetchingMoreMessages }> + <virtual v-if="fetchingMoreMessages">%fa:spinner .pulse .fw%</virtual>{ fetchingMoreMessages ? '%i18n:common.loading%' : '%i18n:common.tags.mk-messaging-room.more%' } </button> <virtual each={ message, i in messages }> <mk-messaging-message message={ message }/> - <p class="date" if={ i != messages.length - 1 && message._date != messages[i + 1]._date }><span>{ messages[i + 1]._datetext }</span></p> + <p class="date" v-if="i != messages.length - 1 && message._date != messages[i + 1]._date"><span>{ messages[i + 1]._datetext }</span></p> </virtual> </div> <footer> diff --git a/src/web/app/common/tags/poll-editor.tag b/src/web/app/common/tags/poll-editor.tag index 28e059e877..1d57eb9de5 100644 --- a/src/web/app/common/tags/poll-editor.tag +++ b/src/web/app/common/tags/poll-editor.tag @@ -1,5 +1,5 @@ <mk-poll-editor> - <p class="caution" if={ choices.length < 2 }> + <p class="caution" v-if="choices.length < 2"> %fa:exclamation-triangle%%i18n:common.tags.mk-poll-editor.no-only-one-choice% </p> <ul ref="choices"> @@ -10,7 +10,7 @@ </button> </li> </ul> - <button class="add" if={ choices.length < 10 } @click="add">%i18n:common.tags.mk-poll-editor.add%</button> + <button class="add" v-if="choices.length < 10" @click="add">%i18n:common.tags.mk-poll-editor.add%</button> <button class="destroy" @click="destroy" title="%i18n:common.tags.mk-poll-editor.destroy%"> %fa:times% </button> diff --git a/src/web/app/common/tags/poll.tag b/src/web/app/common/tags/poll.tag index 0033688155..e6971d5bb2 100644 --- a/src/web/app/common/tags/poll.tag +++ b/src/web/app/common/tags/poll.tag @@ -3,17 +3,17 @@ <li each={ poll.choices } @click="vote.bind(null, id)" class={ voted: voted } title={ !parent.isVoted ? '%i18n:common.tags.mk-poll.vote-to%'.replace('{}', text) : '' }> <div class="backdrop" style={ 'width:' + (parent.result ? (votes / parent.total * 100) : 0) + '%' }></div> <span> - <virtual if={ is_voted }>%fa:check%</virtual> + <virtual v-if="is_voted">%fa:check%</virtual> { text } - <span class="votes" if={ parent.result }>({ '%i18n:common.tags.mk-poll.vote-count%'.replace('{}', votes) })</span> + <span class="votes" v-if="parent.result">({ '%i18n:common.tags.mk-poll.vote-count%'.replace('{}', votes) })</span> </span> </li> </ul> - <p if={ total > 0 }> + <p v-if="total > 0"> <span>{ '%i18n:common.tags.mk-poll.total-users%'.replace('{}', total) }</span> ・ - <a if={ !isVoted } @click="toggleResult">{ result ? '%i18n:common.tags.mk-poll.vote%' : '%i18n:common.tags.mk-poll.show-result%' }</a> - <span if={ isVoted }>%i18n:common.tags.mk-poll.voted%</span> + <a v-if="!isVoted" @click="toggleResult">{ result ? '%i18n:common.tags.mk-poll.vote%' : '%i18n:common.tags.mk-poll.show-result%' }</a> + <span v-if="isVoted">%i18n:common.tags.mk-poll.voted%</span> </p> <style lang="stylus" scoped> :scope diff --git a/src/web/app/common/tags/post-menu.tag b/src/web/app/common/tags/post-menu.tag index da5eaf8edc..f3b13c0b12 100644 --- a/src/web/app/common/tags/post-menu.tag +++ b/src/web/app/common/tags/post-menu.tag @@ -1,8 +1,8 @@ <mk-post-menu> <div class="backdrop" ref="backdrop" @click="close"></div> <div class="popover { compact: opts.compact }" ref="popover"> - <button if={ post.user_id === I.id } @click="pin">%i18n:common.tags.mk-post-menu.pin%</button> - <div if={ I.is_pro && !post.is_category_verified }> + <button v-if="post.user_id === I.id" @click="pin">%i18n:common.tags.mk-post-menu.pin%</button> + <div v-if="I.is_pro && !post.is_category_verified"> <select ref="categorySelect"> <option value="">%i18n:common.tags.mk-post-menu.select%</option> <option value="music">%i18n:common.post_categories.music%</option> diff --git a/src/web/app/common/tags/reaction-icon.tag b/src/web/app/common/tags/reaction-icon.tag index 50d62cfba1..2282a5868b 100644 --- a/src/web/app/common/tags/reaction-icon.tag +++ b/src/web/app/common/tags/reaction-icon.tag @@ -1,13 +1,13 @@ <mk-reaction-icon> - <virtual if={ opts.reaction == 'like' }><img src="/assets/reactions/like.png" alt="%i18n:common.reactions.like%"></virtual> - <virtual if={ opts.reaction == 'love' }><img src="/assets/reactions/love.png" alt="%i18n:common.reactions.love%"></virtual> - <virtual if={ opts.reaction == 'laugh' }><img src="/assets/reactions/laugh.png" alt="%i18n:common.reactions.laugh%"></virtual> - <virtual if={ opts.reaction == 'hmm' }><img src="/assets/reactions/hmm.png" alt="%i18n:common.reactions.hmm%"></virtual> - <virtual if={ opts.reaction == 'surprise' }><img src="/assets/reactions/surprise.png" alt="%i18n:common.reactions.surprise%"></virtual> - <virtual if={ opts.reaction == 'congrats' }><img src="/assets/reactions/congrats.png" alt="%i18n:common.reactions.congrats%"></virtual> - <virtual if={ opts.reaction == 'angry' }><img src="/assets/reactions/angry.png" alt="%i18n:common.reactions.angry%"></virtual> - <virtual if={ opts.reaction == 'confused' }><img src="/assets/reactions/confused.png" alt="%i18n:common.reactions.confused%"></virtual> - <virtual if={ opts.reaction == 'pudding' }><img src="/assets/reactions/pudding.png" alt="%i18n:common.reactions.pudding%"></virtual> + <virtual v-if="opts.reaction == 'like'"><img src="/assets/reactions/like.png" alt="%i18n:common.reactions.like%"></virtual> + <virtual v-if="opts.reaction == 'love'"><img src="/assets/reactions/love.png" alt="%i18n:common.reactions.love%"></virtual> + <virtual v-if="opts.reaction == 'laugh'"><img src="/assets/reactions/laugh.png" alt="%i18n:common.reactions.laugh%"></virtual> + <virtual v-if="opts.reaction == 'hmm'"><img src="/assets/reactions/hmm.png" alt="%i18n:common.reactions.hmm%"></virtual> + <virtual v-if="opts.reaction == 'surprise'"><img src="/assets/reactions/surprise.png" alt="%i18n:common.reactions.surprise%"></virtual> + <virtual v-if="opts.reaction == 'congrats'"><img src="/assets/reactions/congrats.png" alt="%i18n:common.reactions.congrats%"></virtual> + <virtual v-if="opts.reaction == 'angry'"><img src="/assets/reactions/angry.png" alt="%i18n:common.reactions.angry%"></virtual> + <virtual v-if="opts.reaction == 'confused'"><img src="/assets/reactions/confused.png" alt="%i18n:common.reactions.confused%"></virtual> + <virtual v-if="opts.reaction == 'pudding'"><img src="/assets/reactions/pudding.png" alt="%i18n:common.reactions.pudding%"></virtual> <style lang="stylus" scoped> :scope diff --git a/src/web/app/common/tags/reactions-viewer.tag b/src/web/app/common/tags/reactions-viewer.vue similarity index 58% rename from src/web/app/common/tags/reactions-viewer.tag rename to src/web/app/common/tags/reactions-viewer.vue index 8ec14a12f8..ad126ff1d5 100644 --- a/src/web/app/common/tags/reactions-viewer.tag +++ b/src/web/app/common/tags/reactions-viewer.vue @@ -1,14 +1,23 @@ +<template> +<div> + <template v-if="reactions"> + <span v-if="reactions.like"><mk-reaction-icon reaction='like'/><span>{ reactions.like }</span></span> + <span v-if="reactions.love"><mk-reaction-icon reaction='love'/><span>{ reactions.love }</span></span> + <span v-if="reactions.laugh"><mk-reaction-icon reaction='laugh'/><span>{ reactions.laugh }</span></span> + <span v-if="reactions.hmm"><mk-reaction-icon reaction='hmm'/><span>{ reactions.hmm }</span></span> + <span v-if="reactions.surprise"><mk-reaction-icon reaction='surprise'/><span>{ reactions.surprise }</span></span> + <span v-if="reactions.congrats"><mk-reaction-icon reaction='congrats'/><span>{ reactions.congrats }</span></span> + <span v-if="reactions.angry"><mk-reaction-icon reaction='angry'/><span>{ reactions.angry }</span></span> + <span v-if="reactions.confused"><mk-reaction-icon reaction='confused'/><span>{ reactions.confused }</span></span> + <span v-if="reactions.pudding"><mk-reaction-icon reaction='pudding'/><span>{ reactions.pudding }</span></span> + </template> +</div> +</template> + + <mk-reactions-viewer> - <virtual if={ reactions }> - <span if={ reactions.like }><mk-reaction-icon reaction='like'/><span>{ reactions.like }</span></span> - <span if={ reactions.love }><mk-reaction-icon reaction='love'/><span>{ reactions.love }</span></span> - <span if={ reactions.laugh }><mk-reaction-icon reaction='laugh'/><span>{ reactions.laugh }</span></span> - <span if={ reactions.hmm }><mk-reaction-icon reaction='hmm'/><span>{ reactions.hmm }</span></span> - <span if={ reactions.surprise }><mk-reaction-icon reaction='surprise'/><span>{ reactions.surprise }</span></span> - <span if={ reactions.congrats }><mk-reaction-icon reaction='congrats'/><span>{ reactions.congrats }</span></span> - <span if={ reactions.angry }><mk-reaction-icon reaction='angry'/><span>{ reactions.angry }</span></span> - <span if={ reactions.confused }><mk-reaction-icon reaction='confused'/><span>{ reactions.confused }</span></span> - <span if={ reactions.pudding }><mk-reaction-icon reaction='pudding'/><span>{ reactions.pudding }</span></span> + <virtual v-if="reactions"> + </virtual> <style lang="stylus" scoped> :scope diff --git a/src/web/app/common/tags/signin-history.tag b/src/web/app/common/tags/signin-history.tag index 332bfdccfa..e6b57c091f 100644 --- a/src/web/app/common/tags/signin-history.tag +++ b/src/web/app/common/tags/signin-history.tag @@ -1,5 +1,5 @@ <mk-signin-history> - <div class="records" if={ history.length != 0 }> + <div class="records" v-if="history.length != 0"> <mk-signin-record each={ rec in history } rec={ rec }/> </div> <style lang="stylus" scoped> @@ -43,8 +43,8 @@ <mk-signin-record> <header @click="toggle"> - <virtual if={ rec.success }>%fa:check%</virtual> - <virtual if={ !rec.success }>%fa:times%</virtual> + <virtual v-if="rec.success">%fa:check%</virtual> + <virtual v-if="!rec.success">%fa:times%</virtual> <span class="ip">{ rec.ip }</span> <mk-time time={ rec.created_at }/> </header> diff --git a/src/web/app/common/tags/signin.tag b/src/web/app/common/tags/signin.tag index 949217c711..3fa253fbbb 100644 --- a/src/web/app/common/tags/signin.tag +++ b/src/web/app/common/tags/signin.tag @@ -6,7 +6,7 @@ <label class="password"> <input ref="password" type="password" placeholder="%i18n:common.tags.mk-signin.password%" required="required"/>%fa:lock% </label> - <label class="token" if={ user && user.two_factor_enabled }> + <label class="token" v-if="user && user.two_factor_enabled"> <input ref="token" type="number" placeholder="%i18n:common.tags.mk-signin.token%" required="required"/>%fa:lock% </label> <button type="submit" disabled={ signing }>{ signing ? '%i18n:common.tags.mk-signin.signing-in%' : '%i18n:common.tags.mk-signin.signin%' }</button> diff --git a/src/web/app/common/tags/signup.tag b/src/web/app/common/tags/signup.tag index 861c652011..1efb4aa09f 100644 --- a/src/web/app/common/tags/signup.tag +++ b/src/web/app/common/tags/signup.tag @@ -3,34 +3,34 @@ <label class="username"> <p class="caption">%fa:at%%i18n:common.tags.mk-signup.username%</p> <input ref="username" type="text" pattern="^[a-zA-Z0-9-]{3,20}$" placeholder="a~z、A~Z、0~9、-" autocomplete="off" required="required" onkeyup={ onChangeUsername }/> - <p class="profile-page-url-preview" if={ refs.username.value != '' && username-state != 'invalidFormat' && username-state != 'minRange' && username-state != 'maxRange' }>{ _URL_ + '/' + refs.username.value }</p> - <p class="info" if={ usernameState == 'wait' } style="color:#999">%fa:spinner .pulse .fw%%i18n:common.tags.mk-signup.checking%</p> - <p class="info" if={ usernameState == 'ok' } style="color:#3CB7B5">%fa:check .fw%%i18n:common.tags.mk-signup.available%</p> - <p class="info" if={ usernameState == 'unavailable' } style="color:#FF1161">%fa:exclamation-triangle .fw%%i18n:common.tags.mk-signup.unavailable%</p> - <p class="info" if={ usernameState == 'error' } style="color:#FF1161">%fa:exclamation-triangle .fw%%i18n:common.tags.mk-signup.error%</p> - <p class="info" if={ usernameState == 'invalid-format' } style="color:#FF1161">%fa:exclamation-triangle .fw%%i18n:common.tags.mk-signup.invalid-format%</p> - <p class="info" if={ usernameState == 'min-range' } style="color:#FF1161">%fa:exclamation-triangle .fw%%i18n:common.tags.mk-signup.too-short%</p> - <p class="info" if={ usernameState == 'max-range' } style="color:#FF1161">%fa:exclamation-triangle .fw%%i18n:common.tags.mk-signup.too-long%</p> + <p class="profile-page-url-preview" v-if="refs.username.value != '' && username-state != 'invalidFormat' && username-state != 'minRange' && username-state != 'maxRange'">{ _URL_ + '/' + refs.username.value }</p> + <p class="info" v-if="usernameState == 'wait'" style="color:#999">%fa:spinner .pulse .fw%%i18n:common.tags.mk-signup.checking%</p> + <p class="info" v-if="usernameState == 'ok'" style="color:#3CB7B5">%fa:check .fw%%i18n:common.tags.mk-signup.available%</p> + <p class="info" v-if="usernameState == 'unavailable'" style="color:#FF1161">%fa:exclamation-triangle .fw%%i18n:common.tags.mk-signup.unavailable%</p> + <p class="info" v-if="usernameState == 'error'" style="color:#FF1161">%fa:exclamation-triangle .fw%%i18n:common.tags.mk-signup.error%</p> + <p class="info" v-if="usernameState == 'invalid-format'" style="color:#FF1161">%fa:exclamation-triangle .fw%%i18n:common.tags.mk-signup.invalid-format%</p> + <p class="info" v-if="usernameState == 'min-range'" style="color:#FF1161">%fa:exclamation-triangle .fw%%i18n:common.tags.mk-signup.too-short%</p> + <p class="info" v-if="usernameState == 'max-range'" style="color:#FF1161">%fa:exclamation-triangle .fw%%i18n:common.tags.mk-signup.too-long%</p> </label> <label class="password"> <p class="caption">%fa:lock%%i18n:common.tags.mk-signup.password%</p> <input ref="password" type="password" placeholder="%i18n:common.tags.mk-signup.password-placeholder%" autocomplete="off" required="required" onkeyup={ onChangePassword }/> - <div class="meter" if={ passwordStrength != '' } data-strength={ passwordStrength }> + <div class="meter" v-if="passwordStrength != ''" data-strength={ passwordStrength }> <div class="value" ref="passwordMetar"></div> </div> - <p class="info" if={ passwordStrength == 'low' } style="color:#FF1161">%fa:exclamation-triangle .fw%%i18n:common.tags.mk-signup.weak-password%</p> - <p class="info" if={ passwordStrength == 'medium' } style="color:#3CB7B5">%fa:check .fw%%i18n:common.tags.mk-signup.normal-password%</p> - <p class="info" if={ passwordStrength == 'high' } style="color:#3CB7B5">%fa:check .fw%%i18n:common.tags.mk-signup.strong-password%</p> + <p class="info" v-if="passwordStrength == 'low'" style="color:#FF1161">%fa:exclamation-triangle .fw%%i18n:common.tags.mk-signup.weak-password%</p> + <p class="info" v-if="passwordStrength == 'medium'" style="color:#3CB7B5">%fa:check .fw%%i18n:common.tags.mk-signup.normal-password%</p> + <p class="info" v-if="passwordStrength == 'high'" style="color:#3CB7B5">%fa:check .fw%%i18n:common.tags.mk-signup.strong-password%</p> </label> <label class="retype-password"> <p class="caption">%fa:lock%%i18n:common.tags.mk-signup.password%(%i18n:common.tags.mk-signup.retype%)</p> <input ref="passwordRetype" type="password" placeholder="%i18n:common.tags.mk-signup.retype-placeholder%" autocomplete="off" required="required" onkeyup={ onChangePasswordRetype }/> - <p class="info" if={ passwordRetypeState == 'match' } style="color:#3CB7B5">%fa:check .fw%%i18n:common.tags.mk-signup.password-matched%</p> - <p class="info" if={ passwordRetypeState == 'not-match' } style="color:#FF1161">%fa:exclamation-triangle .fw%%i18n:common.tags.mk-signup.password-not-matched%</p> + <p class="info" v-if="passwordRetypeState == 'match'" style="color:#3CB7B5">%fa:check .fw%%i18n:common.tags.mk-signup.password-matched%</p> + <p class="info" v-if="passwordRetypeState == 'not-match'" style="color:#FF1161">%fa:exclamation-triangle .fw%%i18n:common.tags.mk-signup.password-not-matched%</p> </label> <label class="recaptcha"> - <p class="caption"><virtual if={ recaptchaed }>%fa:toggle-on%</virtual><virtual if={ !recaptchaed }>%fa:toggle-off%</virtual>%i18n:common.tags.mk-signup.recaptcha%</p> - <div if={ recaptcha } class="g-recaptcha" data-callback="onRecaptchaed" data-expired-callback="onRecaptchaExpired" data-sitekey={ recaptcha.site_key }></div> + <p class="caption"><virtual v-if="recaptchaed">%fa:toggle-on%</virtual><virtual v-if="!recaptchaed">%fa:toggle-off%</virtual>%i18n:common.tags.mk-signup.recaptcha%</p> + <div v-if="recaptcha" class="g-recaptcha" data-callback="onRecaptchaed" data-expired-callback="onRecaptchaExpired" data-sitekey={ recaptcha.site_key }></div> </label> <label class="agree-tou"> <input name="agree-tou" type="checkbox" autocomplete="off" required="required"/> diff --git a/src/web/app/common/tags/special-message.tag b/src/web/app/common/tags/special-message.tag index 5d62797ae6..24fe66652f 100644 --- a/src/web/app/common/tags/special-message.tag +++ b/src/web/app/common/tags/special-message.tag @@ -1,6 +1,6 @@ <mk-special-message> - <p if={ m == 1 && d == 1 }>%i18n:common.tags.mk-special-message.new-year%</p> - <p if={ m == 12 && d == 25 }>%i18n:common.tags.mk-special-message.christmas%</p> + <p v-if="m == 1 && d == 1">%i18n:common.tags.mk-special-message.new-year%</p> + <p v-if="m == 12 && d == 25">%i18n:common.tags.mk-special-message.christmas%</p> <style lang="stylus" scoped> :scope display block diff --git a/src/web/app/common/tags/twitter-setting.tag b/src/web/app/common/tags/twitter-setting.tag index f865de466a..cb3d1e56ad 100644 --- a/src/web/app/common/tags/twitter-setting.tag +++ b/src/web/app/common/tags/twitter-setting.tag @@ -1,12 +1,12 @@ <mk-twitter-setting> <p>%i18n:common.tags.mk-twitter-setting.description%<a href={ _DOCS_URL_ + '/link-to-twitter' } target="_blank">%i18n:common.tags.mk-twitter-setting.detail%</a></p> - <p class="account" if={ I.twitter } title={ 'Twitter ID: ' + I.twitter.user_id }>%i18n:common.tags.mk-twitter-setting.connected-to%: <a href={ 'https://twitter.com/' + I.twitter.screen_name } target="_blank">@{ I.twitter.screen_name }</a></p> + <p class="account" v-if="I.twitter" title={ 'Twitter ID: ' + I.twitter.user_id }>%i18n:common.tags.mk-twitter-setting.connected-to%: <a href={ 'https://twitter.com/' + I.twitter.screen_name } target="_blank">@{ I.twitter.screen_name }</a></p> <p> <a href={ _API_URL_ + '/connect/twitter' } target="_blank" @click="connect">{ I.twitter ? '%i18n:common.tags.mk-twitter-setting.reconnect%' : '%i18n:common.tags.mk-twitter-setting.connect%' }</a> - <span if={ I.twitter }> or </span> - <a href={ _API_URL_ + '/disconnect/twitter' } target="_blank" if={ I.twitter } @click="disconnect">%i18n:common.tags.mk-twitter-setting.disconnect%</a> + <span v-if="I.twitter"> or </span> + <a href={ _API_URL_ + '/disconnect/twitter' } target="_blank" v-if="I.twitter" @click="disconnect">%i18n:common.tags.mk-twitter-setting.disconnect%</a> </p> - <p class="id" if={ I.twitter }>Twitter ID: { I.twitter.user_id }</p> + <p class="id" v-if="I.twitter">Twitter ID: { I.twitter.user_id }</p> <style lang="stylus" scoped> :scope display block diff --git a/src/web/app/common/tags/uploader.tag b/src/web/app/common/tags/uploader.tag index ec9ba02432..cc555304dd 100644 --- a/src/web/app/common/tags/uploader.tag +++ b/src/web/app/common/tags/uploader.tag @@ -1,12 +1,12 @@ <mk-uploader> - <ol if={ uploads.length > 0 }> + <ol v-if="uploads.length > 0"> <li each={ uploads }> <div class="img" style="background-image: url({ img })"></div> <p class="name">%fa:spinner .pulse%{ name }</p> - <p class="status"><span class="initing" if={ progress == undefined }>%i18n:common.tags.mk-uploader.waiting%<mk-ellipsis/></span><span class="kb" if={ progress != undefined }>{ String(Math.floor(progress.value / 1024)).replace(/(\d)(?=(\d\d\d)+(?!\d))/g, '$1,') }<i>KB</i> / { String(Math.floor(progress.max / 1024)).replace(/(\d)(?=(\d\d\d)+(?!\d))/g, '$1,') }<i>KB</i></span><span class="percentage" if={ progress != undefined }>{ Math.floor((progress.value / progress.max) * 100) }</span></p> - <progress if={ progress != undefined && progress.value != progress.max } value={ progress.value } max={ progress.max }></progress> - <div class="progress initing" if={ progress == undefined }></div> - <div class="progress waiting" if={ progress != undefined && progress.value == progress.max }></div> + <p class="status"><span class="initing" v-if="progress == undefined">%i18n:common.tags.mk-uploader.waiting%<mk-ellipsis/></span><span class="kb" v-if="progress != undefined">{ String(Math.floor(progress.value / 1024)).replace(/(\d)(?=(\d\d\d)+(?!\d))/g, '$1,') }<i>KB</i> / { String(Math.floor(progress.max / 1024)).replace(/(\d)(?=(\d\d\d)+(?!\d))/g, '$1,') }<i>KB</i></span><span class="percentage" v-if="progress != undefined">{ Math.floor((progress.value / progress.max) * 100) }</span></p> + <progress v-if="progress != undefined && progress.value != progress.max" value={ progress.value } max={ progress.max }></progress> + <div class="progress initing" v-if="progress == undefined"></div> + <div class="progress waiting" v-if="progress != undefined && progress.value == progress.max"></div> </li> </ol> <style lang="stylus" scoped> diff --git a/src/web/app/desktop/tags/autocomplete-suggestion.tag b/src/web/app/desktop/tags/autocomplete-suggestion.tag index 843b3a7989..ec531a1b2d 100644 --- a/src/web/app/desktop/tags/autocomplete-suggestion.tag +++ b/src/web/app/desktop/tags/autocomplete-suggestion.tag @@ -1,5 +1,5 @@ <mk-autocomplete-suggestion> - <ol class="users" ref="users" if={ users.length > 0 }> + <ol class="users" ref="users" v-if="users.length > 0"> <li each={ users } @click="parent.onClick" onkeydown={ parent.onKeydown } tabindex="-1"> <img class="avatar" src={ avatar_url + '?thumbnail&size=32' } alt=""/> <span class="name">{ name }</span> diff --git a/src/web/app/desktop/tags/big-follow-button.tag b/src/web/app/desktop/tags/big-follow-button.tag index f2e9dc656b..faac04a9f6 100644 --- a/src/web/app/desktop/tags/big-follow-button.tag +++ b/src/web/app/desktop/tags/big-follow-button.tag @@ -1,10 +1,10 @@ <mk-big-follow-button> - <button class={ wait: wait, follow: !user.is_following, unfollow: user.is_following } if={ !init } @click="onclick" disabled={ wait } title={ user.is_following ? 'フォロー解除' : 'フォローする' }> - <span if={ !wait && user.is_following }>%fa:minus%フォロー解除</span> - <span if={ !wait && !user.is_following }>%fa:plus%フォロー</span> - <virtual if={ wait }>%fa:spinner .pulse .fw%</virtual> + <button class={ wait: wait, follow: !user.is_following, unfollow: user.is_following } v-if="!init" @click="onclick" disabled={ wait } title={ user.is_following ? 'フォロー解除' : 'フォローする' }> + <span v-if="!wait && user.is_following">%fa:minus%フォロー解除</span> + <span v-if="!wait && !user.is_following">%fa:plus%フォロー</span> + <virtual v-if="wait">%fa:spinner .pulse .fw%</virtual> </button> - <div class="init" if={ init }>%fa:spinner .pulse .fw%</div> + <div class="init" v-if="init">%fa:spinner .pulse .fw%</div> <style lang="stylus" scoped> :scope display block diff --git a/src/web/app/desktop/tags/detailed-post-window.tag b/src/web/app/desktop/tags/detailed-post-window.tag index 50b4bf9207..d5042612c4 100644 --- a/src/web/app/desktop/tags/detailed-post-window.tag +++ b/src/web/app/desktop/tags/detailed-post-window.tag @@ -1,6 +1,6 @@ <mk-detailed-post-window> <div class="bg" ref="bg" @click="bgClick"></div> - <div class="main" ref="main" if={ !fetching }> + <div class="main" ref="main" v-if="!fetching"> <mk-post-detail ref="detail" post={ post }/> </div> <style lang="stylus" scoped> diff --git a/src/web/app/desktop/tags/drive/browser-window.tag b/src/web/app/desktop/tags/drive/browser-window.tag index 4285992f6f..af225e00cd 100644 --- a/src/web/app/desktop/tags/drive/browser-window.tag +++ b/src/web/app/desktop/tags/drive/browser-window.tag @@ -1,7 +1,7 @@ <mk-drive-browser-window> <mk-window ref="window" is-modal={ false } width={ '800px' } height={ '500px' } popout={ popout }> <yield to="header"> - <p class="info" if={ parent.usage }><b>{ parent.usage.toFixed(1) }%</b> %i18n:desktop.tags.mk-drive-browser-window.used%</p> + <p class="info" v-if="parent.usage"><b>{ parent.usage.toFixed(1) }%</b> %i18n:desktop.tags.mk-drive-browser-window.used%</p> %fa:cloud%%i18n:desktop.tags.mk-drive-browser-window.drive% </yield> <yield to="content"> diff --git a/src/web/app/desktop/tags/drive/browser.tag b/src/web/app/desktop/tags/drive/browser.tag index 0c0ce4bb4b..9b9a42cc26 100644 --- a/src/web/app/desktop/tags/drive/browser.tag +++ b/src/web/app/desktop/tags/drive/browser.tag @@ -6,44 +6,44 @@ <span class="separator">%fa:angle-right%</span> <mk-drive-browser-nav-folder folder={ folder }/> </virtual> - <span class="separator" if={ folder != null }>%fa:angle-right%</span> - <span class="folder current" if={ folder != null }>{ folder.name }</span> + <span class="separator" v-if="folder != null">%fa:angle-right%</span> + <span class="folder current" v-if="folder != null">{ folder.name }</span> </div> <input class="search" type="search" placeholder=" %i18n:desktop.tags.mk-drive-browser.search%"/> </nav> <div class="main { uploading: uploads.length > 0, fetching: fetching }" ref="main" onmousedown={ onmousedown } ondragover={ ondragover } ondragenter={ ondragenter } ondragleave={ ondragleave } ondrop={ ondrop } oncontextmenu={ oncontextmenu }> <div class="selection" ref="selection"></div> <div class="contents" ref="contents"> - <div class="folders" ref="foldersContainer" if={ folders.length > 0 }> + <div class="folders" ref="foldersContainer" v-if="folders.length > 0"> <virtual each={ folder in folders }> <mk-drive-browser-folder class="folder" folder={ folder }/> </virtual> <!-- SEE: https://stackoverflow.com/questions/18744164/flex-box-align-last-row-to-grid --> <div class="padding" each={ Array(10).fill(16) }></div> - <button if={ moreFolders }>%i18n:desktop.tags.mk-drive-browser.load-more%</button> + <button v-if="moreFolders">%i18n:desktop.tags.mk-drive-browser.load-more%</button> </div> - <div class="files" ref="filesContainer" if={ files.length > 0 }> + <div class="files" ref="filesContainer" v-if="files.length > 0"> <virtual each={ file in files }> <mk-drive-browser-file class="file" file={ file }/> </virtual> <!-- SEE: https://stackoverflow.com/questions/18744164/flex-box-align-last-row-to-grid --> <div class="padding" each={ Array(10).fill(16) }></div> - <button if={ moreFiles } @click="fetchMoreFiles">%i18n:desktop.tags.mk-drive-browser.load-more%</button> + <button v-if="moreFiles" @click="fetchMoreFiles">%i18n:desktop.tags.mk-drive-browser.load-more%</button> </div> - <div class="empty" if={ files.length == 0 && folders.length == 0 && !fetching }> - <p if={ draghover }>%i18n:desktop.tags.mk-drive-browser.empty-draghover%</p> - <p if={ !draghover && folder == null }><strong>%i18n:desktop.tags.mk-drive-browser.empty-drive%</strong><br/>%i18n:desktop.tags.mk-drive-browser.empty-drive-description%</p> - <p if={ !draghover && folder != null }>%i18n:desktop.tags.mk-drive-browser.empty-folder%</p> + <div class="empty" v-if="files.length == 0 && folders.length == 0 && !fetching"> + <p v-if="draghover">%i18n:desktop.tags.mk-drive-browser.empty-draghover%</p> + <p v-if="!draghover && folder == null"><strong>%i18n:desktop.tags.mk-drive-browser.empty-drive%</strong><br/>%i18n:desktop.tags.mk-drive-browser.empty-drive-description%</p> + <p v-if="!draghover && folder != null">%i18n:desktop.tags.mk-drive-browser.empty-folder%</p> </div> </div> - <div class="fetching" if={ fetching }> + <div class="fetching" v-if="fetching"> <div class="spinner"> <div class="dot1"></div> <div class="dot2"></div> </div> </div> </div> - <div class="dropzone" if={ draghover }></div> + <div class="dropzone" v-if="draghover"></div> <mk-uploader ref="uploader"/> <input ref="fileInput" type="file" accept="*/*" multiple="multiple" tabindex="-1" onchange={ changeFileInput }/> <style lang="stylus" scoped> diff --git a/src/web/app/desktop/tags/drive/file.tag b/src/web/app/desktop/tags/drive/file.tag index b33e3bc5e9..c55953cc71 100644 --- a/src/web/app/desktop/tags/drive/file.tag +++ b/src/web/app/desktop/tags/drive/file.tag @@ -1,14 +1,14 @@ <mk-drive-browser-file data-is-selected={ isSelected } data-is-contextmenu-showing={ isContextmenuShowing.toString() } @click="onclick" oncontextmenu={ oncontextmenu } draggable="true" ondragstart={ ondragstart } ondragend={ ondragend } title={ title }> - <div class="label" if={ I.avatar_id == file.id }><img src="/assets/label.svg"/> + <div class="label" v-if="I.avatar_id == file.id"><img src="/assets/label.svg"/> <p>%i18n:desktop.tags.mk-drive-browser-file.avatar%</p> </div> - <div class="label" if={ I.banner_id == file.id }><img src="/assets/label.svg"/> + <div class="label" v-if="I.banner_id == file.id"><img src="/assets/label.svg"/> <p>%i18n:desktop.tags.mk-drive-browser-file.banner%</p> </div> <div class="thumbnail" ref="thumbnail" style="background-color:{ file.properties.average_color ? 'rgb(' + file.properties.average_color.join(',') + ')' : 'transparent' }"> <img src={ file.url + '?thumbnail&size=128' } alt="" onload={ onload }/> </div> - <p class="name"><span>{ file.name.lastIndexOf('.') != -1 ? file.name.substr(0, file.name.lastIndexOf('.')) : file.name }</span><span class="ext" if={ file.name.lastIndexOf('.') != -1 }>{ file.name.substr(file.name.lastIndexOf('.')) }</span></p> + <p class="name"><span>{ file.name.lastIndexOf('.') != -1 ? file.name.substr(0, file.name.lastIndexOf('.')) : file.name }</span><span class="ext" v-if="file.name.lastIndexOf('.') != -1">{ file.name.substr(file.name.lastIndexOf('.')) }</span></p> <style lang="stylus" scoped> :scope display block diff --git a/src/web/app/desktop/tags/drive/folder.tag b/src/web/app/desktop/tags/drive/folder.tag index 9458671cdc..90d9f2b3ca 100644 --- a/src/web/app/desktop/tags/drive/folder.tag +++ b/src/web/app/desktop/tags/drive/folder.tag @@ -1,5 +1,5 @@ <mk-drive-browser-folder data-is-contextmenu-showing={ isContextmenuShowing.toString() } data-draghover={ draghover.toString() } @click="onclick" onmouseover={ onmouseover } onmouseout={ onmouseout } ondragover={ ondragover } ondragenter={ ondragenter } ondragleave={ ondragleave } ondrop={ ondrop } oncontextmenu={ oncontextmenu } draggable="true" ondragstart={ ondragstart } ondragend={ ondragend } title={ title }> - <p class="name"><virtual if={ hover }>%fa:R folder-open .fw%</virtual><virtual if={ !hover }>%fa:R folder .fw%</virtual>{ folder.name }</p> + <p class="name"><virtual v-if="hover">%fa:R folder-open .fw%</virtual><virtual v-if="!hover">%fa:R folder .fw%</virtual>{ folder.name }</p> <style lang="stylus" scoped> :scope display block diff --git a/src/web/app/desktop/tags/drive/nav-folder.tag b/src/web/app/desktop/tags/drive/nav-folder.tag index f16cf2181b..9c943f26e6 100644 --- a/src/web/app/desktop/tags/drive/nav-folder.tag +++ b/src/web/app/desktop/tags/drive/nav-folder.tag @@ -1,5 +1,5 @@ <mk-drive-browser-nav-folder data-draghover={ draghover } @click="onclick" ondragover={ ondragover } ondragenter={ ondragenter } ondragleave={ ondragleave } ondrop={ ondrop }> - <virtual if={ folder == null }>%fa:cloud%</virtual><span>{ folder == null ? '%i18n:desktop.tags.mk-drive-browser-nav-folder.drive%' : folder.name }</span> + <virtual v-if="folder == null">%fa:cloud%</virtual><span>{ folder == null ? '%i18n:desktop.tags.mk-drive-browser-nav-folder.drive%' : folder.name }</span> <style lang="stylus" scoped> :scope &[data-draghover] diff --git a/src/web/app/desktop/tags/follow-button.tag b/src/web/app/desktop/tags/follow-button.tag index 5e482509a3..aa7e34321e 100644 --- a/src/web/app/desktop/tags/follow-button.tag +++ b/src/web/app/desktop/tags/follow-button.tag @@ -1,10 +1,10 @@ <mk-follow-button> - <button class={ wait: wait, follow: !user.is_following, unfollow: user.is_following } if={ !init } @click="onclick" disabled={ wait } title={ user.is_following ? 'フォロー解除' : 'フォローする' }> - <virtual if={ !wait && user.is_following }>%fa:minus%</virtual> - <virtual if={ !wait && !user.is_following }>%fa:plus%</virtual> - <virtual if={ wait }>%fa:spinner .pulse .fw%</virtual> + <button class={ wait: wait, follow: !user.is_following, unfollow: user.is_following } v-if="!init" @click="onclick" disabled={ wait } title={ user.is_following ? 'フォロー解除' : 'フォローする' }> + <virtual v-if="!wait && user.is_following">%fa:minus%</virtual> + <virtual v-if="!wait && !user.is_following">%fa:plus%</virtual> + <virtual v-if="wait">%fa:spinner .pulse .fw%</virtual> </button> - <div class="init" if={ init }>%fa:spinner .pulse .fw%</div> + <div class="init" v-if="init">%fa:spinner .pulse .fw%</div> <style lang="stylus" scoped> :scope display block diff --git a/src/web/app/desktop/tags/following-setuper.tag b/src/web/app/desktop/tags/following-setuper.tag index 9453b5bf56..8aeb8a3f09 100644 --- a/src/web/app/desktop/tags/following-setuper.tag +++ b/src/web/app/desktop/tags/following-setuper.tag @@ -1,6 +1,6 @@ <mk-following-setuper> <p class="title">気になるユーザーをフォロー:</p> - <div class="users" if={ !fetching && users.length > 0 }> + <div class="users" v-if="!fetching && users.length > 0"> <div class="user" each={ users }><a class="avatar-anchor" href={ '/' + username }><img class="avatar" src={ avatar_url + '?thumbnail&size=42' } alt="" data-user-preview={ id }/></a> <div class="body"><a class="name" href={ '/' + username } target="_blank" data-user-preview={ id }>{ name }</a> <p class="username">@{ username }</p> @@ -8,8 +8,8 @@ <mk-follow-button user={ this }/> </div> </div> - <p class="empty" if={ !fetching && users.length == 0 }>おすすめのユーザーは見つかりませんでした。</p> - <p class="fetching" if={ fetching }>%fa:spinner .pulse .fw%読み込んでいます<mk-ellipsis/></p> + <p class="empty" v-if="!fetching && users.length == 0">おすすめのユーザーは見つかりませんでした。</p> + <p class="fetching" v-if="fetching">%fa:spinner .pulse .fw%読み込んでいます<mk-ellipsis/></p> <a class="refresh" @click="refresh">もっと見る</a> <button class="close" @click="close" title="閉じる">%fa:times%</button> <style lang="stylus" scoped> diff --git a/src/web/app/desktop/tags/home-widgets/access-log.tag b/src/web/app/desktop/tags/home-widgets/access-log.tag index 47a6fd350b..1e9ea0fdb5 100644 --- a/src/web/app/desktop/tags/home-widgets/access-log.tag +++ b/src/web/app/desktop/tags/home-widgets/access-log.tag @@ -1,5 +1,5 @@ <mk-access-log-home-widget> - <virtual if={ data.design == 0 }> + <virtual v-if="data.design == 0"> <p class="title">%fa:server%%i18n:desktop.tags.mk-access-log-home-widget.title%</p> </virtual> <div ref="log"> diff --git a/src/web/app/desktop/tags/home-widgets/broadcast.tag b/src/web/app/desktop/tags/home-widgets/broadcast.tag index a1bd2175d8..963b31237a 100644 --- a/src/web/app/desktop/tags/home-widgets/broadcast.tag +++ b/src/web/app/desktop/tags/home-widgets/broadcast.tag @@ -8,12 +8,12 @@ <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> - <p class="fetching" if={ fetching }>%i18n:desktop.tags.mk-broadcast-home-widget.fetching%<mk-ellipsis/></p> - <h1 if={ !fetching }>{ + <p class="fetching" v-if="fetching">%i18n:desktop.tags.mk-broadcast-home-widget.fetching%<mk-ellipsis/></p> + <h1 v-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 } @click="next">%i18n:desktop.tags.mk-broadcast-home-widget.next% >></a> + <p v-if="!fetching"><mk-raw v-if="broadcasts.length != 0" content={ broadcasts[i].text }/><virtual v-if="broadcasts.length == 0">%i18n:desktop.tags.mk-broadcast-home-widget.have-a-nice-day%</virtual></p> + <a v-if="broadcasts.length > 1" @click="next">%i18n:desktop.tags.mk-broadcast-home-widget.next% >></a> <style lang="stylus" scoped> :scope display block diff --git a/src/web/app/desktop/tags/home-widgets/channel.tag b/src/web/app/desktop/tags/home-widgets/channel.tag index 60227a629a..3fc1f1abfb 100644 --- a/src/web/app/desktop/tags/home-widgets/channel.tag +++ b/src/web/app/desktop/tags/home-widgets/channel.tag @@ -1,11 +1,11 @@ <mk-channel-home-widget> - <virtual if={ !data.compact }> + <virtual v-if="!data.compact"> <p class="title">%fa:tv%{ channel ? channel.title : '%i18n:desktop.tags.mk-channel-home-widget.title%' }</p> <button @click="settings" title="%i18n:desktop.tags.mk-channel-home-widget.settings%">%fa:cog%</button> </virtual> - <p class="get-started" if={ this.data.channel == null }>%i18n:desktop.tags.mk-channel-home-widget.get-started%</p> + <p class="get-started" v-if="this.data.channel == null">%i18n:desktop.tags.mk-channel-home-widget.get-started%</p> <mk-channel ref="channel" show={ this.data.channel }/> <style lang="stylus" scoped> :scope @@ -104,9 +104,9 @@ </mk-channel-home-widget> <mk-channel> - <p if={ fetching }>読み込み中<mk-ellipsis/></p> - <div if={ !fetching } ref="posts"> - <p if={ posts.length == 0 }>まだ投稿がありません</p> + <p v-if="fetching">読み込み中<mk-ellipsis/></p> + <div v-if="!fetching" ref="posts"> + <p v-if="posts.length == 0">まだ投稿がありません</p> <mk-channel-post each={ post in posts.slice().reverse() } post={ post } form={ parent.refs.form }/> </div> <mk-channel-form ref="form"/> @@ -197,9 +197,9 @@ <span>ID:<i>{ post.user.username }</i></span> </header> <div> - <a if={ post.reply }>>>{ post.reply.index }</a> + <a v-if="post.reply">>>{ post.reply.index }</a> { post.text } - <div class="media" if={ post.media }> + <div class="media" v-if="post.media"> <virtual each={ file in post.media }> <a href={ file.url } target="_blank"> <img src={ file.url + '?thumbnail&size=512' } alt={ file.name } title={ file.name }/> diff --git a/src/web/app/desktop/tags/home-widgets/mentions.tag b/src/web/app/desktop/tags/home-widgets/mentions.tag index 519e124aee..d4569216c6 100644 --- a/src/web/app/desktop/tags/home-widgets/mentions.tag +++ b/src/web/app/desktop/tags/home-widgets/mentions.tag @@ -1,13 +1,13 @@ <mk-mentions-home-widget> <header><span data-is-active={ mode == 'all' } @click="setMode.bind(this, 'all')">すべて</span><span data-is-active={ mode == 'following' } @click="setMode.bind(this, 'following')">フォロー中</span></header> - <div class="loading" if={ isLoading }> + <div class="loading" v-if="isLoading"> <mk-ellipsis-icon/> </div> - <p class="empty" if={ isEmpty }>%fa:R comments%<span if={ mode == 'all' }>あなた宛ての投稿はありません。</span><span if={ mode == 'following' }>あなたがフォローしているユーザーからの言及はありません。</span></p> + <p class="empty" v-if="isEmpty">%fa:R comments%<span v-if="mode == 'all'">あなた宛ての投稿はありません。</span><span v-if="mode == 'following'">あなたがフォローしているユーザーからの言及はありません。</span></p> <mk-timeline ref="timeline"> <yield to="footer"> - <virtual if={ !parent.moreLoading }>%fa:moon%</virtual> - <virtual if={ parent.moreLoading }>%fa:spinner .pulse .fw%</virtual> + <virtual v-if="!parent.moreLoading">%fa:moon%</virtual> + <virtual v-if="parent.moreLoading">%fa:spinner .pulse .fw%</virtual> </yield/> </mk-timeline> <style lang="stylus" scoped> diff --git a/src/web/app/desktop/tags/home-widgets/messaging.tag b/src/web/app/desktop/tags/home-widgets/messaging.tag index 53f4e2f062..b5edd36fd2 100644 --- a/src/web/app/desktop/tags/home-widgets/messaging.tag +++ b/src/web/app/desktop/tags/home-widgets/messaging.tag @@ -1,5 +1,5 @@ <mk-messaging-home-widget> - <virtual if={ data.design == 0 }> + <virtual v-if="data.design == 0"> <p class="title">%fa:comments%%i18n:desktop.tags.mk-messaging-home-widget.title%</p> </virtual> <mk-messaging ref="index" compact={ true }/> diff --git a/src/web/app/desktop/tags/home-widgets/notifications.tag b/src/web/app/desktop/tags/home-widgets/notifications.tag index 31ef6f608e..4a6d7b4170 100644 --- a/src/web/app/desktop/tags/home-widgets/notifications.tag +++ b/src/web/app/desktop/tags/home-widgets/notifications.tag @@ -1,5 +1,5 @@ <mk-notifications-home-widget> - <virtual if={ !data.compact }> + <virtual v-if="!data.compact"> <p class="title">%fa:R bell%%i18n:desktop.tags.mk-notifications-home-widget.title%</p> <button @click="settings" title="%i18n:desktop.tags.mk-notifications-home-widget.settings%">%fa:cog%</button> </virtual> diff --git a/src/web/app/desktop/tags/home-widgets/photo-stream.tag b/src/web/app/desktop/tags/home-widgets/photo-stream.tag index 80f0573fb3..6040e46119 100644 --- a/src/web/app/desktop/tags/home-widgets/photo-stream.tag +++ b/src/web/app/desktop/tags/home-widgets/photo-stream.tag @@ -1,14 +1,14 @@ <mk-photo-stream-home-widget data-melt={ data.design == 2 }> - <virtual if={ data.design == 0 }> + <virtual v-if="data.design == 0"> <p class="title">%fa:camera%%i18n:desktop.tags.mk-photo-stream-home-widget.title%</p> </virtual> - <p class="initializing" if={ initializing }>%fa:spinner .pulse .fw%%i18n:common.loading%<mk-ellipsis/></p> - <div class="stream" if={ !initializing && images.length > 0 }> + <p class="initializing" v-if="initializing">%fa:spinner .pulse .fw%%i18n:common.loading%<mk-ellipsis/></p> + <div class="stream" v-if="!initializing && images.length > 0"> <virtual each={ image in images }> <div class="img" style={ 'background-image: url(' + image.url + '?thumbnail&size=256)' }></div> </virtual> </div> - <p class="empty" if={ !initializing && images.length == 0 }>%i18n:desktop.tags.mk-photo-stream-home-widget.no-photos%</p> + <p class="empty" v-if="!initializing && images.length == 0">%i18n:desktop.tags.mk-photo-stream-home-widget.no-photos%</p> <style lang="stylus" scoped> :scope display block diff --git a/src/web/app/desktop/tags/home-widgets/post-form.tag b/src/web/app/desktop/tags/home-widgets/post-form.tag index b20a1c3616..a3dc3dd6e5 100644 --- a/src/web/app/desktop/tags/home-widgets/post-form.tag +++ b/src/web/app/desktop/tags/home-widgets/post-form.tag @@ -1,7 +1,7 @@ <mk-post-form-home-widget> - <mk-post-form if={ place == 'main' }/> - <virtual if={ place != 'main' }> - <virtual if={ data.design == 0 }> + <mk-post-form v-if="place == 'main'"/> + <virtual v-if="place != 'main'"> + <virtual v-if="data.design == 0"> <p class="title">%fa:pencil-alt%%i18n:desktop.tags.mk-post-form-home-widget.title%</p> </virtual> <textarea disabled={ posting } ref="text" onkeydown={ onkeydown } placeholder="%i18n:desktop.tags.mk-post-form-home-widget.placeholder%"></textarea> diff --git a/src/web/app/desktop/tags/home-widgets/recommended-polls.tag b/src/web/app/desktop/tags/home-widgets/recommended-polls.tag index 3abb35fac3..cf76ea9c14 100644 --- a/src/web/app/desktop/tags/home-widgets/recommended-polls.tag +++ b/src/web/app/desktop/tags/home-widgets/recommended-polls.tag @@ -1,15 +1,15 @@ <mk-recommended-polls-home-widget> - <virtual if={ !data.compact }> + <virtual v-if="!data.compact"> <p class="title">%fa:chart-pie%%i18n:desktop.tags.mk-recommended-polls-home-widget.title%</p> <button @click="fetch" title="%i18n:desktop.tags.mk-recommended-polls-home-widget.refresh%">%fa:sync%</button> </virtual> - <div class="poll" if={ !loading && poll != null }> - <p if={ poll.text }><a href="/{ poll.user.username }/{ poll.id }">{ poll.text }</a></p> - <p if={ !poll.text }><a href="/{ poll.user.username }/{ poll.id }">%fa:link%</a></p> + <div class="poll" v-if="!loading && poll != null"> + <p v-if="poll.text"><a href="/{ poll.user.username }/{ poll.id }">{ poll.text }</a></p> + <p v-if="!poll.text"><a href="/{ poll.user.username }/{ poll.id }">%fa:link%</a></p> <mk-poll post={ poll }/> </div> - <p class="empty" if={ !loading && poll == null }>%i18n:desktop.tags.mk-recommended-polls-home-widget.nothing%</p> - <p class="loading" if={ loading }>%fa:spinner .pulse .fw%%i18n:common.loading%<mk-ellipsis/></p> + <p class="empty" v-if="!loading && poll == null">%i18n:desktop.tags.mk-recommended-polls-home-widget.nothing%</p> + <p class="loading" v-if="loading">%fa:spinner .pulse .fw%%i18n:common.loading%<mk-ellipsis/></p> <style lang="stylus" scoped> :scope display block diff --git a/src/web/app/desktop/tags/home-widgets/rss-reader.tag b/src/web/app/desktop/tags/home-widgets/rss-reader.tag index 524d0c1108..916281def2 100644 --- a/src/web/app/desktop/tags/home-widgets/rss-reader.tag +++ b/src/web/app/desktop/tags/home-widgets/rss-reader.tag @@ -1,12 +1,12 @@ <mk-rss-reader-home-widget> - <virtual if={ !data.compact }> + <virtual v-if="!data.compact"> <p class="title">%fa:rss-square%RSS</p> <button @click="settings" title="設定">%fa:cog%</button> </virtual> - <div class="feed" if={ !initializing }> + <div class="feed" v-if="!initializing"> <virtual each={ item in items }><a href={ item.link } target="_blank">{ item.title }</a></virtual> </div> - <p class="initializing" if={ initializing }>%fa:spinner .pulse .fw%%i18n:common.loading%<mk-ellipsis/></p> + <p class="initializing" v-if="initializing">%fa:spinner .pulse .fw%%i18n:common.loading%<mk-ellipsis/></p> <style lang="stylus" scoped> :scope display block diff --git a/src/web/app/desktop/tags/home-widgets/server.tag b/src/web/app/desktop/tags/home-widgets/server.tag index f716c9dfeb..cae2306a5f 100644 --- a/src/web/app/desktop/tags/home-widgets/server.tag +++ b/src/web/app/desktop/tags/home-widgets/server.tag @@ -1,15 +1,15 @@ <mk-server-home-widget data-melt={ data.design == 2 }> - <virtual if={ data.design == 0 }> + <virtual v-if="data.design == 0"> <p class="title">%fa:server%%i18n:desktop.tags.mk-server-home-widget.title%</p> <button @click="toggle" title="%i18n:desktop.tags.mk-server-home-widget.toggle%">%fa:sort%</button> </virtual> - <p class="initializing" if={ initializing }>%fa:spinner .pulse .fw%%i18n:common.loading%<mk-ellipsis/></p> - <mk-server-home-widget-cpu-and-memory-usage if={ !initializing } show={ data.view == 0 } connection={ connection }/> - <mk-server-home-widget-cpu if={ !initializing } show={ data.view == 1 } connection={ connection } meta={ meta }/> - <mk-server-home-widget-memory if={ !initializing } show={ data.view == 2 } connection={ connection }/> - <mk-server-home-widget-disk if={ !initializing } show={ data.view == 3 } connection={ connection }/> - <mk-server-home-widget-uptimes if={ !initializing } show={ data.view == 4 } connection={ connection }/> - <mk-server-home-widget-info if={ !initializing } show={ data.view == 5 } connection={ connection } meta={ meta }/> + <p class="initializing" v-if="initializing">%fa:spinner .pulse .fw%%i18n:common.loading%<mk-ellipsis/></p> + <mk-server-home-widget-cpu-and-memory-usage v-if="!initializing" show={ data.view == 0 } connection={ connection }/> + <mk-server-home-widget-cpu v-if="!initializing" show={ data.view == 1 } connection={ connection } meta={ meta }/> + <mk-server-home-widget-memory v-if="!initializing" show={ data.view == 2 } connection={ connection }/> + <mk-server-home-widget-disk v-if="!initializing" show={ data.view == 3 } connection={ connection }/> + <mk-server-home-widget-uptimes v-if="!initializing" show={ data.view == 4 } connection={ connection }/> + <mk-server-home-widget-info v-if="!initializing" show={ data.view == 5 } connection={ connection } meta={ meta }/> <style lang="stylus" scoped> :scope display block diff --git a/src/web/app/desktop/tags/home-widgets/slideshow.tag b/src/web/app/desktop/tags/home-widgets/slideshow.tag index c356f5cbd8..ab78ca2c67 100644 --- a/src/web/app/desktop/tags/home-widgets/slideshow.tag +++ b/src/web/app/desktop/tags/home-widgets/slideshow.tag @@ -1,7 +1,7 @@ <mk-slideshow-home-widget> <div @click="choose"> - <p if={ data.folder === undefined }>クリックしてフォルダを指定してください</p> - <p if={ data.folder !== undefined && images.length == 0 && !fetching }>このフォルダには画像がありません</p> + <p v-if="data.folder === undefined">クリックしてフォルダを指定してください</p> + <p v-if="data.folder !== undefined && images.length == 0 && !fetching">このフォルダには画像がありません</p> <div ref="slideA" class="slide a"></div> <div ref="slideB" class="slide b"></div> </div> diff --git a/src/web/app/desktop/tags/home-widgets/timeline.tag b/src/web/app/desktop/tags/home-widgets/timeline.tag index 4d3d830cec..2bbee14fab 100644 --- a/src/web/app/desktop/tags/home-widgets/timeline.tag +++ b/src/web/app/desktop/tags/home-widgets/timeline.tag @@ -1,13 +1,13 @@ <mk-timeline-home-widget> - <mk-following-setuper if={ noFollowing }/> - <div class="loading" if={ isLoading }> + <mk-following-setuper v-if="noFollowing"/> + <div class="loading" v-if="isLoading"> <mk-ellipsis-icon/> </div> - <p class="empty" if={ isEmpty && !isLoading }>%fa:R comments%自分の投稿や、自分がフォローしているユーザーの投稿が表示されます。</p> + <p class="empty" v-if="isEmpty && !isLoading">%fa:R comments%自分の投稿や、自分がフォローしているユーザーの投稿が表示されます。</p> <mk-timeline ref="timeline" hide={ isLoading }> <yield to="footer"> - <virtual if={ !parent.moreLoading }>%fa:moon%</virtual> - <virtual if={ parent.moreLoading }>%fa:spinner .pulse .fw%</virtual> + <virtual v-if="!parent.moreLoading">%fa:moon%</virtual> + <virtual v-if="parent.moreLoading">%fa:spinner .pulse .fw%</virtual> </yield/> </mk-timeline> <style lang="stylus" scoped> diff --git a/src/web/app/desktop/tags/home-widgets/trends.tag b/src/web/app/desktop/tags/home-widgets/trends.tag index 0d8454da6d..db2ed95100 100644 --- a/src/web/app/desktop/tags/home-widgets/trends.tag +++ b/src/web/app/desktop/tags/home-widgets/trends.tag @@ -1,14 +1,14 @@ <mk-trends-home-widget> - <virtual if={ !data.compact }> + <virtual v-if="!data.compact"> <p class="title">%fa:fire%%i18n:desktop.tags.mk-trends-home-widget.title%</p> <button @click="fetch" title="%i18n:desktop.tags.mk-trends-home-widget.refresh%">%fa:sync%</button> </virtual> - <div class="post" if={ !loading && post != null }> + <div class="post" v-if="!loading && post != null"> <p class="text"><a href="/{ post.user.username }/{ post.id }">{ post.text }</a></p> <p class="author">―<a href="/{ post.user.username }">@{ post.user.username }</a></p> </div> - <p class="empty" if={ !loading && post == null }>%i18n:desktop.tags.mk-trends-home-widget.nothing%</p> - <p class="loading" if={ loading }>%fa:spinner .pulse .fw%%i18n:common.loading%<mk-ellipsis/></p> + <p class="empty" v-if="!loading && post == null">%i18n:desktop.tags.mk-trends-home-widget.nothing%</p> + <p class="loading" v-if="loading">%fa:spinner .pulse .fw%%i18n:common.loading%<mk-ellipsis/></p> <style lang="stylus" scoped> :scope display block diff --git a/src/web/app/desktop/tags/home-widgets/user-recommendation.tag b/src/web/app/desktop/tags/home-widgets/user-recommendation.tag index 763d394490..25a60b95ae 100644 --- a/src/web/app/desktop/tags/home-widgets/user-recommendation.tag +++ b/src/web/app/desktop/tags/home-widgets/user-recommendation.tag @@ -1,9 +1,9 @@ <mk-user-recommendation-home-widget> - <virtual if={ !data.compact }> + <virtual v-if="!data.compact"> <p class="title">%fa:users%%i18n:desktop.tags.mk-user-recommendation-home-widget.title%</p> <button @click="refresh" title="%i18n:desktop.tags.mk-user-recommendation-home-widget.refresh%">%fa:sync%</button> </virtual> - <div class="user" if={ !loading && users.length != 0 } each={ _user in users }> + <div class="user" v-if="!loading && users.length != 0" each={ _user in users }> <a class="avatar-anchor" href={ '/' + _user.username }> <img class="avatar" src={ _user.avatar_url + '?thumbnail&size=42' } alt="" data-user-preview={ _user.id }/> </a> @@ -13,8 +13,8 @@ </div> <mk-follow-button user={ _user }/> </div> - <p class="empty" if={ !loading && users.length == 0 }>%i18n:desktop.tags.mk-user-recommendation-home-widget.no-one%</p> - <p class="loading" if={ loading }>%fa:spinner .pulse .fw%%i18n:common.loading%<mk-ellipsis/></p> + <p class="empty" v-if="!loading && users.length == 0">%i18n:desktop.tags.mk-user-recommendation-home-widget.no-one%</p> + <p class="loading" v-if="loading">%fa:spinner .pulse .fw%%i18n:common.loading%<mk-ellipsis/></p> <style lang="stylus" scoped> :scope display block diff --git a/src/web/app/desktop/tags/home.tag b/src/web/app/desktop/tags/home.tag index e54acd18e6..f727c3e808 100644 --- a/src/web/app/desktop/tags/home.tag +++ b/src/web/app/desktop/tags/home.tag @@ -1,5 +1,5 @@ <mk-home data-customize={ opts.customize }> - <div class="customize" if={ opts.customize }> + <div class="customize" v-if="opts.customize"> <a href="/">%fa:check%完了</a> <div> <div class="adder"> @@ -40,9 +40,9 @@ <div ref="left" data-place="left"></div> </div> <main ref="main"> - <div class="maintop" ref="maintop" data-place="main" if={ opts.customize }></div> - <mk-timeline-home-widget ref="tl" if={ mode == 'timeline' }/> - <mk-mentions-home-widget ref="tl" if={ mode == 'mentions' }/> + <div class="maintop" ref="maintop" data-place="main" v-if="opts.customize"></div> + <mk-timeline-home-widget ref="tl" v-if="mode == 'timeline'"/> + <mk-mentions-home-widget ref="tl" v-if="mode == 'mentions'"/> </main> <div class="right"> <div ref="right" data-place="right"></div> diff --git a/src/web/app/desktop/tags/list-user.tag b/src/web/app/desktop/tags/list-user.tag index c0e1051d14..45c4deb535 100644 --- a/src/web/app/desktop/tags/list-user.tag +++ b/src/web/app/desktop/tags/list-user.tag @@ -8,7 +8,7 @@ <span class="username">@{ user.username }</span> </header> <div class="body"> - <p class="followed" if={ user.is_followed }>フォローされています</p> + <p class="followed" v-if="user.is_followed">フォローされています</p> <div class="description">{ user.description }</div> </div> </div> diff --git a/src/web/app/desktop/tags/notifications.tag b/src/web/app/desktop/tags/notifications.tag index 99024473f7..6a16db1357 100644 --- a/src/web/app/desktop/tags/notifications.tag +++ b/src/web/app/desktop/tags/notifications.tag @@ -1,9 +1,9 @@ <mk-notifications> - <div class="notifications" if={ notifications.length != 0 }> + <div class="notifications" v-if="notifications.length != 0"> <virtual each={ notification, i in notifications }> <div class="notification { notification.type }"> <mk-time time={ notification.created_at }/> - <virtual if={ notification.type == 'reaction' }> + <virtual v-if="notification.type == 'reaction'"> <a class="avatar-anchor" href={ '/' + notification.user.username } data-user-preview={ notification.user.id }> <img class="avatar" src={ notification.user.avatar_url + '?thumbnail&size=48' } alt="avatar"/> </a> @@ -14,7 +14,7 @@ </a> </div> </virtual> - <virtual if={ notification.type == 'repost' }> + <virtual v-if="notification.type == 'repost'"> <a class="avatar-anchor" href={ '/' + notification.post.user.username } data-user-preview={ notification.post.user_id }> <img class="avatar" src={ notification.post.user.avatar_url + '?thumbnail&size=48' } alt="avatar"/> </a> @@ -25,7 +25,7 @@ </a> </div> </virtual> - <virtual if={ notification.type == 'quote' }> + <virtual v-if="notification.type == 'quote'"> <a class="avatar-anchor" href={ '/' + notification.post.user.username } data-user-preview={ notification.post.user_id }> <img class="avatar" src={ notification.post.user.avatar_url + '?thumbnail&size=48' } alt="avatar"/> </a> @@ -34,7 +34,7 @@ <a class="post-preview" href={ '/' + notification.post.user.username + '/' + notification.post.id }>{ getPostSummary(notification.post) }</a> </div> </virtual> - <virtual if={ notification.type == 'follow' }> + <virtual v-if="notification.type == 'follow'"> <a class="avatar-anchor" href={ '/' + notification.user.username } data-user-preview={ notification.user.id }> <img class="avatar" src={ notification.user.avatar_url + '?thumbnail&size=48' } alt="avatar"/> </a> @@ -42,7 +42,7 @@ <p>%fa:user-plus%<a href={ '/' + notification.user.username } data-user-preview={ notification.user.id }>{ notification.user.name }</a></p> </div> </virtual> - <virtual if={ notification.type == 'reply' }> + <virtual v-if="notification.type == 'reply'"> <a class="avatar-anchor" href={ '/' + notification.post.user.username } data-user-preview={ notification.post.user_id }> <img class="avatar" src={ notification.post.user.avatar_url + '?thumbnail&size=48' } alt="avatar"/> </a> @@ -51,7 +51,7 @@ <a class="post-preview" href={ '/' + notification.post.user.username + '/' + notification.post.id }>{ getPostSummary(notification.post) }</a> </div> </virtual> - <virtual if={ notification.type == 'mention' }> + <virtual v-if="notification.type == 'mention'"> <a class="avatar-anchor" href={ '/' + notification.post.user.username } data-user-preview={ notification.post.user_id }> <img class="avatar" src={ notification.post.user.avatar_url + '?thumbnail&size=48' } alt="avatar"/> </a> @@ -60,7 +60,7 @@ <a class="post-preview" href={ '/' + notification.post.user.username + '/' + notification.post.id }>{ getPostSummary(notification.post) }</a> </div> </virtual> - <virtual if={ notification.type == 'poll_vote' }> + <virtual v-if="notification.type == 'poll_vote'"> <a class="avatar-anchor" href={ '/' + notification.user.username } data-user-preview={ notification.user.id }> <img class="avatar" src={ notification.user.avatar_url + '?thumbnail&size=48' } alt="avatar"/> </a> @@ -72,17 +72,17 @@ </div> </virtual> </div> - <p class="date" if={ i != notifications.length - 1 && notification._date != notifications[i + 1]._date }> + <p class="date" v-if="i != notifications.length - 1 && notification._date != notifications[i + 1]._date"> <span>%fa:angle-up%{ notification._datetext }</span> <span>%fa:angle-down%{ notifications[i + 1]._datetext }</span> </p> </virtual> </div> - <button class="more { fetching: fetchingMoreNotifications }" if={ moreNotifications } @click="fetchMoreNotifications" disabled={ fetchingMoreNotifications }> - <virtual if={ fetchingMoreNotifications }>%fa:spinner .pulse .fw%</virtual>{ fetchingMoreNotifications ? '%i18n:common.loading%' : '%i18n:desktop.tags.mk-notifications.more%' } + <button class="more { fetching: fetchingMoreNotifications }" v-if="moreNotifications" @click="fetchMoreNotifications" disabled={ fetchingMoreNotifications }> + <virtual v-if="fetchingMoreNotifications">%fa:spinner .pulse .fw%</virtual>{ fetchingMoreNotifications ? '%i18n:common.loading%' : '%i18n:desktop.tags.mk-notifications.more%' } </button> - <p class="empty" if={ notifications.length == 0 && !loading }>ありません!</p> - <p class="loading" if={ loading }>%fa:spinner .pulse .fw%%i18n:common.loading%<mk-ellipsis/></p> + <p class="empty" v-if="notifications.length == 0 && !loading">ありません!</p> + <p class="loading" v-if="loading">%fa:spinner .pulse .fw%%i18n:common.loading%<mk-ellipsis/></p> <style lang="stylus" scoped> :scope display block diff --git a/src/web/app/desktop/tags/pages/entrance.tag b/src/web/app/desktop/tags/pages/entrance.tag index 9b8b4eca6b..c516bdb382 100644 --- a/src/web/app/desktop/tags/pages/entrance.tag +++ b/src/web/app/desktop/tags/pages/entrance.tag @@ -3,12 +3,12 @@ <div> <h1>どこにいても、ここにあります</h1> <p>ようこそ! MisskeyはTwitter風ミニブログSNSです――思ったこと、共有したいことをシンプルに書き残せます。タイムラインを見れば、皆の反応や皆がどう思っているのかもすぐにわかります。</p> - <p if={ stats }>これまでに{ stats.posts_count }投稿されました</p> + <p v-if="stats">これまでに{ stats.posts_count }投稿されました</p> </div> <div> - <mk-entrance-signin if={ mode == 'signin' }/> - <mk-entrance-signup if={ mode == 'signup' }/> - <div class="introduction" if={ mode == 'introduction' }> + <mk-entrance-signin v-if="mode == 'signin'"/> + <mk-entrance-signup v-if="mode == 'signup'"/> + <div class="introduction" v-if="mode == 'introduction'"> <mk-introduction/> <button @click="signin">わかった</button> </div> @@ -152,7 +152,7 @@ <mk-entrance-signin> <a class="help" href={ _DOCS_URL_ + '/help' } title="お困りですか?">%fa:question%</a> <div class="form"> - <h1><img if={ user } src={ user.avatar_url + '?thumbnail&size=32' }/> + <h1><img v-if="user" src={ user.avatar_url + '?thumbnail&size=32' }/> <p>{ user ? user.name : 'アカウント' }</p> </h1> <mk-signin ref="signin"/> diff --git a/src/web/app/desktop/tags/pages/messaging-room.tag b/src/web/app/desktop/tags/pages/messaging-room.tag index 48096ec803..54bd38e57b 100644 --- a/src/web/app/desktop/tags/pages/messaging-room.tag +++ b/src/web/app/desktop/tags/pages/messaging-room.tag @@ -1,5 +1,5 @@ <mk-messaging-room-page> - <mk-messaging-room if={ user } user={ user } is-naked={ true }/> + <mk-messaging-room v-if="user" user={ user } is-naked={ true }/> <style lang="stylus" scoped> :scope diff --git a/src/web/app/desktop/tags/pages/post.tag b/src/web/app/desktop/tags/pages/post.tag index 43f040ed20..b5cfea3add 100644 --- a/src/web/app/desktop/tags/pages/post.tag +++ b/src/web/app/desktop/tags/pages/post.tag @@ -1,9 +1,9 @@ <mk-post-page> <mk-ui ref="ui"> - <main if={ !parent.fetching }> - <a if={ parent.post.next } href={ parent.post.next }>%fa:angle-up%%i18n:desktop.tags.mk-post-page.next%</a> + <main v-if="!parent.fetching"> + <a v-if="parent.post.next" href={ parent.post.next }>%fa:angle-up%%i18n:desktop.tags.mk-post-page.next%</a> <mk-post-detail ref="detail" post={ parent.post }/> - <a if={ parent.post.prev } href={ parent.post.prev }>%fa:angle-down%%i18n:desktop.tags.mk-post-page.prev%</a> + <a v-if="parent.post.prev" href={ parent.post.prev }>%fa:angle-down%%i18n:desktop.tags.mk-post-page.prev%</a> </main> </mk-ui> <style lang="stylus" scoped> diff --git a/src/web/app/desktop/tags/post-detail-sub.tag b/src/web/app/desktop/tags/post-detail-sub.tag index 62f09d4e29..0b8d4d1d33 100644 --- a/src/web/app/desktop/tags/post-detail-sub.tag +++ b/src/web/app/desktop/tags/post-detail-sub.tag @@ -16,7 +16,7 @@ </header> <div class="body"> <div class="text" ref="text"></div> - <div class="media" if={ post.media }> + <div class="media" v-if="post.media"> <mk-images images={ post.media }/> </div> </div> diff --git a/src/web/app/desktop/tags/post-detail.tag b/src/web/app/desktop/tags/post-detail.tag index 4ba8275b2a..a4f88da7db 100644 --- a/src/web/app/desktop/tags/post-detail.tag +++ b/src/web/app/desktop/tags/post-detail.tag @@ -1,18 +1,18 @@ <mk-post-detail title={ title }> <div class="main"> - <button class="read-more" if={ p.reply && p.reply.reply_id && context == null } title="会話をもっと読み込む" @click="loadContext" disabled={ contextFetching }> - <virtual if={ !contextFetching }>%fa:ellipsis-v%</virtual> - <virtual if={ contextFetching }>%fa:spinner .pulse%</virtual> + <button class="read-more" v-if="p.reply && p.reply.reply_id && context == null" title="会話をもっと読み込む" @click="loadContext" disabled={ contextFetching }> + <virtual v-if="!contextFetching">%fa:ellipsis-v%</virtual> + <virtual v-if="contextFetching">%fa:spinner .pulse%</virtual> </button> <div class="context"> <virtual each={ post in context }> <mk-post-detail-sub post={ post }/> </virtual> </div> - <div class="reply-to" if={ p.reply }> + <div class="reply-to" v-if="p.reply"> <mk-post-detail-sub post={ p.reply }/> </div> - <div class="repost" if={ isRepost }> + <div class="repost" v-if="isRepost"> <p> <a class="avatar-anchor" href={ '/' + post.user.username } data-user-preview={ post.user_id }> <img class="avatar" src={ post.user.avatar_url + '?thumbnail&size=32' } alt="avatar"/> @@ -36,28 +36,28 @@ </header> <div class="body"> <div class="text" ref="text"></div> - <div class="media" if={ p.media }> + <div class="media" v-if="p.media"> <mk-images images={ p.media }/> </div> - <mk-poll if={ p.poll } post={ p }/> + <mk-poll v-if="p.poll" post={ p }/> </div> <footer> <mk-reactions-viewer post={ p }/> <button @click="reply" title="返信"> - %fa:reply%<p class="count" if={ p.replies_count > 0 }>{ p.replies_count }</p> + %fa:reply%<p class="count" v-if="p.replies_count > 0">{ p.replies_count }</p> </button> <button @click="repost" title="Repost"> - %fa:retweet%<p class="count" if={ p.repost_count > 0 }>{ p.repost_count }</p> + %fa:retweet%<p class="count" v-if="p.repost_count > 0">{ p.repost_count }</p> </button> <button class={ reacted: p.my_reaction != null } @click="react" ref="reactButton" title="リアクション"> - %fa:plus%<p class="count" if={ p.reactions_count > 0 }>{ p.reactions_count }</p> + %fa:plus%<p class="count" v-if="p.reactions_count > 0">{ p.reactions_count }</p> </button> <button @click="menu" ref="menuButton"> %fa:ellipsis-h% </button> </footer> </article> - <div class="replies" if={ !compact }> + <div class="replies" v-if="!compact"> <virtual each={ post in replies }> <mk-post-detail-sub post={ post }/> </virtual> diff --git a/src/web/app/desktop/tags/post-form-window.tag b/src/web/app/desktop/tags/post-form-window.tag index 184ff548ad..80b51df605 100644 --- a/src/web/app/desktop/tags/post-form-window.tag +++ b/src/web/app/desktop/tags/post-form-window.tag @@ -1,13 +1,13 @@ <mk-post-form-window> <mk-window ref="window" is-modal={ true }> <yield to="header"> - <span if={ !parent.opts.reply }>%i18n:desktop.tags.mk-post-form-window.post%</span> - <span if={ parent.opts.reply }>%i18n:desktop.tags.mk-post-form-window.reply%</span> - <span class="files" if={ parent.files.length != 0 }>{ '%i18n:desktop.tags.mk-post-form-window.attaches%'.replace('{}', parent.files.length) }</span> - <span class="uploading-files" if={ parent.uploadingFiles.length != 0 }>{ '%i18n:desktop.tags.mk-post-form-window.uploading-media%'.replace('{}', parent.uploadingFiles.length) }<mk-ellipsis/></span> + <span v-if="!parent.opts.reply">%i18n:desktop.tags.mk-post-form-window.post%</span> + <span v-if="parent.opts.reply">%i18n:desktop.tags.mk-post-form-window.reply%</span> + <span class="files" v-if="parent.files.length != 0">{ '%i18n:desktop.tags.mk-post-form-window.attaches%'.replace('{}', parent.files.length) }</span> + <span class="uploading-files" v-if="parent.uploadingFiles.length != 0">{ '%i18n:desktop.tags.mk-post-form-window.uploading-media%'.replace('{}', parent.uploadingFiles.length) }<mk-ellipsis/></span> </yield> <yield to="content"> - <div class="ref" if={ parent.opts.reply }> + <div class="ref" v-if="parent.opts.reply"> <mk-post-preview post={ parent.opts.reply }/> </div> <div class="body"> diff --git a/src/web/app/desktop/tags/post-form.tag b/src/web/app/desktop/tags/post-form.tag index d32a3b66f2..e4a9800cfe 100644 --- a/src/web/app/desktop/tags/post-form.tag +++ b/src/web/app/desktop/tags/post-form.tag @@ -10,7 +10,7 @@ </ul> <p class="remain">{ 4 - files.length }/4</p> </div> - <mk-poll-editor if={ poll } ref="poll" ondestroy={ onPollDestroyed }/> + <mk-poll-editor v-if="poll" ref="poll" ondestroy={ onPollDestroyed }/> </div> <mk-uploader ref="uploader"/> <button ref="upload" title="%i18n:desktop.tags.mk-post-form.attach-media-from-local%" @click="selectFile">%fa:upload%</button> @@ -19,10 +19,10 @@ <button class="poll" title="%i18n:desktop.tags.mk-post-form.create-poll%" @click="addPoll">%fa:chart-pie%</button> <p class="text-count { over: refs.text.value.length > 1000 }">{ '%i18n:desktop.tags.mk-post-form.text-remain%'.replace('{}', 1000 - refs.text.value.length) }</p> <button class={ wait: wait } ref="submit" disabled={ wait || (refs.text.value.length == 0 && files.length == 0 && !poll && !repost) } @click="post"> - { wait ? '%i18n:desktop.tags.mk-post-form.posting%' : submitText }<mk-ellipsis if={ wait }/> + { wait ? '%i18n:desktop.tags.mk-post-form.posting%' : submitText }<mk-ellipsis v-if="wait"/> </button> <input ref="file" type="file" accept="image/*" multiple="multiple" tabindex="-1" onchange={ changeFile }/> - <div class="dropzone" if={ draghover }></div> + <div class="dropzone" v-if="draghover"></div> <style lang="stylus" scoped> :scope display block diff --git a/src/web/app/desktop/tags/progress-dialog.tag b/src/web/app/desktop/tags/progress-dialog.tag index 9f7df312ef..2359802be2 100644 --- a/src/web/app/desktop/tags/progress-dialog.tag +++ b/src/web/app/desktop/tags/progress-dialog.tag @@ -3,10 +3,10 @@ <yield to="header">{ parent.title }<mk-ellipsis/></yield> <yield to="content"> <div class="body"> - <p class="init" if={ isNaN(parent.value) }>待機中<mk-ellipsis/></p> - <p class="percentage" if={ !isNaN(parent.value) }>{ Math.floor((parent.value / parent.max) * 100) }</p> - <progress if={ !isNaN(parent.value) && parent.value < parent.max } value={ isNaN(parent.value) ? 0 : parent.value } max={ parent.max }></progress> - <div class="progress waiting" if={ parent.value >= parent.max }></div> + <p class="init" v-if="isNaN(parent.value)">待機中<mk-ellipsis/></p> + <p class="percentage" v-if="!isNaN(parent.value)">{ Math.floor((parent.value / parent.max) * 100) }</p> + <progress v-if="!isNaN(parent.value) && parent.value < parent.max" value={ isNaN(parent.value) ? 0 : parent.value } max={ parent.max }></progress> + <div class="progress waiting" v-if="parent.value >= parent.max"></div> </div> </yield> </mk-window> diff --git a/src/web/app/desktop/tags/repost-form.tag b/src/web/app/desktop/tags/repost-form.tag index da8683ab6c..06ee32150d 100644 --- a/src/web/app/desktop/tags/repost-form.tag +++ b/src/web/app/desktop/tags/repost-form.tag @@ -1,13 +1,13 @@ <mk-repost-form> <mk-post-preview post={ opts.post }/> - <virtual if={ !quote }> + <virtual v-if="!quote"> <footer> - <a class="quote" if={ !quote } @click="onquote">%i18n:desktop.tags.mk-repost-form.quote%</a> + <a class="quote" v-if="!quote" @click="onquote">%i18n:desktop.tags.mk-repost-form.quote%</a> <button class="cancel" @click="cancel">%i18n:desktop.tags.mk-repost-form.cancel%</button> <button class="ok" @click="ok" disabled={ wait }>{ wait ? '%i18n:desktop.tags.mk-repost-form.reposting%' : '%i18n:desktop.tags.mk-repost-form.repost%' }</button> </footer> </virtual> - <virtual if={ quote }> + <virtual v-if="quote"> <mk-post-form ref="form" repost={ opts.post }/> </virtual> <style lang="stylus" scoped> diff --git a/src/web/app/desktop/tags/search-posts.tag b/src/web/app/desktop/tags/search-posts.tag index d263f95766..3343697cad 100644 --- a/src/web/app/desktop/tags/search-posts.tag +++ b/src/web/app/desktop/tags/search-posts.tag @@ -1,12 +1,12 @@ <mk-search-posts> - <div class="loading" if={ isLoading }> + <div class="loading" v-if="isLoading"> <mk-ellipsis-icon/> </div> - <p class="empty" if={ isEmpty }>%fa:search%「{ query }」に関する投稿は見つかりませんでした。</p> + <p class="empty" v-if="isEmpty">%fa:search%「{ query }」に関する投稿は見つかりませんでした。</p> <mk-timeline ref="timeline"> <yield to="footer"> - <virtual if={ !parent.moreLoading }>%fa:moon%</virtual> - <virtual if={ parent.moreLoading }>%fa:spinner .pulse .fw%</virtual> + <virtual v-if="!parent.moreLoading">%fa:moon%</virtual> + <virtual v-if="parent.moreLoading">%fa:spinner .pulse .fw%</virtual> </yield/> </mk-timeline> <style lang="stylus" scoped> diff --git a/src/web/app/desktop/tags/select-file-from-drive-window.tag b/src/web/app/desktop/tags/select-file-from-drive-window.tag index 8e9359b058..f776f0ecbb 100644 --- a/src/web/app/desktop/tags/select-file-from-drive-window.tag +++ b/src/web/app/desktop/tags/select-file-from-drive-window.tag @@ -2,7 +2,7 @@ <mk-window ref="window" is-modal={ true } width={ '800px' } height={ '500px' }> <yield to="header"> <mk-raw content={ parent.title }/> - <span class="count" if={ parent.multiple && parent.files.length > 0 }>({ parent.files.length }ファイル選択中)</span> + <span class="count" v-if="parent.multiple && parent.files.length > 0">({ parent.files.length }ファイル選択中)</span> </yield> <yield to="content"> <mk-drive-browser ref="browser" multiple={ parent.multiple }/> diff --git a/src/web/app/desktop/tags/settings.tag b/src/web/app/desktop/tags/settings.tag index 211e36741e..1e3097ba12 100644 --- a/src/web/app/desktop/tags/settings.tag +++ b/src/web/app/desktop/tags/settings.tag @@ -265,12 +265,12 @@ <mk-2fa-setting> <p>%i18n:desktop.tags.mk-2fa-setting.intro%<a href="%i18n:desktop.tags.mk-2fa-setting.url%" target="_blank">%i18n:desktop.tags.mk-2fa-setting.detail%</a></p> <div class="ui info warn"><p>%fa:exclamation-triangle%%i18n:desktop.tags.mk-2fa-setting.caution%</p></div> - <p if={ !data && !I.two_factor_enabled }><button @click="register" class="ui primary">%i18n:desktop.tags.mk-2fa-setting.register%</button></p> - <virtual if={ I.two_factor_enabled }> + <p v-if="!data && !I.two_factor_enabled"><button @click="register" class="ui primary">%i18n:desktop.tags.mk-2fa-setting.register%</button></p> + <virtual v-if="I.two_factor_enabled"> <p>%i18n:desktop.tags.mk-2fa-setting.already-registered%</p> <button @click="unregister" class="ui">%i18n:desktop.tags.mk-2fa-setting.unregister%</button> </virtual> - <div if={ data }> + <div v-if="data"> <ol> <li>%i18n:desktop.tags.mk-2fa-setting.authenticator% <a href="https://support.google.com/accounts/answer/1066447" target="_blank">%i18n:desktop.tags.mk-2fa-setting.howtoinstall%</a></li> <li>%i18n:desktop.tags.mk-2fa-setting.scan%<br><img src={ data.qr }></li> @@ -394,10 +394,10 @@ </mk-drive-setting> <mk-mute-setting> - <div class="none ui info" if={ !fetching && users.length == 0 }> + <div class="none ui info" v-if="!fetching && users.length == 0"> <p>%fa:info-circle%%i18n:desktop.tags.mk-mute-setting.no-users%</p> </div> - <div class="users" if={ users.length != 0 }> + <div class="users" v-if="users.length != 0"> <div each={ user in users }> <p><b>{ user.name }</b> @{ user.username }</p> </div> diff --git a/src/web/app/desktop/tags/sub-post-content.tag b/src/web/app/desktop/tags/sub-post-content.tag index a07180b675..184fc53eb5 100644 --- a/src/web/app/desktop/tags/sub-post-content.tag +++ b/src/web/app/desktop/tags/sub-post-content.tag @@ -1,16 +1,16 @@ <mk-sub-post-content> <div class="body"> - <a class="reply" if={ post.reply_id }> + <a class="reply" v-if="post.reply_id"> %fa:reply% </a> <span ref="text"></span> - <a class="quote" if={ post.repost_id } href={ '/post:' + post.repost_id }>RP: ...</a> + <a class="quote" v-if="post.repost_id" href={ '/post:' + post.repost_id }>RP: ...</a> </div> - <details if={ post.media }> + <details v-if="post.media"> <summary>({ post.media.length }つのメディア)</summary> <mk-images images={ post.media }/> </details> - <details if={ post.poll }> + <details v-if="post.poll"> <summary>投票</summary> <mk-poll post={ post }/> </details> diff --git a/src/web/app/desktop/tags/timeline.tag b/src/web/app/desktop/tags/timeline.tag index 008c690177..98970bfa12 100644 --- a/src/web/app/desktop/tags/timeline.tag +++ b/src/web/app/desktop/tags/timeline.tag @@ -1,7 +1,7 @@ <mk-timeline> <virtual each={ post, i in posts }> <mk-timeline-post post={ post }/> - <p class="date" if={ i != posts.length - 1 && post._date != posts[i + 1]._date }><span>%fa:angle-up%{ post._datetext }</span><span>%fa:angle-down%{ posts[i + 1]._datetext }</span></p> + <p class="date" v-if="i != posts.length - 1 && post._date != posts[i + 1]._date"><span>%fa:angle-up%{ post._datetext }</span><span>%fa:angle-down%{ posts[i + 1]._datetext }</span></p> </virtual> <footer data-yield="footer"> <yield from="footer"/> @@ -82,10 +82,10 @@ </mk-timeline> <mk-timeline-post tabindex="-1" title={ title } onkeydown={ onKeyDown } dblclick={ onDblClick }> - <div class="reply-to" if={ p.reply }> + <div class="reply-to" v-if="p.reply"> <mk-timeline-post-sub post={ p.reply }/> </div> - <div class="repost" if={ isRepost }> + <div class="repost" v-if="isRepost"> <p> <a class="avatar-anchor" href={ '/' + post.user.username } data-user-preview={ post.user_id }> <img class="avatar" src={ post.user.avatar_url + '?thumbnail&size=32' } alt="avatar"/> @@ -101,10 +101,10 @@ <div class="main"> <header> <a class="name" href={ '/' + p.user.username } data-user-preview={ p.user.id }>{ p.user.name }</a> - <span class="is-bot" if={ p.user.is_bot }>bot</span> + <span class="is-bot" v-if="p.user.is_bot">bot</span> <span class="username">@{ p.user.username }</span> <div class="info"> - <span class="app" if={ p.app }>via <b>{ p.app.name }</b></span> + <span class="app" v-if="p.app">via <b>{ p.app.name }</b></span> <a class="created-at" href={ url }> <mk-time time={ p.created_at }/> </a> @@ -112,43 +112,43 @@ </header> <div class="body"> <div class="text" ref="text"> - <p class="channel" if={ p.channel != null }><a href={ _CH_URL_ + '/' + p.channel.id } target="_blank">{ p.channel.title }</a>:</p> - <a class="reply" if={ p.reply }> + <p class="channel" v-if="p.channel != null"><a href={ _CH_URL_ + '/' + p.channel.id } target="_blank">{ p.channel.title }</a>:</p> + <a class="reply" v-if="p.reply"> %fa:reply% </a> <p class="dummy"></p> - <a class="quote" if={ p.repost != null }>RP:</a> + <a class="quote" v-if="p.repost != null">RP:</a> </div> - <div class="media" if={ p.media }> + <div class="media" v-if="p.media"> <mk-images images={ p.media }/> </div> - <mk-poll if={ p.poll } post={ p } ref="pollViewer"/> - <div class="repost" if={ p.repost }>%fa:quote-right -flip-h% + <mk-poll v-if="p.poll" post={ p } ref="pollViewer"/> + <div class="repost" v-if="p.repost">%fa:quote-right -flip-h% <mk-post-preview class="repost" post={ p.repost }/> </div> </div> <footer> <mk-reactions-viewer post={ p } ref="reactionsViewer"/> <button @click="reply" title="%i18n:desktop.tags.mk-timeline-post.reply%"> - %fa:reply%<p class="count" if={ p.replies_count > 0 }>{ p.replies_count }</p> + %fa:reply%<p class="count" v-if="p.replies_count > 0">{ p.replies_count }</p> </button> <button @click="repost" title="%i18n:desktop.tags.mk-timeline-post.repost%"> - %fa:retweet%<p class="count" if={ p.repost_count > 0 }>{ p.repost_count }</p> + %fa:retweet%<p class="count" v-if="p.repost_count > 0">{ p.repost_count }</p> </button> <button class={ reacted: p.my_reaction != null } @click="react" ref="reactButton" title="%i18n:desktop.tags.mk-timeline-post.add-reaction%"> - %fa:plus%<p class="count" if={ p.reactions_count > 0 }>{ p.reactions_count }</p> + %fa:plus%<p class="count" v-if="p.reactions_count > 0">{ p.reactions_count }</p> </button> <button @click="menu" ref="menuButton"> %fa:ellipsis-h% </button> <button @click="toggleDetail" title="%i18n:desktop.tags.mk-timeline-post.detail"> - <virtual if={ !isDetailOpened }>%fa:caret-down%</virtual> - <virtual if={ isDetailOpened }>%fa:caret-up%</virtual> + <virtual v-if="!isDetailOpened">%fa:caret-down%</virtual> + <virtual v-if="isDetailOpened">%fa:caret-up%</virtual> </button> </footer> </div> </article> - <div class="detail" if={ isDetailOpened }> + <div class="detail" v-if="isDetailOpened"> <mk-post-status-graph width="462" height="130" post={ p }/> </div> <style lang="stylus" scoped> diff --git a/src/web/app/desktop/tags/ui.tag b/src/web/app/desktop/tags/ui.tag index cae30dbe2a..a8ddcaf93d 100644 --- a/src/web/app/desktop/tags/ui.tag +++ b/src/web/app/desktop/tags/ui.tag @@ -1,11 +1,11 @@ <mk-ui> <mk-ui-header page={ opts.page }/> - <mk-set-avatar-suggestion if={ SIGNIN && I.avatar_id == null }/> - <mk-set-banner-suggestion if={ SIGNIN && I.banner_id == null }/> + <mk-set-avatar-suggestion v-if="SIGNIN && I.avatar_id == null"/> + <mk-set-banner-suggestion v-if="SIGNIN && I.banner_id == null"/> <div class="content"> <yield /> </div> - <mk-stream-indicator if={ SIGNIN }/> + <mk-stream-indicator v-if="SIGNIN"/> <style lang="stylus" scoped> :scope display block @@ -37,7 +37,7 @@ </mk-ui> <mk-ui-header> - <mk-donation if={ SIGNIN && I.client_settings.show_donation }/> + <mk-donation v-if="SIGNIN && I.client_settings.show_donation"/> <mk-special-message/> <div class="main"> <div class="backdrop"></div> @@ -48,9 +48,9 @@ </div> <div class="right"> <mk-ui-header-search/> - <mk-ui-header-account if={ SIGNIN }/> - <mk-ui-header-notifications if={ SIGNIN }/> - <mk-ui-header-post-button if={ SIGNIN }/> + <mk-ui-header-account v-if="SIGNIN"/> + <mk-ui-header-notifications v-if="SIGNIN"/> + <mk-ui-header-post-button v-if="SIGNIN"/> <mk-ui-header-clock/> </div> </div> @@ -230,9 +230,9 @@ <mk-ui-header-notifications> <button data-active={ isOpen } @click="toggle" title="%i18n:desktop.tags.mk-ui-header-notifications.title%"> - %fa:R bell%<virtual if={ hasUnreadNotifications }>%fa:circle%</virtual> + %fa:R bell%<virtual v-if="hasUnreadNotifications">%fa:circle%</virtual> </button> - <div class="notifications" if={ isOpen }> + <div class="notifications" v-if="isOpen"> <mk-notifications/> </div> <style lang="stylus" scoped> @@ -392,7 +392,7 @@ <mk-ui-header-nav> <ul> - <virtual if={ SIGNIN }> + <virtual v-if="SIGNIN"> <li class="home { active: page == 'home' }"> <a href={ _URL_ }> %fa:home% @@ -403,7 +403,7 @@ <a @click="messaging"> %fa:comments% <p>%i18n:desktop.tags.mk-ui-header-nav.messaging%</p> - <virtual if={ hasUnreadMessagingMessages }>%fa:circle%</virtual> + <virtual v-if="hasUnreadMessagingMessages">%fa:circle%</virtual> </a> </li> </virtual> @@ -630,10 +630,10 @@ <mk-ui-header-account> <button class="header" data-active={ isOpen.toString() } @click="toggle"> - <span class="username">{ I.username }<virtual if={ !isOpen }>%fa:angle-down%</virtual><virtual if={ isOpen }>%fa:angle-up%</virtual></span> + <span class="username">{ I.username }<virtual v-if="!isOpen">%fa:angle-down%</virtual><virtual v-if="isOpen">%fa:angle-up%</virtual></span> <img class="avatar" src={ I.avatar_url + '?thumbnail&size=64' } alt="avatar"/> </button> - <div class="menu" if={ isOpen }> + <div class="menu" v-if="isOpen"> <ul> <li> <a href={ '/' + I.username }>%fa:user%%i18n:desktop.tags.mk-ui-header-account.profile%%fa:angle-right%</a> diff --git a/src/web/app/desktop/tags/user-preview.tag b/src/web/app/desktop/tags/user-preview.tag index cf7b962759..eb3568ce08 100644 --- a/src/web/app/desktop/tags/user-preview.tag +++ b/src/web/app/desktop/tags/user-preview.tag @@ -1,5 +1,5 @@ <mk-user-preview> - <virtual if={ user != null }> + <virtual v-if="user != null"> <div class="banner" style={ user.banner_url ? 'background-image: url(' + user.banner_url + '?thumbnail&size=512)' : '' }></div><a class="avatar" href={ '/' + user.username } target="_blank"><img src={ user.avatar_url + '?thumbnail&size=64' } alt="avatar"/></a> <div class="title"> <p class="name">{ user.name }</p> @@ -17,7 +17,7 @@ <p>フォロワー</p><a>{ user.followers_count }</a> </div> </div> - <mk-follow-button if={ SIGNIN && user.id != I.id } user={ userPromise }/> + <mk-follow-button v-if="SIGNIN && user.id != I.id" user={ userPromise }/> </virtual> <style lang="stylus" scoped> :scope diff --git a/src/web/app/desktop/tags/user-timeline.tag b/src/web/app/desktop/tags/user-timeline.tag index be2649fb6d..427ce9c53e 100644 --- a/src/web/app/desktop/tags/user-timeline.tag +++ b/src/web/app/desktop/tags/user-timeline.tag @@ -2,14 +2,14 @@ <header> <span data-is-active={ mode == 'default' } @click="setMode.bind(this, 'default')">投稿</span><span data-is-active={ mode == 'with-replies' } @click="setMode.bind(this, 'with-replies')">投稿と返信</span> </header> - <div class="loading" if={ isLoading }> + <div class="loading" v-if="isLoading"> <mk-ellipsis-icon/> </div> - <p class="empty" if={ isEmpty }>%fa:R comments%このユーザーはまだ何も投稿していないようです。</p> + <p class="empty" v-if="isEmpty">%fa:R comments%このユーザーはまだ何も投稿していないようです。</p> <mk-timeline ref="timeline"> <yield to="footer"> - <virtual if={ !parent.moreLoading }>%fa:moon%</virtual> - <virtual if={ parent.moreLoading }>%fa:spinner .pulse .fw%</virtual> + <virtual v-if="!parent.moreLoading">%fa:moon%</virtual> + <virtual v-if="parent.moreLoading">%fa:spinner .pulse .fw%</virtual> </yield/> </mk-timeline> <style lang="stylus" scoped> diff --git a/src/web/app/desktop/tags/user.tag b/src/web/app/desktop/tags/user.tag index 046fef6813..364b95ba72 100644 --- a/src/web/app/desktop/tags/user.tag +++ b/src/web/app/desktop/tags/user.tag @@ -1,10 +1,10 @@ <mk-user> - <div class="user" if={ !fetching }> + <div class="user" v-if="!fetching"> <header> <mk-user-header user={ user }/> </header> - <mk-user-home if={ page == 'home' } user={ user }/> - <mk-user-graphs if={ page == 'graphs' } user={ user }/> + <mk-user-home v-if="page == 'home'" user={ user }/> + <mk-user-graphs v-if="page == 'graphs'" user={ user }/> </div> <style lang="stylus" scoped> :scope @@ -48,7 +48,7 @@ <div class="title"> <p class="name" href={ '/' + user.username }>{ user.name }</p> <p class="username">@{ user.username }</p> - <p class="location" if={ user.profile.location }>%fa:map-marker%{ user.profile.location }</p> + <p class="location" v-if="user.profile.location">%fa:map-marker%{ user.profile.location }</p> </div> <footer> <a href={ '/' + user.username } data-active={ parent.page == 'home' }>%fa:home%概要</a> @@ -224,17 +224,17 @@ </mk-user-header> <mk-user-profile> - <div class="friend-form" if={ SIGNIN && I.id != user.id }> + <div class="friend-form" v-if="SIGNIN && I.id != user.id"> <mk-big-follow-button user={ user }/> - <p class="followed" if={ user.is_followed }>%i18n:desktop.tags.mk-user.follows-you%</p> - <p if={ user.is_muted }>%i18n:desktop.tags.mk-user.muted% <a @click="unmute">%i18n:desktop.tags.mk-user.unmute%</a></p> - <p if={ !user.is_muted }><a @click="mute">%i18n:desktop.tags.mk-user.mute%</a></p> + <p class="followed" v-if="user.is_followed">%i18n:desktop.tags.mk-user.follows-you%</p> + <p v-if="user.is_muted">%i18n:desktop.tags.mk-user.muted% <a @click="unmute">%i18n:desktop.tags.mk-user.unmute%</a></p> + <p v-if="!user.is_muted"><a @click="mute">%i18n:desktop.tags.mk-user.mute%</a></p> </div> - <div class="description" if={ user.description }>{ user.description }</div> - <div class="birthday" if={ user.profile.birthday }> + <div class="description" v-if="user.description">{ user.description }</div> + <div class="birthday" v-if="user.profile.birthday"> <p>%fa:birthday-cake%{ user.profile.birthday.replace('-', '年').replace('-', '月') + '日' } ({ age(user.profile.birthday) }歳)</p> </div> - <div class="twitter" if={ user.twitter }> + <div class="twitter" v-if="user.twitter"> <p>%fa:B twitter%<a href={ 'https://twitter.com/' + user.twitter.screen_name } target="_blank">@{ user.twitter.screen_name }</a></p> </div> <div class="status"> @@ -355,13 +355,13 @@ <mk-user-photos> <p class="title">%fa:camera%%i18n:desktop.tags.mk-user.photos.title%</p> - <p class="initializing" if={ initializing }>%fa:spinner .pulse .fw%%i18n:desktop.tags.mk-user.photos.loading%<mk-ellipsis/></p> - <div class="stream" if={ !initializing && images.length > 0 }> + <p class="initializing" v-if="initializing">%fa:spinner .pulse .fw%%i18n:desktop.tags.mk-user.photos.loading%<mk-ellipsis/></p> + <div class="stream" v-if="!initializing && images.length > 0"> <virtual each={ image in images }> <div class="img" style={ 'background-image: url(' + image.url + '?thumbnail&size=256)' }></div> </virtual> </div> - <p class="empty" if={ !initializing && images.length == 0 }>%i18n:desktop.tags.mk-user.photos.no-photos%</p> + <p class="empty" v-if="!initializing && images.length == 0">%i18n:desktop.tags.mk-user.photos.no-photos%</p> <style lang="stylus" scoped> :scope display block @@ -449,8 +449,8 @@ <mk-user-frequently-replied-users> <p class="title">%fa:users%%i18n:desktop.tags.mk-user.frequently-replied-users.title%</p> - <p class="initializing" if={ initializing }>%fa:spinner .pulse .fw%%i18n:desktop.tags.mk-user.frequently-replied-users.loading%<mk-ellipsis/></p> - <div class="user" if={ !initializing && users.length != 0 } each={ _user in users }> + <p class="initializing" v-if="initializing">%fa:spinner .pulse .fw%%i18n:desktop.tags.mk-user.frequently-replied-users.loading%<mk-ellipsis/></p> + <div class="user" v-if="!initializing && users.length != 0" each={ _user in users }> <a class="avatar-anchor" href={ '/' + _user.username }> <img class="avatar" src={ _user.avatar_url + '?thumbnail&size=42' } alt="" data-user-preview={ _user.id }/> </a> @@ -460,7 +460,7 @@ </div> <mk-follow-button user={ _user }/> </div> - <p class="empty" if={ !initializing && users.length == 0 }>%i18n:desktop.tags.mk-user.frequently-replied-users.no-users%</p> + <p class="empty" v-if="!initializing && users.length == 0">%i18n:desktop.tags.mk-user.frequently-replied-users.no-users%</p> <style lang="stylus" scoped> :scope display block @@ -561,13 +561,13 @@ <mk-user-followers-you-know> <p class="title">%fa:users%%i18n:desktop.tags.mk-user.followers-you-know.title%</p> - <p class="initializing" if={ initializing }>%fa:spinner .pulse .fw%%i18n:desktop.tags.mk-user.followers-you-know.loading%<mk-ellipsis/></p> - <div if={ !initializing && users.length > 0 }> + <p class="initializing" v-if="initializing">%fa:spinner .pulse .fw%%i18n:desktop.tags.mk-user.followers-you-know.loading%<mk-ellipsis/></p> + <div v-if="!initializing && users.length > 0"> <virtual each={ user in users }> <a href={ '/' + user.username }><img src={ user.avatar_url + '?thumbnail&size=64' } alt={ user.name }/></a> </virtual> </div> - <p class="empty" if={ !initializing && users.length == 0 }>%i18n:desktop.tags.mk-user.followers-you-know.no-users%</p> + <p class="empty" v-if="!initializing && users.length == 0">%i18n:desktop.tags.mk-user.followers-you-know.no-users%</p> <style lang="stylus" scoped> :scope display block @@ -638,12 +638,12 @@ <div ref="left"> <mk-user-profile user={ user }/> <mk-user-photos user={ user }/> - <mk-user-followers-you-know if={ SIGNIN && I.id !== user.id } user={ user }/> + <mk-user-followers-you-know v-if="SIGNIN && I.id !== user.id" user={ user }/> <p>%i18n:desktop.tags.mk-user.last-used-at%: <b><mk-time time={ user.last_used_at }/></b></p> </div> </div> <main> - <mk-post-detail if={ user.pinned_post } post={ user.pinned_post } compact={ true }/> + <mk-post-detail v-if="user.pinned_post" post={ user.pinned_post } compact={ true }/> <mk-user-timeline ref="tl" user={ user }/> </main> <div> @@ -784,7 +784,7 @@ </mk-user-graphs> <mk-user-graphs-activity-chart> - <svg if={ data } ref="canvas" viewBox="0 0 365 1" preserveAspectRatio="none"> + <svg v-if="data" ref="canvas" viewBox="0 0 365 1" preserveAspectRatio="none"> <g each={ d, i in data.reverse() }> <rect width="0.8" riot-height={ d.postsH } riot-x={ i + 0.1 } riot-y={ 1 - d.postsH - d.repliesH - d.repostsH } diff --git a/src/web/app/desktop/tags/users-list.tag b/src/web/app/desktop/tags/users-list.tag index fd5c73b7dc..18ba2b77d4 100644 --- a/src/web/app/desktop/tags/users-list.tag +++ b/src/web/app/desktop/tags/users-list.tag @@ -2,20 +2,20 @@ <nav> <div> <span data-is-active={ mode == 'all' } @click="setMode.bind(this, 'all')">すべて<span>{ opts.count }</span></span> - <span if={ SIGNIN && opts.youKnowCount } data-is-active={ mode == 'iknow' } @click="setMode.bind(this, 'iknow')">知り合い<span>{ opts.youKnowCount }</span></span> + <span v-if="SIGNIN && opts.youKnowCount" data-is-active={ mode == 'iknow' } @click="setMode.bind(this, 'iknow')">知り合い<span>{ opts.youKnowCount }</span></span> </div> </nav> - <div class="users" if={ !fetching && users.length != 0 }> + <div class="users" v-if="!fetching && users.length != 0"> <div each={ users }> <mk-list-user user={ this }/> </div> </div> - <button class="more" if={ !fetching && next != null } @click="more" disabled={ moreFetching }> - <span if={ !moreFetching }>もっと</span> - <span if={ moreFetching }>読み込み中<mk-ellipsis/></span> + <button class="more" v-if="!fetching && next != null" @click="more" disabled={ moreFetching }> + <span v-if="!moreFetching">もっと</span> + <span v-if="moreFetching">読み込み中<mk-ellipsis/></span> </button> - <p class="no" if={ !fetching && users.length == 0 }>{ opts.noUsers }</p> - <p class="fetching" if={ fetching }>%fa:spinner .pulse .fw%読み込んでいます<mk-ellipsis/></p> + <p class="no" v-if="!fetching && users.length == 0">{ opts.noUsers }</p> + <p class="fetching" v-if="fetching">%fa:spinner .pulse .fw%読み込んでいます<mk-ellipsis/></p> <style lang="stylus" scoped> :scope display block diff --git a/src/web/app/desktop/tags/widgets/activity.tag b/src/web/app/desktop/tags/widgets/activity.tag index b9132e5a54..8aad5337f1 100644 --- a/src/web/app/desktop/tags/widgets/activity.tag +++ b/src/web/app/desktop/tags/widgets/activity.tag @@ -1,11 +1,11 @@ <mk-activity-widget data-melt={ design == 2 }> - <virtual if={ design == 0 }> + <virtual v-if="design == 0"> <p class="title">%fa:chart-bar%%i18n:desktop.tags.mk-activity-widget.title%</p> <button @click="toggle" title="%i18n:desktop.tags.mk-activity-widget.toggle%">%fa:sort%</button> </virtual> - <p class="initializing" if={ initializing }>%fa:spinner .pulse .fw%%i18n:common.loading%<mk-ellipsis/></p> - <mk-activity-widget-calender if={ !initializing && view == 0 } data={ [].concat(activity) }/> - <mk-activity-widget-chart if={ !initializing && view == 1 } data={ [].concat(activity) }/> + <p class="initializing" v-if="initializing">%fa:spinner .pulse .fw%%i18n:common.loading%<mk-ellipsis/></p> + <mk-activity-widget-calender v-if="!initializing && view == 0" data={ [].concat(activity) }/> + <mk-activity-widget-chart v-if="!initializing && view == 1" data={ [].concat(activity) }/> <style lang="stylus" scoped> :scope display block diff --git a/src/web/app/desktop/tags/widgets/calendar.tag b/src/web/app/desktop/tags/widgets/calendar.tag index 4e365650c8..c8d2687832 100644 --- a/src/web/app/desktop/tags/widgets/calendar.tag +++ b/src/web/app/desktop/tags/widgets/calendar.tag @@ -1,12 +1,12 @@ <mk-calendar-widget data-melt={ opts.design == 4 || opts.design == 5 }> - <virtual if={ opts.design == 0 || opts.design == 1 }> + <virtual v-if="opts.design == 0 || opts.design == 1"> <button @click="prev" title="%i18n:desktop.tags.mk-calendar-widget.prev%">%fa:chevron-circle-left%</button> <p class="title">{ '%i18n:desktop.tags.mk-calendar-widget.title%'.replace('{1}', year).replace('{2}', month) }</p> <button @click="next" title="%i18n:desktop.tags.mk-calendar-widget.next%">%fa:chevron-circle-right%</button> </virtual> <div class="calendar"> - <div class="weekday" if={ opts.design == 0 || opts.design == 2 || opts.design == 4} each={ day, i in Array(7).fill(0) } + <div class="weekday" v-if="opts.design == 0 || opts.design == 2 || opts.design == 4} each={ day, i in Array(7).fill(0)" data-today={ year == today.getFullYear() && month == today.getMonth() + 1 && today.getDay() == i } data-is-donichi={ i == 0 || i == 6 }>{ weekdayText[i] }</div> <div each={ day, i in Array(paddingDays).fill(0) }></div> diff --git a/src/web/app/desktop/tags/window.tag b/src/web/app/desktop/tags/window.tag index 3752f36096..2b98ab7f0b 100644 --- a/src/web/app/desktop/tags/window.tag +++ b/src/web/app/desktop/tags/window.tag @@ -5,20 +5,20 @@ <header ref="header" onmousedown={ onHeaderMousedown }> <h1 data-yield="header"><yield from="header"/></h1> <div> - <button class="popout" if={ popoutUrl } onmousedown={ repelMove } @click="popout" title="ポップアウト">%fa:R window-restore%</button> - <button class="close" if={ canClose } onmousedown={ repelMove } @click="close" title="閉じる">%fa:times%</button> + <button class="popout" v-if="popoutUrl" onmousedown={ repelMove } @click="popout" title="ポップアウト">%fa:R window-restore%</button> + <button class="close" v-if="canClose" onmousedown={ repelMove } @click="close" title="閉じる">%fa:times%</button> </div> </header> <div class="content" data-yield="content"><yield from="content"/></div> </div> - <div class="handle top" if={ canResize } onmousedown={ onTopHandleMousedown }></div> - <div class="handle right" if={ canResize } onmousedown={ onRightHandleMousedown }></div> - <div class="handle bottom" if={ canResize } onmousedown={ onBottomHandleMousedown }></div> - <div class="handle left" if={ canResize } onmousedown={ onLeftHandleMousedown }></div> - <div class="handle top-left" if={ canResize } onmousedown={ onTopLeftHandleMousedown }></div> - <div class="handle top-right" if={ canResize } onmousedown={ onTopRightHandleMousedown }></div> - <div class="handle bottom-right" if={ canResize } onmousedown={ onBottomRightHandleMousedown }></div> - <div class="handle bottom-left" if={ canResize } onmousedown={ onBottomLeftHandleMousedown }></div> + <div class="handle top" v-if="canResize" onmousedown={ onTopHandleMousedown }></div> + <div class="handle right" v-if="canResize" onmousedown={ onRightHandleMousedown }></div> + <div class="handle bottom" v-if="canResize" onmousedown={ onBottomHandleMousedown }></div> + <div class="handle left" v-if="canResize" onmousedown={ onLeftHandleMousedown }></div> + <div class="handle top-left" v-if="canResize" onmousedown={ onTopLeftHandleMousedown }></div> + <div class="handle top-right" v-if="canResize" onmousedown={ onTopRightHandleMousedown }></div> + <div class="handle bottom-right" v-if="canResize" onmousedown={ onBottomRightHandleMousedown }></div> + <div class="handle bottom-left" v-if="canResize" onmousedown={ onBottomLeftHandleMousedown }></div> </div> <style lang="stylus" scoped> :scope diff --git a/src/web/app/dev/tags/new-app-form.tag b/src/web/app/dev/tags/new-app-form.tag index 1bd5b5a83d..f753b5ae33 100644 --- a/src/web/app/dev/tags/new-app-form.tag +++ b/src/web/app/dev/tags/new-app-form.tag @@ -10,13 +10,13 @@ <label> <p class="caption">Named ID</p> <input ref="nid" type="text" pattern="^[a-zA-Z0-9-]{3,30}$" placeholder="ex) misskey-for-ios" autocomplete="off" required="required" onkeyup={ onChangeNid }/> - <p class="info" if={ nidState == 'wait' } style="color:#999">%fa:spinner .pulse .fw%確認しています...</p> - <p class="info" if={ nidState == 'ok' } style="color:#3CB7B5">%fa:fw check%利用できます</p> - <p class="info" if={ nidState == 'unavailable' } style="color:#FF1161">%fa:fw exclamation-triangle%既に利用されています</p> - <p class="info" if={ nidState == 'error' } style="color:#FF1161">%fa:fw exclamation-triangle%通信エラー</p> - <p class="info" if={ nidState == 'invalid-format' } style="color:#FF1161">%fa:fw exclamation-triangle%a~z、A~Z、0~9、-(ハイフン)が使えます</p> - <p class="info" if={ nidState == 'min-range' } style="color:#FF1161">%fa:fw exclamation-triangle%3文字以上でお願いします!</p> - <p class="info" if={ nidState == 'max-range' } style="color:#FF1161">%fa:fw exclamation-triangle%30文字以内でお願いします</p> + <p class="info" v-if="nidState == 'wait'" style="color:#999">%fa:spinner .pulse .fw%確認しています...</p> + <p class="info" v-if="nidState == 'ok'" style="color:#3CB7B5">%fa:fw check%利用できます</p> + <p class="info" v-if="nidState == 'unavailable'" style="color:#FF1161">%fa:fw exclamation-triangle%既に利用されています</p> + <p class="info" v-if="nidState == 'error'" style="color:#FF1161">%fa:fw exclamation-triangle%通信エラー</p> + <p class="info" v-if="nidState == 'invalid-format'" style="color:#FF1161">%fa:fw exclamation-triangle%a~z、A~Z、0~9、-(ハイフン)が使えます</p> + <p class="info" v-if="nidState == 'min-range'" style="color:#FF1161">%fa:fw exclamation-triangle%3文字以上でお願いします!</p> + <p class="info" v-if="nidState == 'max-range'" style="color:#FF1161">%fa:fw exclamation-triangle%30文字以内でお願いします</p> </label> </section> <section class="description"> diff --git a/src/web/app/dev/tags/pages/app.tag b/src/web/app/dev/tags/pages/app.tag index 3fdf8d15bc..1e89b47d8f 100644 --- a/src/web/app/dev/tags/pages/app.tag +++ b/src/web/app/dev/tags/pages/app.tag @@ -1,6 +1,6 @@ <mk-app-page> - <p if={ fetching }>読み込み中</p> - <main if={ !fetching }> + <p v-if="fetching">読み込み中</p> + <main v-if="!fetching"> <header> <h1>{ app.name }</h1> </header> diff --git a/src/web/app/dev/tags/pages/apps.tag b/src/web/app/dev/tags/pages/apps.tag index fbacee1376..d11011ca49 100644 --- a/src/web/app/dev/tags/pages/apps.tag +++ b/src/web/app/dev/tags/pages/apps.tag @@ -1,10 +1,10 @@ <mk-apps-page> <h1>アプリを管理</h1><a href="/app/new">アプリ作成</a> <div class="apps"> - <p if={ fetching }>読み込み中</p> - <virtual if={ !fetching }> - <p if={ apps.length == 0 }>アプリなし</p> - <ul if={ apps.length > 0 }> + <p v-if="fetching">読み込み中</p> + <virtual v-if="!fetching"> + <p v-if="apps.length == 0">アプリなし</p> + <ul v-if="apps.length > 0"> <li each={ app in apps }><a href={ '/app/' + app.id }> <p class="name">{ app.name }</p></a></li> </ul> diff --git a/src/web/app/mobile/tags/drive-selector.tag b/src/web/app/mobile/tags/drive-selector.tag index 9c3a4b5c4e..a837f8b5f4 100644 --- a/src/web/app/mobile/tags/drive-selector.tag +++ b/src/web/app/mobile/tags/drive-selector.tag @@ -1,9 +1,9 @@ <mk-drive-selector> <div class="body"> <header> - <h1>%i18n:mobile.tags.mk-drive-selector.select-file%<span class="count" if={ files.length > 0 }>({ files.length })</span></h1> + <h1>%i18n:mobile.tags.mk-drive-selector.select-file%<span class="count" v-if="files.length > 0">({ files.length })</span></h1> <button class="close" @click="cancel">%fa:times%</button> - <button if={ opts.multiple } class="ok" @click="ok">%fa:check%</button> + <button v-if="opts.multiple" class="ok" @click="ok">%fa:check%</button> </header> <mk-drive ref="browser" select-file={ true } multiple={ opts.multiple }/> </div> diff --git a/src/web/app/mobile/tags/drive.tag b/src/web/app/mobile/tags/drive.tag index a063d0ca61..0076dc8f4b 100644 --- a/src/web/app/mobile/tags/drive.tag +++ b/src/web/app/mobile/tags/drive.tag @@ -5,52 +5,52 @@ <span>%fa:angle-right%</span> <a @click="move" href="/i/drive/folder/{ folder.id }">{ folder.name }</a> </virtual> - <virtual if={ folder != null }> + <virtual v-if="folder != null"> <span>%fa:angle-right%</span> <p>{ folder.name }</p> </virtual> - <virtual if={ file != null }> + <virtual v-if="file != null"> <span>%fa:angle-right%</span> <p>{ file.name }</p> </virtual> </nav> <mk-uploader ref="uploader"/> - <div class="browser { fetching: fetching }" if={ file == null }> - <div class="info" if={ info }> - <p if={ folder == null }>{ (info.usage / info.capacity * 100).toFixed(1) }% %i18n:mobile.tags.mk-drive.used%</p> - <p if={ folder != null && (folder.folders_count > 0 || folder.files_count > 0) }> - <virtual if={ folder.folders_count > 0 }>{ folder.folders_count } %i18n:mobile.tags.mk-drive.folder-count%</virtual> - <virtual if={ folder.folders_count > 0 && folder.files_count > 0 }>%i18n:mobile.tags.mk-drive.count-separator%</virtual> - <virtual if={ folder.files_count > 0 }>{ folder.files_count } %i18n:mobile.tags.mk-drive.file-count%</virtual> + <div class="browser { fetching: fetching }" v-if="file == null"> + <div class="info" v-if="info"> + <p v-if="folder == null">{ (info.usage / info.capacity * 100).toFixed(1) }% %i18n:mobile.tags.mk-drive.used%</p> + <p v-if="folder != null && (folder.folders_count > 0 || folder.files_count > 0)"> + <virtual v-if="folder.folders_count > 0">{ folder.folders_count } %i18n:mobile.tags.mk-drive.folder-count%</virtual> + <virtual v-if="folder.folders_count > 0 && folder.files_count > 0">%i18n:mobile.tags.mk-drive.count-separator%</virtual> + <virtual v-if="folder.files_count > 0">{ folder.files_count } %i18n:mobile.tags.mk-drive.file-count%</virtual> </p> </div> - <div class="folders" if={ folders.length > 0 }> + <div class="folders" v-if="folders.length > 0"> <virtual each={ folder in folders }> <mk-drive-folder folder={ folder }/> </virtual> - <p if={ moreFolders }>%i18n:mobile.tags.mk-drive.load-more%</p> + <p v-if="moreFolders">%i18n:mobile.tags.mk-drive.load-more%</p> </div> - <div class="files" if={ files.length > 0 }> + <div class="files" v-if="files.length > 0"> <virtual each={ file in files }> <mk-drive-file file={ file }/> </virtual> - <button class="more" if={ moreFiles } @click="fetchMoreFiles"> + <button class="more" v-if="moreFiles" @click="fetchMoreFiles"> { fetchingMoreFiles ? '%i18n:common.loading%' : '%i18n:mobile.tags.mk-drive.load-more%' } </button> </div> - <div class="empty" if={ files.length == 0 && folders.length == 0 && !fetching }> - <p if={ folder == null }>%i18n:mobile.tags.mk-drive.nothing-in-drive%</p> - <p if={ folder != null }>%i18n:mobile.tags.mk-drive.folder-is-empty%</p> + <div class="empty" v-if="files.length == 0 && folders.length == 0 && !fetching"> + <p v-if="folder == null">%i18n:mobile.tags.mk-drive.nothing-in-drive%</p> + <p v-if="folder != null">%i18n:mobile.tags.mk-drive.folder-is-empty%</p> </div> </div> - <div class="fetching" if={ fetching && file == null && files.length == 0 && folders.length == 0 }> + <div class="fetching" v-if="fetching && file == null && files.length == 0 && folders.length == 0"> <div class="spinner"> <div class="dot1"></div> <div class="dot2"></div> </div> </div> <input ref="file" type="file" multiple="multiple" onchange={ changeLocalFile }/> - <mk-drive-file-viewer if={ file != null } file={ file }/> + <mk-drive-file-viewer v-if="file != null" file={ file }/> <style lang="stylus" scoped> :scope display block diff --git a/src/web/app/mobile/tags/drive/file-viewer.tag b/src/web/app/mobile/tags/drive/file-viewer.tag index 119ad1fb2a..5d06507c49 100644 --- a/src/web/app/mobile/tags/drive/file-viewer.tag +++ b/src/web/app/mobile/tags/drive/file-viewer.tag @@ -1,13 +1,13 @@ <mk-drive-file-viewer> <div class="preview"> - <img if={ kind == 'image' } ref="img" + <img v-if="kind == 'image'" ref="img" src={ file.url } alt={ file.name } title={ file.name } onload={ onImageLoaded } style="background-color:rgb({ file.properties.average_color.join(',') })"> - <virtual if={ kind != 'image' }>%fa:file%</virtual> - <footer if={ kind == 'image' && file.properties && file.properties.width && file.properties.height }> + <virtual v-if="kind != 'image'">%fa:file%</virtual> + <footer v-if="kind == 'image' && file.properties && file.properties.width && file.properties.height"> <span class="size"> <span class="width">{ file.properties.width }</span> <span class="time">×</span> diff --git a/src/web/app/mobile/tags/drive/file.tag b/src/web/app/mobile/tags/drive/file.tag index 96754e1b39..03cbab2bf3 100644 --- a/src/web/app/mobile/tags/drive/file.tag +++ b/src/web/app/mobile/tags/drive/file.tag @@ -3,7 +3,7 @@ <div class="container"> <div class="thumbnail" style={ thumbnail }></div> <div class="body"> - <p class="name"><span>{ file.name.lastIndexOf('.') != -1 ? file.name.substr(0, file.name.lastIndexOf('.')) : file.name }</span><span class="ext" if={ file.name.lastIndexOf('.') != -1 }>{ file.name.substr(file.name.lastIndexOf('.')) }</span></p> + <p class="name"><span>{ file.name.lastIndexOf('.') != -1 ? file.name.substr(0, file.name.lastIndexOf('.')) : file.name }</span><span class="ext" v-if="file.name.lastIndexOf('.') != -1">{ file.name.substr(file.name.lastIndexOf('.')) }</span></p> <!-- if file.tags.length > 0 ul.tags diff --git a/src/web/app/mobile/tags/follow-button.tag b/src/web/app/mobile/tags/follow-button.tag index baf8f2ffa4..d96389bfce 100644 --- a/src/web/app/mobile/tags/follow-button.tag +++ b/src/web/app/mobile/tags/follow-button.tag @@ -1,10 +1,10 @@ <mk-follow-button> - <button class={ wait: wait, follow: !user.is_following, unfollow: user.is_following } if={ !init } @click="onclick" disabled={ wait }> - <virtual if={ !wait && user.is_following }>%fa:minus%</virtual> - <virtual if={ !wait && !user.is_following }>%fa:plus%</virtual> - <virtual if={ wait }>%fa:spinner .pulse .fw%</virtual>{ user.is_following ? '%i18n:mobile.tags.mk-follow-button.unfollow%' : '%i18n:mobile.tags.mk-follow-button.follow%' } + <button class={ wait: wait, follow: !user.is_following, unfollow: user.is_following } v-if="!init" @click="onclick" disabled={ wait }> + <virtual v-if="!wait && user.is_following">%fa:minus%</virtual> + <virtual v-if="!wait && !user.is_following">%fa:plus%</virtual> + <virtual v-if="wait">%fa:spinner .pulse .fw%</virtual>{ user.is_following ? '%i18n:mobile.tags.mk-follow-button.unfollow%' : '%i18n:mobile.tags.mk-follow-button.follow%' } </button> - <div class="init" if={ init }>%fa:spinner .pulse .fw%</div> + <div class="init" v-if="init">%fa:spinner .pulse .fw%</div> <style lang="stylus" scoped> :scope display block diff --git a/src/web/app/mobile/tags/home-timeline.tag b/src/web/app/mobile/tags/home-timeline.tag index 86708bfeed..3905e867ba 100644 --- a/src/web/app/mobile/tags/home-timeline.tag +++ b/src/web/app/mobile/tags/home-timeline.tag @@ -1,5 +1,5 @@ <mk-home-timeline> - <mk-init-following if={ noFollowing } /> + <mk-init-following v-if="noFollowing" /> <mk-timeline ref="timeline" init={ init } more={ more } empty={ '%i18n:mobile.tags.mk-home-timeline.empty-timeline%' }/> <style lang="stylus" scoped> :scope diff --git a/src/web/app/mobile/tags/init-following.tag b/src/web/app/mobile/tags/init-following.tag index e0e2532af0..3eb3e14819 100644 --- a/src/web/app/mobile/tags/init-following.tag +++ b/src/web/app/mobile/tags/init-following.tag @@ -1,12 +1,12 @@ <mk-init-following> <p class="title">気になるユーザーをフォロー:</p> - <div class="users" if={ !fetching && users.length > 0 }> + <div class="users" v-if="!fetching && users.length > 0"> <virtual each={ users }> <mk-user-card user={ this } /> </virtual> </div> - <p class="empty" if={ !fetching && users.length == 0 }>おすすめのユーザーは見つかりませんでした。</p> - <p class="fetching" if={ fetching }>%fa:spinner .pulse .fw%読み込んでいます<mk-ellipsis/></p> + <p class="empty" v-if="!fetching && users.length == 0">おすすめのユーザーは見つかりませんでした。</p> + <p class="fetching" v-if="fetching">%fa:spinner .pulse .fw%読み込んでいます<mk-ellipsis/></p> <a class="refresh" @click="refresh">もっと見る</a> <button class="close" @click="close" title="閉じる">%fa:times%</button> <style lang="stylus" scoped> diff --git a/src/web/app/mobile/tags/notification-preview.tag b/src/web/app/mobile/tags/notification-preview.tag index b2064cd420..a24110086d 100644 --- a/src/web/app/mobile/tags/notification-preview.tag +++ b/src/web/app/mobile/tags/notification-preview.tag @@ -1,46 +1,46 @@ <mk-notification-preview class={ notification.type }> - <virtual if={ notification.type == 'reaction' }> + <virtual v-if="notification.type == 'reaction'"> <img class="avatar" src={ notification.user.avatar_url + '?thumbnail&size=64' } alt="avatar"/> <div class="text"> <p><mk-reaction-icon reaction={ notification.reaction }/>{ notification.user.name }</p> <p class="post-ref">%fa:quote-left%{ getPostSummary(notification.post) }%fa:quote-right%</p> </div> </virtual> - <virtual if={ notification.type == 'repost' }> + <virtual v-if="notification.type == 'repost'"> <img class="avatar" src={ notification.post.user.avatar_url + '?thumbnail&size=64' } alt="avatar"/> <div class="text"> <p>%fa:retweet%{ notification.post.user.name }</p> <p class="post-ref">%fa:quote-left%{ getPostSummary(notification.post.repost) }%fa:quote-right%</p> </div> </virtual> - <virtual if={ notification.type == 'quote' }> + <virtual v-if="notification.type == 'quote'"> <img class="avatar" src={ notification.post.user.avatar_url + '?thumbnail&size=64' } alt="avatar"/> <div class="text"> <p>%fa:quote-left%{ notification.post.user.name }</p> <p class="post-preview">{ getPostSummary(notification.post) }</p> </div> </virtual> - <virtual if={ notification.type == 'follow' }> + <virtual v-if="notification.type == 'follow'"> <img class="avatar" src={ notification.user.avatar_url + '?thumbnail&size=64' } alt="avatar"/> <div class="text"> <p>%fa:user-plus%{ notification.user.name }</p> </div> </virtual> - <virtual if={ notification.type == 'reply' }> + <virtual v-if="notification.type == 'reply'"> <img class="avatar" src={ notification.post.user.avatar_url + '?thumbnail&size=64' } alt="avatar"/> <div class="text"> <p>%fa:reply%{ notification.post.user.name }</p> <p class="post-preview">{ getPostSummary(notification.post) }</p> </div> </virtual> - <virtual if={ notification.type == 'mention' }> + <virtual v-if="notification.type == 'mention'"> <img class="avatar" src={ notification.post.user.avatar_url + '?thumbnail&size=64' } alt="avatar"/> <div class="text"> <p>%fa:at%{ notification.post.user.name }</p> <p class="post-preview">{ getPostSummary(notification.post) }</p> </div> </virtual> - <virtual if={ notification.type == 'poll_vote' }> + <virtual v-if="notification.type == 'poll_vote'"> <img class="avatar" src={ notification.user.avatar_url + '?thumbnail&size=64' } alt="avatar"/> <div class="text"> <p>%fa:chart-pie%{ notification.user.name }</p> diff --git a/src/web/app/mobile/tags/notification.tag b/src/web/app/mobile/tags/notification.tag index 23a9f2fe3a..977244e0c5 100644 --- a/src/web/app/mobile/tags/notification.tag +++ b/src/web/app/mobile/tags/notification.tag @@ -1,6 +1,6 @@ <mk-notification class={ notification.type }> <mk-time time={ notification.created_at }/> - <virtual if={ notification.type == 'reaction' }> + <virtual v-if="notification.type == 'reaction'"> <a class="avatar-anchor" href={ '/' + notification.user.username }> <img class="avatar" src={ notification.user.avatar_url + '?thumbnail&size=64' } alt="avatar"/> </a> @@ -14,7 +14,7 @@ </a> </div> </virtual> - <virtual if={ notification.type == 'repost' }> + <virtual v-if="notification.type == 'repost'"> <a class="avatar-anchor" href={ '/' + notification.post.user.username }> <img class="avatar" src={ notification.post.user.avatar_url + '?thumbnail&size=64' } alt="avatar"/> </a> @@ -28,7 +28,7 @@ </a> </div> </virtual> - <virtual if={ notification.type == 'quote' }> + <virtual v-if="notification.type == 'quote'"> <a class="avatar-anchor" href={ '/' + notification.post.user.username }> <img class="avatar" src={ notification.post.user.avatar_url + '?thumbnail&size=64' } alt="avatar"/> </a> @@ -40,7 +40,7 @@ <a class="post-preview" href={ '/' + notification.post.user.username + '/' + notification.post.id }>{ getPostSummary(notification.post) }</a> </div> </virtual> - <virtual if={ notification.type == 'follow' }> + <virtual v-if="notification.type == 'follow'"> <a class="avatar-anchor" href={ '/' + notification.user.username }> <img class="avatar" src={ notification.user.avatar_url + '?thumbnail&size=64' } alt="avatar"/> </a> @@ -51,7 +51,7 @@ </p> </div> </virtual> - <virtual if={ notification.type == 'reply' }> + <virtual v-if="notification.type == 'reply'"> <a class="avatar-anchor" href={ '/' + notification.post.user.username }> <img class="avatar" src={ notification.post.user.avatar_url + '?thumbnail&size=64' } alt="avatar"/> </a> @@ -63,7 +63,7 @@ <a class="post-preview" href={ '/' + notification.post.user.username + '/' + notification.post.id }>{ getPostSummary(notification.post) }</a> </div> </virtual> - <virtual if={ notification.type == 'mention' }> + <virtual v-if="notification.type == 'mention'"> <a class="avatar-anchor" href={ '/' + notification.post.user.username }> <img class="avatar" src={ notification.post.user.avatar_url + '?thumbnail&size=64' } alt="avatar"/> </a> @@ -75,7 +75,7 @@ <a class="post-preview" href={ '/' + notification.post.user.username + '/' + notification.post.id }>{ getPostSummary(notification.post) }</a> </div> </virtual> - <virtual if={ notification.type == 'poll_vote' }> + <virtual v-if="notification.type == 'poll_vote'"> <a class="avatar-anchor" href={ '/' + notification.user.username }> <img class="avatar" src={ notification.user.avatar_url + '?thumbnail&size=64' } alt="avatar"/> </a> diff --git a/src/web/app/mobile/tags/notifications.tag b/src/web/app/mobile/tags/notifications.tag index ade71ea406..d1a6a2501d 100644 --- a/src/web/app/mobile/tags/notifications.tag +++ b/src/web/app/mobile/tags/notifications.tag @@ -1,15 +1,15 @@ <mk-notifications> - <div class="notifications" if={ notifications.length != 0 }> + <div class="notifications" v-if="notifications.length != 0"> <virtual each={ notification, i in notifications }> <mk-notification notification={ notification }/> - <p class="date" if={ i != notifications.length - 1 && notification._date != notifications[i + 1]._date }><span>%fa:angle-up%{ notification._datetext }</span><span>%fa:angle-down%{ notifications[i + 1]._datetext }</span></p> + <p class="date" v-if="i != notifications.length - 1 && notification._date != notifications[i + 1]._date"><span>%fa:angle-up%{ notification._datetext }</span><span>%fa:angle-down%{ notifications[i + 1]._datetext }</span></p> </virtual> </div> - <button class="more" if={ moreNotifications } @click="fetchMoreNotifications" disabled={ fetchingMoreNotifications }> - <virtual if={ fetchingMoreNotifications }>%fa:spinner .pulse .fw%</virtual>{ fetchingMoreNotifications ? '%i18n:common.loading%' : '%i18n:mobile.tags.mk-notifications.more%' } + <button class="more" v-if="moreNotifications" @click="fetchMoreNotifications" disabled={ fetchingMoreNotifications }> + <virtual v-if="fetchingMoreNotifications">%fa:spinner .pulse .fw%</virtual>{ fetchingMoreNotifications ? '%i18n:common.loading%' : '%i18n:mobile.tags.mk-notifications.more%' } </button> - <p class="empty" if={ notifications.length == 0 && !loading }>%i18n:mobile.tags.mk-notifications.empty%</p> - <p class="loading" if={ loading }>%fa:spinner .pulse .fw%%i18n:common.loading%<mk-ellipsis/></p> + <p class="empty" v-if="notifications.length == 0 && !loading">%i18n:mobile.tags.mk-notifications.empty%</p> + <p class="loading" v-if="loading">%fa:spinner .pulse .fw%%i18n:common.loading%<mk-ellipsis/></p> <style lang="stylus" scoped> :scope display block diff --git a/src/web/app/mobile/tags/page/entrance.tag b/src/web/app/mobile/tags/page/entrance.tag index ebcf30f80a..b244310cfe 100644 --- a/src/web/app/mobile/tags/page/entrance.tag +++ b/src/web/app/mobile/tags/page/entrance.tag @@ -1,8 +1,8 @@ <mk-entrance> <main><img src="/assets/title.svg" alt="Misskey"/> - <mk-entrance-signin if={ mode == 'signin' }/> - <mk-entrance-signup if={ mode == 'signup' }/> - <div class="introduction" if={ mode == 'introduction' }> + <mk-entrance-signin v-if="mode == 'signin'"/> + <mk-entrance-signup v-if="mode == 'signup'"/> + <div class="introduction" v-if="mode == 'introduction'"> <mk-introduction/> <button @click="signin">%i18n:common.ok%</button> </div> diff --git a/src/web/app/mobile/tags/page/messaging-room.tag b/src/web/app/mobile/tags/page/messaging-room.tag index 075ea8e83e..4a1c57b995 100644 --- a/src/web/app/mobile/tags/page/messaging-room.tag +++ b/src/web/app/mobile/tags/page/messaging-room.tag @@ -1,6 +1,6 @@ <mk-messaging-room-page> <mk-ui ref="ui"> - <mk-messaging-room if={ !parent.fetching } user={ parent.user } is-naked={ true }/> + <mk-messaging-room v-if="!parent.fetching" user={ parent.user } is-naked={ true }/> </mk-ui> <style lang="stylus" scoped> :scope diff --git a/src/web/app/mobile/tags/page/post.tag b/src/web/app/mobile/tags/page/post.tag index 003f9dea56..296ef140c0 100644 --- a/src/web/app/mobile/tags/page/post.tag +++ b/src/web/app/mobile/tags/page/post.tag @@ -1,11 +1,11 @@ <mk-post-page> <mk-ui ref="ui"> - <main if={ !parent.fetching }> - <a if={ parent.post.next } href={ parent.post.next }>%fa:angle-up%%i18n:mobile.tags.mk-post-page.next%</a> + <main v-if="!parent.fetching"> + <a v-if="parent.post.next" href={ parent.post.next }>%fa:angle-up%%i18n:mobile.tags.mk-post-page.next%</a> <div> <mk-post-detail ref="post" post={ parent.post }/> </div> - <a if={ parent.post.prev } href={ parent.post.prev }>%fa:angle-down%%i18n:mobile.tags.mk-post-page.prev%</a> + <a v-if="parent.post.prev" href={ parent.post.prev }>%fa:angle-down%%i18n:mobile.tags.mk-post-page.prev%</a> </main> </mk-ui> <style lang="stylus" scoped> diff --git a/src/web/app/mobile/tags/page/selectdrive.tag b/src/web/app/mobile/tags/page/selectdrive.tag index c7ff66d050..ff11bad7de 100644 --- a/src/web/app/mobile/tags/page/selectdrive.tag +++ b/src/web/app/mobile/tags/page/selectdrive.tag @@ -1,8 +1,8 @@ <mk-selectdrive-page> <header> - <h1>%i18n:mobile.tags.mk-selectdrive-page.select-file%<span class="count" if={ files.length > 0 }>({ files.length })</span></h1> + <h1>%i18n:mobile.tags.mk-selectdrive-page.select-file%<span class="count" v-if="files.length > 0">({ files.length })</span></h1> <button class="upload" @click="upload">%fa:upload%</button> - <button if={ multiple } class="ok" @click="ok">%fa:check%</button> + <button v-if="multiple" class="ok" @click="ok">%fa:check%</button> </header> <mk-drive ref="browser" select-file={ true } multiple={ multiple } is-naked={ true } top={ 42 }/> diff --git a/src/web/app/mobile/tags/page/user-followers.tag b/src/web/app/mobile/tags/page/user-followers.tag index 50280e7b99..626c8025da 100644 --- a/src/web/app/mobile/tags/page/user-followers.tag +++ b/src/web/app/mobile/tags/page/user-followers.tag @@ -1,6 +1,6 @@ <mk-user-followers-page> <mk-ui ref="ui"> - <mk-user-followers ref="list" if={ !parent.fetching } user={ parent.user }/> + <mk-user-followers ref="list" v-if="!parent.fetching" user={ parent.user }/> </mk-ui> <style lang="stylus" scoped> :scope diff --git a/src/web/app/mobile/tags/page/user-following.tag b/src/web/app/mobile/tags/page/user-following.tag index b28efbab94..220c5fbf8c 100644 --- a/src/web/app/mobile/tags/page/user-following.tag +++ b/src/web/app/mobile/tags/page/user-following.tag @@ -1,6 +1,6 @@ <mk-user-following-page> <mk-ui ref="ui"> - <mk-user-following ref="list" if={ !parent.fetching } user={ parent.user }/> + <mk-user-following ref="list" v-if="!parent.fetching" user={ parent.user }/> </mk-ui> <style lang="stylus" scoped> :scope diff --git a/src/web/app/mobile/tags/post-detail.tag b/src/web/app/mobile/tags/post-detail.tag index e397ce7c0b..1c936a8d7b 100644 --- a/src/web/app/mobile/tags/post-detail.tag +++ b/src/web/app/mobile/tags/post-detail.tag @@ -1,17 +1,17 @@ <mk-post-detail> - <button class="read-more" if={ p.reply && p.reply.reply_id && context == null } @click="loadContext" disabled={ loadingContext }> - <virtual if={ !contextFetching }>%fa:ellipsis-v%</virtual> - <virtual if={ contextFetching }>%fa:spinner .pulse%</virtual> + <button class="read-more" v-if="p.reply && p.reply.reply_id && context == null" @click="loadContext" disabled={ loadingContext }> + <virtual v-if="!contextFetching">%fa:ellipsis-v%</virtual> + <virtual v-if="contextFetching">%fa:spinner .pulse%</virtual> </button> <div class="context"> <virtual each={ post in context }> <mk-post-detail-sub post={ post }/> </virtual> </div> - <div class="reply-to" if={ p.reply }> + <div class="reply-to" v-if="p.reply"> <mk-post-detail-sub post={ p.reply }/> </div> - <div class="repost" if={ isRepost }> + <div class="repost" v-if="isRepost"> <p> <a class="avatar-anchor" href={ '/' + post.user.username }> <img class="avatar" src={ post.user.avatar_url + '?thumbnail&size=32' } alt="avatar"/></a> @@ -33,10 +33,10 @@ </header> <div class="body"> <div class="text" ref="text"></div> - <div class="media" if={ p.media }> + <div class="media" v-if="p.media"> <mk-images images={ p.media }/> </div> - <mk-poll if={ p.poll } post={ p }/> + <mk-poll v-if="p.poll" post={ p }/> </div> <a class="time" href={ '/' + p.user.username + '/' + p.id }> <mk-time time={ p.created_at } mode="detail"/> @@ -44,20 +44,20 @@ <footer> <mk-reactions-viewer post={ p }/> <button @click="reply" title="%i18n:mobile.tags.mk-post-detail.reply%"> - %fa:reply%<p class="count" if={ p.replies_count > 0 }>{ p.replies_count }</p> + %fa:reply%<p class="count" v-if="p.replies_count > 0">{ p.replies_count }</p> </button> <button @click="repost" title="Repost"> - %fa:retweet%<p class="count" if={ p.repost_count > 0 }>{ p.repost_count }</p> + %fa:retweet%<p class="count" v-if="p.repost_count > 0">{ p.repost_count }</p> </button> <button class={ reacted: p.my_reaction != null } @click="react" ref="reactButton" title="%i18n:mobile.tags.mk-post-detail.reaction%"> - %fa:plus%<p class="count" if={ p.reactions_count > 0 }>{ p.reactions_count }</p> + %fa:plus%<p class="count" v-if="p.reactions_count > 0">{ p.reactions_count }</p> </button> <button @click="menu" ref="menuButton"> %fa:ellipsis-h% </button> </footer> </article> - <div class="replies" if={ !compact }> + <div class="replies" v-if="!compact"> <virtual each={ post in replies }> <mk-post-detail-sub post={ post }/> </virtual> diff --git a/src/web/app/mobile/tags/post-form.tag b/src/web/app/mobile/tags/post-form.tag index 202b03c20a..01c0748fea 100644 --- a/src/web/app/mobile/tags/post-form.tag +++ b/src/web/app/mobile/tags/post-form.tag @@ -2,12 +2,12 @@ <header> <button class="cancel" @click="cancel">%fa:times%</button> <div> - <span if={ refs.text } class="text-count { over: refs.text.value.length > 1000 }">{ 1000 - refs.text.value.length }</span> + <span v-if="refs.text" class="text-count { over: refs.text.value.length > 1000 }">{ 1000 - refs.text.value.length }</span> <button class="submit" @click="post">%i18n:mobile.tags.mk-post-form.submit%</button> </div> </header> <div class="form"> - <mk-post-preview if={ opts.reply } post={ opts.reply }/> + <mk-post-preview v-if="opts.reply" post={ opts.reply }/> <textarea ref="text" disabled={ wait } oninput={ update } onkeydown={ onkeydown } onpaste={ onpaste } placeholder={ opts.reply ? '%i18n:mobile.tags.mk-post-form.reply-placeholder%' : '%i18n:mobile.tags.mk-post-form.post-placeholder%' }></textarea> <div class="attaches" show={ files.length != 0 }> <ul class="files" ref="attaches"> @@ -16,7 +16,7 @@ </li> </ul> </div> - <mk-poll-editor if={ poll } ref="poll" ondestroy={ onPollDestroyed }/> + <mk-poll-editor v-if="poll" ref="poll" ondestroy={ onPollDestroyed }/> <mk-uploader ref="uploader"/> <button ref="upload" @click="selectFile">%fa:upload%</button> <button ref="drive" @click="selectFileFromDrive">%fa:cloud%</button> diff --git a/src/web/app/mobile/tags/sub-post-content.tag b/src/web/app/mobile/tags/sub-post-content.tag index 3d9175b18c..27f01fa075 100644 --- a/src/web/app/mobile/tags/sub-post-content.tag +++ b/src/web/app/mobile/tags/sub-post-content.tag @@ -1,10 +1,10 @@ <mk-sub-post-content> - <div class="body"><a class="reply" if={ post.reply_id }>%fa:reply%</a><span ref="text"></span><a class="quote" if={ post.repost_id } href={ '/post:' + post.repost_id }>RP: ...</a></div> - <details if={ post.media }> + <div class="body"><a class="reply" v-if="post.reply_id">%fa:reply%</a><span ref="text"></span><a class="quote" v-if="post.repost_id" href={ '/post:' + post.repost_id }>RP: ...</a></div> + <details v-if="post.media"> <summary>({ post.media.length }個のメディア)</summary> <mk-images images={ post.media }/> </details> - <details if={ post.poll }> + <details v-if="post.poll"> <summary>%i18n:mobile.tags.mk-sub-post-content.poll%</summary> <mk-poll post={ post }/> </details> diff --git a/src/web/app/mobile/tags/timeline.tag b/src/web/app/mobile/tags/timeline.tag index 3daf6b6d16..bf3fa09315 100644 --- a/src/web/app/mobile/tags/timeline.tag +++ b/src/web/app/mobile/tags/timeline.tag @@ -1,21 +1,21 @@ <mk-timeline> - <div class="init" if={ init }> + <div class="init" v-if="init"> %fa:spinner .pulse%%i18n:common.loading% </div> - <div class="empty" if={ !init && posts.length == 0 }> + <div class="empty" v-if="!init && posts.length == 0"> %fa:R comments%{ opts.empty || '%i18n:mobile.tags.mk-timeline.empty%' } </div> <virtual each={ post, i in posts }> <mk-timeline-post post={ post }/> - <p class="date" if={ i != posts.length - 1 && post._date != posts[i + 1]._date }> + <p class="date" v-if="i != posts.length - 1 && post._date != posts[i + 1]._date"> <span>%fa:angle-up%{ post._datetext }</span> <span>%fa:angle-down%{ posts[i + 1]._datetext }</span> </p> </virtual> - <footer if={ !init }> - <button if={ canFetchMore } @click="more" disabled={ fetching }> - <span if={ !fetching }>%i18n:mobile.tags.mk-timeline.load-more%</span> - <span if={ fetching }>%i18n:common.loading%<mk-ellipsis/></span> + <footer v-if="!init"> + <button v-if="canFetchMore" @click="more" disabled={ fetching }> + <span v-if="!fetching">%i18n:mobile.tags.mk-timeline.load-more%</span> + <span v-if="fetching">%i18n:common.loading%<mk-ellipsis/></span> </button> </footer> <style lang="stylus" scoped> @@ -137,10 +137,10 @@ </mk-timeline> <mk-timeline-post class={ repost: isRepost }> - <div class="reply-to" if={ p.reply }> + <div class="reply-to" v-if="p.reply"> <mk-timeline-post-sub post={ p.reply }/> </div> - <div class="repost" if={ isRepost }> + <div class="repost" v-if="isRepost"> <p> <a class="avatar-anchor" href={ '/' + post.user.username }> <img class="avatar" src={ post.user.avatar_url + '?thumbnail&size=64' } alt="avatar"/> @@ -156,7 +156,7 @@ <div class="main"> <header> <a class="name" href={ '/' + p.user.username }>{ p.user.name }</a> - <span class="is-bot" if={ p.user.is_bot }>bot</span> + <span class="is-bot" v-if="p.user.is_bot">bot</span> <span class="username">@{ p.user.username }</span> <a class="created-at" href={ url }> <mk-time time={ p.created_at }/> @@ -164,32 +164,32 @@ </header> <div class="body"> <div class="text" ref="text"> - <p class="channel" if={ p.channel != null }><a href={ _CH_URL_ + '/' + p.channel.id } target="_blank">{ p.channel.title }</a>:</p> - <a class="reply" if={ p.reply }> + <p class="channel" v-if="p.channel != null"><a href={ _CH_URL_ + '/' + p.channel.id } target="_blank">{ p.channel.title }</a>:</p> + <a class="reply" v-if="p.reply"> %fa:reply% </a> <p class="dummy"></p> - <a class="quote" if={ p.repost != null }>RP:</a> + <a class="quote" v-if="p.repost != null">RP:</a> </div> - <div class="media" if={ p.media }> + <div class="media" v-if="p.media"> <mk-images images={ p.media }/> </div> - <mk-poll if={ p.poll } post={ p } ref="pollViewer"/> - <span class="app" if={ p.app }>via <b>{ p.app.name }</b></span> - <div class="repost" if={ p.repost }>%fa:quote-right -flip-h% + <mk-poll v-if="p.poll" post={ p } ref="pollViewer"/> + <span class="app" v-if="p.app">via <b>{ p.app.name }</b></span> + <div class="repost" v-if="p.repost">%fa:quote-right -flip-h% <mk-post-preview class="repost" post={ p.repost }/> </div> </div> <footer> <mk-reactions-viewer post={ p } ref="reactionsViewer"/> <button @click="reply"> - %fa:reply%<p class="count" if={ p.replies_count > 0 }>{ p.replies_count }</p> + %fa:reply%<p class="count" v-if="p.replies_count > 0">{ p.replies_count }</p> </button> <button @click="repost" title="Repost"> - %fa:retweet%<p class="count" if={ p.repost_count > 0 }>{ p.repost_count }</p> + %fa:retweet%<p class="count" v-if="p.repost_count > 0">{ p.repost_count }</p> </button> <button class={ reacted: p.my_reaction != null } @click="react" ref="reactButton"> - %fa:plus%<p class="count" if={ p.reactions_count > 0 }>{ p.reactions_count }</p> + %fa:plus%<p class="count" v-if="p.reactions_count > 0">{ p.reactions_count }</p> </button> <button class="menu" @click="menu" ref="menuButton"> %fa:ellipsis-h% diff --git a/src/web/app/mobile/tags/ui.tag b/src/web/app/mobile/tags/ui.tag index 8f0324f4df..0c783b8f3a 100644 --- a/src/web/app/mobile/tags/ui.tag +++ b/src/web/app/mobile/tags/ui.tag @@ -4,7 +4,7 @@ <div class="content"> <yield /> </div> - <mk-stream-indicator if={ SIGNIN }/> + <mk-stream-indicator v-if="SIGNIN"/> <style lang="stylus" scoped> :scope display block @@ -53,9 +53,9 @@ <div class="backdrop"></div> <div class="content"> <button class="nav" @click="parent.toggleDrawer">%fa:bars%</button> - <virtual if={ hasUnreadNotifications || hasUnreadMessagingMessages }>%fa:circle%</virtual> + <virtual v-if="hasUnreadNotifications || hasUnreadMessagingMessages">%fa:circle%</virtual> <h1 ref="title">Misskey</h1> - <button if={ func } @click="func"><mk-raw content={ funcIcon }/></button> + <button v-if="func" @click="func"><mk-raw content={ funcIcon }/></button> </div> </div> <style lang="stylus" scoped> @@ -227,15 +227,15 @@ <mk-ui-nav> <div class="backdrop" @click="parent.toggleDrawer"></div> <div class="body"> - <a class="me" if={ SIGNIN } href={ '/' + I.username }> + <a class="me" v-if="SIGNIN" href={ '/' + I.username }> <img class="avatar" src={ I.avatar_url + '?thumbnail&size=128' } alt="avatar"/> <p class="name">{ I.name }</p> </a> <div class="links"> <ul> <li><a href="/">%fa:home%%i18n:mobile.tags.mk-ui-nav.home%%fa:angle-right%</a></li> - <li><a href="/i/notifications">%fa:R bell%%i18n:mobile.tags.mk-ui-nav.notifications%<virtual if={ hasUnreadNotifications }>%fa:circle%</virtual>%fa:angle-right%</a></li> - <li><a href="/i/messaging">%fa:R comments%%i18n:mobile.tags.mk-ui-nav.messaging%<virtual if={ hasUnreadMessagingMessages }>%fa:circle%</virtual>%fa:angle-right%</a></li> + <li><a href="/i/notifications">%fa:R bell%%i18n:mobile.tags.mk-ui-nav.notifications%<virtual v-if="hasUnreadNotifications">%fa:circle%</virtual>%fa:angle-right%</a></li> + <li><a href="/i/messaging">%fa:R comments%%i18n:mobile.tags.mk-ui-nav.messaging%<virtual v-if="hasUnreadMessagingMessages">%fa:circle%</virtual>%fa:angle-right%</a></li> </ul> <ul> <li><a href={ _CH_URL_ } target="_blank">%fa:tv%%i18n:mobile.tags.mk-ui-nav.ch%%fa:angle-right%</a></li> diff --git a/src/web/app/mobile/tags/user.tag b/src/web/app/mobile/tags/user.tag index f0ecbd1c32..316fb764e9 100644 --- a/src/web/app/mobile/tags/user.tag +++ b/src/web/app/mobile/tags/user.tag @@ -1,5 +1,5 @@ <mk-user> - <div class="user" if={ !fetching }> + <div class="user" v-if="!fetching"> <header> <div class="banner" style={ user.banner_url ? 'background-image: url(' + user.banner_url + '?thumbnail&size=1024)' : '' }></div> <div class="body"> @@ -7,19 +7,19 @@ <a class="avatar"> <img src={ user.avatar_url + '?thumbnail&size=200' } alt="avatar"/> </a> - <mk-follow-button if={ SIGNIN && I.id != user.id } user={ user }/> + <mk-follow-button v-if="SIGNIN && I.id != user.id" user={ user }/> </div> <div class="title"> <h1>{ user.name }</h1> <span class="username">@{ user.username }</span> - <span class="followed" if={ user.is_followed }>%i18n:mobile.tags.mk-user.follows-you%</span> + <span class="followed" v-if="user.is_followed">%i18n:mobile.tags.mk-user.follows-you%</span> </div> <div class="description">{ user.description }</div> <div class="info"> - <p class="location" if={ user.profile.location }> + <p class="location" v-if="user.profile.location"> %fa:map-marker%{ user.profile.location } </p> - <p class="birthday" if={ user.profile.birthday }> + <p class="birthday" v-if="user.profile.birthday"> %fa:birthday-cake%{ user.profile.birthday.replace('-', '年').replace('-', '月') + '日' } ({ age(user.profile.birthday) }歳) </p> </div> @@ -45,9 +45,9 @@ </nav> </header> <div class="body"> - <mk-user-overview if={ page == 'overview' } user={ user }/> - <mk-user-timeline if={ page == 'posts' } user={ user }/> - <mk-user-timeline if={ page == 'media' } user={ user } with-media={ true }/> + <mk-user-overview v-if="page == 'overview'" user={ user }/> + <mk-user-timeline v-if="page == 'posts'" user={ user }/> + <mk-user-timeline v-if="page == 'media'" user={ user } with-media={ true }/> </div> </div> <style lang="stylus" scoped> @@ -215,7 +215,7 @@ </mk-user> <mk-user-overview> - <mk-post-detail if={ user.pinned_post } post={ user.pinned_post } compact={ true }/> + <mk-post-detail v-if="user.pinned_post" post={ user.pinned_post } compact={ true }/> <section class="recent-posts"> <h2>%fa:R comments%%i18n:mobile.tags.mk-user-overview.recent-posts%</h2> <div> @@ -252,7 +252,7 @@ <mk-user-overview-frequently-replied-users user={ user }/> </div> </section> - <section class="followers-you-know" if={ SIGNIN && I.id !== user.id }> + <section class="followers-you-know" v-if="SIGNIN && I.id !== user.id"> <h2>%fa:users%%i18n:mobile.tags.mk-user-overview.followers-you-know%</h2> <div> <mk-user-overview-followers-you-know user={ user }/> @@ -307,13 +307,13 @@ </mk-user-overview> <mk-user-overview-posts> - <p class="initializing" if={ initializing }>%fa:spinner .pulse .fw%%i18n:mobile.tags.mk-user-overview-posts.loading%<mk-ellipsis/></p> - <div if={ !initializing && posts.length > 0 }> + <p class="initializing" v-if="initializing">%fa:spinner .pulse .fw%%i18n:mobile.tags.mk-user-overview-posts.loading%<mk-ellipsis/></p> + <div v-if="!initializing && posts.length > 0"> <virtual each={ posts }> <mk-user-overview-posts-post-card post={ this }/> </virtual> </div> - <p class="empty" if={ !initializing && posts.length == 0 }>%i18n:mobile.tags.mk-user-overview-posts.no-posts%</p> + <p class="empty" v-if="!initializing && posts.length == 0">%i18n:mobile.tags.mk-user-overview-posts.no-posts%</p> <style lang="stylus" scoped> :scope display block @@ -436,13 +436,13 @@ </mk-user-overview-posts-post-card> <mk-user-overview-photos> - <p class="initializing" if={ initializing }>%fa:spinner .pulse .fw%%i18n:mobile.tags.mk-user-overview-photos.loading%<mk-ellipsis/></p> - <div class="stream" if={ !initializing && images.length > 0 }> + <p class="initializing" v-if="initializing">%fa:spinner .pulse .fw%%i18n:mobile.tags.mk-user-overview-photos.loading%<mk-ellipsis/></p> + <div class="stream" v-if="!initializing && images.length > 0"> <virtual each={ image in images }> <a class="img" style={ 'background-image: url(' + image.media.url + '?thumbnail&size=256)' } href={ '/' + image.post.user.username + '/' + image.post.id }></a> </virtual> </div> - <p class="empty" if={ !initializing && images.length == 0 }>%i18n:mobile.tags.mk-user-overview-photos.no-photos%</p> + <p class="empty" v-if="!initializing && images.length == 0">%i18n:mobile.tags.mk-user-overview-photos.no-photos%</p> <style lang="stylus" scoped> :scope display block @@ -506,7 +506,7 @@ </mk-user-overview-photos> <mk-user-overview-activity-chart> - <svg if={ data } ref="canvas" viewBox="0 0 30 1" preserveAspectRatio="none"> + <svg v-if="data" ref="canvas" viewBox="0 0 30 1" preserveAspectRatio="none"> <g each={ d, i in data.reverse() }> <rect width="0.8" riot-height={ d.postsH } riot-x={ i + 0.1 } riot-y={ 1 - d.postsH - d.repliesH - d.repostsH } @@ -558,12 +558,12 @@ </mk-user-overview-activity-chart> <mk-user-overview-keywords> - <div if={ user.keywords != null && user.keywords.length > 1 }> + <div v-if="user.keywords != null && user.keywords.length > 1"> <virtual each={ keyword in user.keywords }> <a>{ keyword }</a> </virtual> </div> - <p class="empty" if={ user.keywords == null || user.keywords.length == 0 }>%i18n:mobile.tags.mk-user-overview-keywords.no-keywords%</p> + <p class="empty" v-if="user.keywords == null || user.keywords.length == 0">%i18n:mobile.tags.mk-user-overview-keywords.no-keywords%</p> <style lang="stylus" scoped> :scope display block @@ -592,12 +592,12 @@ </mk-user-overview-keywords> <mk-user-overview-domains> - <div if={ user.domains != null && user.domains.length > 1 }> + <div v-if="user.domains != null && user.domains.length > 1"> <virtual each={ domain in user.domains }> <a style="opacity: { 0.5 + (domain.weight / 2) }">{ domain.domain }</a> </virtual> </div> - <p class="empty" if={ user.domains == null || user.domains.length == 0 }>%i18n:mobile.tags.mk-user-overview-domains.no-domains%</p> + <p class="empty" v-if="user.domains == null || user.domains.length == 0">%i18n:mobile.tags.mk-user-overview-domains.no-domains%</p> <style lang="stylus" scoped> :scope display block @@ -626,13 +626,13 @@ </mk-user-overview-domains> <mk-user-overview-frequently-replied-users> - <p class="initializing" if={ initializing }>%fa:spinner .pulse .fw%%i18n:mobile.tags.mk-user-overview-frequently-replied-users.loading%<mk-ellipsis/></p> - <div if={ !initializing && users.length > 0 }> + <p class="initializing" v-if="initializing">%fa:spinner .pulse .fw%%i18n:mobile.tags.mk-user-overview-frequently-replied-users.loading%<mk-ellipsis/></p> + <div v-if="!initializing && users.length > 0"> <virtual each={ users }> <mk-user-card user={ this.user }/> </virtual> </div> - <p class="empty" if={ !initializing && users.length == 0 }>%i18n:mobile.tags.mk-user-overview-frequently-replied-users.no-users%</p> + <p class="empty" v-if="!initializing && users.length == 0">%i18n:mobile.tags.mk-user-overview-frequently-replied-users.no-users%</p> <style lang="stylus" scoped> :scope display block @@ -678,13 +678,13 @@ </mk-user-overview-frequently-replied-users> <mk-user-overview-followers-you-know> - <p class="initializing" if={ initializing }>%fa:spinner .pulse .fw%%i18n:mobile.tags.mk-user-overview-followers-you-know.loading%<mk-ellipsis/></p> - <div if={ !initializing && users.length > 0 }> + <p class="initializing" v-if="initializing">%fa:spinner .pulse .fw%%i18n:mobile.tags.mk-user-overview-followers-you-know.loading%<mk-ellipsis/></p> + <div v-if="!initializing && users.length > 0"> <virtual each={ user in users }> <a href={ '/' + user.username }><img src={ user.avatar_url + '?thumbnail&size=64' } alt={ user.name }/></a> </virtual> </div> - <p class="empty" if={ !initializing && users.length == 0 }>%i18n:mobile.tags.mk-user-overview-followers-you-know.no-users%</p> + <p class="empty" v-if="!initializing && users.length == 0">%i18n:mobile.tags.mk-user-overview-followers-you-know.no-users%</p> <style lang="stylus" scoped> :scope display block diff --git a/src/web/app/mobile/tags/users-list.tag b/src/web/app/mobile/tags/users-list.tag index 31ca58185c..17b69e9e15 100644 --- a/src/web/app/mobile/tags/users-list.tag +++ b/src/web/app/mobile/tags/users-list.tag @@ -1,16 +1,16 @@ <mk-users-list> <nav> <span data-is-active={ mode == 'all' } @click="setMode.bind(this, 'all')">%i18n:mobile.tags.mk-users-list.all%<span>{ opts.count }</span></span> - <span if={ SIGNIN && opts.youKnowCount } data-is-active={ mode == 'iknow' } @click="setMode.bind(this, 'iknow')">%i18n:mobile.tags.mk-users-list.known%<span>{ opts.youKnowCount }</span></span> + <span v-if="SIGNIN && opts.youKnowCount" data-is-active={ mode == 'iknow' } @click="setMode.bind(this, 'iknow')">%i18n:mobile.tags.mk-users-list.known%<span>{ opts.youKnowCount }</span></span> </nav> - <div class="users" if={ !fetching && users.length != 0 }> + <div class="users" v-if="!fetching && users.length != 0"> <mk-user-preview each={ users } user={ this }/> </div> - <button class="more" if={ !fetching && next != null } @click="more" disabled={ moreFetching }> - <span if={ !moreFetching }>%i18n:mobile.tags.mk-users-list.load-more%</span> - <span if={ moreFetching }>%i18n:common.loading%<mk-ellipsis/></span></button> - <p class="no" if={ !fetching && users.length == 0 }>{ opts.noUsers }</p> - <p class="fetching" if={ fetching }>%fa:spinner .pulse .fw%%i18n:common.loading%<mk-ellipsis/></p> + <button class="more" v-if="!fetching && next != null" @click="more" disabled={ moreFetching }> + <span v-if="!moreFetching">%i18n:mobile.tags.mk-users-list.load-more%</span> + <span v-if="moreFetching">%i18n:common.loading%<mk-ellipsis/></span></button> + <p class="no" v-if="!fetching && users.length == 0">{ opts.noUsers }</p> + <p class="fetching" v-if="fetching">%fa:spinner .pulse .fw%%i18n:common.loading%<mk-ellipsis/></p> <style lang="stylus" scoped> :scope display block diff --git a/src/web/app/stats/tags/index.tag b/src/web/app/stats/tags/index.tag index 4949837066..84866c3d1b 100644 --- a/src/web/app/stats/tags/index.tag +++ b/src/web/app/stats/tags/index.tag @@ -1,6 +1,6 @@ <mk-index> <h1>Misskey<i>Statistics</i></h1> - <main if={ !initializing }> + <main v-if="!initializing"> <mk-users stats={ stats }/> <mk-posts stats={ stats }/> </main> @@ -58,7 +58,7 @@ <mk-posts> <h2>%i18n:stats.posts-count% <b>{ stats.posts_count }</b></h2> - <mk-posts-chart if={ !initializing } data={ data }/> + <mk-posts-chart v-if="!initializing" data={ data }/> <style lang="stylus" scoped> :scope display block @@ -84,7 +84,7 @@ <mk-users> <h2>%i18n:stats.users-count% <b>{ stats.users_count }</b></h2> - <mk-users-chart if={ !initializing } data={ data }/> + <mk-users-chart v-if="!initializing" data={ data }/> <style lang="stylus" scoped> :scope display block