forked from Simnation/Main
118 lines
No EOL
3.3 KiB
JavaScript
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
|
|
}
|
|
}
|
|
}
|
|
} |