{"version":3,"file":"list-Rp41VtWA.js","sources":["../../../app/frontend/entrypoints/controllers/teams/time_entry_profile/overview/list.ts"],"sourcesContent":["import jQuery from 'jquery/dist/jquery';\nimport Swal from 'sweetalert2';\nimport * as bootstrap from 'bootstrap'\nimport Utils from '../../../../utils'\nimport DefaultController from \"../../../defaultController\";\nimport TimeEntryProfileEntity from \"../entity\";\n\nexport default class TimeEntryProfileList extends DefaultController {\n tableElem: any;\n datatable: any;\n private editModal: any;\n private editMembershipsModal: any;\n\n editMembershipsId = 0;\n editMembershipsModalTable: any = null\n\n async init() {\n this.entity = \"time_entry_profiles\";\n this.tableElem = jQuery('.datatables-users')\n this.editModal = new bootstrap.Modal((document.querySelector(\"#editTimeEntryProfile\") as HTMLElement));\n this.editMembershipsModal = new bootstrap.Modal((document.querySelector(\"#editTimeEntryProfileMembers\") as HTMLElement));\n this.createTable();\n await super.init();\n }\n\n getEntityData(elem: any) {\n return TimeEntryProfileEntity.getEntityData(elem)\n }\n\n bindListeners() {\n this.tableElem.delegate(\".delete-record\", \"click\", async (e: any) => {const confirm = await Swal.fire({\n title: 'Are you sure?',\n text: \"You won't be able to revert this!\",\n icon: 'warning',\n showCancelButton: true,\n confirmButtonText: 'Yes, delete it!',\n customClass: {\n confirmButton: 'btn btn-primary me-3',\n cancelButton: 'btn btn-label-secondary'\n },\n buttonsStyling: false\n })\n if(confirm.value === true) {\n const id = e.currentTarget.getAttribute(\"data-id\")\n const r = await Utils.entity.destroy(id, this.entity)\n if (r.status === 200) {\n this.toastr.success(`${Utils.translate('time_entry_profile.name')} ${Utils.translate('generic.deleted')}`, `${Utils.translate('generic.success')}`)\n } else if (r.status === 422) {\n this.toastr.error(`${Utils.translate('time_entry_profile.name')} ${Utils.translate('generic.messages.not_deleted')}`, `${Utils.translate('generic.error')}`)\n } else {\n this.toastr.error(`${Utils.translate('time_entry_profile.name')} ${Utils.translate('generic.messages.not_deleted')}`, `${Utils.translate('generic.error')}`)\n }\n this.datatable.ajax.reload();\n }\n });\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 const form = (document.querySelector(\"#editTimeEntryProfileForm\") as HTMLFormElement);\n form.reset();\n if (requestData.status === 200) {\n const data = requestData.data[0]\n jQuery(\"#editTimeEntryProfileForm #time_entry_profile_superior_id\").val(\"\").trigger(\"change\").html(\"\");\n await Utils.updateElements(data, '', form)\n if (data.superior && data.superior.name) {\n const $newOption = jQuery(\"\").val(data.superior.uuid).text(data.superior.name)\n jQuery(\"#editTimeEntryProfileForm #time_entry_profile_superior_id\").append($newOption).trigger('change');\n }\n this.editModal.show();\n }\n\n });\n (document.querySelector(\"#addNewTimeEntryProfileForm\") as HTMLFormElement).addEventListener(\"submit\", async (e) => {\n e.preventDefault();\n const elem = document.querySelector(\"#addNewTimeEntryProfileForm\") as HTMLFormElement;\n const valid = elem.checkValidity();\n if (valid) {\n const r = await Utils.entity.upsert(this.getEntityData(elem), this.entity)\n if (r.status === 200) {\n await this.datatable.ajax.reload();\n const bsElem = bootstrap.Offcanvas.getInstance((document.querySelector(\"#offcanvasAddTimeEntryProfile\") as HTMLElement))\n if (bsElem) {\n bsElem.hide();\n }\n elem.reset();\n this.toastr.success(`${Utils.translate('time_entry_profile.name')} ${Utils.translate('generic.messages.created')}`, `${Utils.translate('generic.success')}`)\n }\n }\n });\n\n (document.querySelector(\"#editTimeEntryProfileForm\") as HTMLFormElement).addEventListener(\"submit\", async (e) => {\n e.preventDefault();\n const elem = document.querySelector(\"#editTimeEntryProfileForm\") as HTMLFormElement;\n const valid = elem.checkValidity();\n if (valid) {\n const r = await Utils.entity.upsert(this.getEntityData(elem), 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_profile.name')} ${Utils.translate('generic.saved')}`, `${Utils.translate('generic.success')}`)\n }\n }\n });\n\n (document.querySelector(\"#editTimeEntryProfileMembersForm\") as HTMLFormElement).addEventListener(\"submit\", async (e) => {\n e.preventDefault();\n const elem = document.querySelector(\"#editTimeEntryProfileMembersForm\") as HTMLFormElement;\n const valid = elem.checkValidity();\n if (valid) {\n await Utils.showLoader();\n const r = await Utils.entity.request(`/api/v1/time_entry_profiles/${this.editMembershipsId}/add_users`, 'POST', {\n groupIds: jQuery(\"#time_entry_profile_new_users\").val(),\n valid_from: (elem.querySelector(\"#time_entry_profile_valid_from\") as HTMLInputElement).value\n });\n\n if (r.status === 200) {\n await Utils.hideLoader();\n await this.datatable.ajax.reload();\n this.editMembershipsModal.hide();\n this.toastr.success(`${Utils.translate('time_entry_profile.name')} ${Utils.translate('generic.saved')}`, `${Utils.translate('generic.success')}`)\n }\n }\n });\n\n\n\n jQuery(this.tableElem).delegate(\".time_entry_profile_members\", \"click\", async (e: any) => {\n const id = e.target.getAttribute(\"data-id\")\n const timeEntryProfile = await Utils.entity.get(id, this.entity)\n if (timeEntryProfile.status === 200) {\n const data = timeEntryProfile.data[0]\n if(this.editMembershipsModalTable) {\n this.editMembershipsModalTable.destroy();\n }\n this.editMembershipsId = id;\n const tableElem = document.querySelector(\".datatables-time-entry-profile-add-users tbody\") as HTMLTableElement\n tableElem.innerHTML = \"\";\n data.users.forEach((user: any) => {\n const tr = `