mirror of
				https://codeberg.org/yeentown/barkey.git
				synced 2025-10-31 05:24:13 +00:00 
			
		
		
		
	* Update ja-JP.yml * Create 404.vue * Update script.ts * Update script.ts * Update script.ts * Update script.ts * Update script.ts * Update script.ts * Update 404.vue * Update meta.ts * Update instance.vue * Update update-meta.ts
This commit is contained in:
		
							parent
							
								
									638d81b66e
								
							
						
					
					
						commit
						08142ead67
					
				
					 11 changed files with 91 additions and 2 deletions
				
			
		|  | @ -580,6 +580,9 @@ common/views/widgets/tips.vue: | ||||||
|   tips-line24: "Misskeyは2014年にサービスを開始しました" |   tips-line24: "Misskeyは2014年にサービスを開始しました" | ||||||
|   tips-line25: "対応ブラウザではMisskeyを開いていなくても通知を受け取れます" |   tips-line25: "対応ブラウザではMisskeyを開いていなくても通知を受け取れます" | ||||||
| 
 | 
 | ||||||
|  | common/views/pages/404.vue: | ||||||
|  |   page-not-found: "ページが見つかりませんでした" | ||||||
|  | 
 | ||||||
| common/views/pages/follow.vue: | common/views/pages/follow.vue: | ||||||
|   signed-in-as: "{}としてサインイン中" |   signed-in-as: "{}としてサインイン中" | ||||||
|   following: "フォロー中" |   following: "フォロー中" | ||||||
|  |  | ||||||
|  | @ -9,6 +9,7 @@ import './style.styl'; | ||||||
| 
 | 
 | ||||||
| import init from '../init'; | import init from '../init'; | ||||||
| import Index from './views/index.vue'; | import Index from './views/index.vue'; | ||||||
|  | import NotFound from '../common/views/pages/404.vue'; | ||||||
| 
 | 
 | ||||||
| init(launch => { | init(launch => { | ||||||
| 	document.title = 'Admin'; | 	document.title = 'Admin'; | ||||||
|  | @ -19,6 +20,7 @@ init(launch => { | ||||||
| 		base: '/admin/', | 		base: '/admin/', | ||||||
| 		routes: [ | 		routes: [ | ||||||
| 			{ path: '/', component: Index }, | 			{ path: '/', component: Index }, | ||||||
|  | 			{ path: '*', component: NotFound } | ||||||
| 		] | 		] | ||||||
| 	}); | 	}); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -7,6 +7,7 @@ | ||||||
| 			<ui-input v-model="name">{{ $t('instance-name') }}</ui-input> | 			<ui-input v-model="name">{{ $t('instance-name') }}</ui-input> | ||||||
| 			<ui-textarea v-model="description">{{ $t('instance-description') }}</ui-textarea> | 			<ui-textarea v-model="description">{{ $t('instance-description') }}</ui-textarea> | ||||||
| 			<ui-input v-model="bannerUrl"><i slot="icon"><fa icon="link"/></i>{{ $t('banner-url') }}</ui-input> | 			<ui-input v-model="bannerUrl"><i slot="icon"><fa icon="link"/></i>{{ $t('banner-url') }}</ui-input> | ||||||
|  | 			<ui-input v-model="errorImageUrl"><i slot="icon"><fa icon="link"/></i>{{ $t('error-image-url') }}</ui-input> | ||||||
| 			<ui-input v-model="languages"><i slot="icon"><fa icon="language"/></i>{{ $t('languages') }}<span slot="desc">{{ $t('languages-desc') }}</span></ui-input> | 			<ui-input v-model="languages"><i slot="icon"><fa icon="language"/></i>{{ $t('languages') }}<span slot="desc">{{ $t('languages-desc') }}</span></ui-input> | ||||||
| 		</section> | 		</section> | ||||||
| 		<section class="fit-bottom"> | 		<section class="fit-bottom"> | ||||||
|  | @ -132,6 +133,7 @@ export default Vue.extend({ | ||||||
| 			disableRegistration: false, | 			disableRegistration: false, | ||||||
| 			disableLocalTimeline: false, | 			disableLocalTimeline: false, | ||||||
| 			bannerUrl: null, | 			bannerUrl: null, | ||||||
|  | 			errorImageUrl: null, | ||||||
| 			name: null, | 			name: null, | ||||||
| 			description: null, | 			description: null, | ||||||
| 			languages: null, | 			languages: null, | ||||||
|  | @ -175,6 +177,7 @@ export default Vue.extend({ | ||||||
| 			this.disableRegistration = meta.disableRegistration; | 			this.disableRegistration = meta.disableRegistration; | ||||||
| 			this.disableLocalTimeline = meta.disableLocalTimeline; | 			this.disableLocalTimeline = meta.disableLocalTimeline; | ||||||
| 			this.bannerUrl = meta.bannerUrl; | 			this.bannerUrl = meta.bannerUrl; | ||||||
|  | 			this.errorImageUrl = meta.errorImageUrl; | ||||||
| 			this.name = meta.name; | 			this.name = meta.name; | ||||||
| 			this.description = meta.description; | 			this.description = meta.description; | ||||||
| 			this.languages = meta.langs.join(' '); | 			this.languages = meta.langs.join(' '); | ||||||
|  | @ -228,6 +231,7 @@ export default Vue.extend({ | ||||||
| 				disableRegistration: this.disableRegistration, | 				disableRegistration: this.disableRegistration, | ||||||
| 				disableLocalTimeline: this.disableLocalTimeline, | 				disableLocalTimeline: this.disableLocalTimeline, | ||||||
| 				bannerUrl: this.bannerUrl, | 				bannerUrl: this.bannerUrl, | ||||||
|  | 				errorImageUrl: this.errorImageUrl, | ||||||
| 				name: this.name, | 				name: this.name, | ||||||
| 				description: this.description, | 				description: this.description, | ||||||
| 				langs: this.languages.split(' '), | 				langs: this.languages.split(' '), | ||||||
|  |  | ||||||
|  | @ -9,6 +9,7 @@ import './style.styl'; | ||||||
| 
 | 
 | ||||||
| import init from '../init'; | import init from '../init'; | ||||||
| import Index from './views/index.vue'; | import Index from './views/index.vue'; | ||||||
|  | import NotFound from '../common/views/pages/404.vue'; | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * init |  * init | ||||||
|  | @ -20,6 +21,7 @@ init(launch => { | ||||||
| 		base: '/auth/', | 		base: '/auth/', | ||||||
| 		routes: [ | 		routes: [ | ||||||
| 			{ path: '/:token', component: Index }, | 			{ path: '/:token', component: Index }, | ||||||
|  | 			{ path: '*', component: NotFound } | ||||||
| 		] | 		] | ||||||
| 	}); | 	}); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
							
								
								
									
										62
									
								
								src/client/app/common/views/pages/404.vue
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								src/client/app/common/views/pages/404.vue
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,62 @@ | ||||||
|  | <template> | ||||||
|  | <figure> | ||||||
|  | <img :src="src" alt=""> | ||||||
|  | <figcaption> | ||||||
|  | <h1><span>404</span></h1> | ||||||
|  | <p><span>{{ $t('page-not-found') }}</span></p> | ||||||
|  | </figcaption> | ||||||
|  | </figure> | ||||||
|  | </template> | ||||||
|  | 
 | ||||||
|  | <script lang="ts"> | ||||||
|  | import Vue from 'vue' | ||||||
|  | import i18n from '../../../i18n'; | ||||||
|  | 
 | ||||||
|  | export default Vue.extend({ | ||||||
|  | 	i18n: i18n('common/views/pages/404.vue'), | ||||||
|  | 	data() { | ||||||
|  | 		return { | ||||||
|  | 			src: '/assets/error.jpg' | ||||||
|  | 		} | ||||||
|  | 	}, | ||||||
|  | 	created() { | ||||||
|  | 		this.$root.getMeta().then(meta => { | ||||||
|  | 			if (meta.errorImageUrl) | ||||||
|  | 				this.src = meta.errorImageUrl; | ||||||
|  | 		}); | ||||||
|  | 	} | ||||||
|  | }) | ||||||
|  | </script> | ||||||
|  | 
 | ||||||
|  | <style lang="stylus" scoped> | ||||||
|  | figure | ||||||
|  | 	align-items center | ||||||
|  | 	bottom 0 | ||||||
|  | 	display flex | ||||||
|  | 	justify-content center | ||||||
|  | 	left 0 | ||||||
|  | 	margin auto | ||||||
|  | 	position fixed | ||||||
|  | 	right 0 | ||||||
|  | 	top 0 | ||||||
|  | 
 | ||||||
|  | 	figcaption | ||||||
|  | 		margin 8px | ||||||
|  | 
 | ||||||
|  | 		h1, | ||||||
|  | 		p | ||||||
|  | 			color var(--text) | ||||||
|  | 			display flex | ||||||
|  | 			flex-flow column | ||||||
|  | 
 | ||||||
|  | 			* | ||||||
|  | 				position relative | ||||||
|  | 				width 100% | ||||||
|  | 
 | ||||||
|  | @media (max-width: 767px) | ||||||
|  | 	figure | ||||||
|  | 		flex-flow column | ||||||
|  | 
 | ||||||
|  | 	figcaption | ||||||
|  | 		text-align center | ||||||
|  | </style> | ||||||
|  | @ -28,6 +28,7 @@ import MkTag from './views/pages/tag.vue'; | ||||||
| import MkReversi from './views/pages/games/reversi.vue'; | import MkReversi from './views/pages/games/reversi.vue'; | ||||||
| import MkShare from './views/pages/share.vue'; | import MkShare from './views/pages/share.vue'; | ||||||
| import MkFollow from '../common/views/pages/follow.vue'; | import MkFollow from '../common/views/pages/follow.vue'; | ||||||
|  | import MkNotFound from '../common/views/pages/404.vue'; | ||||||
| 
 | 
 | ||||||
| import Ctx from './views/components/context-menu.vue'; | import Ctx from './views/components/context-menu.vue'; | ||||||
| import PostFormWindow from './views/components/post-form-window.vue'; | import PostFormWindow from './views/components/post-form-window.vue'; | ||||||
|  | @ -148,7 +149,8 @@ init(async (launch) => { | ||||||
| 			{ path: '/@:user/following', name: 'userFollowing', component: MkUserFollowingOrFollowers }, | 			{ path: '/@:user/following', name: 'userFollowing', component: MkUserFollowingOrFollowers }, | ||||||
| 			{ path: '/@:user/followers', name: 'userFollowers', component: MkUserFollowingOrFollowers }, | 			{ path: '/@:user/followers', name: 'userFollowers', component: MkUserFollowingOrFollowers }, | ||||||
| 			{ path: '/notes/:note', name: 'note', component: MkNote }, | 			{ path: '/notes/:note', name: 'note', component: MkNote }, | ||||||
| 			{ path: '/authorize-follow', component: MkFollow } | 			{ path: '/authorize-follow', component: MkFollow }, | ||||||
|  | 			{ path: '*', component: MkNotFound } | ||||||
| 		] | 		] | ||||||
| 	}); | 	}); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -18,6 +18,7 @@ import Apps from './views/apps.vue'; | ||||||
| import AppNew from './views/new-app.vue'; | import AppNew from './views/new-app.vue'; | ||||||
| import App from './views/app.vue'; | import App from './views/app.vue'; | ||||||
| import ui from './views/ui.vue'; | import ui from './views/ui.vue'; | ||||||
|  | import NotFound from '../common/views/pages/404.vue'; | ||||||
| 
 | 
 | ||||||
| Vue.use(BootstrapVue); | Vue.use(BootstrapVue); | ||||||
| 
 | 
 | ||||||
|  | @ -36,6 +37,7 @@ init(launch => { | ||||||
| 			{ path: '/apps', component: Apps }, | 			{ path: '/apps', component: Apps }, | ||||||
| 			{ path: '/app/new', component: AppNew }, | 			{ path: '/app/new', component: AppNew }, | ||||||
| 			{ path: '/app/:id', component: App }, | 			{ path: '/app/:id', component: App }, | ||||||
|  | 			{ path: '*', component: NotFound } | ||||||
| 		] | 		] | ||||||
| 	}); | 	}); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -31,6 +31,7 @@ import MkReversi from './views/pages/games/reversi.vue'; | ||||||
| import MkTag from './views/pages/tag.vue'; | import MkTag from './views/pages/tag.vue'; | ||||||
| import MkShare from './views/pages/share.vue'; | import MkShare from './views/pages/share.vue'; | ||||||
| import MkFollow from '../common/views/pages/follow.vue'; | import MkFollow from '../common/views/pages/follow.vue'; | ||||||
|  | import MkNotFound from '../common/views/pages/404.vue'; | ||||||
| 
 | 
 | ||||||
| import PostForm from './views/components/post-form-dialog.vue'; | import PostForm from './views/components/post-form-dialog.vue'; | ||||||
| import FileChooser from './views/components/drive-file-chooser.vue'; | import FileChooser from './views/components/drive-file-chooser.vue'; | ||||||
|  | @ -138,7 +139,8 @@ init((launch) => { | ||||||
| 			{ path: '/@:user/followers', component: MkFollowers }, | 			{ path: '/@:user/followers', component: MkFollowers }, | ||||||
| 			{ path: '/@:user/following', component: MkFollowing }, | 			{ path: '/@:user/following', component: MkFollowing }, | ||||||
| 			{ path: '/notes/:note', component: MkNote }, | 			{ path: '/notes/:note', component: MkNote }, | ||||||
| 			{ path: '/authorize-follow', component: MkFollow } | 			{ path: '/authorize-follow', component: MkFollow }, | ||||||
|  | 			{ path: '*', component: MkNotFound } | ||||||
| 		] | 		] | ||||||
| 	}); | 	}); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -5,6 +5,7 @@ import './style.styl'; | ||||||
| 
 | 
 | ||||||
| import init from '../init'; | import init from '../init'; | ||||||
| import Index from './views/index.vue'; | import Index from './views/index.vue'; | ||||||
|  | import NotFound from '../common/views/pages/404.vue'; | ||||||
| 
 | 
 | ||||||
| init(launch => { | init(launch => { | ||||||
| 	document.title = 'Misskey'; | 	document.title = 'Misskey'; | ||||||
|  | @ -15,6 +16,7 @@ init(launch => { | ||||||
| 		base: '/test/', | 		base: '/test/', | ||||||
| 		routes: [ | 		routes: [ | ||||||
| 			{ path: '/', component: Index }, | 			{ path: '/', component: Index }, | ||||||
|  | 			{ path: '*', component: NotFound } | ||||||
| 		] | 		] | ||||||
| 	}); | 	}); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -173,6 +173,7 @@ export type IMeta = { | ||||||
| 	disableLocalTimeline?: boolean; | 	disableLocalTimeline?: boolean; | ||||||
| 	hidedTags?: string[]; | 	hidedTags?: string[]; | ||||||
| 	bannerUrl?: string; | 	bannerUrl?: string; | ||||||
|  | 	errorImageUrl?: string; | ||||||
| 
 | 
 | ||||||
| 	cacheRemoteFiles?: boolean; | 	cacheRemoteFiles?: boolean; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -46,6 +46,13 @@ export const meta = { | ||||||
| 			} | 			} | ||||||
| 		}, | 		}, | ||||||
| 
 | 
 | ||||||
|  | 		errorImageUrl: { | ||||||
|  | 			validator: $.str.optional.nullable, | ||||||
|  | 			desc: { | ||||||
|  | 				'ja-JP': 'インスタンスのエラー画像URL' | ||||||
|  | 			} | ||||||
|  | 		}, | ||||||
|  | 
 | ||||||
| 		name: { | 		name: { | ||||||
| 			validator: $.str.optional.nullable, | 			validator: $.str.optional.nullable, | ||||||
| 			desc: { | 			desc: { | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue