summaryrefslogtreecommitdiff
path: root/packages/client/src/pages/admin/integrations.github.vue
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2022-01-04 21:16:41 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2022-01-04 21:16:41 +0900
commit89053d5747075bc6cc4ba5276167a826887fae08 (patch)
tree800d0060ff70c795d2a7613809631867047ec5c6 /packages/client/src/pages/admin/integrations.github.vue
parenttweak ui (diff)
downloadmisskey-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.vue84
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>