Fix bug
This commit is contained in:
		| @@ -2,7 +2,7 @@ | ||||
| <div class="mk-calendar" :data-melt="design == 4 || design == 5"> | ||||
| 	<template v-if="design == 0 || design == 1"> | ||||
| 		<button @click="prev" title="%i18n:@prev%">%fa:chevron-circle-left%</button> | ||||
| 		<p class="title">{{ '%i18n:!@title%'.replace('{1}', year).replace('{2}', month) }}</p> | ||||
| 		<p class="title">{{ '%i18n:@title%'.replace('{1}', year).replace('{2}', month) }}</p> | ||||
| 		<button @click="next" title="%i18n:@next%">%fa:chevron-circle-right%</button> | ||||
| 	</template> | ||||
|  | ||||
| @@ -21,7 +21,7 @@ | ||||
| 			:data-is-out-of-range="isOutOfRange(i + 1)" | ||||
| 			:data-is-donichi="isDonichi(i + 1)" | ||||
| 			@click="go(i + 1)" | ||||
| 			:title="isOutOfRange(i + 1) ? null : '%i18n:!@go%'" | ||||
| 			:title="isOutOfRange(i + 1) ? null : '%i18n:@go%'" | ||||
| 		> | ||||
| 			<div>{{ i + 1 }}</div> | ||||
| 		</div> | ||||
| @@ -58,13 +58,13 @@ export default Vue.extend({ | ||||
| 			month: new Date().getMonth() + 1, | ||||
| 			selected: new Date(), | ||||
| 			weekdayText: [ | ||||
| 				'%i18n:!common.weekday-short.sunday%', | ||||
| 				'%i18n:!common.weekday-short.monday%', | ||||
| 				'%i18n:!common.weekday-short.tuesday%', | ||||
| 				'%i18n:!common.weekday-short.wednesday%', | ||||
| 				'%i18n:!common.weekday-short.thursday%', | ||||
| 				'%i18n:!common.weekday-short.friday%', | ||||
| 				'%i18n:!common.weekday-short.saturday%' | ||||
| 				'%i18n:common.weekday-short.sunday%', | ||||
| 				'%i18n:common.weekday-short.monday%', | ||||
| 				'%i18n:common.weekday-short.tuesday%', | ||||
| 				'%i18n:common.weekday-short.wednesday%', | ||||
| 				'%i18n:common.weekday-short.thursday%', | ||||
| 				'%i18n:common.weekday-short.friday%', | ||||
| 				'%i18n:common.weekday-short.saturday%' | ||||
| 			] | ||||
| 		}; | ||||
| 	}, | ||||
|   | ||||
| @@ -64,46 +64,46 @@ export default Vue.extend({ | ||||
| 			this.isContextmenuShowing = true; | ||||
| 			contextmenu(e, [{ | ||||
| 				type: 'item', | ||||
| 				text: '%i18n:!@contextmenu.rename%', | ||||
| 				text: '%i18n:@contextmenu.rename%', | ||||
| 				icon: '%fa:i-cursor%', | ||||
| 				onClick: this.rename | ||||
| 			}, { | ||||
| 				type: 'item', | ||||
| 				text: '%i18n:!@contextmenu.copy-url%', | ||||
| 				text: '%i18n:@contextmenu.copy-url%', | ||||
| 				icon: '%fa:link%', | ||||
| 				onClick: this.copyUrl | ||||
| 			}, { | ||||
| 				type: 'link', | ||||
| 				href: `${this.file.url}?download`, | ||||
| 				text: '%i18n:!@contextmenu.download%', | ||||
| 				text: '%i18n:@contextmenu.download%', | ||||
| 				icon: '%fa:download%', | ||||
| 			}, { | ||||
| 				type: 'divider', | ||||
| 			}, { | ||||
| 				type: 'item', | ||||
| 				text: '%i18n:!common.delete%', | ||||
| 				text: '%i18n:common.delete%', | ||||
| 				icon: '%fa:R trash-alt%', | ||||
| 				onClick: this.deleteFile | ||||
| 			}, { | ||||
| 				type: 'divider', | ||||
| 			}, { | ||||
| 				type: 'nest', | ||||
| 				text: '%i18n:!@contextmenu.else-files%', | ||||
| 				text: '%i18n:@contextmenu.else-files%', | ||||
| 				menu: [{ | ||||
| 					type: 'item', | ||||
| 					text: '%i18n:!@contextmenu.set-as-avatar%', | ||||
| 					text: '%i18n:@contextmenu.set-as-avatar%', | ||||
| 					onClick: this.setAsAvatar | ||||
| 				}, { | ||||
| 					type: 'item', | ||||
| 					text: '%i18n:!@contextmenu.set-as-banner%', | ||||
| 					text: '%i18n:@contextmenu.set-as-banner%', | ||||
| 					onClick: this.setAsBanner | ||||
| 				}] | ||||
| 			}, { | ||||
| 				type: 'nest', | ||||
| 				text: '%i18n:!@contextmenu.open-in-app%', | ||||
| 				text: '%i18n:@contextmenu.open-in-app%', | ||||
| 				menu: [{ | ||||
| 					type: 'item', | ||||
| 					text: '%i18n:!@contextmenu.add-app%...', | ||||
| 					text: '%i18n:@contextmenu.add-app%...', | ||||
| 					onClick: this.addApp | ||||
| 				}] | ||||
| 			}], { | ||||
| @@ -141,8 +141,8 @@ export default Vue.extend({ | ||||
|  | ||||
| 		rename() { | ||||
| 			(this as any).apis.input({ | ||||
| 				title: '%i18n:!@contextmenu.rename-file%', | ||||
| 				placeholder: '%i18n:!@contextmenu.input-new-file-name%', | ||||
| 				title: '%i18n:@contextmenu.rename-file%', | ||||
| 				placeholder: '%i18n:@contextmenu.input-new-file-name%', | ||||
| 				default: this.file.name, | ||||
| 				allowEmpty: false | ||||
| 			}).then(name => { | ||||
| @@ -157,9 +157,9 @@ export default Vue.extend({ | ||||
| 			copyToClipboard(this.file.url); | ||||
| 			(this as any).apis.dialog({ | ||||
| 				title: '%fa:check%%i18n:@contextmenu.copied%', | ||||
| 				text: '%i18n:!@contextmenu.copied-url-to-clipboard%', | ||||
| 				text: '%i18n:@contextmenu.copied-url-to-clipboard%', | ||||
| 				actions: [{ | ||||
| 					text: '%i18n:!common.ok%' | ||||
| 					text: '%i18n:common.ok%' | ||||
| 				}] | ||||
| 			}); | ||||
| 		}, | ||||
|   | ||||
| @@ -54,26 +54,26 @@ export default Vue.extend({ | ||||
| 			this.isContextmenuShowing = true; | ||||
| 			contextmenu(e, [{ | ||||
| 				type: 'item', | ||||
| 				text: '%i18n:!@contextmenu.move-to-this-folder%', | ||||
| 				text: '%i18n:@contextmenu.move-to-this-folder%', | ||||
| 				icon: '%fa:arrow-right%', | ||||
| 				onClick: this.go | ||||
| 			}, { | ||||
| 				type: 'item', | ||||
| 				text: '%i18n:!@contextmenu.show-in-new-window%', | ||||
| 				text: '%i18n:@contextmenu.show-in-new-window%', | ||||
| 				icon: '%fa:R window-restore%', | ||||
| 				onClick: this.newWindow | ||||
| 			}, { | ||||
| 				type: 'divider', | ||||
| 			}, { | ||||
| 				type: 'item', | ||||
| 				text: '%i18n:!@contextmenu.rename%', | ||||
| 				text: '%i18n:@contextmenu.rename%', | ||||
| 				icon: '%fa:i-cursor%', | ||||
| 				onClick: this.rename | ||||
| 			}, { | ||||
| 				type: 'divider', | ||||
| 			}, { | ||||
| 				type: 'item', | ||||
| 				text: '%i18n:!common.delete%', | ||||
| 				text: '%i18n:common.delete%', | ||||
| 				icon: '%fa:R trash-alt%', | ||||
| 				onClick: this.deleteFolder | ||||
| 			}], { | ||||
| @@ -159,15 +159,15 @@ export default Vue.extend({ | ||||
| 					switch (err) { | ||||
| 						case 'detected-circular-definition': | ||||
| 							(this as any).apis.dialog({ | ||||
| 								title: '%fa:exclamation-triangle%%i18n:!@unable-to-process%', | ||||
| 								text: '%i18n:!@circular-reference-detected%', | ||||
| 								title: '%fa:exclamation-triangle%%i18n:@unable-to-process%', | ||||
| 								text: '%i18n:@circular-reference-detected%', | ||||
| 								actions: [{ | ||||
| 									text: '%i18n:!common.ok%' | ||||
| 									text: '%i18n:common.ok%' | ||||
| 								}] | ||||
| 							}); | ||||
| 							break; | ||||
| 						default: | ||||
| 							alert('%i18n:!@unhandled-error% ' + err); | ||||
| 							alert('%i18n:@unhandled-error% ' + err); | ||||
| 					} | ||||
| 				}); | ||||
| 			} | ||||
| @@ -199,8 +199,8 @@ export default Vue.extend({ | ||||
|  | ||||
| 		rename() { | ||||
| 			(this as any).apis.input({ | ||||
| 				title: '%i18n:!@contextmenu.rename-folder%', | ||||
| 				placeholder: '%i18n:!@contextmenu.input-new-folder-name%', | ||||
| 				title: '%i18n:@contextmenu.rename-folder%', | ||||
| 				placeholder: '%i18n:@contextmenu.input-new-folder-name%', | ||||
| 				default: this.folder.name | ||||
| 			}).then(name => { | ||||
| 				(this as any).api('drive/folders/update', { | ||||
|   | ||||
| @@ -8,7 +8,7 @@ | ||||
| 	@drop.stop="onDrop" | ||||
| > | ||||
| 	<template v-if="folder == null">%fa:cloud%</template> | ||||
| 	<span>{{ folder == null ? '%i18n:!@drive%' : folder.name }}</span> | ||||
| 	<span>{{ folder == null ? '%i18n:@drive%' : folder.name }}</span> | ||||
| </div> | ||||
| </template> | ||||
|  | ||||
|   | ||||
| @@ -138,17 +138,17 @@ export default Vue.extend({ | ||||
| 		onContextmenu(e) { | ||||
| 			contextmenu(e, [{ | ||||
| 				type: 'item', | ||||
| 				text: '%i18n:!@contextmenu.create-folder%', | ||||
| 				text: '%i18n:@contextmenu.create-folder%', | ||||
| 				icon: '%fa:R folder%', | ||||
| 				onClick: this.createFolder | ||||
| 			}, { | ||||
| 				type: 'item', | ||||
| 				text: '%i18n:!@contextmenu.upload%', | ||||
| 				text: '%i18n:@contextmenu.upload%', | ||||
| 				icon: '%fa:upload%', | ||||
| 				onClick: this.selectLocalFile | ||||
| 			}, { | ||||
| 				type: 'item', | ||||
| 				text: '%i18n:!@contextmenu.url-upload%', | ||||
| 				text: '%i18n:@contextmenu.url-upload%', | ||||
| 				icon: '%fa:cloud-upload-alt%', | ||||
| 				onClick: this.urlUpload | ||||
| 			}]); | ||||
| @@ -306,15 +306,15 @@ export default Vue.extend({ | ||||
| 					switch (err) { | ||||
| 						case 'detected-circular-definition': | ||||
| 							(this as any).apis.dialog({ | ||||
| 								title: '%fa:exclamation-triangle%%i18n:!@unable-to-process%', | ||||
| 								text: '%i18n:!@circular-reference-detected%', | ||||
| 								title: '%fa:exclamation-triangle%%i18n:@unable-to-process%', | ||||
| 								text: '%i18n:@circular-reference-detected%', | ||||
| 								actions: [{ | ||||
| 									text: '%i18n:!common.ok%' | ||||
| 									text: '%i18n:common.ok%' | ||||
| 								}] | ||||
| 							}); | ||||
| 							break; | ||||
| 						default: | ||||
| 							alert('%i18n:!@unhandled-error% ' + err); | ||||
| 							alert('%i18n:@unhandled-error% ' + err); | ||||
| 					} | ||||
| 				}); | ||||
| 			} | ||||
| @@ -327,8 +327,8 @@ export default Vue.extend({ | ||||
|  | ||||
| 		urlUpload() { | ||||
| 			(this as any).apis.input({ | ||||
| 				title: '%i18n:!@url-upload%', | ||||
| 				placeholder: '%i18n:!@url-of-file%' | ||||
| 				title: '%i18n:@url-upload%', | ||||
| 				placeholder: '%i18n:@url-of-file%' | ||||
| 			}).then(url => { | ||||
| 				(this as any).api('drive/files/upload_from_url', { | ||||
| 					url: url, | ||||
| @@ -337,9 +337,9 @@ export default Vue.extend({ | ||||
|  | ||||
| 				(this as any).apis.dialog({ | ||||
| 					title: '%fa:check%%i18n:@url-upload-requested%', | ||||
| 					text: '%i18n:!@may-take-time%', | ||||
| 					text: '%i18n:@may-take-time%', | ||||
| 					actions: [{ | ||||
| 						text: '%i18n:!common.ok%' | ||||
| 						text: '%i18n:common.ok%' | ||||
| 					}] | ||||
| 				}); | ||||
| 			}); | ||||
| @@ -347,8 +347,8 @@ export default Vue.extend({ | ||||
|  | ||||
| 		createFolder() { | ||||
| 			(this as any).apis.input({ | ||||
| 				title: '%i18n:!@create-folder%', | ||||
| 				placeholder: '%i18n:!@folder-name%' | ||||
| 				title: '%i18n:@create-folder%', | ||||
| 				placeholder: '%i18n:@folder-name%' | ||||
| 			}).then(name => { | ||||
| 				(this as any).api('drive/folders/create', { | ||||
| 					name: name, | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| <template> | ||||
| <mk-window width="400px" height="550px" @closed="$destroy"> | ||||
| 	<span slot="header" :class="$style.header"> | ||||
| 		<img :src="`${user.avatarUrl}?thumbnail&size=64`" alt=""/>%i18n:!@followers%.replace('{}', {{ user | userName }}) | ||||
| 		<img :src="`${user.avatarUrl}?thumbnail&size=64`" alt=""/>%i18n:@followers%.replace('{}', {{ user | userName }}) | ||||
| 	</span> | ||||
| 	<mk-followers :user="user"/> | ||||
| </mk-window> | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| <template> | ||||
| <mk-window width="400px" height="550px" @closed="$destroy"> | ||||
| 	<span slot="header" :class="$style.header"> | ||||
| 		<img :src="`${user.avatarUrl}?thumbnail&size=64`" alt=""/>%i18n:!@following%.replace('{}', {{ user | userName }}) | ||||
| 		<img :src="`${user.avatarUrl}?thumbnail&size=64`" alt=""/>%i18n:@following%.replace('{}', {{ user | userName }}) | ||||
| 	</span> | ||||
| 	<mk-following :user="user"/> | ||||
| </mk-window> | ||||
|   | ||||
| @@ -6,9 +6,9 @@ | ||||
| 	<div class="renote" v-if="isRenote"> | ||||
| 		<mk-avatar class="avatar" :user="note.user"/> | ||||
| 		%fa:retweet% | ||||
| 		<span>{{ '%i18n:!@reposted-by%'.substr(0, '%i18n:!@reposted-by%'.indexOf('{')) }}</span> | ||||
| 		<span>{{ '%i18n:@reposted-by%'.substr(0, '%i18n:@reposted-by%'.indexOf('{')) }}</span> | ||||
| 		<a class="name" :href="note.user | userPage" v-user-preview="note.userId">{{ note.user | userName }}</a> | ||||
| 		<span>{{ '%i18n:!@reposted-by%'.substr('%i18n:!@reposted-by%'.indexOf('}') + 1) }}</span> | ||||
| 		<span>{{ '%i18n:@reposted-by%'.substr('%i18n:@reposted-by%'.indexOf('}') + 1) }}</span> | ||||
| 		<mk-time :time="note.createdAt"/> | ||||
| 	</div> | ||||
| 	<article> | ||||
|   | ||||
| @@ -81,7 +81,7 @@ | ||||
| 		</transition-group> | ||||
| 	</div> | ||||
| 	<button class="more" :class="{ fetching: fetchingMoreNotifications }" v-if="moreNotifications" @click="fetchMoreNotifications" :disabled="fetchingMoreNotifications"> | ||||
| 		<template v-if="fetchingMoreNotifications">%fa:spinner .pulse .fw%</template>{{ fetchingMoreNotifications ? '%i18n:!common.loading%' : '%i18n:!@more%' }} | ||||
| 		<template v-if="fetchingMoreNotifications">%fa:spinner .pulse .fw%</template>{{ fetchingMoreNotifications ? '%i18n:common.loading%' : '%i18n:@more%' }} | ||||
| 	</button> | ||||
| 	<p class="empty" v-if="notifications.length == 0 && !fetching">%i18n:@empty%</p> | ||||
| 	<p class="loading" v-if="fetching">%fa:spinner .pulse .fw%%i18n:common.loading%<mk-ellipsis/></p> | ||||
|   | ||||
| @@ -4,8 +4,8 @@ | ||||
| 		<span :class="$style.icon" v-if="geo">%fa:map-marker-alt%</span> | ||||
| 		<span v-if="!reply">%i18n:@note%</span> | ||||
| 		<span v-if="reply">%i18n:@reply%</span> | ||||
| 		<span :class="$style.count" v-if="media.length != 0">{{ '%i18n:!@attaches%'.replace('{}', media.length) }}</span> | ||||
| 		<span :class="$style.count" v-if="uploadings.length != 0">{{ '%i18n:!@uploading-media%'.replace('{}', uploadings.length) }}<mk-ellipsis/></span> | ||||
| 		<span :class="$style.count" v-if="media.length != 0">{{ '%i18n:@attaches%'.replace('{}', media.length) }}</span> | ||||
| 		<span :class="$style.count" v-if="uploadings.length != 0">{{ '%i18n:@uploading-media%'.replace('{}', uploadings.length) }}<mk-ellipsis/></span> | ||||
| 	</span> | ||||
|  | ||||
| 	<mk-note-preview v-if="reply" :class="$style.notePreview" :note="reply"/> | ||||
|   | ||||
| @@ -37,7 +37,7 @@ | ||||
| 	<button class="visibility" title="公開範囲" @click="setVisibility" ref="visibilityButton">%fa:lock%</button> | ||||
| 	<p class="text-count" :class="{ over: text.length > 1000 }">{{ 1000 - text.length }}</p> | ||||
| 	<button :class="{ posting }" class="submit" :disabled="!canPost" @click="post"> | ||||
| 		{{ posting ? '%i18n:!@posting%' : submitText }}<mk-ellipsis v-if="posting"/> | ||||
| 		{{ posting ? '%i18n:@posting%' : submitText }}<mk-ellipsis v-if="posting"/> | ||||
| 	</button> | ||||
| 	<input ref="file" type="file" accept="image/*" multiple="multiple" tabindex="-1" @change="onChangeFile"/> | ||||
| 	<div class="dropzone" v-if="draghover"></div> | ||||
| @@ -86,18 +86,18 @@ export default Vue.extend({ | ||||
|  | ||||
| 		placeholder(): string { | ||||
| 			return this.renote | ||||
| 				? '%i18n:!@quote-placeholder%' | ||||
| 				? '%i18n:@quote-placeholder%' | ||||
| 				: this.reply | ||||
| 					? '%i18n:!@reply-placeholder%' | ||||
| 					: '%i18n:!@note-placeholder%'; | ||||
| 					? '%i18n:@reply-placeholder%' | ||||
| 					: '%i18n:@note-placeholder%'; | ||||
| 		}, | ||||
|  | ||||
| 		submitText(): string { | ||||
| 			return this.renote | ||||
| 				? '%i18n:!@renote%' | ||||
| 				? '%i18n:@renote%' | ||||
| 				: this.reply | ||||
| 					? '%i18n:!@reply%' | ||||
| 					: '%i18n:!@note%'; | ||||
| 					? '%i18n:@reply%' | ||||
| 					: '%i18n:@note%'; | ||||
| 		}, | ||||
|  | ||||
| 		canPost(): boolean { | ||||
| @@ -304,16 +304,16 @@ export default Vue.extend({ | ||||
| 				this.deleteDraft(); | ||||
| 				this.$emit('posted'); | ||||
| 				(this as any).apis.notify(this.renote | ||||
| 					? '%i18n:!@reposted%' | ||||
| 					? '%i18n:@reposted%' | ||||
| 					: this.reply | ||||
| 						? '%i18n:!@replied%' | ||||
| 						: '%i18n:!@posted%'); | ||||
| 						? '%i18n:@replied%' | ||||
| 						: '%i18n:@posted%'); | ||||
| 			}).catch(err => { | ||||
| 				(this as any).apis.notify(this.renote | ||||
| 					? '%i18n:!@renote-failed%' | ||||
| 					? '%i18n:@renote-failed%' | ||||
| 					: this.reply | ||||
| 						? '%i18n:!@reply-failed%' | ||||
| 						: '%i18n:!@note-failed%'); | ||||
| 						? '%i18n:@reply-failed%' | ||||
| 						: '%i18n:@note-failed%'); | ||||
| 			}).then(() => { | ||||
| 				this.posting = false; | ||||
| 			}); | ||||
|   | ||||
| @@ -5,7 +5,7 @@ | ||||
| 		<footer> | ||||
| 			<a class="quote" v-if="!quote" @click="onQuote">%i18n:@quote%</a> | ||||
| 			<button class="ui cancel" @click="cancel">%i18n:@cancel%</button> | ||||
| 			<button class="ui primary ok" @click="ok" :disabled="wait">{{ wait ? '%i18n:!@reposting%' : '%i18n:!@renote%' }}</button> | ||||
| 			<button class="ui primary ok" @click="ok" :disabled="wait">{{ wait ? '%i18n:@reposting%' : '%i18n:@renote%' }}</button> | ||||
| 		</footer> | ||||
| 	</template> | ||||
| 	<template v-if="quote"> | ||||
| @@ -32,9 +32,9 @@ export default Vue.extend({ | ||||
| 				renoteId: this.note.id | ||||
| 			}).then(data => { | ||||
| 				this.$emit('posted'); | ||||
| 				(this as any).apis.notify('%i18n:!@success%'); | ||||
| 				(this as any).apis.notify('%i18n:@success%'); | ||||
| 			}).catch(err => { | ||||
| 				(this as any).apis.notify('%i18n:!@failure%'); | ||||
| 				(this as any).apis.notify('%i18n:@failure%'); | ||||
| 			}).then(() => { | ||||
| 				this.wait = false; | ||||
| 			}); | ||||
|   | ||||
| @@ -34,7 +34,7 @@ export default Vue.extend({ | ||||
| 	methods: { | ||||
| 		register() { | ||||
| 			(this as any).apis.input({ | ||||
| 				title: '%i18n:!@enter-password%', | ||||
| 				title: '%i18n:@enter-password%', | ||||
| 				type: 'password' | ||||
| 			}).then(password => { | ||||
| 				(this as any).api('i/2fa/register', { | ||||
| @@ -47,13 +47,13 @@ export default Vue.extend({ | ||||
|  | ||||
| 		unregister() { | ||||
| 			(this as any).apis.input({ | ||||
| 				title: '%i18n:!@enter-password%', | ||||
| 				title: '%i18n:@enter-password%', | ||||
| 				type: 'password' | ||||
| 			}).then(password => { | ||||
| 				(this as any).api('i/2fa/unregister', { | ||||
| 					password: password | ||||
| 				}).then(() => { | ||||
| 					(this as any).apis.notify('%i18n:!@unregistered%'); | ||||
| 					(this as any).apis.notify('%i18n:@unregistered%'); | ||||
| 					(this as any).os.i.twoFactorEnabled = false; | ||||
| 				}); | ||||
| 			}); | ||||
| @@ -63,10 +63,10 @@ export default Vue.extend({ | ||||
| 			(this as any).api('i/2fa/done', { | ||||
| 				token: this.token | ||||
| 			}).then(() => { | ||||
| 				(this as any).apis.notify('%i18n:!@success%'); | ||||
| 				(this as any).apis.notify('%i18n:@success%'); | ||||
| 				(this as any).os.i.twoFactorEnabled = true; | ||||
| 			}).catch(() => { | ||||
| 				(this as any).apis.notify('%i18n:!@failed%'); | ||||
| 				(this as any).apis.notify('%i18n:@failed%'); | ||||
| 			}); | ||||
| 		} | ||||
| 	} | ||||
|   | ||||
| @@ -15,7 +15,7 @@ export default Vue.extend({ | ||||
| 	methods: { | ||||
| 		regenerateToken() { | ||||
| 			(this as any).apis.input({ | ||||
| 				title: '%i18n:!@enter-password%', | ||||
| 				title: '%i18n:@enter-password%', | ||||
| 				type: 'password' | ||||
| 			}).then(password => { | ||||
| 				(this as any).api('i/regenerate_token', { | ||||
|   | ||||
| @@ -11,21 +11,21 @@ export default Vue.extend({ | ||||
| 	methods: { | ||||
| 		reset() { | ||||
| 			(this as any).apis.input({ | ||||
| 				title: '%i18n:!@enter-current-password%', | ||||
| 				title: '%i18n:@enter-current-password%', | ||||
| 				type: 'password' | ||||
| 			}).then(currentPassword => { | ||||
| 				(this as any).apis.input({ | ||||
| 					title: '%i18n:!@enter-new-password%', | ||||
| 					title: '%i18n:@enter-new-password%', | ||||
| 					type: 'password' | ||||
| 				}).then(newPassword => { | ||||
| 					(this as any).apis.input({ | ||||
| 						title: '%i18n:!@enter-new-password-again%', | ||||
| 						title: '%i18n:@enter-new-password-again%', | ||||
| 						type: 'password' | ||||
| 					}).then(newPassword2 => { | ||||
| 						if (newPassword !== newPassword2) { | ||||
| 							(this as any).apis.dialog({ | ||||
| 								title: null, | ||||
| 								text: '%i18n:!@not-match%', | ||||
| 								text: '%i18n:@not-match%', | ||||
| 								actions: [{ | ||||
| 									text: 'OK' | ||||
| 								}] | ||||
| @@ -36,7 +36,7 @@ export default Vue.extend({ | ||||
| 							currentPasword: currentPassword, | ||||
| 							newPassword: newPassword | ||||
| 						}).then(() => { | ||||
| 							(this as any).apis.notify('%i18n:!@changed%'); | ||||
| 							(this as any).apis.notify('%i18n:@changed%'); | ||||
| 						}); | ||||
| 					}); | ||||
| 				}); | ||||
|   | ||||
| @@ -371,13 +371,13 @@ export default Vue.extend({ | ||||
| 				this.latestVersion = newer; | ||||
| 				if (newer == null) { | ||||
| 					(this as any).apis.dialog({ | ||||
| 						title: '%i18n:!@no-updates%', | ||||
| 						text: '%i18n:!@no-updates-desc%' | ||||
| 						title: '%i18n:@no-updates%', | ||||
| 						text: '%i18n:@no-updates-desc%' | ||||
| 					}); | ||||
| 				} else { | ||||
| 					(this as any).apis.dialog({ | ||||
| 						title: '%i18n:!@update-available%', | ||||
| 						text: '%i18n:!@update-available-desc%' | ||||
| 						title: '%i18n:@update-available%', | ||||
| 						text: '%i18n:@update-available-desc%' | ||||
| 					}); | ||||
| 				} | ||||
| 			}); | ||||
| @@ -385,8 +385,8 @@ export default Vue.extend({ | ||||
| 		clean() { | ||||
| 			localStorage.clear(); | ||||
| 			(this as any).apis.dialog({ | ||||
| 				title: '%i18n:!@cache-cleared%', | ||||
| 				text: '%i18n:!@caache-cleared-desc%' | ||||
| 				title: '%i18n:@cache-cleared%', | ||||
| 				text: '%i18n:@caache-cleared-desc%' | ||||
| 			}); | ||||
| 		}, | ||||
| 		soundTest() { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 syuilo
					syuilo