File manager - Edit - /home/c14075/dragmet-ural.ru/www/bitrix/js/calendar/sectioninterface/dist/sectioninterface.bundle.js.map
Back
{"version":3,"file":"sectioninterface.bundle.js","sources":["../src/editform.js","../src/trackingusersform.js","../src/trackinggroupsform.js","../src/trackingtypesform.js","../src/sectioninterface.js"],"sourcesContent":["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 { Runtime, Dom, Event, Loc, Type, Tag, Text} from 'main.core';\nimport { EventEmitter } from 'main.core.events';\nimport { Util } from 'calendar.util';\nimport { Dialog, TagSelector } from 'ui.entity-selector';\n\nexport class TrackingUsersForm\n{\n\tDOM = {};\n\tisCreated = false;\n\n\tconstructor(options = {})\n\t{\n\t\tthis.interfaceType = 'users';\n\t\tthis.DOM.outerWrap = options.wrap;\n\t\tthis.trackingUsers = options.trackingUsers || [];\n\t\tthis.trackingUserIdList = this.trackingUsers.map((item) => {\n\t\t\treturn parseInt(item.ID)\n\t\t});\n\t\tthis.trackingGroupIdList = [];\n\n\t\tthis.CHECKED_CLASS = 'calendar-list-slider-item-checkbox-checked';\n\t\tthis.selectorId = 'add-tracking' + Util.getRandomInt();\n\t\tthis.closeCallback = options.closeCallback;\n\n\t\tthis.superposedSections = Type.isArray(options.superposedSections) ? options.superposedSections : [];\n\t\tthis.selected = {};\n\t\tthis.superposedSections.forEach((section) => {\n\t\t\tthis.selected[section.id] = true;\n\t\t}, this);\n\n\t\tthis.isCreated = false;\n\t\tthis.keyHandlerBinded = this.keyHandler.bind(this);\n\t}\n\n\tshow()\n\t{\n\t\tif (!this.isCreated)\n\t\t{\n\t\t\tthis.create();\n\t\t}\n\n\t\tDom.addClass(this.DOM.outerWrap, 'show');\n\t\tthis.checkInnerWrapHeight();\n\n\t\tEvent.bind(document, 'keydown', this.keyHandlerBinded);\n\n\t\tthis.updateSectionList();\n\n\t\tthis.firstTrackingUserIdList = Runtime.clone(this.trackingUserIdList);\n\t\tthis.isOpenedState = true;\n\t}\n\n\tclose()\n\t{\n\t\tEvent.unbind(document, 'keydown', this.keyHandlerBinded);\n\n\t\tthis.isOpenedState = false;\n\t\tDom.removeClass(this.DOM.outerWrap, 'show');\n\t\tthis.DOM.outerWrap.style.cssText = '';\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\tif (!this.DOM.innerWrap)\n\t\t{\n\t\t\tthis.DOM.innerWrap = this.DOM.outerWrap.appendChild(Tag.render`<div></div>`);\n\t\t}\n\n\t\tthis.selectorWrap = this.DOM.innerWrap.appendChild(\n\t\t\tDom.create('DIV', { props: { className: 'calendar-list-slider-selector-wrap' } })\n\t\t);\n\n\t\tthis.userTagSelector = new TagSelector({\n\t\t\tdialogOptions: {\n\t\t\t\twidth: 320,\n\t\t\t\tcontext: 'CALENDAR',\n\t\t\t\tpreselectedItems: this.trackingUsers.map((item) => {\n\t\t\t\t\treturn ['user', parseInt(item.ID)]\n\t\t\t\t}),\n\t\t\t\tevents: {\n\t\t\t\t\t'Item:onSelect': this.handleUserSelectorChanges.bind(this),\n\t\t\t\t\t'Item:onDeselect': this.handleUserSelectorChanges.bind(this),\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]\n\t\t\t}\n\t\t});\n\n\t\tthis.userTagSelector.renderTo(this.selectorWrap);\n\n\t\t// List of sections\n\t\tthis.sectionsWrap = this.DOM.innerWrap.appendChild(\n\t\t\tTag.render`<div class=\"calendar-list-slider-sections-wrap\"></div>`\n\t\t);\n\t\tthis.createButtons();\n\n\t\tthis.isCreated = true;\n\t}\n\n\tcreateButtons()\n\t{\n\t\tthis.DOM.innerWrap.appendChild(\n\t\t\tTag.render`<div class=\"calendar-list-slider-btn-container\">\n\t\t\t\t<button \n\t\t\t\t\tclass=\"ui-btn ui-btn-sm ui-btn-primary\"\n\t\t\t\t\tonclick=\"${this.save.bind(this)}\"\n\t\t\t\t>${Loc.getMessage('EC_SEC_SLIDER_SAVE')}</button>\n\t\t\t\t<button \n\t\t\t\t\tclass=\"ui-btn ui-btn-link\"\n\t\t\t\t\tonclick=\"${this.close.bind(this)}\"\n\t\t\t\t>${Loc.getMessage('EC_SEC_SLIDER_CANCEL')}</button>\n\t\t\t</div>`\n\t\t);\n\t}\n\n\thandleUserSelectorChanges()\n\t{\n\t\tconst selectedItems = this.userTagSelector.getDialog().getSelectedItems();\n\t\tthis.trackingUserIdList = [];\n\t\tselectedItems.forEach((item) => {\n\t\t\tif (item.entityId === 'user')\n\t\t\t{\n\t\t\t\tthis.trackingUserIdList.push(item.id);\n\t\t\t}\n\t\t});\n\t\tthis.updateSectionList();\n\t}\n\n\tsave()\n\t{\n\t\tBX.ajax.runAction('calendar.api.calendarajax.setTrackingSections', {\n\t\t\t\tdata: {\n\t\t\t\t\tuserIdList: this.trackingUserIdList,\n\t\t\t\t\tsections: this.prepareTrackingSections(),\n\t\t\t\t\ttype: this.interfaceType\n\t\t\t\t}\n\t\t\t})\n\t\t\t.then(\n\t\t\t\t(response) => {\n\t\t\t\t\tlocation.reload();\n\t\t\t\t},\n\t\t\t\t(response) => {\n\t\t\t\t\tUtil.displayError(response.errors);\n\t\t\t\t}\n\t\t\t);\n\n\t\tthis.close();\n\t}\n\n\tprepareTrackingSections()\n\t{\n\t\tlet sections = this.getSelectedSections();\n\n\t\tfor (let id in this.sectionIndex)\n\t\t{\n\t\t\tif (this.sectionIndex.hasOwnProperty(id) && this.sectionIndex[id].checkbox)\n\t\t\t{\n\t\t\t\tif (Dom.hasClass(this.sectionIndex[id].checkbox, this.CHECKED_CLASS))\n\t\t\t\t{\n\t\t\t\t\tif (!sections.includes(parseInt(id)))\n\t\t\t\t\t{\n\t\t\t\t\t\tsections.push(parseInt(id));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if (sections.includes(parseInt(id)))\n\t\t\t\t{\n\t\t\t\t\tsections = sections.filter((section) => {return parseInt(section) !== parseInt(id)});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn sections;\n\t}\n\n\tgetSelectedSections()\n\t{\n\t\tconst sections = [];\n\t\tthis.superposedSections.forEach((section) => {\n\t\t\tif (\n\t\t\t\tthis.interfaceType === 'users'\n\t\t\t\t&& section.type === 'user'\n\t\t\t\t&& this.trackingUserIdList\n\t\t\t\t&& !this.trackingUserIdList.includes(section.ownerId)\n\t\t\t)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsections.push(parseInt(section.id));\n\n\t\t}, this);\n\n\t\treturn sections;\n\t}\n\n\tupdateSectionList(delayExecution)\n\t{\n\t\tif (this.updateSectionLoader)\n\t\t{\n\t\t\tDom.remove(this.updateSectionLoader);\n\t\t}\n\t\tthis.updateSectionLoader = this.sectionsWrap.appendChild(\n\t\t\tDom.adjust(Util.getLoader(), {style: {height: '140px'}})\n\t\t);\n\n\t\tif (this.updateSectionTimeout)\n\t\t{\n\t\t\tthis.updateSectionTimeout = clearTimeout(this.updateSectionTimeout);\n\t\t}\n\n\t\tif (delayExecution !== false)\n\t\t{\n\t\t\tthis.updateSectionTimeout = setTimeout(() => {\n\t\t\t\tthis.updateSectionList(false);\n\t\t\t}, 300);\n\t\t\treturn;\n\t\t}\n\n\t\tthis.checkInnerWrapHeight();\n\n\t\tBX.ajax.runAction('calendar.api.calendarajax.getTrackingSections', {\n\t\t\t\tdata: {\n\t\t\t\t\tuserIdList: this.trackingUserIdList,\n\t\t\t\t\ttype: 'users'\n\t\t\t\t}\n\t\t\t})\n\t\t\t.then(\n\t\t\t\t// Success\n\t\t\t\t(response) => {\n\t\t\t\t\tDom.clean(this.sectionsWrap);\n\t\t\t\t\tthis.sectionIndex = {};\n\t\t\t\t\tthis.checkInnerWrapHeight();\n\n\t\t\t\t\t// Users calendars\n\t\t\t\t\tresponse.data.users.forEach((user) => {\n\t\t\t\t\t\tconst sections = response.data.sections.filter(function(section)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\treturn parseInt(section.OWNER_ID) === parseInt(user.ID);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tthis.sectionsWrap.appendChild(Tag.render`\n\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t<span class=\"calendar-list-slider-card-section-title-text\">\n\t\t\t\t\t\t\t\t\t${Text.encode(user.FORMATTED_NAME)}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t`);\n\n\t\t\t\t\t\tif (sections.length > 0)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tthis.createSectionBlock({\n\t\t\t\t\t\t\t\tsectionList: sections,\n\t\t\t\t\t\t\t\twrap: this.sectionsWrap\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tthis.sectionsWrap.appendChild(Tag.render`\n\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t<span class=\"calendar-list-slider-card-section-title-text\">\n\t\t\t\t\t\t\t\t\t\t${Loc.getMessage('EC_SEC_SLIDER_NO_SECTIONS')}\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t</div>\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\t(response) => {\n\t\t\t\t\tUtil.displayError(response.errors);\n\t\t\t\t}\n\t\t\t);\n\t}\n\n\tcreateSectionBlock(params = {})\n\t{\n\t\tlet result = false;\n\t\tif (Type.isArray(params.sectionList) && params.sectionList.length\n\t\t\t&& Type.isElementNode(params.wrap))\n\t\t{\n\t\t\tlet listWrap;\n\t\t\tparams.wrap.appendChild(Tag.render`\n\t\t\t\t<div class=\"calendar-list-slider-widget-content\">\n\t\t\t\t\t<div class=\"calendar-list-slider-widget-content-block\">\n\t\t\t\t\t\t${listWrap = Tag.render`<ul class=\"calendar-list-slider-container\"></ul>`}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t`);\n\n\t\t\tEvent.bind(listWrap, 'click', this.sectionClick.bind(this));\n\n\t\t\tparams.sectionList.forEach((section) => {\n\t\t\t\tconst id = section.ID.toString();\n\t\t\t\tlet checkbox;\n\n\t\t\t\tconst li = listWrap.appendChild(Tag.render`\n\t\t\t\t\t<li class=\"calendar-list-slider-item\" data-bx-calendar-section=\"${id}\">\n\t\t\t\t\t\t${checkbox = Tag.render`\n\t\t\t\t\t\t\t<div class=\"calendar-list-slider-item-checkbox\" style=\"background: ${section.COLOR}\"></div>\n\t\t\t\t\t\t`}\n\t\t\t\t\t\t<div class=\"calendar-list-slider-item-name\">${Text.encode(section.NAME)}</div>\n\t\t\t\t\t</li>\n\t\t\t\t`);\n\n\t\t\t\tthis.sectionIndex[id] = {\n\t\t\t\t\titem: li,\n\t\t\t\t\tcheckbox: checkbox\n\t\t\t\t};\n\n\t\t\t\tif (\n\t\t\t\t\tthis.selected[id]\n\t\t\t\t\t|| !Type.isArray(this.firstTrackingUserIdList)\n\t\t\t\t\t|| !this.firstTrackingUserIdList.includes(parseInt(section.OWNER_ID))\n\t\t\t\t)\n\t\t\t\t{\n\t\t\t\t\tDom.addClass(checkbox, this.CHECKED_CLASS);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tsectionClick(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\tif(target.getAttribute('data-bx-calendar-section') !== null)\n\t\t\t{\n\t\t\t\tconst id = target.getAttribute('data-bx-calendar-section');\n\t\t\t\tif (this.sectionIndex[id] && this.sectionIndex[id].checkbox)\n\t\t\t\t{\n\t\t\t\t\tif (Dom.hasClass(this.sectionIndex[id].checkbox, this.CHECKED_CLASS))\n\t\t\t\t\t{\n\t\t\t\t\t\tDom.removeClass(this.sectionIndex[id].checkbox, this.CHECKED_CLASS);\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tDom.addClass(this.sectionIndex[id].checkbox, this.CHECKED_CLASS);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tkeyHandler(e)\n\t{\n\t\tif(e.keyCode === Util.getKeyCode('escape'))\n\t\t{\n\t\t\tthis.close();\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\tcheckInnerWrapHeight()\n\t{\n\t\tif (this.checkHeightTimeout)\n\t\t{\n\t\t\tthis.checkHeightTimeout = clearTimeout(this.checkHeightTimeout);\n\t\t}\n\n\t\tthis.checkHeightTimeout = setTimeout(() => {\n\t\t\tif (Dom.hasClass(this.DOM.outerWrap, 'show'))\n\t\t\t{\n\t\t\t\tif (this.DOM.outerWrap.offsetHeight - this.DOM.innerWrap.offsetHeight < 36)\n\t\t\t\t{\n\t\t\t\t\tthis.DOM.outerWrap.style.maxHeight = parseInt(this.DOM.innerWrap.offsetHeight) + 200 + 'px';\n\t\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.DOM.outerWrap.style.maxHeight = '';\n\t\t\t}\n\t\t}, 300);\n\t}\n}\n\n\n\n\n\n\n\n\n","import { Dom, Event, Loc, Tag, Text, Type } from 'main.core';\nimport { Util } from 'calendar.util';\nimport { TagSelector } from 'ui.entity-selector';\nimport { TrackingUsersForm } from \"./trackingusersform\"\n\nexport class TrackingGroupsForm extends TrackingUsersForm\n{\n\tconstructor(options = {})\n\t{\n\t\tsuper(options);\n\t\tthis.interfaceType = 'groups';\n\t\tthis.trackingGroupIdList = options.trackingGroups || [];\n\t}\n\n\tcreate()\n\t{\n\t\tif (!this.DOM.innerWrap)\n\t\t{\n\t\t\tthis.DOM.innerWrap = this.DOM.outerWrap.appendChild(Tag.render`<div></div>`);\n\t\t}\n\n\t\tthis.selectorWrap = this.DOM.innerWrap.appendChild(\n\t\t\tDom.create('DIV', { props: { className: 'calendar-list-slider-selector-wrap' } })\n\t\t);\n\n\t\tthis.groupTagSelector = new TagSelector({\n\t\t\tdialogOptions: {\n\t\t\t\twidth: 320,\n\t\t\t\tcontext: 'CALENDAR',\n\t\t\t\tpreselectedItems: this.trackingGroupIdList.map((id) => {\n\t\t\t\t\treturn ['project', id];\n\t\t\t\t}),\n\t\t\t\tevents: {\n\t\t\t\t\t'Item:onSelect': this.handleGroupSelectorChanges.bind(this),\n\t\t\t\t\t'Item:onDeselect': this.handleGroupSelectorChanges.bind(this),\n\t\t\t\t},\n\t\t\t\tentities: [\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]\n\t\t\t}\n\t\t});\n\n\t\tthis.groupTagSelector.renderTo(this.selectorWrap);\n\n\t\t// List of sections\n\t\tthis.sectionsWrap = this.DOM.innerWrap.appendChild(\n\t\t\tTag.render`<div class=\"calendar-list-slider-sections-wrap\"></div>`\n\t\t);\n\t\tthis.createButtons();\n\n\t\tthis.isCreated = true;\n\t}\n\n\thandleGroupSelectorChanges()\n\t{\n\t\tconst selectedItems = this.groupTagSelector.getDialog().getSelectedItems();\n\t\tthis.trackingGroupIdList = [];\n\t\tselectedItems.forEach((item) => {\n\t\t\tif (item.entityId === 'project')\n\t\t\t{\n\t\t\t\tthis.trackingGroupIdList.push(item.id);\n\t\t\t}\n\t\t});\n\t\tthis.updateSectionList();\n\t}\n\n\tupdateSectionList()\n\t{\n\t\tif (this.updateSectionLoader)\n\t\t{\n\t\t\tDom.remove(this.updateSectionLoader);\n\t\t}\n\t\tthis.updateSectionLoader = this.sectionsWrap.appendChild(\n\t\t\tDom.adjust(Util.getLoader(), {style: {height: '140px'}})\n\t\t);\n\n\t\tif (this.updateSectionTimeout)\n\t\t{\n\t\t\tthis.updateSectionTimeout = clearTimeout(this.updateSectionTimeout);\n\t\t}\n\n\t\tthis.checkInnerWrapHeight();\n\t\tBX.ajax.runAction('calendar.api.calendarajax.getTrackingSections', {\n\t\t\t\tdata: {\n\t\t\t\t\tgroupIdList: this.trackingGroupIdList,\n\t\t\t\t\ttype: 'groups'\n\t\t\t\t}\n\t\t\t})\n\t\t\t.then(\n\t\t\t\t(response) => {\n\t\t\t\t\tDom.clean(this.sectionsWrap);\n\t\t\t\t\tthis.sectionIndex = {};\n\t\t\t\t\tthis.checkInnerWrapHeight();\n\n\t\t\t\t\t// Groups calendars\n\t\t\t\t\tthis.createSectionBlock({\n\t\t\t\t\t\tsectionList: response.data.sections,\n\t\t\t\t\t\twrap: this.sectionsWrap\n\t\t\t\t\t});\n\t\t\t\t},\n\t\t\t\t(response) => {\n\t\t\t\t\tUtil.displayError(response.errors);\n\t\t\t\t}\n\t\t\t);\n\t}\n\n\tgetSelectedSections()\n\t{\n\t\tconst sections = [];\n\t\tthis.superposedSections.forEach((section) => {\n\t\t\tif (\n\t\t\t\tthis.interfaceType === 'groups'\n\t\t\t\t&& section.type === 'group'\n\t\t\t\t&& this.trackingGroupIdList\n\t\t\t\t&& !this.trackingGroupIdList.includes(section.ownerId)\n\t\t\t)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsections.push(parseInt(section.id));\n\t\t}, this);\n\n\t\treturn sections;\n\t}\n}","import { Dom, Event, Loc, Tag, Text, Type } from 'main.core';\nimport { Util } from 'calendar.util';\nimport {TrackingUsersForm} from \"./trackingusersform\"\n\nexport class TrackingTypesForm extends TrackingUsersForm\n{\n\tconstructor(options = {})\n\t{\n\t\tsuper(options);\n\t\tthis.trackingGroups = options.trackingGroups || [];\n\t\tthis.interfaceType = 'company';\n\t\tthis.selectGroups = true;\n\t\tthis.selectUsers = false;\n\t\tthis.addLinkMessage = Loc.getMessage('EC_SEC_SLIDER_SELECT_GROUPS');\n\t}\n\n\tshow ()\n\t{\n\t\tif (!this.isCreated)\n\t\t{\n\t\t\tthis.create();\n\t\t}\n\n\t\tthis.updateSectionList();\n\t\tthis.isOpenedState = true;\n\t\tDom.addClass(this.DOM.outerWrap, 'show');\n\t}\n\n\tcreate()\n\t{\n\t\tif (!this.DOM.innerWrap)\n\t\t{\n\t\t\tthis.DOM.innerWrap = this.DOM.outerWrap.appendChild(Tag.render`<div></div>`);\n\t\t}\n\n\t\t// List of sections\n\t\tthis.sectionsWrap = this.DOM.innerWrap.appendChild(\n\t\t\tTag.render`<div class=\"calendar-list-slider-sections-wrap\"></div>`\n\t\t);\n\n\t\tthis.createButtons();\n\n\t\tthis.isCreated = true;\n\t}\n\n\tupdateSectionList()\n\t{\n\t\tif (this.updateSectionLoader)\n\t\t{\n\t\t\tDom.remove(this.updateSectionLoader);\n\t\t}\n\t\tthis.updateSectionLoader = this.sectionsWrap.appendChild(\n\t\t\tDom.adjust(Util.getLoader(), {style: {height: '140px'}})\n\t\t);\n\n\t\tif (this.updateSectionTimeout)\n\t\t{\n\t\t\tthis.updateSectionTimeout = clearTimeout(this.updateSectionTimeout);\n\t\t}\n\n\t\tBX.ajax.runAction('calendar.api.calendarajax.getTrackingSections', {\n\t\t\t\tdata: {\n\t\t\t\t\ttype: 'company'\n\t\t\t\t}\n\t\t\t})\n\t\t\t.then(\n\t\t\t\t(response) => {\n\t\t\t\t\tDom.clean(this.sectionsWrap);\n\t\t\t\t\tthis.sectionIndex = {};\n\t\t\t\t\tthis.checkInnerWrapHeight();\n\n\t\t\t\t\tif (Type.isArray(response.data.sections)\n\t\t\t\t\t\t&& response.data.sections.length)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.createSectionBlock({\n\t\t\t\t\t\t\tsectionList: response.data.sections,\n\t\t\t\t\t\t\twrap: this.sectionsWrap\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.sectionsWrap.appendChild(Tag.render`\n\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t<span class=\"calendar-list-slider-card-section-title-text\">\n\t\t\t\t\t\t\t\t\t\t${Loc.getMessage('EC_SEC_SLIDER_NO_SECTIONS')}\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t`);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t(response) => {\n\t\t\t\t\tUtil.displayError(response.errors);\n\t\t\t\t}\n\t\t\t);\n\n\t\tthis.checkInnerWrapHeight();\n\t}\n\n\tsave()\n\t{\n\t\tBX.ajax.runAction('calendar.api.calendarajax.setTrackingSections', {\n\t\t\t\tdata: {\n\t\t\t\t\tsections: this.prepareTrackingSections(),\n\t\t\t\t}\n\t\t\t})\n\t\t\t.then(\n\t\t\t\t(response) => {\n\t\t\t\t\tlocation.reload();\n\t\t\t\t},\n\t\t\t\t(response) => {\n\t\t\t\t\tUtil.displayError(response.errors);\n\t\t\t\t}\n\t\t\t);\n\n\t\tthis.close();\n\t}\n\n\tgetSelectedSections()\n\t{\n\t\tconst sections = [];\n\t\tthis.superposedSections.forEach((section) => {\n\t\t\tsections.push(parseInt(section.id));\n\t\t}, this);\n\n\t\treturn sections;\n\t}\n}\n\n\n\n\n\n\n\n\n","// @flow\nimport { Util } from 'calendar.util';\nimport { IcalSyncPopup } from 'calendar.sync.interface';\nimport { Dom, Event, Loc, Tag, Text, Type } from 'main.core';\nimport { EventEmitter } from 'main.core.events';\nimport { MenuItem } from 'main.popup';\nimport { EditForm } from './editform';\nimport { TrackingUsersForm } from './trackingusersform';\nimport { TrackingGroupsForm } from './trackinggroupsform';\nimport { TrackingTypesForm } from './trackingtypesform';\nimport { SectionManager } from 'calendar.sectionmanager';\nimport { MessageBox } from 'ui.dialogs.messagebox';\n\nexport class SectionInterface extends EventEmitter\n{\n\tname = 'sectioninterface';\n\tuid = null;\n\tDOM = {};\n\tSLIDER_WIDTH = 400;\n\tSLIDER_DURATION = 80;\n\tsliderId = \"calendar:section-slider\";\n\tdenyClose = false;\n\tdeletedSectionsIds = [];\n\n\tconstructor({calendarContext, readonly, sectionManager})\n\t{\n\t\tsuper();\n\t\tthis.setEventNamespace('BX.Calendar.SectionInterface');\n\t\tthis.sectionManager = sectionManager;\n\t\tthis.calendarContext = calendarContext;\n\t\tthis.readonly = readonly;\n\t\tthis.BX = Util.getBX();\n\t\tthis.deleteSectionHandlerBinded = this.deleteSectionHandler.bind(this);\n\t\tthis.refreshSectionListBinded = this.refreshSectionList.bind(this);\n\t\tthis.keyHandlerBinded = this.keyHandler.bind(this);\n\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}\n\n\tshow()\n\t{\n\t\tthis.BX.SidePanel.Instance.open(this.sliderId, {\n\t\t\tcontentCallback: this.createContent.bind(this),\n\t\t\twidth: this.SLIDER_WIDTH,\n\t\t\tanimationDuration: this.SLIDER_DURATION,\n\t\t\tevents: {\n\t\t\t\tonCloseByEsc: this.escHide.bind(this),\n\t\t\t\tonClose: this.hide.bind(this),\n\t\t\t\tonCloseComplete: this.destroy.bind(this),\n\t\t\t\tonLoad: this.onLoadSlider.bind(this)\n\t\t\t}\n\t\t});\n\n\t\tthis.addEventEmitterSubscriptions();\n\n\t\tEvent.bind(document, 'keydown', this.keyHandlerBinded);\n\t}\n\n\taddEventEmitterSubscriptions()\n\t{\n\t\tthis.BX.Event.EventEmitter.subscribe(\n\t\t\t'BX.Calendar.Section:delete',\n\t\t\tthis.deleteSectionHandlerBinded\n\t\t);\n\t\tthis.BX.Event.EventEmitter.subscribe(\n\t\t\t'BX.Calendar.Section:pull-delete',\n\t\t\tthis.deleteSectionHandlerBinded\n\t\t);\n\t\tthis.BX.Event.EventEmitter.subscribe(\n\t\t\t'BX.Calendar.Section:edit',\n\t\t\tthis.refreshSectionListBinded\n\t\t);\n\n\t\tthis.BX.Event.EventEmitter.subscribe(\n\t\t\t'BX.Calendar.Section:pull-reload-data',\n\t\t\tthis.refreshSectionListBinded\n\t\t);\n\t}\n\n\tdestroyEventEmitterSubscriptions()\n\t{\n\t\tthis.BX.Event.EventEmitter.unsubscribe(\n\t\t\t'BX.Calendar.Section:delete',\n\t\t\tthis.deleteSectionHandlerBinded\n\t\t);\n\t\tthis.BX.Event.EventEmitter.unsubscribe(\n\t\t\t'BX.Calendar.Section:pull-delete',\n\t\t\tthis.deleteSectionHandlerBinded\n\t\t);\n\t\tthis.BX.Event.EventEmitter.unsubscribe(\n\t\t\t'BX.Calendar.Section:edit',\n\t\t\tthis.refreshSectionListBinded\n\t\t);\n\t\tthis.BX.Event.EventEmitter.unsubscribe(\n\t\t\t'BX.Calendar.Section:pull-reload-data',\n\t\t\tthis.refreshSectionListBinded\n\t\t);\n\t}\n\n\tescHide(event)\n\t{\n\t\tif (event && event.getSlider && event.getSlider().getUrl() === this.sliderId && this.denyClose)\n\t\t{\n\t\t\tevent.denyAction();\n\t\t}\n\t}\n\n\thide(event)\n\t{\n\t\tif (event && event.getSlider && event.getSlider().getUrl() === this.sliderId)\n\t\t{\n\t\t\tthis.closeForms();\n\t\t\tthis.destroyEventEmitterSubscriptions();\n\t\t\tEvent.unbind(document, 'keydown', this.keyHandlerBinded);\n\t\t}\n\t}\n\n\tclose()\n\t{\n\t\tBX.SidePanel.Instance.close();\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\tEvent.unbind(document, 'keydown', this.keyHandlerBinded);\n\n\t\t\tUtil.getBX().Event.EventEmitter.unsubscribe('BX.Calendar.Section:delete', this.deleteSectionHandlerBinded);\n\t\t\tUtil.getBX().Event.EventEmitter.unsubscribe('BX.Calendar.Section:pull-delete', this.deleteSectionHandlerBinded);\n\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.localSectionListWrap;\n\n\t\t\tthis.deletedSectionsIds = [];\n\n\t\t\tif (this.sectionActionMenu)\n\t\t\t{\n\t\t\t\tthis.sectionActionMenu.close();\n\t\t\t}\n\t\t\tif (this.trackingTypesForm)\n\t\t\t{\n\t\t\t\tdelete this.trackingTypesForm;\n\t\t\t}\n\t\t\tif (this.trackingUsersForm)\n\t\t\t{\n\t\t\t\tdelete this.trackingUsersForm;\n\t\t\t}\n\t\t\tif (this.trackingGroupsForm)\n\t\t\t{\n\t\t\t\tdelete this.trackingGroupsForm;\n\t\t\t}\n\t\t}\n\t}\n\n\tcreateContent()\n\t{\n\t\tthis.DOM.outerWrap = Tag.render`\n\t\t\t<div class=\"calendar-list-slider-wrap\"></div>\n\t\t`;\n\t\tthis.DOM.titleWrap = this.DOM.outerWrap.appendChild(\n\t\t\tTag.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\"> \n\t\t\t\t\t\t${Loc.getMessage('EC_SECTION_BUTTON')}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t`\n\t\t);\n\t\tconst calendarContext = this.calendarContext || Util.getCalendarContext();\n\n\t\tif (calendarContext && !this.readonly)\n\t\t{\n\t\t\tthis.DOM.sectionFormWrap = this.DOM.outerWrap.appendChild(\n\t\t\t\tTag.render`\n\t\t\t\t\t<div class=\"calendar-list-slider-card-widget calendar-list-slider-form-wrap\">\n\t\t\t\t\t\t<div class=\"calendar-list-slider-card-widget-title\">\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_NEW_SECTION')}\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`\n\t\t\t);\n\t\t}\n\n\t\tif (\n\t\t\tcalendarContext\n\t\t\t&& !this.readonly\n\t\t\t&&\n\t\t\t(\n\t\t\t\t!calendarContext.util.isUserCalendar()\n\t\t\t\t|| calendarContext.util.userIsOwner()\n\t\t\t)\n\t\t)\n\t\t{\n\t\t\t// #1. Controls\n\t\t\tthis.createAddButton();\n\n\t\t\t// #2. Forms\n\t\t\tthis.DOM.trackingGroupsFormWrap = this.DOM.outerWrap.appendChild(\n\t\t\t\tTag.render`\n\t\t\t\t\t<div class=\"calendar-list-slider-card-widget calendar-list-slider-form-wrap\">\n\t\t\t\t\t\t<div class=\"calendar-list-slider-card-widget-title\">\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_POPUP_MENU_ADD_GROUP')}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\t\t\t\t\t\t\t\t\n\t\t\t\t`\n\t\t\t);\n\t\t\tthis.DOM.trackingUsersFormWrap = this.DOM.outerWrap.appendChild(\n\t\t\t\tTag.render`\n\t\t\t\t\t<div class=\"calendar-list-slider-card-widget calendar-list-slider-form-wrap\">\n\t\t\t\t\t\t<div class=\"calendar-list-slider-card-widget-title\">\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_POPUP_MENU_ADD_USER')}\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`\n\t\t\t);\n\t\t\tthis.DOM.trackingTypesFormWrap = this.DOM.outerWrap.appendChild(\n\t\t\t\tTag.render`\n\t\t\t\t\t<div class=\"calendar-list-slider-card-widget calendar-list-slider-form-wrap\">\n\t\t\t\t\t\t<div class=\"calendar-list-slider-card-widget-title\">\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_POPUP_MENU_ADD_COMP')}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\t\t\t\t\t\t\t\t\n\t\t\t\t`\n\t\t\t);\n\t\t}\n\n\t\t// #3. List of sections\n\t\tthis.createSectionList();\n\n\t\treturn this.DOM.outerWrap;\n\t}\n\n\tonLoadSlider(event)\n\t{\n\t\tthis.slider = event.getSlider();\n\t\tthis.sliderId = this.slider.getUrl();\n\t\tthis.DOM.content = this.slider.layout.content;\n\t}\n\n\tcreateSectionList()\n\t{\n\t\tthis.sliderSections = this.sectionManager.getSections().filter(section => {\n\t\t\treturn !this.deletedSectionsIds.find(id => id === section.id);\n\t\t});\n\t\tif (Type.isElementNode(this.DOM.sectonListOuterWrap))\n\t\t{\n\t\t\tDom.remove(this.DOM.sectonListOuterWrap);\n\t\t}\n\t\tthis.DOM.sectonListOuterWrap = this.DOM.outerWrap.appendChild(Tag.render`<div></div>`);\n\t\tEvent.bind(this.DOM.sectonListOuterWrap, 'click', this.sectionClickHandler.bind(this));\n\n\t\tthis.createLocalSectionsList();\n\t\tthis.createExternalSectionsList();\n\t}\n\n\tcreateLocalSectionsList()\n\t{\n\t\tthis.DOM.localSectionListWrap = this.DOM.sectonListOuterWrap.appendChild(\n\t\t\tthis.getSectionListWrap(this.getLocalSectionListTitle())\n\t\t);\n\n\t\tthis.createSectionsBlock({\n\t\t\twrap: this.DOM.localSectionListWrap,\n\t\t\tsectionList: this.sliderSections.filter(section => {\n\t\t\t\treturn (section.externalTypeIsLocal() && section.belongsToView()) || section.isPseudo();\n\t\t\t})\n\t\t});\n\n\t\tthis.createCompanySectionList();\n\t\tthis.createUsersSectionList();\n\t\tthis.createGroupsSectionList();\n\t}\n\n\tcreateExternalSectionsList()\n\t{\n\t\tconst externalSections = this.sliderSections.filter(section => {\n\t\t\treturn !section.externalTypeIsLocal() && section.belongsToView();\n\t\t});\n\n\t\tthis.DOM.extSectionListWrap = [];\n\n\t\texternalSections.forEach(section => {\n\t\t\tconst listWrap = this.getSectionListWrapForSection(section);\n\n\t\t\tthis.createSectionUnit({\n\t\t\t\tsection: section,\n\t\t\t\twrap: listWrap\n\t\t\t});\n\t\t});\n\t}\n\n\tgetSectionListWrapForSection(section)\n\t{\n\t\tlet sectionExternalType = section.getExternalType();\n\t\tif (section.isGoogle())\n\t\t{\n\t\t\tsectionExternalType = 'google';\n\t\t}\n\t\tif (section.data['IS_EXCHANGE'])\n\t\t{\n\t\t\tsectionExternalType = 'exchange';\n\t\t}\n\n\t\tconst sectionExternalConnection = SectionManager.getSectionExternalConnection(section, sectionExternalType);\n\t\tconst calendarContext = this.calendarContext || Util.getCalendarContext();\n\n\t\tsection.data.CAL_DAV_CON = sectionExternalConnection?.addParams?.id || null;\n\t\tlet key = sectionExternalType + (\n\t\t\tsectionExternalConnection\n\t\t\t\t? sectionExternalConnection.getId()\n\t\t\t\t: '-disconnected'\n\t\t);\n\n\t\tif (!Type.isElementNode(this.DOM.extSectionListWrap[key]))\n\t\t{\n\t\t\tconst sectionListWrap = this.DOM.sectonListOuterWrap.appendChild(\n\t\t\t\tthis.getSectionListWrap(this.getExternalConnectionBlockTitle(\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: sectionExternalType,\n\t\t\t\t\t\tconnection: sectionExternalConnection\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t\t);\n\n\t\t\tsectionListWrap.appendChild(Tag.render`\n\t\t\t\t<div class=\"calendar-list-slider-widget-content\">\n\t\t\t\t\t<div class=\"calendar-list-slider-widget-content-block\">\n\t\t\t\t\t\t${this.DOM.extSectionListWrap[key] = Tag.render`<ul class=\"calendar-list-slider-container\"/>`}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t`);\n\n\t\t\tif (\n\t\t\t\t!sectionExternalConnection\n\t\t\t\t&& calendarContext\n\t\t\t\t&& calendarContext.util.userIsOwner()\n\t\t\t\t&& !section.isArchive()\n\t\t\t\t&& (\n\t\t\t\t\t!section.isExchange()\n\t\t\t\t\t||\n\t\t\t\t\t(!calendarContext.util.config.bExchange && section.isExchange())\n\t\t\t\t)\n\t\t\t)\n\t\t\t{\n\t\t\t\tsectionListWrap.querySelector('.calendar-list-slider-widget-content-block')\n\t\t\t\t\t.appendChild(\n\t\t\t\t\t\tTag.render`\n\t\t\t\t\t\t\t<div data-bx-calendar-open-sync=\"Y\" class=\"calendar-list-slider-card-widget-bottom-button\">\n\t\t\t\t\t\t\t\t<span class=\"calendar-list-slider-link\">\n\t\t\t\t\t\t\t\t\t${Loc.getMessage('EC_SEC_SLIDER_ADJUST_SYNC')}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</div>`\n\t\t\t\t\t);\n\n\t\t\t\tsectionListWrap.querySelector('.calendar-list-slider-card-widget-title')\n\t\t\t\t\t.appendChild(\n\t\t\t\t\t\tTag.render`\n\t\t\t\t\t\t\t<span class=\"calendar-list-slider-card-widget-title-text calendar-list-title-disabled\" >\n\t\t\t\t\t\t\t\t${Loc.getMessage('EC_SEC_SLIDER_SYNC_DISABLED')}\n\t\t\t\t\t\t\t</span>`,\n\t\t\t\t\t);\n\t\t\t}\n\t\t\telse if (section.isArchive())\n\t\t\t{\n\t\t\t\tconst hintNode = sectionListWrap.querySelector('.calendar-list-slider-card-widget-title')\n\t\t\t\t\t.appendChild(Tag.render`\n\t\t\t\t\t\t<div class=\"ui-icon ui-icon-common-question calendar-list-slider-archive-hint\"\n\t\t\t\t\t\tdata-hint=\"${Loc.getMessage('EC_SEC_SLIDER_TYPE_ARCHIVE_HELPER')}\">\n\t\t\t\t\t\t\t<i></i>\t\n\t\t\t\t\t\t</div>\n\t\t\t\t`);\n\t\t\t\tif (Type.isDomNode(hintNode))\n\t\t\t\t{\n\t\t\t\t\tUtil.initHintNode(hintNode);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.DOM.extSectionListWrap[key];\n\t}\n\n\tgetExternalConnectionBlockTitle({type, connection}): string\n\t{\n\t\tlet title = '';\n\t\tconst connectionName = connection\n\t\t\t? connection.getConnectionAccountName() || connection.getConnectionName()\n\t\t\t: null\n\t\t;\n\n\t\tswitch (type)\n\t\t{\n\t\t\tcase 'google':\n\t\t\t\tif (connectionName)\n\t\t\t\t{\n\t\t\t\t\ttitle = Loc.getMessage(\n\t\t\t\t\t\t'EC_SEC_SLIDER_TYPE_GOOGLE',\n\t\t\t\t\t\t{ '#CONNECTION_NAME#': connectionName }\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\ttitle = Loc.getMessage('EC_SEC_SLIDER_TYPE_GOOGLE_DIS')\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\tcase 'office365':\n\t\t\t\tif (connectionName)\n\t\t\t\t{\n\t\t\t\t\ttitle = Loc.getMessage(\n\t\t\t\t\t\t'EC_SEC_SLIDER_TYPE_OFFICE365',\n\t\t\t\t\t\t{ '#CONNECTION_NAME#': connectionName }\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\ttitle = Loc.getMessage('EC_SEC_SLIDER_TYPE_OFFICE365_DIS')\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'icloud':\n\t\t\t\tif (connectionName)\n\t\t\t\t{\n\t\t\t\t\ttitle = Loc.getMessage(\n\t\t\t\t\t\t'EC_SEC_SLIDER_TYPE_ICLOUD',\n\t\t\t\t\t\t{ '#CONNECTION_NAME#': connectionName }\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\ttitle = Loc.getMessage('EC_SEC_SLIDER_TYPE_ICLOUD_DIS')\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'caldav':\n\t\t\t\tif (connectionName)\n\t\t\t\t{\n\t\t\t\t\tif (connection.getType() === 'yandex')\n\t\t\t\t\t{\n\t\t\t\t\t\ttitle = Loc.getMessage(\n\t\t\t\t\t\t\t'EC_SEC_SLIDER_TYPE_YANDEX',\n\t\t\t\t\t\t\t{ '#CONNECTION_NAME#': connectionName }\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\ttitle = Loc.getMessage(\n\t\t\t\t\t\t\t'EC_SEC_SLIDER_TYPE_CALDAV',\n\t\t\t\t\t\t\t{ '#CONNECTION_NAME#': connectionName }\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\ttitle = Loc.getMessage('EC_SEC_SLIDER_TYPE_DEFAULT');\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'exchange':\n\t\t\t\ttitle = Loc.getMessage('EC_CAL_SYNC_EXCHANGE');\n\t\t\t\tbreak;\n\t\t\tcase 'archive':\n\t\t\t\ttitle = Loc.getMessage('EC_SEC_SLIDER_TYPE_ARCHIVE');\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\ttitle = Loc.getMessage('EC_SEC_SLIDER_TYPE_DEFAULT')\n\t\t}\n\n\t\treturn title;\n\t}\n\n\tcreateCompanySectionList()\n\t{\n\t\tconst sections = this.sliderSections.filter(function(section)\n\t\t{\n\t\t\treturn section.isCompanyCalendar() && !section.belongsToView();\n\t\t});\n\n\t\tif (sections.length > 0)\n\t\t{\n\t\t\tthis.DOM.localSectionListWrap.appendChild(Tag.render`\n\t\t\t\t<div class=\"calendar-list-slider-card-section-title\">\n\t\t\t\t\t<span class=\"calendar-list-slider-card-section-title-text\">${Loc.getMessage('EC_SEC_SLIDER_TITLE_COMP_CAL')}</span>\n\t\t\t\t</div>\n\t\t\t`);\n\n\t\t\tthis.createSectionsBlock({\n\t\t\t\twrap: this.DOM.localSectionListWrap,\n\t\t\t\tsectionList: this.sliderSections.filter(section => {\n\t\t\t\t\treturn section.isCompanyCalendar();\n\t\t\t\t})\n\t\t\t});\n\t\t}\n\t}\n\n\tcreateUsersSectionList()\n\t{\n\t\tthis.calendarContext.util.getSuperposedTrackedUsers().forEach((user) => {\n\t\t\tconst sections = this.sliderSections.filter((section) => {\n\t\t\t\treturn !section.belongsToView()\n\t\t\t\t\t&& section.type === 'user'\n\t\t\t\t\t&& section.data.OWNER_ID === user.ID;\n\t\t\t});\n\n\t\t\tif (sections.length > 0)\n\t\t\t{\n\t\t\t\tthis.DOM.localSectionListWrap.appendChild(Tag.render`\n\t\t\t\t\t<div class=\"calendar-list-slider-card-section-title\">\n\t\t\t\t\t\t<span class=\"calendar-list-slider-card-section-title-text\">${Text.encode(user.FORMATTED_NAME)}</span>\n\t\t\t\t\t</div>\n\t\t\t\t`);\n\n\t\t\t\tthis.createSectionsBlock({\n\t\t\t\t\twrap: this.DOM.localSectionListWrap,\n\t\t\t\t\tsectionList: sections\n\t\t\t\t});\n\t\t\t}\n\t\t}, this);\n\t}\n\n\tcreateGroupsSectionList()\n\t{\n\t\tconst sections = this.sliderSections.filter((section) => {\n\t\t\treturn !section.belongsToView() && section.type === 'group';\n\t\t});\n\n\t\tif (sections.length > 0)\n\t\t{\n\t\t\tthis.DOM.localSectionListWrap.appendChild(Tag.render`\n\t\t\t\t<div class=\"calendar-list-slider-card-section-title\">\n\t\t\t\t\t<span class=\"calendar-list-slider-card-section-title-text\">${Loc.getMessage('EC_SEC_SLIDER_TITLE_GROUP_CAL')}</span>\n\t\t\t\t</div>\n\t\t\t`);\n\n\t\t\tthis.createSectionsBlock({\n\t\t\t\twrap: this.DOM.localSectionListWrap,\n\t\t\t\tsectionList: sections\n\t\t\t});\n\t\t}\n\t}\n\n\tgetSectionListWrap(title)\n\t{\n\t\treturn Tag.render`\n\t\t\t\t<div class=\"calendar-list-slider-card-widget\">\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${title}\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`;\n\t}\n\n\tgetLocalSectionListTitle()\n\t{\n\t\tif (this.sectionManager.calendarType === 'user')\n\t\t{\n\t\t\treturn Loc.getMessage('EC_SEC_SLIDER_MY_CALENDARS_LIST');\n\t\t}\n\t\telse if (this.sectionManager.calendarType === 'group')\n\t\t{\n\t\t\treturn Loc.getMessage('EC_SEC_SLIDER_GROUP_CALENDARS_LIST');\n\t\t}\n\t\telse\n\t\t{\n\t\t\treturn Loc.getMessage('EC_SEC_SLIDER_TYPE_CALENDARS_LIST');\n\t\t}\n\t}\n\n\tcreateAddButton()\n\t{\n\t\tif (\n\t\t\tthis.calendarContext.util.config.perm\n\t\t\t&& this.calendarContext.util.config.perm.edit_section\n\t\t)\n\t\t{\n\t\t\tconst addButtonOuter = this.DOM.titleWrap.appendChild(Tag.render`\n\t\t\t\t<span class=\"ui-btn-split ui-btn-light-border\" style=\"margin-right: 0\"></span>\n\t\t\t`);\n\t\t\tthis.DOM.addButton = addButtonOuter.appendChild(Tag.render`\n\t\t\t\t<span class=\"ui-btn-main\">${Loc.getMessage('EC_ADD')}</span>\n\t\t\t`);\n\t\t\tthis.DOM.addButtonMore = addButtonOuter.appendChild(Tag.render`\n\t\t\t\t<span class=\"ui-btn-extra\"></span>\n\t\t\t`);\n\n\t\t\tEvent.bind(this.DOM.addButtonMore, 'click', this.showAddButtonPopup.bind(this));\n\t\t\tEvent.bind(this.DOM.addButton, 'click', this.showEditSectionForm.bind(this));\n\t\t}\n\t}\n\n\tshowAddButtonPopup()\n\t{\n\t\tif (this.addBtnMenu && this.addBtnMenu.popupWindow && this.addBtnMenu.popupWindow.isShown())\n\t\t{\n\t\t\treturn this.addBtnMenu.close();\n\t\t}\n\n\t\tconst menuItems = [\n\t\t\tnew MenuItem({\n\t\t\t\ttext: Loc.getMessage('EC_SEC_SLIDER_POPUP_NEW_TITLE'),\n\t\t\t\tdelimiter: true\n\t\t\t}),\n\t\t\t{\n\t\t\t\thtml: Loc.getMessage('EC_SEC_SLIDER_POPUP_NEW_MENU'),\n\t\t\t\tonclick: () => {\n\t\t\t\t\tthis.addBtnMenu.close();\n\t\t\t\t\tthis.showEditSectionForm();\n\t\t\t\t}\n\t\t\t},\n\t\t\tnew MenuItem({\n\t\t\t\ttext: Loc.getMessage('EC_SEC_SLIDER_POPUP_EXIST_TITLE'),\n\t\t\t\tdelimiter: true\n\t\t\t}),\n\t\t\t{\n\t\t\t\thtml: Loc.getMessage('EC_SEC_SLIDER_POPUP_MENU_ADD_COMP'),\n\t\t\t\tonclick: () => {\n\t\t\t\t\tthis.addBtnMenu.close();\n\t\t\t\t\tthis.showTrackingTypesForm();\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\thtml: Loc.getMessage('EC_SEC_SLIDER_POPUP_MENU_ADD_USER'),\n\t\t\t\tonclick: () => {\n\t\t\t\t\tthis.addBtnMenu.close();\n\t\t\t\t\tthis.showTrackingUsersForm();\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\thtml: Loc.getMessage('EC_SEC_SLIDER_POPUP_MENU_ADD_GROUP'),\n\t\t\t\tonclick: () => {\n\t\t\t\t\tthis.addBtnMenu.close();\n\t\t\t\t\tthis.showTrackingGroupsForm();\n\t\t\t\t}\n\t\t\t}\n\t\t];\n\n\t\tthis.addBtnMenu = this.BX.PopupMenu.create(\n\t\t\t'add-btn-' + Util.getRandomInt(),\n\t\t\tthis.DOM.addButtonMore,\n\t\t\tmenuItems,\n\t\t\t{\n\t\t\t\tcloseByEsc : true,\n\t\t\t\tautoHide : true,\n\t\t\t\tzIndex: this.zIndex,\n\t\t\t\toffsetTop: 0,\n\t\t\t\toffsetLeft: 15,\n\t\t\t\tangle: true,\n\t\t\t\tcacheable: false\n\t\t\t}\n\t\t);\n\n\t\tthis.addBtnMenu.show();\n\t}\n\n\tcreateSectionsBlock({sectionList, wrap})\n\t{\n\t\tif (Type.isArray(sectionList))\n\t\t{\n\t\t\tconst listWrap = wrap.appendChild(Tag.render`<div class=\"calendar-list-slider-widget-content\"></div>`)\n\t\t\t\t.appendChild(Tag.render`<div class=\"calendar-list-slider-widget-content-block\"></div>`)\n\t\t\t\t.appendChild(Tag.render`<ul class=\"calendar-list-slider-container\"></ul>`)\n\t\t\t;\n\n\t\t\tsectionList.forEach((section) => {\n\t\t\t\tthis.createSectionUnit({section, wrap: listWrap});\n\t\t\t});\n\t\t}\n\t}\n\n\tcreateSectionUnit({section, wrap})\n\t{\n\t\tif (!section.DOM)\n\t\t{\n\t\t\tsection.DOM = {};\n\t\t}\n\t\tconst sectionId = section.id.toString();\n\t\tconst li = wrap.appendChild(Tag.render`\n\t\t\t<li class=\"calendar-list-slider-item\" data-bx-calendar-section=\"${sectionId}\"></li>\n\t\t`);\n\t\tconst checkbox = li.appendChild(Tag.render`\n\t\t\t<div class=\"calendar-list-slider-item-checkbox ${section.isShown() ? 'calendar-list-slider-item-checkbox-checked' : ''}\" style=\"background-color: ${section.color}\"></div>\n\t\t`);\n\t\tconst title = li.appendChild(Tag.render`\n\t\t\t<div class=\"calendar-list-slider-item-name\" title=\"${Text.encode(section.name)}\">${Text.encode(section.name)}</div>\n\t\t`);\n\n\t\tsection.DOM.item = li;\n\t\tsection.DOM.checkbox = checkbox;\n\t\tsection.DOM.title = title;\n\n\t\tsection.DOM.actionCont = li.appendChild(Tag.render`\n\t\t\t<div class=\"calendar-list-slider-item-actions-container\" data-bx-calendar-section-menu=\"${sectionId}\">\n\t\t\t\t<span class=\"calendar-list-slider-item-context-menu\"></span>\n\t\t\t</div>\n\t\t`);\n\t}\n\n\tsectionClickHandler(e)\n\t{\n\t\tconst target = Util.findTargetNode(e.target || e.srcElement, this.DOM.outerWrap);\n\t\tif (target && target.getAttribute)\n\t\t{\n\t\t\tif (target.getAttribute('data-bx-calendar-section-menu') !== null)\n\t\t\t{\n\t\t\t\tlet sectionId = target.getAttribute('data-bx-calendar-section-menu');\n\t\t\t\tsectionId = sectionId === 'tasks' ? sectionId : parseInt(sectionId);\n\t\t\t\tthis.showSectionMenu(this.sectionManager.getSection(sectionId), 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\tthis.switchSection(this.sectionManager.getSection(target.getAttribute('data-bx-calendar-section')));\n\t\t\t}\n\t\t\telse if(target.getAttribute('data-bx-calendar-open-sync') !== null)\n\t\t\t{\n\t\t\t\tthis.calendarContext.syncInterface.openSyncPanel();\n\t\t\t}\n\t\t}\n\t}\n\n\tfindCheckBoxNodes(id)\n\t{\n\t\treturn this.DOM.sectonListOuterWrap.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\tswitchSection(section)\n\t{\n\t\tconst checkboxNodes = this.findCheckBoxNodes(section.id)\n\n\t\tfor (let i = 0; i < checkboxNodes.length; i++)\n\t\t{\n\t\t\tif (section.isShown())\n\t\t\t{\n\t\t\t\tDom.removeClass(checkboxNodes[i], 'calendar-list-slider-item-checkbox-checked');\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tDom.addClass(checkboxNodes[i], 'calendar-list-slider-item-checkbox-checked');\n\t\t\t}\n\t\t}\n\n\t\tif (section.isShown())\n\t\t{\n\t\t\tsection.hide();\n\t\t}\n\t\telse\n\t\t{\n\t\t\tsection.show();\n\t\t}\n\n\t\t// TODO: should use eventEmtter\n\t\tthis.calendarContext.reload();\n\t}\n\n\n\tswitchOnSection(section)\n\t{\n\t\tconst checkboxNodes = this.findCheckBoxNodes(section.id);\n\n\t\tfor (let i = 0; i < checkboxNodes.length; i++)\n\t\t{\n\t\t\tif (!section.isShown())\n\t\t\t{\n\t\t\t\tDom.addClass(checkboxNodes[i], 'calendar-list-slider-item-checkbox-checked');\n\t\t\t}\n\t\t}\n\n\t\tif (!section.isShown())\n\t\t{\n\t\t\tsection.show();\n\t\t}\n\t}\n\n\tswitchOffSection(section)\n\t{\n\t\tconst checkboxNodes = this.findCheckBoxNodes(section.id);\n\n\t\tfor (let i = 0; i < checkboxNodes.length; i++)\n\t\t{\n\t\t\tif (section.isShown())\n\t\t\t{\n\t\t\t\tDom.removeClass(checkboxNodes[i], 'calendar-list-slider-item-checkbox-checked');\n\t\t\t}\n\t\t}\n\n\t\tif (section.isShown())\n\t\t{\n\t\t\tsection.hide();\n\t\t}\n\t}\n\n\n\tshowSectionMenu (section, menuItemNode)\n\t{\n\t\tconst menuItems = [];\n\t\tconst itemNode = menuItemNode.closest('[data-bx-calendar-section]');\n\t\tif (Type.isElementNode(itemNode))\n\t\t{\n\t\t\tDom.addClass(itemNode, 'active');\n\t\t}\n\n\t\tif(section.canDo('view_time'))\n\t\t{\n\t\t\tmenuItems.push({\n\t\t\t\ttext: Loc.getMessage('EC_SEC_LEAVE_ONE'),\n\t\t\t\tonclick: () => {\n\t\t\t\t\tthis.sectionActionMenu.close();\n\t\t\t\t\tthis.showOnlyOneSection(section, this.sectionManager.sections);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tif (!section.isPseudo() && section.getLink() && !section.belongsToView())\n\t\t{\n\t\t\tmenuItems.push({\n\t\t\t\ttext: Loc.getMessage('EC_SEC_OPEN_LINK'),\n\t\t\t\thref: section.getLink()\n\t\t\t});\n\t\t}\n\n\t\tif (!this.readonly && section.canDo('edit_section') && !section.isPseudo())\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.sectionActionMenu.close();\n\t\t\t\t\tthis.showEditSectionForm({section: section});\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tif (section.isSuperposed() && !section.belongsToView())\n\t\t{\n\t\t\tmenuItems.push({\n\t\t\t\ttext : Loc.getMessage('EC_SEC_HIDE'),\n\t\t\t\tonclick: () => {\n\t\t\t\t\tthis.hideSuperposedHandler(section);\n\t\t\t\t\tthis.sectionActionMenu.close();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tif (section.canBeConnectedToOutlook() && section.data['EXTERNAL_TYPE'] === 'local')\n\t\t{\n\t\t\tmenuItems.push({\n\t\t\t\ttext : Loc.getMessage('EC_SEC_CONNECT_TO_OUTLOOK'),\n\t\t\t\tonclick: () => {\n\t\t\t\t\tthis.sectionActionMenu.close();\n\t\t\t\t\tsection.connectToOutlook();\n\t\t\t\t\tthis.close();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tif (\n\t\t\t!section.isPseudo()\n\t\t\t&& section.data.EXPORT\n\t\t\t&& section.data.EXPORT.LINK\n\t\t\t&& section.data['EXTERNAL_TYPE'] === 'local'\n\t\t)\n\t\t{\n\t\t\tmenuItems.push({\n\t\t\t\ttext: Loc.getMessage('EC_ACTION_EXPORT'),\n\t\t\t\tonclick: () => {\n\t\t\t\t\tthis.sectionActionMenu.close();\n\n\t\t\t\t\tconst options = {\n\t\t\t\t\t\tsectionLink: section.data.EXPORT.LINK,\n\t\t\t\t\t\tcalendarPath: this.calendarContext.util.config.path,\n\t\t\t\t\t};\n\t\t\t\t\tif (IcalSyncPopup.checkPathes(options))\n\t\t\t\t\t{\n\t\t\t\t\t\tIcalSyncPopup.createInstance(options).show();\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tIcalSyncPopup.showPopupWithPathesError();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tlet provider = undefined;\n\t\tlet connection = undefined;\n\n\t\tif (section.data.CAL_DAV_CON\n\t\t\t&& section.belongsToView()\n\t\t\t&& this.calendarContext.syncInterface\n\t\t)\n\t\t{\n\t\t\t[provider, connection] = this.calendarContext.syncInterface.getProviderById(section.data.CAL_DAV_CON);\n\t\t}\n\n\t\tif (\n\t\t\tsection.canDo('edit_section')\n\t\t\t&& section.belongsToView()\n\t\t\t&& !section.isPseudo()\n\t\t\t&& ((!section.isGoogle() && !connection)\n\t\t\t\t|| section.data['EXTERNAL_TYPE'] === 'local'\n\t\t\t\t|| !connection\n\t\t\t)\n\t\t)\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.sectionActionMenu.close();\n\t\t\t\t\tthis.showSectionConfirm('delete', section);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tif (section.canDo('edit_section') && connection)\n\t\t{\n\t\t\tif (section.isGoogle() || section.isIcloud() || section.isOffice365() || section.isCalDav())\n\t\t\t{\n\t\t\t\tmenuItems.push({\n\t\t\t\t\ttext: Loc.getMessage('EC_ACTION_EXTERNAL_ADJUST'),\n\t\t\t\t\tonclick: () => {\n\t\t\t\t\t\tthis.sectionActionMenu.close();\n\t\t\t\t\t\tif (provider)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tprovider.openActiveConnectionSlider(connection);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (section.isGoogle() || section.isIcloud() || section.isOffice365())\n\t\t\t{\n\t\t\t\tmenuItems.push({\n\t\t\t\t\ttext: Loc.getMessage('EC_ACTION_HIDE'),\n\t\t\t\t\tonclick: () => {\n\t\t\t\t\t\tthis.sectionActionMenu.close();\n\t\t\t\t\t\tthis.showSectionConfirm('hideSync', section);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\telse if (section.isCalDav())\n\t\t\t{\n\t\t\t\tmenuItems.push({\n\t\t\t\t\ttext: Loc.getMessage('EC_ACTION_HIDE'),\n\t\t\t\t\tonclick: () => {\n\t\t\t\t\t\tthis.sectionActionMenu.close();\n\t\t\t\t\t\tthis.showSectionConfirm('hideExternal', section);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tif (section.isPseudo() && section.taskSectionBelongToUser())\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.sectionActionMenu.close();\n\t\t\t\t\tthis.showEditSectionForm({\n\t\t\t\t\t\tsection: section\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tmenuItems.push({\n\t\t\t\ttext : Loc.getMessage('EC_SEC_TASK_HIDE'),\n\t\t\t\tonclick: () => {\n\t\t\t\t\tthis.sectionActionMenu.close();\n\t\t\t\t\tBX.userOptions.save('calendar', 'user_settings', 'showTasks', 'N');\n\n\t\t\t\t\tDom.addClass(section.DOM.item, 'calendar-list-slider-item-disappearing');\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tDom.clean(section.DOM.item, true);\n\t\t\t\t\t\tBX.reload();\n\t\t\t\t\t}, 300);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tif (menuItems && menuItems.length > 0)\n\t\t{\n\t\t\tthis.sectionActionMenu = top.BX.PopupMenu.create(\n\t\t\t\t'section-menu-' + Util.getRandomInt(),\n\t\t\t\tmenuItemNode,\n\t\t\t\tmenuItems,\n\t\t\t\t{\n\t\t\t\t\tcloseByEsc : true,\n\t\t\t\t\tautoHide : true,\n\t\t\t\t\tzIndex: this.zIndex,\n\t\t\t\t\toffsetTop: 0,\n\t\t\t\t\toffsetLeft: 9,\n\t\t\t\t\tangle: true,\n\t\t\t\t\tcacheable: false\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tthis.sectionActionMenu.show();\n\t\t\tthis.sectionActionMenu.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}\n\n\tdenySliderClose()\n\t{\n\t\tthis.denyClose = true;\n\t}\n\n\tallowSliderClose()\n\t{\n\t\tthis.denyClose = false;\n\t}\n\n\tcloseForms()\n\t{\n\t\tif (this.addBtnMenu)\n\t\t{\n\t\t\tthis.addBtnMenu.close();\n\t\t}\n\n\t\tif (this.editSectionForm)\n\t\t{\n\t\t\tthis.editSectionForm.close();\n\t\t}\n\n\t\tif (this.trackingUsersForm)\n\t\t{\n\t\t\tthis.trackingUsersForm.close();\n\t\t}\n\n\t\tif (this.trackingGroupsForm)\n\t\t{\n\t\t\tthis.trackingGroupsForm.close();\n\t\t}\n\n\t\tif (this.trackingTypesForm)\n\t\t{\n\t\t\tthis.trackingTypesForm.close();\n\t\t}\n\t}\n\n\tshowEditSectionForm(params ={})\n\t{\n\t\tthis.closeForms();\n\t\tconst formTitleNode = this.DOM.sectionFormWrap.querySelector('.calendar-list-slider-card-widget-title-text');\n\n\t\tthis.editSectionForm = new EditForm({\n\t\t\twrap: this.DOM.sectionFormWrap,\n\t\t\tsectionAccessTasks: this.sectionManager.getSectionAccessTasks(),\n\t\t\tsectionManager: this.sectionManager,\n\t\t\tcloseCallback: () => {\n\t\t\t\tthis.allowSliderClose();\n\t\t\t}\n\t\t});\n\n\t\tlet showAccessControl = true;\n\t\tif (params.section && (!params.section.belongsToView() || params.section.isPseudo()))\n\t\t{\n\t\t\tformTitleNode.innerHTML = Loc.getMessage('EC_SEC_SLIDER_EDIT_SECTION_PERSONAL');\n\t\t\tshowAccessControl = false;\n\t\t}\n\t\telse if (params.section && params.section.id)\n\t\t{\n\t\t\tformTitleNode.innerHTML = Loc.getMessage('EC_SEC_SLIDER_EDIT_SECTION');\n\t\t\tshowAccessControl = params.section.hasPermission('access');\n\t\t}\n\t\telse\n\t\t{\n\t\t\tformTitleNode.innerHTML = Loc.getMessage('EC_SEC_SLIDER_NEW_SECTION');\n\t\t}\n\n\t\tthis.editSectionForm.show({\n\t\t\tshowAccess: showAccessControl,\n\t\t\tallowChangeName: params.section ? !params.section.isPrimaryForConnection() : true,\n\t\t\tsection: params.section || {\n\t\t\t\tcolor: Util.getRandomColor(),\n\t\t\t\taccess: this.sectionManager.getDefaultSectionAccess()\n\t\t\t}\n\t\t});\n\n\t\tthis.denySliderClose();\n\t}\n\n\tshowTrackingTypesForm()\n\t{\n\t\tthis.closeForms();\n\n\t\tif (!this.trackingTypesForm)\n\t\t{\n\t\t\tthis.trackingTypesForm = new TrackingTypesForm({\n\t\t\t\twrap: this.DOM.trackingTypesFormWrap,\n\t\t\t\tsuperposedSections: this.sectionManager.getSuperposedSectionList(),\n\t\t\t\tcloseCallback: () => {\n\t\t\t\t\tthis.allowSliderClose();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tthis.trackingTypesForm.show();\n\t\tthis.denySliderClose();\n\t}\n\n\tshowTrackingUsersForm()\n\t{\n\t\tthis.closeForms();\n\n\t\tif (!this.trackingUsersForm)\n\t\t{\n\t\t\tthis.trackingUsersForm = new TrackingUsersForm({\n\t\t\t\twrap: this.DOM.trackingUsersFormWrap,\n\t\t\t\ttrackingUsers: this.calendarContext.util.getSuperposedTrackedUsers(),\n\t\t\t\tsuperposedSections: this.sectionManager.getSuperposedSectionList(),\n\t\t\t\tcloseCallback: () => {\n\t\t\t\t\tthis.allowSliderClose();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tthis.trackingUsersForm.show();\n\t\tthis.denySliderClose();\n\t}\n\n\tshowTrackingGroupsForm()\n\t{\n\t\tthis.closeForms();\n\n\t\tif (!this.trackingGroupsForm)\n\t\t{\n\t\t\tconst superposedSections = this.sectionManager.getSuperposedSectionList();\n\t\t\tconst trackingGroups = this.calendarContext.util.getSuperposedTrackedGroups();\n\n\t\t\tsuperposedSections.forEach((section) => {\n\t\t\t\tif (section.getType() === 'group'\n\t\t\t\t\t&& !trackingGroups.includes(section.getOwnerId()))\n\t\t\t\t{\n\t\t\t\t\ttrackingGroups.push(section.getOwnerId());\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tthis.trackingGroupsForm = new TrackingGroupsForm({\n\t\t\t\twrap: this.DOM.trackingGroupsFormWrap,\n\t\t\t\ttrackingGroups: trackingGroups,\n\t\t\t\tsuperposedSections: superposedSections,\n\t\t\t\tcloseCallback: () => {\n\t\t\t\t\tthis.allowSliderClose();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tthis.trackingGroupsForm.show();\n\t\tthis.denySliderClose();\n\t}\n\n\tdeleteSectionHandler(event)\n\t{\n\t\tif (event && event instanceof this.BX.Event.BaseEvent)\n\t\t{\n\t\t\tconst data = event.getData();\n\t\t\tconst sectionId = parseInt(data.sectionId, 10);\n\n\t\t\tthis.sliderSections.forEach((section, index) => {\n\t\t\t\tif (parseInt(section.id) === sectionId)\n\t\t\t\t{\n\t\t\t\t\tthis.sectionManager.deleteSectionHandler(sectionId);\n\t\t\t\t\tthis.deletedSectionsIds.push(sectionId);\n\t\t\t\t\tconst deleteSectionNodes = this.DOM.sectonListOuterWrap.querySelectorAll(\n\t\t\t\t\t\t`.calendar-list-slider-item[data-bx-calendar-section='${sectionId}']`\n\t\t\t\t\t);\n\n\t\t\t\t\tdeleteSectionNodes.forEach(node => {\n\t\t\t\t\t\tDom.addClass(node, 'calendar-list-slider-item-disappearing');\n\t\t\t\t\t});\n\n\t\t\t\t\tif (!section.externalTypeIsLocal())\n\t\t\t\t\t{\n\t\t\t\t\t\tconst listWrap = this.getSectionListWrapForSection(section);\n\t\t\t\t\t\tthis.sliderSections = BX.util.deleteFromArray(this.sliderSections, index);\n\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\tdeleteSectionNodes.forEach(node => {\n\t\t\t\t\t\t\t\tDom.remove(node);\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tif(!listWrap.querySelector('li.calendar-list-slider-item'))\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tDom.remove(listWrap.closest('.calendar-list-slider-card-widget'));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, 300);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}, this);\n\n\t\t\tthis.closeForms()\n\t\t}\n\t}\n\n\thideSuperposedHandler(section)\n\t{\n\t\tconst superposedSections = this.sectionManager.getSuperposedSectionList();\n\t\tconst sections = [];\n\t\tlet i;\n\n\t\tfor (i = 0; i < superposedSections.length; i++)\n\t\t{\n\t\t\tif (parseInt(section.id) !== parseInt(superposedSections[i].id))\n\t\t\t{\n\t\t\t\tsections.push(parseInt(superposedSections[i].id));\n\t\t\t}\n\t\t}\n\n\t\tBX.ajax.runAction('calendar.api.calendarajax.setTrackingSections', {\n\t\t\t\tdata: {\n\t\t\t\t\tsections: sections\n\t\t\t\t}\n\t\t\t})\n\t\t\t.then(\n\t\t\t\t// Success\n\t\t\t\t(response) => {\n\t\t\t\t\tBX.reload();\n\t\t\t\t},\n\t\t\t\t// Failure\n\t\t\t\t(response) => {\n\t\t\t\t\tUtil.displayError(response.errors);\n\t\t\t\t}\n\t\t\t);\n\t}\n\n\trefreshSectionList()\n\t{\n\t\tthis.createSectionList();\n\t}\n\n\tshowOnlyOneSection(section, sections)\n\t{\n\t\tfor (let curSection of sections)\n\t\t{\n\t\t\tif(curSection.id === section.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.calendarContext.reload();\n\t}\n\n\n\tkeyHandler(e)\n\t{\n\t\tif (\n\t\t\te.keyCode === Util.getKeyCode('enter')\n\t\t\t&& this.DOM.confirmSectionPopup\n\t\t\t&& this.currentConfirmMode\n\t\t\t&& this.currentSection\n\t\t)\n\t\t{\n\t\t\tif (this.currentConfirmMode === 'delete')\n\t\t\t{\n\t\t\t\tthis.removeSection(this.currentSection);\n\t\t\t}\n\t\t\telse if (this.currentConfirmMode === 'hideSync')\n\t\t\t{\n\t\t\t\tthis.hideSyncSection(this.currentSection);\n\t\t\t}\n\t\t\telse if (this.currentConfirmMode === 'hideExternal')\n\t\t\t{\n\t\t\t\tthis.hideExternalSection(this.currentSection);\n\t\t\t}\n\t\t}\n\t}\n\n\tshowSectionConfirm(mode, section)\n\t{\n\t\tthis.currentSection = section;\n\t\tthis.currentConfirmMode = mode;\n\n\t\tconst confirmCallback = this.getConfirmCallback();\n\t\tconst okCaption = this.getOkCaption();\n\n\t\tthis.DOM.confirmSectionPopup = new MessageBox({\n\t\t\tmessage: this.getSectionConfirmContent(),\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: confirmCallback,\n\t\t\tonCancel: () => {\n\t\t\t\tthis.DOM.confirmSectionPopup.close();\n\t\t\t},\n\t\t\tokCaption: okCaption,\n\t\t\tpopupOptions: {\n\t\t\t\tevents: {\n\t\t\t\t\tonPopupClose: () => {\n\t\t\t\t\t\tdelete this.DOM.confirmSectionPopup;\n\t\t\t\t\t\tdelete this.currentSection;\n\t\t\t\t\t\tdelete this.currentConfirmMode;\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.confirmSectionPopup.show();\n\t}\n\n\tgetConfirmCallback()\n\t{\n\t\tif (this.currentConfirmMode === 'delete')\n\t\t{\n\t\t\treturn () => {\n\t\t\t\tthis.removeSection(this.currentSection);\n\t\t\t};\n\t\t}\n\t\telse if (this.currentConfirmMode === 'hideSync')\n\t\t{\n\t\t\treturn () => {\n\t\t\t\tthis.hideSyncSection(this.currentSection);\n\t\t\t};\n\t\t}\n\t\telse if (this.currentConfirmMode === 'hideExternal')\n\t\t{\n\t\t\treturn () => {\n\t\t\t\tthis.hideExternalSection(this.currentSection);\n\t\t\t};\n\t\t}\n\t}\n\n\tgetOkCaption()\n\t{\n\t\tif (this.currentConfirmMode === 'delete')\n\t\t{\n\t\t\treturn Loc.getMessage('EC_SEC_DELETE');\n\t\t}\n\t\telse if (this.currentConfirmMode === 'hideSync' || this.currentConfirmMode === 'hideExternal')\n\t\t{\n\t\t\treturn Loc.getMessage('EC_CAL_SYNC_DISCONNECT')\n\t\t}\n\t}\n\n\tgetSectionConfirmContent()\n\t{\n\t\tlet phrase = '';\n\n\t\tif (this.currentConfirmMode === 'delete')\n\t\t{\n\t\t\tphrase = Loc.getMessage('EC_SEC_DELETE_CONFIRM');\n\t\t}\n\t\telse if (this.currentConfirmMode === 'hideSync' || this.currentConfirmMode === 'hideExternal')\n\t\t{\n\t\t\tphrase = Loc.getMessage('EC_CAL_GOOGLE_HIDE_CONFIRM');\n\t\t}\n\n\t\treturn Tag.render`\n\t\t\t<div class=\"calendar-list-slider-messagebox-text\">${phrase}</div>\n\t\t`;\n\t}\n\n\tremoveSection(section)\n\t{\n\t\tsection.remove();\n\t\tthis.DOM.confirmSectionPopup.close();\n\t}\n\n\thideSyncSection(section)\n\t{\n\t\tsection.hideSyncSection();\n\t\tthis.DOM.confirmSectionPopup.close();\n\t}\n\n\thideExternalSection(section)\n\t{\n\t\tsection.hideExternalCalendarSection();\n\t\tthis.DOM.confirmSectionPopup.close();\n\t}\n}"],"names":["EditForm","EventEmitter","constructor","options","DOM","isCreated","setEventNamespace","outerWrap","wrap","sectionAccessTasks","sectionManager","closeCallback","BX","Util","getBX","keyHandlerBinded","keyHandler","bind","show","params","section","create","showAccess","allowChangeName","accessLink","style","display","accessWrap","Event","document","Dom","addClass","color","setColor","setAccess","access","data","ACCESS","name","sectionTitleInput","value","focus","select","disabled","isOpenedState","close","unbind","removeClass","Type","isFunction","isOpened","querySelector","clean","appendChild","props","className","formFieldsWrap","attrs","type","placeholder","Loc","getMessage","optionsWrap","initSectionColorSelector","initAccessController","buttonsWrap","saveBtn","UI","Button","text","events","click","save","renderTo","checkClose","e","keyCode","getKeyCode","setWaiting","saveSection","then","colorContWrap","html","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","zIndex","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","id","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","TrackingUsersForm","interfaceType","trackingUsers","trackingUserIdList","map","item","ID","trackingGroupIdList","CHECKED_CLASS","selectorId","superposedSections","selected","checkInnerWrapHeight","updateSectionList","firstTrackingUserIdList","cssText","innerWrap","selectorWrap","userTagSelector","TagSelector","dialogOptions","width","handleUserSelectorChanges","sectionsWrap","createButtons","selectedItems","getDialog","ajax","runAction","userIdList","sections","prepareTrackingSections","response","location","reload","displayError","errors","getSelectedSections","sectionIndex","checkbox","filter","delayExecution","updateSectionLoader","getLoader","height","updateSectionTimeout","users","user","OWNER_ID","FORMATTED_NAME","createSectionBlock","sectionList","result","listWrap","sectionClick","toString","li","COLOR","NAME","checkHeightTimeout","TrackingGroupsForm","trackingGroups","groupTagSelector","handleGroupSelectorChanges","groupIdList","TrackingTypesForm","selectGroups","selectUsers","addLinkMessage","SectionInterface","calendarContext","readonly","uid","SLIDER_WIDTH","SLIDER_DURATION","sliderId","denyClose","deletedSectionsIds","deleteSectionHandlerBinded","deleteSectionHandler","refreshSectionListBinded","refreshSectionList","config","accessNames","setAccessNames","SidePanel","Instance","contentCallback","createContent","animationDuration","onCloseByEsc","escHide","onClose","onCloseComplete","onLoad","onLoadSlider","addEventEmitterSubscriptions","subscribe","destroyEventEmitterSubscriptions","unsubscribe","event","getSlider","getUrl","denyAction","closeForms","removeCustomEvent","proxy","localSectionListWrap","sectionActionMenu","trackingTypesForm","trackingUsersForm","trackingGroupsForm","titleWrap","getCalendarContext","sectionFormWrap","isUserCalendar","userIsOwner","createAddButton","trackingGroupsFormWrap","trackingUsersFormWrap","trackingTypesFormWrap","createSectionList","slider","layout","sliderSections","getSections","find","sectonListOuterWrap","sectionClickHandler","createLocalSectionsList","createExternalSectionsList","getSectionListWrap","getLocalSectionListTitle","createSectionsBlock","externalTypeIsLocal","belongsToView","isPseudo","createCompanySectionList","createUsersSectionList","createGroupsSectionList","externalSections","extSectionListWrap","getSectionListWrapForSection","createSectionUnit","sectionExternalType","getExternalType","isGoogle","sectionExternalConnection","SectionManager","getSectionExternalConnection","CAL_DAV_CON","addParams","key","getId","sectionListWrap","getExternalConnectionBlockTitle","connection","isArchive","isExchange","bExchange","hintNode","isDomNode","initHintNode","connectionName","getConnectionAccountName","getConnectionName","getType","isCompanyCalendar","getSuperposedTrackedUsers","perm","edit_section","addButtonOuter","addButton","addButtonMore","showAddButtonPopup","showEditSectionForm","addBtnMenu","MenuItem","delimiter","showTrackingTypesForm","showTrackingUsersForm","showTrackingGroupsForm","sectionId","actionCont","showSectionMenu","getSection","switchSection","syncInterface","openSyncPanel","findCheckBoxNodes","querySelectorAll","checkboxNodes","switchOnSection","switchOffSection","menuItemNode","itemNode","closest","canDo","showOnlyOneSection","getLink","href","isSuperposed","hideSuperposedHandler","canBeConnectedToOutlook","connectToOutlook","EXPORT","LINK","sectionLink","calendarPath","path","IcalSyncPopup","checkPathes","createInstance","showPopupWithPathesError","provider","getProviderById","showSectionConfirm","isIcloud","isOffice365","isCalDav","openActiveConnectionSlider","taskSectionBelongToUser","userOptions","top","allowSliderClose","denySliderClose","editSectionForm","formTitleNode","getSectionAccessTasks","showAccessControl","hasPermission","isPrimaryForConnection","getRandomColor","getDefaultSectionAccess","getSuperposedSectionList","getSuperposedTrackedGroups","getOwnerId","BaseEvent","getData","index","deleteSectionNodes","deleteFromArray","curSection","confirmSectionPopup","currentConfirmMode","currentSection","removeSection","hideSyncSection","hideExternalSection","mode","confirmCallback","getConfirmCallback","okCaption","getOkCaption","MessageBox","message","getSectionConfirmContent","minHeight","minWidth","maxWidth","buttons","Dialogs","MessageBoxButtons","OK_CANCEL","onOk","onCancel","padding","contentPadding","animation","phrase","hideExternalCalendarSection"],"mappings":"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"}
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.28 |
proxy
|
phpinfo
|
Settings