add: Abstract class to simplifie the code,
AbstractRedirectView, AbstractAuthentificateView AbstractUnAuthentificateView
This commit is contained in:
parent
a6666b889f
commit
84a5a592ca
@ -9,6 +9,8 @@ import RegisterView from "./views/accounts/RegisterView.js";
|
||||
import LogoutView from "./views/accounts/LogoutView.js";
|
||||
|
||||
import { Client } from "./api/client.js";
|
||||
import AbstractProtectedView from "./views/AbstractRedirectView.js";
|
||||
import AbstractRedirectView from "./views/AbstractRedirectView.js";
|
||||
|
||||
let client = new Client(location.protocol + "//" + location.host)
|
||||
|
||||
@ -64,6 +66,10 @@ const router = async (uri = "") => {
|
||||
await lastView.leavePage();
|
||||
|
||||
const view = new match.route.view(getParams(match));
|
||||
|
||||
if (view instanceof AbstractRedirectView && await view.redirect())
|
||||
return 1;
|
||||
|
||||
lastView = view;
|
||||
|
||||
let content = await view.getHtml();
|
||||
|
18
frontend/static/js/views/AbstractAuthentificateView.js
Normal file
18
frontend/static/js/views/AbstractAuthentificateView.js
Normal file
@ -0,0 +1,18 @@
|
||||
import { client, navigateTo } from "../index.js";
|
||||
import AbstractRedirectView from "./AbstractRedirectView.js";
|
||||
|
||||
export default class extends AbstractRedirectView{
|
||||
constructor(params) {
|
||||
super(params, "/login");
|
||||
}
|
||||
|
||||
async redirect()
|
||||
{
|
||||
if (await client.isAuthentificate() === false)
|
||||
{
|
||||
navigateTo(this.redirect_url);
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
15
frontend/static/js/views/AbstractRedirectView.js
Normal file
15
frontend/static/js/views/AbstractRedirectView.js
Normal file
@ -0,0 +1,15 @@
|
||||
import { navigateTo } from "../index.js";
|
||||
import AbstractView from "./AbstractView.js";
|
||||
|
||||
export default class extends AbstractView{
|
||||
constructor(params, url)
|
||||
{
|
||||
super(params);
|
||||
this.redirect_url = url;
|
||||
}
|
||||
|
||||
async redirect()
|
||||
{
|
||||
navigateTo(url);
|
||||
}
|
||||
}
|
16
frontend/static/js/views/AbstractUnAuthentificateView.js
Normal file
16
frontend/static/js/views/AbstractUnAuthentificateView.js
Normal file
@ -0,0 +1,16 @@
|
||||
import { client, navigateTo } from "../index.js";
|
||||
import AbstractRedirectView from "./AbstractRedirectView.js";
|
||||
|
||||
export default class extends AbstractRedirectView{
|
||||
constructor(params, url) {
|
||||
super(params, url);
|
||||
}
|
||||
|
||||
async redirect()
|
||||
{
|
||||
if (await client.isAuthentificate() === false)
|
||||
return 0;
|
||||
navigateTo(this.redirect_url);
|
||||
return 1;
|
||||
}
|
||||
}
|
@ -1,18 +1,13 @@
|
||||
import AbstractView from "./AbstractView.js";
|
||||
import { client, navigateTo } from "../index.js";
|
||||
import AbstractAuthentificateView from "./AbstractAuthentificateView.js";
|
||||
|
||||
export default class extends AbstractView {
|
||||
export default class extends AbstractAuthentificateView {
|
||||
constructor(params) {
|
||||
super(params);
|
||||
this.setTitle("Home");
|
||||
this.redirect_url = "/login"
|
||||
}
|
||||
|
||||
async getHtml() {
|
||||
if (await client.isAuthentificate() === false)
|
||||
{
|
||||
navigateTo("/login");
|
||||
return;
|
||||
}
|
||||
return `
|
||||
<h1>HOME</h1>
|
||||
<a href="/logout" class="nav__link" data-link>Logout</a>
|
||||
|
@ -1,5 +1,5 @@
|
||||
import AbstractView from "../AbstractView.js";
|
||||
import { client, navigateTo } from "../../index.js";
|
||||
import AbstractUnAuthentificateView from "../AbstractUnAuthentificateView.js";
|
||||
|
||||
async function login()
|
||||
{
|
||||
@ -27,9 +27,9 @@ async function login()
|
||||
});
|
||||
}
|
||||
|
||||
export default class extends AbstractView {
|
||||
export default class extends AbstractUnAuthentificateView {
|
||||
constructor(params) {
|
||||
super(params);
|
||||
super(params, "/home");
|
||||
}
|
||||
|
||||
async postInit()
|
||||
@ -39,11 +39,6 @@ export default class extends AbstractView {
|
||||
}
|
||||
|
||||
async getHtml() {
|
||||
if (await client.isAuthentificate())
|
||||
{
|
||||
navigateTo("/home")
|
||||
return;
|
||||
}
|
||||
return `
|
||||
<div class=form>
|
||||
<label>Login</label>
|
||||
|
@ -1,13 +1,12 @@
|
||||
import { client, navigateTo } from "../../index.js";
|
||||
import AbstractView from "../AbstractView.js";
|
||||
import AbstractAuthentificateView from "../AbstractAuthentificateView.js";
|
||||
|
||||
export default class extends AbstractView
|
||||
export default class extends AbstractAuthentificateView
|
||||
{
|
||||
constructor(params) {
|
||||
super(params);
|
||||
this.setTitle("Logout");
|
||||
if (client.logged)
|
||||
client.logout();
|
||||
client.logout();
|
||||
navigateTo("/login")
|
||||
}
|
||||
}
|
@ -1,5 +1,5 @@
|
||||
import AbstractView from "../AbstractView.js";
|
||||
import { client, navigateTo } from "../../index.js";
|
||||
import AbstractUnAuthentificateView from "../AbstractUnAuthentificateView.js";
|
||||
|
||||
async function register()
|
||||
{
|
||||
@ -22,9 +22,9 @@ async function register()
|
||||
});
|
||||
}
|
||||
|
||||
export default class extends AbstractView {
|
||||
export default class extends AbstractUnAuthentificateView {
|
||||
constructor(params) {
|
||||
super(params);
|
||||
super(params, "/home");
|
||||
}
|
||||
|
||||
async postInit()
|
||||
@ -34,11 +34,6 @@ export default class extends AbstractView {
|
||||
}
|
||||
|
||||
async getHtml() {
|
||||
if (await client.isAuthentificate())
|
||||
{
|
||||
navigateTo("/home")
|
||||
return;
|
||||
}
|
||||
return `
|
||||
<div class=form>
|
||||
<label>Register</label>
|
||||
|
Loading…
Reference in New Issue
Block a user