{"version":3,"file":"list-8WTBMsTh.js","sources":["../../../app/frontend/entrypoints/controllers/settings/features/list.ts"],"sourcesContent":["import jQuery from 'jquery/dist/jquery';\nimport Swal from 'sweetalert2';\nimport * as bootstrap from 'bootstrap'\n\nimport Utils from '../../../utils'\nimport DefaultController from \"../../defaultController\";\nimport FeatureEntity from './entity';\n\nexport default class SettingsFeaturesList extends DefaultController {\n tableElem: any;\n datatable: any;\n private editModal: any;\n private maxUsers = 0;\n\n async init() {\n this.entity = \"features\"\n this.tableElem = jQuery('.datatables-users')\n this.editModal = bootstrap.Modal.getOrCreateInstance((document.querySelector(\"#editSiteFeatureModal\") as HTMLElement));\n this.createTable();\n await super.init();\n }\n\n getEntityData(elem: any) {\n return FeatureEntity.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(\"#editSiteFeatureForm\") as HTMLFormElement);\n\n form.reset()\n await Utils.updateElements(data, '', form)\n jQuery(\"#site_feature_users\").val(\"\").trigger(\"change\");\n data.users.forEach((user: any) => {\n const $newOption = jQuery(\"\").val(user.uuid).text(user.name)\n jQuery(\"#site_feature_users\").append($newOption).trigger('change');\n })\n this.maxUsers = data.allowed_users;\n // @ts-ignore\n this.editModal.show();\n }\n });\n jQuery(\"#site_feature_users\").on(\"select2:selecting\", async (e: any) => {\n const form = (document.querySelector(\"#editSiteFeatureForm\") as HTMLFormElement);\n const currentUsers = Array.from(form.querySelectorAll(\"#site_feature_users option:checked\")).map(o => o.value)\n if (this.maxUsers < currentUsers.length+1) {\n e.preventDefault();\n this.toastr.error(`${Utils.translate('site_feature.name')} ${Utils.translate('site_feature.messages.max_licenses_reached')}`, `${Utils.translate('generic.error')}`)\n\n }\n });\n (document.querySelector(\"#editSiteFeatureForm\") as HTMLFormElement).addEventListener(\"submit\", async (e) => {\n e.preventDefault();\n const elem = document.querySelector(\"#editSiteFeatureForm\") 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('site_feature.name')} ${Utils.translate('generic.saved')}`, `${Utils.translate('generic.success')}`)\n } else {\n this.toastr.error(`${Utils.translate('site_feature.name')} ${Utils.translate('generic.messages.not_updated')}`, `${Utils.translate('generic.error')}`)\n }\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/features`,\n columns: [\n {data: 'feature'},\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 `${Utils.translate(`site_products.products.${data}.name`)}`;\n },\n },\n {\n targets: 1,\n render: (data: any, type: any, full: any, meta: any) => {\n return `${new Date(Date.parse(full.valid_from)).toLocaleString()}`;\n },\n },\n {\n targets: 2,\n render: (data: any, type: any, full: any, meta: any) => {\n return `${new Date(Date.parse(full.valid_to)).toLocaleString()}`;\n },\n },\n {\n targets: 3,\n render: (data: any, type: any, full: any, meta: any) => {\n return `${full.users.length}/${full.allowed_users}`;\n },\n },\n {\n targets: 4,\n render: (data: any, type: any, full: any, meta: any) => {\n return `
`\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-6 mt-3\"p>' +\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 action: () => {\n document.location.href = `/${(window as any).currentLocale}/settings/features/new`\n }\n }\n ]\n });\n }\n}"],"names":["bootstrap.Modal"],"mappings":"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"}