{"version":3,"file":"list-wEF5vFok.js","sources":["../../../app/frontend/entrypoints/controllers/erp/product/overview/list.ts"],"sourcesContent":["import UtilsEntity from \"@/frontend/entrypoints/utils/entity\";\nimport flatpickr from \"flatpickr\";\nimport {German} from \"flatpickr/dist/l10n/de\";\nimport jQuery from 'jquery/dist/jquery';\nimport * as bootstrap from 'bootstrap'\n\nimport Swal from 'sweetalert2';\n\nimport Utils from '../../../../utils'\nimport DefaultController from \"../../../defaultController\";\nimport ErpProductEntity from '../entity';\n\nexport default class ErpProductList extends DefaultController {\n tableElem: any;\n datatable: any;\n\n async init() {\n this.entity = \"erp/products\"\n this.tableElem = jQuery('.datatables-users')\n this.createTable();\n await super.init();\n }\n\n getEntityData(elem: any) {\n return ErpProductEntity.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('erp.product.name')} ${Utils.translate('generic.deleted')}`, `${Utils.translate('generic.success')}`)\n } else {\n this.toastr.error(`${Utils.translate('erp.product.name')} ${Utils.translate('generic.messages.not_deleted')}`, `${Utils.translate('generic.error')}`)\n }\n this.datatable.ajax.reload();\n }\n });\n jQuery(\"body\").delegate(\".new_product\", \"click\", (e: any) => {\n const href = e.currentTarget.getAttribute(\"href\");\n document.location.href = href;\n })\n }\n\n createTable() {\n this.datatable = new DataTable('.datatables-users', {\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 responsive: true,\n layout: {\n topEnd: ['search', 'buttons']\n },\n pageLength: 25,\n serverSide: 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-6 mt-3\"p>' +\n '>',\n ajax: {\n url: \"/api/v1/erp/products\",\n dataType: 'json',\n // @ts-ignore\n data: (params: { length: any; start: any; draw: any; order: any; search: any; columns: any; }) => {\n console.log(\"aaa\", params)\n return {\n limit: params.length,\n page: params.start / 25 + 1,\n draw: params.draw,\n search: params.search ? params.search.value : null,\n sort: params.order ? params.order[0] : [],\n columns: params.columns\n };\n },\n // @ts-ignore\n dataSrc: (data: any, params: any) => {\n if (data.status === 200) {\n data[\"recordsTotal\"] = data.meta.total;\n data[\"recordsFiltered\"] = data.meta.total;\n data[\"draw\"] = data.meta.draw;\n }\n return data.data;\n },\n cache: true\n },\n select: true,\n columns: [\n {data: 'number'},\n {data: 'uuid'},\n {data: 'name'},\n {data: 'stock'},\n {data: 'manufacturer'},\n {data: 'uuid'}\n ],\n columnDefs: [\n {\n targets: 0,\n render: (data: any, type: any, full: any, meta: any) => {\n return `window).currentLocale}/erp/products/${full.uuid}\">${data}`;\n },\n },\n {\n targets: 1,\n render: (data: any, type: any, full: any, meta: any) => {\n return full.category ? full.category.name : \"\";\n },\n },\n {\n targets: 2,\n render: (data: any, type: any, full: any, meta: any) => {\n return data;\n },\n },\n {\n targets: 3,\n render: (data: any, type: any, full: any, meta: any) => {\n return data;\n },\n },\n {\n targets: 4,\n render: (data: any, type: any, full: any, meta: any) => {\n return data ? data.name : \"\";\n },\n },\n {\n targets: 5,\n searchable: false,\n orderable: false,\n render: (data: any, type: any, full: any, meta: any) => {\n return `
\n window).currentLocale}/erp/products/${data}\" class=\"text-body\">\n \n \n \n \n \n
`\n },\n }\n ],\n processing: true,\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 new_product',\n attr: {\n 'href': `/${(window).currentLocale}/erp/products/new`\n }\n }\n ]\n });\n setTimeout(() => {\n console.log(\"this.datatable\", this.datatable)\n this.datatable.columns().every(async (col: any) => {\n if (col === 1) {\n const column = this.datatable.column(col);\n const header = column.header();\n let filterElem: any = null\n\n filterElem = document.createElement('select');\n filterElem.multiple = true;\n filterElem.classList.add(\"form-select\")\n header.appendChild(filterElem);\n filterElem.style.marginTop = \"5px\"\n header.appendChild(filterElem);\n\n const options: any = {}\n options[col] = (await Utils.entity.getAll(\"product_categories\")).data.map((d: any) => d.name);\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 if (filterElem.add) {\n filterElem.add(new Option(value, value));\n }\n })\n })\n\n const savedFilters = JSON.parse(localStorage.getItem(\"fltools_products_filter\") as string)\n if (savedFilters && savedFilters[`col-${col}`]) {\n const values = savedFilters[`col-${col}`].split(\"|\")\n values.forEach((v: any) => {\n if (filterElem.nodeName === \"SELECT\") {\n if (filterElem.querySelector(`option[value='${v}']`)) {\n filterElem.querySelector(`option[value='${v}']`).setAttribute(\"selected\", \"true\")\n }\n } else {\n filterElem.value = savedFilters[`col-${col}`].replaceAll(\"\\\\.\", \".\").replaceAll(\"\\\\+\", \"+\")\n }\n })\n const ev = new Event(\"change\")\n filterElem.dispatchEvent(ev)\n this.datatable.settings()[0].jqXHR.abort()\n column.search(values.join(\"|\").length > 0 ? '^' + values.join(\"|\") + '$' : '', true, false).draw();\n }\n console.log(filterElem.nodeName)\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 e.value;\n })\n console.log(values)\n let savedFilters = JSON.parse(localStorage.getItem(\"fltools_products_filter\") as string)\n if (!savedFilters) {\n savedFilters = {}\n }\n savedFilters[`col-${col}`] = values.join(\"|\")\n localStorage.setItem(\"fltools_products_filter\", JSON.stringify(savedFilters))\n this.datatable.settings()[0].jqXHR.abort()\n column.search(values.join(\"|\").length > 0 ? '^' + values.join(\"|\") + '$' : '', true, false).draw();\n });\n }\n }\n });\n console.log(\"tt\", this.tableElem)\n const paginationSelect = this.tableElem.closest(\".card\").find(\"div.dataTables_length\");\n }, 0)\n }\n}"],"names":["e","savedFilters"],"mappings":"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"}