diff options
| author | syuilo <syuilotan@yahoo.co.jp> | 2021-01-23 16:52:45 +0900 |
|---|---|---|
| committer | syuilo <syuilotan@yahoo.co.jp> | 2021-01-23 16:52:45 +0900 |
| commit | 82207598f0be8d55e7df373e6e4540c9852cf025 (patch) | |
| tree | bfaa11e340b72f3e00eab2c23c7180dc10c39ceb /src/client/pages | |
| parent | :art: (diff) | |
| download | misskey-82207598f0be8d55e7df373e6e4540c9852cf025.tar.gz misskey-82207598f0be8d55e7df373e6e4540c9852cf025.tar.bz2 misskey-82207598f0be8d55e7df373e6e4540c9852cf025.zip | |
Add misskey update page
Diffstat (limited to 'src/client/pages')
| -rw-r--r-- | src/client/pages/settings/index.vue | 1 | ||||
| -rw-r--r-- | src/client/pages/settings/other.vue | 2 | ||||
| -rw-r--r-- | src/client/pages/settings/update.vue | 94 |
3 files changed, 97 insertions, 0 deletions
diff --git a/src/client/pages/settings/index.vue b/src/client/pages/settings/index.vue index 0f95a76f11..bacce6e3f7 100644 --- a/src/client/pages/settings/index.vue +++ b/src/client/pages/settings/index.vue @@ -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')); } diff --git a/src/client/pages/settings/other.vue b/src/client/pages/settings/other.vue index 426d91ba01..c6ec9f6c0a 100644 --- a/src/client/pages/settings/other.vue +++ b/src/client/pages/settings/other.vue @@ -1,5 +1,7 @@ <template> <FormBase> + <FormLink to="/settings/update">Misskey Update</FormLink> + <FormSwitch :value="$i.injectFeaturedNote" @update:value="onChangeInjectFeaturedNote"> {{ $ts.showFeaturedNotesInTimeline }} </FormSwitch> diff --git a/src/client/pages/settings/update.vue b/src/client/pages/settings/update.vue new file mode 100644 index 0000000000..d172ceb10a --- /dev/null +++ b/src/client/pages/settings/update.vue @@ -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> |