wip
This commit is contained in:
parent
063193f429
commit
fb7e9310bf
101 changed files with 534 additions and 525 deletions
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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">
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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]
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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">
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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 }/>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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 }/>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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"/>
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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">
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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 }/>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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 }
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue