diff options
| author | こぴなたみぽ <syuilotan@yahoo.co.jp> | 2018-02-07 18:34:43 +0900 |
|---|---|---|
| committer | こぴなたみぽ <syuilotan@yahoo.co.jp> | 2018-02-07 18:34:43 +0900 |
| commit | fb7e9310bfbf032aecff924a4e300b2ad3aeabbb (patch) | |
| tree | d614f123215f9ff8237afcb889a6c76bee1101c1 /src/web/app/mobile | |
| parent | wip (diff) | |
| download | misskey-fb7e9310bfbf032aecff924a4e300b2ad3aeabbb.tar.gz misskey-fb7e9310bfbf032aecff924a4e300b2ad3aeabbb.tar.bz2 misskey-fb7e9310bfbf032aecff924a4e300b2ad3aeabbb.zip | |
wip
Diffstat (limited to 'src/web/app/mobile')
23 files changed, 141 insertions, 141 deletions
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 |