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 LogoutView from "./views/accounts/LogoutView.js";
|
||||||
|
|
||||||
import { Client } from "./api/client.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)
|
let client = new Client(location.protocol + "//" + location.host)
|
||||||
|
|
||||||
@ -64,6 +66,10 @@ const router = async (uri = "") => {
|
|||||||
await lastView.leavePage();
|
await lastView.leavePage();
|
||||||
|
|
||||||
const view = new match.route.view(getParams(match));
|
const view = new match.route.view(getParams(match));
|
||||||
|
|
||||||
|
if (view instanceof AbstractRedirectView && await view.redirect())
|
||||||
|
return 1;
|
||||||
|
|
||||||
lastView = view;
|
lastView = view;
|
||||||
|
|
||||||
let content = await view.getHtml();
|
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 AbstractAuthentificateView from "./AbstractAuthentificateView.js";
|
||||||
import { client, navigateTo } from "../index.js";
|
|
||||||
|
|
||||||
export default class extends AbstractView {
|
export default class extends AbstractAuthentificateView {
|
||||||
constructor(params) {
|
constructor(params) {
|
||||||
super(params);
|
super(params);
|
||||||
this.setTitle("Home");
|
this.setTitle("Home");
|
||||||
|
this.redirect_url = "/login"
|
||||||
}
|
}
|
||||||
|
|
||||||
async getHtml() {
|
async getHtml() {
|
||||||
if (await client.isAuthentificate() === false)
|
|
||||||
{
|
|
||||||
navigateTo("/login");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
return `
|
return `
|
||||||
<h1>HOME</h1>
|
<h1>HOME</h1>
|
||||||
<a href="/logout" class="nav__link" data-link>Logout</a>
|
<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 { client, navigateTo } from "../../index.js";
|
||||||
|
import AbstractUnAuthentificateView from "../AbstractUnAuthentificateView.js";
|
||||||
|
|
||||||
async function login()
|
async function login()
|
||||||
{
|
{
|
||||||
@ -27,9 +27,9 @@ async function login()
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
export default class extends AbstractView {
|
export default class extends AbstractUnAuthentificateView {
|
||||||
constructor(params) {
|
constructor(params) {
|
||||||
super(params);
|
super(params, "/home");
|
||||||
}
|
}
|
||||||
|
|
||||||
async postInit()
|
async postInit()
|
||||||
@ -39,11 +39,6 @@ export default class extends AbstractView {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async getHtml() {
|
async getHtml() {
|
||||||
if (await client.isAuthentificate())
|
|
||||||
{
|
|
||||||
navigateTo("/home")
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
return `
|
return `
|
||||||
<div class=form>
|
<div class=form>
|
||||||
<label>Login</label>
|
<label>Login</label>
|
||||||
|
@ -1,12 +1,11 @@
|
|||||||
import { client, navigateTo } from "../../index.js";
|
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) {
|
constructor(params) {
|
||||||
super(params);
|
super(params);
|
||||||
this.setTitle("Logout");
|
this.setTitle("Logout");
|
||||||
if (client.logged)
|
|
||||||
client.logout();
|
client.logout();
|
||||||
navigateTo("/login")
|
navigateTo("/login")
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import AbstractView from "../AbstractView.js";
|
|
||||||
import { client, navigateTo } from "../../index.js";
|
import { client, navigateTo } from "../../index.js";
|
||||||
|
import AbstractUnAuthentificateView from "../AbstractUnAuthentificateView.js";
|
||||||
|
|
||||||
async function register()
|
async function register()
|
||||||
{
|
{
|
||||||
@ -22,9 +22,9 @@ async function register()
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
export default class extends AbstractView {
|
export default class extends AbstractUnAuthentificateView {
|
||||||
constructor(params) {
|
constructor(params) {
|
||||||
super(params);
|
super(params, "/home");
|
||||||
}
|
}
|
||||||
|
|
||||||
async postInit()
|
async postInit()
|
||||||
@ -34,11 +34,6 @@ export default class extends AbstractView {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async getHtml() {
|
async getHtml() {
|
||||||
if (await client.isAuthentificate())
|
|
||||||
{
|
|
||||||
navigateTo("/home")
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
return `
|
return `
|
||||||
<div class=form>
|
<div class=form>
|
||||||
<label>Register</label>
|
<label>Register</label>
|
||||||
|
Loading…
Reference in New Issue
Block a user