diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2022-01-04 21:16:41 +0900 |
|---|---|---|
| committer | syuilo <Syuilotan@yahoo.co.jp> | 2022-01-04 21:16:41 +0900 |
| commit | 89053d5747075bc6cc4ba5276167a826887fae08 (patch) | |
| tree | 800d0060ff70c795d2a7613809631867047ec5c6 /packages/client/src/pages/admin/integrations.github.vue | |
| parent | tweak ui (diff) | |
| download | misskey-89053d5747075bc6cc4ba5276167a826887fae08.tar.gz misskey-89053d5747075bc6cc4ba5276167a826887fae08.tar.bz2 misskey-89053d5747075bc6cc4ba5276167a826887fae08.zip | |
tweak ui
Diffstat (limited to 'packages/client/src/pages/admin/integrations.github.vue')
| -rw-r--r-- | packages/client/src/pages/admin/integrations.github.vue | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/packages/client/src/pages/admin/integrations.github.vue b/packages/client/src/pages/admin/integrations.github.vue new file mode 100644 index 0000000000..c0316c317a --- /dev/null +++ b/packages/client/src/pages/admin/integrations.github.vue @@ -0,0 +1,84 @@ +<template> +<FormSuspense :p="init"> + <div class="_formRoot"> + <FormSwitch v-model="enableGithubIntegration" class="_formBlock"> + <template #label>{{ $ts.enable }}</template> + </FormSwitch> + + <template v-if="enableGithubIntegration"> + <FormInfo class="_formBlock">Callback URL: {{ `${uri}/api/gh/cb` }}</FormInfo> + + <FormInput v-model="githubClientId" class="_formBlock"> + <template #prefix><i class="fas fa-key"></i></template> + <template #label>Client ID</template> + </FormInput> + + <FormInput v-model="githubClientSecret" class="_formBlock"> + <template #prefix><i class="fas fa-key"></i></template> + <template #label>Client Secret</template> + </FormInput> + </template> + + <FormButton primary class="_formBlock" @click="save"><i class="fas fa-save"></i> {{ $ts.save }}</FormButton> + </div> +</FormSuspense> +</template> + +<script lang="ts"> +import { defineComponent } from 'vue'; +import FormSwitch from '@/components/form/switch.vue'; +import FormInput from '@/components/form/input.vue'; +import FormButton from '@/components/ui/button.vue'; +import FormInfo from '@/components/ui/info.vue'; +import FormSuspense from '@/components/form/suspense.vue'; +import * as os from '@/os'; +import * as symbols from '@/symbols'; +import { fetchInstance } from '@/instance'; + +export default defineComponent({ + components: { + FormSwitch, + FormInput, + FormInfo, + FormButton, + FormSuspense, + }, + + emits: ['info'], + + data() { + return { + [symbols.PAGE_INFO]: { + title: 'GitHub', + icon: 'fab fa-github' + }, + enableGithubIntegration: false, + githubClientId: null, + githubClientSecret: null, + } + }, + + async mounted() { + this.$emit('info', this[symbols.PAGE_INFO]); + }, + + methods: { + async init() { + const meta = await os.api('meta', { detail: true }); + this.uri = meta.uri; + this.enableGithubIntegration = meta.enableGithubIntegration; + this.githubClientId = meta.githubClientId; + this.githubClientSecret = meta.githubClientSecret; + }, + save() { + os.apiWithDialog('admin/update-meta', { + enableGithubIntegration: this.enableGithubIntegration, + githubClientId: this.githubClientId, + githubClientSecret: this.githubClientSecret, + }).then(() => { + fetchInstance(); + }); + } + } +}); +</script> |