2020-08-07 12:23:59 +02:00
|
|
|
// -- GESTION DE LA PAGE PERMETTANT DE SE DÉBONNER DE TOUS LES ENVOIS
|
|
|
|
|
|
|
|
/// Un token est transmis en paramètre de l'Url. Il a une validité limité dans le temps. Si le token est ok, il n'est pas nécessaire d'être connecté.
|
|
|
|
/// Dans le cas où il n'est plus valide, on peut proposer à l'utilisateur de se connecter à son compte pour se désabonner.
|
|
|
|
/// Si le token est ok, on valide enregistrement le désabonnement et affiche un message de confirmation
|
|
|
|
|
|
|
|
// Fichier de configuration côté client :
|
|
|
|
import { apiUrl, availableLangs, theme } from "../../config/instance.js";
|
|
|
|
const lang=availableLangs[0];
|
2020-10-07 12:29:31 +02:00
|
|
|
const { accountPage } = require("../../views/"+theme+"/config/"+lang+".js");
|
|
|
|
const { userRoutes, unsubscribeRoute } = require("../../config/users");
|
2020-08-07 12:23:59 +02:00
|
|
|
|
|
|
|
// Importation des fonctions utile au script :
|
|
|
|
import { getLocaly, removeLocaly, saveLocaly } from "./tools/clientstorage.js";
|
|
|
|
import { addElement } from "./tools/dom.js";
|
|
|
|
import { helloDev } from "./tools/everywhere.js";
|
|
|
|
import { getUrlParams } from "./tools/url.js";
|
2020-10-07 12:29:31 +02:00
|
|
|
import { checkSession, setSession } from "./tools/users.js";
|
2020-08-07 12:23:59 +02:00
|
|
|
|
|
|
|
// Dictionnaires :
|
2020-10-06 16:34:17 +02:00
|
|
|
const { serverError } = require("../../lang/"+lang+"/general");
|
|
|
|
const { unsubscriptionFail } = require("../../lang/"+lang+"/subscription");
|
2020-08-07 12:23:59 +02:00
|
|
|
|
|
|
|
const divResponse = document.getElementById("response");
|
|
|
|
|
|
|
|
helloDev();
|
|
|
|
|
|
|
|
const initialise = async () =>
|
|
|
|
{
|
|
|
|
try
|
2020-10-07 12:29:31 +02:00
|
|
|
{
|
|
|
|
const datas=getUrlParams();
|
|
|
|
if(datas && datas.t!==undefined)
|
|
|
|
{
|
|
|
|
const xhr = new XMLHttpRequest();
|
|
|
|
xhr.open("GET", apiUrl+userRoutes+unsubscribeRoute+datas.t);
|
|
|
|
xhr.onreadystatechange = function()
|
2020-08-07 12:23:59 +02:00
|
|
|
{
|
2020-10-07 12:29:31 +02:00
|
|
|
if (this.readyState == XMLHttpRequest.DONE)
|
2020-08-07 12:23:59 +02:00
|
|
|
{
|
2020-10-07 12:29:31 +02:00
|
|
|
let response=JSON.parse(this.responseText);
|
|
|
|
if (this.status === 200 && response.message != undefined)
|
|
|
|
addElement(divResponse, "p", response.message.replace("#URL", accountPage), "", ["success"]);
|
|
|
|
else
|
|
|
|
addElement(divResponse, "p", unsubscriptionFail.replace("#URL", accountPage), "", ["error"]);
|
2020-08-07 12:23:59 +02:00
|
|
|
}
|
|
|
|
}
|
2020-10-07 12:29:31 +02:00
|
|
|
xhr.send();
|
2020-08-07 12:23:59 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
catch(e)
|
|
|
|
{
|
2020-10-06 16:34:17 +02:00
|
|
|
addElement(divResponse, "p", serverError, "", ["error"]);
|
2020-08-07 12:23:59 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
initialise();
|