64 lines
2.5 KiB
JavaScript
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);
|
|
}));
|
|
}); |