{"version":3,"file":"list-Q2RdR2oe.js","sources":["../../../app/frontend/entrypoints/controllers/teams/time_entry_committed/overview/list.ts"],"sourcesContent":["import jQuery from 'jquery/dist/jquery';\nimport * as bootstrap from 'bootstrap'\nimport Utils from '../../../../utils'\nimport DefaultController from \"../../../defaultController\";\nimport TimeEntryCommittedEntity from \"../entity\";\n\nexport default class TimeEntryCommittedList extends DefaultController {\n tableElem: any;\n datatable: any;\n private editModal: any;\n\n async init() {\n this.entity = \"time_entry_committeds\";\n this.tableElem = jQuery('.datatables-users')\n this.editModal = new bootstrap.Modal((document.querySelector(\"#showTimeEntryCommitted\") as HTMLElement));\n this.createTable();\n await super.init();\n }\n\n getEntityData(elem: any) {\n return TimeEntryCommittedEntity.getEntityData(elem)\n }\n\n bindListeners() {\n this.tableElem.delegate(\".edit-record\", \"click\", async (e: any) => {\n const id = e.currentTarget.getAttribute(\"data-id\")\n const requestData = await Utils.entity.get(id, this.entity)\n if (requestData.status === 200) {\n const data = requestData.data[0]\n const form = (document.querySelector(\"#showTimeEntryCommittedForm\") as HTMLFormElement);\n await Utils.updateElements(data, '', form)\n const oldConfig = Utils.timeTrack.generateList(data.config || []);\n const oldOverview = Utils.timeTrack.generateOverview(data.working, data.planned, data.pause, data.absences);\n this.editModal._element.querySelector(\"#time_entry_committed_old_config .time_entry_config\").innerHTML = oldConfig;\n this.editModal._element.querySelector(\"#time_entry_committed_old_config .timeline-overview\").innerHTML = oldOverview;\n if (data.status === \"CORRECT_REQUESTED\") {\n\n this.editModal._element.querySelector(\"#time_entry_committed_messages\").classList.remove(\"col-6\");\n this.editModal._element.querySelector(\"#time_entry_committed_new_config\").classList.remove(\"d-none\");\n this.editModal._element.querySelector(\"#time_entry_committed_messages\").classList.add(\"col-12\");\n\n const newConfig = Utils.timeTrack.generateList(data.config_new_calculated.config)\n const newOverview = Utils.timeTrack.generateOverview(data.config_new_calculated.working, data.config_new_calculated.planned, data.config_new_calculated.pause, data.absences);\n this.editModal._element.querySelector(\"#time_entry_committed_new_config .time_entry_config\").innerHTML = newConfig;\n this.editModal._element.querySelector(\"#time_entry_committed_new_config .timeline-overview\").innerHTML = newOverview;\n\n this.editModal._element.querySelector(\"#time_entry_committed_config\").value = JSON.stringify(data.config_new_calculated);\n\n Utils.timeTrack.liveEdit(this.editModal._element.querySelector(\"#time_entry_committed_new_config .time_entry_config\"), new Date(Date.parse(data.date)));\n } else {\n\n this.editModal._element.querySelector(\"#time_entry_committed_messages\").classList.add(\"col-6\");\n this.editModal._element.querySelector(\"#time_entry_committed_new_config\").classList.add(\"d-none\");\n this.editModal._element.querySelector(\"#time_entry_committed_messages\").classList.remove(\"col-12\");\n let html = '';\n data.reasoning.forEach((reason: any) => {\n let message = ''\n if (reason[\"key\"] === \"MAX_HOURS_EXCEEDED\") {\n message = `Maximale Arbeitszeit überschritten.
${Utils.translate(\"timetrack.expected\")}: ${Utils.msToHMS(parseInt(reason[\"expected\"]) * 1000)}
${Utils.translate(\"timetrack.actual\")}: ${Utils.msToHMS(parseInt(reason[\"actual\"]) * 1000)}`\n } else if (reason[\"key\"] === \"STAMP_TOO_EARLY\" || reason[\"key\"] === \"STAMP_TOO_LATE\") {\n message = `${Utils.translate(`timetrack.${reason[\"key\"].toLowerCase()}`)}
${Utils.translate(\"timetrack.expected\")}: ${reason[\"expected\"]}
${Utils.translate(\"timetrack.actual\")}: ${reason[\"actual\"]}`\n }\n html += `
${message}
`\n })\n this.editModal._element.querySelector(\"#time_entry_committed_messages .client_messages\").innerHTML = html;\n Utils.timeTrack.liveEdit(this.editModal._element.querySelector(\"#time_entry_committed_old_config .time_entry_config\"), new Date(Date.parse(data.date)));\n }\n this.editModal.show();\n }\n });\n (document.querySelector(\"#showTimeEntryCommittedForm\") as HTMLFormElement).addEventListener(\"submit\", async (e) => {\n e.preventDefault();\n const mode = (e.submitter as HTMLButtonElement).getAttribute(\"data-mode\");\n const elem = document.querySelector(\"#showTimeEntryCommittedForm\") as HTMLFormElement;\n const valid = elem.checkValidity();\n console.log(\"mode\", mode)\n if (valid) {\n const r = await Utils.entity.upsert({...this.getEntityData(elem), status: mode, reasoning: []}, this.entity)\n if (r.status === 200) {\n await this.datatable.ajax.reload();\n this.editModal.hide();\n this.toastr.success(`${Utils.translate('time_entry_committed.name')} ${Utils.translate('generic.messages.created')}`, `${Utils.translate('generic.success')}`)\n }\n }\n });\n }\n\n createTable() {\n this.datatable = new DataTable(this.tableElem, {\n initComplete: () => {\n this.tableElem.closest(\".card\").find(\".loading-body\").addClass(\"d-none\")\n this.tableElem.closest(\".card\").find(\".card-datatable\").removeClass(\"d-none\")\n },\n ajax: `/api/v1/time_entry_committeds`,\n columns: [\n {data: 'date'},\n {data: 'uuid'},\n {data: 'status'},\n {data: 'uuid'}\n ],\n columnDefs: [\n {\n targets: 0,\n render: (data: any, type: any, full: any, meta: any) => {\n return `${data}${new Date(Date.parse(data)).toLocaleDateString()}`;\n },\n },\n {\n targets: 1,\n render: (data: any, type: any, full: any, meta: any) => {\n return full.user.name;\n },\n },\n {\n targets: 2,\n render: (data: any, type: any, full: any, meta: any) => {\n if (data === \"PENDING\") {\n return \"Erfordert Genehmigung\"\n }else if (data === \"CORRECT_REQUESTED\") {\n return \"Änderung angefragt\"\n }\n },\n },\n {\n targets: 3,\n searchable: false,\n orderable: false,\n render: (data: any, type: any, full: any, meta: any) => {\n return `
\n \n \n \n
`\n },\n }\n ],\n processing: true,\n dom:\n '<\"row me-2 align-items-center\"' +\n '<\"col-md-2\"<\"me-3 m-3\"l>>' +\n '<\"col-md-10\"<\"dt-action-buttons text-xl-end text-lg-start text-md-end text-start d-flex align-items-center justify-content-end flex-md-row flex-column mb-3 mb-md-0\"fB>>' +\n '>t' +\n '<\"row mx-2 align-items-center justify-content-between\"' +\n '<\"col-6\"i>' +\n '<\"col-2 mt-3\"p>' +\n '>',\n\n language: {\n sLengthMenu: '_MENU_',\n search: '',\n searchPlaceholder: `${Utils.translate('generic.search')}...`,\n \"zeroRecords\": `${Utils.translate('generic.datatable.no_results')}`,\n \"emptyTable\": `${Utils.translate('generic.datatable.no_results')}`,\n \"paginate\": {\n \"first\": `${Utils.translate('generic.datatable.pagination.first')}`,\n \"last\": `${Utils.translate('generic.datatable.pagination.last')}`,\n \"next\": `${Utils.translate('generic.datatable.pagination.next')}`,\n \"previous\": `${Utils.translate('generic.datatable.pagination.previous')}`\n },\n \"info\": `${Utils.translate('generic.datatable.info.info')}`,\n \"infoEmpty\": `${Utils.translate('generic.datatable.info.empty')}`,\n \"infoFiltered\": `${Utils.translate('generic.datatable.info.filtered')}`,\n },\n buttons: [\n ]\n });\n }\n\n}"],"names":["bootstrap.Modal"],"mappings":";;;;;;;;;AAMA,MAAqB,+BAA+B,kBAAkB;AAAA,EAKlE,MAAM,OAAO;AACT,SAAK,SAAS;AACT,SAAA,YAAY,OAAO,mBAAmB;AAC3C,SAAK,YAAY,IAAIA,MAAiB,SAAS,cAAc,yBAAyB,CAAiB;AACvG,SAAK,YAAY;AACjB,UAAM,MAAM;EAChB;AAAA,EAEA,cAAc,MAAW;AACd,WAAA,yBAAyB,cAAc,IAAI;AAAA,EACtD;AAAA,EAEA,gBAAgB;AACZ,SAAK,UAAU,SAAS,gBAAgB,SAAS,OAAO,MAAW;AAC/D,YAAM,KAAK,EAAE,cAAc,aAAa,SAAS;AACjD,YAAM,cAAc,MAAM,MAAM,OAAO,IAAI,IAAI,KAAK,MAAM;AACtD,UAAA,YAAY,WAAW,KAAK;AACtB,cAAA,OAAO,YAAY,KAAK,CAAC;AACzB,cAAA,OAAQ,SAAS,cAAc,6BAA6B;AAClE,cAAM,MAAM,eAAe,MAAM,IAAI,IAAI;AACzC,cAAM,YAAY,MAAM,UAAU,aAAa,KAAK,UAAU,CAAA,CAAE;AAC1D,cAAA,cAAc,MAAM,UAAU,iBAAiB,KAAK,SAAS,KAAK,SAAS,KAAK,OAAO,KAAK,QAAQ;AAC1G,aAAK,UAAU,SAAS,cAAc,qDAAqD,EAAE,YAAY;AACzG,aAAK,UAAU,SAAS,cAAc,qDAAqD,EAAE,YAAY;AACrG,YAAA,KAAK,WAAW,qBAAqB;AAErC,eAAK,UAAU,SAAS,cAAc,gCAAgC,EAAE,UAAU,OAAO,OAAO;AAChG,eAAK,UAAU,SAAS,cAAc,kCAAkC,EAAE,UAAU,OAAO,QAAQ;AACnG,eAAK,UAAU,SAAS,cAAc,gCAAgC,EAAE,UAAU,IAAI,QAAQ;AAE9F,gBAAM,YAAY,MAAM,UAAU,aAAa,KAAK,sBAAsB,MAAM;AAChF,gBAAM,cAAc,MAAM,UAAU,iBAAiB,KAAK,sBAAsB,SAAS,KAAK,sBAAsB,SAAS,KAAK,sBAAsB,OAAO,KAAK,QAAQ;AAC5K,eAAK,UAAU,SAAS,cAAc,qDAAqD,EAAE,YAAY;AACzG,eAAK,UAAU,SAAS,cAAc,qDAAqD,EAAE,YAAY;AAEpG,eAAA,UAAU,SAAS,cAAc,8BAA8B,EAAE,QAAQ,KAAK,UAAU,KAAK,qBAAqB;AAEvH,gBAAM,UAAU,SAAS,KAAK,UAAU,SAAS,cAAc,qDAAqD,GAAG,IAAI,KAAK,KAAK,MAAM,KAAK,IAAI,CAAC,CAAC;AAAA,QAAA,OACnJ;AAEH,eAAK,UAAU,SAAS,cAAc,gCAAgC,EAAE,UAAU,IAAI,OAAO;AAC7F,eAAK,UAAU,SAAS,cAAc,kCAAkC,EAAE,UAAU,IAAI,QAAQ;AAChG,eAAK,UAAU,SAAS,cAAc,gCAAgC,EAAE,UAAU,OAAO,QAAQ;AACjG,cAAI,OAAO;AACN,eAAA,UAAU,QAAQ,CAAC,WAAgB;AACpC,gBAAI,UAAU;AACV,gBAAA,OAAO,KAAK,MAAM,sBAAsB;AACxC,wBAAU,6CAA6C,MAAM,UAAU,oBAAoB,CAAC,KAAK,MAAM,QAAQ,SAAS,OAAO,UAAU,CAAC,IAAI,GAAI,CAAC,UAAU,MAAM,UAAU,kBAAkB,CAAC,KAAK,MAAM,QAAQ,SAAS,OAAO,QAAQ,CAAC,IAAI,GAAI,CAAC;AAAA,YAAA,WAC9O,OAAO,KAAK,MAAM,qBAAqB,OAAO,KAAK,MAAM,kBAAkB;AAClF,wBAAU,GAAG,MAAM,UAAU,aAAa,OAAO,KAAK,EAAE,YAAa,CAAA,EAAE,CAAC,UAAU,MAAM,UAAU,oBAAoB,CAAC,KAAK,OAAO,UAAU,CAAC,UAAU,MAAM,UAAU,kBAAkB,CAAC,KAAK,OAAO,QAAQ,CAAC;AAAA,YACpN;AACA,oBAAQ,gDAAgD,OAAO;AAAA,UAAA,CAClE;AACD,eAAK,UAAU,SAAS,cAAc,iDAAiD,EAAE,YAAY;AACrG,gBAAM,UAAU,SAAS,KAAK,UAAU,SAAS,cAAc,qDAAqD,GAAG,IAAI,KAAK,KAAK,MAAM,KAAK,IAAI,CAAC,CAAC;AAAA,QAC1J;AACA,aAAK,UAAU;MACnB;AAAA,IAAA,CACH;AACA,aAAS,cAAc,6BAA6B,EAAsB,iBAAiB,UAAU,OAAO,MAAM;AAC/G,QAAE,eAAe;AACjB,YAAM,OAAQ,EAAE,UAAgC,aAAa,WAAW;AAClE,YAAA,OAAO,SAAS,cAAc,6BAA6B;AAC3D,YAAA,QAAQ,KAAK;AACX,cAAA,IAAI,QAAQ,IAAI;AACxB,UAAI,OAAO;AACP,cAAM,IAAI,MAAM,MAAM,OAAO,OAAO,EAAC,GAAG,KAAK,cAAc,IAAI,GAAG,QAAQ,MAAM,WAAW,CAAE,EAAA,GAAG,KAAK,MAAM;AACvG,YAAA,EAAE,WAAW,KAAK;AACZ,gBAAA,KAAK,UAAU,KAAK,OAAO;AACjC,eAAK,UAAU;AACf,eAAK,OAAO,QAAQ,GAAG,MAAM,UAAU,2BAA2B,CAAC,IAAI,MAAM,UAAU,0BAA0B,CAAC,IAAI,GAAG,MAAM,UAAU,iBAAiB,CAAC,EAAE;AAAA,QACjK;AAAA,MACJ;AAAA,IAAA,CACH;AAAA,EACL;AAAA,EAEA,cAAc;AACV,SAAK,YAAY,IAAI,UAAU,KAAK,WAAW;AAAA,MAC3C,cAAc,MAAM;AACX,aAAA,UAAU,QAAQ,OAAO,EAAE,KAAK,eAAe,EAAE,SAAS,QAAQ;AAClE,aAAA,UAAU,QAAQ,OAAO,EAAE,KAAK,iBAAiB,EAAE,YAAY,QAAQ;AAAA,MAChF;AAAA,MACA,MAAM;AAAA,MACN,SAAS;AAAA,QACL,EAAC,MAAM,OAAM;AAAA,QACb,EAAC,MAAM,OAAM;AAAA,QACb,EAAC,MAAM,SAAQ;AAAA,QACf,EAAC,MAAM,OAAM;AAAA,MACjB;AAAA,MACA,YAAY;AAAA,QACR;AAAA,UACI,SAAS;AAAA,UACT,QAAQ,CAAC,MAAW,MAAW,MAAW,SAAc;AAC7C,mBAAA,8BAA8B,IAAI,UAAU,IAAI,KAAK,KAAK,MAAM,IAAI,CAAC,EAAE,mBAAA,CAAoB;AAAA,UACtG;AAAA,QACJ;AAAA,QACA;AAAA,UACI,SAAS;AAAA,UACT,QAAQ,CAAC,MAAW,MAAW,MAAW,SAAc;AACpD,mBAAO,KAAK,KAAK;AAAA,UACrB;AAAA,QACJ;AAAA,QACA;AAAA,UACI,SAAS;AAAA,UACT,QAAQ,CAAC,MAAW,MAAW,MAAW,SAAc;AACpD,gBAAI,SAAS,WAAW;AACb,qBAAA;AAAA,YAAA,WACD,SAAS,qBAAqB;AAC7B,qBAAA;AAAA,YACX;AAAA,UACJ;AAAA,QACJ;AAAA,QACA;AAAA,UACI,SAAS;AAAA,UACT,YAAY;AAAA,UACZ,WAAW;AAAA,UACX,QAAQ,CAAC,MAAW,MAAW,MAAW,SAAc;AAC7C,mBAAA;AAAA,yDAC0B,IAAI;AAAA;AAAA;AAAA;AAAA,UAIzC;AAAA,QACJ;AAAA,MACJ;AAAA,MACA,YAAY;AAAA,MACZ,KACI;AAAA,MASJ,UAAU;AAAA,QACN,aAAa;AAAA,QACb,QAAQ;AAAA,QACR,mBAAmB,GAAG,MAAM,UAAU,gBAAgB,CAAC;AAAA,QACvD,eAAkB,GAAG,MAAM,UAAU,8BAA8B,CAAC;AAAA,QACpE,cAAkB,GAAG,MAAM,UAAU,8BAA8B,CAAC;AAAA,QACpE,YAAY;AAAA,UACR,SAAc,GAAG,MAAM,UAAU,oCAAoC,CAAC;AAAA,UACtE,QAAc,GAAG,MAAM,UAAU,mCAAmC,CAAC;AAAA,UACrE,QAAc,GAAG,MAAM,UAAU,mCAAmC,CAAC;AAAA,UACrE,YAAc,GAAG,MAAM,UAAU,uCAAuC,CAAC;AAAA,QAC7E;AAAA,QACA,QAAkB,GAAG,MAAM,UAAU,6BAA6B,CAAC;AAAA,QACnE,aAAkB,GAAG,MAAM,UAAU,8BAA8B,CAAC;AAAA,QACpE,gBAAkB,GAAG,MAAM,UAAU,iCAAiC,CAAC;AAAA,MAC3E;AAAA,MACA,SAAS,CACT;AAAA,IAAA,CACH;AAAA,EACL;AAEJ;"}