mirror of
				https://codeberg.org/yeentown/barkey.git
				synced 2025-11-03 23:14:13 +00:00 
			
		
		
		
	Refactor admin/integrations to use Composition API (#8664)
* refactor(client): refactor admin/integrations to use Composition API * Apply review suggestions from @Johann150 Co-authored-by: Johann150 <johann@qwertqwefsday.eu> Co-authored-by: Johann150 <johann@qwertqwefsday.eu>
This commit is contained in:
		
							parent
							
								
									83ac6742f6
								
							
						
					
					
						commit
						18307c822c
					
				
					 4 changed files with 87 additions and 167 deletions
				
			
		| 
						 | 
				
			
			@ -24,57 +24,36 @@
 | 
			
		|||
</FormSuspense>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script lang="ts">
 | 
			
		||||
import { defineComponent } from 'vue';
 | 
			
		||||
<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/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,
 | 
			
		||||
	},
 | 
			
		||||
let uri: string = $ref('');
 | 
			
		||||
let enableDiscordIntegration: boolean = $ref(false);
 | 
			
		||||
let discordClientId: string | null = $ref(null);
 | 
			
		||||
let discordClientSecret: string | null = $ref(null);
 | 
			
		||||
 | 
			
		||||
	emits: ['info'],
 | 
			
		||||
 | 
			
		||||
	data() {
 | 
			
		||||
		return {
 | 
			
		||||
			[symbols.PAGE_INFO]: {
 | 
			
		||||
				title: 'Discord',
 | 
			
		||||
				icon: 'fab fa-discord'
 | 
			
		||||
			},
 | 
			
		||||
			enableDiscordIntegration: false,
 | 
			
		||||
			discordClientId: null,
 | 
			
		||||
			discordClientSecret: null,
 | 
			
		||||
		}
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	methods: {
 | 
			
		||||
		async init() {
 | 
			
		||||
async function init() {
 | 
			
		||||
	const meta = await os.api('admin/meta');
 | 
			
		||||
			this.uri = meta.uri;
 | 
			
		||||
			this.enableDiscordIntegration = meta.enableDiscordIntegration;
 | 
			
		||||
			this.discordClientId = meta.discordClientId;
 | 
			
		||||
			this.discordClientSecret = meta.discordClientSecret;
 | 
			
		||||
		},
 | 
			
		||||
		save() {
 | 
			
		||||
	uri = meta.uri;
 | 
			
		||||
	enableDiscordIntegration = meta.enableDiscordIntegration;
 | 
			
		||||
	discordClientId = meta.discordClientId;
 | 
			
		||||
	discordClientSecret = meta.discordClientSecret;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function save() {
 | 
			
		||||
	os.apiWithDialog('admin/update-meta', {
 | 
			
		||||
				enableDiscordIntegration: this.enableDiscordIntegration,
 | 
			
		||||
				discordClientId: this.discordClientId,
 | 
			
		||||
				discordClientSecret: this.discordClientSecret,
 | 
			
		||||
		enableDiscordIntegration,
 | 
			
		||||
		discordClientId,
 | 
			
		||||
		discordClientSecret,
 | 
			
		||||
	}).then(() => {
 | 
			
		||||
		fetchInstance();
 | 
			
		||||
	});
 | 
			
		||||
}
 | 
			
		||||
	}
 | 
			
		||||
});
 | 
			
		||||
</script>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -24,57 +24,36 @@
 | 
			
		|||
</FormSuspense>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script lang="ts">
 | 
			
		||||
import { defineComponent } from 'vue';
 | 
			
		||||
<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/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,
 | 
			
		||||
	},
 | 
			
		||||
let uri: string = $ref('');
 | 
			
		||||
let enableGithubIntegration: boolean = $ref(false);
 | 
			
		||||
let githubClientId: string | null = $ref(null);
 | 
			
		||||
