Compare commits

...

11 Commits

Author SHA1 Message Date
syuilo
a0f10d7ca1 10.38.4 2018-11-04 18:38:04 +09:00
syuilo
299b91edc4 [API] Improve admin/emoji/add 2018-11-04 18:37:12 +09:00
syuilo
95c89ca6db RE: [Client] Fix bug 2018-11-04 18:36:19 +09:00
syuilo
7fe0d71e7f [Client] Fix bug 2018-11-04 18:35:55 +09:00
syuilo
fbbb506e86 🎨 2018-11-04 18:31:27 +09:00
syuilo
ec80b06a45 Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2018-11-04 18:24:20 +09:00
syuilo
41e1619f1f [Client] Fix bug 2018-11-04 18:24:08 +09:00
syuilo
ba6a9c6a93 Merge pull request #3092 from syuilo/l10n_develop
New Crowdin translations
2018-11-04 18:22:19 +09:00
MeiMei
18571c52fb Fix: emoji regex (#3093) 2018-11-04 17:36:37 +09:00
syuilo
5d5dfeaa83 New translations ja-JP.yml (Japanese, Kansai) 2018-11-04 17:11:19 +09:00
syuilo
3669d8c0f3 New translations ja-JP.yml (Japanese, Kansai) 2018-11-04 17:01:11 +09:00
13 changed files with 53 additions and 48 deletions

View File

@@ -186,7 +186,7 @@ common:
stack-left: "左に重ねんで!" stack-left: "左に重ねんで!"
pop-right: "右に出すで!" pop-right: "右に出すで!"
dev: "アプリの作成あかんかったわ。もっぺんやってみて。" dev: "アプリの作成あかんかったわ。もっぺんやってみて。"
ai-chan-kawaii: "藍ちゃかわいい" ai-chan-kawaii: "藍ちゃめっさべっぴんさんや"
auth/views/form.vue: auth/views/form.vue:
share-access: "<i>{{ app.name }}</i>があんさんのアカウントにアクセスすんのを<b>許可</b>してもええか?" share-access: "<i>{{ app.name }}</i>があんさんのアカウントにアクセスすんのを<b>許可</b>してもええか?"
permission-ask: "このアプリは次の権限を要求してんで:" permission-ask: "このアプリは次の権限を要求してんで:"
@@ -744,7 +744,7 @@ desktop/views/components/settings.vue:
apps: "アプリ" apps: "アプリ"
mute-and-block: "ミュート/ブロック" mute-and-block: "ミュート/ブロック"
blocking: "ブロック" blocking: "ブロック"
security: "守護神セキュリティ" security: "セキュリティ"
signin: "こんな感じでサインインしたらしいで" signin: "こんな感じでサインインしたらしいで"
password: "パスワード" password: "パスワード"
2fa: "二段階認証" 2fa: "二段階認証"
@@ -873,15 +873,15 @@ common/views/components/mute-and-block.vue:
mute-and-block: "ミュートとブロック" mute-and-block: "ミュートとブロック"
mute: "ミュート" mute: "ミュート"
block: "ブロック" block: "ブロック"
no-muted-users: "ミュートしているユーザーはいません" no-muted-users: "ミュートしるユーザーはおらんで"
no-blocked-users: "ブロックしているユーザーはいません" no-blocked-users: "ブロックしるユーザーはおらんで"
common/views/components/password-settings.vue: common/views/components/password-settings.vue:
reset: "パスワードを変更する" reset: "パスワード変える"
enter-current-password: "現在のパスワードを入力してください" enter-current-password: "のパスワードを入れてや"
enter-new-password: "新しいパスワードを入力してください" enter-new-password: "こんどのパスワード入れてや"
enter-new-password-again: "もう一度新しいパスワードを入力してください" enter-new-password-again: "もっぺん入れてや"
not-match: "新しいパスワードが一致しません" not-match: "パスワードがおうとらん"
changed: "パスワードを変更しました" changed: "パスワード変えたわ"
desktop/views/components/sub-note-content.vue: desktop/views/components/sub-note-content.vue:
private: "この投稿は見せられへんわ" private: "この投稿は見せられへんわ"
deleted: "この投稿なんか無くなってもうたわ" deleted: "この投稿なんか無くなってもうたわ"
@@ -953,7 +953,7 @@ admin/views/index.vue:
emoji: "カスタム絵文字" emoji: "カスタム絵文字"
users: "ユーザー" users: "ユーザー"
update: "更新" update: "更新"
announcements: "お知らせ" announcements: "知っといてや"
hashtags: "ハッシュタグ" hashtags: "ハッシュタグ"
back-to-misskey: "Misskeyに戻る" back-to-misskey: "Misskeyに戻る"
admin/views/dashboard.vue: admin/views/dashboard.vue:
@@ -962,9 +962,9 @@ admin/views/dashboard.vue:
notes: "投稿" notes: "投稿"
drive: "ドライブ" drive: "ドライブ"
instances: "インスタンス" instances: "インスタンス"
this-instance: "のインスタンス" this-instance: "ワイのインスタンス"
federated: "連合" federated: "連合"
invite: "招待" invite: "来てや"
banner-url: "Banner URL" banner-url: "Banner URL"
disableRegistration: "Disable new user registration" disableRegistration: "Disable new user registration"
disableLocalTimeline: "Disable the local timeline" disableLocalTimeline: "Disable the local timeline"
@@ -980,7 +980,7 @@ admin/views/charts.vue:
charts: charts:
federation-instances: "インスタンスの増減" federation-instances: "インスタンスの増減"
federation-instances-total: "インスタンスの積算" federation-instances-total: "インスタンスの積算"
notes: "投稿の増減 (統合)" notes: "投稿の増減(統合)"
local-notes: "投稿の増減 (ローカル)" local-notes: "投稿の増減 (ローカル)"
remote-notes: "投稿の増減 (リモート)" remote-notes: "投稿の増減 (リモート)"
notes-total: "投稿の積算" notes-total: "投稿の積算"
@@ -1387,7 +1387,7 @@ mobile/views/pages/user.vue:
mute: "ミュート" mute: "ミュート"
unmute: "ミュート解除" unmute: "ミュート解除"
block: "ブロック" block: "ブロック"
unblock: "ブロック解除" unblock: "ブロックやめたる"
mobile/views/pages/user/home.vue: mobile/views/pages/user/home.vue:
recent-notes: "最近儲かりまっか?" recent-notes: "最近儲かりまっか?"
images: "画像" images: "画像"

View File

@@ -1,8 +1,8 @@
{ {
"name": "misskey", "name": "misskey",
"author": "syuilo <i@syuilo.com>", "author": "syuilo <i@syuilo.com>",
"version": "10.38.3", "version": "10.38.4",
"clientVersion": "1.0.11490", "clientVersion": "1.0.11501",
"codename": "nighthike", "codename": "nighthike",
"main": "./built/index.js", "main": "./built/index.js",
"private": true, "private": true,

View File

@@ -54,9 +54,9 @@ export default Vue.extend({
(this as any).api('admin/update-meta', { (this as any).api('admin/update-meta', {
broadcasts: this.announcements broadcasts: this.announcements
}).then(() => { }).then(() => {
(this as any).os.apis.dialog({ text: `Saved` }); //(this as any).os.apis.dialog({ text: `Saved` });
}).catch(e => { }).catch(e => {
(this as any).os.apis.dialog({ text: `Failed ${e}` }); //(this as any).os.apis.dialog({ text: `Failed ${e}` });
}); });
} }
} }

View File

@@ -63,9 +63,9 @@ export default Vue.extend({
<style lang="stylus" scoped> <style lang="stylus" scoped>
.hyhctythnmwihguaaapnbrbszsjqxpio .hyhctythnmwihguaaapnbrbszsjqxpio
display block display block
padding 16px padding 12px 16px 16px 16px
height 250px height 250px
overflow auto overflow hidden
box-shadow 0 2px 4px rgba(0, 0, 0, 0.1) box-shadow 0 2px 4px rgba(0, 0, 0, 0.1)
background var(--adminDashboardCardBg) background var(--adminDashboardCardBg)
border-radius 8px border-radius 8px
@@ -77,10 +77,10 @@ export default Vue.extend({
border-spacing 0 border-spacing 0
border-collapse collapse border-collapse collapse
color var(--adminDashboardCardFg) color var(--adminDashboardCardFg)
font-size 15px font-size 14px
thead thead
border-bottom solid 2px var(--adminDashboardCardDivider) border-bottom solid 1px var(--adminDashboardCardDivider)
tr tr
th th

View File

@@ -136,13 +136,16 @@ export default Vue.extend({
border-bottom solid 1px var(--adminDashboardHeaderBorder) border-bottom solid 1px var(--adminDashboardHeaderBorder)
color var(--adminDashboardHeaderFg) color var(--adminDashboardHeaderFg)
font-size 14px font-size 14px
white-space nowrap
@media (max-width 1000px) @media (max-width 1000px)
display none display none
> p > p
display inline display block
margin 0 32px 0 0 margin 0 32px 0 0
overflow hidden
text-overflow ellipsis
> b > b
&:after &:after

View File

@@ -70,10 +70,10 @@ export default Vue.extend({
url: this.url, url: this.url,
aliases: this.aliases.split(' ') aliases: this.aliases.split(' ')
}).then(() => { }).then(() => {
(this as any).os.apis.dialog({ text: `Added` }); //(this as any).os.apis.dialog({ text: `Added` });
this.fetchEmojis(); this.fetchEmojis();
}).catch(e => { }).catch(e => {
(this as any).os.apis.dialog({ text: `Failed ${e}` }); //(this as any).os.apis.dialog({ text: `Failed ${e}` });
}); });
}, },
@@ -91,9 +91,9 @@ export default Vue.extend({
url: emoji.url, url: emoji.url,
aliases: emoji.aliases.split(' ') aliases: emoji.aliases.split(' ')
}).then(() => { }).then(() => {
(this as any).os.apis.dialog({ text: `Updated` }); //(this as any).os.apis.dialog({ text: `Updated` });
}).catch(e => { }).catch(e => {
(this as any).os.apis.dialog({ text: `Failed ${e}` }); //(this as any).os.apis.dialog({ text: `Failed ${e}` });
}); });
}, },
@@ -101,10 +101,10 @@ export default Vue.extend({
(this as any).api('admin/emoji/remove', { (this as any).api('admin/emoji/remove', {
id: emoji.id id: emoji.id
}).then(() => { }).then(() => {
(this as any).os.apis.dialog({ text: `Removed` }); //(this as any).os.apis.dialog({ text: `Removed` });
this.fetchEmojis(); this.fetchEmojis();
}).catch(e => { }).catch(e => {
(this as any).os.apis.dialog({ text: `Failed ${e}` }); //(this as any).os.apis.dialog({ text: `Failed ${e}` });
}); });
} }
} }

