penna.school/index_files/index_002.js

50 lines
1.4 KiB
JavaScript
Raw Permalink Normal View History

2025-07-09 10:36:49 +02:00
import app from './../../js/app.js';
var tag = 'app-login-nav';
app.init({tag});
var html = `
<div class="nav-functions" v-if="!store.user">
<a href="#" @click="redirect(loginUrl)" class="main-menu-item w-nav-link">{{ t.login }}</a>
<a href="#" @click="redirect(registerUrl)" class="button-large w-button">{{ t.register }}</a>
</div>
<div class="nav-functions" v-else>
<a href="#" @click="redirect()" class="button-large-gray-1 button-large w-button">{{ t.account }}</a>
</div>
`;
Vue.customElement(tag, {
template: html,
props: [
'loginUrl',
'registerUrl',
'accountUrl',
'userAccountUrl'
],
data: () => ({
t: {
override: "",
login: "Inloggen",
register: "School aanmelden",
account: 'Mijn account'
},
store: app.store,
}),
methods: {
redirect(url) {
if (url) {
window.location.href = url;
} else {
this.store.user.getRoles().then(() => {
window.location.href = this.store.user.teacher ? this.accountUrl : this.userAccountUrl;
}).catch(error => {
console.log(error);
});
}
}
},
beforeMount() {
app.extendFromDOM(this,this.override) // fix for vue's lack of dynamic props/html-attributes
},
mounted() {}
});