2024-04-22 10:02:43 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
*/
|
|
|
|
async function update_nav(
|
|
|
|
options : {
|
|
|
|
mode ?: string;
|
|
|
|
} = {}
|
|
|
|
) : Promise<void>
|
|
|
|
{
|
|
|
|
options = Object.assign(
|
|
|
|
{
|
2024-04-26 11:03:10 +02:00
|
|
|
"mode": (
|
|
|
|
(await _espe.backend.logged_in())
|
|
|
|
? "logged_in"
|
|
|
|
: "logged_out"
|
|
|
|
),
|
2024-04-22 10:02:43 +02:00
|
|
|
},
|
|
|
|
options
|
|
|
|
);
|
|
|
|
let dom_body = document.querySelector("body");
|
|
|
|
if (options.mode === null) {
|
|
|
|
dom_body.removeAttribute("rel");
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
dom_body.setAttribute("rel", options.mode);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
*/
|
|
|
|
function setup_nav(
|
|
|
|
) : void
|
|
|
|
{
|
|
|
|
const entries : Array<
|
|
|
|
{
|
|
|
|
location : lib_plankton.zoo_page.type_location;
|
|
|
|
label : string;
|
|
|
|
classes : Array<string>;
|
|
|
|
}
|
|
|
|
> = [
|
|
|
|
{
|
|
|
|
"location": {"name": "login", "parameters": {}},
|
|
|
|
"label": "Anmelden",
|
|
|
|
"classes": ["logged_out"],
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"location": {"name": "logout", "parameters": {}},
|
|
|
|
"label": "Abmelden",
|
|
|
|
"classes": ["logged_in"],
|
|
|
|
},
|
|
|
|
{
|
2024-04-30 01:32:40 +02:00
|
|
|
"location": {"name": "list", "parameters": {}},
|
|
|
|
"label": "Liste",
|
2024-04-22 10:02:43 +02:00
|
|
|
"classes": ["logged_in"],
|
|
|
|
},
|
|
|
|
{
|
2024-04-30 01:32:40 +02:00
|
|
|
"location": {"name": "create", "parameters": {}},
|
|
|
|
"label": "Anlegen",
|
2024-04-22 10:02:43 +02:00
|
|
|
"classes": ["logged_in"],
|
|
|
|
},
|
|
|
|
];
|
|
|
|
|
|
|
|
let dom_ul : HTMLElement = document.querySelector("nav > ul");
|
|
|
|
entries.forEach(
|
|
|
|
entry => {
|
|
|
|
let dom_li : HTMLElement = document.createElement("li");
|
|
|
|
{
|
|
|
|
let dom_a : HTMLElement = document.createElement("a");
|
|
|
|
dom_a.textContent = entry.label;
|
|
|
|
dom_a.setAttribute("href", lib_plankton.zoo_page.encode(entry.location));
|
|
|
|
entry.classes.forEach(class_ => {dom_a.classList.add(class_);});
|
|
|
|
dom_li.appendChild(dom_a);
|
|
|
|
}
|
|
|
|
dom_ul.appendChild(dom_li);
|
|
|
|
}
|
|
|
|
);
|
|
|
|
update_nav();
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
*/
|
|
|
|
async function main(
|
|
|
|
) : Promise<void>
|
|
|
|
{
|
2024-04-22 10:24:38 +02:00
|
|
|
await _espe.conf.load();
|
2024-04-30 14:18:07 +02:00
|
|
|
|
2024-04-22 10:24:38 +02:00
|
|
|
await _espe.backend.init();
|
2024-04-30 14:18:07 +02:00
|
|
|
|
|
|
|
await lib_plankton.translate.initialize(
|
|
|
|
{
|
|
|
|
"verbosity": 1,
|
|
|
|
"packages": [
|
|
|
|
JSON.parse(await lib_plankton.file.read("data/localization/deu.loc.json")),
|
2024-04-30 14:46:10 +02:00
|
|
|
JSON.parse(await lib_plankton.file.read("data/localization/eng.loc.json")),
|
2024-04-30 14:18:07 +02:00
|
|
|
],
|
2024-04-30 14:46:10 +02:00
|
|
|
"order": ["deu", "eng"],
|
2024-04-30 14:18:07 +02:00
|
|
|
"autopromote": false,
|
|
|
|
}
|
|
|
|
);
|
|
|
|
|
2024-04-22 10:02:43 +02:00
|
|
|
await lib_plankton.zoo_page.init(
|
|
|
|
document.querySelector("main"),
|
|
|
|
{
|
|
|
|
"fallback": {"name": "index", "parameters": {}},
|
|
|
|
}
|
|
|
|
);
|
2024-04-30 14:18:07 +02:00
|
|
|
|
2024-04-24 08:33:22 +02:00
|
|
|
// set title
|
|
|
|
document.querySelector("header > h1").textContent = _espe.conf.get().settings.title;
|
2024-05-01 09:53:59 +02:00
|
|
|
document.querySelector("title").textContent = _espe.conf.get().settings.title;
|
2024-04-30 14:18:07 +02:00
|
|
|
|
2024-04-22 10:02:43 +02:00
|
|
|
setup_nav();
|
2024-04-30 14:18:07 +02:00
|
|
|
|
2024-04-22 10:02:43 +02:00
|
|
|
lib_plankton.zoo_page.start();
|
|
|
|
}
|