View File

@@ -29,9 +29,9 @@ export default Vue.extend({
(this as any).api('admin/update-meta', { (this as any).api('admin/update-meta', {
hidedTags: this.hidedTags.split('\n') hidedTags: this.hidedTags.split('\n')
}).then(() => { }).then(() => {
(this as any).os.apis.dialog({ text: `Saved` }); //(this as any).os.apis.dialog({ text: `Saved` });
}).catch(e => { }).catch(e => {
(this as any).os.apis.dialog({ text: `Failed ${e}` }); //(this as any).os.apis.dialog({ text: `Failed ${e}` });
}); });
} }
} }

View File

@@ -43,7 +43,7 @@ export default Vue.extend({
(this as any).api('admin/invite').then(x => { (this as any).api('admin/invite').then(x => {
this.inviteCode = x.code; this.inviteCode = x.code;
}).catch(e => { }).catch(e => {
(this as any).os.apis.dialog({ text: `Failed ${e}` }); //(this as any).os.apis.dialog({ text: `Failed ${e}` });
}); });
}, },
updateMeta() { updateMeta() {
@@ -52,9 +52,9 @@ export default Vue.extend({
disableLocalTimeline: this.disableLocalTimeline, disableLocalTimeline: this.disableLocalTimeline,
bannerUrl: this.bannerUrl bannerUrl: this.bannerUrl
}).then(() => { }).then(() => {
(this as any).os.apis.dialog({ text: `Saved` }); //(this as any).os.apis.dialog({ text: `Saved` });
}).catch(e => { }).catch(e => {
(this as any).os.apis.dialog({ text: `Failed ${e}` }); //(this as any).os.apis.dialog({ text: `Failed ${e}` });
}); });
} }
} }

