Improve admin panel usability
This commit is contained in:
		
							parent
							
								
									c1bbf5dab6
								
							
						
					
					
						commit
						42ac7b954d
					
				
					 4 changed files with 65 additions and 16 deletions
				
			
		| 
						 | 
					@ -1081,6 +1081,7 @@ admin/views/instance.vue:
 | 
				
			||||||
  disableLocalTimeline: "ローカルタイムラインを無効にする"
 | 
					  disableLocalTimeline: "ローカルタイムラインを無効にする"
 | 
				
			||||||
  invite: "招待"
 | 
					  invite: "招待"
 | 
				
			||||||
  save: "保存"
 | 
					  save: "保存"
 | 
				
			||||||
 | 
					  saved: "保存しました"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
admin/views/charts.vue:
 | 
					admin/views/charts.vue:
 | 
				
			||||||
  title: "チャート"
 | 
					  title: "チャート"
 | 
				
			||||||
| 
						 | 
					@ -1132,10 +1133,15 @@ admin/views/emoji.vue:
 | 
				
			||||||
    url: "絵文字画像URL"
 | 
					    url: "絵文字画像URL"
 | 
				
			||||||
    add: "追加"
 | 
					    add: "追加"
 | 
				
			||||||
    info: "50KB以下のPNG画像をおすすめします。"
 | 
					    info: "50KB以下のPNG画像をおすすめします。"
 | 
				
			||||||
 | 
					    added: "絵文字を登録しました"
 | 
				
			||||||
  emojis:
 | 
					  emojis:
 | 
				
			||||||
    title: "絵文字一覧"
 | 
					    title: "絵文字一覧"
 | 
				
			||||||
    update: "更新"
 | 
					    update: "更新"
 | 
				
			||||||
    remove: "削除"
 | 
					    remove: "削除"
 | 
				
			||||||
 | 
					  updated: "更新しました"
 | 
				
			||||||
 | 
					  remove-emoji:
 | 
				
			||||||
 | 
					    are-you-sure: "「$1」を削除しますか?"
 | 
				
			||||||
 | 
					    removed: "削除しました"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
admin/views/announcements.vue:
 | 
					admin/views/announcements.vue:
 | 
				
			||||||
  announcements: "お知らせ"
 | 
					  announcements: "お知らせ"
 | 
				
			||||||
| 
						 | 
					@ -1144,6 +1150,7 @@ admin/views/announcements.vue:
 | 
				
			||||||
  add: "追加"
 | 
					  add: "追加"
 | 
				
			||||||
  title: "タイトル"
 | 
					  title: "タイトル"
 | 
				
			||||||
  text: "内容"
 | 
					  text: "内容"
 | 
				
			||||||
 | 
					  saved: "保存しました"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