let githubClientSecret: string | null = $ref(null);
 | 
			
		||||
 | 
			
		||||
	emits: ['info'],
 | 
			
		||||
 | 
			
		||||
	data() {
 | 
			
		||||
		return {
 | 
			
		||||
			[symbols.PAGE_INFO]: {
 | 
			
		||||
				title: 'GitHub',
 | 
			
		||||
				icon: 'fab fa-github'
 | 
			
		||||
			},
 | 
			
		||||
			enableGithubIntegration: false,
 | 
			
		||||
			githubClientId: null,
 | 
			
		||||
			githubClientSecret: null,
 | 
			
		||||
		}
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	methods: {
 | 
			
		||||
		async init() {
 | 
			
		||||
async function init() {
 | 
			
		||||
	const meta = await os.api('admin/meta');
 | 
			
		||||
			this.uri = meta.uri;
 | 
			
		||||
			this.enableGithubIntegration = meta.enableGithubIntegration;
 | 
			
		||||
			this.githubClientId = meta.githubClientId;
 | 
			
		||||
			this.githubClientSecret = meta.githubClientSecret;
 | 
			
		||||
		},
 | 
			
		||||
		save() {
 | 
			
		||||
	uri = meta.uri;
 | 
			
		||||
	enableGithubIntegration = meta.enableGithubIntegration;
 | 
			
		||||
	githubClientId = meta.githubClientId;
 | 
			
		||||
	githubClientSecret = meta.githubClientSecret;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function save() {
 | 
			
		||||
	os.apiWithDialog('admin/update-meta', {
 | 
			
		||||
				enableGithubIntegration: this.enableGithubIntegration,
 | 
			
		||||
				githubClientId: this.githubClientId,
 | 
			
		||||
				githubClientSecret: this.githubClientSecret,
 | 
			
		||||
		enableGithubIntegration,
 | 
			
		||||
		githubClientId,
 | 
			
		||||
		githubClientSecret,
 | 
			
		||||
	}).then(() => {
 | 
			
		||||
		fetchInstance();
 | 
			
		||||
	});
 | 
			
		||||
}
 | 
			
		||||
	}
 | 
			
		||||
});
 | 
			
		||||
</script>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -24,7 +24,7 @@
 | 
			
		|||
</FormSuspense>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script lang="ts">
 | 
			
		||||
<script lang="ts" setup>
 | 
			
		||||
import { defineComponent } from 'vue';
 | 
			
		||||
import FormSwitch from '@/components/form/switch.vue';
 | 
			
		||||
import FormInput from '@/components/form/input.vue';
 | 
			
		||||
| 
						 | 
				
			
			@ -32,49 +32,28 @@ 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,
 | 
			
		||||
	},
 | 
			
		||||
let uri: string = $ref('');
 | 
			
		||||
let enableTwitterIntegration: boolean = $ref(false);
 | 
			
		||||
let twitterConsumerKey: string | null = $ref(null);
 | 
			
		||||