View File

@@ -67,11 +67,11 @@ export default Vue.extend({
const process = async () => { const process = async () => {
const user = await (this as any).os.api('users/show', parseAcct(this.verifyUsername)); const user = await (this as any).os.api('users/show', parseAcct(this.verifyUsername));
await (this as any).os.api('admin/verify-user', { userId: user.id }); await (this as any).os.api('admin/verify-user', { userId: user.id });
(this as any).os.apis.dialog({ text: '%i18n:@verified%' }); //(this as any).os.apis.dialog({ text: '%i18n:@verified%' });
}; };
await process().catch(e => { await process().catch(e => {
(this as any).os.apis.dialog({ text: `Failed: ${e}` }); //(this as any).os.apis.dialog({ text: `Failed: ${e}` });
}); });
this.verifying = false; this.verifying = false;
@@ -83,11 +83,11 @@ export default Vue.extend({
const process = async () => { const process = async () => {
const user = await (this as any).os.api('users/show', parseAcct(this.unverifyUsername)); const user = await (this as any).os.api('users/show', parseAcct(this.unverifyUsername));
await (this as any).os.api('admin/unverify-user', { userId: user.id }); await (this as any).os.api('admin/unverify-user', { userId: user.id });
(this as any).os.apis.dialog({ text: '%i18n:@unverified%' }); //(this as any).os.apis.dialog({ text: '%i18n:@unverified%' });
}; };
await process().catch(e => { await process().catch(e => {
(this as any).os.apis.dialog({ text: `Failed: ${e}` }); //(this as any).os.apis.dialog({ text: `Failed: ${e}` });
}); });
this.unverifying = false; this.unverifying = false;
@@ -99,11 +99,11 @@ export default Vue.extend({
const process = async () => { const process = async () => {
const user = await (this as any).os.api('users/show', parseAcct(this.suspendUsername)); const user = await (this as any).os.api('users/show', parseAcct(this.suspendUsername));
await (this as any).os.api('admin/suspend-user', { userId: user.id }); await (this as any).os.api('admin/suspend-user', { userId: user.id });
(this as any).os.apis.dialog({ text: '%i18n:@suspended%' }); //(this as any).os.apis.dialog({ text: '%i18n:@suspended%' });
}; };
await process().catch(e => { await process().catch(e => {
(this as any).os.apis.dialog({ text: `Failed: ${e}` }); //(this as any).os.apis.dialog({ text: `Failed: ${e}` });
}); });
this.suspending = false; this.suspending = false;
@@ -115,11 +115,11 @@ export default Vue.extend({
const process = async () => { const process = async () => {
const user = await (this as any).os.api('users/show', parseAcct(this.unsuspendUsername)); const user = await (this as any).os.api('users/show', parseAcct(this.unsuspendUsername));
await (this as any).os.api('admin/unsuspend-user', { userId: user.id }); await (this as any).os.api('admin/unsuspend-user', { userId: user.id });
(this as any).os.apis.dialog({ text: '%i18n:@unsuspended%' }); //(this as any).os.apis.dialog({ text: '%i18n:@unsuspended%' });
}; };
await process().catch(e => { await process().catch(e => {
(this as any).os.apis.dialog({ text: `Failed: ${e}` }); //(this as any).os.apis.dialog({ text: `Failed: ${e}` });
}); });
this.unsuspending = false; this.unsuspending = false;

View File

@@ -31,7 +31,7 @@
<p>%fa:cog%<span>%i18n:@settings%</span>%fa:angle-right%</p> <p>%fa:cog%<span>%i18n:@settings%</span>%fa:angle-right%</p>
</li> </li>
<li v-if="$store.state.i.isAdmin"> <li v-if="$store.state.i.isAdmin">
<router-link to="/admin">%fa:terminal%<span>%i18n:@admin%</span>%fa:angle-right%</router-link> <a href="/admin">%fa:terminal%<span>%i18n:@admin%</span>%fa:angle-right%</a>
</li> </li>
</ul> </ul>
<ul> <ul>

View File

@@ -30,7 +30,7 @@
<ul> <ul>
<li><a @click="search">%fa:search%%i18n:@search%%fa:angle-right%</a></li> <li><a @click="search">%fa:search%%i18n:@search%%fa:angle-right%</a></li>
<li><router-link to="/i/settings" :data-active="$route.name == 'settings'">%fa:cog%%i18n:@settings%%fa:angle-right%</router-link></li> <li><router-link to="/i/settings" :data-active="$route.name == 'settings'">%fa:cog%%i18n:@settings%%fa:angle-right%</router-link></li>
<li v-if="$store.getters.isSignedIn && $store.state.i.isAdmin"><router-link to="/admin">%fa:terminal%<span>%i18n:@admin%</span>%fa:angle-right%</router-link></li> <li v-if="$store.getters.isSignedIn && $store.state.i.isAdmin"><a href="/admin">%fa:terminal%<span>%i18n:@admin%</span>%fa:angle-right%</a></li>
<li @click="dark"><p><template v-if="$store.state.device.darkmode">%fa:moon%</template><template v-else>%fa:R moon%</template><span>%i18n:@darkmode%</span></p></li> <li @click="dark"><p><template v-if="$store.state.device.darkmode">%fa:moon%</template><template v-else>%fa:R moon%</template><span>%i18n:@darkmode%</span></p></li>
</ul> </ul>
</div> </div>

View File

@@ -9,7 +9,7 @@ export type TextElementEmoji = {
}; };
export default function(text: string) { export default function(text: string) {
const match = text.match(/^:([a-zA-Z0-9+-_]+?):/); const match = text.match(/^:([a-zA-Z0-9+_-]+):/);
if (!match) return null; if (!match) return null;
const emoji = match[0]; const emoji = match[0];
return { return {

View File

@@ -27,7 +27,7 @@ export const meta = {
}; };
export default define(meta, (ps) => new Promise(async (res, rej) => { export default define(meta, (ps) => new Promise(async (res, rej) => {
await Emoji.insert({ const emoji = await Emoji.insert({
updatedAt: new Date(), updatedAt: new Date(),
name: ps.name, name: ps.name,
host: null, host: null,
@@ -35,5 +35,7 @@ export default define(meta, (ps) => new Promise(async (res, rej) => {
url: ps.url url: ps.url
}); });
res(); res({
id: emoji._id
});
})); }));