{"version":3,"file":"list-z0Vofh2p.js","sources":["../../../app/frontend/entrypoints/controllers/user/overview/list.ts"],"sourcesContent":["import jQuery from 'jquery/dist/jquery';\nimport * as bootstrap from 'bootstrap'\nimport Utils from '../../../utils'\nimport DefaultController from \"../../defaultController\";\nimport UserEntity from \"../entity\";\nimport Swal from \"sweetalert2\";\n\nexport default class UserList extends DefaultController {\n tableElem: any;\n datatable: any;\n private editModal: any;\n\n async init() {\n this.entity = \"users\";\n this.tableElem = jQuery('.datatables-users')\n this.editModal = new bootstrap.Modal((document.querySelector(\"#editUser\") as HTMLElement));\n this.createTable();\n await super.init();\n }\n\n getEntityData(elem: any) {\n return UserEntity.getEntityData(elem)\n }\n\n bindListeners() {\n this.tableElem.delegate(\".delete-record\", \"click\", async (e: any) => {\n 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('user.name')} ${Utils.translate('generic.deleted')}`, `${Utils.translate('generic.success')}`)\n } else {\n this.toastr.error(`${Utils.translate('user.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 if (requestData.status === 200) {\n const data = requestData.data[0]\n const form = (document.querySelector(\"#editUserForm\") as HTMLFormElement);\n await Utils.updateElements(data, '', form)\n jQuery(\"#editUser #user_role\").html(\"\")\n data.roles.forEach((role: any) => {\n const option = new Option(role.name, role.uuid, true, true);\n jQuery(\"#editUser #user_role\").append(option).trigger('change');\n\n // manually trigger the `select2:select` event\n jQuery(\"#editUser #user_role\").trigger({\n type: 'select2:select',\n params: {\n data: role\n }\n });\n })\n this.editModal.show();\n }\n\n });\n (document.querySelector(\"#addNewUserForm\") as HTMLFormElement).addEventListener(\"submit\", async (e) => {\n e.preventDefault();\n const elem = document.querySelector(\"#addNewUserForm\") 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(\"#offcanvasAddUser\") as HTMLElement))\n if (bsElem) {\n bsElem.hide();\n }\n elem.reset();\n this.toastr.success(`${Utils.translate('user.name')} ${Utils.translate('generic.messages.created')}`, `${Utils.translate('generic.success')}`)\n }\n }\n });\n\n (document.querySelector(\"#editUserForm\") as HTMLFormElement).addEventListener(\"submit\", async (e) => {\n e.preventDefault();\n const elem = document.querySelector(\"#editUserForm\") 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('user.name')} ${Utils.translate('generic.saved')}`, `${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 setTimeout(() => {\n const t = this.datatable;\n t.columns().every((col: any) => {\n if (col === 3) {\n const column = t.column(col);\n const header = column.header();\n let filterElem: any = null\n filterElem = document.createElement('select');\n filterElem.multiple = true;\n filterElem.classList.add(\"form-select\")\n header.appendChild(filterElem);\n filterElem.addEventListener(\"click\", (e: any) => {\n e.preventDefault();\n e.stopPropagation();\n })\n filterElem.style.marginTop = \"5px\"\n header.appendChild(filterElem);\n\n const options: any = {}\n options[col] = [\"Ja\", \"Nein\"]\n Object.keys(options).forEach((key: any) => {\n const v = options[key].filter((value: any, index: any, array: string | any[]) => array.indexOf(value) === index);\n v.forEach((value: any) => {\n filterElem.add(new Option(value, value));\n })\n })\n if (filterElem.nodeName === \"SELECT\") {\n jQuery(filterElem).select2().on('select2:select select2:unselect', (e: any) => {\n //@ts-ignore\n const values = Array.from(filterElem.querySelectorAll(\"option:checked\")).map((e) => {\n return Utils.escapeRegex(e.value)\n })\n column.search(values.join(\"|\").length > 0 ? '^' + values.join(\"|\") + '$' : '', true, false).draw();\n });\n }\n }\n });\n }, 10);\n },\n ajax: `/api/v1/users`,\n columns: [\n {data: 'name'},\n {data: 'email'},\n {data: 'uuid'},\n {data: 'uuid'},\n {data: 'uuid'},\n {data: 'uuid'}\n ],\n columnDefs: [\n {\n targets: 0,\n render: (data: any, type: any, full: any, meta: any) => {\n return data;\n },\n },\n {\n targets: 1,\n render: (data: any, type: any, full: any, meta: any) => {\n return data;\n },\n },\n {\n targets: 2,\n render: (data: any, type: any, full: any, meta: any) => {\n if (full.msId) {\n return 'Azure User'\n } else {\n return 'Local User'\n }\n },\n },\n {\n targets: 3,\n render: (data: any, type: any, full: any, meta: any) => {\n if (full.external) {\n return 'Ja'\n } else {\n return 'Nein'\n }\n },\n },\n {\n targets: 4,\n render: (data: any, type: any, full: any, meta: any) => {\n return full.roles.map(r => r.name).join(\", \");\n },\n },\n {\n targets: 5,\n searchable: false,\n orderable: false,\n render: (data: any, type: any, full: any, meta: any) => {\n if (!full.msId) {\n return `
\n \n \n \n \n \n \n
`\n } else {\n return ''\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 text: `${Utils.translate('generic.add')}`,\n className: 'dt-button add-new btn btn-primary m-2',\n attr: {\n 'data-bs-toggle': 'offcanvas',\n 'data-bs-target': '#offcanvasAddUser'\n }\n }\n ]\n });\n }\n}"],"names":["bootstrap.Modal","bootstrap.Offcanvas","e"],"mappings":";;;;;;;;;;AAOA,MAAqB,iBAAiB,kBAAkB;AAAA,EAKpD,MAAM,OAAO;AACT,SAAK,SAAS;AACT,SAAA,YAAY,OAAO,mBAAmB;AAC3C,SAAK,YAAY,IAAIA,MAAiB,SAAS,cAAc,WAAW,CAAiB;AACzF,SAAK,YAAY;AACjB,UAAM,MAAM;EAChB;AAAA,EAEA,cAAc,MAAW;AACd,WAAA,WAAW,cAAc,IAAI;AAAA,EACxC;AAAA,EAEA,gBAAgB;AACZ,SAAK,UAAU,SAAS,kBAAkB,SAAS,OAAO,MAAW;AAC3D,YAAA,UAAU,MAAM,KAAK,KAAK;AAAA,QAC5B,OAAO;AAAA,QACP,MAAM;AAAA,QACN,MAAM;AAAA,QACN,kBAAkB;AAAA,QAClB,mBAAmB;AAAA,QACnB,aAAa;AAAA,UACT,eAAe;AAAA,UACf,cAAc;AAAA,QAClB;AAAA,QACA,gBAAgB;AAAA,MAAA,CACnB;AACE,UAAA,QAAQ,UAAU,MAAM;AACvB,cAAM,KAAK,EAAE,cAAc,aAAa,SAAS;AACjD,cAAM,IAAI,MAAM,MAAM,OAAO,QAAQ,IAAI,KAAK,MAAM;AAChD,YAAA,EAAE,WAAW,KAAK;AAClB,eAAK,OAAO,QAAQ,GAAG,MAAM,UAAU,WAAW,CAAC,IAAI,MAAM,UAAU,iBAAiB,CAAC,IAAI,GAAG,MAAM,UAAU,iBAAiB,CAAC,EAAE;AAAA,QAAA,OACjI;AACH,eAAK,OAAO,MAAM,GAAG,MAAM,UAAU,WAAW,CAAC,IAAI,MAAM,UAAU,8BAA8B,CAAC,IAAI,GAAG,MAAM,UAAU,eAAe,CAAC,EAAE;AAAA,QACjJ;AACK,aAAA,UAAU,KAAK;MACxB;AAAA,IAAA,CACH;AACD,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,eAAe;AACpD,cAAM,MAAM,eAAe,MAAM,IAAI,IAAI;AAClC,eAAA,sBAAsB,EAAE,KAAK,EAAE;AACjC,aAAA,MAAM,QAAQ,CAAC,SAAc;AACxB,gBAAA,SAAS,IAAI,OAAO,KAAK,MAAM,KAAK,MAAM,MAAM,IAAI;AAC1D,iBAAO,sBAAsB,EAAE,OAAO,MAAM,EAAE,QAAQ,QAAQ;AAGvD,iBAAA,sBAAsB,EAAE,QAAQ;AAAA,YACnC,MAAM;AAAA,YACN,QAAQ;AAAA,cACJ,MAAM;AAAA,YACV;AAAA,UAAA,CACH;AAAA,QAAA,CACJ;AACD,aAAK,UAAU;MACnB;AAAA,IAAA,CAEH;AACA,aAAS,cAAc,iBAAiB,EAAsB,iBAAiB,UAAU,OAAO,MAAM;AACnG,QAAE,eAAe;AACX,YAAA,OAAO,SAAS,cAAc,iBAAiB;AAC/C,YAAA,QAAQ,KAAK;AACnB,UAAI,OAAO;AACD,cAAA,IAAI,MAAM,MAAM,OAAO,OAAO,KAAK,cAAc,IAAI,GAAG,KAAK,MAAM;AACrE,YAAA,EAAE,WAAW,KAAK;AACZ,gBAAA,KAAK,UAAU,KAAK,OAAO;AACjC,gBAAM,SAASC,UAAoB,YAAa,SAAS,cAAc,mBAAmB,CAAiB;AAC3G,cAAI,QAAQ;AACR,mBAAO,KAAK;AAAA,UAChB;AACA,eAAK,MAAM;AACX,eAAK,OAAO,QAAQ,GAAG,MAAM,UAAU,WAAW,CAAC,IAAI,MAAM,UAAU,0BAA0B,CAAC,IAAI,GAAG,MAAM,UAAU,iBAAiB,CAAC,EAAE;AAAA,QACjJ;AAAA,MACJ;AAAA,IAAA,CACH;AAEA,aAAS,cAAc,eAAe,EAAsB,iBAAiB,UAAU,OAAO,MAAM;AACjG,QAAE,eAAe;AACX,YAAA,OAAO,SAAS,cAAc,eAAe;AAC7C,YAAA,QAAQ,KAAK;AACnB,UAAI,OAAO;AACD,cAAA,IAAI,MAAM,MAAM,OAAO,OAAO,KAAK,cAAc,IAAI,GAAG,KAAK,MAAM;AACrE,YAAA,EAAE,WAAW,KAAK;AACZ,gBAAA,KAAK,UAAU,KAAK,OAAO;AACjC,eAAK,UAAU;AACf,eAAK,OAAO,QAAQ,GAAG,MAAM,UAAU,WAAW,CAAC,IAAI,MAAM,UAAU,eAAe,CAAC,IAAI,GAAG,MAAM,UAAU,iBAAiB,CAAC,EAAE;AAAA,QACtI;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;AAC5E,mBAAW,MAAM;AACT,gBAAM,IAAI,KAAK;AACf,YAAE,QAAQ,EAAE,MAAM,CAAC,QAAa;AAC5B,gBAAI,QAAQ,GAAG;AACL,oBAAA,SAAS,EAAE,OAAO,GAAG;AACrB,oBAAA,SAAS,OAAO;AACtB,kBAAI,aAAkB;AACT,2BAAA,SAAS,cAAc,QAAQ;AAC5C,yBAAW,WAAW;AACX,yBAAA,UAAU,IAAI,aAAa;AACtC,qBAAO,YAAY,UAAU;AAClB,yBAAA,iBAAiB,SAAS,CAAC,MAAW;AAC7C,kBAAE,eAAe;AACjB,kBAAE,gBAAgB;AAAA,cAAA,CACrB;AACD,yBAAW,MAAM,YAAY;AAC7B,qBAAO,YAAY,UAAU;AAE7B,oBAAM,UAAe,CAAA;AACrB,sBAAQ,GAAG,IAAI,CAAC,MAAM,MAAM;AAC5B,qBAAO,KAAK,OAAO,EAAE,QAAQ,CAAC,QAAa;AACvC,sBAAM,IAAI,QAAQ,GAAG,EAAE,OAAO,CAAC,OAAY,OAAY,UAA0B,MAAM,QAAQ,KAAK,MAAM,KAAK;AAC7G,kBAAA,QAAQ,CAAC,UAAe;AACtB,6BAAW,IAAI,IAAI,OAAO,OAAO,KAAK,CAAC;AAAA,gBAAA,CAC1C;AAAA,cAAA,CACJ;AACG,kBAAA,WAAW,aAAa,UAAU;AAClC,uBAAO,UAAU,EAAE,QAAA,EAAU,GAAG,mCAAmC,CAAC,MAAW;AAErE,wBAAA,SAAS,MAAM,KAAK,WAAW,iBAAiB,gBAAgB,CAAC,EAAE,IAAI,CAACC,OAAM;AACzE,2BAAA,MAAM,YAAYA,GAAE,KAAK;AAAA,kBAAA,CACnC;AACD,yBAAO,OAAO,OAAO,KAAK,GAAG,EAAE,SAAS,IAAI,MAAM,OAAO,KAAK,GAAG,IAAI,MAAM,IAAI,MAAM,KAAK,EAAE;gBAAK,CACpG;AAAA,cACL;AAAA,YACJ;AAAA,UAAA,CACH;AAAA,WACN,EAAE;AAAA,MACT;AAAA,MACA,MAAM;AAAA,MACN,SAAS;AAAA,QACL,EAAC,MAAM,OAAM;AAAA,QACb,EAAC,MAAM,QAAO;AAAA,QACd,EAAC,MAAM,OAAM;AAAA,QACb,EAAC,MAAM,OAAM;AAAA,QACb,EAAC,MAAM,OAAM;AAAA,QACb,EAAC,MAAM,OAAM;AAAA,MACjB;AAAA,MACA,YAAY;AAAA,QACR;AAAA,UACI,SAAS;AAAA,UACT,QAAQ,CAAC,MAAW,MAAW,MAAW,SAAc;AAC7C,mBAAA;AAAA,UACX;AAAA,QACJ;AAAA,QACA;AAAA,UACI,SAAS;AAAA,UACT,QAAQ,CAAC,MAAW,MAAW,MAAW,SAAc;AAC7C,mBAAA;AAAA,UACX;AAAA,QACJ;AAAA,QACA;AAAA,UACI,SAAS;AAAA,UACT,QAAQ,CAAC,MAAW,MAAW,MAAW,SAAc;AACpD,gBAAI,KAAK,MAAM;AACJ,qBAAA;AAAA,YAAA,OACJ;AACI,qBAAA;AAAA,YACX;AAAA,UACJ;AAAA,QACJ;AAAA,QACA;AAAA,UACI,SAAS;AAAA,UACT,QAAQ,CAAC,MAAW,MAAW,MAAW,SAAc;AACpD,gBAAI,KAAK,UAAU;AACR,qBAAA;AAAA,YAAA,OACJ;AACI,qBAAA;AAAA,YACX;AAAA,UACJ;AAAA,QACJ;AAAA,QACA;AAAA,UACI,SAAS;AAAA,UACT,QAAQ,CAAC,MAAW,MAAW,MAAW,SAAc;AAC7C,mBAAA,KAAK,MAAM,IAAI,CAAA,MAAK,EAAE,IAAI,EAAE,KAAK,IAAI;AAAA,UAChD;AAAA,QACJ;AAAA,QACA;AAAA,UACI,SAAS;AAAA,UACT,YAAY;AAAA,UACZ,WAAW;AAAA,UACX,QAAQ,CAAC,MAAW,MAAW,MAAW,SAAc;AAChD,gBAAA,CAAC,KAAK,MAAM;AACL,qBAAA;AAAA,yDACsB,IAAI;AAAA;AAAA;AAAA,yDAGJ,IAAI;AAAA;AAAA;AAAA;AAAA,YAAA,OAI9B;AACI,qBAAA;AAAA,YACX;AAAA,UACJ;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;AAAA,QACL;AAAA,UACI,MAAM,uFAAuF,MAAM,UAAU,aAAa,CAAC;AAAA,UAC3H,WAAW;AAAA,UACX,MAAM;AAAA,YACF,kBAAkB;AAAA,YAClB,kBAAkB;AAAA,UACtB;AAAA,QACJ;AAAA,MACJ;AAAA,IAAA,CACH;AAAA,EACL;AACJ;"}