File manager - Edit - /home/c14075/dragmet-ural.ru/www/bitrix/js/calendar/rooms/dist/rooms.bundle.js.map
Back
{"version":3,"file":"rooms.bundle.js","sources":["../src/reservebutton.js","../../sectioninterface/src/editform.js","../src/editformroom.js","../src/editformcategory.js","../src/roomsinterface.js"],"sourcesContent":["import { Type, Dom, Loc } from 'main.core';\nimport { AddButton } from 'calendar.controls';\n\nexport class ReserveButton extends AddButton\n{\n\tconstructor(params = {})\n\t{\n\t\tsuper(params);\n\t\tthis.setEventNamespace('BX.Calendar.Rooms.ReserveButton');\n\t\tthis.zIndex = params.zIndex || 3200;\n\t\tthis.popupId = params.id || 'add-button-' + Math.round(Math.random() * 10000);\n\t\tthis.showTasks = params.showTasks;\n\n\t\tthis.addEntryHandler = Type.isFunction(params.addEntry) ? params.addEntry : null;\n\t\tthis.addTaskHandler = Type.isFunction(params.addTask) ? params.addTask : null;\n\t\tthis.create();\n\t}\n\n\tcreate()\n\t{\n\t\tthis.DOM.wrap = Dom.create('button', {\n\t\t\tprops: { className: 'ui-btn ui-btn-success', type: 'button' },\n\t\t\thtml: Loc.getMessage('EC_RESERVE'),\n\t\t\tevents: { click: this.addEntry.bind(this) }\n\t\t});\n\t}\n}","import { Runtime, Dom, Event, Loc, Text, Type, Tag } from 'main.core';\nimport { Util } from 'calendar.util';\nimport {EventEmitter} from 'main.core.events';\nimport {Dialog as EntitySelectorDialog} from 'ui.entity-selector';\n\n\nexport class EditForm extends EventEmitter\n{\n\tDOM = {};\n\tisCreated = false;\n\n\tconstructor(options = {})\n\t{\n\t\tsuper();\n\t\tthis.setEventNamespace('BX.Calendar.SectionInterface.EditForm');\n\n\t\tthis.DOM.outerWrap = options.wrap;\n\t\tthis.sectionAccessTasks = options.sectionAccessTasks;\n\t\tthis.sectionManager = options.sectionManager;\n\t\tthis.closeCallback = options.closeCallback;\n\t\tthis.BX = Util.getBX();\n\t\tthis.keyHandlerBinded = this.keyHandler.bind(this);\n\t}\n\n\tshow(params = {})\n\t{\n\t\tthis.section = params.section;\n\t\tthis.create();\n\t\tthis.showAccess = params.showAccess !== false;\n\t\tthis.allowChangeName = params.allowChangeName !== false;\n\t\tif (this.showAccess)\n\t\t{\n\t\t\tthis.DOM.accessLink.style.display = '';\n\t\t\tthis.DOM.accessWrap.style.display = '';\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.DOM.accessLink.style.display = 'none';\n\t\t\tthis.DOM.accessWrap.style.display = 'none';\n\t\t}\n\n\t\tEvent.bind(document, 'keydown', this.keyHandlerBinded);\n\t\tDom.addClass(this.DOM.outerWrap, 'show');\n\n\t\tif (params.section)\n\t\t{\n\t\t\tif (params.section.color)\n\t\t\t{\n\t\t\t\tthis.setColor(params.section.color);\n\t\t\t}\n\n\t\t\tthis.setAccess(params.section.access || params.section.data.ACCESS || {});\n\n\t\t\tif (params.section.name)\n\t\t\t{\n\t\t\t\tthis.DOM.sectionTitleInput.value = params.section.name;\n\t\t\t}\n\t\t}\n\n\t\tif (this.allowChangeName)\n\t\t{\n\t\t\tBX.focus(this.DOM.sectionTitleInput);\n\t\t\tif (this.DOM.sectionTitleInput.value !== '')\n\t\t\t{\n\t\t\t\tthis.DOM.sectionTitleInput.select();\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\tDom.addClass(this.DOM.sectionTitleInput, '--disabled');\n\t\t\tthis.DOM.sectionTitleInput.disabled = true;\n\t\t}\n\n\t\tthis.isOpenedState = true;\n\t}\n\n\tclose()\n\t{\n\t\tthis.isOpenedState = false;\n\t\tEvent.unbind(document, 'keydown', this.keyHandlerBinded);\n\t\tDom.removeClass(this.DOM.outerWrap, 'show');\n\n\t\tif (Type.isFunction(this.closeCallback))\n\t\t{\n\t\t\tthis.closeCallback();\n\t\t}\n\t}\n\n\tisOpened()\n\t{\n\t\treturn this.isOpenedState;\n\t}\n\n\tcreate()\n\t{\n\t\tthis.wrap = this.DOM.outerWrap.querySelector('.calendar-form-content');\n\n\t\tif (this.wrap)\n\t\t{\n\t\t\tDom.clean(this.wrap);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.wrap = this.DOM.outerWrap.appendChild(Dom.create('DIV', {props: {className: 'calendar-form-content'}}));\n\t\t}\n\n\t\tthis.DOM.formFieldsWrap = this.wrap.appendChild(\n\t\t\tDom.create(\n\t\t\t\t'DIV',\n\t\t\t\t{\n\t\t\t\t\tprops: {className: 'calendar-list-slider-widget-content'}\n\t\t\t\t}\n\t\t\t)\n\t\t)\n\t\t\t.appendChild(\n\t\t\t\tDom.create(\n\t\t\t\t\t'DIV',\n\t\t\t\t\t{\n\t\t\t\t\t\tprops: {className: 'calendar-list-slider-widget-content-block'}\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t);\n\n\t\t// Title\n\t\tthis.DOM.sectionTitleInput = this.DOM.formFieldsWrap.appendChild(\n\t\t\tDom.create(\n\t\t\t\t'DIV',\n\t\t\t\t{\n\t\t\t\t\tprops: {className: 'calendar-field-container calendar-field-container-string'}\n\t\t\t\t}\n\t\t\t)\n\t\t)\n\t\t\t.appendChild(Dom.create('DIV', {props: {className: 'calendar-field-block'}}))\n\t\t\t.appendChild(Dom.create('INPUT', {\n\t\t\t\tattrs: {type: 'text', placeholder: Loc.getMessage('EC_SEC_SLIDER_SECTION_TITLE')},\n\t\t\t\tprops: {className: 'calendar-field calendar-field-string'}\n\t\t\t}));\n\n\t\tthis.DOM.optionsWrap = this.DOM.formFieldsWrap.appendChild(\n\t\t\tDom.create(\n\t\t\t\t'DIV',\n\t\t\t\t{\n\t\t\t\t\tprops: {className: 'calendar-list-slider-new-calendar-options-container'}\n\t\t\t\t}\n\t\t\t)\n\t\t);\n\n\t\tthis.initSectionColorSelector();\n\n\t\tthis.initAccessController();\n\n\t\t// Buttons\n\t\tthis.buttonsWrap = this.DOM.formFieldsWrap.appendChild(Dom.create('DIV', {props: {className: 'calendar-list-slider-btn-container'}}));\n\n\t\tthis.saveBtn = new BX.UI.Button({\n\t\t\ttext: Loc.getMessage('EC_SEC_SLIDER_SAVE'),\n\t\t\tclassName: 'ui-btn ui-btn-success',\n\t\t\tevents: {click: this.save.bind(this)}\n\t\t});\n\t\tthis.saveBtn.renderTo(this.buttonsWrap);\n\n\t\tnew BX.UI.Button({\n\t\t\ttext: Loc.getMessage('EC_SEC_SLIDER_CANCEL'),\n\t\t\tclassName: 'ui-btn ui-btn-link',\n\t\t\tevents: {click: this.checkClose.bind(this)}\n\t\t}).renderTo(this.buttonsWrap);\n\n\t\tthis.isCreated = true;\n\t}\n\n\tkeyHandler(e)\n\t{\n\t\tif(e.keyCode === Util.getKeyCode('escape'))\n\t\t{\n\t\t\tthis.checkClose();\n\t\t}\n\t\telse if(e.keyCode === Util.getKeyCode('enter'))\n\t\t{\n\t\t\tthis.save();\n\t\t}\n\t}\n\n\tcheckClose()\n\t{\n\t\tthis.close();\n\t}\n\n\tsave()\n\t{\n\t\tthis.saveBtn.setWaiting(true);\n\t\tthis.sectionManager.saveSection(\n\t\t\tthis.DOM.sectionTitleInput.value,\n\t\t\tthis.color,\n\t\t\tthis.access,\n\t\t\t{section: this.section}\n\t\t)\n\t\t\t.then(() => {\n\t\t\t\tthis.saveBtn.setWaiting(false);\n\t\t\t\tthis.close();\n\t\t\t});\n\t}\n\n\tinitSectionColorSelector()\n\t{\n\t\tthis.DOM.colorContWrap = this.DOM.optionsWrap.appendChild(Dom.create('DIV', {\n\t\t\tprops: { className: 'calendar-list-slider-new-calendar-option-color' },\n\t\t\thtml: Loc.getMessage('EC_SEC_SLIDER_COLOR')\n\t\t}));\n\t\tthis.colorIcon = this.DOM.colorContWrap.appendChild(Dom.create('SPAN', {\n\t\t\tprops: { className: 'calendar-list-slider-new-calendar-option-color-selected' }\n\t\t}));\n\t\tthis.colorChangeLink = this.DOM.colorContWrap.appendChild(Dom.create('SPAN', {\n\t\t\tprops: { className: 'calendar-list-slider-new-calendar-option-color-change' },\n\t\t\thtml: Loc.getMessage('EC_SEC_SLIDER_CHANGE')\n\t\t}));\n\t\t\n\t\tEvent.bind(this.colorIcon, 'click', this.showSimplePicker.bind(this));\n\t\tEvent.bind(this.colorChangeLink, 'click', this.showSimplePicker.bind(this));\n\t}\n\n\tshowSimplePicker(value)\n\t{\n\t\tconst colors = Runtime.clone(Util.getDefaultColorList(), true);\n\t\tconst innerCont = Dom.create(\n\t\t\t'DIV',\n\t\t\t{\n\t\t\t\tprops: {className: 'calendar-simple-color-wrap calendar-field-container-colorpicker-square'}\n\t\t\t}\n\t\t);\n\t\tconst colorWrap = innerCont.appendChild(\n\t\t\tDom.create(\n\t\t\t\t'DIV',\n\t\t\t\t{\n\t\t\t\t\t\tevents: {click: BX.delegate(this.simplePickerClick, this)}\n\t\t\t\t}\n\t\t\t)\n\t\t);\n\t\tconst moreLinkWrap = innerCont.appendChild(\n\t\t\tDom.create(\n\t\t\t\t'DIV',\n\t\t\t\t{\n\t\t\t\t\tprops: {className: 'calendar-simple-color-more-link-wrap'}\n\t\t\t\t}\n\t\t\t)\n\t\t);\n\t\tconst moreLink = moreLinkWrap.appendChild(\n\t\t\tDom.create(\n\t\t\t\t'SPAN',\n\t\t\t\t{\n\t\t\t\t\tprops: {className: 'calendar-simple-color-more-link'},\n\t\t\t\t\thtml: Loc.getMessage('EC_COLOR'),\n\t\t\t\t\tevents: {click: BX.delegate(this.showFullPicker, this)}\n\t\t\t\t}\n\t\t\t)\n\t\t);\n\n\t\tthis.simplePickerColorWrap = colorWrap;\n\t\tthis.colors = [];\n\n\t\tif (!colors.includes(this.color))\n\t\t{\n\t\t\tcolors.push(this.color);\n\t\t}\n\n\t\tfor (let i = 0; i < colors.length; i++)\n\t\t{\n\t\t\tthis.colors.push({\n\t\t\t\tcolor: colors[i],\n\t\t\t\tnode: colorWrap.appendChild(Dom.create('SPAN', {\n\t\t\t\t\tprops: {className: 'calendar-field-colorpicker-color-item'},\n\t\t\t\t\tstyle: {backgroundColor: colors[i]},\n\t\t\t\t\tattrs: {'data-bx-calendar-color': colors[i]},\n\t\t\t\t\thtml: '<span class=\"calendar-field-colorpicker-color\"></span>'\n\t\t\t\t}))\n\t\t\t});\n\t\t}\n\n\t\tthis.lastActiveNode = this.colors[BX.util.array_search(this.color, colors) || 0].node;\n\t\tDom.addClass(this.lastActiveNode, 'active');\n\n\t\tthis.simpleColorPopup = BX.PopupWindowManager.create(\n\t\t\t\"simple-color-popup-\" + Util.getRandomInt(),\n\t\t\tthis.colorIcon,\n\t\t\t{\n\t\t\t\t//zIndex: this.zIndex,\n\t\t\t\tautoHide: true,\n\t\t\t\tcloseByEsc: true,\n\t\t\t\toffsetTop: 0,\n\t\t\t\toffsetLeft: 9,\n\t\t\t\tlightShadow: true,\n\t\t\t\tcontent: innerCont,\n\t\t\t\tcacheable: false\n\t\t\t}\n\t\t);\n\n\t\tthis.simpleColorPopup.setAngle({offset: 10});\n\t\tthis.simpleColorPopup.show(true);\n\t}\n\n\tsimplePickerClick(e)\n\t{\n\t\tconst target = Util.findTargetNode(e.target || e.srcElement, this.DOM.outerWrap);\n\t\tif (Type.isElementNode(target))\n\t\t{\n\t\t\tconst value = target.getAttribute('data-bx-calendar-color');\n\t\t\tif(value !== null)\n\t\t\t{\n\t\t\t\tif (this.lastActiveNode)\n\t\t\t\t{\n\t\t\t\t\tDom.removeClass(this.lastActiveNode, 'active');\n\t\t\t\t}\n\n\t\t\t\tDom.addClass(target, 'active');\n\t\t\t\tthis.lastActiveNode = target;\n\t\t\t\tthis.setColor(value);\n\t\t\t}\n\t\t}\n\t}\n\n\tshowFullPicker()\n\t{\n\t\tif (this.simpleColorPopup)\n\t\t{\n\t\t\tthis.simpleColorPopup.close();\n\t\t}\n\n\t\tif (!this.fullColorPicker)\n\t\t{\n\t\t\tthis.fullColorPicker = new BX.ColorPicker({\n\t\t\t\tbindElement: this.colorIcon,\n\t\t\t\tonColorSelected: BX.delegate(function(color){\n\t\t\t\t\tthis.setColor(color);\n\t\t\t\t}, this),\n\t\t\t\tpopupOptions: {\n\t\t\t\t\tcacheable: false,\n\t\t\t\t\tzIndex: this.zIndex,\n\t\t\t\t\tevents: {\n\t\t\t\t\t\tonPopupClose:BX.delegate(function(){\n\t\t\t\t\t\t}, this)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tthis.fullColorPicker.open();\n\t}\n\n\tsetColor(value)\n\t{\n\t\tthis.colorIcon.style.backgroundColor = value;\n\t\tthis.color = value;\n\t}\n\n\tsetAccess(value)\n\t{\n\t\tlet rowsCount = 0;\n\t\tfor (let code in value)\n\t\t{\n\t\t\tif (value.hasOwnProperty(code))\n\t\t\t{\n\t\t\t\trowsCount++;\n\t\t\t}\n\t\t}\n\t\tthis.accessRowsCount = rowsCount;\n\t\tthis.access = value;\n\n\t\tfor (let code in value)\n\t\t{\n\t\t\tif (value.hasOwnProperty(code))\n\t\t\t{\n\t\t\t\tthis.insertAccessRow(Util.getAccessName(code), code, value[code]);\n\t\t\t}\n\t\t}\n\t\tthis.checkAccessTableHeight();\n\t}\n\n\tinitAccessController()\n\t{\n\t\tthis.buildAccessController();\n\t\tif (this.sectionManager && this.sectionManager.calendarType === 'group')\n\t\t{\n\t\t\tthis.initDialogGroup();\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.initDialogStandard();\n\t\t}\n\t\tthis.initAccessSelectorPopup();\n\t}\n\n\tinitAccessSelectorPopup()\n\t{\n\t\tEvent.bind(this.DOM.accessWrap, 'click', (e) => {\n\t\t\tconst target = Util.findTargetNode(e.target || e.srcElement, this.DOM.outerWrap);\n\t\t\tif (Type.isElementNode(target))\n\t\t\t{\n\t\t\t\tif (target.getAttribute('data-bx-calendar-access-selector') !== null)\n\t\t\t\t{\n\t\t\t\t\t// show selector\n\t\t\t\t\tconst code = target.getAttribute('data-bx-calendar-access-selector');\n\t\t\t\t\tif (this.accessControls[code])\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.showAccessSelectorPopup({\n\t\t\t\t\t\t\t\tnode: this.accessControls[code].removeIcon,\n\t\t\t\t\t\t\t\tsetValueCallback: (value) => {\n\t\t\t\t\t\t\t\t\tif (this.accessTasks[value] && this.accessControls[code])\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tthis.accessControls[code].valueNode.innerHTML =\n\t\t\t\t\t\t\t\t\t\t\tText.encode(this.accessTasks[value].title);\n\t\t\t\t\t\t\t\t\t\tthis.access[code] = value;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if (target.getAttribute('data-bx-calendar-access-remove') !== null)\n\t\t\t\t{\n\t\t\t\t\tconst code = target.getAttribute('data-bx-calendar-access-remove');\n\t\t\t\t\tif (this.accessControls[code])\n\t\t\t\t\t{\n\t\t\t\t\t\tDom.remove(this.accessControls[code].rowNode);\n\t\t\t\t\t\tthis.accessControls[code] = null;\n\t\t\t\t\t\tdelete this.access[code];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\tbuildAccessController()\n\t{\n\t\tthis.DOM.accessLink = this.DOM.optionsWrap.appendChild(\n\t\t\tTag.render`<div class=\"calendar-list-slider-new-calendar-option-more\">${Loc.getMessage('EC_SEC_SLIDER_ACCESS')}</div>`,\n\t\t);\n\n\t\tthis.DOM.accessWrap = this.DOM.formFieldsWrap.appendChild(\n\t\t\tTag.render`\n\t\t\t\t<div class=\"calendar-list-slider-access-container\">\n\t\t\t\t\t<div class=\"calendar-list-slider-access-inner-wrap\">\n\t\t\t\t\t\t${this.DOM.accessTable = Tag.render`\n\t\t\t\t\t\t\t<table class=\"calendar-section-slider-access-table\"></table>\n\t\t\t\t\t\t`}\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"calendar-list-slider-new-calendar-options-container\">\n\t\t\t\t\t\t${this.DOM.accessButton = Tag.render`\n\t\t\t\t\t\t\t<span class=\"calendar-list-slider-new-calendar-option-add\">\n\t\t\t\t\t\t\t\t${Loc.getMessage('EC_SEC_SLIDER_ACCESS_ADD')}\n\t\t\t\t\t\t\t</span>`\n\t\t\t}\n\t\t\t\t\t</div>\n\t\t\t\t</div>`,\n\t\t);\n\n\t\tthis.accessControls = {};\n\t\tthis.accessTasks = this.sectionAccessTasks;\n\n\t\tEvent.bind(this.DOM.accessLink, 'click', () => {\n\t\t\tif (Dom.hasClass(this.DOM.accessWrap, 'shown'))\n\t\t\t{\n\t\t\t\tDom.removeClass(this.DOM.accessWrap, 'shown');\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tDom.addClass(this.DOM.accessWrap, 'shown');\n\t\t\t}\n\t\t\tthis.checkAccessTableHeight();\n\t\t});\n\t}\n\n\tinitDialogStandard()\n\t{\n\t\tEvent.bind(this.DOM.accessButton, 'click', () => {\n\t\t\tthis.entitySelectorDialog = new EntitySelectorDialog({\n\t\t\t\ttargetNode: this.DOM.accessButton,\n\t\t\t\tcontext: 'CALENDAR',\n\t\t\t\tpreselectedItems: [],\n\t\t\t\tenableSearch: true,\n\t\t\t\tevents: {\n\t\t\t\t\t'Item:onSelect': this.handleEntitySelectorChanges.bind(this),\n\t\t\t\t\t'Item:onDeselect': this.handleEntitySelectorChanges.bind(this),\n\t\t\t\t},\n\t\t\t\tpopupOptions: {\n\t\t\t\t\ttargetContainer: document.body,\n\t\t\t\t},\n\t\t\t\tentities: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'user',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'project',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'department',\n\t\t\t\t\t\toptions: { selectMode: 'usersAndDepartments' },\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'meta-user',\n\t\t\t\t\t\toptions: { 'all-users': true },\n\t\t\t\t\t},\n\t\t\t\t]\n\t\t\t});\n\t\t\tthis.entitySelectorDialog.show();\n\t\t});\n\t}\n\n\tinitDialogGroup()\n\t{\n\t\tEvent.bind(this.DOM.accessButton, 'click', () => {\n\t\t\tthis.entitySelectorDialog = new EntitySelectorDialog({\n\t\t\t\ttargetNode: this.DOM.accessButton,\n\t\t\t\tcontext: 'CALENDAR',\n\t\t\t\tpreselectedItems: [],\n\t\t\t\tenableSearch: true,\n\t\t\t\tevents: {\n\t\t\t\t\t'Item:onSelect': this.handleEntitySelectorChanges.bind(this),\n\t\t\t\t\t'Item:onDeselect': this.handleEntitySelectorChanges.bind(this),\n\t\t\t\t},\n\t\t\t\tpopupOptions: {\n\t\t\t\t\ttargetContainer: document.body,\n\t\t\t\t},\n\t\t\t\tentities: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'user',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'department',\n\t\t\t\t\t\toptions: { selectMode: 'usersAndDepartments' },\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'meta-user',\n\t\t\t\t\t\toptions: { 'all-users': true },\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\ttabs: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'groupAccess',\n\t\t\t\t\t\ttitle: this.sectionManager.ownerName,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\titems: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'SG' + this.sectionManager.ownerId + '_' + 'A',\n\t\t\t\t\t\tentityId: 'group',\n\t\t\t\t\t\ttabs: 'groupAccess',\n\t\t\t\t\t\ttitle: Loc.getMessage('EC_ACCESS_GROUP_ADMIN'),\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'SG' + this.sectionManager.ownerId + '_' + 'E',\n\t\t\t\t\t\tentityId: 'group',\n\t\t\t\t\t\ttabs: 'groupAccess',\n\t\t\t\t\t\ttitle: Loc.getMessage('EC_ACCESS_GROUP_MODERATORS'),\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'SG' + this.sectionManager.ownerId + '_' + 'K',\n\t\t\t\t\t\tentityId: 'group',\n\t\t\t\t\t\ttabs: 'groupAccess',\n\t\t\t\t\t\ttitle: Loc.getMessage('EC_ACCESS_GROUP_MEMBERS'),\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t});\n\t\t\tthis.entitySelectorDialog.show();\n\t\t});\n\t}\n\n\thandleEntitySelectorChanges()\n\t{\n\t\tconst entityList = this.entitySelectorDialog.getSelectedItems();\n\t\tthis.entitySelectorDialog.hide();\n\t\tif (Type.isArray(entityList))\n\t\t{\n\t\t\tentityList.forEach((entity) => {\n\t\t\t\tlet title;\n\t\t\t\tif (entity.entityId === 'group')\n\t\t\t\t{\n\t\t\t\t\ttitle = this.sectionManager.ownerName + ': ' + entity.title.text;\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\ttitle = entity.title.text;\n\t\t\t\t}\n\t\t\t\tconst code = Util.convertEntityToAccessCode(entity);\n\t\t\t\tUtil.setAccessName(code, title);\n\t\t\t\tthis.insertAccessRow(title, code);\n\t\t\t});\n\t\t}\n\n\t\tRuntime.debounce(() => {\n\t\t\tthis.entitySelectorDialog.destroy();\n\t\t}, 400)();\n\t}\n\n\t// todo: refactor it\n\tinsertAccessRow(title, code, value)\n\t{\n\t\tif (!this.accessControls[code])\n\t\t{\n\t\t\tif (value === undefined)\n\t\t\t{\n\t\t\t\tfor(let taskId in this.sectionAccessTasks)\n\t\t\t\t{\n\t\t\t\t\tif (\n\t\t\t\t\t\tthis.sectionAccessTasks.hasOwnProperty(taskId)\n\t\t\t\t\t\t&& this.sectionAccessTasks[taskId].name === 'calendar_view'\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\tvalue = taskId;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst\n\t\t\t\trowNode = Dom.adjust(this.DOM.accessTable.insertRow(-1), {props : {className: 'calendar-section-slider-access-table-row'}}),\n\t\t\t\ttitleNode = Dom.adjust(rowNode.insertCell(-1), {\n\t\t\t\t\tprops : {className: 'calendar-section-slider-access-table-cell'},\n\t\t\t\t\thtml: '<span class=\"calendar-section-slider-access-title\">' + Text.encode(title) + ':</span>'}),\n\t\t\t\tvalueCell = Dom.adjust(rowNode.insertCell(-1), {\n\t\t\t\t\tprops : {className: 'calendar-section-slider-access-table-cell'},\n\t\t\t\t\tattrs: {'data-bx-calendar-access-selector': code}\n\t\t\t\t}),\n\t\t\t\tselectNode = valueCell.appendChild(Dom.create('SPAN', {\n\t\t\t\t\tprops: {className: 'calendar-section-slider-access-container'}\n\t\t\t\t})),\n\t\t\t\tvalueNode = selectNode.appendChild(Dom.create('SPAN', {\n\t\t\t\t\ttext: this.accessTasks[value] ? this.accessTasks[value].title : '',\n\t\t\t\t\tprops: {className: 'calendar-section-slider-access-value'}\n\t\t\t\t})),\n\t\t\t\tremoveIcon = selectNode.appendChild(Dom.create('SPAN', {\n\t\t\t\t\tprops: {className: 'calendar-section-slider-access-remove'},\n\t\t\t\t\tattrs: {'data-bx-calendar-access-remove': code}\n\t\t\t\t}));\n\n\t\t\tthis.access[code] = value;\n\n\t\t\tthis.accessControls[code] = {\n\t\t\t\trowNode: rowNode,\n\t\t\t\ttitleNode: titleNode,\n\t\t\t\tvalueNode: valueNode,\n\t\t\t\tremoveIcon: removeIcon\n\t\t\t};\n\t\t}\n\t}\n\n\tcheckAccessTableHeight()\n\t{\n\t\tif (this.checkTableTimeout)\n\t\t{\n\t\t\tthis.checkTableTimeout = clearTimeout(this.checkTableTimeout);\n\t\t}\n\n\t\tthis.checkTableTimeout = setTimeout(() => {\n\t\t\tif (Dom.hasClass(this.DOM.accessWrap, 'shown'))\n\t\t\t{\n\t\t\t\tif (this.DOM.accessWrap.offsetHeight - this.DOM.accessTable.offsetHeight < 36)\n\t\t\t\t{\n\t\t\t\t\tthis.DOM.accessWrap.style.maxHeight = parseInt(this.DOM.accessTable.offsetHeight) + 100 + 'px';\n\t\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.DOM.accessWrap.style.maxHeight = '';\n\t\t\t}\n\t\t}, 300);\n\t}\n\n\tshowAccessSelectorPopup(params)\n\t{\n\t\tif (\n\t\t\tthis.accessPopupMenu\n\t\t\t&& this.accessPopupMenu.popupWindow\n\t\t\t&& this.accessPopupMenu.popupWindow.isShown()\n\t\t)\n\t\t{\n\t\t\treturn this.accessPopupMenu.close();\n\t\t}\n\n\t\tconst _this = this;\n\t\tconst menuItems = [];\n\n\t\tfor(let taskId in this.accessTasks)\n\t\t{\n\t\t\tif (this.accessTasks.hasOwnProperty(taskId))\n\t\t\t{\n\t\t\t\tmenuItems.push(\n\t\t\t\t\t{\n\t\t\t\t\t\ttext: this.accessTasks[taskId].title,\n\t\t\t\t\t\tonclick: (function (value)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\treturn function ()\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tparams.setValueCallback(value);\n\t\t\t\t\t\t\t\t_this.accessPopupMenu.close();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})(taskId)\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tthis.accessPopupMenu = this.BX.PopupMenu.create(\n\t\t\t'section-access-popup' + Util.randomInt(),\n\t\t\tparams.node,\n\t\t\tmenuItems,\n\t\t\t{\n\t\t\t\tcloseByEsc : true,\n\t\t\t\tautoHide : true,\n\t\t\t\toffsetTop: -5,\n\t\t\t\toffsetLeft: 0,\n\t\t\t\tangle: true,\n\t\t\t\tcacheable: false\n\t\t\t}\n\t\t);\n\n\t\tthis.accessPopupMenu.show();\n\n\t}\n}\n\n\n\n\n\n\n\n\n","import { Tag, Dom, Loc, Event} from 'main.core';\nimport { EditForm } from '../../sectioninterface/src/editform';\nimport { Util } from 'calendar.util';\nimport { TagSelector } from 'ui.entity-selector';\n\nexport class EditFormRoom extends EditForm\n{\n\tconstructor(options = {})\n\t{\n\t\tsuper(options);\n\t\tthis.setEventNamespace('BX.Calendar.Rooms.EditFormRoom');\n\n\t\tthis.DOM.outerWrap = options.wrap;\n\t\tthis.roomsManager = options.roomsManager;\n\t\tthis.categoryManager = options.categoryManager;\n\t\tthis.capacityNumbers = [3, 5, 7, 10, 25];\n\t\tthis.zIndex = options.zIndex || 3100;\n\t\tthis.closeCallback = options.closeCallback;\n\t\tthis.BX = Util.getBX();\n\t\tthis.keyHandlerBinded = this.keyHandler.bind(this);\n\t\tthis.freezeButtonsCallback = options.freezeButtonsCallback;\n\t}\n\n\tshow(params = {})\n\t{\n\t\tthis.setParams(params);\n\t\tthis.create();\n\t\tif (this.showAccess)\n\t\t{\n\t\t\tDom.style(this.DOM.accessLink, 'display', null);\n\t\t\tDom.style(this.DOM.accessWrap, 'display', null);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tDom.style(this.DOM.accessLink, 'display', 'none');\n\t\t\tDom.style(this.DOM.accessWrap, 'display', 'none');\n\t\t}\n\n\t\tEvent.bind(document, 'keydown', this.keyHandlerBinded);\n\t\tDom.addClass(this.DOM.outerWrap, 'show');\n\n\t\tif (this.room)\n\t\t{\n\t\t\tthis.setInputValues(this.room);\n\t\t}\n\n\t\tthis.setFocusOnInput();\n\n\t\tthis.isOpenedState = true;\n\t}\n\n\tsetParams(params)\n\t{\n\t\tthis.actionType = params.actionType;\n\t\tthis.room = params.room;\n\t\tthis.showAccess = params.showAccess !== false;\n\t}\n\n\tsetInputValues(room)\n\t{\n\t\tif (room.color)\n\t\t{\n\t\t\tthis.setColor(room.color);\n\t\t}\n\n\t\tthis.setAccess(room.access || room.data.ACCESS || {});\n\n\t\tif (room.name)\n\t\t{\n\t\t\tthis.DOM.roomsTitleInput.value = room.name;\n\t\t}\n\n\t\tif (this.room.capacity)\n\t\t{\n\t\t\tthis.DOM.roomsCapacityInput.value = room.capacity;\n\t\t}\n\t}\n\n\tsetFocusOnInput()\n\t{\n\t\tBX.focus(this.DOM.roomsTitleInput);\n\t\tif (this.DOM.roomsTitleInput.value !== '')\n\t\t{\n\t\t\tthis.DOM.roomsTitleInput.select();\n\t\t}\n\t}\n\n\tcreate()\n\t{\n\t\tthis.wrap = this.getSliderContentWrap();\n\t\tthis.DOM.formFieldsWrap = this.getFormFieldsWrap(this.wrap);\n\n\t\tthis.DOM.roomsTitleInput = this.createTitleInput(this.DOM.formFieldsWrap);\n\t\tthis.DOM.roomsCapacityInput = this.createCapacityInput(this.DOM.formFieldsWrap);\n\t\tthis.DOM.categorySelect = this.DOM.formFieldsWrap.appendChild(this.renderCategorySelector());\n\n\t\tthis.createBottomOptions(this.DOM.formFieldsWrap);\n\t\tthis.createButtons(this.DOM.formFieldsWrap);\n\n\t\tthis.isCreated = true;\n\t}\n\n\tgetSliderContentWrap()\n\t{\n\t\tlet sliderContentWrap = this.DOM.outerWrap.querySelector('.calendar-form-content');\n\t\tif (sliderContentWrap)\n\t\t{\n\t\t\tDom.clean(sliderContentWrap);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tsliderContentWrap = this.DOM.outerWrap.appendChild(\n\t\t\t\tTag.render`\n\t\t\t\t\t<div class=\"calendar-form-content\"></div>\n\t\t\t\t`\n\t\t\t);\n\t\t}\n\n\t\treturn sliderContentWrap;\n\t}\n\n\tgetFormFieldsWrap(wrap)\n\t{\n\t\treturn wrap.appendChild(\n\t\t\t\tTag.render`\n\t\t\t\t<div class=\"calendar-list-slider-widget-content\"></div>\n\t\t\t`\n\t\t\t)\n\t\t\t.appendChild(\n\t\t\t\tTag.render`\n\t\t\t\t<div class=\"calendar-list-slider-widget-content-block\"></div>\n\t\t\t`\n\t\t\t);\n\t}\n\n\tcreateTitleInput(wrap)\n\t{\n\t\treturn wrap.appendChild(\n\t\t\tTag.render`\n\t\t\t\t<div class=\"calendar-field-container calendar-field-container-string\">\n\t\t\t\t\t<div class=\"calendar-field-block\">\n\t\t\t\t\t\t<input type=\"text\" placeholder=\"${Loc.getMessage('EC_SEC_SLIDER_SECTION_TITLE')}\" \n\t\t\t\t\t\t\tclass=\"calendar-field calendar-field-string\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t`)\n\t\t.querySelector('.calendar-field')\n\t\t;\n\t}\n\n\tcreateCapacityInput(wrap)\n\t{\n\t\treturn wrap.appendChild(\n\t\t\tTag.render`\n\t\t\t\t<div class=\"calendar-field-container calendar-field-container-string\">\n\t\t\t\t\t<div class=\"calendar-field-block\">\n\t\t\t\t\t\t<div class =\"calendar-list-slider-card-widget-title\" style=\"margin-bottom: 0\">\n\t\t\t\t\t\t\t<span class=\"calendar-list-slider-card-widget-title-text\">\n\t\t\t\t\t\t\t\t${Loc.getMessage('EC_SEC_SLIDER_SECTION_CAPACITY')}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<input type=\"number\" class=\"calendar-field calendar-field-number\" placeholder=\"0\"/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t`)\n\t\t.querySelector('.calendar-field')\n\t\t;\n\t}\n\n\trenderCategorySelector()\n\t{\n\t\tconst categorySelector = this.renderCategorySelectorWrap();\n\n\t\tthis.categoryTagSelector = this.createCategoryTagSelector();\n\n\t\tthis.categoryTagSelector.renderTo(categorySelector.querySelector('.calendar-list-slider-card-widget-title'));\n\t\tif(this.categoryTagSelector.isRendered())\n\t\t{\n\t\t\tthis.onAfterCategorySelectorRender();\n\t\t}\n\n\t\treturn categorySelector;\n\t}\n\n\trenderCategorySelectorWrap()\n\t{\n\t\treturn Tag.render`\n\t\t\t<div class=\"calendar-field-container calendar-field-container-string calendar-field-container-rooms\">\n\t\t\t\t<div class=\"calendar-field-block\">\n\t\t\t\t\t<div class =\"calendar-list-slider-card-widget-title\">\n\t\t\t\t\t\t<span class=\"calendar-list-slider-card-widget-title-text\">\n\t\t\t\t\t\t\t${Loc.getMessage('EC_SEC_SLIDER_ROOM_CATEGORY')}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`;\n\t}\n\n\tcreateCategoryTagSelector()\n\t{\n\t\tlet preparedCategories = [];\n\t\tpreparedCategories = this.prepareCategoriesForDialog(this.categoryManager.getCategories());\n\n\t\tthis.selectedCategory = null;\n\t\tif(this.room && this.room.categoryId)\n\t\t{\n\t\t\tthis.selectedCategory = this.prepareCategoriesForDialog([\n\t\t\t\tthis.categoryManager.getCategory(this.room.categoryId)\n\t\t\t]);\n\t\t}\n\n\t\treturn new TagSelector({\n\t\t\tplaceholder: Loc.getMessage('EC_SEC_SLIDER_CATEGORY_SELECTOR_PLACEHOLDER'),\n\t\t\ttextBoxWidth: 320,\n\t\t\tmultiple: false,\n\t\t\tevents: {\n\t\t\t\tonTagAdd: () => {\n\t\t\t\t\tconst itemsContainer = this.categoryTagSelector.getItemsContainer();\n\t\t\t\t\tDom.addClass(\n\t\t\t\t\t\titemsContainer,\n\t\t\t\t\t\t'calendar-room-form-category-selector-container-with-change-button',\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\tonTagRemove: () => {\n\t\t\t\t\tconst itemsContainer = this.categoryTagSelector.getItemsContainer();\n\t\t\t\t\tDom.removeClass(\n\t\t\t\t\t\titemsContainer,\n\t\t\t\t\t\t'calendar-room-form-category-selector-container-with-change-button',\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t},\n\t\t\tdialogOptions: {\n\t\t\t\tcontext: 'CALENDAR_CONTEXT',\n\t\t\t\twidth: 315,\n\t\t\t\theight: 280,\n\t\t\t\tcompactView: true,\n\t\t\t\tshowAvatars: false,\n\t\t\t\tdropdownMode: true,\n\t\t\t\ttabs: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'category',\n\t\t\t\t\t\ttitle: 'categories',\n\t\t\t\t\t\titemOrder: { title: 'asc' },\n\t\t\t\t\t\ticon: 'none',\n\t\t\t\t\t\tstubOptions: { title: Loc.getMessage('EC_SEC_SLIDER_CATEGORY_SELECTOR_STUB') },\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\titems: preparedCategories,\n\t\t\t\tselectedItems: this.selectedCategory,\n\t\t\t},\n\t\t});\n\t}\n\n\tonAfterCategorySelectorRender()\n\t{\n\t\t//make avatar containers in input smaller and hide tab icon\n\t\tDom.addClass(this.categoryTagSelector.getDialog().getContainer(),'calendar-room-form-category-selector-dialog');\n\n\t\t//make entity selector input style similar to other inputs in room slider\n\t\tDom.addClass(this.categoryTagSelector.getOuterContainer(), 'calendar-field-tag-selector-outer-container');\n\t\tDom.addClass(this.categoryTagSelector.getTextBox(), 'calendar-field-tag-selector-text-box');\n\t\tif(this.selectedCategory !== null)\n\t\t{\n\t\t\tconst itemsContainer = this.categoryTagSelector.getItemsContainer();\n\t\t\tDom.addClass(itemsContainer, 'calendar-room-form-category-selector-container-with-change-button');\n\t\t}\n\t}\n\n\tcreateBottomOptions(wrap)\n\t{\n\t\tthis.DOM.optionsWrap = wrap.appendChild(\n\t\t\tTag.render`\n\t\t\t<div class=\"calendar-list-slider-new-calendar-options-container\"></div>`\n\t\t);\n\n\t\tthis.initSectionColorSelector();\n\n\t\tthis.initAccessController();\n\t}\n\n\tcreateButtons(wrap)\n\t{\n\t\tthis.buttonsWrap = wrap.appendChild(\n\t\t\tTag.render`\n\t\t\t\t<div class=\"calendar-list-slider-btn-container\"></div>\n\t\t\t`\n\t\t);\n\n\t\tif (this.actionType === 'createRoom')\n\t\t{\n\t\t\tthis.renderCreateButton(this.buttonsWrap);\n\t\t}\n\t\telse if (this.actionType === 'updateRoom')\n\t\t{\n\t\t\tthis.renderUpdateButton(this.buttonsWrap);\n\t\t}\n\n\t\tthis.renderCancelButton(this.buttonsWrap);\n\t}\n\n\trenderCreateButton(wrap)\n\t{\n\t\tthis.saveBtn = new BX.UI.Button({\n\t\t\ttext: Loc.getMessage('EC_SEC_SLIDER_SAVE'),\n\t\t\tclassName: 'ui-btn ui-btn-success',\n\t\t\tevents: { click: this.createRoom.bind(this) }\n\t\t});\n\t\tthis.saveBtn.renderTo(wrap);\n\t}\n\n\trenderUpdateButton(wrap)\n\t{\n\t\tthis.saveBtn = new BX.UI.Button({\n\t\t\ttext: Loc.getMessage('EC_SEC_SLIDER_SAVE'),\n\t\t\tclassName: 'ui-btn ui-btn-success',\n\t\t\tevents: { click: this.updateRoom.bind(this) }\n\t\t});\n\t\tthis.saveBtn.renderTo(wrap);\n\t}\n\n\trenderCancelButton(wrap)\n\t{\n\t\tnew BX.UI.Button({\n\t\t\ttext: Loc.getMessage('EC_SEC_SLIDER_CANCEL'),\n\t\t\tclassName: 'ui-btn ui-btn-link',\n\t\t\tevents: { click: this.checkClose.bind(this) }\n\t\t}).renderTo(wrap);\n\t}\n\n\tcreateRoom()\n\t{\n\t\tif(this.freezeButtonsCallback)\n\t\t{\n\t\t\tthis.freezeButtonsCallback();\n\t\t}\n\t\tthis.saveBtn.setWaiting(true);\n\t\tthis.roomsManager.createRoom({\n\t\t\t\tname: this.DOM.roomsTitleInput.value,\n\t\t\t\tcapacity: this.DOM.roomsCapacityInput.value,\n\t\t\t\tcolor: this.color,\n\t\t\t\taccess: this.access,\n\t\t\t\tcategoryId: this.getSelectedCategory(),\n\t\t\t})\n\t\t\t.then(() => {\n\t\t\t\tthis.saveBtn.setWaiting(false);\n\t\t\t\tthis.close();\n\t\t\t});\n\t}\n\n\tinitAccessController()\n\t{\n\t\tthis.buildAccessController();\n\t\tthis.initDialogStandard();\n\t\tthis.initAccessSelectorPopup();\n\t}\n\n\tupdateRoom()\n\t{\n\t\tif(this.freezeButtonsCallback)\n\t\t{\n\t\t\tthis.freezeButtonsCallback();\n\t\t}\n\t\tthis.saveBtn.setWaiting(true);\n\t\tthis.roomsManager.updateRoom({\n\t\t\t\tid: this.room.id,\n\t\t\t\tlocation_id: this.room.location_id,\n\t\t\t\tname: this.DOM.roomsTitleInput.value,\n\t\t\t\tcapacity: this.DOM.roomsCapacityInput.value,\n\t\t\t\tcolor: this.color,\n\t\t\t\taccess: this.access,\n\t\t\t\tcategoryId: this.getSelectedCategory(),\n\t\t\t})\n\t\t\t.then(() => {\n\t\t\t\tthis.saveBtn.setWaiting(false);\n\t\t\t\tthis.close();\n\t\t\t});\n\t}\n\n\tkeyHandler(e)\n\t{\n\t\tif (this.categoryTagSelector.getDialog().isOpen())\n\t\t{\n\t\t\treturn;\n\t\t}\n\t\tif (e.keyCode === Util.getKeyCode('escape'))\n\t\t{\n\t\t\tthis.checkClose();\n\t\t}\n\t\telse if (e.keyCode === Util.getKeyCode('enter') && this.actionType === 'createRoom')\n\t\t{\n\t\t\tthis.createRoom();\n\t\t}\n\t\telse if (e.keyCode === Util.getKeyCode('enter') && this.actionType === 'updateRoom')\n\t\t{\n\t\t\tthis.updateRoom();\n\t\t}\n\t}\n\n\tprepareCategoriesForDialog(categories)\n\t{\n\t\treturn categories.map((category) => {\n\t\t\treturn {\n\t\t\t\tid: category.id,\n\t\t\t\tentityId: 'category',\n\t\t\t\ttitle: category.name,\n\t\t\t\ttabs: 'category',\n\t\t\t}\n\t\t});\n\t}\n\n\tgetSelectedCategory()\n\t{\n\t\tconst item = this.categoryTagSelector.getDialog().getSelectedItems()[0];\n\n\t\treturn item ? item.id : null;\n\t}\n}","import { Tag, Dom, Loc, Event} from 'main.core';\nimport { EditForm } from '../../sectioninterface/src/editform';\nimport { Util } from 'calendar.util';\nimport { Dialog, TagSelector } from 'ui.entity-selector';\n\nexport class EditFormCategory extends EditForm\n{\n\tconstructor(options = {})\n\t{\n\t\tsuper(options);\n\t\tthis.setEventNamespace('BX.Calendar.Rooms.EditFormCategory');\n\t\tthis.DOM.outerWrap = options.wrap;\n\t\tthis.categoryManager = options.categoryManager;\n\t\tthis.zIndex = options.zIndex || 3100;\n\t\tthis.closeCallback = options.closeCallback;\n\t\tthis.BX = Util.getBX();\n\t\tthis.keyHandlerBinded = this.keyHandler.bind(this);\n\t\tthis.preparedSelectedRooms = [];\n\t\tthis.freezeButtonsCallback = options.freezeButtonsCallback;\n\t}\n\n\tshow(params = {})\n\t{\n\t\tthis.setParams(params);\n\n\t\tif(this.category && this.category.rooms)\n\t\t{\n\t\t\tthis.preparedSelectedRooms = this.prepareRoomsForDialog(this.category.rooms);\n\t\t}\n\n\t\tthis.create();\n\n\t\tEvent.bind(document, 'keydown', this.keyHandlerBinded);\n\t\tDom.addClass(this.DOM.outerWrap, 'show');\n\n\t\tif (this.category)\n\t\t{\n\t\t\tthis.setInputValues(this.category);\n\t\t}\n\n\t\tthis.setFocusOnInput();\n\n\t\tthis.isOpenedState = true;\n\t}\n\n\tsetParams(params)\n\t{\n\t\tthis.actionType = params.actionType;\n\t\tthis.category = params.category;\n\t}\n\n\tsetInputValues()\n\t{\n\t\tif(this.category.name)\n\t\t{\n\t\t\tthis.DOM.categoryTitleInput.value = this.category.name;\n\t\t}\n\t}\n\n\tsetFocusOnInput()\n\t{\n\t\tBX.focus(this.DOM.categoryTitleInput);\n\t\tif (this.DOM.categoryTitleInput.value !== '')\n\t\t{\n\t\t\tthis.DOM.categoryTitleInput.select();\n\t\t}\n\t}\n\n\tcreate(params)\n\t{\n\t\tthis.wrap = this.getSliderContentWrap();\n\t\tthis.DOM.formFieldsWrap = this.getFormFieldsWrap(this.wrap);\n\n\t\tthis.DOM.categoryTitleInput = this.createTitleInput(this.DOM.formFieldsWrap);\n\t\tthis.DOM.locationSelector = this.DOM.formFieldsWrap.appendChild(this.renderRoomSelector());\n\t\tthis.createButtons(this.DOM.formFieldsWrap);\n\n\t\tthis.isCreated = true;\n\t}\n\n\tgetSliderContentWrap()\n\t{\n\t\tlet sliderContentWrap = this.DOM.outerWrap.querySelector('.calendar-form-content');\n\t\tif (sliderContentWrap)\n\t\t{\n\t\t\tDom.clean(sliderContentWrap);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tsliderContentWrap = this.DOM.outerWrap.appendChild(\n\t\t\t\tTag.render`\n\t\t\t\t\t<div class=\"calendar-form-content\"></div>\n\t\t\t\t`\n\t\t\t);\n\t\t}\n\n\t\treturn sliderContentWrap;\n\t}\n\n\tgetFormFieldsWrap(wrap)\n\t{\n\t\treturn wrap.appendChild(\n\t\t\t\tTag.render`\n\t\t\t\t<div class=\"calendar-list-slider-widget-content\"></div>\n\t\t\t`\n\t\t\t)\n\t\t\t.appendChild(\n\t\t\t\tTag.render`\n\t\t\t\t<div class=\"calendar-list-slider-widget-content-block\"></div>\n\t\t\t`\n\t\t);\n\t}\n\n\tcreateTitleInput(wrap)\n\t{\n\t\treturn wrap.appendChild(\n\t\t\tTag.render`\n\t\t\t\t<div class=\"calendar-field-container calendar-field-container-string\">\n\t\t\t\t\t<div class=\"calendar-field-block\">\n\t\t\t\t\t\t<input type=\"text\" placeholder=\"${Loc.getMessage('EC_SEC_SLIDER_SECTION_TITLE')}\" \n\t\t\t\t\t\t\tclass=\"calendar-field calendar-field-string\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t`)\n\t\t.querySelector('.calendar-field')\n\t\t;\n\t}\n\n\trenderRoomSelector()\n\t{\n\t\tconst roomSelector = this.renderRoomSelectorWrap();\n\n\t\tthis.roomTagSelector = this.createRoomTagSelector();\n\n\t\tthis.roomTagSelector.renderTo(roomSelector.querySelector('.calendar-list-slider-card-widget-title'));\n\t\tif(this.roomTagSelector.isRendered())\n\t\t{\n\t\t\tthis.onAfterRoomSelectorRender();\n\t\t}\n\n\t\treturn roomSelector;\n\t}\n\n\trenderRoomSelectorWrap()\n\t{\n\t\treturn Tag.render`\n\t\t\t\t<div class=\"calendar-field-container calendar-field-container-string\">\n\t\t\t\t\t<div class=\"calendar-field-block\" >\n\t\t\t\t\t\t<div class =\"calendar-list-slider-card-widget-title\" style=\"border: none\">\n\t\t\t\t\t\t\t<span class=\"calendar-list-slider-card-widget-title-text\">\n\t\t\t\t\t\t\t\t${Loc.getMessage('EC_SEC_SLIDER_ROOM_SELECTOR')}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t`;\n\t}\n\n\tcreateRoomTagSelector()\n\t{\n\t\treturn new TagSelector({\n\t\t\tplaceholder: Loc.getMessage('EC_SEC_SLIDER_ROOM_SELECTOR_PLACEHOLDER'),\n\t\t\ttextBoxWidth:320,\n\t\t\tdialogOptions: {\n\t\t\t\tcontext: 'CALENDAR_CONTEXT',\n\t\t\t\twidth: 315,\n\t\t\t\theight: 280,\n\t\t\t\tcompactView: true,\n\t\t\t\tshowAvatars: true,\n\t\t\t\tdropdownMode: true,\n\t\t\t\tpreload: true,\n\t\t\t\tentities: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'room',\n\t\t\t\t\t\tdynamicLoad: true,\n\t\t\t\t\t\tfilters: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tid: 'calendar.roomFilter',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tselectedItems: this.preparedSelectedRooms,\n\t\t\t\ttabs: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'room',\n\t\t\t\t\t\ttitle: 'rooms',\n\t\t\t\t\t\titemOrder: { title: 'asc' },\n\t\t\t\t\t\ticon: 'none',\n\t\t\t\t\t\tstubOptions: { title: Loc.getMessage('EC_SEC_SLIDER_ROOM_SELECTOR_STUB') },\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t});\n\t}\n\n\tonAfterRoomSelectorRender()\n\t{\n\t\t//make avatar containers in input smaller and hide tab icon\n\t\tDom.addClass(this.roomTagSelector.getDialog().getContainer(), 'calendar-category-form-room-selector-dialog');\n\t\tDom.addClass(this.roomTagSelector.getContainer(), 'calendar-category-form-room-tag-selector');\n\n\t\t//make entity selector input style similar to other inputs in room slider\n\t\tDom.addClass(this.roomTagSelector.getOuterContainer(), 'calendar-field-tag-selector-outer-container');\n\t\tDom.addClass(this.roomTagSelector.getTextBox(), 'calendar-field-tag-selector-text-box');\n\t}\n\n\tcreateButtons(wrap)\n\t{\n\t\tthis.buttonsWrap = wrap.appendChild(\n\t\t\tTag.render`\n\t\t\t\t<div class=\"calendar-list-slider-btn-container\"></div>\n\t\t\t`\n\t\t);\n\n\t\tif (this.actionType === 'createCategory')\n\t\t{\n\t\t\tthis.renderCreateButton(this.buttonsWrap);\n\t\t}\n\t\telse if (this.actionType === 'updateCategory')\n\t\t{\n\t\t\tthis.renderUpdateButton(this.buttonsWrap);\n\t\t}\n\n\t\tthis.renderCancelButton(this.buttonsWrap);\n\t}\n\n\trenderCreateButton(wrap)\n\t{\n\t\tthis.saveBtn = new BX.UI.Button({\n\t\t\ttext: Loc.getMessage('EC_SEC_SLIDER_SAVE'),\n\t\t\tclassName: 'ui-btn ui-btn-success',\n\t\t\tevents: { click: this.createCategory.bind(this) }\n\t\t});\n\t\tthis.saveBtn.renderTo(wrap);\n\t}\n\n\trenderUpdateButton(wrap)\n\t{\n\t\tthis.saveBtn = new BX.UI.Button({\n\t\t\ttext: Loc.getMessage('EC_SEC_SLIDER_SAVE'),\n\t\t\tclassName: 'ui-btn ui-btn-success',\n\t\t\tevents: { click: this.updateCategory.bind(this) }\n\t\t});\n\t\tthis.saveBtn.renderTo(wrap);\n\t}\n\n\trenderCancelButton(wrap)\n\t{\n\t\tnew BX.UI.Button({\n\t\t\ttext: Loc.getMessage('EC_SEC_SLIDER_CANCEL'),\n\t\t\tclassName: 'ui-btn ui-btn-link',\n\t\t\tevents: { click: this.checkClose.bind(this) }\n\t\t}).renderTo(wrap);\n\t}\n\n\tcreateCategory()\n\t{\n\t\tif(this.freezeButtonsCallback)\n\t\t{\n\t\t\tthis.freezeButtonsCallback();\n\t\t}\n\t\tthis.saveBtn.setWaiting(true);\n\t\tconst selectedRooms = this.getSelectedRooms();\n\t\tthis.categoryManager.createCategory({\n\t\t\t\tname: this.DOM.categoryTitleInput.value,\n\t\t\t\trooms: selectedRooms,\n\t\t})\n\t\t.then(() => {\n\t\t\tthis.saveBtn.setWaiting(false);\n\t\t\tthis.close();\n\t\t});\n\t}\n\n\tupdateCategory()\n\t{\n\t\tif(this.freezeButtonsCallback)\n\t\t{\n\t\t\tthis.freezeButtonsCallback();\n\t\t}\n\t\tconst newSelectedRooms = this.prepareRoomsBeforeUpdate(this.getSelectedRooms());\n\t\tconst oldSelectedRooms = this.prepareRoomsBeforeUpdate(this.preparedSelectedRooms);\n\n\t\tconst toAddCategory = newSelectedRooms.filter(x => !oldSelectedRooms.includes(x));\n\t\tconst toRemoveCategory = oldSelectedRooms.filter(x => !newSelectedRooms.includes(x));\n\t\tthis.saveBtn.setWaiting(true);\n\t\tthis.categoryManager.updateCategory({\n\t\t\ttoAddCategory,\n\t\t\ttoRemoveCategory,\n\t\t\tid: this.category.id,\n\t\t\tname: this.DOM.categoryTitleInput.value,\n\t\t})\n\t\t.then(() => {\n\t\t\tthis.saveBtn.setWaiting(false);\n\t\t\tthis.close();\n\t\t});\n\t}\n\n\tgetSelectedRooms()\n\t{\n\t\tconst items = this.roomTagSelector.getDialog().getSelectedItems();\n\t\tconst rooms = [];\n\t\titems.map(item => rooms.push(item.id));\n\n\t\treturn rooms;\n\t}\n\n\tkeyHandler(e)\n\t{\n\t\tif (this.roomTagSelector.getDialog().isOpen())\n\t\t{\n\t\t\treturn;\n\t\t}\n\t\tif (e.keyCode === Util.getKeyCode('escape'))\n\t\t{\n\t\t\tthis.checkClose();\n\t\t}\n\t\telse if (e.keyCode === Util.getKeyCode('enter') && this.actionType === 'createCategory')\n\t\t{\n\t\t\tthis.createCategory();\n\t\t}\n\t\telse if (e.keyCode === Util.getKeyCode('enter') && this.actionType === 'updateCategory')\n\t\t{\n\t\t\tthis.updateCategory();\n\t\t}\n\t}\n\n\tprepareRoomsForDialog(rooms)\n\t{\n\t\treturn rooms.map((room) => {\n\t\t\treturn {\n\t\t\t\tid: room.id,\n\t\t\t\tentityId: 'room',\n\t\t\t\ttitle: room.name,\n\t\t\t\tavatarOptions: {\n\t\t\t\t\t'bgColor': room.color,\n\t\t\t\t\t'bgSize': '22px',\n\t\t\t\t\t'bgImage': 'none',\n\t\t\t\t},\n\t\t\t\ttabs: 'room',\n\t\t\t}\n\t\t});\n\t}\n\n\tprepareRoomsBeforeUpdate(rooms)\n\t{\n\t\tif(!rooms)\n\t\t{\n\t\t\treturn [];\n\t\t}\n\n\t\treturn rooms.map((room) => {\n\t\t\tif(room.id)\n\t\t\t{\n\t\t\t\treturn parseInt(room.id, 10);\n\t\t\t}\n\n\t\t\treturn parseInt(room, 10);\n\t\t});\n\t}\n}","import { Type, Dom, Loc, Tag, Event, Text } from 'main.core';\nimport { SectionInterface } from 'calendar.sectioninterface';\nimport { Util } from 'calendar.util';\nimport { EditFormRoom } from './editformroom';\nimport { EditFormCategory } from './editformcategory';\nimport { MessageBox } from 'ui.dialogs.messagebox';\n\nexport class RoomsInterface extends SectionInterface\n{\n\tSLIDER_WIDTH = 400;\n\tSLIDER_DURATION = 80;\n\tsliderId = \"calendar:rooms-slider\";\n\tCATEGORY_ROOMS_SHOWN_ALL = 0;\n\tCATEGORY_ROOMS_SHOWN_SOME = 1;\n\tCATEGORY_ROOMS_SHOWN_NONE = 2;\n\n\tconstructor({ calendarContext, readonly, roomsManager, categoryManager, isConfigureList = false })\n\t{\n\t\tsuper({ calendarContext, readonly, roomsManager });\n\t\tthis.setEventNamespace('BX.Calendar.RoomsInterface');\n\t\tthis.roomsManager = roomsManager;\n\t\tthis.categoryManager = categoryManager;\n\t\tthis.isConfigureList = isConfigureList;\n\t\tthis.calendarContext = calendarContext;\n\t\tthis.readonly = readonly;\n\t\tthis.BX = Util.getBX();\n\t\tthis.sliderOnClose = this.hide.bind(this);\n\t\tthis.deleteRoomHandlerBinded = this.deleteRoomHandler.bind(this);\n\t\tthis.refreshRoomsBinded = this.refreshRooms.bind(this);\n\t\tthis.refreshCategoriesBinded = this.refreshCategories.bind(this);\n\t\tif (this.calendarContext !== null)\n\t\t{\n\t\t\tif (this.calendarContext.util.config.accessNames)\n\t\t\t{\n\t\t\t\tUtil.setAccessNames(this.calendarContext?.util?.config?.accessNames);\n\t\t\t}\n\t\t}\n\t\tthis.setRoomsFromManager();\n\t\tthis.setCategoriesFromManager();\n\t}\n\n\taddEventEmitterSubscriptions()\n\t{\n\t\tUtil.getBX().Event.EventEmitter.subscribe(\n\t\t\t'BX.Calendar.Rooms:create',\n\t\t\tthis.refreshRoomsBinded\n\t\t);\n\n\t\tUtil.getBX().Event.EventEmitter.subscribe(\n\t\t\t'BX.Calendar.Rooms:update',\n\t\t\tthis.refreshRoomsBinded\n\t\t);\n\n\t\tUtil.getBX().Event.EventEmitter.subscribe(\n\t\t\t'BX.Calendar.Rooms:delete',\n\t\t\tthis.deleteRoomHandlerBinded\n\t\t);\n\n\t\tUtil.getBX().Event.EventEmitter.subscribe(\n\t\t\t'BX.Calendar.Rooms:pull-create',\n\t\t\tthis.refreshRoomsBinded\n\t\t);\n\t\tUtil.getBX().Event.EventEmitter.subscribe(\n\t\t\t'BX.Calendar.Rooms:pull-update',\n\t\t\tthis.refreshRoomsBinded\n\t\t);\n\t\tUtil.getBX().Event.EventEmitter.subscribe(\n\t\t\t'BX.Calendar.Rooms:pull-delete',\n\t\t\tthis.deleteRoomHandlerBinded\n\t\t);\n\n\t\tUtil.getBX().Event.EventEmitter.subscribe(\n\t\t\t'BX.Calendar.Rooms.Categories:create',\n\t\t\tthis.refreshCategoriesBinded\n\t\t);\n\n\t\tUtil.getBX().Event.EventEmitter.subscribe(\n\t\t\t'BX.Calendar.Rooms.Categories:update',\n\t\t\tthis.refreshCategoriesBinded\n\t\t);\n\n\t\tUtil.getBX().Event.EventEmitter.subscribe(\n\t\t\t'BX.Calendar.Rooms.Categories:delete',\n\t\t\tthis.refreshCategoriesBinded\n\t\t);\n\n\t\tUtil.getBX().Event.EventEmitter.subscribe(\n\t\t\t'BX.Calendar.Rooms.Categories:pull-create',\n\t\t\tthis.refreshCategoriesBinded,\n\t\t);\n\t\tUtil.getBX().Event.EventEmitter.subscribe(\n\t\t\t'BX.Calendar.Rooms.Categories:pull-update',\n\t\t\tthis.refreshCategoriesBinded,\n\t\t);\n\t\tUtil.getBX().Event.EventEmitter.subscribe(\n\t\t\t'BX.Calendar.Rooms.Categories:pull-delete',\n\t\t\tthis.refreshCategoriesBinded,\n\t\t);\n\t}\n\n\tdestroyEventEmitterSubscriptions()\n\t{\n\t\tUtil.getBX().Event.EventEmitter.unsubscribe(\n\t\t\t'BX.Calendar.Rooms:create',\n\t\t\tthis.refreshRoomsBinded\n\t\t);\n\n\t\tUtil.getBX().Event.EventEmitter.unsubscribe(\n\t\t\t'BX.Calendar.Rooms:update',\n\t\t\tthis.refreshRoomsBinded\n\t\t);\n\n\t\tUtil.getBX().Event.EventEmitter.unsubscribe(\n\t\t\t'BX.Calendar.Rooms:delete',\n\t\t\tthis.deleteRoomHandlerBinded\n\t\t);\n\n\t\tUtil.getBX().Event.EventEmitter.unsubscribe(\n\t\t\t'BX.Calendar.Rooms:pull-create',\n\t\t\tthis.refreshRoomsBinded\n\t\t);\n\t\tUtil.getBX().Event.EventEmitter.unsubscribe(\n\t\t\t'BX.Calendar.Rooms:pull-update',\n\t\t\tthis.refreshRoomsBinded\n\t\t);\n\t\tUtil.getBX().Event.EventEmitter.unsubscribe(\n\t\t\t'BX.Calendar.Rooms:pull-delete',\n\t\t\tthis.deleteRoomHandlerBinded\n\t\t);\n\n\n\t\tUtil.getBX().Event.EventEmitter.unsubscribe(\n\t\t\t'BX.Calendar.Rooms.Categories:create',\n\t\t\tthis.refreshCategoriesBinded\n\t\t);\n\n\t\tUtil.getBX().Event.EventEmitter.unsubscribe(\n\t\t\t'BX.Calendar.Rooms.Categories:update',\n\t\t\tthis.refreshCategoriesBinded\n\t\t);\n\n\t\tUtil.getBX().Event.EventEmitter.unsubscribe(\n\t\t\t'BX.Calendar.Rooms.Categories:delete',\n\t\t\tthis.refreshCategoriesBinded\n\t\t);\n\n\t\tUtil.getBX().Event.EventEmitter.unsubscribe(\n\t\t\t'BX.Calendar.Rooms.Categories:pull-create',\n\t\t\tthis.refreshCategoriesBinded,\n\t\t);\n\t\tUtil.getBX().Event.EventEmitter.unsubscribe(\n\t\t\t'BX.Calendar.Rooms.Categories:pull-update',\n\t\t\tthis.refreshCategoriesBinded,\n\t\t);\n\t\tUtil.getBX().Event.EventEmitter.unsubscribe(\n\t\t\t'BX.Calendar.Rooms.Categories:pull-delete',\n\t\t\tthis.refreshCategoriesBinded,\n\t\t);\n\t}\n\n\tcreateContent()\n\t{\n\t\tthis.DOM.outerWrap = this.renderOuterWrap();\n\t\tthis.DOM.titleWrap = this.DOM.outerWrap.appendChild(this.renderTitleWrap());\n\n\t\tif (!this.readonly)\n\t\t{\n\t\t\t// #1. Controls\n\t\t\tthis.DOM.addButton = this.DOM.titleWrap.appendChild(this.renderAddButton());\n\n\t\t\t// #2. Forms\n\t\t\tthis.DOM.roomFormWrap = this.DOM.outerWrap.appendChild(this.renderRoomFormWrap());\n\t\t}\n\t\tthis.createRoomBlocks();\n\n\t\treturn this.DOM.outerWrap;\n\t}\n\n\trenderOuterWrap()\n\t{\n\t\treturn Tag.render`\n\t\t\t\t<div class=\"calendar-list-slider-wrap\"></div>\n\t\t\t`\n\t\t;\n\t}\n\n\trenderTitleWrap()\n\t{\n\t\treturn Tag.render`\n\t\t\t\t<div class=\"calendar-list-slider-title-container\">\n\t\t\t\t\t<div class=\"calendar-list-slider-title\">${Loc.getMessage('EC_SECTION_ROOMS')}</div>\n\t\t\t\t</div>\n\t\t\t`\n\t\t;\n\t}\n\n\trenderAddButton()\n\t{\n\t\treturn Tag.render`\n\t\t\t\t<span class=\"ui-btn-split ui-btn-light-border\" style=\"margin-right: 0\">\n\t\t\t\t\t<span class=\"ui-btn-main\" onclick=\"${this.showEditRoomForm.bind(this)}\">\n\t\t\t\t\t\t${Loc.getMessage('EC_ADD')}\n\t\t\t\t\t</span>\n\t\t\t\t\t<span id = \"add-menu-button\" class=\"ui-btn-menu\" onclick=\"${this.showAddMenu.bind(this)}\"></span>\n\t\t\t\t</span>\n\t\t`;\n\t}\n\n\trenderRoomFormWrap()\n\t{\n\t\treturn Tag.render`\n\t\t\t\t<div class=\"calendar-list-slider-card-widget calendar-list-slider-form-wrap\">\n\t\t\t\t\t<div class=\"calendar-list-slider-card-widget-title\">\n\t\t\t\t\t\t<span class=\"calendar-list-slider-card-widget-title-text\">${Loc.getMessage('EC_SEC_SLIDER_NEW_ROOM')}</span>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t`;\n\t}\n\n\tshowAddMenu(): void\n\t{\n\t\tconst menuButtons = this.createAddMenuButtons();\n\n\t\tif (menuButtons && menuButtons.length > 0)\n\t\t{\n\t\t\tthis.addRoomMenu = this.createAddMenu(menuButtons);\n\t\t\tthis.addRoomMenu.popupWindow.show();\n\t\t\tthis.addRoomMenu.popupWindow.subscribe('onClose', () => {\n\t\t\t\tthis.allowSliderClose();\n\t\t\t});\n\n\t\t\tthis.denySliderClose();\n\t\t}\n\t}\n\n\tcreateAddMenuButtons()\n\t{\n\t\tconst menuButtons = [];\n\n\t\tmenuButtons.push({\n\t\t\ttext: Loc.getMessage('EC_ADD_LOCATION'),\n\t\t\tonclick: () => {\n\t\t\t\tthis.addRoomMenu.close();\n\t\t\t\tthis.showEditRoomForm();\n\t\t\t},\n\t\t});\n\t\tmenuButtons.push({\n\t\t\ttext: Loc.getMessage('EC_ADD_CATEGORY'),\n\t\t\tonclick: () => {\n\t\t\t\tthis.addRoomMenu.close();\n\t\t\t\tthis.showEditCategoryForm();\n\t\t\t},\n\t\t});\n\n\t\treturn menuButtons;\n\t}\n\n\tcreateAddMenu(menuButtons)\n\t{\n\t\tconst params = {\n\t\t\toffsetLeft: 20,\n\t\t\tcloseByEsc: true,\n\t\t\tangle: {\n\t\t\t\tposition: 'top'\n\t\t\t},\n\t\t\tautoHide: true,\n\t\t\toffsetTop: 0,\n\t\t\tcacheable: false\n\t\t};\n\n\t\treturn new BX.PopupMenuWindow(\n\t\t\t'add-menu-form-' + Util.getRandomInt(),\n\t\t\tBX(\"add-menu-button\"),\n\t\t\tmenuButtons,\n\t\t\tparams\n\t\t);\n\t}\n\n\tcreateRoomBlocks()\n\t{\n\t\tthis.setBlocksWrap();\n\n\t\tif (Type.isArray(this.rooms) || Type.isObject(this.categories))\n\t\t{\n\t\t\tthis.categories['categories'].forEach((category) => {\n\t\t\t\tif(category.rooms.length !== 0)\n\t\t\t\t{\n\t\t\t\t\tthis.createCategoryBlock(category, this.createBlockWrap(this.DOM.blocksWrap));\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tif(this.categories['default'].length > 0)\n\t\t\t{\n\t\t\t\tlet defaultBlockWrap = this.createBlockWrap(this.DOM.blocksWrap);\n\t\t\t\tthis.categories['default'].forEach(room => this.createRoomBlock(room, defaultBlockWrap));\n\t\t\t}\n\n\t\t\tthis.categories['categories'].forEach((category) => {\n\t\t\t\tif(category.rooms.length === 0 && this.categoryManager.canDo('edit'))\n\t\t\t\t{\n\t\t\t\t\tthis.createCategoryBlock(category, this.createBlockWrap(this.DOM.blocksWrap));\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tif(this.isFrozen())\n\t\t{\n\t\t\tthis.unfreezeButtons();\n\t\t}\n\t}\n\n\tsetRoomsFromManager()\n\t{\n\t\tthis.rooms = this.roomsManager.getRooms()\n\t\t\t.filter(function(room) {\n\t\t\t\treturn room.belongsToView() || room.isPseudo();\n\t\t\t})\n\t\t;\n\t}\n\n\tsetCategoriesFromManager()\n\t{\n\t\tthis.categories = this.categoryManager.getCategoriesWithRooms(this.rooms);\n\t}\n\n\tsetBlocksWrap()\n\t{\n\t\tif (this.DOM.blocksWrap)\n\t\t{\n\t\t\tDom.clean(this.DOM.blocksWrap);\n\t\t\tDom.adjust(this.DOM.blocksWrap, {\n\t\t\t\tprops: { className: '' }\n\t\t\t});\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.DOM.blocksWrap = this.DOM.outerWrap.appendChild(\n\t\t\t\tTag.render`\n\t\t\t\t\t<div></div>\n\t\t\t\t`\n\t\t\t);\n\t\t}\n\t}\n\n\tshowEditRoomForm(params = {})\n\t{\n\t\tif (typeof params.actionType === 'undefined')\n\t\t{\n\t\t\tparams.actionType = 'createRoom';\n\t\t}\n\t\tthis.closeForms();\n\t\tconst formTitleNode = this.DOM.roomFormWrap.querySelector('.calendar-list-slider-card-widget-title-text');\n\n\t\tthis.editSectionForm = new EditFormRoom({\n\t\t\twrap: this.DOM.roomFormWrap,\n\t\t\tsectionAccessTasks: this.roomsManager.getSectionAccessTasks(),\n\t\t\troomsManager: this.roomsManager,\n\t\t\tcategoryManager: this.categoryManager,\n\t\t\tfreezeButtonsCallback: this.freezeButtons.bind(this),\n\t\t\tcloseCallback: () => {\n\t\t\t\tthis.allowSliderClose();\n\t\t\t}\n\t\t});\n\n\t\tlet showAccess = true;\n\t\tif (params.room && params.room.id)\n\t\t{\n\t\t\tformTitleNode.innerHTML = Loc.getMessage('EC_SEC_SLIDER_EDIT_SECTION_ROOM');\n\t\t\tshowAccess = params.room.canDo('access');\n\t\t}\n\t\telse\n\t\t{\n\t\t\tformTitleNode.innerHTML = Loc.getMessage('EC_SEC_SLIDER_NEW_ROOM');\n\t\t}\n\n\t\tthis.editSectionForm.show({\n\t\t\tshowAccess,\n\t\t\troom: params.room || {\n\t\t\t\tcolor: Util.getRandomColor(),\n\t\t\t\taccess: this.roomsManager.getDefaultSectionAccess()\n\t\t\t},\n\t\t\tactionType: params.actionType\n\t\t});\n\n\t\tthis.denySliderClose();\n\t}\n\n\tshowEditCategoryForm(params = {})\n\t{\n\t\tif (typeof params.actionType === 'undefined')\n\t\t{\n\t\t\tparams.actionType = 'createCategory';\n\t\t}\n\n\t\tthis.closeForms();\n\t\tconst formTitleNode = this.DOM.roomFormWrap.querySelector('.calendar-list-slider-card-widget-title-text');\n\n\t\tthis.editSectionForm = new EditFormCategory({\n\t\t\twrap: this.DOM.roomFormWrap,\n\t\t\tsectionAccessTasks: this.roomsManager.getSectionAccessTasks(),\n\t\t\tcategoryManager: this.categoryManager,\n\t\t\tfreezeButtonsCallback: this.freezeButtons.bind(this),\n\t\t\tcloseCallback: () => {\n\t\t\t\tthis.allowSliderClose();\n\t\t\t}\n\t\t});\n\n\t\tif (params.category && params.category.id)\n\t\t{\n\t\t\tformTitleNode.innerHTML = Loc.getMessage('EC_SEC_SLIDER_EDIT_ROOM_CATEGORY');\n\t\t}\n\t\telse\n\t\t{\n\t\t\tformTitleNode.innerHTML = Loc.getMessage('EC_SEC_SLIDER_NEW_CATEGORY');\n\t\t}\n\n\t\tthis.editSectionForm.show({\n\t\t\tcategory: params.category || {},\n\t\t\tactionType: params.actionType\n\t\t});\n\n\t\tthis.denySliderClose();\n\t}\n\n\tshowRoomMenu(room, menuItemNode)\n\t{\n\t\tconst itemNode = menuItemNode.closest('[data-bx-calendar-section]')\n\t\t\t|| menuItemNode.closest('[ data-bx-calendar-section-without-action]')\n\t\t;\n\n\t\tif (Type.isElementNode(itemNode))\n\t\t{\n\t\t\tDom.addClass(itemNode, 'active');\n\t\t}\n\n\t\tconst menuItems = this.createRoomMenuButtons(room);\n\n\t\tif (menuItems && menuItems.length > 0)\n\t\t{\n\t\t\tthis.roomActionMenu = this.createRoomMenu(menuItems, menuItemNode);\n\n\t\t\tthis.roomActionMenu.show();\n\t\t\tthis.roomActionMenu.popupWindow.subscribe('onClose', () => {\n\t\t\t\tif (Type.isElementNode(itemNode))\n\t\t\t\t{\n\t\t\t\t\tDom.removeClass(itemNode, 'active');\n\t\t\t\t}\n\t\t\t\tthis.allowSliderClose();\n\t\t\t});\n\n\t\t\tthis.denySliderClose();\n\t\t}\n\t\telse\n\t\t{\n\t\t\tDom.removeClass(itemNode, 'active');\n\t\t}\n\t}\n\n\tcreateRoomMenuButtons(room)\n\t{\n\t\tconst menuItems = [];\n\n\t\tif (room.canDo('view_time') && !this.isConfigureList)\n\t\t{\n\t\t\tmenuItems.push({\n\t\t\t\ttext: Loc.getMessage('EC_SEC_LEAVE_ONE_ROOM'),\n\t\t\t\tonclick: () => {\n\t\t\t\t\tthis.roomActionMenu.close();\n\t\t\t\t\tthis.showOnlyOneSection(room, this.roomsManager.rooms);\n\t\t\t\t\tthis.updateAllCategoriesCheckboxState();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tif (!this.readonly && room.canDo('edit_section'))\n\t\t{\n\t\t\tmenuItems.push({\n\t\t\t\ttext: Loc.getMessage('EC_SEC_EDIT'),\n\t\t\t\tonclick: () => {\n\t\t\t\t\tthis.roomActionMenu.close();\n\t\t\t\t\tthis.showEditRoomForm({ room: room, actionType: 'updateRoom' });\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tif (room.canDo('edit_section') && room.belongsToView())\n\t\t{\n\t\t\tmenuItems.push({\n\t\t\t\ttext: Loc.getMessage('EC_SEC_DELETE'),\n\t\t\t\tonclick: () => {\n\t\t\t\t\tthis.roomActionMenu.close();\n\t\t\t\t\tthis.showRoomDeleteConfirm(room);\n\t\t\t\t\t// this.deleteRoom(room);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\treturn menuItems;\n\t}\n\n\tcreateRoomMenu(menuItems, menuItemNode)\n\t{\n\t\tconst params = {\n\t\t\tcloseByEsc: true,\n\t\t\tautoHide: true,\n\t\t\tzIndex: this.zIndex,\n\t\t\toffsetTop: 0,\n\t\t\toffsetLeft: 9,\n\t\t\tangle: true,\n\t\t\tcacheable: false,\n\t\t};\n\n\t\treturn top.BX.PopupMenu.create(\n\t\t\t'section-menu-' + Util.getRandomInt(),\n\t\t\tmenuItemNode,\n\t\t\tmenuItems,\n\t\t\tparams\n\t\t);\n\t}\n\n\trefreshRooms()\n\t{\n\t\tthis.setRoomsFromManager();\n\t\tthis.setCategoriesFromManager();\n\t\tthis.createRoomBlocks();\n\t}\n\n\trefreshCategories()\n\t{\n\t\tthis.roomsManager.reloadRoomsFromDatabase().then(this.refreshRoomsBinded);\n\t}\n\n\tcreateBlockWrap(wrap)\n\t{\n\t\tconst listWrap =\n\t\t\twrap.appendChild(\n\t\t\t\tTag.render`\n\t\t\t\t\t<div class=\"calendar-list-slider-card-widget calendar-list-slider-category-widget\">\n\t\t\t\t\t\t<div class=\"calendar-list-slider-widget-content\">\n\t\t\t\t\t\t\t<div class=\"calendar-list-slider-widget-content-block\">\n\t\t\t\t\t\t\t\t<ul class=\"calendar-list-slider-container\"></ul>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t`\n\t\t\t)\n\t\t\t.querySelector('.calendar-list-slider-container')\n\t\t;\n\t\tEvent.bind(listWrap, 'click', this.roomClickHandler.bind(this));\n\n\t\treturn listWrap;\n\t}\n\n\tcreateCategoryBlock(category, listWrap)\n\t{\n\t\tif (!category.DOM)\n\t\t{\n\t\t\tcategory.DOM = {};\n\t\t}\n\n\t\tcategory.DOM.item = listWrap.appendChild(this.renderCategoryBlockWrap(category));\n\n\t\tconst categoryRooms = this.categoryManager.getCategoryRooms(category, this.rooms);\n\t\tif(!this.isConfigureList && categoryRooms.length)\n\t\t{\n\t\t\tcategory.setCheckboxStatus(this.determineCategoryCheckboxStatus(category, categoryRooms));\n\t\t\tcategory.DOM.checkbox =\n\t\t\t\tcategory.DOM.item.appendChild(this.renderCategoryBlockCheckbox(category, categoryRooms))\n\t\t\t;\n\t\t}\n\n\t\tcategory.DOM.title = category.DOM.item.appendChild(this.renderCategoryBlockTitle(category));\n\n\t\tif(this.categoryManager.canDo('edit') || category.rooms.length > 0)\n\t\t{\n\t\t\tcategory.DOM.actionCont = category.DOM.item.appendChild(this.renderCategoryBlockActionsContainer(category));\n\t\t}\n\n\t\tthis.createCategoryBlockContent(category, listWrap);\n\t\treturn category;\n\t}\n\n\trenderCategoryBlockWrap(category)\n\t{\n\t\tif (this.isConfigureList)\n\t\t{\n\t\t\treturn Tag.render`\n\t\t\t\t\t<li class=\"calendar-list-slider-item-category\"\n\t\t\t\t\t\tdata-bx-calendar-category-without-action=\"${category.id}\"\n\t\t\t\t\t>\n\t\t\t\t\t</li>\n\t\t\t\t`\n\t\t\t;\n\t\t}\n\n\t\treturn Tag.render`\n\t\t\t\t\t<li class=\"calendar-list-slider-item-category\" data-bx-calendar-category=\"${category.id}\"></li>\n\t\t`;\n\t}\n\n\trenderCategoryBlockCheckbox(category)\n\t{\n\t\tlet checkboxStyle = '';\n\t\tif(category.checkboxStatus === this.CATEGORY_ROOMS_SHOWN_ALL)\n\t\t{\n\t\t\tcheckboxStyle = 'calendar-list-slider-item-checkbox-checked';\n\t\t}\n\t\telse if(category.checkboxStatus === this.CATEGORY_ROOMS_SHOWN_SOME)\n\t\t{\n\t\t\tcheckboxStyle = 'calendar-list-slider-item-checkbox-indeterminate';\n\t\t}\n\n\t\treturn Tag.render`\n\t\t\t\t\t<div class=\"calendar-title-checkbox calendar-list-slider-item-checkbox\n\t\t\t\t\t\t${checkboxStyle}\" style=\"background-color: #a5abb2\"\n\t\t\t\t\t>\n\t\t\t\t\t</div>\n\t\t`;\n\t}\n\n\trenderCategoryBlockActionsContainer(category)\n\t{\n\t\treturn Tag.render`\n\t\t\t\t\t<div class=\"calendar-list-slider-item-actions-container\n\t\t\t\t\tcalendar-list-slider-item-context-menu-category-wrap\" \n\t\t\t\t\t\tdata-bx-calendar-category-menu=\"${category.id}\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<span class=\"calendar-list-slider-item-context-menu\n\t\t\t\t\t\t\tcalendar-list-slider-item-context-menu-category\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</div>\n\t\t`;\n\t}\n\n\trenderCategoryBlockTitle(category)\n\t{\n\t\treturn Tag.render`\n\t\t\t\t<div class=\"calendar-list-slider-card-widget-title-text calendar-list-slider-item-category-text\" \n\t\t\t\t\ttitle=\"${Text.encode(category.name)}\"\n\t\t\t\t>\n\t\t\t\t\t${Text.encode(category.name)}\n\t\t\t\t</div>\n\t\t`;\n\t}\n\n\tcreateCategoryBlockContent(category, wrap)\n\t{\n\t\tif(category.rooms.length)\n\t\t{\n\t\t\tcategory.rooms.forEach((room) => this.createRoomBlock(room, wrap));\n\t\t}\n\t\telse\n\t\t{\n\t\t\twrap.appendChild(\n\t\t\t\tTag.render`\n\t\t\t\t\t<li class=\"calendar-list-slider-card-widget-title-text\">${Loc.getMessage('EC_CATEGORY_EMPTY')}</li>\n\t\t\t\t`\n\t\t\t);\n\t\t}\n\t}\n\n\tcreateRoomBlock(room, listWrap)\n\t{\n\t\tif (!room.DOM)\n\t\t{\n\t\t\troom.DOM = {};\n\t\t}\n\n\t\troom.DOM.item = listWrap.appendChild(this.renderRoomBlockWrap(room))\n\t\troom.DOM.checkbox = room.DOM.item.appendChild(this.renderRoomBlockCheckbox(room));\n\t\troom.DOM.title = room.DOM.item.appendChild(this.renderRoomBlockTitle(room));\n\t\troom.DOM.actionCont = room.DOM.item.appendChild(this.renderRoomBlockActionsContainer(room));\n\n\t\treturn room;\n\t}\n\n\trenderRoomBlockWrap(room)\n\t{\n\t\tif (this.isConfigureList)\n\t\t{\n\t\t\treturn Tag.render`\n\t\t\t\t\t<li class=\"calendar-list-slider-item\" data-bx-calendar-section-without-action=\"${room.id}\"></li>\n\t\t\t`;\n\t\t}\n\n\t\treturn Tag.render`\n\t\t\t\t\t<li class=\"calendar-list-slider-item\" data-bx-calendar-section=\"${room.id}\"></li>\n\t\t`;\n\t}\n\n\trenderRoomBlockCheckbox(room)\n\t{\n\t\tif (this.isConfigureList)\n\t\t{\n\t\t\treturn Tag.render`\n\t\t\t\t\t<div class=\"calendar-field-select-icon\" style=\"background-color: ${room.color}\"></div>\n\t\t\t`;\n\t\t}\n\n\t\treturn Tag.render`\n\t\t\t\t<div class=\"calendar-list-slider-item-checkbox \n\t\t\t\t\t${room.isShown() ? 'calendar-list-slider-item-checkbox-checked' : ''}\" \n\t\t\t\t\tstyle=\"background-color: ${room.color}\"\n\t\t\t\t>\n\t\t\t\t</div>\n\t\t`;\n\t}\n\n\trenderRoomBlockTitle(room)\n\t{\n\t\treturn Tag.render`\n\t\t\t\t<div class=\"calendar-list-slider-item-name\" title=\"${Text.encode(room.name)}\">\n\t\t\t\t\t${Text.encode(room.name)}\n\t\t\t\t</div>\n\t\t`;\n\t}\n\n\trenderRoomBlockActionsContainer(room)\n\t{\n\t\treturn Tag.render`\n\t\t\t\t<div class=\"calendar-list-slider-item-actions-container\" data-bx-calendar-section-menu=\"${room.id}\">\n\t\t\t\t\t<span class=\"calendar-list-slider-item-context-menu\"></span>\n\t\t\t\t</div>\n\t\t`;\n\t}\n\n\troomClickHandler(e)\n\t{\n\t\tconst target = Util.findTargetNode(e.target || e.srcElement, this.DOM.outerWrap);\n\n\t\tif (target && target.getAttribute)\n\t\t{\n\t\t\tif (target.getAttribute('data-bx-calendar-category') !== null)\n\t\t\t{\n\t\t\t\tconst category = this.categoryManager.getCategory(\n\t\t\t\t\tparseInt(target.getAttribute('data-bx-calendar-category'), 10)\n\t\t\t\t);\n\t\t\t\tif(category && category.rooms.length > 0)\n\t\t\t\t{\n\t\t\t\t\tthis.switchCategory(category, this.rooms);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (target.getAttribute('data-bx-calendar-category-menu') !== null)\n\t\t\t{\n\t\t\t\tlet categoryId = target.getAttribute('data-bx-calendar-category-menu');\n\t\t\t\tthis.showCategoryMenu(this.categoryManager.getCategory(categoryId), target);\n\t\t\t}\n\t\t\telse if (target.getAttribute('data-bx-calendar-section-menu') !== null)\n\t\t\t{\n\t\t\t\tlet roomId = target.getAttribute('data-bx-calendar-section-menu');\n\t\t\t\tthis.showRoomMenu(this.roomsManager.getRoom(roomId), target);\n\t\t\t}\n\t\t\telse if (target.getAttribute('data-bx-calendar-section') !== null)\n\t\t\t{\n\t\t\t\tlet roomId = target.getAttribute('data-bx-calendar-section');\n\t\t\t\tconst room = this.roomsManager.getRoom(roomId);\n\t\t\t\tthis.switchSection(room);\n\t\t\t\tthis.updateCategoryCheckboxState(this.categoryManager.getCategory(room.categoryId));\n\t\t\t}\n\t\t}\n\t}\n\n\tsetRoomsForCategory(categoryId)\n\t{\n\t\tthis.categoryManager.unsetCategoryRooms(categoryId);\n\n\t\tconst rooms = this.roomsManager.getRooms();\n\t\tconst categoryManager = this.categoryManager;\n\n\t\trooms.forEach(function(room){\n\t\t\tif(room.categoryId === categoryId)\n\t\t\t{\n\t\t\t\tcategoryManager.getCategory(categoryId).addRoom(room)\n\t\t\t}\n\t\t},this);\n\t}\n\n\tshowOnlyOneCategory(category, sections)\n\t{\n\t\tfor (let curSection of sections)\n\t\t{\n\t\t\tif (curSection.categoryId === category.id)\n\t\t\t{\n\t\t\t\tthis.switchOnSection(curSection);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.switchOffSection(curSection);\n\t\t\t}\n\t\t}\n\n\t\tthis.updateAllCategoriesCheckboxState();\n\n\t\tthis.calendarContext.reload();\n\t}\n\n\tshowCategoryMenu(category, menuItemNode)\n\t{\n\t\tthis.setRoomsForCategory(category.id);\n\n\t\tconst menuItems = this.createCategoryMenuButtons(category);\n\n\t\tif (menuItems && menuItems.length > 0)\n\t\t{\n\t\t\tthis.categoryActionMenu = this.createCategoryMenu(menuItems, menuItemNode);\n\n\t\t\tthis.categoryActionMenu.show();\n\t\t\tthis.categoryActionMenu.popupWindow.subscribe('onClose', () => {\n\t\t\t\tthis.allowSliderClose();\n\t\t\t});\n\n\t\t\tthis.denySliderClose();\n\t\t}\n\t}\n\n\tcreateCategoryMenuButtons(category)\n\t{\n\t\tconst menuItems = [];\n\n\t\tif (this.categoryManager.canDo('view') && !this.isConfigureList && category.rooms.length > 0)\n\t\t{\n\t\t\tmenuItems.push({\n\t\t\t\ttext: Loc.getMessage('EC_SEC_LEAVE_ONE_ROOM'),\n\t\t\t\tonclick: () => {\n\t\t\t\t\tthis.categoryActionMenu.close();\n\t\t\t\t\tthis.showOnlyOneCategory(category, this.roomsManager.rooms);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tif (!this.readonly && this.categoryManager.canDo('edit'))\n\t\t{\n\t\t\tmenuItems.push({\n\t\t\t\ttext: Loc.getMessage('EC_SEC_EDIT'),\n\t\t\t\tonclick: () => {\n\t\t\t\t\tthis.categoryActionMenu.close();\n\t\t\t\t\tthis.showEditCategoryForm({ category: category, actionType: 'updateCategory' });\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tif (this.categoryManager.canDo('edit'))\n\t\t{\n\t\t\tmenuItems.push({\n\t\t\t\ttext: Loc.getMessage('EC_SEC_DELETE'),\n\t\t\t\tonclick: () => {\n\t\t\t\t\tthis.categoryActionMenu.close();\n\t\t\t\t\tthis.freezeButtons();\n\t\t\t\t\tthis.showCategoryDeleteConfirm(category);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\treturn menuItems;\n\t}\n\n\tcreateCategoryMenu(menuItems, menuItemNode)\n\t{\n\t\tconst params = {\n\t\t\tcloseByEsc: true,\n\t\t\tautoHide: true,\n\t\t\tzIndex: this.zIndex,\n\t\t\toffsetTop: 0,\n\t\t\toffsetLeft: 9,\n\t\t\tangle: true,\n\t\t\tcacheable: false,\n\t\t};\n\n\t\treturn top.BX.PopupMenu.create(\n\t\t\t'category-menu-' + Util.getRandomInt(),\n\t\t\tmenuItemNode,\n\t\t\tmenuItems,\n\t\t\tparams,\n\t\t);\n\t}\n\n\tfindCheckBoxNodes(id)\n\t{\n\t\treturn this.DOM.blocksWrap.querySelectorAll(\n\t\t\t'.calendar-list-slider-item[data-bx-calendar-section=\\''\n\t\t\t+ id\n\t\t\t+ '\\'] .calendar-list-slider-item-checkbox'\n\t\t);\n\t}\n\n\tdestroy(event)\n\t{\n\t\tif (event && event.getSlider && event.getSlider().getUrl() === this.sliderId)\n\t\t{\n\t\t\tthis.destroyEventEmitterSubscriptions();\n\t\t\tBX.removeCustomEvent('SidePanel.Slider:onCloseComplete', BX.proxy(this.destroy, this));\n\t\t\tBX.SidePanel.Instance.destroy(this.sliderId);\n\t\t\tdelete this.DOM.blocksWrap;\n\n\t\t\tif (this.roomActionMenu)\n\t\t\t{\n\t\t\t\tthis.roomActionMenu.close();\n\t\t\t}\n\t\t}\n\t}\n\n\tdeleteRoomHandler(event)\n\t{\n\t\tif (event && event instanceof Util.getBX().Event.BaseEvent)\n\t\t{\n\t\t\tconst data = event.getData();\n\t\t\tconst deleteID = parseInt(data.id);\n\n\t\t\tthis.rooms.forEach((room, index) => {\n\t\t\t\tif (parseInt(room.id) === deleteID && room.DOM && room.DOM.item)\n\t\t\t\t{\n\t\t\t\t\tDom.addClass(room.DOM.item, 'calendar-list-slider-item-disappearing');\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tDom.clean(room.DOM.item, true);\n\t\t\t\t\t\tthis.rooms.splice(index, 1);\n\t\t\t\t\t}, 300);\n\t\t\t\t}\n\t\t\t}, this);\n\n\t\t\tthis.closeForms();\n\t\t}\n\t\tthis.refreshRooms();\n\t}\n\n\tdeleteRoom(room)\n\t{\n\t\tthis.roomsManager.deleteRoom(\n\t\t\troom.id,\n\t\t\troom.location_id\n\t\t);\n\n\t\tif (this.DOM.confirmRoomPopup)\n\t\t{\n\t\t\tthis.DOM.confirmRoomPopup.close();\n\t\t\tdelete this.DOM.confirmRoomPopup;\n\t\t}\n\t\tif (this.currentRoom)\n\t\t{\n\t\t\tdelete this.currentRoom;\n\t\t}\n\t}\n\n\tdeleteCategory(category)\n\t{\n\t\tthis.categoryManager.deleteCategory(\n\t\t\tcategory.id\n\t\t);\n\n\t\tif (this.DOM.confirmCategoryPopup)\n\t\t{\n\t\t\tthis.DOM.confirmCategoryPopup.close();\n\t\t\tdelete this.DOM.confirmCategoryPopup;\n\t\t}\n\t\tif (this.currentCategory)\n\t\t{\n\t\t\tdelete this.currentCategory;\n\t\t}\n\t}\n\n\tfreezeButtons()\n\t{\n\t\tDom.addClass(this.DOM.outerWrap, 'calendar-content-locked');\n\t}\n\n\tunfreezeButtons()\n\t{\n\t\tDom.removeClass(this.DOM.outerWrap, 'calendar-content-locked');\n\t}\n\n\tisFrozen()\n\t{\n\t\treturn Dom.hasClass(this.DOM.outerWrap, 'calendar-content-locked');\n\t}\n\n\tupdateCategoryCheckboxState(category)\n\t{\n\t\tif(!category)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst updatedCategoryCheckboxStatus = this.determineCategoryCheckboxStatus(category, this.roomsManager.rooms);\n\n\t\tif(category.checkboxStatus !== updatedCategoryCheckboxStatus)\n\t\t{\n\t\t\tcategory.setCheckboxStatus(updatedCategoryCheckboxStatus);\n\t\t\tthis.setCategoryCheckboxState(this.findCategoryCheckBoxNode(category.id), updatedCategoryCheckboxStatus);\n\t\t}\n\t}\n\n\tdetermineCategoryCheckboxStatus(category, rooms)\n\t{\n\t\tlet hasEnabled = false;\n\t\tlet hasDisabled = false;\n\n\t\trooms.forEach((room) => {\n\t\t\tif(room.categoryId === category.id)\n\t\t\t{\n\t\t\t\tif(room.isShown() && !hasEnabled)\n\t\t\t\t{\n\t\t\t\t\thasEnabled = true;\n\t\t\t\t}\n\n\t\t\t\tif(!room.isShown() && !hasDisabled)\n\t\t\t\t{\n\t\t\t\t\thasDisabled = true;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tif (hasEnabled && hasDisabled)\n\t\t{\n\t\t\treturn this.CATEGORY_ROOMS_SHOWN_SOME;\n\t\t}\n\n\t\tif (hasEnabled)\n\t\t{\n\t\t\treturn this.CATEGORY_ROOMS_SHOWN_ALL;\n\t\t}\n\n\t\treturn this.CATEGORY_ROOMS_SHOWN_NONE;\n\t}\n\n\tswitchCategory(category, rooms)\n\t{\n\t\tconst checkboxNode = this.findCategoryCheckBoxNode(category.id);\n\n\t\tswitch (category.checkboxStatus)\n\t\t{\n\t\t\tcase this.CATEGORY_ROOMS_SHOWN_SOME:\n\t\t\tcase this.CATEGORY_ROOMS_SHOWN_NONE:\n\t\t\t\tthis.switchOnCategoryRooms(category.id, rooms);\n\t\t\t\tthis.setCategoryCheckboxState(checkboxNode, this.CATEGORY_ROOMS_SHOWN_ALL);\n\t\t\t\tcategory.setCheckboxStatus(this.CATEGORY_ROOMS_SHOWN_ALL);\n\t\t\t\tbreak;\n\t\t\tcase this.CATEGORY_ROOMS_SHOWN_ALL:\n\t\t\t\tthis.switchOffCategoryRooms(category.id, rooms);\n\t\t\t\tthis.setCategoryCheckboxState(checkboxNode, this.CATEGORY_ROOMS_SHOWN_NONE);\n\t\t\t\tcategory.setCheckboxStatus(this.CATEGORY_ROOMS_SHOWN_NONE);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\n\t\tthis.calendarContext.reload();\n\t}\n\n\tsetCategoryCheckboxState(checkboxNode, checkboxStatus)\n\t{\n\t\tDom.removeClass(checkboxNode, 'calendar-list-slider-item-checkbox-checked');\n\t\tDom.removeClass(checkboxNode, 'calendar-list-slider-item-checkbox-indeterminate');\n\n\t\tswitch (checkboxStatus)\n\t\t{\n\t\t\tcase this.CATEGORY_ROOMS_SHOWN_SOME:\n\t\t\t\tDom.addClass(checkboxNode, 'calendar-list-slider-item-checkbox-indeterminate');\n\t\t\t\tbreak;\n\t\t\tcase this.CATEGORY_ROOMS_SHOWN_ALL:\n\t\t\t\tDom.addClass(checkboxNode, 'calendar-list-slider-item-checkbox-checked');\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tfindCategoryCheckBoxNode(id)\n\t{\n\t\treturn this.DOM.outerWrap.querySelector(\n\t\t\t'.calendar-list-slider-item-category[data-bx-calendar-category=\\''\n\t\t\t+ id\n\t\t\t+ '\\'] .calendar-list-slider-item-checkbox'\n\t\t);\n\t}\n\n\tswitchOnCategoryRooms(categoryId, rooms)\n\t{\n\t\trooms.forEach((room) =>{\n\t\t\tif(room.categoryId === categoryId && !room.isShown())\n\t\t\t{\n\t\t\t\tthis.switchOnSection(room);\n\t\t\t}\n\t\t});\n\t}\n\n\tswitchOffCategoryRooms(categoryId, rooms)\n\t{\n\t\trooms.forEach((room) =>{\n\t\t\tif(room.categoryId === categoryId && room.isShown())\n\t\t\t{\n\t\t\t\tthis.switchOffSection(room);\n\t\t\t}\n\t\t});\n\t}\n\n\tupdateAllCategoriesCheckboxState()\n\t{\n\t\tthis.categoryManager.getCategories().forEach(category => this.updateCategoryCheckboxState(category));\n\t}\n\n\tshowRoomDeleteConfirm(room)\n\t{\n\t\tthis.currentRoom = room;\n\n\t\tthis.DOM.confirmRoomPopup = new MessageBox({\n\t\t\tmessage: this.getConfirmRoomInterfaceContent(Loc.getMessage('EC_ROOM_DELETE_CONFIRM')),\n\t\t\tminHeight: 120,\n\t\t\tminWidth: 280,\n\t\t\tmaxWidth: 300,\n\t\t\tbuttons: BX.UI.Dialogs.MessageBoxButtons.OK_CANCEL,\n\t\t\tonOk: () => {\n\t\t\t\tthis.deleteRoom(room);\n\t\t\t},\n\t\t\tonCancel: () => {\n\t\t\t\tthis.DOM.confirmRoomPopup.close();\n\t\t\t},\n\t\t\tokCaption: Loc.getMessage('EC_SEC_DELETE'),\n\t\t\tpopupOptions: {\n\t\t\t\tevents: {\n\t\t\t\t\tonPopupClose: () => {\n\t\t\t\t\t\tdelete this.DOM.confirmRoomPopup;\n\t\t\t\t\t\tdelete this.currentRoom;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tcloseByEsc: true,\n\t\t\t\tpadding: 0,\n\t\t\t\tcontentPadding: 0,\n\t\t\t\tanimation: 'fading-slide',\n\t\t\t}\n\t\t});\n\n\t\tthis.DOM.confirmRoomPopup.show();\n\t}\n\n\tshowCategoryDeleteConfirm(category)\n\t{\n\t\tthis.currentCategory = category;\n\n\t\tthis.DOM.confirmCategoryPopup = new MessageBox({\n\t\t\tmessage: this.getConfirmRoomInterfaceContent(Loc.getMessage('EC_CATEGORY_DELETE_CONFIRM')),\n\t\t\tminHeight: 120,\n\t\t\tminWidth: 280,\n\t\t\tmaxWidth: 300,\n\t\t\tbuttons: BX.UI.Dialogs.MessageBoxButtons.OK_CANCEL,\n\t\t\tonOk: () => {\n\t\t\t\tthis.deleteCategory(category);\n\t\t\t},\n\t\t\tonCancel: () => {\n\t\t\t\tthis.DOM.confirmCategoryPopup.close();\n\t\t\t},\n\t\t\tokCaption: Loc.getMessage('EC_SEC_DELETE'),\n\t\t\tpopupOptions: {\n\t\t\t\tevents: {\n\t\t\t\t\tonPopupClose: () => {\n\t\t\t\t\t\tthis.unfreezeButtons();\n\t\t\t\t\t\tdelete this.DOM.confirmCategoryPopup;\n\t\t\t\t\t\tdelete this.currentCategory;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tcloseByEsc: true,\n\t\t\t\tpadding: 0,\n\t\t\t\tcontentPadding: 0,\n\t\t\t\tanimation: 'fading-slide',\n\t\t\t}\n\t\t});\n\n\t\tthis.DOM.confirmCategoryPopup.show();\n\t}\n\n\tgetConfirmRoomInterfaceContent(text)\n\t{\n\t\treturn Tag.render`<div class=\"calendar-list-slider-messagebox-text\">${text}</div>`;\n\t}\n\n\tkeyHandler(e)\n\t{\n\t\tif (e.keyCode === Util.getKeyCode('enter'))\n\t\t{\n\t\t\tif (this.DOM.confirmRoomPopup && this.currentRoom)\n\t\t\t{\n\t\t\t\tthis.deleteRoom(this.currentRoom);\n\t\t\t}\n\t\t\tif (this.DOM.confirmCategoryPopup && this.currentCategory)\n\t\t\t{\n\t\t\t\tthis.deleteCategory(this.currentCategory);\n\t\t\t}\n\t\t}\n\t}\n}"],"names":["ReserveButton","AddButton","constructor","params","setEventNamespace","zIndex","popupId","id","Math","round","random","showTasks","addEntryHandler","Type","isFunction","addEntry","addTaskHandler","addTask","create","DOM","wrap","Dom","props","className","type","html","Loc","getMessage","events","click","bind","EditForm","EventEmitter","options","isCreated","outerWrap","sectionAccessTasks","sectionManager","closeCallback","BX","Util","getBX","keyHandlerBinded","keyHandler","show","section","showAccess","allowChangeName","accessLink","style","display","accessWrap","Event","document","addClass","color","setColor","setAccess","access","data","ACCESS","name","sectionTitleInput","value","focus","select","disabled","isOpenedState","close","unbind","removeClass","isOpened","querySelector","clean","appendChild","formFieldsWrap","attrs","placeholder","optionsWrap","initSectionColorSelector","initAccessController","buttonsWrap","saveBtn","UI","Button","text","save","renderTo","checkClose","e","keyCode","getKeyCode","setWaiting","saveSection","then","colorContWrap","colorIcon","colorChangeLink","showSimplePicker","colors","Runtime","clone","getDefaultColorList","innerCont","colorWrap","delegate","simplePickerClick","moreLinkWrap","moreLink","showFullPicker","simplePickerColorWrap","includes","push","i","length","node","backgroundColor","lastActiveNode","util","array_search","simpleColorPopup","PopupWindowManager","getRandomInt","autoHide","closeByEsc","offsetTop","offsetLeft","lightShadow","content","cacheable","setAngle","offset","target","findTargetNode","srcElement","isElementNode","getAttribute","fullColorPicker","ColorPicker","bindElement","onColorSelected","popupOptions","onPopupClose","open","rowsCount","code","hasOwnProperty","accessRowsCount","insertAccessRow","getAccessName","checkAccessTableHeight","buildAccessController","calendarType","initDialogGroup","initDialogStandard","initAccessSelectorPopup","accessControls","showAccessSelectorPopup","removeIcon","setValueCallback","accessTasks","valueNode","innerHTML","Text","encode","title","remove","rowNode","Tag","render","accessTable","accessButton","hasClass","entitySelectorDialog","EntitySelectorDialog","targetNode","context","preselectedItems","enableSearch","handleEntitySelectorChanges","targetContainer","body","entities","selectMode","tabs","ownerName","items","ownerId","entityId","entityList","getSelectedItems","hide","isArray","forEach","entity","convertEntityToAccessCode","setAccessName","debounce","destroy","undefined","taskId","adjust","insertRow","titleNode","insertCell","valueCell","selectNode","checkTableTimeout","clearTimeout","setTimeout","offsetHeight","maxHeight","parseInt","accessPopupMenu","popupWindow","isShown","_this","menuItems","onclick","PopupMenu","randomInt","angle","EditFormRoom","roomsManager","categoryManager","capacityNumbers","freezeButtonsCallback","setParams","room","setInputValues","setFocusOnInput","actionType","roomsTitleInput","capacity","roomsCapacityInput","getSliderContentWrap","getFormFieldsWrap","createTitleInput","createCapacityInput","categorySelect","renderCategorySelector","createBottomOptions","createButtons","sliderContentWrap","categorySelector","renderCategorySelectorWrap","categoryTagSelector","createCategoryTagSelector","isRendered","onAfterCategorySelectorRender","preparedCategories","prepareCategoriesForDialog","getCategories","selectedCategory","categoryId","getCategory","TagSelector","textBoxWidth","multiple","onTagAdd","itemsContainer","getItemsContainer","onTagRemove","dialogOptions","width","height","compactView","showAvatars","dropdownMode","itemOrder","icon","stubOptions","selectedItems","getDialog","getContainer","getOuterContainer","getTextBox","renderCreateButton","renderUpdateButton","renderCancelButton","createRoom","updateRoom","getSelectedCategory","location_id","isOpen","categories","map","category","item","EditFormCategory","preparedSelectedRooms","rooms","prepareRoomsForDialog","categoryTitleInput","locationSelector","renderRoomSelector","roomSelector","renderRoomSelectorWrap","roomTagSelector","createRoomTagSelector","onAfterRoomSelectorRender","preload","dynamicLoad","filters","createCategory","updateCategory","selectedRooms","getSelectedRooms","newSelectedRooms","prepareRoomsBeforeUpdate","oldSelectedRooms","toAddCategory","filter","x","toRemoveCategory","avatarOptions","RoomsInterface","SectionInterface","calendarContext","readonly","isConfigureList","SLIDER_WIDTH","SLIDER_DURATION","sliderId","CATEGORY_ROOMS_SHOWN_ALL","CATEGORY_ROOMS_SHOWN_SOME","CATEGORY_ROOMS_SHOWN_NONE","sliderOnClose","deleteRoomHandlerBinded","deleteRoomHandler","refreshRoomsBinded","refreshRooms","refreshCategoriesBinded","refreshCategories","config","accessNames","setAccessNames","setRoomsFromManager","setCategoriesFromManager","addEventEmitterSubscriptions","subscribe","destroyEventEmitterSubscriptions","unsubscribe","createContent","renderOuterWrap","titleWrap","renderTitleWrap","addButton","renderAddButton","roomFormWrap","renderRoomFormWrap","createRoomBlocks","showEditRoomForm","showAddMenu","menuButtons","createAddMenuButtons","addRoomMenu","createAddMenu","allowSliderClose","denySliderClose","showEditCategoryForm","position","PopupMenuWindow","setBlocksWrap","isObject","createCategoryBlock","createBlockWrap","blocksWrap","defaultBlockWrap","createRoomBlock","canDo","isFrozen","unfreezeButtons","getRooms","belongsToView","isPseudo","getCategoriesWithRooms","closeForms","formTitleNode","editSectionForm","getSectionAccessTasks","freezeButtons","getRandomColor","getDefaultSectionAccess","showRoomMenu","menuItemNode","itemNode","closest","createRoomMenuButtons","roomActionMenu","createRoomMenu","showOnlyOneSection","updateAllCategoriesCheckboxState","showRoomDeleteConfirm","top","reloadRoomsFromDatabase","listWrap","roomClickHandler","renderCategoryBlockWrap","categoryRooms","getCategoryRooms","setCheckboxStatus","determineCategoryCheckboxStatus","checkbox","renderCategoryBlockCheckbox","renderCategoryBlockTitle","actionCont","renderCategoryBlockActionsContainer","createCategoryBlockContent","checkboxStyle","checkboxStatus","renderRoomBlockWrap","renderRoomBlockCheckbox","renderRoomBlockTitle","renderRoomBlockActionsContainer","switchCategory","showCategoryMenu","roomId","getRoom","switchSection","updateCategoryCheckboxState","setRoomsForCategory","unsetCategoryRooms","addRoom","showOnlyOneCategory","sections","curSection","switchOnSection","switchOffSection","reload","createCategoryMenuButtons","categoryActionMenu","createCategoryMenu","showCategoryDeleteConfirm","findCheckBoxNodes","querySelectorAll","event","getSlider","getUrl","removeCustomEvent","proxy","SidePanel","Instance","BaseEvent","getData","deleteID","index","splice","deleteRoom","confirmRoomPopup","currentRoom","deleteCategory","confirmCategoryPopup","currentCategory","updatedCategoryCheckboxStatus","setCategoryCheckboxState","findCategoryCheckBoxNode","hasEnabled","hasDisabled","checkboxNode","switchOnCategoryRooms","switchOffCategoryRooms","MessageBox","message","getConfirmRoomInterfaceContent","minHeight","minWidth","maxWidth","buttons","Dialogs","MessageBoxButtons","OK_CANCEL","onOk","onCancel","okCaption","padding","contentPadding","animation"],"mappings":"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"}
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.26 |
proxy
|
phpinfo
|
Settings