let twitterConsumerSecret: string | null = $ref(null);
 | 
			
		||||
 | 
			
		||||
	emits: ['info'],
 | 
			
		||||
 | 
			
		||||
	data() {
 | 
			
		||||
		return {
 | 
			
		||||
			[symbols.PAGE_INFO]: {
 | 
			
		||||
				title: 'Twitter',
 | 
			
		||||
				icon: 'fab fa-twitter'
 | 
			
		||||
			},
 | 
			
		||||
			enableTwitterIntegration: false,
 | 
			
		||||
			twitterConsumerKey: null,
 | 
			
		||||
			twitterConsumerSecret: null,
 | 
			
		||||
		}
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	methods: {
 | 
			
		||||
		async init() {
 | 
			
		||||
async function init() {
 | 
			
		||||
	const meta = await os.api('admin/meta');
 | 
			
		||||
			this.uri = meta.uri;
 | 
			
		||||
			this.enableTwitterIntegration = meta.enableTwitterIntegration;
 | 
			
		||||
			this.twitterConsumerKey = meta.twitterConsumerKey;
 | 
			
		||||
			this.twitterConsumerSecret = meta.twitterConsumerSecret;
 | 
			
		||||
		},
 | 
			
		||||
		save() {
 | 
			
		||||
	uri = meta.uri;
 | 
			
		||||
	enableTwitterIntegration = meta.enableTwitterIntegration;
 | 
			
		||||
	twitterConsumerKey = meta.twitterConsumerKey;
 | 
			
		||||
	twitterConsumerSecret = meta.twitterConsumerSecret;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function save() {
 | 
			
		||||
	os.apiWithDialog('admin/update-meta', {
 | 
			
		||||
				enableTwitterIntegration: this.enableTwitterIntegration,
 | 
			
		||||
				twitterConsumerKey: this.twitterConsumerKey,
 | 
			
		||||
				twitterConsumerSecret: this.twitterConsumerSecret,
 | 
			
		||||
		enableTwitterIntegration,
 | 
			
		||||
		twitterConsumerKey,
 | 
			
		||||
		twitterConsumerSecret,
 | 
			
		||||
	}).then(() => {
 | 
			
		||||
		fetchInstance();
 | 
			
		||||
	});
 | 
			
		||||
}
 | 
			
		||||
	}
 | 
			
		||||
});
 | 
			
		||||
</script>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,69 +4,52 @@
 | 
			
		|||
		<FormFolder class="_formBlock">
 | 
			
		||||
			<template #icon><i class="fab fa-twitter"></i></template>
 | 
			
		||||
			<template #label>Twitter</template>
 | 
			
		||||
			<template #suffix>{{ enableTwitterIntegration ? $ts.enabled : $ts.disabled }}</template>
 | 
			
		||||
			<template #suffix>{{ enableTwitterIntegration ? i18n.ts.enabled : i18n.ts.disabled }}</template>
 | 
			
		||||
			<XTwitter/>
 | 
			
		||||
		</FormFolder>
 | 
			
		||||
		<FormFolder to="/admin/integrations/github" class="_formBlock">
 | 
			
		||||
		<FormFolder class="_formBlock">
 | 
			
		||||
			<template #icon><i class="fab fa-github"></i></template>
 | 
			
		||||
			<template #label>GitHub</template>
 | 
			
		||||
			<template #suffix>{{ enableGithubIntegration ? $ts.enabled : $ts.disabled }}</template>
 | 
			
		||||
			<template #suffix>{{ enableGithubIntegration ? i18n.ts.enabled : i18n.ts.disabled }}</template>
 | 
			
		||||
			<XGithub/>
 | 
			
		||||
		</FormFolder>
 | 
			
		||||
		<FormFolder to="/admin/integrations/discord" class="_formBlock">
 | 
			
		||||
		<FormFolder class="_formBlock">
 | 
			
		||||
			<template #icon><i class="fab fa-discord"></i></template>
 | 
			
		||||
			<template #label>Discord</template>
 | 
			
		||||
			<template #suffix>{{ enableDiscordIntegration ? $ts.enabled : $ts.disabled }}</template>
 | 
			
		||||
			<template #suffix>{{ enableDiscordIntegration ? i18n.ts.enabled : i18n.ts.disabled }}</template>
 | 
			
		||||
			<XDiscord/>
 | 
			
		||||
		</FormFolder>
 | 
			
		||||
	</FormSuspense>
 | 
			
		||||
</MkSpacer>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script lang="ts">
 | 
			
		||||
import { defineComponent } from 'vue';
 | 
			
		||||
<script lang="ts" setup>
 | 
			
		||||
import { } from 'vue';
 | 
			
		||||
import FormFolder from '@/components/form/folder.vue';
 | 
			
		||||
import FormSecion from '@/components/form/section.vue';
 | 
			
		||||
import FormSuspense from '@/components/form/suspense.vue';
 | 
			
		||||
import XTwitter from './integrations.twitter.vue';
 | 
			
		||||
import XGithub from './integrations.github.vue';
 | 
			
		||||
import XDiscord from './integrations.discord.vue';
 | 
			
		||||
import * as os from '@/os';
 | 
			
		||||
import * as symbols from '@/symbols';
 | 
			
		||||
import { fetchInstance } from '@/instance';
 | 
			
		||||
import { i18n } from '@/i18n';
 | 
			
		||||
 | 
			
		||||
export default defineComponent({
 | 
			
		||||
	components: {
 | 
			
		||||
		FormFolder,
 | 
			
		||||
		FormSecion,
 | 
			
		||||
		FormSuspense,
 | 
			
		||||
		XTwitter,
 | 
			
		||||
		XGithub,
 | 
			
		||||
		XDiscord,
 | 
			
		||||
	},
 | 
			
		||||
let enableTwitterIntegration: boolean = $ref(false);
 | 
			
		||||
let enableGithubIntegration: boolean = $ref(false);
 | 
			
		||||
let enableDiscordIntegration: boolean = $ref(false);
 | 
			
		||||
 | 
			
		||||
	emits: ['info'],
 | 
			
		||||
async function init() {
 | 
			
		||||
	const meta = await os.api('admin/meta');
 | 
			
		||||
	enableTwitterIntegration = meta.enableTwitterIntegration;
 | 
			
		||||
	enableGithubIntegration = meta.enableGithubIntegration;
 | 
			
		||||
	enableDiscordIntegration = meta.enableDiscordIntegration;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
	data() {
 | 
			
		||||
		return {
 | 
			
		||||
defineExpose({
 | 
			
		||||
	[symbols.PAGE_INFO]: {
 | 
			
		||||
				title: this.$ts.integration,
 | 
			
		||||
		title: i18n.ts.integration,
 | 
			
		||||
		icon: 'fas fa-share-alt',
 | 
			
		||||
		bg: 'var(--bg)',
 | 
			
		||||
			},
 | 
			
		||||
			enableTwitterIntegration: false,
 | 
			
		||||
			enableGithubIntegration: false,
 | 
			
		||||
			enableDiscordIntegration: false,
 | 
			
		||||
		}
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	methods: {
 | 
			
		||||
		async init() {
 | 
			
		||||
			const meta = await os.api('admin/meta');
 | 
			
		||||
			this.enableTwitterIntegration = meta.enableTwitterIntegration;
 | 
			
		||||
			this.enableGithubIntegration = meta.enableGithubIntegration;
 | 
			
		||||
			this.enableDiscordIntegration = meta.enableDiscordIntegration;
 | 
			
		||||
		},
 | 
			
		||||
	}
 | 
			
		||||
});
 | 
			
		||||
</script>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue