Use latest prettier as devDependency so tools will use (or can be configured to use) the npm provided version. The unique config change is to use single quotes instead of double quotes.
100 lines
2.4 KiB
Vue
100 lines
2.4 KiB
Vue
<template>
|
|
<div>
|
|
<div
|
|
v-if="addLinkedAccountError"
|
|
class="mb-10 bg-red-100 border border-red-400 text-red-700 px-4 py-3 rounded relative"
|
|
role="alert"
|
|
>
|
|
<span class="block sm:inline">{{ addLinkedAccountError }}</span>
|
|
</div>
|
|
<div class="my-6 flex justify-center items-center">
|
|
<div v-if="remotesource">
|
|
<LoginForm
|
|
v-if="remotesource.auth_type == 'password'"
|
|
action="Add Linked Account"
|
|
:name="remotesource.name"
|
|
v-on:login="
|
|
doAddLinkedAccount(
|
|
remotesource.name,
|
|
$event.username,
|
|
$event.password
|
|
)
|
|
"
|
|
/>
|
|
<button
|
|
v-else
|
|
class="bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded"
|
|
@click="doAddLinkedAccount(remotesource.name)"
|
|
>
|
|
Add Linked Account with {{ remotesource.name }}
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import LoginForm from '@/components/loginform';
|
|
|
|
import { fetchRemoteSources, createUserLinkedAccount } from '@/util/data';
|
|
|
|
export default {
|
|
name: 'AddLinkedAccount',
|
|
props: {
|
|
username: String,
|
|
remoteSourceName: String,
|
|
},
|
|
components: {
|
|
LoginForm,
|
|
},
|
|
data: function () {
|
|
return {
|
|
addLinkedAccountError: null,
|
|
remotesource: null,
|
|
};
|
|
},
|
|
methods: {
|
|
resetErrors() {
|
|
this.addLinkedAccountError = null;
|
|
},
|
|
async fetchRemoteSources() {
|
|
let { data, error } = await fetchRemoteSources();
|
|
if (error) {
|
|
this.$store.dispatch('setError', error);
|
|
return;
|
|
}
|
|
for (var i = 0; i < data.length; i++) {
|
|
let remotesource = data[i];
|
|
if (remotesource.name == this.remoteSourceName) {
|
|
this.remotesource = remotesource;
|
|
break;
|
|
}
|
|
}
|
|
},
|
|
async doAddLinkedAccount(rsName, loginname, password) {
|
|
let { data, error } = await createUserLinkedAccount(
|
|
this.username,
|
|
rsName,
|
|
loginname,
|
|
password
|
|
);
|
|
if (error) {
|
|
this.addLinkedAccountError = error;
|
|
return;
|
|
}
|
|
if (data.oauth2_redirect) {
|
|
window.location = data.oauth2_redirect;
|
|
return;
|
|
}
|
|
this.$router.push({
|
|
name: 'user settings',
|
|
params: { username: this.username },
|
|
});
|
|
},
|
|
},
|
|
created: function () {
|
|
this.fetchRemoteSources();
|
|
},
|
|
};
|
|
</script>
|