Files
wordRotator/src/client/js/Sites/DeleteWordsSite.js
2020-10-17 16:42:59 +02:00

64 lines
2.5 KiB
JavaScript

import {UserMenuAction, UserSite} from "cordova-sites-user-management/dist/client";
import view from "../../html/sites/deleteLevels.html"
import {WordRotatorBaseSite} from "./WordRotatorBaseSite";
import {App} from "cordova-sites/dist/client/js/App";
import {NavbarFragment} from "cordova-sites/dist/client/js/Context/Menu/NavbarFragment";
import {DataManager} from "cordova-sites/dist/client/js/DataManager";
export class DeleteWordsSite extends WordRotatorBaseSite {
constructor(siteManager) {
super(siteManager, view);
this.addDelegate(new UserSite(this, "admin"))
}
async onConstruct(args) {
let res = super.onConstruct(args);
this.words = (await DataManager.load("getDoubleUsedWordsAction"))["result"];
return res;
}
onViewLoaded() {
super.onViewLoaded();
let levelTemplate = this.findBy("#level-template");
let wordTemplate = this.findBy("#word-template");
let wordContainer = this.findBy("#word-container");
levelTemplate.id = null;
levelTemplate.remove();
wordTemplate.id = null;
wordTemplate.remove();
for (let k in this.words) {
let wordElem = wordTemplate.cloneNode(true);
wordElem.querySelector(".name").appendChild(document.createTextNode(k));
let levelContainer = wordElem.querySelector(".level-container");
for (let j = 0; j < this.words[k].length; j++) {
let level = this.words[k][j];
let levelElem = levelTemplate.cloneNode(true);
levelElem.querySelector(".id").appendChild(document.createTextNode(level["id"]));
levelElem.querySelector(".words").appendChild(document.createTextNode(level["words"]));
levelElem.querySelector(".positions").appendChild(document.createTextNode(level["rotations"]));
levelElem.querySelector(".delete-button").addEventListener("click", async () => {
let res = await DataManager.send("deleteLevel", {"levelId": level["id"]});
if (res["success"]) {
levelElem.remove();
}
});
levelContainer.appendChild(levelElem);
}
wordContainer.appendChild(wordElem);
}
}
}
App.addInitialization(app => {
NavbarFragment.defaultActions.push(new UserMenuAction("delete-levels", "admin", () => {
app.startSite(DeleteWordsSite);
}));
});