admin/views/hashtags.vue:
 | 
					admin/views/hashtags.vue:
 | 
				
			||||||
  hided-tags: "Hidden Tags"
 | 
					  hided-tags: "Hidden Tags"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -54,9 +54,15 @@ 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.$swal({
 | 
				
			||||||
 | 
										type: 'success',
 | 
				
			||||||
 | 
										text: '%i18n:@saved%'
 | 
				
			||||||
 | 
									});
 | 
				
			||||||
			}).catch(e => {
 | 
								}).catch(e => {
 | 
				
			||||||
				//(this as any).os.apis.dialog({ text: `Failed ${e}` });
 | 
									this.$swal({
 | 
				
			||||||
 | 
										type: 'error',
 | 
				
			||||||
 | 
										text: e
 | 
				
			||||||
 | 
									});
 | 
				
			||||||
			});
 | 
								});
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -69,15 +69,22 @@ 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.$swal({
 | 
				
			||||||
 | 
										type: 'success',
 | 
				
			||||||
 | 
										text: '%i18n:@add-emoji.added%'
 | 
				
			||||||
 | 
									});
 | 
				
			||||||
				this.fetchEmojis();
 | 
									this.fetchEmojis();
 | 
				
			||||||
			}).catch(e => {
 | 
								}).catch(e => {
 | 
				
			||||||
				//(this as any).os.apis.dialog({ text: `Failed ${e}` });
 | 
									this.$swal({
 | 
				
			||||||
 | 
										type: 'error',
 | 
				
			||||||
 | 
										text: e
 | 
				
			||||||
 | 
									});
 | 
				
			||||||
			});
 | 
								});
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		fetchEmojis() {
 | 
							fetchEmojis() {
 | 
				
			||||||
			(this as any).api('admin/emoji/list').then(emojis => {
 | 
								(this as any).api('admin/emoji/list').then(emojis => {
 | 
				
			||||||
 | 
									emojis.reverse();
 | 
				
			||||||
				emojis.forEach(e => e.aliases = (e.aliases || []).join(' '));
 | 
									emojis.forEach(e => e.aliases = (e.aliases || []).join(' '));
 | 
				
			||||||
				this.emojis = emojis;
 | 
									this.emojis = emojis;
 | 
				
			||||||
			});
 | 
								});
 | 
				
			||||||
| 
						 | 
					@ -90,20 +97,40 @@ 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.$swal({
 | 
				
			||||||
 | 
										type: 'success',
 | 
				
			||||||
 | 
										text: '%i18n:@updated%'
 | 
				
			||||||
 | 
									});
 | 
				
			||||||
			}).catch(e => {
 | 
								}).catch(e => {
 | 
				
			||||||
				//(this as any).os.apis.dialog({ text: `Failed ${e}` });
 | 
									this.$swal({
 | 
				
			||||||
 | 
										type: 'error',
 | 
				
			||||||
 | 
										text: e
 | 
				
			||||||
 | 
									});
 | 
				
			||||||
			});
 | 
								});
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		removeEmoji(emoji) {
 | 
							removeEmoji(emoji) {
 | 
				
			||||||
			(this as any).api('admin/emoji/remove', {
 | 
								this.$swal({
 | 
				
			||||||
				id: emoji.id
 | 
									type: 'warning',
 | 
				
			||||||
			}).then(() => {
 | 
									text: '%i18n:@remove-emoji.are-you-sure%'.replace('$1', emoji.name),
 | 
				
			||||||
				//(this as any).os.apis.dialog({ text: `Removed` });
 | 
									showCancelButton: true
 | 
				
			||||||
				this.fetchEmojis();
 | 
								}).then(res => {
 | 
				
			||||||
			}).catch(e => {
 | 
									if (!res.value) return;
 | 
				
			||||||
				//(this as any).os.apis.dialog({ text: `Failed ${e}` });
 | 
					
 | 
				
			||||||
 | 
									(this as any).api('admin/emoji/remove', {
 | 
				
			||||||
 | 
										id: emoji.id
 | 
				
			||||||
 | 
									}).then(() => {
 | 
				
			||||||
 | 
										this.$swal({
 | 
				
			||||||
 | 
											type: 'success',
 | 
				
			||||||
 | 
											text: '%i18n:@remove-emoji.removed%'
 | 
				
			||||||
 | 
										});
 | 
				
			||||||
 | 
										this.fetchEmojis();
 | 
				
			||||||
 | 
									}).catch(e => {
 | 
				
			||||||
 | 
										this.$swal({
 | 
				
			||||||
 | 
											type: 'error',
 | 
				
			||||||
 | 
											text: e
 | 
				
			||||||
 | 
										});
 | 
				
			||||||
 | 
									});
 | 
				
			||||||
			});
 | 
								});
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -56,7 +56,10 @@ 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.$swal({
 | 
				
			||||||
 | 
										type: 'error',
 | 
				
			||||||
 | 
										text: e
 | 
				
			||||||
 | 
									});
 | 
				
			||||||
			});
 | 
								});
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -68,9 +71,15 @@ export default Vue.extend({
 | 
				
			||||||
				name: this.name,
 | 
									name: this.name,
 | 
				
			||||||
				description: this.description
 | 
									description: this.description
 | 
				
			||||||
			}).then(() => {
 | 
								}).then(() => {
 | 
				
			||||||
				//(this as any).os.apis.dialog({ text: `Saved` });
 | 
									this.$swal({
 | 
				
			||||||
 | 
										type: 'success',
 | 
				
			||||||
 | 
										text: '%i18n:@saved%'
 | 
				
			||||||
 | 
									});
 | 
				
			||||||
			}).catch(e => {
 | 
								}).catch(e => {
 | 
				
			||||||
				//(this as any).os.apis.dialog({ text: `Failed ${e}` });
 | 
									this.$swal({
 | 
				
			||||||
 | 
										type: 'error',
 | 
				
			||||||
 | 
										text: e
 | 
				
			||||||
 | 
									});
 | 
				
			||||||
			});
 | 
								});
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue