class CriminalComplaint{
constructor(){
this.name = "criminalcomplaint";
}
static allowAddNew(){
return userrights.has("criminalcomplaint.edit")
}
static allowEdit(){
return userrights.has("criminalcomplaint.edit")
}
static allowDelete(){
return userrights.has("criminalcomplaint.delete")
}
static GetColumns(){
return ["charge_from","perpetrator","state","id"]
}
static TableDataCreate(row, key){
if(key == "id"){
return `
${Form.getViewButtonIcon(row[key], this.name + ".view")}
${Form.getEditButtonIcon(row[key] , this.name + ".edit", this.allowEdit())}
${Form.getDeleteButtonIcon(row[key], this.name, this.allowDelete())}
| `;
}
else if(key == "state"){
let complaint = System.GetComplaintByID(row[key]);
return `
${complaint.name ?? ""}
| `;
}
else if(key == "charge_from" || key == "perpetrator"){
let val = row[key];
if(val == ""){
val = getTranslation("unknown");
}
return `
${val}
| `;
}
else{
return `${row[key]} | `;
}
}
static GetEdit(data={}){
let filesOptions = [
{"id":-1, "name":getTranslation("unknown")}
,{"id":-2, "name":getTranslation("new_file"), "show_extra_field":true}
];
if(sync.isActive("files")){
filesOptions = [
{"id":-1, "name":getTranslation("unknown")}
];
}
let perpetrators = [...filesOptions, ...data.extraData.perpetrators];
let charge_froms = [...filesOptions, ...data.extraData.charge_froms];
return {
"charge_from": {
"val" : data.charge_from_id ?? "-1"
,"type" : "searchdropdown"
,"mandatory":true
,options:charge_froms
}
,"perpetrator": {
"val" : data.perpetrator_id ?? "-1"
,"type" : "searchdropdown"
,"mandatory":true
,options:perpetrators
}
,"perpetrator_description":{
"val" : data.perpetrator_description ?? ""
,"type" : "textarea"
,"isRow": true
,"mandatory":true
,autogrow: false
,rows:3
}
,"state": {
"val" : data.state ?? ""
,"type" : "dropdown"
,"mandatory":true
,"isRow":true
,options:System.GetCompaintStateOptions()
}
,"act_of_crime":{
"val" : data.act_of_crime ?? ""
,"type" : "textarea"
,"isRow": true
,"mandatory":false
,autogrow: false
,rows:3
}
,"notes":{
"val" : data.notes ?? ""
,"type" : "textarea"
,"isRow": true
,"mandatory":false
,autogrow: false
,rows:3
}
}
}
}