class Employees{ constructor(){ this.name = "employees"; } static allowEdit(){ return userrights.has("employees.edit"); } static allowAddNew(){ return false; } static allowSuspend(){ return userrights.has("employees.suspend") } static allowViewEmployeeEntries(){ return userrights.has("employeesentries.view") } static allowEditEmployeeEntries(){ return userrights.has("employeesentries.edit") } static allowDeleteEmployeeEntries(){ return userrights.has("employeesentries.delete") } static allowFinishEmployeeEntries(){ return userrights.has("employeesentries.finish") } static allowViewUserTrainings(){ return userrights.has("trainingsemployees.view") } static GetExtraForView(data){ let retval = { top:"", bottom:"" } let suspendedText = getTranslation("suspend"); let suspended_new = 1; if(data.extraData.is_suspended !== undefined && data.extraData.is_suspended.length > 0 && data.extraData.is_suspended[0].is_suspended == true){ suspendedText = getTranslation("unsuspend"); suspended_new = 0; } let buttons = ``; if(this.allowSuspend()){ buttons += ``; //buttons += ``; } if(this.allowEditEmployeeEntries()){ buttons += ``; } if(this.allowViewUserTrainings()){ buttons += ``; } retval.bottom += `
${buttons}
`; if(this.allowViewEmployeeEntries() && data.extraData.file_entries !== undefined){ let entryTypes = System.getEmployeeEntryTypes(); retval.bottom += `
${getTranslation("employees_file")}
`; for(let i=0;i${type_name}
`; if(row.closed){ badges += `
${getTranslation("entry_finished")}
`; } let buttons = ``; if(!row.closed && this.allowFinishEmployeeEntries()){ buttons += ``; } if(this.allowDeleteEmployeeEntries()){ buttons += ``; } let temp = `

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

${badges}

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

${buttons}
`; if( i % 2 === 0){ temp += `
` } else{ temp = `
` + temp } retval.bottom += temp; } retval.bottom += `
`; } return retval; } static GetEdit(data={}){ let serviceno = null; if(data !== null){ if(data.extraData.serviceno !== undefined && data.extraData.serviceno !== null && data.extraData.serviceno.length > 0){ serviceno = data.extraData.serviceno[0].serviceno ?? System.getServiceNo(data.identifier ?? data.citizenid) } else{ serviceno = System.getServiceNo(data.identifier ?? data.citizenid); } } return { "serviceno": { "val" : serviceno ?? "" ,"type" : "text" ,isRow:true ,hideInEdit:false }, "firstname": { "val" : data.firstname ?? System.getFirstName(data.charinfo ?? "") ,"type" : "text" ,hideInEdit:true }, "lastname": { "val" : data.lastname ?? System.getLastName(data.charinfo ?? "") ,"type" : "text" ,"mandatory":true ,hideInEdit:true } ,"rank": { "val" : data.job_grade ?? System.getJobGrade(data.job) ,"type" : "dropdown" ,"mandatory":true ,isRow:true ,options:System.getRankOptions() ,hideInEdit:true } } } static GetColumns(){ return ["serviceno","name","rank_name","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())} `; } else if(key == "serviceno"){ return ` ${row[key] ?? System.getServiceNo(row.id)} `; } else if(key == "name"){ return ` ${System.buildEmployeeName(row[key])} `; } else if(key == "state"){ if(row[key] != ""){ return `
${getTranslation("state_" + row[key])}
`; } else{ return `` } } else if(key == "rank_name"){ let grade = -9999 try { if(typeof JSON.parse(row[key]) == "number"){ grade = row[key] } } catch (e) { grade = row[key] } if(grade == -9999){ grade = System.getJobGrade(row[key]); } return ` ${System.getLabelByRank(grade)} `; } else { return `${row[key]}`; } } }