summaryrefslogtreecommitdiff
path: root/packages/frontend/src/pages/admin/integrations.github.vue
diff options
context:
space:
mode:
Diffstat (limited to 'packages/frontend/src/pages/admin/integrations.github.vue')
-rw-r--r--packages/frontend/src/pages/admin/integrations.github.vue60
1 files changed, 60 insertions, 0 deletions
diff --git a/packages/frontend/src/pages/admin/integrations.github.vue b/packages/frontend/src/pages/admin/integrations.github.vue
new file mode 100644
index 0000000000..66419d5891
--- /dev/null
+++ b/packages/frontend/src/pages/admin/integrations.github.vue
@@ -0,0 +1,60 @@
+<template>
+<FormSuspense :p="init">
+ <div class="_formRoot">
+ <FormSwitch v-model="enableGithubIntegration" class="_formBlock">
+ <template #label>{{ i18n.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="ti ti-key"></i></template>
+ <template #label>Client ID</template>
+ </FormInput>
+
+ <FormInput v-model="githubClientSecret" class="_formBlock">
+ <template #prefix><i class="ti ti-key"></i></template>
+ <template #label>Client Secret</template>
+ </FormInput>
+ </template>
+
+ <FormButton primary class="_formBlock" @click="save"><i class="ti ti-device-floppy"></i> {{ i18n.ts.save }}</FormButton>
+ </div>
+</FormSuspense>
+</template>
+
+<script lang="ts" setup>
+import { } from 'vue';
+import FormSwitch from '@/components/form/switch.vue';
+import FormInput from '@/components/form/input.vue';
+import FormButton from '@/components/MkButton.vue';
+import FormInfo from '@/components/MkInfo.vue';
+import FormSuspense from '@/components/form/suspense.vue';
+import * as os from '@/os';
+import { fetchInstance } from '@/instance';
+import { i18n } from '@/i18n';
+
+let uri: string = $ref('');
+let enableGithubIntegration: boolean = $ref(false);
+let githubClientId: string | null = $ref(null);
+let githubClientSecret: string | null = $ref(null);
+
+async function init() {
+ const meta = await os.api('admin/meta');
+ uri = meta.uri;
+ enableGithubIntegration = meta.enableGithubIntegration;
+ githubClientId = meta.githubClientId;
+ githubClientSecret = meta.githubClientSecret;
+}
+
+function save() {
+ os.apiWithDialog('admin/update-meta', {
+ enableGithubIntegration,
+ githubClientId,
+ githubClientSecret,
+ }).then(() => {
+ fetchInstance();
+ });
+}
+</script>