mirror of
https://activitypub.software/TransFem-org/Sharkey.git
synced 2024-12-13 05:00:45 +01:00
wip
This commit is contained in:
parent
822ba594ec
commit
a7aa24e7a3
115 changed files with 559 additions and 456 deletions
|
@ -20,6 +20,12 @@ import * as mocha from 'gulp-mocha';
|
|||
import * as replace from 'gulp-replace';
|
||||
import * as htmlmin from 'gulp-htmlmin';
|
||||
const uglifyes = require('uglify-es');
|
||||
const fontawesome = require('@fortawesome/fontawesome');
|
||||
const solid = require('@fortawesome/fontawesome-free-solid');
|
||||
|
||||
// Adds all the icons from the Solid style into our library for easy lookup
|
||||
fontawesome.library.add(solid);
|
||||
|
||||
import version from './src/version';
|
||||
|
||||
const uglify = uglifyComposer(uglifyes, console);
|
||||
|
@ -169,7 +175,8 @@ gulp.task('build:client:pug', [
|
|||
gulp.src('./src/web/app/base.pug')
|
||||
.pipe(pug({
|
||||
locals: {
|
||||
themeColor: constants.themeColor
|
||||
themeColor: constants.themeColor,
|
||||
facss: fontawesome.dom.css()
|
||||
}
|
||||
}))
|
||||
.pipe(htmlmin({
|
||||
|
|
|
@ -22,6 +22,8 @@
|
|||
"format": "gulp format"
|
||||
},
|
||||
"dependencies": {
|
||||
"@fortawesome/fontawesome": "^1.0.0",
|
||||
"@fortawesome/fontawesome-free-solid": "^5.0.0",
|
||||
"@prezzemolo/rap": "0.1.2",
|
||||
"@prezzemolo/zip": "0.0.3",
|
||||
"@types/bcryptjs": "2.4.1",
|
||||
|
|
|
@ -21,7 +21,8 @@ html
|
|||
script
|
||||
include ./../../../built/web/assets/safe.js
|
||||
|
||||
script(src='https://use.fontawesome.com/db921426cb.js' async)
|
||||
// FontAwesome style
|
||||
style #{facss}
|
||||
|
||||
body
|
||||
noscript: p
|
||||
|
|
|
@ -244,10 +244,10 @@
|
|||
<p if={ reply }><b>>>{ reply.index }</b> ({ reply.user.name }): <a onclick={ clearReply }>[x]</a></p>
|
||||
<textarea ref="text" disabled={ wait } oninput={ update } onkeydown={ onkeydown } onpaste={ onpaste } placeholder="%i18n:ch.tags.mk-channel-form.textarea%"></textarea>
|
||||
<div class="actions">
|
||||
<button onclick={ selectFile }><i class="fa fa-upload"></i>%i18n:ch.tags.mk-channel-form.upload%</button>
|
||||
<button onclick={ drive }><i class="fa fa-cloud"></i>%i18n:ch.tags.mk-channel-form.drive%</button>
|
||||
<button onclick={ selectFile }>%fa:upload%%i18n:ch.tags.mk-channel-form.upload%</button>
|
||||
<button onclick={ drive }>%fa:cloud%%i18n:ch.tags.mk-channel-form.drive%</button>
|
||||
<button class={ wait: wait } ref="submit" disabled={ wait || (refs.text.value.length == 0) } onclick={ post }>
|
||||
<i class="fa fa-paper-plane" if={ !wait }></i>{ wait ? '%i18n:ch.tags.mk-channel-form.posting%' : '%i18n:ch.tags.mk-channel-form.post%' }<mk-ellipsis if={ wait }/>
|
||||
<virtual if={ !wait }>%fa:paper-plane%</virtual>{ wait ? '%i18n:ch.tags.mk-channel-form.posting%' : '%i18n:ch.tags.mk-channel-form.post%' }<mk-ellipsis if={ wait }/>
|
||||
</button>
|
||||
</div>
|
||||
<mk-uploader ref="uploader"/>
|
||||
|
@ -269,7 +269,7 @@
|
|||
display flex
|
||||
|
||||
> button
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 0.25em
|
||||
|
||||
&:last-child
|
||||
|
|
|
@ -96,17 +96,17 @@
|
|||
</mk-error>
|
||||
|
||||
<mk-troubleshooter>
|
||||
<h1><i class="fa fa-wrench"></i>%i18n:common.tags.mk-error.troubleshooter.title%</h1>
|
||||
<h1>%fa:wrench%%i18n:common.tags.mk-error.troubleshooter.title%</h1>
|
||||
<div>
|
||||
<p data-wip={ network == null }><i if={ network != null } class="fa fa-{ network ? 'check' : 'times' }"></i>{ network == null ? '%i18n:common.tags.mk-error.troubleshooter.checking-network%' : '%i18n:common.tags.mk-error.troubleshooter.network%' }<mk-ellipsis if={ network == null }/></p>
|
||||
<p if={ network == true } data-wip={ internet == null }><i if={ internet != null } class="fa fa-{ internet ? 'check' : 'times' }"></i>{ internet == null ? '%i18n:common.tags.mk-error.troubleshooter.checking-internet%' : '%i18n:common.tags.mk-error.troubleshooter.internet%' }<mk-ellipsis if={ internet == null }/></p>
|
||||
<p if={ internet == true } data-wip={ server == null }><i if={ server != null } class="fa fa-{ server ? 'check' : 'times' }"></i>{ server == null ? '%i18n:common.tags.mk-error.troubleshooter.checking-server%' : '%i18n:common.tags.mk-error.troubleshooter.server%' }<mk-ellipsis if={ server == null }/></p>
|
||||
<p data-wip={ network == null }><virtual if={ network != null }><virtual if={ network }>%fa:check%</virtual><virtual if={ !network }>%fa:times%</virtual></virtual>{ network == null ? '%i18n:common.tags.mk-error.troubleshooter.checking-network%' : '%i18n:common.tags.mk-error.troubleshooter.network%' }<mk-ellipsis if={ network == null }/></p>
|
||||
<p if={ network == true } data-wip={ internet == null }><virtual if={ internet != null }><virtual if={ internet }>%fa:check%</virtual><virtual if={ !internet }>%fa:times%</virtual></virtual>{ internet == null ? '%i18n:common.tags.mk-error.troubleshooter.checking-internet%' : '%i18n:common.tags.mk-error.troubleshooter.internet%' }<mk-ellipsis if={ internet == null }/></p>
|
||||
<p if={ internet == true } data-wip={ server == null }><virtual if={ server != null }><virtual if={ server }>%fa:check%</virtual><virtual if={ !server }>%fa:times%</virtual></virtual>{ server == null ? '%i18n:common.tags.mk-error.troubleshooter.checking-server%' : '%i18n:common.tags.mk-error.troubleshooter.server%' }<mk-ellipsis if={ server == null }/></p>
|
||||
</div>
|
||||
<p if={ !end }>%i18n:common.tags.mk-error.troubleshooter.finding%<mk-ellipsis/></p>
|
||||
<p if={ network === false }><b><i class="fa fa-exclamation-triangle"></i>%i18n:common.tags.mk-error.troubleshooter.no-network%</b><br>%i18n:common.tags.mk-error.troubleshooter.no-network-desc%</p>
|
||||
<p if={ internet === false }><b><i class="fa fa-exclamation-triangle"></i>%i18n:common.tags.mk-error.troubleshooter.no-internet%</b><br>%i18n:common.tags.mk-error.troubleshooter.no-internet-desc%</p>
|
||||
<p if={ server === false }><b><i class="fa fa-exclamation-triangle"></i>%i18n:common.tags.mk-error.troubleshooter.no-server%</b><br>%i18n:common.tags.mk-error.troubleshooter.no-server-desc%</p>
|
||||
<p if={ server === true } class="success"><b><i class="fa fa-info-circle"></i>%i18n:common.tags.mk-error.troubleshooter.success%</b><br>%i18n:common.tags.mk-error.troubleshooter.success-desc%</p>
|
||||
<p if={ network === false }><b>%fa:exclamation-triangle%%i18n:common.tags.mk-error.troubleshooter.no-network%</b><br>%i18n:common.tags.mk-error.troubleshooter.no-network-desc%</p>
|
||||
<p if={ internet === false }><b>%fa:exclamation-triangle%%i18n:common.tags.mk-error.troubleshooter.no-internet%</b><br>%i18n:common.tags.mk-error.troubleshooter.no-internet-desc%</p>
|
||||
<p if={ server === false }><b>%fa:exclamation-triangle%%i18n:common.tags.mk-error.troubleshooter.no-server%</b><br>%i18n:common.tags.mk-error.troubleshooter.no-server-desc%</p>
|
||||
<p if={ server === true } class="success"><b>%fa:info-circle%%i18n:common.tags.mk-error.troubleshooter.success%</b><br>%i18n:common.tags.mk-error.troubleshooter.success-desc%</p>
|
||||
|
||||
<style>
|
||||
:scope
|
||||
|
@ -125,7 +125,7 @@
|
|||
color #444
|
||||
border-bottom solid 1px #eee
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 0.25em
|
||||
|
||||
> div
|
||||
|
@ -140,13 +140,13 @@
|
|||
&[data-wip]
|
||||
color #888
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 0.25em
|
||||
|
||||
&.fa-times
|
||||
&.times
|
||||
color #e03524
|
||||
|
||||
&.fa-check
|
||||
&.check
|
||||
color #84c32f
|
||||
|
||||
> p
|
||||
|
@ -157,7 +157,7 @@
|
|||
border-top solid 1px #eee
|
||||
|
||||
> b
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 0.25em
|
||||
|
||||
&.success
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<mk-file-type-icon>
|
||||
<i class="fa fa-file-image-o" if={ kind == 'image' }></i>
|
||||
<virtual if={ kind == 'image' }>%fa:file-image%</virtual>
|
||||
<style>
|
||||
:scope
|
||||
display inline
|
||||
|
|
|
@ -3,13 +3,13 @@
|
|||
<div class="files"></div>
|
||||
<mk-uploader ref="uploader"/>
|
||||
<button class="send" onclick={ send } disabled={ sending } title="%i18n:common.send%">
|
||||
<i class="fa fa-paper-plane" if={ !sending }></i><i class="fa fa-spinner fa-spin" if={ sending }></i>
|
||||
<virtual if={ !sending }>%fa:paper-plane%</virtual><virtual if={ sending }>%fa:spinner .spin%</virtual>
|
||||
</button>
|
||||
<button class="attach-from-local" type="button" title="%i18n:common.tags.mk-messaging-form.attach-from-local%">
|
||||
<i class="fa fa-upload"></i>
|
||||
%fa:upload%
|
||||
</button>
|
||||
<button class="attach-from-drive" type="button" title="%i18n:common.tags.mk-messaging-form.attach-from-drive%">
|
||||
<i class="fa fa-folder-open"></i>
|
||||
%fa:folder-open%
|
||||
</button>
|
||||
<input name="file" type="file" accept="image/*"/>
|
||||
<style>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<mk-messaging data-compact={ opts.compact }>
|
||||
<div class="search" if={ !opts.compact }>
|
||||
<div class="form">
|
||||
<label for="search-input"><i class="fa fa-search"></i></label>
|
||||
<label for="search-input">%fa:search%</label>
|
||||
<input ref="search" type="search" oninput={ search } onkeydown={ onSearchKeydown } placeholder="%i18n:common.tags.mk-messaging.search-user%"/>
|
||||
</div>
|
||||
<div class="result">
|
||||
|
@ -32,7 +32,7 @@
|
|||
</virtual>
|
||||
</div>
|
||||
<p class="no-history" if={ !fetching && history.length == 0 }>%i18n:common.tags.mk-messaging.no-history%</p>
|
||||
<p class="fetching" if={ fetching }><i class="fa fa-spinner fa-pulse fa-fw"></i>%i18n:common.loading%<mk-ellipsis/></p>
|
||||
<p class="fetching" if={ fetching }>%fa:spinner .pluse .fw%%i18n:common.loading%<mk-ellipsis/></p>
|
||||
<style>
|
||||
:scope
|
||||
display block
|
||||
|
@ -87,7 +87,7 @@
|
|||
width 38px
|
||||
pointer-events none
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
display block
|
||||
position absolute
|
||||
top 0
|
||||
|
@ -189,7 +189,6 @@
|
|||
font-weight normal
|
||||
color rgba(0, 0, 0, 0.3)
|
||||
|
||||
|
||||
> .history
|
||||
|
||||
> a
|
||||
|
@ -304,7 +303,7 @@
|
|||
text-align center
|
||||
color #aaa
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 4px
|
||||
|
||||
// TODO: element base media query
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<footer>
|
||||
<mk-time time={ message.created_at }/><i class="fa fa-pencil is-edited" if={ message.is_edited }></i>
|
||||
<mk-time time={ message.created_at }/><virtual if={ message.is_edited }>%fa:pencil-alt%</virtual>
|
||||
</footer>
|
||||
</div>
|
||||
<style>
|
||||
|
@ -147,7 +147,7 @@
|
|||
font-size 10px
|
||||
color rgba(0, 0, 0, 0.4)
|
||||
|
||||
> .is-edited
|
||||
> [data-fa]
|
||||
margin-left 4px
|
||||
|
||||
&:not([data-is-me='true'])
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
<mk-messaging-room>
|
||||
<div class="stream">
|
||||
<p class="init" if={ init }><i class="fa fa-spinner fa-spin"></i>%i18n:common.loading%</p>
|
||||
<p class="empty" if={ !init && messages.length == 0 }><i class="fa fa-info-circle"></i>%i18n:common.tags.mk-messaging-room.empty%</p>
|
||||
<p class="no-history" if={ !init && messages.length > 0 && !moreMessagesIsInStock }><i class="fa fa-flag"></i>%i18n:common.tags.mk-messaging-room.no-history%</p>
|
||||
<p class="init" if={ init }>%fa:spinner .spin%%i18n:common.loading%</p>
|
||||
<p class="empty" if={ !init && messages.length == 0 }>%fa:info-circle%%i18n:common.tags.mk-messaging-room.empty%</p>
|
||||
<p class="no-history" if={ !init && messages.length > 0 && !moreMessagesIsInStock }>%fa:flag%%i18n:common.tags.mk-messaging-room.no-history%</p>
|
||||
<button class="more { fetching: fetchingMoreMessages }" if={ moreMessagesIsInStock } onclick={ fetchMoreMessages } disabled={ fetchingMoreMessages }>
|
||||
<i class="fa fa-spinner fa-pulse fa-fw" if={ fetchingMoreMessages }></i>{ fetchingMoreMessages ? '%i18n:common.loading%' : '%i18n:common.tags.mk-messaging-room.more%' }
|
||||
<virtual if={ fetchingMoreMessages }>%fa:spinner .pluse .fw%</virtual>{ fetchingMoreMessages ? '%i18n:common.loading%' : '%i18n:common.tags.mk-messaging-room.more%' }
|
||||
</button>
|
||||
<virtual each={ message, i in messages }>
|
||||
<mk-messaging-message message={ message }/>
|
||||
|
@ -32,7 +32,7 @@
|
|||
font-size 0.8em
|
||||
color rgba(0, 0, 0, 0.4)
|
||||
|
||||
i
|
||||
[data-fa]
|
||||
margin-right 4px
|
||||
|
||||
> .empty
|
||||
|
@ -43,7 +43,7 @@
|
|||
font-size 0.8em
|
||||
color rgba(0, 0, 0, 0.4)
|
||||
|
||||
i
|
||||
[data-fa]
|
||||
margin-right 4px
|
||||
|
||||
> .no-history
|
||||
|
@ -54,7 +54,7 @@
|
|||
font-size 0.8em
|
||||
color rgba(0, 0, 0, 0.4)
|
||||
|
||||
i
|
||||
[data-fa]
|
||||
margin-right 4px
|
||||
|
||||
> .more
|
||||
|
@ -75,7 +75,7 @@
|
|||
&.fetching
|
||||
cursor wait
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 4px
|
||||
|
||||
> .message
|
||||
|
@ -141,7 +141,7 @@
|
|||
border-radius 16px
|
||||
transition opacity 1s ease
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
position absolute
|
||||
top 0
|
||||
left 10px
|
||||
|
@ -291,7 +291,7 @@
|
|||
|
||||
this.notify = message => {
|
||||
const n = document.createElement('p');
|
||||
n.innerHTML = '<i class="fa fa-arrow-circle-down"></i>' + message;
|
||||
n.innerHTML = '%fa:arrow-circle-down%' + message;
|
||||
n.onclick = () => {
|
||||
this.scrollToBottom();
|
||||
n.parentNode.removeChild(n);
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<mk-nav-links>
|
||||
<a href={ _ABOUT_URL_ }>%i18n:common.tags.mk-nav-links.about%</a><i>・</i><a href={ _STATS_URL_ }>%i18n:common.tags.mk-nav-links.stats%</a><i>・</i><a href={ _STATUS_URL_ }>%i18n:common.tags.mk-nav-links.status%</a><i>・</i><a href="http://zawazawa.jp/misskey/">%i18n:common.tags.mk-nav-links.wiki%</a><i>・</i><a href="https://github.com/syuilo/misskey/blob/master/DONORS.md">%i18n:common.tags.mk-nav-links.donors%</a><i>・</i><a href="https://github.com/syuilo/misskey">%i18n:common.tags.mk-nav-links.repository%</a><i>・</i><a href={ _DEV_URL_ }>%i18n:common.tags.mk-nav-links.develop%</a><i>・</i><a href="https://twitter.com/misskey_xyz" target="_blank">Follow us on <i class="fa fa-twitter"></i></a>
|
||||
<a href={ _ABOUT_URL_ }>%i18n:common.tags.mk-nav-links.about%</a><i>・</i><a href={ _STATS_URL_ }>%i18n:common.tags.mk-nav-links.stats%</a><i>・</i><a href={ _STATUS_URL_ }>%i18n:common.tags.mk-nav-links.status%</a><i>・</i><a href="http://zawazawa.jp/misskey/">%i18n:common.tags.mk-nav-links.wiki%</a><i>・</i><a href="https://github.com/syuilo/misskey/blob/master/DONORS.md">%i18n:common.tags.mk-nav-links.donors%</a><i>・</i><a href="https://github.com/syuilo/misskey">%i18n:common.tags.mk-nav-links.repository%</a><i>・</i><a href={ _DEV_URL_ }>%i18n:common.tags.mk-nav-links.develop%</a><i>・</i><a href="https://twitter.com/misskey_xyz" target="_blank">Follow us on %fa:twitter%</a>
|
||||
<style>
|
||||
:scope
|
||||
display inline
|
||||
|
|
|
@ -1,18 +1,18 @@
|
|||
<mk-poll-editor>
|
||||
<p class="caution" if={ choices.length < 2 }>
|
||||
<i class="fa fa-exclamation-triangle"></i>%i18n:common.tags.mk-poll-editor.no-only-one-choice%
|
||||
%fa:exclamation-triangle%%i18n:common.tags.mk-poll-editor.no-only-one-choice%
|
||||
</p>
|
||||
<ul ref="choices">
|
||||
<li each={ choice, i in choices }>
|
||||
<input value={ choice } oninput={ oninput.bind(null, i) } placeholder={ '%i18n:common.tags.mk-poll-editor.choice-n%'.replace('{}', i + 1) }>
|
||||
<button onclick={ remove.bind(null, i) } title="%i18n:common.tags.mk-poll-editor.remove%">
|
||||
<i class="fa fa-times"></i>
|
||||
%fa:times%
|
||||
</button>
|
||||
</li>
|
||||
</ul>
|
||||
<button class="add" if={ choices.length < 10 } onclick={ add }>%i18n:common.tags.mk-poll-editor.add%</button>
|
||||
<button class="destroy" onclick={ destroy } title="%i18n:common.tags.mk-poll-editor.destroy%">
|
||||
<i class="fa fa-times"></i>
|
||||
%fa:times%
|
||||
</button>
|
||||
<style>
|
||||
:scope
|
||||
|
@ -24,7 +24,7 @@
|
|||
font-size 0.8em
|
||||
color #f00
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 4px
|
||||
|
||||
> ul
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<li each={ poll.choices } onclick={ vote.bind(null, id) } class={ voted: voted } title={ !parent.isVoted ? '%i18n:common.tags.mk-poll.vote-to%'.replace('{}', text) : '' }>
|
||||
<div class="backdrop" style={ 'width:' + (parent.result ? (votes / parent.total * 100) : 0) + '%' }></div>
|
||||
<span>
|
||||
<i class="fa fa-check" if={ is_voted }></i>
|
||||
<virtual if={ is_voted }>%fa:check%</virtual>
|
||||
{ text }
|
||||
<span class="votes" if={ parent.result }>({ '%i18n:common.tags.mk-poll.vote-count%'.replace('{}', votes) })</span>
|
||||
</span>
|
||||
|
|
|
@ -2,7 +2,11 @@
|
|||
<div class="records" if={ history.length != 0 }>
|
||||
<div each={ history }>
|
||||
<mk-time time={ created_at }/>
|
||||
<header><i class="fa fa-check" if={ success }></i><i class="fa fa-times" if={ !success }></i><span class="ip">{ ip }</span></header>
|
||||
<header>
|
||||
<virtual if={ success }>%fa:check%</virtual>
|
||||
<virtual if={ !success }>%fa:times%</virtual>
|
||||
<span class="ip">{ ip }</span>
|
||||
</header>
|
||||
<pre><code>{ JSON.stringify(headers, null, ' ') }</code></pre>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -17,13 +21,13 @@
|
|||
|
||||
> header
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 8px
|
||||
|
||||
&.fa-check
|
||||
&.check
|
||||
color #0fda82
|
||||
|
||||
&.fa-times
|
||||
&.times
|
||||
color #ff3100
|
||||
|
||||
> .ip
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
<mk-signin>
|
||||
<form class={ signing: signing } onsubmit={ onsubmit }>
|
||||
<label class="user-name">
|
||||
<input ref="username" type="text" pattern="^[a-zA-Z0-9-]+$" placeholder="%i18n:common.tags.mk-signin.username%" autofocus="autofocus" required="required" oninput={ oninput }/><i class="fa fa-at"></i>
|
||||
<input ref="username" type="text" pattern="^[a-zA-Z0-9-]+$" placeholder="%i18n:common.tags.mk-signin.username%" autofocus="autofocus" required="required" oninput={ oninput }/>%fa:at%
|
||||
</label>
|
||||
<label class="password">
|
||||
<input ref="password" type="password" placeholder="%i18n:common.tags.mk-signin.password%" required="required"/><i class="fa fa-lock"></i>
|
||||
<input ref="password" type="password" placeholder="%i18n:common.tags.mk-signin.password%" required="required"/>%fa:lock%
|
||||
</label>
|
||||
<button type="submit" disabled={ signing }>{ signing ? '%i18n:common.tags.mk-signin.signing-in%' : '%i18n:common.tags.mk-signin.signin%' }</button>
|
||||
</form>
|
||||
|
|
|
@ -1,35 +1,35 @@
|
|||
<mk-signup>
|
||||
<form onsubmit={ onsubmit } autocomplete="off">
|
||||
<label class="username">
|
||||
<p class="caption"><i class="fa fa-at"></i>%i18n:common.tags.mk-signup.username%</p>
|
||||
<p class="caption">%fa:at%%i18n:common.tags.mk-signup.username%</p>
|
||||
<input ref="username" type="text" pattern="^[a-zA-Z0-9-]{3,20}$" placeholder="a~z、A~Z、0~9、-" autocomplete="off" required="required" onkeyup={ onChangeUsername }/>
|
||||
<p class="profile-page-url-preview" if={ refs.username.value != '' && username-state != 'invalidFormat' && username-state != 'minRange' && username-state != 'maxRange' }>{ _URL_ + '/' + refs.username.value }</p>
|
||||
<p class="info" if={ usernameState == 'wait' } style="color:#999"><i class="fa fa-fw fa-spinner fa-pulse"></i>%i18n:common.tags.mk-signup.checking%</p>
|
||||
<p class="info" if={ usernameState == 'ok' } style="color:#3CB7B5"><i class="fa fa-fw fa-check"></i>%i18n:common.tags.mk-signup.available%</p>
|
||||
<p class="info" if={ usernameState == 'unavailable' } style="color:#FF1161"><i class="fa fa-fw fa-exclamation-triangle"></i>%i18n:common.tags.mk-signup.unavailable%</p>
|
||||
<p class="info" if={ usernameState == 'error' } style="color:#FF1161"><i class="fa fa-fw fa-exclamation-triangle"></i>%i18n:common.tags.mk-signup.error%</p>
|
||||
<p class="info" if={ usernameState == 'invalid-format' } style="color:#FF1161"><i class="fa fa-fw fa-exclamation-triangle"></i>%i18n:common.tags.mk-signup.invalid-format%</p>
|
||||
<p class="info" if={ usernameState == 'min-range' } style="color:#FF1161"><i class="fa fa-fw fa-exclamation-triangle"></i>%i18n:common.tags.mk-signup.too-short%</p>
|
||||
<p class="info" if={ usernameState == 'max-range' } style="color:#FF1161"><i class="fa fa-fw fa-exclamation-triangle"></i>%i18n:common.tags.mk-signup.too-long%</p>
|
||||
<p class="info" if={ usernameState == 'wait' } style="color:#999">%fa:spinner .pluse .fw%%i18n:common.tags.mk-signup.checking%</p>
|
||||
<p class="info" if={ usernameState == 'ok' } style="color:#3CB7B5">%fa:check .fw%%i18n:common.tags.mk-signup.available%</p>
|
||||
<p class="info" if={ usernameState == 'unavailable' } style="color:#FF1161">%fa:exclamation-triangle .fw%%i18n:common.tags.mk-signup.unavailable%</p>
|
||||
<p class="info" if={ usernameState == 'error' } style="color:#FF1161">%fa:exclamation-triangle .fw%%i18n:common.tags.mk-signup.error%</p>
|
||||
<p class="info" if={ usernameState == 'invalid-format' } style="color:#FF1161">%fa:exclamation-triangle .fw%%i18n:common.tags.mk-signup.invalid-format%</p>
|
||||
<p class="info" if={ usernameState == 'min-range' } style="color:#FF1161">%fa:exclamation-triangle .fw%%i18n:common.tags.mk-signup.too-short%</p>
|
||||
<p class="info" if={ usernameState == 'max-range' } style="color:#FF1161">%fa:exclamation-triangle .fw%%i18n:common.tags.mk-signup.too-long%</p>
|
||||
</label>
|
||||
<label class="password">
|
||||
<p class="caption"><i class="fa fa-lock"></i>%i18n:common.tags.mk-signup.password%</p>
|
||||
<p class="caption">%fa:lock%%i18n:common.tags.mk-signup.password%</p>
|
||||
<input ref="password" type="password" placeholder="%i18n:common.tags.mk-signup.password-placeholder%" autocomplete="off" required="required" onkeyup={ onChangePassword }/>
|
||||
<div class="meter" if={ passwordStrength != '' } data-strength={ passwordStrength }>
|
||||
<div class="value" ref="passwordMetar"></div>
|
||||
</div>
|
||||
<p class="info" if={ passwordStrength == 'low' } style="color:#FF1161"><i class="fa fa-fw fa-exclamation-triangle"></i>%i18n:common.tags.mk-signup.weak-password%</p>
|
||||
<p class="info" if={ passwordStrength == 'medium' } style="color:#3CB7B5"><i class="fa fa-fw fa-check"></i>%i18n:common.tags.mk-signup.normal-password%</p>
|
||||
<p class="info" if={ passwordStrength == 'high' } style="color:#3CB7B5"><i class="fa fa-fw fa-check"></i>%i18n:common.tags.mk-signup.strong-password%</p>
|
||||
<p class="info" if={ passwordStrength == 'low' } style="color:#FF1161">%fa:exclamation-triangle .fw%%i18n:common.tags.mk-signup.weak-password%</p>
|
||||
<p class="info" if={ passwordStrength == 'medium' } style="color:#3CB7B5">%fa:check .fw%%i18n:common.tags.mk-signup.normal-password%</p>
|
||||
<p class="info" if={ passwordStrength == 'high' } style="color:#3CB7B5">%fa:check .fw%%i18n:common.tags.mk-signup.strong-password%</p>
|
||||
</label>
|
||||
<label class="retype-password">
|
||||
<p class="caption"><i class="fa fa-lock"></i>%i18n:common.tags.mk-signup.password%(%i18n:common.tags.mk-signup.retype%)</p>
|
||||
<p class="caption">%fa:lock%%i18n:common.tags.mk-signup.password%(%i18n:common.tags.mk-signup.retype%)</p>
|
||||
<input ref="passwordRetype" type="password" placeholder="%i18n:common.tags.mk-signup.retype-placeholder%" autocomplete="off" required="required" onkeyup={ onChangePasswordRetype }/>
|
||||
<p class="info" if={ passwordRetypeState == 'match' } style="color:#3CB7B5"><i class="fa fa-fw fa-check"></i>%i18n:common.tags.mk-signup.password-matched%</p>
|
||||
<p class="info" if={ passwordRetypeState == 'not-match' } style="color:#FF1161"><i class="fa fa-fw fa-exclamation-triangle"></i>%i18n:common.tags.mk-signup.password-not-matched%</p>
|
||||
<p class="info" if={ passwordRetypeState == 'match' } style="color:#3CB7B5">%fa:check .fw%%i18n:common.tags.mk-signup.password-matched%</p>
|
||||
<p class="info" if={ passwordRetypeState == 'not-match' } style="color:#FF1161">%fa:exclamation-triangle .fw%%i18n:common.tags.mk-signup.password-not-matched%</p>
|
||||
</label>
|
||||
<label class="recaptcha">
|
||||
<p class="caption"><i class="fa fa-toggle-on" if={ recaptchaed }></i><i class="fa fa-toggle-off" if={ !recaptchaed }></i>%i18n:common.tags.mk-signup.recaptcha%</p>
|
||||
<p class="caption"><virtual if={ recaptchaed }>%fa:toggle-on%</virtual><virtual if={ !recaptchaed }>%fa:toggle-off%</virtual>%i18n:common.tags.mk-signup.recaptcha%</p>
|
||||
<div if={ recaptcha } class="g-recaptcha" data-callback="onRecaptchaed" data-expired-callback="onRecaptchaExpired" data-sitekey={ recaptcha.site_key }></div>
|
||||
</label>
|
||||
<label class="agree-tou">
|
||||
|
@ -55,7 +55,7 @@
|
|||
color #828888
|
||||
font-size 0.95em
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 0.25em
|
||||
color #96adac
|
||||
|
||||
|
@ -64,7 +64,7 @@
|
|||
margin 4px 0
|
||||
font-size 0.8em
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 0.3em
|
||||
|
||||
&.username
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
<mk-stream-indicator>
|
||||
<p if={ connection.state == 'initializing' }>
|
||||
<i class="fa fa-spinner fa-spin"></i>
|
||||
%fa:spinner .spin%
|
||||
<span>%i18n:common.tags.mk-stream-indicator.connecting%<mk-ellipsis/></span>
|
||||
</p>
|
||||
<p if={ connection.state == 'reconnecting' }>
|
||||
<i class="fa fa-spinner fa-spin"></i>
|
||||
%fa:spinner .spin%
|
||||
<span>%i18n:common.tags.mk-stream-indicator.reconnecting%<mk-ellipsis/></span>
|
||||
</p>
|
||||
<p if={ connection.state == 'connected' }>
|
||||
<i class="fa fa-check"></i>
|
||||
%fa:check%
|
||||
<span>%i18n:common.tags.mk-stream-indicator.connected%</span>
|
||||
</p>
|
||||
<style>
|
||||
|
@ -30,7 +30,7 @@
|
|||
display block
|
||||
margin 0
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 0.25em
|
||||
|
||||
</style>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<ol if={ uploads.length > 0 }>
|
||||
<li each={ uploads }>
|
||||
<div class="img" style="background-image: url({ img })"></div>
|
||||
<p class="name"><i class="fa fa-spinner fa-pulse"></i>{ name }</p>
|
||||
<p class="name">%fa:spinner .pluse%{ name }</p>
|
||||
<p class="status"><span class="initing" if={ progress == undefined }>%i18n:common.tags.mk-uploader.waiting%<mk-ellipsis/></span><span class="kb" if={ progress != undefined }>{ String(Math.floor(progress.value / 1024)).replace(/(\d)(?=(\d\d\d)+(?!\d))/g, '$1,') }<i>KB</i> / { String(Math.floor(progress.max / 1024)).replace(/(\d)(?=(\d\d\d)+(?!\d))/g, '$1,') }<i>KB</i></span><span class="percentage" if={ progress != undefined }>{ Math.floor((progress.value / progress.max) * 100) }</span></p>
|
||||
<progress if={ progress != undefined && progress.value != progress.max } value={ progress.value } max={ progress.max }></progress>
|
||||
<div class="progress initing" if={ progress == undefined }></div>
|
||||
|
@ -60,7 +60,7 @@
|
|||
text-overflow ellipsis
|
||||
overflow hidden
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 4px
|
||||
|
||||
> .status
|
||||
|
|
|
@ -12,7 +12,7 @@ export default () => {
|
|||
};
|
||||
|
||||
function adBlockDetected() {
|
||||
dialog('<i class="fa fa-exclamation-triangle"></i>広告ブロッカーを無効にしてください',
|
||||
dialog('%fa:exclamation-triangle%広告ブロッカーを無効にしてください',
|
||||
'<strong>Misskeyは広告を掲載していません</strong>が、広告をブロックする機能が有効だと一部の機能が利用できなかったり、不具合が発生する場合があります。',
|
||||
[{
|
||||
text: 'OK'
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import dialog from './dialog';
|
||||
|
||||
export default () => {
|
||||
dialog('<i class="fa fa-exclamation-triangle"></i>Not implemented yet',
|
||||
dialog('%fa:exclamation-triangle%Not implemented yet',
|
||||
'要求された操作は実装されていません。<br>→<a href="https://github.com/syuilo/misskey" target="_blank">Misskeyの開発に参加する</a>', [{
|
||||
text: 'OK'
|
||||
}]);
|
||||
|
|
|
@ -63,7 +63,7 @@ export default (I, cb, file = null) => {
|
|||
api(I, 'i/update', {
|
||||
avatar_id: file.id
|
||||
}).then(i => {
|
||||
dialog('<i class="fa fa-info-circle"></i>アバターを更新しました',
|
||||
dialog('%fa:info-circle%アバターを更新しました',
|
||||
'新しいアバターが反映されるまで時間がかかる場合があります。',
|
||||
[{
|
||||
text: 'わかった'
|
||||
|
@ -78,7 +78,7 @@ export default (I, cb, file = null) => {
|
|||
} else {
|
||||
const browser = (riot as any).mount(document.body.appendChild(document.createElement('mk-select-file-from-drive-window')), {
|
||||
multiple: false,
|
||||
title: '<i class="fa fa-picture-o"></i>アバターにする画像を選択'
|
||||
title: '%fa:image%アバターにする画像を選択'
|
||||
})[0];
|
||||
|
||||
browser.one('selected', file => {
|
||||
|
|
|
@ -63,7 +63,7 @@ export default (I, cb, file = null) => {
|
|||
api(I, 'i/update', {
|
||||
banner_id: file.id
|
||||
}).then(i => {
|
||||
dialog('<i class="fa fa-info-circle"></i>バナーを更新しました',
|
||||
dialog('%fa:info-circle%バナーを更新しました',
|
||||
'新しいバナーが反映されるまで時間がかかる場合があります。',
|
||||
[{
|
||||
text: 'わかりました。'
|
||||
|
@ -78,7 +78,7 @@ export default (I, cb, file = null) => {
|
|||
} else {
|
||||
const browser = (riot as any).mount(document.body.appendChild(document.createElement('mk-select-file-from-drive-window')), {
|
||||
multiple: false,
|
||||
title: '<i class="fa fa-picture-o"></i>バナーにする画像を選択'
|
||||
title: '%fa:image%バナーにする画像を選択'
|
||||
})[0];
|
||||
|
||||
browser.one('selected', file => {
|
||||
|
|
|
@ -1,6 +1,10 @@
|
|||
<mk-big-follow-button>
|
||||
<button class={ wait: wait, follow: !user.is_following, unfollow: user.is_following } if={ !init } onclick={ onclick } disabled={ wait } title={ user.is_following ? 'フォロー解除' : 'フォローする' }><span if={ !wait && user.is_following }><i class="fa fa-minus"></i>フォロー解除</span><span if={ !wait && !user.is_following }><i class="fa fa-plus"></i>フォロー</span><i class="fa fa-spinner fa-pulse fa-fw" if={ wait }></i></button>
|
||||
<div class="init" if={ init }><i class="fa fa-spinner fa-pulse fa-fw"></i></div>
|
||||
<button class={ wait: wait, follow: !user.is_following, unfollow: user.is_following } if={ !init } onclick={ 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 .pluse .fw%</virtual>
|
||||
</button>
|
||||
<div class="init" if={ init }>%fa:spinner .pluse .fw%</div>
|
||||
<style>
|
||||
:scope
|
||||
display block
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
> p
|
||||
cursor default
|
||||
|
||||
> i:last-child
|
||||
> [data-fa]:last-child
|
||||
position absolute
|
||||
top 0
|
||||
right 8px
|
||||
|
|
|
@ -1,12 +1,14 @@
|
|||
<mk-crop-window>
|
||||
<mk-window ref="window" is-modal={ true } width={ '800px' }><yield to="header"><i class="fa fa-crop"></i>{ parent.title }</yield>
|
||||
<yield to="content">
|
||||
<div class="body"><img ref="img" src={ parent.image.url + '?thumbnail&quality=80' } alt=""/></div>
|
||||
<div class="action">
|
||||
<button class="skip" onclick={ parent.skip }>クロップをスキップ</button>
|
||||
<button class="cancel" onclick={ parent.cancel }>キャンセル</button>
|
||||
<button class="ok" onclick={ parent.ok }>決定</button>
|
||||
</div></yield>
|
||||
<mk-window ref="window" is-modal={ true } width={ '800px' }>
|
||||
<yield to="header">%fa:crop%{ parent.title }</yield>
|
||||
<yield to="content">
|
||||
<div class="body"><img ref="img" src={ parent.image.url + '?thumbnail&quality=80' } alt=""/></div>
|
||||
<div class="action">
|
||||
<button class="skip" onclick={ parent.skip }>クロップをスキップ</button>
|
||||
<button class="cancel" onclick={ parent.cancel }>キャンセル</button>
|
||||
<button class="ok" onclick={ parent.ok }>決定</button>
|
||||
</div>
|
||||
</yield>
|
||||
</mk-window>
|
||||
<style>
|
||||
:scope
|
||||
|
@ -14,7 +16,7 @@
|
|||
|
||||
> mk-window
|
||||
[data-yield='header']
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 4px
|
||||
|
||||
[data-yield='content']
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
<mk-contextmenu ref="ctx">
|
||||
<ul>
|
||||
<li onclick={ parent.createFolder }>
|
||||
<p><i class="fa fa-folder-o"></i>%i18n:desktop.tags.mk-drive-browser-base-contextmenu.create-folder%</p>
|
||||
<p>%fa:folder-o%%i18n:desktop.tags.mk-drive-browser-base-contextmenu.create-folder%</p>
|
||||
</li>
|
||||
<li onclick={ parent.upload }>
|
||||
<p><i class="fa fa-upload"></i>%i18n:desktop.tags.mk-drive-browser-base-contextmenu.upload%</p>
|
||||
<p>%fa:upload%%i18n:desktop.tags.mk-drive-browser-base-contextmenu.upload%</p>
|
||||
</li>
|
||||
<li onclick={ parent.urlUpload }>
|
||||
<p><i class="fa fa-cloud-upload"></i>%i18n:desktop.tags.mk-drive-browser-base-contextmenu.url-upload%</p>
|
||||
<p>%fa:cloud-upload%%i18n:desktop.tags.mk-drive-browser-base-contextmenu.url-upload%</p>
|
||||
</li>
|
||||
</ul>
|
||||
</mk-contextmenu>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<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>
|
||||
<i class="fa fa-cloud"></i>%i18n:desktop.tags.mk-drive-browser-window.drive%
|
||||
%fa:cloud%%i18n:desktop.tags.mk-drive-browser-window.drive%
|
||||
</yield>
|
||||
<yield to="content">
|
||||
<mk-drive-browser multiple={ true } folder={ parent.folder } ref="browser"/>
|
||||
|
@ -19,7 +19,7 @@
|
|||
margin 0
|
||||
font-size 80%
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 4px
|
||||
|
||||
[data-yield='content']
|
||||
|
|
|
@ -3,10 +3,10 @@
|
|||
<div class="path" oncontextmenu={ pathOncontextmenu }>
|
||||
<mk-drive-browser-nav-folder class={ current: folder == null } folder={ null }/>
|
||||
<virtual each={ folder in hierarchyFolders }>
|
||||
<span class="separator"><i class="fa fa-angle-right"></i></span>
|
||||
<span class="separator">%fa:angle-right%</span>
|
||||
<mk-drive-browser-nav-folder folder={ folder }/>
|
||||
</virtual>
|
||||
<span class="separator" if={ folder != null }><i class="fa fa-angle-right"></i></span>
|
||||
<span class="separator" if={ folder != null }>%fa:angle-right%</span>
|
||||
<span class="folder current" if={ folder != null }>{ folder.name }</span>
|
||||
</div>
|
||||
<input class="search" type="search" placeholder=" %i18n:desktop.tags.mk-drive-browser.search%"/>
|
||||
|
@ -100,7 +100,7 @@
|
|||
opacity 0.5
|
||||
cursor default
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
margin 0
|
||||
|
||||
> .search
|
||||
|
@ -450,7 +450,7 @@
|
|||
}).catch(err => {
|
||||
switch (err) {
|
||||
case 'detected-circular-definition':
|
||||
dialog('<i class="fa fa-exclamation-triangle"></i>%i18n:desktop.tags.mk-drive-browser.unable-to-process%',
|
||||
dialog('%fa:exclamation-triangle%%i18n:desktop.tags.mk-drive-browser.unable-to-process%',
|
||||
'%i18n:desktop.tags.mk-drive-browser.circular-reference-detected%', [{
|
||||
text: '%i18n:common.ok%'
|
||||
}]);
|
||||
|
@ -492,7 +492,7 @@
|
|||
folder_id: this.folder ? this.folder.id : undefined
|
||||
});
|
||||
|
||||
dialog('<i class="fa fa-check"></i>%i18n:desktop.tags.mk-drive-browser.url-upload-requested%',
|
||||
dialog('%fa:check%%i18n:desktop.tags.mk-drive-browser.url-upload-requested%',
|
||||
'%i18n:desktop.tags.mk-drive-browser.may-take-time%', [{
|
||||
text: '%i18n:common.ok%'
|
||||
}]);
|
||||
|
|
|
@ -2,19 +2,19 @@
|
|||
<mk-contextmenu ref="ctx">
|
||||
<ul>
|
||||
<li onclick={ parent.rename }>
|
||||
<p><i class="fa fa-i-cursor"></i>%i18n:desktop.tags.mk-drive-browser-file-contextmenu.rename%</p>
|
||||
<p>%fa:i-cursor%%i18n:desktop.tags.mk-drive-browser-file-contextmenu.rename%</p>
|
||||
</li>
|
||||
<li onclick={ parent.copyUrl }>
|
||||
<p><i class="fa fa-link"></i>%i18n:desktop.tags.mk-drive-browser-file-contextmenu.copy-url%</p>
|
||||
<p>%fa:link%%i18n:desktop.tags.mk-drive-browser-file-contextmenu.copy-url%</p>
|
||||
</li>
|
||||
<li><a href={ parent.file.url + '?download' } download={ parent.file.name } onclick={ parent.download }><i class="fa fa-download"></i>%i18n:desktop.tags.mk-drive-browser-file-contextmenu.download%</a></li>
|
||||
<li><a href={ parent.file.url + '?download' } download={ parent.file.name } onclick={ parent.download }>%fa:download%%i18n:desktop.tags.mk-drive-browser-file-contextmenu.download%</a></li>
|
||||
<li class="separator"></li>
|
||||
<li onclick={ parent.delete }>
|
||||
<p><i class="fa fa-trash-o"></i>%i18n:common.delete%</p>
|
||||
<p>%fa:trash-o%%i18n:common.delete%</p>
|
||||
</li>
|
||||
<li class="separator"></li>
|
||||
<li class="has-child">
|
||||
<p>%i18n:desktop.tags.mk-drive-browser-file-contextmenu.else-files%<i class="fa fa-caret-right"></i></p>
|
||||
<p>%i18n:desktop.tags.mk-drive-browser-file-contextmenu.else-files%%fa:caret-right%</p>
|
||||
<ul>
|
||||
<li onclick={ parent.setAvatar }>
|
||||
<p>%i18n:desktop.tags.mk-drive-browser-file-contextmenu.set-as-avatar%</p>
|
||||
|
@ -25,7 +25,7 @@
|
|||
</ul>
|
||||
</li>
|
||||
<li class="has-child">
|
||||
<p>%i18n:desktop.tags.mk-drive-browser-file-contextmenu.open-in-app%...<i class="fa fa-caret-right"></i></p>
|
||||
<p>%i18n:desktop.tags.mk-drive-browser-file-contextmenu.open-in-app%...%fa:caret-right%</p>
|
||||
<ul>
|
||||
<li onclick={ parent.addApp }>
|
||||
<p>%i18n:desktop.tags.mk-drive-browser-file-contextmenu.add-app%...</p>
|
||||
|
@ -72,7 +72,7 @@
|
|||
this.copyUrl = () => {
|
||||
copyToClipboard(this.file.url);
|
||||
this.refs.ctx.close();
|
||||
dialog('<i class="fa fa-check"></i>%i18n:desktop.tags.mk-drive-browser-file-contextmenu.copied%',
|
||||
dialog('%fa:check%%i18n:desktop.tags.mk-drive-browser-file-contextmenu.copied%',
|
||||
'%i18n:desktop.tags.mk-drive-browser-file-contextmenu.copied-url-to-clipboard%', [{
|
||||
text: '%i18n:common.ok%'
|
||||
}]);
|
||||
|
|
|
@ -2,18 +2,18 @@
|
|||
<mk-contextmenu ref="ctx">
|
||||
<ul>
|
||||
<li onclick={ parent.move }>
|
||||
<p><i class="fa fa-arrow-right"></i>%i18n:desktop.tags.mk-drive-browser-folder-contextmenu.move-to-this-folder%</p>
|
||||
<p>%fa:arrow-right%%i18n:desktop.tags.mk-drive-browser-folder-contextmenu.move-to-this-folder%</p>
|
||||
</li>
|
||||
<li onclick={ parent.newWindow }>
|
||||
<p><i class="fa fa-share-square-o"></i>%i18n:desktop.tags.mk-drive-browser-folder-contextmenu.show-in-new-window%</p>
|
||||
<p>%fa:share-square-o%%i18n:desktop.tags.mk-drive-browser-folder-contextmenu.show-in-new-window%</p>
|
||||
</li>
|
||||
<li class="separator"></li>
|
||||
<li onclick={ parent.rename }>
|
||||
<p><i class="fa fa-i-cursor"></i>%i18n:desktop.tags.mk-drive-browser-folder-contextmenu.rename%</p>
|
||||
<p>%fa:i-cursor%%i18n:desktop.tags.mk-drive-browser-folder-contextmenu.rename%</p>
|
||||
</li>
|
||||
<li class="separator"></li>
|
||||
<li onclick={ parent.delete }>
|
||||
<p><i class="fa fa-trash-o"></i>%i18n:common.delete%</p>
|
||||
<p>%fa:trash-o%%i18n:common.delete%</p>
|
||||
</li>
|
||||
</ul>
|
||||
</mk-contextmenu>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<mk-drive-browser-folder data-is-contextmenu-showing={ isContextmenuShowing.toString() } data-draghover={ draghover.toString() } onclick={ 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"><i class="fa fa-fw { fa-folder-o: !hover, fa-folder-open-o: hover }"></i>{ folder.name }</p>
|
||||
<p class="name"><virtual if={ hover }>%fa:folder-open .fw%</virtual><virtual if={ !hover }>%fa:folder .fw%</virtual>{ folder.name }</p>
|
||||
<style>
|
||||
:scope
|
||||
display block
|
||||
|
@ -41,7 +41,7 @@
|
|||
font-size 0.9em
|
||||
color darken($theme-color, 30%)
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 4px
|
||||
margin-left 2px
|
||||
text-align left
|
||||
|
@ -143,7 +143,7 @@
|
|||
}).catch(err => {
|
||||
switch (err) {
|
||||
case 'detected-circular-definition':
|
||||
dialog('<i class="fa fa-exclamation-triangle"></i>%i18n:desktop.tags.mk-drive-browser-folder.unable-to-process%',
|
||||
dialog('%fa:exclamation-triangle%%i18n:desktop.tags.mk-drive-browser-folder.unable-to-process%',
|
||||
'%i18n:desktop.tags.mk-drive-browser-folder.circular-reference-detected%', [{
|
||||
text: '%i18n:common.ok%'
|
||||
}]);
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
<mk-drive-browser-nav-folder data-draghover={ draghover } onclick={ onclick } ondragover={ ondragover } ondragenter={ ondragenter } ondragleave={ ondragleave } ondrop={ ondrop }><i class="fa fa-cloud" if={ folder == null }></i><span>{ folder == null ? '%i18n:desktop.tags.mk-drive-browser-nav-folder.drive%' : folder.name }</span>
|
||||
<mk-drive-browser-nav-folder data-draghover={ draghover } onclick={ 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>
|
||||
<style>
|
||||
:scope
|
||||
&[data-draghover]
|
||||
|
|
|
@ -1,6 +1,10 @@
|
|||
<mk-follow-button>
|
||||
<button class={ wait: wait, follow: !user.is_following, unfollow: user.is_following } if={ !init } onclick={ onclick } disabled={ wait } title={ user.is_following ? 'フォロー解除' : 'フォローする' }><i class="fa fa-minus" if={ !wait && user.is_following }></i><i class="fa fa-plus" if={ !wait && !user.is_following }></i><i class="fa fa-spinner fa-pulse fa-fw" if={ wait }></i></button>
|
||||
<div class="init" if={ init }><i class="fa fa-spinner fa-pulse fa-fw"></i></div>
|
||||
<button class={ wait: wait, follow: !user.is_following, unfollow: user.is_following } if={ !init } onclick={ 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 .pluse .fw%</virtual>
|
||||
</button>
|
||||
<div class="init" if={ init }>%fa:spinner .pluse .fw%</div>
|
||||
<style>
|
||||
:scope
|
||||
display block
|
||||
|
|
|
@ -9,9 +9,9 @@
|
|||
</div>
|
||||
</div>
|
||||
<p class="empty" if={ !fetching && users.length == 0 }>おすすめのユーザーは見つかりませんでした。</p>
|
||||
<p class="fetching" if={ fetching }><i class="fa fa-spinner fa-pulse fa-fw"></i>読み込んでいます<mk-ellipsis/></p>
|
||||
<p class="fetching" if={ fetching }>%fa:spinner .pluse .fw%読み込んでいます<mk-ellipsis/></p>
|
||||
<a class="refresh" onclick={ refresh }>もっと見る</a>
|
||||
<button class="close" onclick={ close } title="閉じる"><i class="fa fa-times"></i></button>
|
||||
<button class="close" onclick={ close } title="閉じる">%fa:times%</button>
|
||||
<style>
|
||||
:scope
|
||||
display block
|
||||
|
@ -85,7 +85,7 @@
|
|||
text-align center
|
||||
color #aaa
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 4px
|
||||
|
||||
> .refresh
|
||||
|
@ -116,7 +116,7 @@
|
|||
&:active
|
||||
color #222
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
padding 14px
|
||||
|
||||
</style>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<mk-access-log-home-widget>
|
||||
<virtual if={ data.design == 0 }>
|
||||
<p class="title"><i class="fa fa-server"></i>%i18n:desktop.tags.mk-access-log-home-widget.title%</p>
|
||||
<p class="title">%fa:server%%i18n:desktop.tags.mk-access-log-home-widget.title%</p>
|
||||
</virtual>
|
||||
<div ref="log">
|
||||
<p each={ requests }>
|
||||
|
@ -27,7 +27,7 @@
|
|||
color #888
|
||||
box-shadow 0 1px rgba(0, 0, 0, 0.07)
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 4px
|
||||
|
||||
> div
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
<mk-channel-home-widget>
|
||||
<virtual if={ !data.compact }>
|
||||
<p class="title"><i class="fa fa-television"></i>{
|
||||
<p class="title">%fa:tv%{
|
||||
channel ? channel.title : '%i18n:desktop.tags.mk-channel-home-widget.title%'
|
||||
}</p>
|
||||
<button onclick={ settings } title="%i18n:desktop.tags.mk-channel-home-widget.settings%"><i class="fa fa-cog"></i></button>
|
||||
<button onclick={ 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>
|
||||
<mk-channel ref="channel" show={ this.data.channel }/>
|
||||
|
@ -25,7 +25,7 @@
|
|||
color #888
|
||||
box-shadow 0 1px rgba(0, 0, 0, 0.07)
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 4px
|
||||
|
||||
> button
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<mk-donation-home-widget>
|
||||
<article>
|
||||
<h1><i class="fa fa-heart"></i>%i18n:desktop.tags.mk-donation-home-widget.title%</h1>
|
||||
<h1>%fa:heart%%i18n:desktop.tags.mk-donation-home-widget.title%</h1>
|
||||
<p>{'%i18n:desktop.tags.mk-donation-home-widget.text%'.substr(0, '%i18n:desktop.tags.mk-donation-home-widget.text%'.indexOf('{'))}<a href="/syuilo" data-user-preview="@syuilo">@syuilo</a>{'%i18n:desktop.tags.mk-donation-home-widget.text%'.substr('%i18n:desktop.tags.mk-donation-home-widget.text%'.indexOf('}') + 1)}</p>
|
||||
</article>
|
||||
<style>
|
||||
|
@ -18,7 +18,7 @@
|
|||
font-size 1em
|
||||
color #888
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 0.25em
|
||||
|
||||
> p
|
||||
|
|
|
@ -3,8 +3,13 @@
|
|||
<div class="loading" if={ isLoading }>
|
||||
<mk-ellipsis-icon/>
|
||||
</div>
|
||||
<p class="empty" if={ isEmpty }><i class="fa fa-comments-o"></i><span if={ mode == 'all' }>あなた宛ての投稿はありません。</span><span if={ mode == 'following' }>あなたがフォローしているユーザーからの言及はありません。</span></p>
|
||||
<mk-timeline ref="timeline"><yield to="footer"><i class="fa fa-moon-o" if={ !parent.moreLoading }></i><i class="fa fa-spinner fa-pulse fa-fw" if={ parent.moreLoading }></i></yield/>
|
||||
<p class="empty" if={ isEmpty }>%fa:R comments%<span if={ mode == 'all' }>あなた宛ての投稿はありません。</span><span 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 .pluse .fw%</virtual>
|
||||
</yield/>
|
||||
</mk-timeline>
|
||||
<style>
|
||||
:scope
|
||||
display block
|
||||
|
@ -40,7 +45,7 @@
|
|||
text-align center
|
||||
color #999
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
display block
|
||||
margin-bottom 16px
|
||||
font-size 3em
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<mk-messaging-home-widget>
|
||||
<virtual if={ data.design == 0 }>
|
||||
<p class="title"><i class="fa fa-comments"></i>%i18n:desktop.tags.mk-messaging-home-widget.title%</p>
|
||||
<p class="title">%fa:comments%%i18n:desktop.tags.mk-messaging-home-widget.title%</p>
|
||||
</virtual>
|
||||
<mk-messaging ref="index" compact={ true }/>
|
||||
<style>
|
||||
|
@ -21,7 +21,7 @@
|
|||
color #888
|
||||
box-shadow 0 1px rgba(0, 0, 0, 0.07)
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 4px
|
||||
|
||||
> mk-messaging
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<mk-notifications-home-widget>
|
||||
<virtual if={ !data.compact }>
|
||||
<p class="title"><i class="fa fa-bell-o"></i>%i18n:desktop.tags.mk-notifications-home-widget.title%</p>
|
||||
<button onclick={ settings } title="%i18n:desktop.tags.mk-notifications-home-widget.settings%"><i class="fa fa-cog"></i></button>
|
||||
<p class="title">%fa:R bell%%i18n:desktop.tags.mk-notifications-home-widget.title%</p>
|
||||
<button onclick={ settings } title="%i18n:desktop.tags.mk-notifications-home-widget.settings%">%fa:cog%</button>
|
||||
</virtual>
|
||||
<mk-notifications/>
|
||||
<style>
|
||||
|
@ -21,7 +21,7 @@
|
|||
color #888
|
||||
box-shadow 0 1px rgba(0, 0, 0, 0.07)
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 4px
|
||||
|
||||
> button
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<mk-photo-stream-home-widget data-melt={ data.design == 2 }>
|
||||
<virtual if={ data.design == 0 }>
|
||||
<p class="title"><i class="fa fa-camera"></i>%i18n:desktop.tags.mk-photo-stream-home-widget.title%</p>
|
||||
<p class="title">%fa:camera%%i18n:desktop.tags.mk-photo-stream-home-widget.title%</p>
|
||||
</virtual>
|
||||
<p class="initializing" if={ initializing }><i class="fa fa-spinner fa-pulse fa-fw"></i>%i18n:common.loading%<mk-ellipsis/></p>
|
||||
<p class="initializing" if={ initializing }>%fa:spinner .pluse .fw%%i18n:common.loading%<mk-ellipsis/></p>
|
||||
<div class="stream" if={ !initializing && images.length > 0 }>
|
||||
<virtual each={ image in images }>
|
||||
<div class="img" style={ 'background-image: url(' + image.url + '?thumbnail&size=256)' }></div>
|
||||
|
@ -37,7 +37,7 @@
|
|||
color #888
|
||||
box-shadow 0 1px rgba(0, 0, 0, 0.07)
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 4px
|
||||
|
||||
> .stream
|
||||
|
@ -65,7 +65,7 @@
|
|||
text-align center
|
||||
color #aaa
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 4px
|
||||
|
||||
</style>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<mk-post-form if={ place == 'main' }/>
|
||||
<virtual if={ place != 'main' }>
|
||||
<virtual if={ data.design == 0 }>
|
||||
<p class="title"><i class="fa fa-pencil"></i>%i18n:desktop.tags.mk-post-form-home-widget.title%</p>
|
||||
<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>
|
||||
<button onclick={ post } disabled={ posting }>%i18n:desktop.tags.mk-post-form-home-widget.post%</button>
|
||||
|
@ -25,7 +25,7 @@
|
|||
color #888
|
||||
box-shadow 0 1px rgba(0, 0, 0, 0.07)
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 4px
|
||||
|
||||
> textarea
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
<mk-recommended-polls-home-widget>
|
||||
<virtual if={ !data.compact }>
|
||||
<p class="title"><i class="fa fa-pie-chart"></i>%i18n:desktop.tags.mk-recommended-polls-home-widget.title%</p>
|
||||
<button onclick={ fetch } title="%i18n:desktop.tags.mk-recommended-polls-home-widget.refresh%"><i class="fa fa-refresh"></i></button>
|
||||
<p class="title">%fa:pie-chart%%i18n:desktop.tags.mk-recommended-polls-home-widget.title%</p>
|
||||
<button onclick={ fetch } title="%i18n:desktop.tags.mk-recommended-polls-home-widget.refresh%">%fa:refresh%</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 }"><i class="fa fa-link"></i></a></p>
|
||||
<p 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 }><i class="fa fa-spinner fa-pulse fa-fw"></i>%i18n:common.loading%<mk-ellipsis/></p>
|
||||
<p class="loading" if={ loading }>%fa:spinner .pluse .fw%%i18n:common.loading%<mk-ellipsis/></p>
|
||||
<style>
|
||||
:scope
|
||||
display block
|
||||
|
@ -26,7 +26,7 @@
|
|||
color #888
|
||||
border-bottom solid 1px #eee
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 4px
|
||||
|
||||
> button
|
||||
|
@ -69,7 +69,7 @@
|
|||
text-align center
|
||||
color #aaa
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 4px
|
||||
|
||||
</style>
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
<mk-rss-reader-home-widget>
|
||||
<virtual if={ !data.compact }>
|
||||
<p class="title"><i class="fa fa-rss-square"></i>RSS</p>
|
||||
<button onclick={ settings } title="設定"><i class="fa fa-cog"></i></button>
|
||||
<p class="title">%fa:rss-square%RSS</p>
|
||||
<button onclick={ settings } title="設定">%fa:cog%</button>
|
||||
</virtual>
|
||||
<div class="feed" if={ !initializing }>
|
||||
<virtual each={ item in items }><a href={ item.link } target="_blank">{ item.title }</a></virtual>
|
||||
</div>
|
||||
<p class="initializing" if={ initializing }><i class="fa fa-spinner fa-pulse fa-fw"></i>%i18n:common.loading%<mk-ellipsis/></p>
|
||||
<p class="initializing" if={ initializing }>%fa:spinner .pluse .fw%%i18n:common.loading%<mk-ellipsis/></p>
|
||||
<style>
|
||||
:scope
|
||||
display block
|
||||
|
@ -23,7 +23,7 @@
|
|||
color #888
|
||||
box-shadow 0 1px rgba(0, 0, 0, 0.07)
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 4px
|
||||
|
||||
> button
|
||||
|
@ -61,7 +61,7 @@
|
|||
text-align center
|
||||
color #aaa
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 4px
|
||||
|
||||
</style>
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
<mk-server-home-widget data-melt={ data.design == 2 }>
|
||||
<virtual if={ data.design == 0 }>
|
||||
<p class="title"><i class="fa fa-server"></i>%i18n:desktop.tags.mk-server-home-widget.title%</p>
|
||||
<button onclick={ toggle } title="%i18n:desktop.tags.mk-server-home-widget.toggle%"><i class="fa fa-sort"></i></button>
|
||||
<p class="title">%fa:server%%i18n:desktop.tags.mk-server-home-widget.title%</p>
|
||||
<button onclick={ toggle } title="%i18n:desktop.tags.mk-server-home-widget.toggle%">%fa:sort%</button>
|
||||
</virtual>
|
||||
<p class="initializing" if={ initializing }><i class="fa fa-spinner fa-pulse fa-fw"></i>%i18n:common.loading%<mk-ellipsis/></p>
|
||||
<p class="initializing" if={ initializing }>%fa:spinner .pluse .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 }/>
|
||||
|
@ -31,7 +31,7 @@
|
|||
color #888
|
||||
box-shadow 0 1px rgba(0, 0, 0, 0.07)
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 4px
|
||||
|
||||
> button
|
||||
|
@ -57,7 +57,7 @@
|
|||
text-align center
|
||||
color #aaa
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 4px
|
||||
|
||||
</style>
|
||||
|
@ -235,7 +235,7 @@
|
|||
<mk-server-home-widget-cpu>
|
||||
<mk-server-home-widget-pie ref="pie"/>
|
||||
<div>
|
||||
<p><i class="fa fa-microchip"></i>CPU</p>
|
||||
<p>%fa:microchip%CPU</p>
|
||||
<p>{ cores } Cores</p>
|
||||
<p>{ model }</p>
|
||||
</div>
|
||||
|
@ -261,7 +261,7 @@
|
|||
&:first-child
|
||||
font-weight bold
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 4px
|
||||
|
||||
&:after
|
||||
|
@ -292,7 +292,7 @@
|
|||
<mk-server-home-widget-memory>
|
||||
<mk-server-home-widget-pie ref="pie"/>
|
||||
<div>
|
||||
<p><i class="fa fa-flask"></i>Memory</p>
|
||||
<p>%fa:flask%Memory</p>
|
||||
<p>Total: { bytesToSize(total, 1) }</p>
|
||||
<p>Used: { bytesToSize(used, 1) }</p>
|
||||
<p>Free: { bytesToSize(free, 1) }</p>
|
||||
|
@ -319,7 +319,7 @@
|
|||
&:first-child
|
||||
font-weight bold
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 4px
|
||||
|
||||
&:after
|
||||
|
@ -358,7 +358,7 @@
|
|||
<mk-server-home-widget-disk>
|
||||
<mk-server-home-widget-pie ref="pie"/>
|
||||
<div>
|
||||
<p><i class="fa fa-hdd-o"></i>Storage</p>
|
||||
<p>%fa:R hdd%Storage</p>
|
||||
<p>Total: { bytesToSize(total, 1) }</p>
|
||||
<p>Available: { bytesToSize(available, 1) }</p>
|
||||
<p>Used: { bytesToSize(used, 1) }</p>
|
||||
|
@ -385,7 +385,7 @@
|
|||
&:first-child
|
||||
font-weight bold
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 4px
|
||||
|
||||
&:after
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<div ref="slideA" class="slide a"></div>
|
||||
<div ref="slideB" class="slide b"></div>
|
||||
</div>
|
||||
<button onclick={ resize }><i class="fa fa-expand"></i></button>
|
||||
<button onclick={ resize }>%fa:expand%</button>
|
||||
<style>
|
||||
:scope
|
||||
display block
|
||||
|
|
|
@ -3,10 +3,11 @@
|
|||
<div class="loading" if={ isLoading }>
|
||||
<mk-ellipsis-icon/>
|
||||
</div>
|
||||
<p class="empty" if={ isEmpty && !isLoading }><i class="fa fa-comments-o"></i>自分の投稿や、自分がフォローしているユーザーの投稿が表示されます。</p>
|
||||
<p class="empty" if={ isEmpty && !isLoading }>%fa:R comments%自分の投稿や、自分がフォローしているユーザーの投稿が表示されます。</p>
|
||||
<mk-timeline ref="timeline" hide={ isLoading }>
|
||||
<yield to="footer">
|
||||
<i class="fa fa-moon-o" if={ !parent.moreLoading }></i><i class="fa fa-spinner fa-pulse fa-fw" if={ parent.moreLoading }></i>
|
||||
<virtual if={ !parent.moreLoading }>%fa:moon%</virtual>
|
||||
<virtual if={ parent.moreLoading }>%fa:spinner .pluse .fw%</virtual>
|
||||
</yield/>
|
||||
</mk-timeline>
|
||||
<style>
|
||||
|
@ -30,7 +31,7 @@
|
|||
text-align center
|
||||
color #999
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
display block
|
||||
margin-bottom 16px
|
||||
font-size 3em
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<mk-tips-home-widget>
|
||||
<p ref="tip"><i class="fa fa-lightbulb-o"></i><span ref="text"></span></p>
|
||||
<p ref="tip">%fa:R lightbulb%<span ref="text"></span></p>
|
||||
<style>
|
||||
:scope
|
||||
display block
|
||||
|
@ -13,7 +13,7 @@
|
|||
font-size 0.7em
|
||||
color #999
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 4px
|
||||
|
||||
kbd
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
<mk-trends-home-widget>
|
||||
<virtual if={ !data.compact }>
|
||||
<p class="title"><i class="fa fa-fire"></i>%i18n:desktop.tags.mk-trends-home-widget.title%</p>
|
||||
<button onclick={ fetch } title="%i18n:desktop.tags.mk-trends-home-widget.refresh%"><i class="fa fa-refresh"></i></button>
|
||||
<p class="title">%fa:fire%%i18n:desktop.tags.mk-trends-home-widget.title%</p>
|
||||
<button onclick={ fetch } title="%i18n:desktop.tags.mk-trends-home-widget.refresh%">%fa:refresh%</button>
|
||||
</virtual>
|
||||
<div class="post" 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 }><i class="fa fa-spinner fa-pulse fa-fw"></i>%i18n:common.loading%<mk-ellipsis/></p>
|
||||
<p class="loading" if={ loading }>%fa:spinner .pluse .fw%%i18n:common.loading%<mk-ellipsis/></p>
|
||||
<style>
|
||||
:scope
|
||||
display block
|
||||
|
@ -25,7 +25,7 @@
|
|||
color #888
|
||||
border-bottom solid 1px #eee
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 4px
|
||||
|
||||
> button
|
||||
|
@ -71,7 +71,7 @@
|
|||
text-align center
|
||||
color #aaa
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 4px
|
||||
|
||||
</style>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<mk-user-recommendation-home-widget>
|
||||
<virtual if={ !data.compact }>
|
||||
<p class="title"><i class="fa fa-users"></i>%i18n:desktop.tags.mk-user-recommendation-home-widget.title%</p>
|
||||
<button onclick={ refresh } title="%i18n:desktop.tags.mk-user-recommendation-home-widget.refresh%"><i class="fa fa-refresh"></i></button>
|
||||
<p class="title">%fa:users%%i18n:desktop.tags.mk-user-recommendation-home-widget.title%</p>
|
||||
<button onclick={ refresh } title="%i18n:desktop.tags.mk-user-recommendation-home-widget.refresh%">%fa:refresh%</button>
|
||||
</virtual>
|
||||
<div class="user" if={ !loading && users.length != 0 } each={ _user in users }>
|
||||
<a class="avatar-anchor" href={ '/' + _user.username }>
|
||||
|
@ -14,7 +14,7 @@
|
|||
<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 }><i class="fa fa-spinner fa-pulse fa-fw"></i>%i18n:common.loading%<mk-ellipsis/></p>
|
||||
<p class="loading" if={ loading }>%fa:spinner .pluse .fw%%i18n:common.loading%<mk-ellipsis/></p>
|
||||
<style>
|
||||
:scope
|
||||
display block
|
||||
|
@ -31,7 +31,7 @@
|
|||
color #888
|
||||
border-bottom solid 1px #eee
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 4px
|
||||
|
||||
> button
|
||||
|
@ -110,7 +110,7 @@
|
|||
text-align center
|
||||
color #aaa
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 4px
|
||||
|
||||
</style>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<mk-home data-customize={ opts.customize }>
|
||||
<div class="customize" if={ opts.customize }>
|
||||
<a href="/"><i class="fa fa-check"></i>完了</a>
|
||||
<a href="/">%fa:check%完了</a>
|
||||
<div>
|
||||
<div class="adder">
|
||||
<p>ウィジェットを追加:</p>
|
||||
|
@ -96,7 +96,7 @@
|
|||
background darken($theme-color, 10%)
|
||||
transition background 0s ease
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 8px
|
||||
|
||||
> div
|
||||
|
@ -221,7 +221,7 @@
|
|||
}
|
||||
|
||||
if (this.opts.customize) {
|
||||
dialog('<i class="fa fa-info-circle"></i>カスタマイズのヒント',
|
||||
dialog('%fa:info-circle%カスタマイズのヒント',
|
||||
'<p>ホームのカスタマイズでは、ウィジェットを追加/削除したり、ドラッグ&ドロップして並べ替えたりすることができます。</p>' +
|
||||
'<p>一部のウィジェットは、<strong><strong>右</strong>クリック</strong>することで表示を変更することができます。</p>' +
|
||||
'<p>ウィジェットを削除するには、ヘッダーの<strong>「ゴミ箱」</strong>と書かれたエリアにウィジェットをドラッグ&ドロップします。</p>' +
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<mk-input-dialog>
|
||||
<mk-window ref="window" is-modal={ true } width={ '500px' }>
|
||||
<yield to="header">
|
||||
<i class="fa fa-i-cursor"></i>{ parent.title }
|
||||
%fa:i-cursor%{ parent.title }
|
||||
</yield>
|
||||
<yield to="content">
|
||||
<div class="body">
|
||||
|
@ -19,7 +19,7 @@
|
|||
|
||||
> mk-window
|
||||
[data-yield='header']
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 4px
|
||||
|
||||
[data-yield='content']
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<mk-messaging-room-window>
|
||||
<mk-window ref="window" is-modal={ false } width={ '500px' } height={ '560px' } popout={ popout }>
|
||||
<yield to="header"><i class="fa fa-comments"></i>メッセージ: { parent.user.name }</yield>
|
||||
<yield to="header">%fa:comments%メッセージ: { parent.user.name }</yield>
|
||||
<yield to="content">
|
||||
<mk-messaging-room user={ parent.user }/>
|
||||
</yield>
|
||||
|
@ -9,7 +9,7 @@
|
|||
:scope
|
||||
> mk-window
|
||||
[data-yield='header']
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 4px
|
||||
|
||||
[data-yield='content']
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<mk-messaging-window>
|
||||
<mk-window ref="window" is-modal={ false } width={ '500px' } height={ '560px' }>
|
||||
<yield to="header"><i class="fa fa-comments"></i>メッセージ</yield>
|
||||
<yield to="header">%fa:comments%メッセージ</yield>
|
||||
<yield to="content">
|
||||
<mk-messaging ref="index"/>
|
||||
</yield>
|
||||
|
@ -9,7 +9,7 @@
|
|||
:scope
|
||||
> mk-window
|
||||
[data-yield='header']
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 4px
|
||||
|
||||
[data-yield='content']
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
<img class="avatar" src={ notification.post.user.avatar_url + '?thumbnail&size=48' } alt="avatar"/>
|
||||
</a>
|
||||
<div class="text">
|
||||
<p><i class="fa fa-retweet"></i><a href={ '/' + notification.post.user.username } data-user-preview={ notification.post.user_id }>{ notification.post.user.name }</a></p><a class="post-ref" href={ '/' + notification.post.user.username + '/' + notification.post.id }>{ getPostSummary(notification.post.repost) }</a>
|
||||
<p>%fa:retweet%<a href={ '/' + notification.post.user.username } data-user-preview={ notification.post.user_id }>{ notification.post.user.name }</a></p><a class="post-ref" href={ '/' + notification.post.user.username + '/' + notification.post.id }>{ getPostSummary(notification.post.repost) }</a>
|
||||
</div>
|
||||
</virtual>
|
||||
<virtual if={ notification.type == 'quote' }>
|
||||
|
@ -24,7 +24,7 @@
|
|||
<img class="avatar" src={ notification.post.user.avatar_url + '?thumbnail&size=48' } alt="avatar"/>
|
||||
</a>
|
||||
<div class="text">
|
||||
<p><i class="fa fa-quote-left"></i><a href={ '/' + notification.post.user.username } data-user-preview={ notification.post.user_id }>{ notification.post.user.name }</a></p><a class="post-preview" href={ '/' + notification.post.user.username + '/' + notification.post.id }>{ getPostSummary(notification.post) }</a>
|
||||
<p>%fa:quote-left%<a href={ '/' + notification.post.user.username } data-user-preview={ notification.post.user_id }>{ notification.post.user.name }</a></p><a class="post-preview" href={ '/' + notification.post.user.username + '/' + notification.post.id }>{ getPostSummary(notification.post) }</a>
|
||||
</div>
|
||||
</virtual>
|
||||
<virtual if={ notification.type == 'follow' }>
|
||||
|
@ -32,7 +32,7 @@
|
|||
<img class="avatar" src={ notification.user.avatar_url + '?thumbnail&size=48' } alt="avatar"/>
|
||||
</a>
|
||||
<div class="text">
|
||||
<p><i class="fa fa-user-plus"></i><a href={ '/' + notification.user.username } data-user-preview={ notification.user.id }>{ notification.user.name }</a></p>
|
||||
<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' }>
|
||||
|
@ -40,7 +40,7 @@
|
|||
<img class="avatar" src={ notification.post.user.avatar_url + '?thumbnail&size=48' } alt="avatar"/>
|
||||
</a>
|
||||
<div class="text">
|
||||
<p><i class="fa fa-reply"></i><a href={ '/' + notification.post.user.username } data-user-preview={ notification.post.user_id }>{ notification.post.user.name }</a></p><a class="post-preview" href={ '/' + notification.post.user.username + '/' + notification.post.id }>{ getPostSummary(notification.post) }</a>
|
||||
<p>%fa:reply%<a href={ '/' + notification.post.user.username } data-user-preview={ notification.post.user_id }>{ notification.post.user.name }</a></p><a class="post-preview" href={ '/' + notification.post.user.username + '/' + notification.post.id }>{ getPostSummary(notification.post) }</a>
|
||||
</div>
|
||||
</virtual>
|
||||
<virtual if={ notification.type == 'mention' }>
|
||||
|
@ -48,7 +48,7 @@
|
|||
<img class="avatar" src={ notification.post.user.avatar_url + '?thumbnail&size=48' } alt="avatar"/>
|
||||
</a>
|
||||
<div class="text">
|
||||
<p><i class="fa fa-at"></i><a href={ '/' + notification.post.user.username } data-user-preview={ notification.post.user_id }>{ notification.post.user.name }</a></p><a class="post-preview" href={ '/' + notification.post.user.username + '/' + notification.post.id }>{ getPostSummary(notification.post) }</a>
|
||||
<p>%fa:at%<a href={ '/' + notification.post.user.username } data-user-preview={ notification.post.user_id }>{ notification.post.user.name }</a></p><a class="post-preview" href={ '/' + notification.post.user.username + '/' + notification.post.id }>{ getPostSummary(notification.post) }</a>
|
||||
</div>
|
||||
</virtual>
|
||||
<virtual if={ notification.type == 'poll_vote' }>
|
||||
|
@ -56,18 +56,18 @@
|
|||
<img class="avatar" src={ notification.user.avatar_url + '?thumbnail&size=48' } alt="avatar"/>
|
||||
</a>
|
||||
<div class="text">
|
||||
<p><i class="fa fa-pie-chart"></i><a href={ '/' + notification.user.username } data-user-preview={ notification.user.id }>{ notification.user.name }</a></p><a class="post-ref" href={ '/' + notification.post.user.username + '/' + notification.post.id }>{ getPostSummary(notification.post) }</a>
|
||||
<p>%fa:pie-chart%<a href={ '/' + notification.user.username } data-user-preview={ notification.user.id }>{ notification.user.name }</a></p><a class="post-ref" href={ '/' + notification.post.user.username + '/' + notification.post.id }>{ getPostSummary(notification.post) }</a>
|
||||
</div>
|
||||
</virtual>
|
||||
</div>
|
||||
<p class="date" if={ i != notifications.length - 1 && notification._date != notifications[i + 1]._date }><span><i class="fa fa-angle-up"></i>{ notification._datetext }</span><span><i class="fa fa-angle-down"></i>{ notifications[i + 1]._datetext }</span></p>
|
||||
<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>
|
||||
</virtual>
|
||||
</div>
|
||||
<button class="more { fetching: fetchingMoreNotifications }" if={ moreNotifications } onclick={ fetchMoreNotifications } disabled={ fetchingMoreNotifications }>
|
||||
<i class="fa fa-spinner fa-pulse fa-fw" if={ fetchingMoreNotifications }></i>{ fetchingMoreNotifications ? '%i18n:common.loading%' : '%i18n:desktop.tags.mk-notifications.more%' }
|
||||
<virtual if={ fetchingMoreNotifications }>%fa:spinner .pluse .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 }><i class="fa fa-spinner fa-pulse fa-fw"></i>%i18n:common.loading%<mk-ellipsis/></p>
|
||||
<p class="loading" if={ loading }>%fa:spinner .pluse .fw%%i18n:common.loading%<mk-ellipsis/></p>
|
||||
<style>
|
||||
:scope
|
||||
display block
|
||||
|
@ -187,7 +187,7 @@
|
|||
&.fetching
|
||||
cursor wait
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 4px
|
||||
|
||||
> .empty
|
||||
|
@ -202,7 +202,7 @@
|
|||
text-align center
|
||||
color #aaa
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 4px
|
||||
|
||||
</style>
|
||||
|
|
|
@ -150,7 +150,7 @@
|
|||
</mk-entrance>
|
||||
|
||||
<mk-entrance-signin>
|
||||
<a class="help" href={ _ABOUT_URL_ + '/help' } title="お困りですか?"><i class="fa fa-question"></i></a>
|
||||
<a class="help" href={ _ABOUT_URL_ + '/help' } title="お困りですか?">%fa:question%</a>
|
||||
<div class="form">
|
||||
<h1><img if={ user } src={ user.avatar_url + '?thumbnail&size=32' }/>
|
||||
<p>{ user ? user.name : 'アカウント' }</p>
|
||||
|
@ -194,7 +194,7 @@
|
|||
&:active
|
||||
color #222
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
padding 14px
|
||||
|
||||
> .form
|
||||
|
@ -295,7 +295,7 @@
|
|||
|
||||
<mk-entrance-signup>
|
||||
<mk-signup/>
|
||||
<button class="cancel" type="button" onclick={ parent.signin } title="キャンセル"><i class="fa fa-times"></i></button>
|
||||
<button class="cancel" type="button" onclick={ parent.signin } title="キャンセル">%fa:times%</button>
|
||||
<style>
|
||||
:scope
|
||||
display block
|
||||
|
@ -335,7 +335,7 @@
|
|||
&:active
|
||||
color #222
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
padding 14px
|
||||
|
||||
</style>
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
<mk-post-page>
|
||||
<mk-ui ref="ui">
|
||||
<main if={ !parent.fetching }>
|
||||
<a if={ parent.post.next } href={ parent.post.next }><i class="fa fa-angle-up"></i>%i18n:desktop.tags.mk-post-page.next%</a>
|
||||
<a 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 }><i class="fa fa-angle-down"></i>%i18n:desktop.tags.mk-post-page.prev%</a>
|
||||
<a if={ parent.post.prev } href={ parent.post.prev }>%fa:angle-down%%i18n:desktop.tags.mk-post-page.prev%</a>
|
||||
</main>
|
||||
</mk-ui>
|
||||
<style>
|
||||
|
@ -23,7 +23,7 @@
|
|||
&:last-child
|
||||
margin-top 4px
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 4px
|
||||
|
||||
> mk-post-detail
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<mk-selectdrive-page>
|
||||
<mk-drive-browser ref="browser" multiple={ multiple }/>
|
||||
<div>
|
||||
<button class="upload" title="%i18n:desktop.tags.mk-selectdrive-page.upload%" onclick={ upload }><i class="fa fa-upload"></i></button>
|
||||
<button class="upload" title="%i18n:desktop.tags.mk-selectdrive-page.upload%" onclick={ upload }>%fa:upload%</button>
|
||||
<button class="cancel" onclick={ close }>%i18n:desktop.tags.mk-selectdrive-page.cancel%</button>
|
||||
<button class="ok" onclick={ ok }>%i18n:desktop.tags.mk-selectdrive-page.ok%</button>
|
||||
</div>
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<mk-post-detail title={ title }>
|
||||
<div class="main">
|
||||
<button class="read-more" if={ p.reply && p.reply.reply_id && context == null } title="会話をもっと読み込む" onclick={ loadContext } disabled={ contextFetching }>
|
||||
<i class="fa fa-ellipsis-v" if={ !contextFetching }></i>
|
||||
<i class="fa fa-spinner fa-pulse" if={ contextFetching }></i>
|
||||
<virtual if={ !contextFetching }>%fa:ellipsis-v%</virtual>
|
||||
<virtual if={ contextFetching }>%fa:spinner .pluse%</virtual>
|
||||
</button>
|
||||
<div class="context">
|
||||
<virtual each={ post in context }>
|
||||
|
@ -17,7 +17,7 @@
|
|||
<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"/>
|
||||
</a>
|
||||
<i class="fa fa-retweet"></i><a class="name" href={ '/' + post.user.username }>
|
||||
%fa:retweet%<a class="name" href={ '/' + post.user.username }>
|
||||
{ post.user.name }
|
||||
</a>
|
||||
がRepost
|
||||
|
@ -44,16 +44,16 @@
|
|||
<footer>
|
||||
<mk-reactions-viewer post={ p }/>
|
||||
<button onclick={ reply } title="返信">
|
||||
<i class="fa fa-reply"></i><p class="count" if={ p.replies_count > 0 }>{ p.replies_count }</p>
|
||||
%fa:reply%<p class="count" if={ p.replies_count > 0 }>{ p.replies_count }</p>
|
||||
</button>
|
||||
<button onclick={ repost } title="Repost">
|
||||
<i class="fa fa-retweet"></i><p class="count" if={ p.repost_count > 0 }>{ p.repost_count }</p>
|
||||
%fa:retweet%<p class="count" if={ p.repost_count > 0 }>{ p.repost_count }</p>
|
||||
</button>
|
||||
<button class={ reacted: p.my_reaction != null } onclick={ react } ref="reactButton" title="リアクション">
|
||||
<i class="fa fa-plus"></i><p class="count" if={ p.reactions_count > 0 }>{ p.reactions_count }</p>
|
||||
%fa:plus%<p class="count" if={ p.reactions_count > 0 }>{ p.reactions_count }</p>
|
||||
</button>
|
||||
<button onclick={ menu } ref="menuButton">
|
||||
<i class="fa fa-ellipsis-h"></i>
|
||||
%fa:ellipsis-h%
|
||||
</button>
|
||||
</footer>
|
||||
</article>
|
||||
|
|
|
@ -7,17 +7,17 @@
|
|||
<div class="img" style="background-image: url({ url + '?thumbnail&size=64' })" title={ name }></div>
|
||||
<img class="remove" onclick={ removeFile } src="/assets/desktop/remove.png" title="%i18n:desktop.tags.mk-post-form.attach-cancel%" alt=""/>
|
||||
</li>
|
||||
<li class="add" if={ files.length < 4 } title="%i18n:desktop.tags.mk-post-form.attach-media-from-local%" onclick={ selectFile }><i class="fa fa-plus"></i></li>
|
||||
<li class="add" if={ files.length < 4 } title="%i18n:desktop.tags.mk-post-form.attach-media-from-local%" onclick={ selectFile }>%fa:plus%</li>
|
||||
</ul>
|
||||
<p class="remain">{ 4 - files.length }/4</p>
|
||||
</div>
|
||||
<mk-poll-editor 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%" onclick={ selectFile }><i class="fa fa-upload"></i></button>
|
||||
<button ref="drive" title="%i18n:desktop.tags.mk-post-form.attach-media-from-drive%" onclick={ selectFileFromDrive }><i class="fa fa-cloud"></i></button>
|
||||
<button class="kao" title="%i18n:desktop.tags.mk-post-form.insert-a-kao%" onclick={ kao }><i class="fa fa-smile-o"></i></button>
|
||||
<button class="poll" title="%i18n:desktop.tags.mk-post-form.create-poll%" onclick={ addPoll }><i class="fa fa-pie-chart"></i></button>
|
||||
<button ref="upload" title="%i18n:desktop.tags.mk-post-form.attach-media-from-local%" onclick={ selectFile }>%fa:upload%</button>
|
||||
<button ref="drive" title="%i18n:desktop.tags.mk-post-form.attach-media-from-drive%" onclick={ selectFileFromDrive }>%fa:cloud%</button>
|
||||
<button class="kao" title="%i18n:desktop.tags.mk-post-form.insert-a-kao%" onclick={ kao }>%fa:R smile%</button>
|
||||
<button class="poll" title="%i18n:desktop.tags.mk-post-form.create-poll%" onclick={ addPoll }>%fa:pie-chart%</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) } onclick={ post }>
|
||||
{ wait ? '%i18n:desktop.tags.mk-post-form.posting%' : submitText }<mk-ellipsis if={ wait }/>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<mk-repost-form-window>
|
||||
<mk-window ref="window" is-modal={ true }>
|
||||
<yield to="header">
|
||||
<i class="fa fa-retweet"></i>%i18n:desktop.tags.mk-repost-form-window.title%
|
||||
%fa:retweet%%i18n:desktop.tags.mk-repost-form-window.title%
|
||||
</yield>
|
||||
<yield to="content">
|
||||
<mk-repost-form ref="form" post={ parent.opts.post }/>
|
||||
|
@ -11,7 +11,7 @@
|
|||
:scope
|
||||
> mk-window
|
||||
[data-yield='header']
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 4px
|
||||
|
||||
</style>
|
||||
|
|
|
@ -2,8 +2,13 @@
|
|||
<div class="loading" if={ isLoading }>
|
||||
<mk-ellipsis-icon/>
|
||||
</div>
|
||||
<p class="empty" if={ isEmpty }><i class="fa fa-search"></i>「{ query }」に関する投稿は見つかりませんでした。</p>
|
||||
<mk-timeline ref="timeline"><yield to="footer"><i class="fa fa-moon-o" if={ !parent.moreLoading }></i><i class="fa fa-spinner fa-pulse fa-fw" if={ parent.moreLoading }></i></yield/>
|
||||
<p class="empty" 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 .pluse .fw%</virtual>
|
||||
</yield/>
|
||||
</mk-timeline>
|
||||
<style>
|
||||
:scope
|
||||
display block
|
||||
|
@ -20,7 +25,7 @@
|
|||
text-align center
|
||||
color #999
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
display block
|
||||
margin-bottom 16px
|
||||
font-size 3em
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<yield to="content">
|
||||
<mk-drive-browser ref="browser" multiple={ parent.multiple }/>
|
||||
<div>
|
||||
<button class="upload" title="PCからドライブにファイルをアップロード" onclick={ parent.upload }><i class="fa fa-upload"></i></button>
|
||||
<button class="upload" title="PCからドライブにファイルをアップロード" onclick={ parent.upload }>%fa:upload%</button>
|
||||
<button class="cancel" onclick={ parent.close }>キャンセル</button>
|
||||
<button class="ok" disabled={ parent.multiple && parent.files.length == 0 } onclick={ parent.ok }>決定</button>
|
||||
</div>
|
||||
|
@ -18,7 +18,7 @@
|
|||
> mk-window
|
||||
[data-yield='header']
|
||||
> mk-raw
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 4px
|
||||
|
||||
.count
|
||||
|
@ -138,7 +138,7 @@
|
|||
this.files = [];
|
||||
|
||||
this.multiple = this.opts.multiple != null ? this.opts.multiple : false;
|
||||
this.title = this.opts.title || '<i class="fa fa-file-o"></i>ファイルを選択';
|
||||
this.title = this.opts.title || '%fa:file-o%ファイルを選択';
|
||||
|
||||
this.on('mount', () => {
|
||||
this.refs.window.refs.browser.on('selected', file => {
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
> mk-window
|
||||
[data-yield='header']
|
||||
> mk-raw
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 4px
|
||||
|
||||
[data-yield='content']
|
||||
|
@ -92,7 +92,7 @@
|
|||
<script>
|
||||
this.files = [];
|
||||
|
||||
this.title = this.opts.title || '<i class="fa fa-folder-o"></i>フォルダを選択';
|
||||
this.title = this.opts.title || '%fa:folder-o%フォルダを選択';
|
||||
|
||||
this.on('mount', () => {
|
||||
this.refs.window.on('closed', () => {
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<mk-set-avatar-suggestion onclick={ set }>
|
||||
<p><b>アバターを設定</b>してみませんか?
|
||||
<button onclick={ close }><i class="fa fa-times"></i></button>
|
||||
<button onclick={ close }>%fa:times%</button>
|
||||
</p>
|
||||
<style>
|
||||
:scope
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<mk-set-banner-suggestion onclick={ set }>
|
||||
<p><b>バナーを設定</b>してみませんか?
|
||||
<button onclick={ close }><i class="fa fa-times"></i></button>
|
||||
<button onclick={ close }>%fa:times%</button>
|
||||
</p>
|
||||
<style>
|
||||
:scope
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<mk-settings-window>
|
||||
<mk-window ref="window" is-modal={ true } width={ '700px' } height={ '550px' }>
|
||||
<yield to="header"><i class="fa fa-cog"></i>設定</yield>
|
||||
<yield to="header">%fa:cog%設定</yield>
|
||||
<yield to="content">
|
||||
<mk-settings/>
|
||||
</yield>
|
||||
|
@ -9,7 +9,7 @@
|
|||
:scope
|
||||
> mk-window
|
||||
[data-yield='header']
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 4px
|
||||
|
||||
[data-yield='content']
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
<mk-settings>
|
||||
<div class="nav">
|
||||
<p class={ active: page == 'account' } onmousedown={ setPage.bind(null, 'account') }><i class="fa fa-fw fa-user"></i>アカウント</p>
|
||||
<p class={ active: page == 'web' } onmousedown={ setPage.bind(null, 'web') }><i class="fa fa-fw fa-desktop"></i>Web</p>
|
||||
<p class={ active: page == 'notification' } onmousedown={ setPage.bind(null, 'notification') }><i class="fa fa-fw fa-bell-o"></i>通知</p>
|
||||
<p class={ active: page == 'drive' } onmousedown={ setPage.bind(null, 'drive') }><i class="fa fa-fw fa-cloud"></i>ドライブ</p>
|
||||
<p class={ active: page == 'apps' } onmousedown={ setPage.bind(null, 'apps') }><i class="fa fa-fw fa-puzzle-piece"></i>アプリ</p>
|
||||
<p class={ active: page == 'twitter' } onmousedown={ setPage.bind(null, 'twitter') }><i class="fa fa-fw fa-twitter"></i>Twitter</p>
|
||||
<p class={ active: page == 'signin' } onmousedown={ setPage.bind(null, 'signin') }><i class="fa fa-fw fa-sign-in"></i>ログイン履歴</p>
|
||||
<p class={ active: page == 'password' } onmousedown={ setPage.bind(null, 'password') }><i class="fa fa-fw fa-unlock-alt"></i>%i18n:desktop.tags.mk-settings.password%</p>
|
||||
<p class={ active: page == 'api' } onmousedown={ setPage.bind(null, 'api') }><i class="fa fa-fw fa-key"></i>API</p>
|
||||
<p class={ active: page == 'account' } onmousedown={ setPage.bind(null, 'account') }>%fa:user .fw%アカウント</p>
|
||||
<p class={ active: page == 'web' } onmousedown={ setPage.bind(null, 'web') }>%fa:desktop .fw%Web</p>
|
||||
<p class={ active: page == 'notification' } onmousedown={ setPage.bind(null, 'notification') }>%fa:R bell .fw%通知</p>
|
||||
<p class={ active: page == 'drive' } onmousedown={ setPage.bind(null, 'drive') }>%fa:cloud .fw%ドライブ</p>
|
||||
<p class={ active: page == 'apps' } onmousedown={ setPage.bind(null, 'apps') }>%fa:puzzle-piece .fw%アプリ</p>
|
||||
<p class={ active: page == 'twitter' } onmousedown={ setPage.bind(null, 'twitter') }>%fa:twitter .fw%Twitter</p>
|
||||
<p class={ active: page == 'signin' } onmousedown={ setPage.bind(null, 'signin') }>%fa:sign-in .fw%ログイン履歴</p>
|
||||
<p class={ active: page == 'password' } onmousedown={ setPage.bind(null, 'password') }>%fa:unlock-alt .fw%%i18n:desktop.tags.mk-settings.password%</p>
|
||||
<p class={ active: page == 'api' } onmousedown={ setPage.bind(null, 'api') }>%fa:key .fw%API</p>
|
||||
</div>
|
||||
<div class="pages">
|
||||
<section class="account" show={ page == 'account' }>
|
||||
|
@ -111,7 +111,7 @@
|
|||
user-select none
|
||||
transition margin-left 0.2s ease
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 4px
|
||||
|
||||
&:hover
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<mk-sub-post-content>
|
||||
<div class="body">
|
||||
<a class="reply" if={ post.reply_id }>
|
||||
<i class="fa fa-reply"></i>
|
||||
%fa:reply%
|
||||
</a>
|
||||
<span ref="text"></span>
|
||||
<a class="quote" if={ post.repost_id } href={ '/post:' + post.repost_id }>RP: ...</a>
|
||||
|
|
|
@ -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><i class="fa fa-angle-up"></i>{ post._datetext }</span><span><i class="fa fa-angle-down"></i>{ posts[i + 1]._datetext }</span></p>
|
||||
<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>
|
||||
</virtual>
|
||||
<footer data-yield="footer">
|
||||
<yield from="footer"/>
|
||||
|
@ -90,7 +90,7 @@
|
|||
<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"/>
|
||||
</a>
|
||||
<i class="fa fa-retweet"></i>{'%i18n:desktop.tags.mk-timeline-post.reposted-by%'.substr(0, '%i18n:desktop.tags.mk-timeline-post.reposted-by%'.indexOf('{'))}<a class="name" href={ '/' + post.user.username } data-user-preview={ post.user_id }>{ post.user.name }</a>{'%i18n:desktop.tags.mk-timeline-post.reposted-by%'.substr('%i18n:desktop.tags.mk-timeline-post.reposted-by%'.indexOf('}') + 1)}
|
||||
%fa:retweet%{'%i18n:desktop.tags.mk-timeline-post.reposted-by%'.substr(0, '%i18n:desktop.tags.mk-timeline-post.reposted-by%'.indexOf('{'))}<a class="name" href={ '/' + post.user.username } data-user-preview={ post.user_id }>{ post.user.name }</a>{'%i18n:desktop.tags.mk-timeline-post.reposted-by%'.substr('%i18n:desktop.tags.mk-timeline-post.reposted-by%'.indexOf('}') + 1)}
|
||||
</p>
|
||||
<mk-time time={ post.created_at }/>
|
||||
</div>
|
||||
|
@ -114,7 +114,7 @@
|
|||
<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 }>
|
||||
<i class="fa fa-reply"></i>
|
||||
%fa:reply%
|
||||
</a>
|
||||
<p class="dummy"></p>
|
||||
<a class="quote" if={ p.repost != null }>RP:</a>
|
||||
|
@ -123,23 +123,23 @@
|
|||
<mk-images-viewer images={ p.media }/>
|
||||
</div>
|
||||
<mk-poll if={ p.poll } post={ p } ref="pollViewer"/>
|
||||
<div class="repost" if={ p.repost }><i class="fa fa-quote-right fa-flip-horizontal"></i>
|
||||
<div class="repost" 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 onclick={ reply } title="%i18n:desktop.tags.mk-timeline-post.reply%">
|
||||
<i class="fa fa-reply"></i><p class="count" if={ p.replies_count > 0 }>{ p.replies_count }</p>
|
||||
%fa:reply%<p class="count" if={ p.replies_count > 0 }>{ p.replies_count }</p>
|
||||
</button>
|
||||
<button onclick={ repost } title="%i18n:desktop.tags.mk-timeline-post.repost%">
|
||||
<i class="fa fa-retweet"></i><p class="count" if={ p.repost_count > 0 }>{ p.repost_count }</p>
|
||||
%fa:retweet%<p class="count" if={ p.repost_count > 0 }>{ p.repost_count }</p>
|
||||
</button>
|
||||
<button class={ reacted: p.my_reaction != null } onclick={ react } ref="reactButton" title="%i18n:desktop.tags.mk-timeline-post.add-reaction%">
|
||||
<i class="fa fa-plus"></i><p class="count" if={ p.reactions_count > 0 }>{ p.reactions_count }</p>
|
||||
%fa:plus%<p class="count" if={ p.reactions_count > 0 }>{ p.reactions_count }</p>
|
||||
</button>
|
||||
<button onclick={ menu } ref="menuButton">
|
||||
<i class="fa fa-ellipsis-h"></i>
|
||||
%fa:ellipsis-h%
|
||||
</button>
|
||||
<button onclick={ toggleDetail } title="%i18n:desktop.tags.mk-timeline-post.detail">
|
||||
<i class="fa fa-caret-down" if={ !isDetailOpened }></i>
|
||||
|
@ -378,7 +378,7 @@
|
|||
> .repost
|
||||
margin 8px 0
|
||||
|
||||
> i:first-child
|
||||
> [data-fa]:first-child
|
||||
position absolute
|
||||
top -8px
|
||||
left -8px
|
||||
|
|
|
@ -171,7 +171,7 @@
|
|||
</mk-ui-header-search>
|
||||
|
||||
<mk-ui-header-post-button>
|
||||
<button onclick={ post } title="%i18n:desktop.tags.mk-ui-header-post-button.post%"><i class="fa fa-pencil"></i></button>
|
||||
<button onclick={ post } title="%i18n:desktop.tags.mk-ui-header-post-button.post%">%fa:pencil-alt%</button>
|
||||
<style>
|
||||
:scope
|
||||
display inline-block
|
||||
|
@ -215,7 +215,7 @@
|
|||
|
||||
<mk-ui-header-notifications>
|
||||
<button data-active={ isOpen } onclick={ toggle } title="%i18n:desktop.tags.mk-ui-header-notifications.title%">
|
||||
<i class="fa fa-bell-o icon"></i><i class="fa fa-circle badge" if={ hasUnreadNotifications }></i>
|
||||
%fa:R bell%<virtual if={ hasUnreadNotifications }>%fa:circle%</virtual>
|
||||
</button>
|
||||
<div class="notifications" if={ isOpen }>
|
||||
<mk-notifications/>
|
||||
|
@ -245,11 +245,11 @@
|
|||
&:active
|
||||
color darken(#9eaba8, 30%)
|
||||
|
||||
> .icon
|
||||
> [data-fa].icon
|
||||
font-size 1.2em
|
||||
line-height 48px
|
||||
|
||||
> .badge
|
||||
> [data-fa].circle
|
||||
margin-left -5px
|
||||
vertical-align super
|
||||
font-size 10px
|
||||
|
@ -380,27 +380,27 @@
|
|||
<virtual if={ SIGNIN }>
|
||||
<li class="home { active: page == 'home' }">
|
||||
<a href={ _URL_ }>
|
||||
<i class="fa fa-home"></i>
|
||||
%fa:home%
|
||||
<p>%i18n:desktop.tags.mk-ui-header-nav.home%</p>
|
||||
</a>
|
||||
</li>
|
||||
<li class="messaging">
|
||||
<a onclick={ messaging }>
|
||||
<i class="fa fa-comments"></i>
|
||||
%fa:comments%
|
||||
<p>%i18n:desktop.tags.mk-ui-header-nav.messaging%</p>
|
||||
<i class="fa fa-circle" if={ hasUnreadMessagingMessages }></i>
|
||||
<virtual if={ hasUnreadMessagingMessages }>%fa:circle%</virtual>
|
||||
</a>
|
||||
</li>
|
||||
</virtual>
|
||||
<li class="ch">
|
||||
<a href={ _CH_URL_ } target="_blank">
|
||||
<i class="fa fa-television"></i>
|
||||
%fa:tv%
|
||||
<p>%i18n:desktop.tags.mk-ui-header-nav.ch%</p>
|
||||
</a>
|
||||
</li>
|
||||
<li class="info">
|
||||
<a href="https://twitter.com/misskey_xyz" target="_blank">
|
||||
<i class="fa fa-info"></i>
|
||||
%fa:info%
|
||||
<p>%i18n:desktop.tags.mk-ui-header-nav.info%</p>
|
||||
</a>
|
||||
</li>
|
||||
|
@ -450,10 +450,10 @@
|
|||
color darken(#9eaba8, 20%)
|
||||
text-decoration none
|
||||
|
||||
> i:first-child
|
||||
> [data-fa]:first-child
|
||||
margin-right 8px
|
||||
|
||||
> i:last-child
|
||||
> [data-fa]:last-child
|
||||
margin-left 5px
|
||||
vertical-align super
|
||||
font-size 10px
|
||||
|
@ -616,29 +616,29 @@
|
|||
|
||||
<mk-ui-header-account>
|
||||
<button class="header" data-active={ isOpen.toString() } onclick={ toggle }>
|
||||
<span class="username">{ I.username }<i class="fa fa-angle-down" if={ !isOpen }></i><i class="fa fa-angle-up" if={ isOpen }></i></span>
|
||||
<span class="username">{ I.username }<virtual if={ !isOpen }>%fa:angle-down%</virtual><virtual 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 }>
|
||||
<ul>
|
||||
<li>
|
||||
<a href={ '/' + I.username }><i class="fa fa-user"></i>%i18n:desktop.tags.mk-ui-header-account.profile%<i class="fa fa-angle-right"></i></a>
|
||||
<a href={ '/' + I.username }>%fa:user%%i18n:desktop.tags.mk-ui-header-account.profile%%fa:angle-right%</a>
|
||||
</li>
|
||||
<li onclick={ drive }>
|
||||
<p><i class="fa fa-cloud"></i>%i18n:desktop.tags.mk-ui-header-account.drive%<i class="fa fa-angle-right"></i></p>
|
||||
<p>%fa:cloud%%i18n:desktop.tags.mk-ui-header-account.drive%%fa:angle-right%</p>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/i/mentions"><i class="fa fa-at"></i>%i18n:desktop.tags.mk-ui-header-account.mentions%<i class="fa fa-angle-right"></i></a>
|
||||
<a href="/i/mentions">%fa:at%%i18n:desktop.tags.mk-ui-header-account.mentions%%fa:angle-right%</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li onclick={ settings }>
|
||||
<p><i class="fa fa-cog"></i>%i18n:desktop.tags.mk-ui-header-account.settings%<i class="fa fa-angle-right"></i></p>
|
||||
<p>%fa:cog%%i18n:desktop.tags.mk-ui-header-account.settings%%fa:angle-right%</p>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li onclick={ signout }>
|
||||
<p><i class="fa fa-power-off"></i>%i18n:desktop.tags.mk-ui-header-account.signout%<i class="fa fa-angle-right"></i></p>
|
||||
<p>%fa:power-off%%i18n:desktop.tags.mk-ui-header-account.signout%%fa:angle-right%</p>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
|
|
@ -5,8 +5,13 @@
|
|||
<div class="loading" if={ isLoading }>
|
||||
<mk-ellipsis-icon/>
|
||||
</div>
|
||||
<p class="empty" if={ isEmpty }><i class="fa fa-comments-o"></i>このユーザーはまだ何も投稿していないようです。</p>
|
||||
<mk-timeline ref="timeline"><yield to="footer"><i class="fa fa-moon-o" if={ !parent.moreLoading }></i><i class="fa fa-spinner fa-pulse fa-fw" if={ parent.moreLoading }></i></yield/>
|
||||
<p class="empty" 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 .pluse .fw%</virtual>
|
||||
</yield/>
|
||||
</mk-timeline>
|
||||
<style>
|
||||
:scope
|
||||
display block
|
||||
|
@ -40,7 +45,7 @@
|
|||
text-align center
|
||||
color #999
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
display block
|
||||
margin-bottom 16px
|
||||
font-size 3em
|
||||
|
|
|
@ -48,12 +48,12 @@
|
|||
<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 }><i class="fa fa-map-marker"></i>{ user.profile.location }</p>
|
||||
<p class="location" if={ user.profile.location }>%fa:map-marker%{ user.profile.location }</p>
|
||||
</div>
|
||||
<footer>
|
||||
<a href={ '/' + user.username } data-active={ parent.page == 'home' }><i class="fa fa-home"></i>概要</a>
|
||||
<a href={ '/' + user.username + '/media' } data-active={ parent.page == 'media' }><i class="fa fa-picture-o"></i>メディア</a>
|
||||
<a href={ '/' + user.username + '/graphs' } data-active={ parent.page == 'graphs' }><i class="fa fa-bar-chart"></i>グラフ</a>
|
||||
<a href={ '/' + user.username } data-active={ parent.page == 'home' }>%fa:home%概要</a>
|
||||
<a href={ '/' + user.username + '/media' } data-active={ parent.page == 'media' }>%fa:image%メディア</a>
|
||||
<a href={ '/' + user.username + '/graphs' } data-active={ parent.page == 'graphs' }>%fa:bar-chart%グラフ</a>
|
||||
</footer>
|
||||
</div>
|
||||
<style>
|
||||
|
@ -230,15 +230,15 @@
|
|||
</div>
|
||||
<div class="description" if={ user.description }>{ user.description }</div>
|
||||
<div class="birthday" if={ user.profile.birthday }>
|
||||
<p><i class="fa fa-birthday-cake"></i>{ user.profile.birthday.replace('-', '年').replace('-', '月') + '日' } ({ age(user.profile.birthday) }歳)</p>
|
||||
<p>%fa:birthday-cake%{ user.profile.birthday.replace('-', '年').replace('-', '月') + '日' } ({ age(user.profile.birthday) }歳)</p>
|
||||
</div>
|
||||
<div class="twitter" if={ user.twitter }>
|
||||
<p><i class="fa fa-twitter"></i><a href={ 'https://twitter.com/' + user.twitter.screen_name } target="_blank">@{ user.twitter.screen_name }</a></p>
|
||||
<p>%fa:twitter%<a href={ 'https://twitter.com/' + user.twitter.screen_name } target="_blank">@{ user.twitter.screen_name }</a></p>
|
||||
</div>
|
||||
<div class="status">
|
||||
<p class="posts-count"><i class="fa fa-angle-right"></i><a>{ user.posts_count }</a><b>ポスト</b></p>
|
||||
<p class="following"><i class="fa fa-angle-right"></i><a onclick={ showFollowing }>{ user.following_count }</a>人を<b>フォロー</b></p>
|
||||
<p class="followers"><i class="fa fa-angle-right"></i><a onclick={ showFollowers }>{ user.followers_count }</a>人の<b>フォロワー</b></p>
|
||||
<p class="posts-count">%fa:angle-right%<a>{ user.posts_count }</a><b>ポスト</b></p>
|
||||
<p class="following">%fa:angle-right%<a onclick={ showFollowing }>{ user.following_count }</a>人を<b>フォロー</b></p>
|
||||
<p class="followers">%fa:angle-right%<a onclick={ showFollowers }>{ user.followers_count }</a>人の<b>フォロワー</b></p>
|
||||
</div>
|
||||
<style>
|
||||
:scope
|
||||
|
@ -331,6 +331,8 @@
|
|||
<mk-user-photos>
|
||||
<p class="title"><i class="fa fa-camera"></i>%i18n:desktop.tags.mk-user.photos.title%</p>
|
||||
<p class="initializing" if={ initializing }><i class="fa fa-spinner fa-pulse fa-fw"></i>%i18n:desktop.tags.mk-user.photos.loading%<mk-ellipsis/></p>
|
||||
<p class="title">%fa:camera%%i18n:desktop.tags.mk-user.photos.title%</p>
|
||||
<p class="initializing" if={ initializing }>%fa:spinner .pluse .fw%%i18n:desktop.tags.mk-user.photos.loading%<mk-ellipsis/></p>
|
||||
<div class="stream" if={ !initializing && images.length > 0 }>
|
||||
<virtual each={ image in images }>
|
||||
<div class="img" style={ 'background-image: url(' + image.url + '?thumbnail&size=256)' }></div>
|
||||
|
@ -423,8 +425,8 @@
|
|||
</mk-user-photos>
|
||||
|
||||
<mk-user-frequently-replied-users>
|
||||
<p class="title"><i class="fa fa-users"></i>%i18n:desktop.tags.mk-user.frequently-replied-users.title%</p>
|
||||
<p class="initializing" if={ initializing }><i class="fa fa-spinner fa-pulse fa-fw"></i>%i18n:desktop.tags.mk-user.frequently-replied-users.loading%<mk-ellipsis/></p>
|
||||
<p class="title">%fa:users%%i18n:desktop.tags.mk-user.frequently-replied-users.title%</p>
|
||||
<p class="initializing" if={ initializing }>%fa:spinner .pluse .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 }>
|
||||
<a class="avatar-anchor" href={ '/' + _user.username }>
|
||||
<img class="avatar" src={ _user.avatar_url + '?thumbnail&size=42' } alt="" data-user-preview={ _user.id }/>
|
||||
|
@ -535,8 +537,8 @@
|
|||
</mk-user-frequently-replied-users>
|
||||
|
||||
<mk-user-followers-you-know>
|
||||
<p class="title"><i class="fa fa-users"></i>%i18n:desktop.tags.mk-user.followers-you-know.title%</p>
|
||||
<p class="initializing" if={ initializing }><i class="fa fa-spinner fa-pulse fa-fw"></i>%i18n:desktop.tags.mk-user.followers-you-know.loading%<mk-ellipsis/></p>
|
||||
<p class="title">%fa:users%%i18n:desktop.tags.mk-user.followers-you-know.title%</p>
|
||||
<p class="initializing" if={ initializing }>%fa:spinner .pluse .fw%%i18n:desktop.tags.mk-user.followers-you-know.loading%<mk-ellipsis/></p>
|
||||
<div 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>
|
||||
|
@ -712,7 +714,7 @@
|
|||
<mk-user-graphs>
|
||||
<section>
|
||||
<div>
|
||||
<h1><i class="fa fa-pencil"></i>投稿</h1>
|
||||
<h1>%fa:pencil-alt%投稿</h1>
|
||||
<mk-user-graphs-activity-chart user={ opts.user }/>
|
||||
</div>
|
||||
</section>
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
<span if={ moreFetching }>読み込み中<mk-ellipsis/></span>
|
||||
</button>
|
||||
<p class="no" if={ !fetching && users.length == 0 }>{ opts.noUsers }</p>
|
||||
<p class="fetching" if={ fetching }><i class="fa fa-spinner fa-pulse fa-fw"></i>読み込んでいます<mk-ellipsis/></p>
|
||||
<p class="fetching" if={ fetching }>%fa:spinner .pluse .fw%読み込んでいます<mk-ellipsis/></p>
|
||||
<style>
|
||||
:scope
|
||||
display block
|
||||
|
@ -84,7 +84,7 @@
|
|||
text-align center
|
||||
color #aaa
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 4px
|
||||
|
||||
</style>
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
<mk-activity-widget data-melt={ design == 2 }>
|
||||
<virtual if={ design == 0 }>
|
||||
<p class="title"><i class="fa fa-bar-chart"></i>%i18n:desktop.tags.mk-activity-widget.title%</p>
|
||||
<button onclick={ toggle } title="%i18n:desktop.tags.mk-activity-widget.toggle%"><i class="fa fa-sort"></i></button>
|
||||
<p class="title">%fa:bar-chart%%i18n:desktop.tags.mk-activity-widget.title%</p>
|
||||
<button onclick={ toggle } title="%i18n:desktop.tags.mk-activity-widget.toggle%">%fa:sort%</button>
|
||||
</virtual>
|
||||
<p class="initializing" if={ initializing }><i class="fa fa-spinner fa-pulse fa-fw"></i>%i18n:common.loading%<mk-ellipsis/></p>
|
||||
<p class="initializing" if={ initializing }>%fa:spinner .pluse .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) }/>
|
||||
<style>
|
||||
|
@ -27,7 +27,7 @@
|
|||
color #888
|
||||
box-shadow 0 1px rgba(0, 0, 0, 0.07)
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 4px
|
||||
|
||||
> button
|
||||
|
@ -53,7 +53,7 @@
|
|||
text-align center
|
||||
color #aaa
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 4px
|
||||
|
||||
</style>
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<mk-calendar-widget data-melt={ opts.design == 4 || opts.design == 5 }>
|
||||
<virtual if={ opts.design == 0 || opts.design == 1 }>
|
||||
<button onclick={ prev } title="%i18n:desktop.tags.mk-calendar-widget.prev%"><i class="fa fa-chevron-circle-left"></i></button>
|
||||
<button onclick={ 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 onclick={ next } title="%i18n:desktop.tags.mk-calendar-widget.next%"><i class="fa fa-chevron-circle-right"></i></button>
|
||||
<button onclick={ next } title="%i18n:desktop.tags.mk-calendar-widget.next%">%fa:chevron-circle-right%</button>
|
||||
</virtual>
|
||||
|
||||
<div class="calendar">
|
||||
|
@ -41,7 +41,7 @@
|
|||
color #888
|
||||
box-shadow 0 1px rgba(0, 0, 0, 0.07)
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 4px
|
||||
|
||||
> button
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
<header ref="header" onmousedown={ onHeaderMousedown }>
|
||||
<h1 data-yield="header"><yield from="header"/></h1>
|
||||
<div>
|
||||
<button class="popout" if={ popoutUrl } onmousedown={ repelMove } onclick={ popout } title="ポップアウト"><i class="fa fa-window-restore"></i></button>
|
||||
<button class="close" if={ canClose } onmousedown={ repelMove } onclick={ close } title="閉じる"><i class="fa fa-times"></i></button>
|
||||
<button class="popout" if={ popoutUrl } onmousedown={ repelMove } onclick={ popout } title="ポップアウト">%fa:window-restore%</button>
|
||||
<button class="close" if={ canClose } onmousedown={ repelMove } onclick={ close } title="閉じる">%fa:times%</button>
|
||||
</div>
|
||||
</header>
|
||||
<div class="content" data-yield="content"><yield from="content"/></div>
|
||||
|
@ -171,7 +171,7 @@
|
|||
&:active
|
||||
color darken(#000, 30%)
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
padding 0
|
||||
width $header-height
|
||||
line-height $header-height
|
||||
|
|
|
@ -10,13 +10,13 @@
|
|||
<label>
|
||||
<p class="caption">Named ID</p>
|
||||
<input ref="nid" type="text" pattern="^[a-zA-Z0-9-]{3,30}$" placeholder="ex) misskey-for-ios" autocomplete="off" required="required" onkeyup={ onChangeNid }/>
|
||||
<p class="info" if={ nidState == 'wait' } style="color:#999"><i class="fa fa-fw fa-spinner fa-pulse"></i>確認しています...</p>
|
||||
<p class="info" if={ nidState == 'ok' } style="color:#3CB7B5"><i class="fa fa-fw fa-check"></i>利用できます</p>
|
||||
<p class="info" if={ nidState == 'unavailable' } style="color:#FF1161"><i class="fa fa-fw fa-exclamation-triangle"></i>既に利用されています</p>
|
||||
<p class="info" if={ nidState == 'error' } style="color:#FF1161"><i class="fa fa-fw fa-exclamation-triangle"></i>通信エラー</p>
|
||||
<p class="info" if={ nidState == 'invalid-format' } style="color:#FF1161"><i class="fa fa-fw fa-exclamation-triangle"></i>a~z、A~Z、0~9、-(ハイフン)が使えます</p>
|
||||
<p class="info" if={ nidState == 'min-range' } style="color:#FF1161"><i class="fa fa-fw fa-exclamation-triangle"></i>3文字以上でお願いします!</p>
|
||||
<p class="info" if={ nidState == 'max-range' } style="color:#FF1161"><i class="fa fa-fw fa-exclamation-triangle"></i>30文字以内でお願いします</p>
|
||||
<p class="info" if={ nidState == 'wait' } style="color:#999">%fa:spinner .pluse .fw%確認しています...</p>
|
||||
<p class="info" if={ nidState == 'ok' } style="color:#3CB7B5">%fa:fw check%利用できます</p>
|
||||
<p class="info" if={ nidState == 'unavailable' } style="color:#FF1161">%fa:fw exclamation-triangle%既に利用されています</p>
|
||||
<p class="info" if={ nidState == 'error' } style="color:#FF1161">%fa:fw exclamation-triangle%通信エラー</p>
|
||||
<p class="info" if={ nidState == 'invalid-format' } style="color:#FF1161">%fa:fw exclamation-triangle%a~z、A~Z、0~9、-(ハイフン)が使えます</p>
|
||||
<p class="info" if={ nidState == 'min-range' } style="color:#FF1161">%fa:fw exclamation-triangle%3文字以上でお願いします!</p>
|
||||
<p class="info" if={ nidState == 'max-range' } style="color:#FF1161">%fa:fw exclamation-triangle%30文字以内でお願いします</p>
|
||||
</label>
|
||||
</section>
|
||||
<section class="description">
|
||||
|
@ -71,7 +71,7 @@
|
|||
<p>通知を操作する。</p>
|
||||
</label>
|
||||
</div>
|
||||
<p><i class="fa fa-exclamation-triangle"></i>アプリ作成後も変更できますが、新たな権限を付与する場合、その時点で関連付けられているユーザーキーはすべて無効になります。</p>
|
||||
<p>%fa:exclamation-triangle%アプリ作成後も変更できますが、新たな権限を付与する場合、その時点で関連付けられているユーザーキーはすべて無効になります。</p>
|
||||
</section>
|
||||
<button onclick={ onsubmit }>アプリ作成</button>
|
||||
</form>
|
||||
|
@ -91,7 +91,7 @@
|
|||
color #616161
|
||||
font-size 0.95em
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 0.25em
|
||||
color #96adac
|
||||
|
||||
|
@ -100,7 +100,7 @@
|
|||
margin 4px 0
|
||||
font-size 0.8em
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 0.3em
|
||||
|
||||
section.permission
|
||||
|
@ -141,7 +141,7 @@
|
|||
font-size 0.8em
|
||||
color #999
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 4px
|
||||
|
||||
[type=text]
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
<div class="body">
|
||||
<header>
|
||||
<h1>%i18n:mobile.tags.mk-drive-folder-selector.select-folder%</h1>
|
||||
<button class="close" onclick={ cancel }><i class="fa fa-times"></i></button>
|
||||
<button class="ok" onclick={ ok }><i class="fa fa-check"></i></button>
|
||||
<button class="close" onclick={ cancel }>%fa:times%</button>
|
||||
<button class="ok" onclick={ ok }>%fa:check%</button>
|
||||
</header>
|
||||
<mk-drive ref="browser" select-folder={ true }/>
|
||||
</div>
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
<div class="body">
|
||||
<header>
|
||||
<h1>%i18n:mobile.tags.mk-drive-selector.select-file%<span class="count" if={ files.length > 0 }>({ files.length })</span></h1>
|
||||
<button class="close" onclick={ cancel }><i class="fa fa-times"></i></button>
|
||||
<button if={ opts.multiple } class="ok" onclick={ ok }><i class="fa fa-check"></i></button>
|
||||
<button class="close" onclick={ cancel }>%fa:times%</button>
|
||||
<button if={ opts.multiple } class="ok" onclick={ ok }>%fa:check%</button>
|
||||
</header>
|
||||
<mk-drive ref="browser" select-file={ true } multiple={ opts.multiple }/>
|
||||
</div>
|
||||
|
|
|
@ -1,16 +1,16 @@
|
|||
<mk-drive>
|
||||
<nav ref="nav">
|
||||
<p onclick={ goRoot }><i class="fa fa-cloud"></i>%i18n:mobile.tags.mk-drive.drive%</p>
|
||||
<p onclick={ goRoot }>%fa:cloud%%i18n:mobile.tags.mk-drive.drive%</p>
|
||||
<virtual each={ folder in hierarchyFolders }>
|
||||
<span><i class="fa fa-angle-right"></i></span>
|
||||
<span>%fa:angle-right%</span>
|
||||
<p onclick={ move }>{ folder.name }</p>
|
||||
</virtual>
|
||||
<virtual if={ folder != null }>
|
||||
<span><i class="fa fa-angle-right"></i></span>
|
||||
<span>%fa:angle-right%</span>
|
||||
<p>{ folder.name }</p>
|
||||
</virtual>
|
||||
<virtual if={ file != null }>
|
||||
<span><i class="fa fa-angle-right"></i></span>
|
||||
<span>%fa:angle-right%</span>
|
||||
<p>{ file.name }</p>
|
||||
</virtual>
|
||||
</nav>
|
||||
|
@ -81,7 +81,7 @@
|
|||
&:last-child
|
||||
font-weight bold
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 4px
|
||||
|
||||
> span
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<mk-drive-file-viewer>
|
||||
<div class="preview">
|
||||
<img if={ kind == 'image' } src={ file.url } alt={ file.name } title={ file.name }>
|
||||
<i if={ kind != 'image' } class="fa fa-file"></i>
|
||||
<virtual if={ kind != 'image' }>%fa:file%</virtual>
|
||||
<footer if={ kind == 'image' && file.properties && file.properties.width && file.properties.height }>
|
||||
<span class="size">
|
||||
<span class="width">{ file.properties.width }</span>
|
||||
|
@ -23,26 +23,26 @@
|
|||
<span class="separator"></span>
|
||||
<span class="data-size">{ bytesToSize(file.datasize) }</span>
|
||||
<span class="separator"></span>
|
||||
<span class="created-at" onclick={ showCreatedAt }><i class="fa fa-clock-o"></i><mk-time time={ file.created_at }/></span>
|
||||
<span class="created-at" onclick={ showCreatedAt }>%fa:R clock%<mk-time time={ file.created_at }/></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="menu">
|
||||
<div>
|
||||
<a href={ file.url + '?download' } download={ file.name }>
|
||||
<i class="fa fa-download"></i>%i18n:mobile.tags.mk-drive-file-viewer.download%
|
||||
%fa:download%%i18n:mobile.tags.mk-drive-file-viewer.download%
|
||||
</a>
|
||||
<button onclick={ rename }>
|
||||
<i class="fa fa-pencil"></i>%i18n:mobile.tags.mk-drive-file-viewer.rename%
|
||||
%fa:pencil-alt%%i18n:mobile.tags.mk-drive-file-viewer.rename%
|
||||
</button>
|
||||
<button onclick={ move }>
|
||||
<i class="fa fa-folder-open"></i>%i18n:mobile.tags.mk-drive-file-viewer.move%
|
||||
%fa:folder-open%%i18n:mobile.tags.mk-drive-file-viewer.move%
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="hash">
|
||||
<div>
|
||||
<p>
|
||||
<i class="fa fa-hashtag"></i>%i18n:mobile.tags.mk-drive-file-viewer.hash%
|
||||
%fa:hashtag%%i18n:mobile.tags.mk-drive-file-viewer.hash%
|
||||
</p>
|
||||
<code>{ file.md5 }</code>
|
||||
</div>
|
||||
|
@ -114,7 +114,7 @@
|
|||
> .created-at
|
||||
color #bdbdbd
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 2px
|
||||
|
||||
> .menu
|
||||
|
@ -149,7 +149,7 @@
|
|||
border-color #444
|
||||
box-shadow 0 1px 3px rgba(0, 0, 0, 0.075), inset 0 0 5px rgba(0, 0, 0, 0.2)
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 4px
|
||||
|
||||
> .hash
|
||||
|
@ -167,7 +167,7 @@
|
|||
color #555
|
||||
font-size 0.9em
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 4px
|
||||
|
||||
> code
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
<p class="data-size">{ bytesToSize(file.datasize) }</p>
|
||||
<p class="separator"></p>
|
||||
<p class="created-at">
|
||||
<i class="fa fa-clock-o"></i><mk-time time={ file.created_at }/>
|
||||
%fa:R clock%<mk-time time={ file.created_at }/>
|
||||
</p>
|
||||
</footer>
|
||||
</div>
|
||||
|
@ -112,7 +112,7 @@
|
|||
padding 0
|
||||
color #BDBDBD
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 2px
|
||||
|
||||
&[data-is-selected]
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<mk-drive-folder onclick={ onclick }>
|
||||
<div class="container">
|
||||
<p class="name"><i class="fa fa-folder"></i>{ folder.name }</p><i class="fa fa-angle-right"></i>
|
||||
<p class="name">%fa:folder%{ folder.name }</p>%fa:angle-right%
|
||||
</div>
|
||||
<style>
|
||||
:scope
|
||||
|
@ -23,10 +23,10 @@
|
|||
margin 0
|
||||
padding 0
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 6px
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
position absolute
|
||||
top 0
|
||||
bottom 0
|
||||
|
|
|
@ -1,6 +1,10 @@
|
|||
<mk-follow-button>
|
||||
<button class={ wait: wait, follow: !user.is_following, unfollow: user.is_following } if={ !init } onclick={ onclick } disabled={ wait }><i class="fa fa-minus" if={ !wait && user.is_following }></i><i class="fa fa-plus" if={ !wait && !user.is_following }></i><i class="fa fa-spinner fa-pulse fa-fw" if={ wait }></i>{ user.is_following ? '%i18n:mobile.tags.mk-follow-button.unfollow%' : '%i18n:mobile.tags.mk-follow-button.follow%' }</button>
|
||||
<div class="init" if={ init }><i class="fa fa-spinner fa-pulse fa-fw"></i></div>
|
||||
<button class={ wait: wait, follow: !user.is_following, unfollow: user.is_following } if={ !init } onclick={ 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 .pluse .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 .pluse .fw%</div>
|
||||
<style>
|
||||
:scope
|
||||
display block
|
||||
|
@ -43,7 +47,7 @@
|
|||
cursor wait !important
|
||||
opacity 0.7
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 4px
|
||||
|
||||
</style>
|
||||
|
|
|
@ -6,9 +6,9 @@
|
|||
</virtual>
|
||||
</div>
|
||||
<p class="empty" if={ !fetching && users.length == 0 }>おすすめのユーザーは見つかりませんでした。</p>
|
||||
<p class="fetching" if={ fetching }><i class="fa fa-spinner fa-pulse fa-fw"></i>読み込んでいます<mk-ellipsis/></p>
|
||||
<p class="fetching" if={ fetching }>%fa:spinner .pluse .fw%読み込んでいます<mk-ellipsis/></p>
|
||||
<a class="refresh" onclick={ refresh }>もっと見る</a>
|
||||
<button class="close" onclick={ close } title="閉じる"><i class="fa fa-times"></i></button>
|
||||
<button class="close" onclick={ close } title="閉じる">%fa:times%</button>
|
||||
<style>
|
||||
:scope
|
||||
display block
|
||||
|
@ -46,7 +46,7 @@
|
|||
text-align center
|
||||
color #aaa
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 4px
|
||||
|
||||
> .refresh
|
||||
|
@ -78,7 +78,7 @@
|
|||
&:active
|
||||
color #222
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
padding 10px
|
||||
|
||||
</style>
|
||||
|
|
|
@ -9,41 +9,41 @@
|
|||
<virtual if={ notification.type == 'repost' }>
|
||||
<img class="avatar" src={ notification.post.user.avatar_url + '?thumbnail&size=64' } alt="avatar"/>
|
||||
<div class="text">
|
||||
<p><i class="fa fa-retweet"></i>{ notification.post.user.name }</p>
|
||||
<p>%fa:retweet%{ notification.post.user.name }</p>
|
||||
<p class="post-ref">{ getPostSummary(notification.post.repost) }</p>
|
||||
</div>
|
||||
</virtual>
|
||||
<virtual if={ notification.type == 'quote' }>
|
||||
<img class="avatar" src={ notification.post.user.avatar_url + '?thumbnail&size=64' } alt="avatar"/>
|
||||
<div class="text">
|
||||
<p><i class="fa fa-quote-left"></i>{ notification.post.user.name }</p>
|
||||
<p>%fa:quote-left%{ notification.post.user.name }</p>
|
||||
<p class="post-preview">{ getPostSummary(notification.post) }</p>
|
||||
</div>
|
||||
</virtual>
|
||||
<virtual if={ notification.type == 'follow' }>
|
||||
<img class="avatar" src={ notification.user.avatar_url + '?thumbnail&size=64' } alt="avatar"/>
|
||||
<div class="text">
|
||||
<p><i class="fa fa-user-plus"></i>{ notification.user.name }</p>
|
||||
<p>%fa:user-plus%{ notification.user.name }</p>
|
||||
</div>
|
||||
</virtual>
|
||||
<virtual if={ notification.type == 'reply' }>
|
||||
<img class="avatar" src={ notification.post.user.avatar_url + '?thumbnail&size=64' } alt="avatar"/>
|
||||
<div class="text">
|
||||
<p><i class="fa fa-reply"></i>{ notification.post.user.name }</p>
|
||||
<p>%fa:reply%{ notification.post.user.name }</p>
|
||||
<p class="post-preview">{ getPostSummary(notification.post) }</p>
|
||||
</div>
|
||||
</virtual>
|
||||
<virtual if={ notification.type == 'mention' }>
|
||||
<img class="avatar" src={ notification.post.user.avatar_url + '?thumbnail&size=64' } alt="avatar"/>
|
||||
<div class="text">
|
||||
<p><i class="fa fa-at"></i>{ notification.post.user.name }</p>
|
||||
<p>%fa:at%{ notification.post.user.name }</p>
|
||||
<p class="post-preview">{ getPostSummary(notification.post) }</p>
|
||||
</div>
|
||||
</virtual>
|
||||
<virtual if={ notification.type == 'poll_vote' }>
|
||||
<img class="avatar" src={ notification.user.avatar_url + '?thumbnail&size=64' } alt="avatar"/>
|
||||
<div class="text">
|
||||
<p><i class="fa fa-pie-chart"></i>{ notification.user.name }</p>
|
||||
<p>%fa:pie-chart%{ notification.user.name }</p>
|
||||
<p class="post-ref">{ getPostSummary(notification.post) }</p>
|
||||
</div>
|
||||
</virtual>
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
</a>
|
||||
<div class="text">
|
||||
<p>
|
||||
<i class="fa fa-retweet"></i>
|
||||
%fa:retweet%
|
||||
<a href={ '/' + notification.post.user.username }>{ notification.post.user.name }</a>
|
||||
</p>
|
||||
<a class="post-ref" href={ '/' + notification.post.user.username + '/' + notification.post.id }>{ getPostSummary(notification.post.repost) }</a>
|
||||
|
@ -30,7 +30,7 @@
|
|||
</a>
|
||||
<div class="text">
|
||||
<p>
|
||||
<i class="fa fa-quote-left"></i>
|
||||
%fa:quote-left%
|
||||
<a href={ '/' + notification.post.user.username }>{ notification.post.user.name }</a>
|
||||
</p>
|
||||
<a class="post-preview" href={ '/' + notification.post.user.username + '/' + notification.post.id }>{ getPostSummary(notification.post) }</a>
|
||||
|
@ -42,7 +42,7 @@
|
|||
</a>
|
||||
<div class="text">
|
||||
<p>
|
||||
<i class="fa fa-user-plus"></i>
|
||||
%fa:user-plus%
|
||||
<a href={ '/' + notification.user.username }>{ notification.user.name }</a>
|
||||
</p>
|
||||
</div>
|
||||
|
@ -53,7 +53,7 @@
|
|||
</a>
|
||||
<div class="text">
|
||||
<p>
|
||||
<i class="fa fa-reply"></i>
|
||||
%fa:reply%
|
||||
<a href={ '/' + notification.post.user.username }>{ notification.post.user.name }</a>
|
||||
</p>
|
||||
<a class="post-preview" href={ '/' + notification.post.user.username + '/' + notification.post.id }>{ getPostSummary(notification.post) }</a>
|
||||
|
@ -65,7 +65,7 @@
|
|||
</a>
|
||||
<div class="text">
|
||||
<p>
|
||||
<i class="fa fa-at"></i>
|
||||
%fa:at%
|
||||
<a href={ '/' + notification.post.user.username }>{ notification.post.user.name }</a>
|
||||
</p>
|
||||
<a class="post-preview" href={ '/' + notification.post.user.username + '/' + notification.post.id }>{ getPostSummary(notification.post) }</a>
|
||||
|
@ -77,7 +77,7 @@
|
|||
</a>
|
||||
<div class="text">
|
||||
<p>
|
||||
<i class="fa fa-pie-chart"></i>
|
||||
%fa:pie-chart%
|
||||
<a href={ '/' + notification.user.username }>{ notification.user.name }</a>
|
||||
</p>
|
||||
<a class="post-ref" href={ '/' + notification.post.user.username + '/' + notification.post.id }>{ getPostSummary(notification.post) }</a>
|
||||
|
|
|
@ -2,14 +2,14 @@
|
|||
<div class="notifications" 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><i class="fa fa-angle-up"></i>{ notification._datetext }</span><span><i class="fa fa-angle-down"></i>{ notifications[i + 1]._datetext }</span></p>
|
||||
<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>
|
||||
</virtual>
|
||||
</div>
|
||||
<button class="more" if={ moreNotifications } onclick={ fetchMoreNotifications } disabled={ fetchingMoreNotifications }>
|
||||
<i class="fa fa-spinner fa-pulse fa-fw" if={ fetchingMoreNotifications }></i>{ fetchingMoreNotifications ? '%i18n:common.loading%' : '%i18n:mobile.tags.mk-notifications.more%' }
|
||||
<virtual if={ fetchingMoreNotifications }>%fa:spinner .pluse .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 }><i class="fa fa-spinner fa-pulse fa-fw"></i>%i18n:common.loading%<mk-ellipsis/></p>
|
||||
<p class="loading" if={ loading }>%fa:spinner .pluse .fw%%i18n:common.loading%<mk-ellipsis/></p>
|
||||
<style>
|
||||
:scope
|
||||
display block
|
||||
|
@ -58,7 +58,7 @@
|
|||
color #555
|
||||
border-top solid 1px rgba(0, 0, 0, 0.05)
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 4px
|
||||
|
||||
> .empty
|
||||
|
@ -73,7 +73,7 @@
|
|||
text-align center
|
||||
color #aaa
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 4px
|
||||
|
||||
</style>
|
||||
|
|
|
@ -12,11 +12,11 @@
|
|||
|
||||
this.on('mount', () => {
|
||||
document.title = 'Misskey Drive';
|
||||
ui.trigger('title', '<i class="fa fa-cloud"></i>%i18n:mobile.tags.mk-drive-page.drive%');
|
||||
ui.trigger('title', '%fa:cloud%%i18n:mobile.tags.mk-drive-page.drive%');
|
||||
|
||||
ui.trigger('func', () => {
|
||||
this.refs.ui.refs.browser.openContextMenu();
|
||||
}, 'ellipsis-h');
|
||||
}, '%fa:ellipsis-h%');
|
||||
|
||||
this.refs.ui.refs.browser.on('begin-fetch', () => {
|
||||
Progress.start();
|
||||
|
@ -37,7 +37,7 @@
|
|||
history.pushState(null, title, '/i/drive');
|
||||
|
||||
document.title = title;
|
||||
ui.trigger('title', '<i class="fa fa-cloud"></i>%i18n:mobile.tags.mk-drive-page.drive%');
|
||||
ui.trigger('title', '%fa:cloud%%i18n:mobile.tags.mk-drive-page.drive%');
|
||||
});
|
||||
|
||||
this.refs.ui.refs.browser.on('open-folder', (folder, silent) => {
|
||||
|
@ -50,7 +50,7 @@
|
|||
|
||||
document.title = title;
|
||||
// TODO: escape html characters in folder.name
|
||||
ui.trigger('title', '<i class="fa fa-folder-open"></i>' + folder.name);
|
||||
ui.trigger('title', '%fa:folder-open%' + folder.name);
|
||||
});
|
||||
|
||||
this.refs.ui.refs.browser.on('open-file', (file, silent) => {
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<mk-entrance-signup>
|
||||
<mk-signup/>
|
||||
<button class="cancel" type="button" onclick={ parent.signin } title="%i18n:mobile.tags.mk-entrance-signup.cancel%"><i class="fa fa-times"></i></button>
|
||||
<button class="cancel" type="button" onclick={ parent.signin } title="%i18n:mobile.tags.mk-entrance-signup.cancel%">%fa:times%</button>
|
||||
<style>
|
||||
:scope
|
||||
display block
|
||||
|
@ -31,7 +31,7 @@
|
|||
&:active
|
||||
color #222
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
padding 14px
|
||||
|
||||
</style>
|
||||
|
|
|
@ -22,12 +22,12 @@
|
|||
|
||||
this.on('mount', () => {
|
||||
document.title = 'Misskey'
|
||||
ui.trigger('title', '<i class="fa fa-home"></i>%i18n:mobile.tags.mk-home.home%');
|
||||
ui.trigger('title', '%fa:home%%i18n:mobile.tags.mk-home.home%');
|
||||
document.documentElement.style.background = '#313a42';
|
||||
|
||||
ui.trigger('func', () => {
|
||||
openPostForm();
|
||||
}, 'pencil');
|
||||
}, '%fa:pencil-alt%');
|
||||
|
||||
Progress.start();
|
||||
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
|
||||
document.title = `%i18n:mobile.tags.mk-messaging-room-page.message%: ${user.name} | Misskey`;
|
||||
// TODO: ユーザー名をエスケープ
|
||||
ui.trigger('title', '<i class="fa fa-comments-o"></i>' + user.name);
|
||||
ui.trigger('title', '%fa:R comments%' + user.name);
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
|
||||
this.on('mount', () => {
|
||||
document.title = 'Misskey | %i18n:mobile.tags.mk-messaging-page.message%';
|
||||
ui.trigger('title', '<i class="fa fa-comments-o"></i>%i18n:mobile.tags.mk-messaging-page.message%');
|
||||
ui.trigger('title', '%fa:R comments%%i18n:mobile.tags.mk-messaging-page.message%');
|
||||
|
||||
this.refs.ui.refs.index.on('navigate-user', user => {
|
||||
this.page('/i/messaging/' + user.username);
|
||||
|
|
|
@ -14,12 +14,12 @@
|
|||
|
||||
this.on('mount', () => {
|
||||
document.title = 'Misskey | %i18n:mobile.tags.mk-notifications-page.notifications%';
|
||||
ui.trigger('title', '<i class="fa fa-bell-o"></i>%i18n:mobile.tags.mk-notifications-page.notifications%');
|
||||
ui.trigger('title', '%fa:R bell%%i18n:mobile.tags.mk-notifications-page.notifications%');
|
||||
document.documentElement.style.background = '#313a42';
|
||||
|
||||
ui.trigger('func', () => {
|
||||
this.readAll();
|
||||
}, 'check');
|
||||
}, '%fa:check%');
|
||||
|
||||
Progress.start();
|
||||
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
<mk-post-page>
|
||||
<mk-ui ref="ui">
|
||||
<main if={ !parent.fetching }>
|
||||
<a if={ parent.post.next } href={ parent.post.next }><i class="fa fa-angle-up"></i>%i18n:mobile.tags.mk-post-page.next%</a>
|
||||
<a 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 }><i class="fa fa-angle-down"></i>%i18n:mobile.tags.mk-post-page.prev%</a>
|
||||
<a if={ parent.post.prev } href={ parent.post.prev }>%fa:angle-down%%i18n:mobile.tags.mk-post-page.prev%</a>
|
||||
</main>
|
||||
</mk-ui>
|
||||
<style>
|
||||
|
@ -40,8 +40,9 @@
|
|||
@media (min-width 500px)
|
||||
margin-bottom 16px
|
||||
|
||||
> i
|
||||
> [data-fa]
|
||||
margin-right 4px
|
||||
|
||||
</style>
|
||||
<script>
|
||||
import ui from '../../scripts/ui-event';
|
||||
|
@ -54,7 +55,7 @@
|
|||
|
||||
this.on('mount', () => {
|
||||
document.title = 'Misskey';
|
||||
ui.trigger('title', '<i class="fa fa-sticky-note-o"></i>%i18n:mobile.tags.mk-post-page.title%');
|
||||
ui.trigger('title', '%fa:sticky-note-o%%i18n:mobile.tags.mk-post-page.title%');
|
||||
document.documentElement.style.background = '#313a42';
|
||||
|
||||
Progress.start();
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
this.on('mount', () => {
|
||||
document.title = `%i18n:mobile.tags.mk-search-page.search%: ${this.opts.query} | Misskey`
|
||||
// TODO: クエリをHTMLエスケープ
|
||||
ui.trigger('title', '<i class="fa fa-search"></i>' + this.opts.query);
|
||||
ui.trigger('title', '%fa:search%' + this.opts.query);
|
||||
document.documentElement.style.background = '#313a42';
|
||||
|
||||
Progress.start();
|
||||
|
|
|
@ -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>
|
||||
<button class="upload" onclick={ upload }><i class="fa fa-upload"></i></button>
|
||||
<button if={ multiple } class="ok" onclick={ ok }><i class="fa fa-check"></i></button>
|
||||
<button class="upload" onclick={ upload }>%fa:upload%</button>
|
||||
<button if={ multiple } class="ok" onclick={ ok }>%fa:check%</button>
|
||||
</header>
|
||||
<mk-drive ref="browser" select-file={ true } multiple={ multiple } is-naked={ true } top={ 42 }/>
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
|
||||
this.on('mount', () => {
|
||||
document.title = 'Misskey | %i18n:mobile.tags.mk-settings-page.settings%';
|
||||
ui.trigger('title', '<i class="fa fa-cog"></i>%i18n:mobile.tags.mk-settings-page.settings%');
|
||||
ui.trigger('title', '%fa:cog%%i18n:mobile.tags.mk-settings-page.settings%');
|
||||
document.documentElement.style.background = '#313a42';
|
||||
});
|
||||
</script>
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
|
||||
this.on('mount', () => {
|
||||
document.title = 'Misskey | API';
|
||||
ui.trigger('title', '<i class="fa fa-key"></i>API');
|
||||
ui.trigger('title', '%fa:key%API');
|
||||
});
|
||||
</script>
|
||||
</mk-api-info-page>
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue