Add misskey update page
This commit is contained in:
		
							parent
							
								
									a2bef1fa52
								
							
						
					
					
						commit
						82207598f0
					
				
					 4 changed files with 101 additions and 0 deletions
				
			
		|  | @ -692,6 +692,10 @@ deleteConfirm: "削除しますか?" | |||
| invalidValue: "有効な値ではありません。" | ||||
| registry: "レジストリ" | ||||
| closeAccount: "アカウントを閉鎖する" | ||||
| currentVersion: "現在のバージョン" | ||||
| latestVersion: "最新のバージョン" | ||||
| youAreRunningUpToDateClient: "お使いのクライアントは最新です。" | ||||
| newVersionOfClientAvailable: "新しいバージョンのクライアントが利用可能です。" | ||||
| 
 | ||||
| _registry: | ||||
|   scope: "スコープ" | ||||
|  |  | |||
|  | @ -106,6 +106,7 @@ export default defineComponent({ | |||
| 				case 'plugins': return defineAsyncComponent(() => import('./plugins.vue')); | ||||
| 				case 'import-export': return defineAsyncComponent(() => import('./import-export.vue')); | ||||
| 				case 'account-info': return defineAsyncComponent(() => import('./account-info.vue')); | ||||
| 				case 'update': return defineAsyncComponent(() => import('./update.vue')); | ||||
| 				case 'registry': return defineAsyncComponent(() => import('./registry.vue')); | ||||
| 				case 'experimental-features': return defineAsyncComponent(() => import('./experimental-features.vue')); | ||||
| 			} | ||||
|  |  | |||
|  | @ -1,5 +1,7 @@ | |||
| <template> | ||||
| <FormBase> | ||||
| 	<FormLink to="/settings/update">Misskey Update</FormLink> | ||||
| 
 | ||||
| 	<FormSwitch :value="$i.injectFeaturedNote" @update:value="onChangeInjectFeaturedNote"> | ||||
| 		{{ $ts.showFeaturedNotesInTimeline }} | ||||
| 	</FormSwitch> | ||||
|  |  | |||
							
								
								
									
										94
									
								
								src/client/pages/settings/update.vue
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										94
									
								
								src/client/pages/settings/update.vue
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,94 @@ | |||
| <template> | ||||
| <FormBase> | ||||
| 	<template v-if="meta"> | ||||
| 		<MkInfo v-if="version === meta.version">{{ $ts.youAreRunningUpToDateClient }}</MkInfo> | ||||
| 		<MkInfo v-else warn>{{ $ts.newVersionOfClientAvailable }}</MkInfo> | ||||
| 	</template> | ||||
| 	<FormGroup> | ||||
| 		<template #label>{{ instanceName }}</template> | ||||
| 		<FormKeyValueView> | ||||
| 			<template #key>{{ $ts.currentVersion }}</template> | ||||
| 			<template #value>{{ version }}</template> | ||||
| 		</FormKeyValueView> | ||||
| 		<FormKeyValueView> | ||||
| 			<template #key>{{ $ts.latestVersion }}</template> | ||||
| 			<template #value v-if="meta">{{ meta.version }}</template> | ||||
| 			<template #value v-else><MkEllipsis/></template> | ||||
| 		</FormKeyValueView> | ||||
| 	</FormGroup> | ||||
| 	<FormGroup> | ||||
| 		<template #label>Misskey</template> | ||||
| 		<FormKeyValueView> | ||||
| 			<template #key>{{ $ts.latestVersion }}</template> | ||||
| 			<template #value v-if="releases">{{ releases[0].tag_name }}</template> | ||||
| 			<template #value v-else><MkEllipsis/></template> | ||||
| 		</FormKeyValueView> | ||||
| 		<template #caption v-if="releases"><MkTime :time="releases[0].published_at" mode="detail"/></template> | ||||
| 	</FormGroup> | ||||
| </FormBase> | ||||
| </template> | ||||
| 
 | ||||
| <script lang="ts"> | ||||
| import { defineAsyncComponent, defineComponent } from 'vue'; | ||||
| import { faInfoCircle, faSyncAlt } from '@fortawesome/free-solid-svg-icons'; | ||||
| import FormSwitch from '@/components/form/switch.vue'; | ||||
| import FormSelect from '@/components/form/select.vue'; | ||||
| import FormLink from '@/components/form/link.vue'; | ||||
| import FormBase from '@/components/form/base.vue'; | ||||
| import FormGroup from '@/components/form/group.vue'; | ||||
| import FormButton from '@/components/form/button.vue'; | ||||
| import FormKeyValueView from '@/components/form/key-value-view.vue'; | ||||
| import MkInfo from '@/components/ui/info.vue'; | ||||
| import * as os from '@/os'; | ||||
| import { version, instanceName } from '@/config'; | ||||
| 
 | ||||
| export default defineComponent({ | ||||
| 	components: { | ||||
| 		FormBase, | ||||
| 		FormSelect, | ||||
| 		FormSwitch, | ||||
| 		FormButton, | ||||
| 		FormLink, | ||||
| 		FormGroup, | ||||
| 		FormKeyValueView, | ||||
| 		MkInfo, | ||||
| 	}, | ||||
| 
 | ||||
| 	emits: ['info'], | ||||
| 	 | ||||
| 	data() { | ||||
| 		return { | ||||
| 			INFO: { | ||||
| 				title: 'Misskey Update', | ||||
| 				icon: faSyncAlt | ||||
| 			}, | ||||
| 			version, | ||||
| 			instanceName, | ||||
| 			releases: null, | ||||
| 			meta: null | ||||
| 		} | ||||
| 	}, | ||||
| 
 | ||||
| 	mounted() { | ||||
| 		this.$emit('info', this.INFO); | ||||
| 
 | ||||
| 		os.api('meta', { | ||||
| 			detail: false | ||||
| 		}).then(meta => { | ||||
| 			this.meta = meta; | ||||
| 			localStorage.setItem('v', meta.version); | ||||
| 		}); | ||||
| 
 | ||||
| 		fetch('https://api.github.com/repos/syuilo/misskey/releases', { | ||||
| 			method: 'GET', | ||||
| 		}) | ||||
| 		.then(res => res.json()) | ||||
| 		.then(res => { | ||||
| 			this.releases = res; | ||||
| 		}); | ||||
| 	}, | ||||
| 
 | ||||
| 	methods: { | ||||
| 	} | ||||
| }); | ||||
| </script> | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue