class Files{ constructor(){ this.name = "files"; } static allowAddNew(){ return userrights.has("files.edit") && !sync.isActive("files"); } static allowEdit(){ return userrights.has("files.edit"); } static allowDelete(ingoreSync=false){ return userrights.has("files.delete") && (!sync.isActive("files") || ingoreSync); } static allowClose(){ return userrights.has("files.close"); } static allowBlacken(){ return userrights.has("files.blacken"); } static allowShare(){ return userrights.has("files.share"); } static allowLicenses(){ return userrights.has("files.licenses"); } static allowFinishmanhunt(){ return userrights.has("manhunt.finish"); } static allowFinishEntry(){ return userrights.has("filesentry.finish"); } static GetColumns(){ if(currentSystem == "police"){ return ["name","alias","phone","shared","state","id"]; } else if(currentSystem == "medic"){ return ["name","phone","shared","state","id"]; } } static GetPropertyHTML(data){ if(data.extraData.properties == null || data.extraData.properties == undefined){ return ""; } else{ let tbody = ``; for(let i=0; i ${row.label} `; } if(this.allowDelete(true) && allowButtons == true){ buttons += ``; } let content = row.content.replace(/\n/g,"
"); if(row.crimeData.length > 0){ content+="

"; content+=`${getTranslation("fine_crime")}:
`; let tempContent = ""; for(let j=0;j"); let crime = row.crimeData[j]; if(crime["_deleted"] == 1){ tempContent += ""; } tempContent+=crime.amount + "x " + crime.lawbook_shortname + " $" + crime.paragraph +" - "+crime.crime; if(crime["_deleted"] == 1){ tempContent += ""; } } content+=tempContent; } let temp = `

${row.file_entry_id}

${badges}

${System.buildEmployeeName(row.creator)} - ${System.formatTimestamp(row.creationdate)}

${content}

${getTranslation("fine")}: ${row.fine}

${getTranslation("detention_time")}: ${row.detention_time}

${buttons}
`; if( i % 2 === 0){ temp += `
` } else{ temp = `
` + temp } html += temp; } html += ` `; } } else if(data.fromsystem == "medic"){ if(data.extraData.file_entries !== undefined){ let injuryTypes = [ "head" ,"left_shoulder" ,"left_arm" ,"left_hand" ,"right_shoulder" ,"right_arm" ,"right_hand" ,"chest" ,"stomach" ,"left_leg" ,"left_foot" ,"right_leg" ,"right_foot" ]; html += `
${getTranslation("fileentry.overview")}
`; for(let i=0;i${getTranslation("entry_finished")}
`; } if(row.needs_follow_up_treatment){ badges += `
${getTranslation("needs_follow_up_treatment")}
`; } let buttons = ``; if(!row.closed && this.allowFinishEntry() && allowButtons == true){ buttons += ``; } if(this.allowDelete(true) && allowButtons == true){ buttons += ``; } let knownInjuries = ""; for(let i=0; i- ${getTranslation(injuryTypes[i])} `; } } if(knownInjuries != ""){ knownInjuries = `
    ${knownInjuries}
`; } let temp = `

${row.file_entry_id}

${badges}

${System.buildEmployeeName(row.creator)} - ${System.formatTimestamp(row.creationdate)}

${row.content.replace(/\n/g,"
")}

${getTranslation("intensity_of_wounds")}: ${row.intensity_of_wounds}

${getTranslation("type_of_bleeding")}: ${row.type_of_bleeding}

${getTranslation("treatment")}: ${row.treatment}

${getTranslation("injuries")}
${knownInjuries}
${row.injury_summary.replace(/\n/g,"
")}
${buttons}
`; if( i % 2 === 0){ temp += `
` } else{ temp = `
` + temp } html += temp; } html += `
`; } } let retval = { "html": html, "activeWantingRow": activeWantingRow }; return retval; } static GetLicensesHTML(data){ if(this.allowLicenses()){ let dropdown = ``; let table = ``; if(!sync.isActive("files_licenses") || currentSystem == "medic"){ if(data.extraData.possible_licenses !== undefined && data.extraData.possible_licenses.length>0){ let optionsHtml = ``; for(let i=0; i${data.extraData.possible_licenses[i].name}`; } dropdown = `
`; } } if(data.extraData.given_licenses !== undefined && data.extraData.given_licenses.length>0){ let tbody = ``; for(let i=0; i ${row.name} `; } else{ tbody += ` ${row.name} `; } tbody += `` } table = ` ${tbody}
${getTranslation("name")}
`; } return `
${getTranslation("licenses.overview")}
${dropdown} ${table}
` } } static GetExtraForView(data){ let retval = { top:"", bottom:"", initTableButtons:false, } if(currentSystem == "police"){ let blackenTxt = getTranslation("blacken"); let shareTxt = getTranslation("share"); let closeTxt = getTranslation("close"); let blacken_new = 1; let closed_new = 1; let shared_new = 1; if(data.blackend){ blackenTxt = getTranslation("deblacken"); blacken_new = 0; } if(data.closed){ closeTxt = getTranslation("reopen"); closed_new = 0; } if(data.is_shared){ shareTxt = getTranslation("unshare"); shared_new = 0; } let buttons = ``; let cnt = 0; if(this.allowEdit()){ cnt++; //buttons += ``; buttons += ``; } if(this.allowBlacken()){ cnt++; buttons += ``; } if(this.allowClose()){ cnt++; buttons += ``; } if(this.allowShare()){ cnt++; buttons += ``; } retval.bottom += `
${buttons}
`; let activeWantingRow = null; retval.bottom += this.GetLicensesHTML(data); retval.bottom += this.GetPropertyHTML(data); if(RegVehicle.allowView()){ if(data.extraData.vehicles !== undefined){ retval.bottom += `
${getTranslation("regvehicle.overview")}
${System.GetTable(RegVehicle, data.extraData.vehicles)}
`; retval.initTableButtons = true } } let temp = this.GetFileEntryHTML(data, true) retval.bottom += temp.html; activeWantingRow = temp.activeWantingRow; if(activeWantingRow !== null){ let btn = ``; if(this.allowFinishmanhunt()){ btn = ``; } retval.top = `

${getTranslation("vehicle_wanted")}

${System.buildEmployeeName(activeWantingRow.creator)} - ${System.formatTimestamp(activeWantingRow.creationdate)}

${activeWantingRow.content.replace(/\n/g,"
")}

${btn}
`; } } else if(currentSystem == "medic"){ let blackenTxt = getTranslation("blacken"); let closeTxt = getTranslation("close"); let blacken_new = 1; let closed_new = 1; let shareTxt = getTranslation("share"); let shared_new = 1; if(data.blackend){ blackenTxt = getTranslation("deblacken"); blacken_new = 0; } if(data.closed){ closeTxt = getTranslation("reopen"); closed_new = 0; } if(data.is_shared){ shareTxt = getTranslation("unshare"); shared_new = 0; } let buttons = ``; let cnt = 0; if(this.allowEdit()){ cnt++; buttons += ``; } if(this.allowBlacken()){ cnt++; buttons += ``; } if(this.allowClose()){ cnt++; buttons += ``; } if(this.allowShare()){ cnt++; buttons += ``; } retval.bottom += `
${buttons}
`; retval.bottom += this.GetLicensesHTML(data); let temp = this.GetFileEntryHTML(data, true) retval.bottom += temp.html; } return retval; } static TableDataCreate(row, key){ if(key == "state"){ let badges = ``; if(row[key] != ""){ badges += `
${getTranslation("tag_" + row[key])}
`; } if(row.blackend){ badges += `
${getTranslation("tag_blackend")}
`; } if(row.closed){ badges += `
${getTranslation("tag_closed")}
`; } return `${badges}`; } else if(key == "id"){ let isWantedButton = ``; if(currentSystem == "police"){ if(this.allowEdit()){ isWantedButton = Form.getIsWantedButton(row[key], this.name, row.state == "is_wanted"); } } return ` ${Form.getViewButtonIcon(row[key], this.name + ".view")} ${Form.getEditButtonIcon(row[key] , this.name + ".edit", this.allowEdit())} ${isWantedButton} ${Form.getDeleteButtonIcon(row[key], this.name , this.allowDelete())} `; } else if(key == "shared"){ if(row[key]){ return ` `; } else{ return ``; } } else{ return `${row[key]}`; } } static GetEdit(data = {}){ if(currentSystem == "police"){ return { "name": { "val" : data.name ?? "" ,"type" : "text" ,"mandatory":true } ,"alias": { "val" : data.alias ?? "" ,"type" : "text" ,"mandatory":true } ,"sex": { "val" : data.sex ?? "" ,"type" : "dropdown" ,"mandatory":true ,"options":[ {id:0, name:getTranslation("unknown")}, {id:1, name:getTranslation("male")}, {id:2, name:getTranslation("female")}, {id:3, name:getTranslation("diverse")} ] } ,"phone": { "val" : data.phone ?? "" ,"type" : "text" ,"mandatory":false } ,"size": { "val" : data.size ?? "" ,"type" : "number" ,"mandatory":false } ,"birth": { "val" : data.birth ?? "" ,"type" : "date" ,"mandatory":false } ,"eyecolor": { "val" : data.eyecolor ?? "" ,"type" : "text" ,"mandatory":false } ,"haircolor": { "val" : data.haircolor ?? "" ,"type" : "text" ,"mandatory":false } }; } else if(currentSystem == "medic"){ return { "name": { "val" : data.name ?? "" ,"type" : "text" ,"mandatory":true ,"isRow":true } ,"blood_type": { "val" : data.blood_type ?? "A" ,"type" : "dropdown" ,"mandatory":true ,options:[ {id:"A", name:"A+"}, {id:"A-", name:"A-"}, {id:"B", name:"B+"}, {id:"B-", name:"B-"}, {id:"AB", name:"AB+"}, {id:"AB-", name:"AB-"}, {id:"0", name:"0+"}, {id:"0-", name:"0-"}, ] } ,"sex": { "val" : data.sex ?? "" ,"type" : "dropdown" ,"mandatory":true ,"options":[ {id:0, name:getTranslation("unknown")}, {id:1, name:getTranslation("male")}, {id:2, name:getTranslation("female")}, {id:3, name:getTranslation("diverse")} ] } ,"phone": { "val" : data.phone ?? "" ,"type" : "text" ,"mandatory":false } ,"birth": { "val" : data.birth ?? "" ,"type" : "date" ,"mandatory":false } ,"size": { "val" : data.size ?? "" ,"type" : "number" ,"mandatory":false } ,"weight": { "val" : data.weight ?? "" ,"type" : "number" ,"mandatory":false } ,"allergies": { "val" : data.allergies ?? "" ,"type" : "textarea" ,"mandatory":false ,rows:3 } ,"known_illnesses": { "val" : data.known_illnesses ?? "" ,"type" : "textarea" ,"mandatory":false ,rows:3 } }; } } }