1
0
Fork 0
forked from Simnation/Main
Main/resources/[jobs]/[mdt]/myEmergency/html/js/modules/LawBooks.js
2025-08-14 13:21:51 +02:00

118 lines
No EOL
3.3 KiB
JavaScript

class LawBooks{
constructor(){
this.name = "lawbooks";
}
static allowAddNew(){
return userrights.has("lawbooks.edit");
}
static allowEdit(){
return userrights.has("lawbooks.edit");
}
static allowDelete(){
return userrights.has("lawbooks.delete");
}
static isCustom(){
return true;
}
static CreateCustom(data, isEditMode = false){
let retval = ``;
if(!isEditMode){
document.getElementById("currentpage-content").innerHTML = Form.overviewHeadline(this.name.toLowerCase() + ".add", false, this.allowAddNew());
}
for(let i=0; i<data.data.length; i++){
let row = data.data[i];
let buttons = ``;
let mbClass = "";
if(!isEditMode){
if(this.allowAddNew()){
buttons += `<button type="button" class="btn btn-sm btn-success lawbooks-add-crime" data-parentID="${row.id}">${getTranslation("add_crime")}</button>`;
}
if(this.allowEdit()){
buttons += `<button type="button" class="btn btn-sm btn-warning lawbooks-edit" data-parentID="${row.id}">${getTranslation("edit")}</button>`;
}
if(this.allowDelete()){
buttons += `<button type="button" class="btn btn-sm btn-error" onclick="Form.openDeleteModal(${row.id}, 'lawbooks')">${getTranslation("delete")}</button>`;
}
}
if(buttons != ""){
mbClass = "mb-2";
}
if(!isEditMode || row.laws.length > 0){
retval += `
<div class="collapse collapse-arrow border border-base-300 bg-base-100 rounded-box mt-4">
<input type="checkbox" />
<div class="collapse-title text-xl font-medium">
${row.short_name} - ${row.name}
</div>
<div class="collapse-content">
<div class="${mbClass}">
${buttons}
</div>
${System.GetTable(System.getClassByName("lawbooklaws"), row.laws, isEditMode)}
</div>
</div>
`;
}
}
if(!isEditMode){
document.getElementById("currentpage-content").innerHTML += retval;
Form.initTableButtons();
Array.from(document.querySelectorAll(".lawbooks-add-crime")).forEach(function(button){
button.onclick = function(){
let staticData = {
data:{
lawbook_id:this.getAttribute("data-parentID")
}
}
loadPage("lawbooklaws.add",-1,"false", staticData)
}
});
Array.from(document.querySelectorAll(".lawbooks-edit")).forEach(function(button){
button.onclick = function(){
loadPage("lawbooks.edit",this.getAttribute("data-parentID"),"false", {})
}
});
}
else{
return retval;
}
}
static GetEdit(data={}){
return {
"name": {
"val" : data.name ?? ""
,"type" : "text"
,"mandatory":true
,"isRow":true
}
,"short_name": {
"val" : data.short_name ?? ""
,"type" : "text"
,"mandatory":true
,"isRow":true
}
}
}
}