diff options
| author | Acid Chicken (硫酸鶏) <root@acid-chicken.com> | 2018-11-04 22:03:55 +0900 |
|---|---|---|
| committer | syuilo <Syuilotan@yahoo.co.jp> | 2018-11-04 22:03:55 +0900 |
| commit | 8646a9c49c708cd502904b450e16b405118312e3 (patch) | |
| tree | d616b6bf70be75b4095f2c215fa5e291b548e756 /src/client/app/common/views/components/github-setting.vue | |
| parent | Clean up (diff) | |
| download | misskey-8646a9c49c708cd502904b450e16b405118312e3.tar.gz misskey-8646a9c49c708cd502904b450e16b405118312e3.tar.bz2 misskey-8646a9c49c708cd502904b450e16b405118312e3.zip | |
Add GitHub auth (#3095)
Diffstat (limited to 'src/client/app/common/views/components/github-setting.vue')
| -rw-r--r-- | src/client/app/common/views/components/github-setting.vue | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/src/client/app/common/views/components/github-setting.vue b/src/client/app/common/views/components/github-setting.vue new file mode 100644 index 0000000000..f79a700a92 --- /dev/null +++ b/src/client/app/common/views/components/github-setting.vue @@ -0,0 +1,63 @@ +<template> +<div class="mk-github-setting"> + <p>%i18n:@description%<a :href="`${docsUrl}/link-to-github`" target="_blank">%i18n:@detail%</a></p> + <p class="account" v-if="$store.state.i.github" :title="`GitHub ID: ${$store.state.i.github.id}`">%i18n:@connected-to%: <a :href="`https://github.com/${$store.state.i.github.login}`" target="_blank">@{{ $store.state.i.github.login }}</a></p> + <p> + <a :href="`${apiUrl}/connect/github`" target="_blank" @click.prevent="connect">{{ $store.state.i.github ? '%i18n:@reconnect%' : '%i18n:@connect%' }}</a> + <span v-if="$store.state.i.github"> or </span> + <a :href="`${apiUrl}/disconnect/github`" target="_blank" v-if="$store.state.i.github" @click.prevent="disconnect">%i18n:@disconnect%</a> + </p> + <p class="id" v-if="$store.state.i.github">GitHub ID: {{ $store.state.i.github.id }}</p> +</div> +</template> + +<script lang="ts"> +import Vue from 'vue'; +import { apiUrl, docsUrl } from '../../../config'; + +export default Vue.extend({ + data() { + return { + form: null, + apiUrl, + docsUrl + }; + }, + mounted() { + this.$watch('$store.state.i', () => { + if (this.$store.state.i.github && this.form) + this.form.close(); + }, { + deep: true + }); + }, + methods: { + connect() { + this.form = window.open(apiUrl + '/connect/github', + 'github_connect_window', + 'height=570, width=520'); + }, + + disconnect() { + window.open(apiUrl + '/disconnect/github', + 'github_disconnect_window', + 'height=570, width=520'); + } + } +}); +</script> + +<style lang="stylus" scoped> +.mk-github-setting + .account + border solid 1px #e1e8ed + border-radius 4px + padding 16px + + a + font-weight bold + color inherit + + .id + color #8899a6 +</style> |