summaryrefslogtreecommitdiff
path: root/src/client/app/common/views/components/integration-settings.vue
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/app/common/views/components/integration-settings.vue')
-rw-r--r--src/client/app/common/views/components/integration-settings.vue96
1 files changed, 96 insertions, 0 deletions
diff --git a/src/client/app/common/views/components/integration-settings.vue b/src/client/app/common/views/components/integration-settings.vue
new file mode 100644
index 0000000000..1a0af799a0
--- /dev/null
+++ b/src/client/app/common/views/components/integration-settings.vue
@@ -0,0 +1,96 @@
+<template>
+<ui-card>
+ <div slot="title"><fa icon="share-alt"/> {{ $t('title') }}</div>
+
+ <section>
+ <header><fa :icon="['fab', 'twitter']"/> Twitter</header>
+ <p v-if="$store.state.i.twitter">{{ $t('connected-to') }}: <a :href="`https://twitter.com/${$store.state.i.twitter.screenName}`" target="_blank">@{{ $store.state.i.twitter.screenName }}</a></p>
+ <ui-button v-if="$store.state.i.twitter" @click="disconnectTwitter">{{ $t('disconnect') }}</ui-button>
+ <ui-button v-else @click="connectTwitter">{{ $t('connect') }}</ui-button>
+ </section>
+
+ <section>
+ <header><fa :icon="['fab', 'discord']"/> Discord</header>
+ <p v-if="$store.state.i.discord">{{ $t('connected-to') }}: <a :href="`https://discord.com/${$store.state.i.discord.screenName}`" target="_blank">@{{ $store.state.i.discord.screenName }}</a></p>
+ <ui-button v-if="$store.state.i.discord" @click="disconnectDiscord">{{ $t('disconnect') }}</ui-button>
+ <ui-button v-else @click="connectDiscord">{{ $t('connect') }}</ui-button>
+ </section>
+
+ <section>
+ <header><fa :icon="['fab', 'github']"/> GitHub</header>
+ <p v-if="$store.state.i.github">{{ $t('connected-to') }}: <a :href="`https://github.com/${$store.state.i.github.screenName}`" target="_blank">@{{ $store.state.i.github.screenName }}</a></p>
+ <ui-button v-if="$store.state.i.github" @click="disconnectGithub">{{ $t('disconnect') }}</ui-button>
+ <ui-button v-else @click="connectGithub">{{ $t('connect') }}</ui-button>
+ </section>
+</ui-card>
+</template>
+
+<script lang="ts">
+import Vue from 'vue';
+import i18n from '../../../i18n';
+import { apiUrl } from '../../../config';
+
+export default Vue.extend({
+ i18n: i18n('common/views/components/integration-settings.vue'),
+
+ data() {
+ return {
+ apiUrl,
+ twitterForm: null,
+ discordForm: null,
+ githubForm: null,
+ };
+ },
+
+ mounted() {
+ this.$watch('$store.state.i', () => {
+ if (this.$store.state.i.twitter) {
+ if (this.twitterForm) this.twitterForm.close();
+ }
+ }, {
+ deep: true
+ });
+ },
+
+ methods: {
+ connectTwitter() {
+ this.twitterForm = window.open(apiUrl + '/connect/twitter',
+ 'twitter_connect_window',
+ 'height=570, width=520');
+ },
+
+ disconnectTwitter() {
+ window.open(apiUrl + '/disconnect/twitter',
+ 'twitter_disconnect_window',
+ 'height=570, width=520');
+ },
+
+ connectDiscord() {
+ this.discordForm = window.open(apiUrl + '/connect/discord',
+ 'discord_connect_window',
+ 'height=570, width=520');
+ },
+
+ disconnectDiscord() {
+ window.open(apiUrl + '/disconnect/discord',
+ 'discord_disconnect_window',
+ 'height=570, width=520');
+ },
+
+ connectGithub() {
+ this.githubForm = window.open(apiUrl + '/connect/github',
+ 'github_connect_window',
+ 'height=570, width=520');
+ },
+
+ disconnectGithub() {
+ window.open(apiUrl + '/disconnect/github',
+ 'github_disconnect_window',
+ 'height=570, width=520');
+ },
+ }
+});
+</script>
+
+<style lang="stylus" scoped>
+</style>