File manager - Edit - /home/web/vm-3fadc827.na4u.ru/www/bitrix/modules/calendar/install/js/calendar/sync/interface/dist/syncinterface.bundle.js.map
Back
{"version":3,"file":"syncinterface.bundle.js","sources":["../src/controls/statusblock.js","../src/auxiliarysyncpanel.js","../src/syncpanelunit.js","../src/syncpanel.js","../src/gridunit.js","../src/controls/connectioncontrols.js","../src/controls/mobilesyncbanner.js","../src/itemstemplate/interfacetemplate.js","../src/itemstemplate/caldavinterfacetemplate.js","../src/itemstemplate/caldavtemplate.js","../src/itemstemplate/exchangetemplate.js","../src/itemstemplate/googletemplate.js","../src/itemstemplate/icloudtemplate.js","../src/itemstemplate/office365template.js","../src/itemstemplate/mactemplate.js","../src/itemstemplate/outlooktemplate.js","../src/itemstemplate/yandextemplate.js","../src/itemstemplate/mobileinterfacetemplate.js","../src/itemstemplate/androidtemplate.js","../src/itemstemplate/iphonetemplate.js","../src/controls/icalsyncpopup.js","../src/controls/aftersynctour.js"],"sourcesContent":["// @flow\n'use strict';\n\nimport {Loc, Tag} from \"main.core\";\nimport {SyncStatusPopup} from \"calendar.sync.manager\";\n\nexport default class StatusBlock\n{\n\tconstructor(options)\n\t{\n\t\tthis.status = options.status;\n\t\tthis.connections = options.connections;\n\t\tthis.withStatusLabel = options.withStatusLabel;\n\t\tthis.popupWithUpdateButton = options.popupWithUpdateButton;\n\t\tthis.popupId = options.popupId;\n\t}\n\n\tstatic createInstance(options)\n\t{\n\t\treturn new this(options);\n\t}\n\n\tsetStatus(status)\n\t{\n\t\tthis.status = status;\n\n\t\treturn this;\n\t}\n\n\tsetConnections(connections)\n\t{\n\t\tthis.connections = connections;\n\n\t\treturn this;\n\t}\n\n\tgetContent()\n\t{\n\t\tlet statusInfoBlock;\n\t\tif (this.status === 'success')\n\t\t{\n\t\t\tstatusInfoBlock = Tag.render `\n\t\t\t\t<div id=\"status-info-block\" class=\"ui-alert ui-alert-success calendar-sync-status-info\">\n\t\t\t\t\t<span class=\"ui-alert-message\">${Loc.getMessage('SYNC_STATUS_SUCCESS')}</span>\n\t\t\t\t</div>\n\t\t\t`;\n\t\t}\n\t\telse if (this.status === 'failed')\n\t\t{\n\t\t\tstatusInfoBlock = Tag.render `\n\t\t\t\t<div id=\"status-info-block\" class=\"ui-alert ui-alert-danger calendar-sync-status-info\">\n\t\t\t\t\t<span class=\"ui-alert-message\">${Loc.getMessage('SYNC_STATUS_ALERT')}</span>\n\t\t\t\t</div>\n\t\t\t`;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tstatusInfoBlock = Tag.render `\n\t\t\t\t<div id=\"status-info-block\" class=\"ui-alert ui-alert-primary calendar-sync-status-info\">\n\t\t\t\t\t<span class=\"ui-alert-message\">${Loc.getMessage('SYNC_STATUS_NOT_CONNECTED')}</span>\n\t\t\t\t</div>\n\t\t\t`;\n\t\t}\n\n\t\tstatusInfoBlock.addEventListener('mouseenter', () => {\n\t\t\tthis.handlerMouseEnter(statusInfoBlock);\n\t\t});\n\n\t\tstatusInfoBlock.addEventListener('mouseleave', () => {\n\t\t\tthis.handlerMouseLeave();\n\t\t});\n\n\t\tthis.statusBlock = Tag.render `\n\t\t\t<div class=\"calendar-sync-status-block\" id=\"calendar-sync-status-block\">\n\t\t\t\t${this.getStatusTextLabel()}\n\t\t\t\t${statusInfoBlock}\n\t\t\t</div>\n\t\t`;\n\n\t\treturn this.statusBlock;\n\t}\n\n\tgetStatusTextLabel()\n\t{\n\t\treturn this.withStatusLabel\n\t\t\t? Tag.render`\n\t\t\t\t<div class=\"calendar-sync-status-subtitle\">\n\t\t\t\t\t<span data-hint=\"\"></span>\n\t\t\t\t\t<span class=\"calendar-sync-status-text\">${Loc.getMessage('LABEL_STATUS_INFO')}:</span>\n\t\t\t\t</div>`\n\t\t\t: ''\n\t\t;\n\t}\n\n\thandlerMouseEnter(statusBlock)\n\t{\n\t\tclearTimeout(this.statusBlockEnterTimeout);\n\t\tthis.buttonEnterTimeout = setTimeout(() =>\n\t\t\t{\n\t\t\t\tthis.statusBlockEnterTimeout = null;\n\t\t\t\tthis.showPopup(statusBlock);\n\t\t\t}, 500\n\t\t);\n\t}\n\n\thandlerMouseLeave()\n\t{\n\t\tif (this.statusBlockEnterTimeout !== null)\n\t\t{\n\t\t\tclearTimeout(this.statusBlockEnterTimeout);\n\t\t\tthis.statusBlockEnterTimeout = null;\n\t\t\treturn;\n\t\t}\n\n\t\tthis.statusBlockLeaveTimeout = setTimeout(() =>\n\t\t\t{\n\t\t\t\tthis.hidePopup();\n\t\t\t}, 500\n\t\t);\n\t}\n\n\tshowPopup(node)\n\t{\n\t\tif(this.status !== 'not_connected')\n\t\t{\n\t\t\tthis.popup = this.getPopup(node);\n\t\t\tthis.popup.show();\n\n\t\t\tthis.addPopupHandlers();\n\t\t}\n\t}\n\n\thidePopup()\n\t{\n\t\tif (this.popup)\n\t\t{\n\t\t\tthis.popup.hide();\n\t\t}\n\t}\n\n\taddPopupHandlers()\n\t{\n\t\tthis.popup.getPopup().getPopupContainer().addEventListener('mouseenter', () =>\n\t\t{\n\t\t\tclearTimeout(this.statusBlockEnterTimeout);\n\t\t\tclearTimeout(this.statusBlockLeaveTimeout);\n\t\t});\n\n\t\tthis.popup.getPopup().getPopupContainer().addEventListener('mouseleave', () =>\n\t\t{\n\t\t\tthis.hidePopup();\n\t\t});\n\t}\n\n\tgetPopup(node)\n\t{\n\t\treturn SyncStatusPopup.createInstance({\n\t\t\tconnections: this.connections,\n\t\t\twithUpdateButton: this.popupWithUpdateButton,\n\t\t\tnode: node,\n\t\t\tid: this.popupId,\n\t\t});\n\t}\n\n\trefresh(status, connections)\n\t{\n\t\tthis.status = status;\n\t\tthis.connections = connections;\n\n\t\treturn this;\n\t}\n}","// @flow\n'use strict';\n\nimport {Dom, Loc, Tag, Cache} from \"main.core\";\nimport StatusBlock from \"./controls/statusblock\";\nimport {ConnectionItem} from \"calendar.sync.manager\";\n\nexport default class AuxiliarySyncPanel\n{\n\tMAIN_SYNC_SLIDER_NAME = 'calendar:auxiliary-sync-slider';\n\tSLIDER_WIDTH = 684;\n\tLOADER_NAME = \"calendar:loader\";\n\n\tcache = new Cache.MemoryCache();\n\n\tconstructor(options)\n\t{\n\t\tthis.status = options.status;\n\t\tthis.connectionsProviders = options.connectionsProviders;\n\t\tthis.userId = options.userId;\n\n\t\tthis.statusBlockEnterTimeout = null;\n\t\tthis.statusBlockLeaveTimeout = null;\n\t}\n\n\topenSlider()\n\t{\n\t\tBX.SidePanel.Instance.open(this.MAIN_SYNC_SLIDER_NAME, {\n\t\t\tcontentCallback: (slider) => {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tresolve(this.getContent());\n\t\t\t\t});\n\t\t\t},\n\t\t\tallowChangeHistory:false,\n\t\t\tevents: {\n\t\t\t\tonLoad: () => {\n\t\t\t\t\tthis.setGridContent();\n\t\t\t\t},\n\t\t\t\t// onMessage: (event) => {\n\t\t\t\t// \tif (event.getEventId() === 'refreshSliderGrid')\n\t\t\t\t// \t{\n\t\t\t\t// \t\tthis.refreshData();\n\t\t\t\t// \t}\n\t\t\t\t// },\n\t\t\t\t// onClose: (event) => {\n\t\t\t\t// \tBX.SidePanel.Instance.postMessageTop(window.top.BX.SidePanel.Instance.getTopSlider(), \"refreshCalendarGrid\", {});\n\t\t\t\t// },\n\t\t\t},\n\t\t\tcacheable: false,\n\t\t\twidth: this.SLIDER_WIDTH,\n\t\t\tloader: this.LOADER_NAME,\n\t\t});\n\t}\n\n\tgetContent()\n\t{\n\t\treturn Tag.render`\n\t\t\t<div class=\"calendar-sync-wrap\">\n\t\t\t\t${this.getHeader()}\n\t\t\t\t${this.getMobileHeader()}\n\t\t\t\t${this.getMobileContentWrapper()}\n\t\t\t\t${this.getWebHeader()}\n\t\t\t\t${this.getWebContentWrapper()}\n\t\t\t</div>\n\t\t`;\n\t}\n\n\tgetHeader()\n\t{\n\t\treturn Tag.render`\n\t\t\t<div class=\"calendar-sync-header\">\n\t\t\t\t${this.getMainHeader()}\n\t\t\t\t${this.getStatusBlockContent(this.getConnections())}\n\t\t\t</div>\n\t\t`;\n\t}\n\n\tgetMainHeader()\n\t{\n\t\treturn this.cache.remember('calendar-syncPanel-mainHeader', () => {\n\t\t\treturn Tag.render`\n\t\t\t\t<span class=\"calendar-sync-header-text\">${Loc.getMessage('SYNC_CALENDAR_HEADER')}</span>\n\t\t\t`;\n\t\t});\n\t}\n\n\tgetMobileContentWrapper()\n\t{\n\t\treturn this.cache.remember('calendar-syncPanel-mobileContentWrapper', () => {\n\t\t\treturn Tag.render`\n\t\t\t<div id=\"calendar-sync-mobile\" class=\"calendar-sync-mobile\"></div>\n\t\t`;\n\t\t});\n\n\t}\n\n\tgetWebContentWrapper()\n\t{\n\t\treturn this.cache.remember('calendar-syncPanel-webContentWrapper', () => {\n\t\t\treturn Tag.render`\n\t\t\t\t<div id=\"calendar-sync-web\" class=\"calendar-sync-web\"></div>\n\t\t\t`;\n\t\t});\n\t}\n\n\tgetMobileHeader()\n\t{\n\t\treturn this.cache.remember('calendar-syncPanel-mobileHeader', () => {\n\t\t\treturn Tag.render`\n\t\t\t\t<div class=\"calendar-sync-title\">${Loc.getMessage('SYNC_MOBILE_HEADER')}</div>\n\t\t\t`;\n\t\t});\n\t}\n\n\tgetWebHeader()\n\t{\n\t\treturn this.cache.remember('calendar-syncPanel-webHeader', () => {\n\t\t\treturn Tag.render`\n\t\t\t\t<div class=\"calendar-sync-title\">${Loc.getMessage('SYNC_WEB_HEADER')}</div>\n\t\t`;\n\t\t});\n\t}\n\n\tgetStatusBlockContent(connections)\n\t{\n\t\tthis.statusBlock = StatusBlock.createInstance({\n\t\t\tstatus: this.status,\n\t\t\tconnections: connections,\n\t\t\twithStatusLabel: true,\n\t\t\tpopupWithUpdateButton: true,\n\t\t\tpopupId: 'calendar-syncPanel-status',\n\t\t});\n\n\t\tthis.statusBlockContent = this.statusBlock.getContent()\n\t\treturn this.statusBlockContent;\n\t}\n\n\tgetConnections()\n\t{\n\t\tconst connections = [];\n\t\tconst items = Object.values(this.connectionsProviders);\n\t\titems.forEach(item =>\n\t\t{\n\t\t\tconst itemConnections = item.getConnections();\n\t\t\tif (itemConnections.length > 0)\n\t\t\t{\n\t\t\t\titemConnections.forEach(connection => {\n\n\t\t\t\t\tif (ConnectionItem.isConnectionItem(connection) && connection.getConnectStatus() === true)\n\t\t\t\t\t{\n\t\t\t\t\t\tconnections.push(connection);\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\t\t});\n\n\t\treturn connections;\n\t}\n\n\tsetGridContent()\n\t{\n\t\tconst items = Object.values(this.connectionsProviders);\n\n\t\tthis.showWebGridContent(items.filter(item => {\n\t\t\treturn item.mainPanel === false && item.getViewClassification() === 'web';\n\t\t}));\n\n\t\tthis.showMobileGridContent(items.filter(item => {\n\t\t\treturn item.mainPanel === false && item.getViewClassification() === 'mobile';\n\t\t}));\n\t}\n\n\tshowWebGridContent(items)\n\t{\n\t\tconst wrapper = this.getWebContentWrapper();\n\t\tDom.clean(wrapper);\n\t\tconst grid = new BX.TileGrid.Grid({\n\t\t\tid: 'calendar_sync',\n\t\t\titems: items,\n\t\t\tcontainer: wrapper,\n\t\t\tsizeRatio: \"55%\",\n\t\t\titemMinWidth: 180,\n\t\t\ttileMargin: 7,\n\t\t\titemType: 'BX.Calendar.Sync.Interface.GridUnit',\n\t\t\tuserId: this.userId,\n\t\t});\n\n\t\tgrid.draw();\n\t}\n\n\tshowMobileGridContent(items)\n\t{\n\t\tconst wrapper = this.getMobileContentWrapper();\n\t\tDom.clean(wrapper);\n\t\tconst grid = new BX.TileGrid.Grid({\n\t\t\tid: 'calendar_sync',\n\t\t\titems: items,\n\t\t\tcontainer: wrapper,\n\t\t\tsizeRatio: \"55%\",\n\t\t\titemMinWidth: 180,\n\t\t\ttileMargin: 7,\n\t\t\titemType: 'BX.Calendar.Sync.Interface.GridUnit',\n\t\t});\n\n\t\tgrid.draw();\n\t}\n\n\trefresh(status, connectionsProviders)\n\t{\n\t\tthis.status = status;\n\t\tthis.connectionsProviders = connectionsProviders;\n\t\tthis.blockStatusContent = this.statusBlock.refresh(status, this.getConnections()).getContent();\n\t\tDom.replace(document.querySelector('#calendar-sync-status-block'), this.blockStatusContent);\n\t\tthis.setGridContent();\n\t}\n}","// @flow\n'use strict';\n\nimport 'ui.tilegrid';\nimport 'ui.forms';\nimport { Dom, Loc, Tag, Type, Event} from 'main.core';\n\nexport default class SyncPanelUnit\n{\n\tlogoClassName = '';\n\n\tconstructor(options)\n\t{\n\t\tthis.options = options;\n\t\tthis.connectionProvider = this.options.connection;\n\t}\n\n\tgetConnectionTemplate()\n\t{\n\t\tif (!this.connectionTemplate)\n\t\t{\n\t\t\tthis.connectionTemplate = this.connectionProvider.getClassTemplateItem().createInstance(this.connectionProvider);\n\t\t}\n\t\treturn this.connectionTemplate;\n\t}\n\n\trenderTo(outerWrapper)\n\t{\n\t\tif (Type.isElementNode(outerWrapper))\n\t\t{\n\t\t\touterWrapper.appendChild(this.getContent());\n\t\t}\n\t}\n\n\tgetContent()\n\t{\n\t\tlet className = this.connectionProvider.getStatus() === 'success' ? '--active' : '';\n\t\tif (this.connectionProvider.getStatus() === 'pending')\n\t\t{\n\t\t\tclassName += '--pending';\n\t\t}\n\n\t\tthis.unitNode = Tag.render`\n\t\t\t<div class=\"calendar-sync__calendar-item ${className}\">\n\t\t\t\t<div class=\"calendar-sync__calendar-item--logo\">\n\t\t\t\t\t${this.getLogoNode()}\n\t\t\t\t</div>\n\t\t\t\t<div class=\"calendar-sync__calendar-item--container\">\n\t\t\t\t\t<div class=\"calendar-sync__calendar-item--title\">${this.getTitle()}</div>\n\t\t\t\t\t${this.getButtonsWrap()}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`;\n\n\t\tEvent.bind(this.unitNode, 'click', this.handleItemClick.bind(this))\n\n\t\treturn this.unitNode;\n\t}\n\n\tgetLogoNode()\n\t{\n\t\treturn Tag.render`<div class=\"calendar-sync__calendar-item--logo-image ${this.connectionProvider.getSyncPanelLogo()}\"></div>`;\n\t}\n\n\tgetTitle()\n\t{\n\t\treturn this.connectionProvider.getSyncPanelTitle();\n\t}\n\n\tgetButtonsWrap()\n\t{\n\t\tthis.buttonsWrap = Tag.render`<div class=\"calendar-sync__calendar-item--buttons\">\n\t\t\t${this.getButton()}\n\t\t\t<!--<div class=\"calendar-sync__calendar-item--more\"></div>-->\n\t\t</div>`;\n\t\t// Event.bind(this.buttonsWrap, 'click', this.handleButtonClick.bind(this))\n\n\t\treturn this.buttonsWrap;\n\t}\n\n\trefreshButton()\n\t{\n\t\tDom.clean(this.buttonsWrap);\n\t\tthis.button = this.buttonsWrap.appendChild(this.getButton());\n\t}\n\n\tgetButton()\n\t{\n\t\tswitch (this.connectionProvider.getStatus())\n\t\t{\n\t\t\tcase 'success':\n\t\t\t\tthis.button = Tag.render`\n\t\t\t\t\t<a data-role=\"status-success\" class=\"ui-btn ui-btn-icon-success ui-btn-light-border ui-btn-round\">\n\t\t\t\t\t\t${Loc.getMessage('CAL_BUTTON_STATUS_SUCCESS')}\n\t\t\t\t\t</a>`;\n\t\t\t\tbreak;\n\t\t\tcase 'failed':\n\t\t\t\tthis.button = Tag.render`\n\t\t\t\t\t<a data-role=\"status-failed\" class=\"ui-btn ui-btn-icon-fail ui-btn-light-border ui-btn-round\">\n\t\t\t\t\t\t${Loc.getMessage('CAL_BUTTON_STATUS_FAILED')}\n\t\t\t\t\t</a>`;\n\t\t\t\tbreak;\n\t\t\tcase 'pending':\n\t\t\t\tthis.button = Tag.render`\n\t\t\t\t\t<a data-role=\"status-pending\" class=\"ui-btn ui-btn-disabled ui-btn-round\">\n\t\t\t\t\t\t${Loc.getMessage('CAL_BUTTON_STATUS_PENDING')}\n\t\t\t\t\t</a>`;\n\t\t\t\tbreak;\n\t\t\tcase 'not_connected':\n\t\t\t\tthis.button = Tag.render`\n\t\t\t\t\t<a data-role=\"status-not_connected\" class=\"ui-btn ui-btn-success ui-btn-round\">\n\t\t\t\t\t\t${Loc.getMessage('CAL_BUTTON_STATUS_NOT_CONNECTED')}\n\t\t\t\t\t</a>`;\n\t\t\t\tbreak;\n\n\t\t}\n\t\treturn this.button;\n\t}\n\n\t// handleButtonClick(e)\n\t// {\n\t// \tconst target = e.target || e.srcElement;\n\t// \tif (Type.isElementNode(target))\n\t// \t{\n\t// \t\tconst role = target.getAttribute('data-role');\n\t//\n\t// \t\tif (role === 'status-not_connected')\n\t// \t\t{\n\t// \t\t\tthis.getConnectionTemplate().handleConnectButton();\n\t// \t\t}\n\t// \t}\n\t// }\n\n\thandleItemClick(e)\n\t{\n\t\tconst status = this.connectionProvider.getStatus();\n\t\tif (['failed', 'success'].includes(status))\n\t\t{\n\t\t\tif (this.connectionProvider.hasMenu())\n\t\t\t{\n\t\t\t\tthis.connectionProvider.showMenu(this.button);\n\t\t\t}\n\t\t\telse if (this.connectionProvider.getConnectStatus())\n\t\t\t{\n\t\t\t\tthis.connectionProvider.openActiveConnectionSlider(this.connectionProvider.getConnection());\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.connectionProvider.openInfoConnectionSlider();\n\t\t\t}\n\t\t}\n\t\telse if(status === 'not_connected')\n\t\t{\n\t\t\tthis.getConnectionTemplate().handleConnectButton();\n\t\t}\n\t}\n}\n","// @flow\n'use strict';\n\nimport {Dom, Loc, Tag, Cache, Event} from \"main.core\";\nimport {ConnectionItem} from \"calendar.sync.manager\";\nimport AuxiliarySyncPanel from \"./auxiliarysyncpanel\";\nimport SyncPanelUnit from './syncpanelunit';\n\nexport default class SyncPanel\n{\n\tMAIN_SYNC_SLIDER_NAME = 'calendar:sync-slider';\n\tHELPDESK_CODE = 11828176;\n\tSLIDER_WIDTH = 770;\n\tLOADER_NAME = \"calendar:loader\";\n\tcache = new Cache.MemoryCache();\n\n\tconstructor(options)\n\t{\n\t\tthis.status = options.status;\n\t\tthis.connectionsProviders = options.connectionsProviders;\n\t\tthis.userId = options.userId;\n\t\tthis.BX = window.top.BX || window.BX;\n\t}\n\n\topenSlider()\n\t{\n\t\tBX.SidePanel.Instance.open(this.MAIN_SYNC_SLIDER_NAME, {\n\t\t\tcontentCallback: (slider) => {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tresolve(this.getContent());\n\t\t\t\t});\n\t\t\t},\n\t\t\tallowChangeHistory: false,\n\t\t\tevents: {\n\t\t\t\tonLoad: () => {\n\t\t\t\t\tthis.displayConnectionUnits();\n\t\t\t\t}\n\t\t\t},\n\t\t\tcacheable: false,\n\t\t\twidth: this.SLIDER_WIDTH,\n\t\t\tloader: this.LOADER_NAME,\n\t\t});\n\t}\n\n\tgetContent()\n\t{\n\t\treturn Tag.render`\n\t\t\t<div class=\"calendar-sync__wrapper calendar-sync__scope\">\n\t\t\t\t${this.getHeaderWrapper()}\n\t\t\t\t<div class=\"calendar-sync__content\">\n\t\t\t\t${this.getUnitsContentWrapper()}\n\t\t\t\t${this.getFooterWrapper()}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`;\n\t}\n\n\tgetHeaderWrapper()\n\t{\n\t\treturn Tag.render`\n\t\t\t<div class=\"calendar-sync__header\">\n\t\t\t\t<div class=\"calendar-sync__header-logo\"></div>\n\t\t\t\t<div class=\"calendar-sync__header-container\">\n\t\t\t\t\t<div class=\"calendar-sync__header-title\">${Loc.getMessage('CAL_SYNC_TITLE')}</div>\n\t\t\t\t\t<div class=\"calendar-sync__header-sub-title\">${Loc.getMessage('CAL_SYNC_SUB_TITLE')}</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`;\n\t}\n\n\tgetUnitsContentWrapper()\n\t{\n\t\tthis.unitsContentWrapper = Tag.render`\n\t\t\t<div class=\"calendar-sync__calendar-list\">\n\t\t\t</div>\n\t\t`;\n\n\t\treturn this.unitsContentWrapper;\n\t}\n\n\tgetFooterWrapper()\n\t{\n\t\treturn Tag.render`\n\t\t\t<div class=\"calendar-sync__content-block --space-bottom\">\n\t\t\t\t${this.getExtraInfoWithCheckIcon()}\n\t\t\t</div>\n\t\t\t<div class=\"calendar-sync__content-block --space-bottom --space-left\">\n\t\t\t\t${this.getOpenAuxiliaryPanelLink()}\n\t\t\t</div>\n\t\t\t<div class=\"calendar-sync__content-block --space-left\">\n\t\t\t\t${this.getOpenHelpLink()}\n\t\t\t</div>\n\t\t`;\n\t}\n\n\tgetExtraInfoWithCheckIcon()\n\t{\n\t\tconst alreadyConnected = Object.values(this.connectionsProviders).filter(item => {\n\t\t\treturn item.mainPanel && item.status;\n\t\t}).length > 0;\n\n\t\treturn Tag.render`\n\t\t\t<div class=\"calendar-sync__content-text --icon-check${(alreadyConnected ? ' --disabled' : '')}\">\n\t\t\t\t${Loc.getMessage('CAL_SYNC_INFO_PROMO')}\n\t\t\t</div>\n\t\t`;\n\t}\n\n\tgetOpenAuxiliaryPanelLink()\n\t{\n\t\tconst link = Tag.render`\n\t\t\t<div class=\"calendar-sync__content-link\">\n\t\t\t\t${Loc.getMessage('CAL_OPEN_AUXILIARY_PANEL')}\n\t\t\t</div>\n\t\t`;\n\t\tEvent.bind(link, 'click', () => {\n\t\t\t\tthis.auxiliarySyncPanel = new AuxiliarySyncPanel({\n\t\t\t\t\tconnectionsProviders: this.connectionsProviders,\n\t\t\t\t\tuserId: this.userId,\n\t\t\t\t\tstatus: this.status,\n\t\t\t\t});\n\t\t\t\tthis.auxiliarySyncPanel.openSlider();\n\t\t});\n\n\t\treturn link;\n\t}\n\n\tgetOpenHelpLink()\n\t{\n\t\tconst link = Tag.render`\n\t\t\t<div class=\"calendar-sync__content-link\">${Loc.getMessage('CAL_SHOW_SYNC_HELP')}</divclass>\n\t\t`;\n\t\tEvent.bind(link, 'click', () => {\n\t\t\tif(this.BX.Helper)\n\t\t\t{\n\t\t\t\tthis.BX.Helper.show(\"redirect=detail&code=\" + this.HELPDESK_CODE);\n\t\t\t}\n\t\t});\n\n\t\treturn link;\n\t}\n\n\tgetConnections()\n\t{\n\t\tconst connections = [];\n\t\tconst items = Object.values(this.connectionsProviders);\n\t\titems.forEach(item =>\n\t\t{\n\t\t\tconst itemConnections = item.getConnections();\n\t\t\tif (itemConnections.length > 0)\n\t\t\t{\n\t\t\t\titemConnections.forEach(connection => {\n\n\t\t\t\t\tif (ConnectionItem.isConnectionItem(connection) && connection.getConnectStatus() === true)\n\t\t\t\t\t{\n\t\t\t\t\t\tconnections.push(connection);\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\t\t});\n\n\t\treturn connections;\n\t}\n\n\tdisplayConnectionUnits()\n\t{\n\t\tconst items = Object.values(this.connectionsProviders).filter(item => {\n\t\t\treturn item.mainPanel || item.connected;\n\t\t});\n\n\t\tthis.renderConnectionUnits(items);\n\t}\n\n\trenderConnectionUnits(items)\n\t{\n\t\tDom.clean(this.unitsContentWrapper);\n\t\titems.forEach((item) => {\n\t\t\tconst unit = new SyncPanelUnit({connection: item});\n\t\t\tunit.renderTo(this.unitsContentWrapper);\n\t\t});\n\t}\n\n\tshowWebGridContent(items)\n\t{\n\t\tconst wrapper = this.getWebContentWrapper();\n\t\tDom.clean(wrapper);\n\t\tconst grid = new BX.TileGrid.Grid({\n\t\t\tid: 'calendar_sync',\n\t\t\titems: items,\n\t\t\tcontainer: wrapper,\n\t\t\tsizeRatio: \"55%\",\n\t\t\titemMinWidth: 180,\n\t\t\ttileMargin: 7,\n\t\t\titemType: 'BX.Calendar.Sync.Interface.GridUnit',\n\t\t\tuserId: this.userId,\n\t\t});\n\n\t\tgrid.draw();\n\t}\n\n\trefresh(status, connectionsProviders)\n\t{\n\t\tthis.status = status;\n\t\tthis.connectionsProviders = connectionsProviders;\n\t\tDom.replace(document.querySelector('#calendar-sync-status-block'), this.blockStatusContent);\n\t\tthis.displayConnectionUnits();\n\t\tthis.auxiliarySyncPanel.refresh(status, connectionsProviders);\n\t}\n}","// @flow\n'use strict';\n\nimport 'ui.tilegrid';\nimport 'ui.forms';\nimport {Tag} from \"main.core\";\n\nexport default class GridUnit extends BX.TileGrid.Item\n{\n\tconstructor(item)\n\t{\n\t\tsuper({\n\t\t\tid: item.type,\n\t\t});\n\t\tthis.item = item;\n\t}\n\n\tgetContent()\n\t{\n\t\tthis.gridUnit = Tag.render`<div class=\"calendar-sync-item ${this.getAdditionalContentClass()}\" style=\"${this.getContentStyles()}\">\n\t\t\t<div class=\"calendar-item-content\">\n\t\t\t\t${this.getImage()}\n\t\t\t\t${this.getTitle()}\n\t\t\t\t${(this.isActive() ? this.getStatus() : '')}\n\t\t\t</div>\n\t\t</div>`;\n\n\t\tthis.gridUnit.addEventListener('click', this.onClick.bind(this));\n\n\t\treturn this.gridUnit;\n\t}\n\n\tgetTitle()\n\t{\n\t\tif (!this.layout.title)\n\t\t{\n\t\t\tthis.layout.title = Tag.render `\n\t\t\t\t<div class=\"calendar-sync-item-title\">${BX.util.htmlspecialchars(this.item.getGridTitle())}</div>`;\n\t\t}\n\n\t\treturn this.layout.title;\n\t}\n\n\tgetImage()\n\t{\n\t\treturn Tag.render `\n\t\t\t<div class=\"calendar-sync-item-image\">\n\t\t\t\t<div class=\"calendar-sync-item-image-item\" style=\"background-image: ${'url(' + this.item.getGridIcon() + ')'}\"></div>\n\t\t\t</div>`;\n\t}\n\n\tgetStatus()\n\t{\n\t\tif (this.isActive())\n\t\t{\n\t\t\treturn Tag.render `\n\t\t\t\t<div class=\"calendar-sync-item-status\"></div>\n\t\t\t`;\n\t\t}\n\n\t\treturn '';\n\t}\n\n\tisActive()\n\t{\n\t\treturn this.item.getConnectStatus();\n\t}\n\n\tgetAdditionalContentClass()\n\t{\n\t\tif (this.isActive())\n\t\t{\n\t\t\tif (this.item.getSyncStatus())\n\t\t\t{\n\t\t\t\treturn 'calendar-sync-item-selected';\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\treturn 'calendar-sync-item-failed';\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\treturn '';\n\t\t}\n\t}\n\n\tgetContentStyles()\n\t{\n\t\tif (this.isActive())\n\t\t{\n\t\t\treturn 'background-color:' + this.item.getGridColor() + ';';\n\t\t}\n\t\telse\n\t\t{\n\t\t\treturn '';\n\t\t}\n\t}\n\n\tonClick()\n\t{\n\t\tBX.ajax.runAction('calendar.api.calendarajax.analytical', {\n\t\t\tanalyticsLabel: {\n\t\t\t\topen_connection_slider: 'Y',\n\t\t\t\tsync_connection_type: this.item.getType(),\n\t\t\t\tsync_connection_status: this.item.getSyncStatus() ? 'Y' : 'N',\n\t\t\t}\n\t\t});\n\n\t\tif (this.item.hasMenu())\n\t\t{\n\t\t\tthis.item.showMenu(this.gridUnit);\n\t\t}\n\t\telse if (this.item.getConnectStatus())\n\t\t{\n\t\t\tthis.item.openActiveConnectionSlider(this.item.getConnection());\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.item.openInfoConnectionSlider();\n\t\t}\n\t}\n}","// @flow\n'use strict';\n\nimport {Loc, Tag} from \"main.core\";\n\nexport default class ConnectionControls\n{\n\tuserName = null;\n\tserver = null;\n\tconnectionName = null;\n\n\tconstructor(options = null)\n\t{\n\t\tthis.addButtonText = Loc.getMessage('CAL_UPPER_CONNECT');\n\t\tthis.removeButtonText = Loc.getMessage('CAL_UPPER_DISCONNECT');\n\t\tthis.saveButtonText = Loc.getMessage('CAL_UPPER_SAVE');\n\n\t\tif (options !== null)\n\t\t{\n\t\t\tthis.userName = BX.util.htmlspecialchars(options.userName);\n\t\t\tthis.server = BX.util.htmlspecialchars(options.server);\n\t\t\tthis.connectionName = BX.util.htmlspecialchars(options.connectionName);\n\t\t}\n\t}\n\n\tgetWrapper()\n\t{\n\t\treturn Tag.render `\n\t\t\t<div class=\"calendar-sync-slider-section calendar-sync-slider-section-form\"></div>\n\t\t`;\n\t}\n\n\tgetForm()\n\t{\n\t\treturn Tag.render`\n\t\t\t<form class=\"calendar-sync-slider-form\" action=\"\">\n\t\t\t\t<div class=\"calendar-sync-slider-field\">\n\t\t\t\t\t<div class=\"ui-ctl ui-ctl-w100 ui-ctl-textbox\">\n\t\t\t\t\t\t<input type=\"text\" class=\"ui-ctl-element\" placeholder=\\\"${Loc.getMessage('CAL_TEXT_NAME')}\\\" name=\"name\" value=\"${this.connectionName || ''}\">\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"calendar-sync-slider-field\">\n\t\t\t\t\t<div class=\"ui-ctl ui-ctl-w100 ui-ctl-textbox\">\n\t\t\t\t\t\t<input type=\"text\" class=\"ui-ctl-element\" placeholder=\\\"${Loc.getMessage('CAL_TEXT_SERVER_ADDRESS')}\\\" name=\"server\" value=\"${this.server || ''}\">\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"calendar-sync-slider-field\">\n\t\t\t\t\t<div class=\"ui-ctl ui-ctl-w100 ui-ctl-textbox\">\n\t\t\t\t\t\t<input type=\"text\" class=\"ui-ctl-element\" placeholder=\\\"${Loc.getMessage('CAL_TEXT_USER_NAME')}\\\" name=\"user_name\" value=\"${this.userName || ''}\">\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"calendar-sync-slider-field\">\n\t\t\t\t\t<div class=\"ui-ctl ui-ctl-w100 ui-ctl-textbox\">\n\t\t\t\t\t\t<input type=\"password\" class=\"ui-ctl-element\" name=\"password\" placeholder=\\\"${Loc.getMessage('CAL_TEXT_PASSWORD')}\\\">\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</form>\n\t\t`;\n\t}\n\n\tgetAddButton()\n\t{\n\t\treturn Tag.render `\n\t\t\t<button id=\"connect-button\" class=\"ui-btn ui-btn-light-border\">${this.addButtonText}</button>\n\t\t`;\n\t}\n\n\tgetDisconnectButton()\n\t{\n\t\treturn Tag.render`\n\t\t\t<button id=\"disconnect-button\" class=\"calendar-sync-slider-btn ui-btn ui-btn-light-border\">${this.removeButtonText}</button>\n\t\t`;\n\t}\n\n\tgetSaveButton()\n\t{\n\t\treturn Tag.render`\n\t\t\t<button id=\"edit-connect-button\" class=\"calendar-sync-slider-btn ui-btn ui-btn-light-border\">${this.saveButtonText}</button>\n\t\t`;\n\t}\n\n\tgetButtonWrapper()\n\t{\n\t\treturn Tag.render`\n\t\t\t<div class=\"calendar-sync-slider-form-btn\"></div>\n\t\t`;\n\t}\n}","// @flow\n'use strict';\nimport {Type, Tag, Loc, Runtime, Dom} from 'main.core';\nimport {Util} from \"calendar.util\";\nimport {Popup} from 'main.popup';\n\nexport default class MobileSyncBanner\n{\n\tzIndex = 3100;\n\tDOM = {};\n\tQRCODE_SIZE = 186;\n\tQRCODE_COLOR_LIGHT = '#ffffff';\n\tQRCODE_COLOR_DARK = '#000000';\n\tQRCODE_WRAP_CLASS = 'calendar-sync-slider-qr-container';\n\tQRC = null;\n\n\tconstructor(options = {})\n\t{\n\t\tthis.type = options.type;\n\t\tthis.helpDeskCode = options.helpDeskCode || '11828176';\n\t}\n\n\tshow()\n\t{\n\t}\n\n\tshowInPopup()\n\t{\n\t\tthis.popup = new Popup({\n\t\t\tclassName: 'calendar-sync-qr-popup',\n\t\t\tdraggable: true,\n\t\t\tcontent: this.getContainer(),\n\t\t\twidth: 580,\n\t\t\tzIndexAbsolute: this.zIndex,\n\t\t\tcacheable: false,\n\t\t\tcloseByEsc: true,\n\t\t\tcloseIcon: true,\n\t\t});\n\t\tthis.popup.show();\n\n\t\tthis.initQrCode().then(this.drawQRCode.bind(this));\n\t}\n\n\tclose()\n\t{\n\t\tthis.popup.close();\n\t}\n\n\tgetContainer()\n\t{\n\t\tthis.DOM.container = Tag.render `\n\t\t\t${this.getSliderContentInfoBlock}\n\t\t\t<div class=\"calendar-sync-qr-popup-content\">\n\t\t\t\t<div class=\"calendar-sync-qr-popup-title\">\n\t\t\t\t\t${this.getTitle()}\n\t\t\t\t</div>\n\t\t\t\t<div class=\"calendar-sync-slider-content\">\n\t\t\t\t\t<img class=\"calendar-sync-slider-phone-img\" src=\"/bitrix/images/calendar/sync/qr-background.svg\" alt=\"\">\n\t\t\t\t\t<div class=\"calendar-sync-slider-qr\">\n\t\t\t\t\t\t<div class=\"${this.QRCODE_WRAP_CLASS}\">${Util.getLoader(this.QRCODE_SIZE)}</div>\n\t\t\t\t\t\t<span class=\"calendar-sync-slider-logo\"></span>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"calendar-sync-slider-instruction\">\n\t\t\t\t\t\t<!--<div class=\"calendar-sync-slider-instruction-subtitle\"></div>-->\n\t\t\t\t\t\t<div class=\"calendar-sync-slider-instruction-title\">${Loc.getMessage('SYNC_MOBILE_NOTICE_HOW_TO')} ${this.type !== 'iphone' ? Tag.render `<span class=\"calendar-notice-mobile-banner\" data-hint=\"${Loc.getMessage('CAL_ANDROID_QR_CODE_HINT')}\" data-hint-no-icon=\"Y\"></span>` : ''}</div>\n\t\t\t\t\t\t<div class=\"calendar-sync-slider-instruction-notice\">${Loc.getMessage('SYNC_MOBILE_NOTICE')}</div>\n\t\t\t\t\t\t<a href=\"javascript:void(0);\" \n\t\t\t\t\t\t\t\tonclick=\"BX.Helper.show('redirect=detail&code=' + ${this.getHelpdeskCode()},{zIndex:3100,}); event.preventDefault();\" \n\t\t\t\t\t\t\t\tclass=\"ui-btn ui-btn-success ui-btn-round\">\n\t\t\t\t\t\t\t${Loc.getMessage('SYNC_MOBILE_ABOUT_BTN')}\n\t\t\t\t\t\t</a>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`;\n\n\t\tUtil.initHintNode(this.DOM.container.querySelector('.calendar-notice-mobile-banner'));\n\n\t\treturn this.DOM.container;\n\t}\n\n\tgetInnerContainer()\n\t{\n\t\treturn this.DOM.container.querySelector('.' + this.QRCODE_WRAP_CLASS);\n\t}\n\n\tinitQrCode()\n\t{\n\t\treturn new Promise((resolve) => {\n\t\t\tRuntime.loadExtension(['main.qrcode']).then((exports) => {\n\t\t\t\tif (exports && exports.QRCode)\n\t\t\t\t{\n\t\t\t\t\tresolve();\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\tdrawQRCode(wrap)\n\t{\n\t\tif (!Type.isDomNode(wrap))\n\t\t{\n\t\t\twrap = this.getInnerContainer();\n\t\t}\n\n\t\tthis.getMobileSyncUrl().then((link) => {\n\t\t\tDom.clean(wrap);\n\t\t\tthis.QRC = new QRCode(wrap, {\n\t\t\t\ttext: link,\n\t\t\t\twidth: this.getSize(),\n\t\t\t\theight: this.getSize(),\n\t\t\t\tcolorDark : this.QRCODE_COLOR_DARK,\n\t\t\t\tcolorLight : this.QRCODE_COLOR_LIGHT,\n\t\t\t\tcorrectLevel : QRCode.CorrectLevel.H\n\t\t\t});\n\t\t});\n\t}\n\n\tgetTitle()\n\t{\n\t\treturn Loc.getMessage('SYNC_BANNER_MOBILE_TITLE');\n\t}\n\n\tgetMobileSyncUrl()\n\t{\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tBX.ajax.runAction('calendar.api.calendarajax.getAuthLink', {\n\t\t\t\tdata: {\n\t\t\t\t\ttype: this.type ? 'slider' : 'banner',\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\tresolve(response.data.link);\n\t\t\t\t},\n\t\t\t\treject\n\t\t\t);\n\t\t});\n\t}\n\n\tgetSize()\n\t{\n\t\treturn this.QRCODE_SIZE;\n\t}\n\n\tgetDetailHelpUrl()\n\t{\n\t\treturn 'https://helpdesk.bitrix24.ru/open/' + this.getHelpdeskCode();\n\t}\n\n\tgetHelpdeskCode()\n\t{\n\t\treturn this.helpDeskCode;\n\t}\n}\n","// @flow\n'use strict';\n\nimport {ajax, Loc, Tag, Dom} from \"main.core\";\nimport StatusBlock from \"../controls/statusblock\"\nimport {EventEmitter} from \"main.core.events\";\n\nexport class InterfaceTemplate extends EventEmitter\n{\n\tstatic SLIDER_WIDTH = 606;\n\tsliderWidth = 840;\n\tstatic SLIDER_PREFIX = 'calendar:connection-sync-';\n\n\tconstructor(options)\n\t{\n\t\tsuper();\n\t\tthis.setEventNamespace('BX.Calendar.Sync.Interface.InterfaceTemplate');\n\n\t\tthis.title = options.title;\n\t\tthis.helpdeskCode = options.helpDeskCode;\n\t\tthis.titleInfoHeader = options.titleInfoHeader;\n\t\tthis.descriptionInfoHeader = options.descriptionInfoHeader;\n\t\tthis.titleActiveHeader = options.titleActiveHeader;\n\t\tthis.descriptionActiveHeader = options.descriptionActiveHeader;\n\t\tthis.sliderIconClass = options.sliderIconClass;\n\t\tthis.iconPath = options.iconPath;\n\t\tthis.color = options.color;\n\t\tthis.provider = options.provider;\n\t\tthis.connection = options.connection;\n\t\tthis.popupWithUpdateButton = options.popupWithUpdateButton;\n\t}\n\n\tstatic createInstance(provider, connection = null)\n\t{\n\t\treturn new this(provider, connection);\n\t}\n\n\tgetInfoConnectionContent()\n\t{\n\t\treturn Tag.render`\n\t\t\t<div class=\"calendar-sync-wrap calendar-sync-wrap-detail\">\n\t\t\t\t${this.getContentInfoHeader()}\n\t\t\t\t${this.getContentInfoBody()}\n\t\t\t</div>\n\t\t`\n\t}\n\n\tgetActiveConnectionContent()\n\t{\n\t\treturn Tag.render`\n\t\t\t<div class=\"calendar-sync-wrap calendar-sync-wrap-detail\">\n\t\t\t\t${this.getContentActiveHeader()}\n\t\t\t\t${this.getContentActiveBody()}\n\t\t\t</div>\n\t\t`\n\t}\n\n\tgetContentInfoHeader()\n\t{\n\t\tthis.statusBlock = StatusBlock.createInstance({\n\t\t\tstatus: \"not_connected\",\n\t\t\tconnections: [this.connection],\n\t\t\twithStatusLabel: false,\n\t\t\tpopupWithUpdateButton: this.popupWithUpdateButton,\n\t\t\tpopupId: 'calendar-interfaceTemplate-status',\n\t\t});\n\n\t\treturn Tag.render`\n\t\t\t<div class=\"calendar-sync-header\">\n\t\t\t\t<span class=\"calendar-sync-header-text\">${this.getHeaderTitle()}</span>\n\t\t\t\t${this.statusBlock.getContent()}\n\t\t\t</div>\n\t\t`;\n\t}\n\n\tgetContentInfoBody()\n\t{\n\t\treturn Tag.render`\n\t\t\t${this.getContentInfoBodyHeader()}\n\t\t`;\n\t}\n\n\tgetContentActiveHeader()\n\t{\n\t\tthis.statusBlock = StatusBlock.createInstance({\n\t\t\tstatus: this.connection.getStatus(),\n\t\t\tconnections: [this.connection],\n\t\t\twithStatusLabel: false,\n\t\t\tpopupWithUpdateButton: this.popupWithUpdateButton,\n\t\t\tpopupId: 'calendar-interfaceTemplate-status',\n\t\t});\n\n\t\treturn Tag.render`\n\t\t\t<div class=\"calendar-sync-header\">\n\t\t\t\t<span class=\"calendar-sync-header-text\">${this.getHeaderTitle()}</span>\n\t\t\t\t${this.statusBlock.getContent()}\n\t\t\t</div>\n\t\t`;\n\t}\n\n\tgetContentActiveBody()\n\t{\n\t\treturn Tag.render`\n\t\t\t${this.getContentActiveBodyHeader()}\n\t\t`;\n\t}\n\n\tshowHelp()\n\t{\n\t\tif (BX.Helper)\n\t\t{\n\t\t\tBX.Helper.show(\"redirect=detail&code=\" + this.helpdeskCode);\n\t\t\tevent.preventDefault();\n\t\t}\n\t}\n\n\tgetHelpdeskLink()\n\t{\n\t\treturn 'https://helpdesk.bitrix24.ru/open/' + this.helpdeskCode;\n\t}\n\n\tgetHeaderTitle()\n\t{\n\t\treturn this.title;\n\t}\n\n\tgetContentInfoBodyHeader()\n\t{\n\t\treturn Tag.render`\n\t\t\t<div class=\"calendar-sync-slider-section\">\n\t\t\t\t<div class=\"calendar-sync-slider-header-icon ${this.sliderIconClass}\"></div>\n\t\t\t\t<div class=\"calendar-sync-slider-header\">\n\t\t\t\t<div class=\"calendar-sync-slider-title\">\n\t\t\t\t\t${this.titleInfoHeader}\n\t\t\t\t</div>\n\t\t\t\t<div class=\"calendar-sync-slider-info\">\n\t\t\t\t\t<span class=\"calendar-sync-slider-info-text\">\n\t\t\t\t\t\t${this.descriptionInfoHeader}\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"calendar-sync-slider-info\">\n\t\t\t\t\t<span class=\"calendar-sync-slider-info-text\">\n\t\t\t\t\t\t<a class=\"calendar-sync-slider-info-link\" href=\"javascript:void(0);\" onclick=\"${this.showHelp.bind(this)}\">\n\t\t\t\t\t\t\t${Loc.getMessage('CAL_TEXT_ABOUT_WORK_SYNC')}\n\t\t\t\t\t\t</a>\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t</div>\n\t\t`;\n\t}\n\n\tgetContentActiveBodyHeader()\n\t{\n\t\treturn Tag.render`\n\t\t\t<div class=\"calendar-sync-slider-section\">\n\t\t\t\t<div class=\"calendar-sync-slider-header-icon ${this.sliderIconClass}\"></div>\n\t\t\t\t<div class=\"calendar-sync-slider-header\">\n\t\t\t\t<div class=\"calendar-sync-slider-title\">\n\t\t\t\t\t${this.titleActiveHeader}\n\t\t\t\t</div>\n\t\t\t\t<div class=\"calendar-sync-slider-info\">\n\t\t\t\t\t<span class=\"calendar-sync-slider-info-text\">\n\t\t\t\t\t\t${this.descriptionActiveHeader}\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"calendar-sync-slider-info\">\n\t\t\t\t\t<span class=\"calendar-sync-slider-info-text\">\n\t\t\t\t\t\t<a class=\"calendar-sync-slider-info-link\" href=\"javascript:void(0);\" onclick=\"${this.showHelp.bind(this)}\">\n\t\t\t\t\t\t\t${Loc.getMessage('CAL_TEXT_ABOUT_WORK_SYNC')}\n\t\t\t\t\t\t</a>\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t</div>\n\t\t`;\n\t}\n\n\tsetProvider(provider)\n\t{\n\t\tthis.provider = provider;\n\t}\n\n\tsendRequestRemoveConnection(id)\n\t{\n\t\tBX.ajax.runAction('calendar.api.calendarajax.removeConnection', {\n\t\t\tdata: {\n\t\t\t\tconnectionId: id,\n\t\t\t\tremoveCalendars: 'N', //by default\n\t\t\t}\n\t\t}).then(() => {\n\t\t\tBX.reload();\n\t\t});\n\t}\n\n\trunUpdateInfo()\n\t{\n\t\tajax.runAction('calendar.api.calendarajax.setSectionStatus', {\n\t\t\tdata: {\n\t\t\t\tsectionStatus: this.sectionStatusObject,\n\t\t\t},\n\t\t}).then(response => {\n\t\t\tthis.emit('reDrawCalendarGrid', {});\n\t\t})\n\t}\n\n\trefresh(connection)\n\t{\n\t\tthis.connection = connection;\n\t\tthis.statusBlock\n\t\t\t.setStatus(this.connection.getStatus())\n\t\t\t.setConnections([this.connection]);\n\t\tDom.replace(document.getElementById('status-info-block'), this.statusBlock.getContent());\n\t}\n\n\thandleConnectButton()\n\t{\n\t}\n}","// @flow\n'use strict';\n\nimport {InterfaceTemplate} from './interfacetemplate';\nimport {Dom, Loc, Tag} from \"main.core\";\nimport ConnectionControls from \"../controls/connectioncontrols\";\nimport StatusBlock from \"../controls/statusblock\";\n\n\nexport class CaldavInterfaceTemplate extends InterfaceTemplate\n{\n\tconstructor(options)\n\t{\n\t\tsuper(options);\n\t}\n\n\tgetContentInfoBody()\n\t{\n\t\tconst formObject = new ConnectionControls();\n\t\tconst formBlock = formObject.getWrapper();\n\t\tconst form = formObject.getForm();\n\t\tconst button = formObject.getAddButton();\n\t\tconst buttonWrapper = formObject.getButtonWrapper();\n\t\tconst bodyHeader = this.getContentInfoBodyHeader();\n\n\t\tbutton.addEventListener('click', (event) => {\n\t\t\tBX.ajax.runAction('calendar.api.calendarajax.analytical', {\n\t\t\t\tanalyticsLabel: {\n\t\t\t\t\tclick_to_connection_button: 'Y',\n\t\t\t\t\tconnection_type: this.provider.getType(),\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tDom.addClass(button, ['ui-btn-clock', 'ui-btn-disabled']);\n\t\t\tevent.preventDefault();\n\t\t\tthis.sendRequestAddConnection(form);\n\t\t});\n\n\t\tDom.append(button, buttonWrapper);\n\t\tDom.append(buttonWrapper, form);\n\t\tDom.append(form, formBlock);\n\n\t\treturn Tag.render`\n\t\t\t${bodyHeader}\n\t\t\t${formBlock}\n\t\t`;\n\t}\n\n\tgetContentActiveBody()\n\t{\n\t\tconst formObject = new ConnectionControls({\n\t\t\tserver: this.connection.addParams.server,\n\t\t\tuserName: this.connection.addParams.userName,\n\t\t\tconnectionName: this.connection.connectionName,\n\t\t});\n\t\tconst formBlock = formObject.getWrapper();\n\t\tconst form = formObject.getForm();\n\t\tconst button = formObject.getDisconnectButton();\n\t\tconst buttonWrapper = formObject.getButtonWrapper();\n\t\tconst bodyHeader = this.getContentActiveBodyHeader();\n\n\t\tbutton.addEventListener('click', (event) => {\n\t\t\tDom.addClass(button, ['ui-btn-clock', 'ui-btn-disabled']);\n\t\t\tevent.preventDefault();\n\t\t\tthis.sendRequestRemoveConnection(this.connection.getId());\n\t\t});\n\n\t\tDom.append(button, buttonWrapper);\n\t\tDom.append(buttonWrapper, form);\n\t\tDom.append(form, formBlock);\n\n\t\treturn Tag.render`\n\t\t\t${bodyHeader}\n\t\t\t${formBlock}\n\t\t`;\n\t}\n\n\tsendRequestEditConnection(form, options)\n\t{\n\t\tBX.ajax.runAction('calendar.api.calendarajax.editConnection', {\n\t\t\tdata: {\n\t\t\t\tform: new FormData(form),\n\t\t\t\tconnectionId: options.connectionId,\n\t\t\t}\n\t\t}).then(() => {\n\t\t\tBX.reload();\n\t\t});\n\t}\n\n\tsendRequestAddConnection(form)\n\t{\n\t\tconst fd = new FormData(form);\n\t\tBX.ajax.runAction('calendar.api.calendarajax.addConnection', {\n\t\t\tdata: {\n\t\t\t\tname: fd.get('name'),\n\t\t\t\tserver: fd.get('server'),\n\t\t\t\tuserName: fd.get('user_name'),\n\t\t\t\tpass: fd.get('password'),\n\t\t\t}\n\t\t}).then((response) => {\n\t\t\tBX.reload();\n\t\t}, response => {\n\t\t\tconst button = form.querySelector('#connect-button');\n\t\t\tthis.showAlertPopup(response.errors[0], button);\n\t\t});\n\t}\n\n\tshowAlertPopup(alert, button)\n\t{\n\t\tlet message = '';\n\t\tif (alert.code === 'incorrect_parameters')\n\t\t{\n\t\t\tmessage = Loc.getMessage('CAL_TEXT_ALERT_INCORRECT_PARAMETERS');\n\t\t}\n\t\telse if (alert.code === 'tech_problem')\n\t\t{\n\t\t\tmessage = Loc.getMessage('CAL_TEXT_ALERT_TECH_PROBLEM');\n\t\t}\n\t\telse\n\t\t{\n\t\t\tmessage = Loc.getMessage('CAL_TEXT_ALERT_DEFAULT');\n\t\t}\n\n\t\tconst messageBox = new BX.UI.Dialogs.MessageBox({\n\t\t\tmessage: message,\n\t\t\ttitle: alert.message,\n\t\t\tbuttons: BX.UI.Dialogs.MessageBoxButtons.OK,\n\t\t\tokCaption: Loc.getMessage('CAL_TEXT_BUTTON_RETURN_TO_SETTINGS'),\n\t\t\tminWidth: 358,\n\t\t\tmediumButtonSize: false,\n\t\t\tpopupOptions: {\n\t\t\t\tzIndex: 3021,\n\t\t\t\theight: 166,\n\t\t\t\twidth: 358,\n\t\t\t\tclassName: 'calendar-alert-popup-connection'\n\t\t\t},\n\t\t\tonOk: () => {\n\t\t\t\tDom.removeClass(button, ['ui-btn-clock', 'ui-btn-disabled']);\n\t\t\t\treturn true;\n\t\t\t}\n\t\t});\n\n\t\tmessageBox.show();\n\t}\n}","// @flow\n'use strict';\n\nimport {Loc} from \"main.core\";\nimport {CaldavInterfaceTemplate} from \"./caldavinterfacetemplate\";\n\nexport default class CaldavTemplate extends CaldavInterfaceTemplate\n{\n\tconstructor(provider, connection = null)\n\t{\n\t\tsuper({\n\t\t\ttitle: Loc.getMessage(\"CALENDAR_TITLE_CALDAV\"),\n\t\t\thelpDeskCode: '5697365',\n\t\t\ttitleInfoHeader: Loc.getMessage('CAL_CONNECT_CALDAV_CALENDAR'),\n\t\t\tdescriptionInfoHeader: Loc.getMessage('CAL_CALDAV_CONNECT_DESCRIPTION'),\n\t\t\ttitleActiveHeader: Loc.getMessage('CAL_CALDAV_CALENDAR_IS_CONNECT'),\n\t\t\tdescriptionActiveHeader: Loc.getMessage('CAL_CALDAV_SELECTED_DESCRIPTION'),\n\t\t\tsliderIconClass: 'calendar-sync-slider-header-icon-caldav',\n\t\t\ticonPath: '/bitrix/images/calendar/sync/caldav.svg',\n\t\t\tcolor: '#1eae43',\n\t\t\tprovider: provider,\n\t\t\tconnection: connection,\n\t\t\tpopupWithUpdateButton: true,\n\t\t});\n\t}\n}","// @flow\n'use strict';\n\nimport {Loc} from \"main.core\";\nimport {InterfaceTemplate} from \"./interfacetemplate\";\n\nexport default class ExchangeTemplate extends InterfaceTemplate\n{\n\tconstructor(provider, connection = null)\n\t{\n\t\tsuper({\n\t\t\ttitle: Loc.getMessage(\"CALENDAR_TITLE_EXCHANGE\"),\n\t\t\thelpDeskCode: '11864622',\n\t\t\ttitleInfoHeader: Loc.getMessage('CAL_CONNECT_EXCHANGE_CALENDAR_TITLE'),\n\t\t\tdescriptionInfoHeader: Loc.getMessage('CAL_EXCHANGE_CONNECT_DESCRIPTION'),\n\t\t\ttitleActiveHeader: Loc.getMessage('CAL_SYNC_CONNECTED_EXCHANGE_TITLE'),\n\t\t\tdescriptionActiveHeader: Loc.getMessage('CAL_EXCHANGE_SELECTED_DESCRIPTION'),\n\t\t\tsliderIconClass: 'calendar-sync-slider-header-icon-office',\n\t\t\ticonPath: '/bitrix/images/calendar/sync/exchange.svg',\n\t\t\tcolor: '#54d0df',\n\t\t\tprovider: provider,\n\t\t\tconnection: connection,\n\t\t\tpopupWithUpdateButton: true,\n\t\t});\n\t}\n}","// @flow\n'use strict';\n\nimport {Dom, Loc, Tag, Event} from \"main.core\";\nimport {InterfaceTemplate} from \"./interfacetemplate\";\nimport ConnectionControls from \"../controls/connectioncontrols\";\nimport { MessageBox } from 'ui.dialogs.messagebox';\nimport {Popup} from \"main.popup\";\n\nexport default class GoogleTemplate extends InterfaceTemplate\n{\n\tconstructor(provider, connection = null)\n\t{\n\t\tsuper({\n\t\t\ttitle: Loc.getMessage(\"CALENDAR_TITLE_GOOGLE\"),\n\t\t\thelpDeskCode: '6030429',\n\t\t\ttitleInfoHeader: Loc.getMessage('CAL_CONNECT_GOOGLE_CALENDAR'),\n\t\t\tdescriptionInfoHeader: Loc.getMessage('CAL_GOOGLE_CONNECT_DESCRIPTION'),\n\t\t\ttitleActiveHeader: Loc.getMessage('CAL_GOOGLE_CALENDAR_IS_CONNECT'),\n\t\t\tdescriptionActiveHeader: Loc.getMessage('CAL_GOOGLE_SELECTED_DESCRIPTION'),\n\t\t\tsliderIconClass: 'calendar-sync-slider-header-icon-google',\n\t\t\ticonPath: '/bitrix/images/calendar/sync/google.svg',\n\t\t\tcolor: '#387ced',\n\t\t\tprovider: provider,\n\t\t\tconnection: connection,\n\t\t\tpopupWithUpdateButton: true,\n\t\t});\n\n\t\tthis.sectionStatusObject = {};\n\t\tthis.sectionList = [];\n\t}\n\n\tcreateConnection()\n\t{\n\t\tBX.ajax.runAction('calendar.api.calendarajax.analytical', {\n\t\t\tanalyticsLabel: {\n\t\t\t\tclick_to_connection_button: 'Y',\n\t\t\t\tconnection_type: 'google',\n\t\t\t}\n\t\t});\n\n\t\tconst childWindow = BX.util.popup(this.provider.getSyncLink(), 500, 600);\n\n\n\t\tdebugger;\n\t\tEvent.bind(childWindow, 'hashchange', (event) => {\n\t\t\tdebugger;\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.log('hashchange');\n\n\t\t});\n\t}\n\n\tgetContentInfoBody()\n\t{\n\t\tconst formObject = new ConnectionControls();\n\t\tconst button = formObject.getAddButton();\n\t\tconst buttonWrapper = formObject.getButtonWrapper();\n\t\tconst bodyHeader = this.getContentInfoBodyHeader();\n\t\tconst content = bodyHeader.querySelector('.calendar-sync-slider-header');\n\n\t\tEvent.bind(button, 'click', this.handleConnectButton.bind(this));\n\t\tDom.append(button, buttonWrapper);\n\t\tDom.append(buttonWrapper, content);\n\n\t\treturn Tag.render`\n\t\t\t${bodyHeader}\n\t\t`;\n\t}\n\n\tgetContentActiveBody(): *\n\t{\n\t\treturn Tag.render`\n\t\t\t${this.getContentActiveBodyHeader()}\n\t\t\t${this.getContentActiveBodySectionsManager()}\n\t\t`;\n\t}\n\n\tgetContentActiveBodyHeader()\n\t{\n\t\tconst formObject = new ConnectionControls();\n\t\tconst disconnectButton = formObject.getDisconnectButton();\n\t\tdisconnectButton.addEventListener('click', (event) => {\n\t\t\tevent.preventDefault();\n\t\t\tthis.sendRequestRemoveConnection(this.connection.getId());\n\t\t});\n\n\t\treturn Tag.render`\n\t\t\t<div class=\"calendar-sync-slider-section\">\n\t\t\t\t<div class=\"calendar-sync-slider-header-icon calendar-sync-slider-header-icon-google\"></div>\n\t\t\t\t<div class=\"calendar-sync-slider-header\">\n\t\t\t\t\t<div class=\"calendar-sync-slider-title\">${Loc.getMessage('CAL_GOOGLE_CALENDAR_IS_CONNECT')}</div>\n\t\t\t\t\t<span class=\"calendar-sync-slider-account\">\n\t\t\t\t\t\t<span class=\"calendar-sync-slider-account-avatar\"></span>\n\t\t\t\t\t\t<span class=\"calendar-sync-slider-account-email\">\n\t\t\t\t\t\t\t${BX.util.htmlspecialchars(this.connection.getConnectionName())}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</span>\n\t\t\t\t\t<div class=\"calendar-sync-slider-info\">\n\t\t\t\t\t\t<span class=\"calendar-sync-slider-info-text\">\n\t\t\t\t\t\t\t<a class=\"calendar-sync-slider-info-link\" href=\"javascript:void(0);\" onclick=\"${this.showHelp.bind(this)}\">\n\t\t\t\t\t\t\t\t${Loc.getMessage('CAL_TEXT_ABOUT_WORK_SYNC')}\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</div>\n\t\t\t\t\t${disconnectButton}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t`;\n\t}\n\n\tgetContentActiveBodySectionsManager()\n\t{\n\t\treturn Tag.render`\n\t\t\t<div class=\"calendar-sync-slider-section calendar-sync-slider-section-col\">\n\t\t\t\t<div class=\"calendar-sync-slider-header\">\n\t\t\t\t\t<div class=\"calendar-sync-slider-subtitle\">${Loc.getMessage('CAL_AVAILABLE_CALENDAR')}</div>\n\t\t\t\t</div>\n\t\t\t\t<ul class=\"calendar-sync-slider-list\">\n\t\t\t\t\t${this.getContentActiveBodySections(this.connection.getId())}\n\t\t\t\t</ul>\n\t\t\t</div>\n\t\t`;\n\t}\n\n\tgetContentActiveBodySections(connectionId)\n\t{\n\t\tconst sectionList = [];\n\t\tthis.sectionList.forEach(section => {\n\t\t\tsectionList.push(Tag.render`\n\t\t\t\t<li class=\"calendar-sync-slider-item\">\n\t\t\t\t\t<label class=\"ui-ctl ui-ctl-checkbox ui-ctl-xs\">\n\t\t\t\t\t\t<input type=\"checkbox\" class=\"ui-ctl-element\" value=\"${BX.util.htmlspecialchars(section['ID'])}\" onclick=\"${this.onClickCheckSection.bind(this)}\" ${section['ACTIVE'] === 'Y' ? 'checked' : ''}>\n\t\t\t\t\t\t<div class=\"ui-ctl-label-text\">${BX.util.htmlspecialchars(section['NAME'])}</div>\n\t\t\t\t\t</label>\n\t\t\t\t</li>\n\t\t\t`);\n\t\t});\n\n\t\treturn sectionList;\n\t}\n\t\n\tgetSectionsForGoogle()\n\t{\n\t\treturn new Promise((resolve) => {\n\t\t\tBX.ajax.runAction('calendar.api.calendarajax.getAllSectionsForGoogle')\n\t\t\t.then(\n\t\t\t\t(response) => {\n\t\t\t\t\tthis.sectionList = response.data;\n\t\t\t\t\tresolve(response.data);\n\t\t\t\t},\n\t\t\t\t(response) => {\n\t\t\t\t\tresolve(response.errors);\n\t\t\t\t}\n\t\t\t);\n\t\t\t\n\t\t})\n\t}\n\n\tonClickCheckSection(event)\n\t{\n\t\tthis.sectionStatusObject[event.target.value] = event.target.checked;\n\n\t\tthis.runUpdateInfo();\n\t}\n\n\tshowAlertPopup()\n\t{\n\t\tconst messageBox = new MessageBox({\n\t\t\tclassName: this.id,\n\t\t\tmessage: Loc.getMessage('GOOGLE_IS_NOT_CALDAV_SETTINGS_WARNING_MESSAGE'),\n\t\t\twidth: 500,\n\t\t\toffsetLeft: 60,\n\t\t\toffsetTop: 5,\n\t\t\tpadding: 7,\n\t\t\tonOk: () => {\n\t\t\t\tmessageBox.close();\n\t\t\t},\n\t\t\tokCaption: 'OK',\n\t\t\tbuttons: BX.UI.Dialogs.MessageBoxButtons.OK,\n\t\t\tpopupOptions: {\n\t\t\t\tzIndexAbsolute: 4020,\n\t\t\t\tautoHide: true,\n\t\t\t},\n\t\t});\n\t\tmessageBox.show();\n\t}\n\n\thandleConnectButton()\n\t{\n\t\tif (this.provider.hasSetSyncCaldavSettings())\n\t\t{\n\t\t\tthis.createConnection();\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.showAlertPopup();\n\t\t}\n\t}\n}\n","// @flow\n'use strict';\n\nimport {Dom, Loc, Tag, Event} from \"main.core\";\nimport {InterfaceTemplate} from \"./interfacetemplate\";\nimport ConnectionControls from \"../controls/connectioncontrols\";\nimport { MessageBox } from 'ui.dialogs.messagebox';\nimport {Popup} from \"main.popup\";\n\nexport default class IcloudTemplate extends InterfaceTemplate\n{\n\tconstructor(provider, connection = null)\n\t{\n\t\t// TODO: replace phrases to correct\n\t\tsuper({\n\t\t\ttitle: Loc.getMessage(\"CALENDAR_TITLE_GOOGLE\"),\n\t\t\thelpDeskCode: '6030429',\n\t\t\ttitleInfoHeader: Loc.getMessage('CAL_CONNECT_GOOGLE_CALENDAR'),\n\t\t\tdescriptionInfoHeader: Loc.getMessage('CAL_GOOGLE_CONNECT_DESCRIPTION'),\n\t\t\ttitleActiveHeader: Loc.getMessage('CAL_GOOGLE_CALENDAR_IS_CONNECT'),\n\t\t\tdescriptionActiveHeader: Loc.getMessage('CAL_GOOGLE_SELECTED_DESCRIPTION'),\n\t\t\tsliderIconClass: 'calendar-sync-slider-header-icon-google',\n\t\t\ticonPath: '/bitrix/images/calendar/sync/google.svg',\n\t\t\tcolor: '#387ced',\n\t\t\tprovider: provider,\n\t\t\tconnection: connection,\n\t\t\tpopupWithUpdateButton: true,\n\t\t});\n\n\t\tthis.sectionStatusObject = {};\n\t\tthis.sectionList = [];\n\t}\n\n\tcreateConnection()\n\t{\n\t\tBX.ajax.runAction('calendar.api.calendarajax.analytical', {\n\t\t\tanalyticsLabel: {\n\t\t\t\tclick_to_connection_button: 'Y',\n\t\t\t\tconnection_type: 'google',\n\t\t\t}\n\t\t});\n\n\t\tBX.util.popup(this.provider.getSyncLink(), 500, 600);\n\t}\n\n\tgetContentInfoBody()\n\t{\n\t\tconst formObject = new ConnectionControls();\n\t\tconst button = formObject.getAddButton();\n\t\tconst buttonWrapper = formObject.getButtonWrapper();\n\t\tconst bodyHeader = this.getContentInfoBodyHeader();\n\t\tconst content = bodyHeader.querySelector('.calendar-sync-slider-header');\n\n\t\tEvent.bind(button, 'click', this.handleConnectButton.bind(this));\n\t\tDom.append(button, buttonWrapper);\n\t\tDom.append(buttonWrapper, content);\n\n\t\treturn Tag.render`\n\t\t\t${bodyHeader}\n\t\t`;\n\t}\n\n\tgetContentActiveBody(): *\n\t{\n\t\treturn Tag.render`\n\t\t\t${this.getContentActiveBodyHeader()}\n\t\t\t${this.getContentActiveBodySectionsManager()}\n\t\t`;\n\t}\n\n\tgetContentActiveBodyHeader()\n\t{\n\t\tconst formObject = new ConnectionControls();\n\t\tconst disconnectButton = formObject.getDisconnectButton();\n\t\tdisconnectButton.addEventListener('click', (event) => {\n\t\t\tevent.preventDefault();\n\t\t\tthis.sendRequestRemoveConnection(this.connection.getId());\n\t\t});\n\n\t\treturn Tag.render`\n\t\t\t<div class=\"calendar-sync-slider-section\">\n\t\t\t\t<div class=\"calendar-sync-slider-header-icon calendar-sync-slider-header-icon-google\"></div>\n\t\t\t\t<div class=\"calendar-sync-slider-header\">\n\t\t\t\t\t<div class=\"calendar-sync-slider-title\">${Loc.getMessage('CAL_GOOGLE_CALENDAR_IS_CONNECT')}</div>\n\t\t\t\t\t<span class=\"calendar-sync-slider-account\">\n\t\t\t\t\t\t<span class=\"calendar-sync-slider-account-avatar\"></span>\n\t\t\t\t\t\t<span class=\"calendar-sync-slider-account-email\">\n\t\t\t\t\t\t\t${BX.util.htmlspecialchars(this.connection.getConnectionName())}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</span>\n\t\t\t\t\t<div class=\"calendar-sync-slider-info\">\n\t\t\t\t\t\t<span class=\"calendar-sync-slider-info-text\">\n\t\t\t\t\t\t\t<a class=\"calendar-sync-slider-info-link\" href=\"javascript:void(0);\" onclick=\"${this.showHelp.bind(this)}\">\n\t\t\t\t\t\t\t\t${Loc.getMessage('CAL_TEXT_ABOUT_WORK_SYNC')}\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</div>\n\t\t\t\t\t${disconnectButton}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t`;\n\t}\n\n\tgetContentActiveBodySectionsManager()\n\t{\n\t\treturn Tag.render`\n\t\t\t<div class=\"calendar-sync-slider-section calendar-sync-slider-section-col\">\n\t\t\t\t<div class=\"calendar-sync-slider-header\">\n\t\t\t\t\t<div class=\"calendar-sync-slider-subtitle\">${Loc.getMessage('CAL_AVAILABLE_CALENDAR')}</div>\n\t\t\t\t</div>\n\t\t\t\t<ul class=\"calendar-sync-slider-list\">\n\t\t\t\t\t${this.getContentActiveBodySections(this.connection.getId())}\n\t\t\t\t</ul>\n\t\t\t</div>\n\t\t`;\n\t}\n\n\tgetContentActiveBodySections(connectionId)\n\t{\n\t\tconst sectionList = [];\n\t\tthis.sectionList.forEach(section => {\n\t\t\tsectionList.push(Tag.render`\n\t\t\t\t<li class=\"calendar-sync-slider-item\">\n\t\t\t\t\t<label class=\"ui-ctl ui-ctl-checkbox ui-ctl-xs\">\n\t\t\t\t\t\t<input type=\"checkbox\" class=\"ui-ctl-element\" value=\"${BX.util.htmlspecialchars(section['ID'])}\" onclick=\"${this.onClickCheckSection.bind(this)}\" ${section['ACTIVE'] === 'Y' ? 'checked' : ''}>\n\t\t\t\t\t\t<div class=\"ui-ctl-label-text\">${BX.util.htmlspecialchars(section['NAME'])}</div>\n\t\t\t\t\t</label>\n\t\t\t\t</li>\n\t\t\t`);\n\t\t});\n\n\t\treturn sectionList;\n\t}\n\t\n\tgetSectionsForGoogle()\n\t{\n\t\treturn new Promise((resolve) => {\n\t\t\tBX.ajax.runAction('calendar.api.calendarajax.getAllSectionsForGoogle')\n\t\t\t.then(\n\t\t\t\t(response) => {\n\t\t\t\t\tthis.sectionList = response.data;\n\t\t\t\t\tresolve(response.data);\n\t\t\t\t},\n\t\t\t\t(response) => {\n\t\t\t\t\tresolve(response.errors);\n\t\t\t\t}\n\t\t\t);\n\t\t\t\n\t\t})\n\t}\n\n\tonClickCheckSection(event)\n\t{\n\t\tthis.sectionStatusObject[event.target.value] = event.target.checked;\n\n\t\tthis.runUpdateInfo();\n\t}\n\n\tshowAlertPopup()\n\t{\n\t\tconst messageBox = new MessageBox({\n\t\t\tclassName: this.id,\n\t\t\tmessage: Loc.getMessage('GOOGLE_IS_NOT_CALDAV_SETTINGS_WARNING_MESSAGE'),\n\t\t\twidth: 500,\n\t\t\toffsetLeft: 60,\n\t\t\toffsetTop: 5,\n\t\t\tpadding: 7,\n\t\t\tonOk: () => {\n\t\t\t\tmessageBox.close();\n\t\t\t},\n\t\t\tokCaption: 'OK',\n\t\t\tbuttons: BX.UI.Dialogs.MessageBoxButtons.OK,\n\t\t\tpopupOptions: {\n\t\t\t\tzIndexAbsolute: 4020,\n\t\t\t\tautoHide: true,\n\t\t\t},\n\t\t});\n\t\tmessageBox.show();\n\t}\n\n\thandleConnectButton()\n\t{\n\t\t// TODO: create connection code here\n\t\talert('create connection code here');\n\t}\n}\n","// @flow\n'use strict';\n\nimport {Dom, Loc, Tag, Event} from \"main.core\";\nimport {InterfaceTemplate} from \"./interfacetemplate\";\nimport ConnectionControls from \"../controls/connectioncontrols\";\nimport { MessageBox } from 'ui.dialogs.messagebox';\nimport {Popup} from \"main.popup\";\n\nexport default class Office365template extends InterfaceTemplate\n{\n\tconstructor(provider, connection = null)\n\t{\n\t\t// TODO: replace phrases to correct\n\t\tsuper({\n\t\t\ttitle: Loc.getMessage(\"CALENDAR_TITLE_OFFICE365\"),\n\t\t\thelpDeskCode: '6030429',\n\t\t\ttitleInfoHeader: Loc.getMessage('CAL_CONNECT_OFFICE365_CALENDAR'),\n\t\t\tdescriptionInfoHeader: Loc.getMessage('CAL_GOOGLE_CONNECT_DESCRIPTION'),\n\t\t\ttitleActiveHeader: Loc.getMessage('CAL_GOOGLE_CALENDAR_IS_CONNECT'),\n\t\t\tdescriptionActiveHeader: Loc.getMessage('CAL_GOOGLE_SELECTED_DESCRIPTION'),\n\t\t\tsliderIconClass: 'calendar-sync-slider-header-icon-office',\n\t\t\ticonPath: '/bitrix/images/calendar/sync/caldav.svg',\n\t\t\tcolor: '#387ced',\n\t\t\tprovider: provider,\n\t\t\tconnection: connection,\n\t\t\tpopupWithUpdateButton: true,\n\t\t});\n\n\t\tthis.sectionStatusObject = {};\n\t\tthis.sectionList = [];\n\t}\n\n\tcreateConnection()\n\t{\n\t\tBX.ajax.runAction('calendar.api.calendarajax.analytical', {\n\t\t\tanalyticsLabel: {\n\t\t\t\tclick_to_connection_button: 'Y',\n\t\t\t\tconnection_type: 'office365',\n\t\t\t}\n\t\t});\n\n\t\tBX.util.popup(this.provider.getSyncLink(), 500, 600);\n\t}\n\n\tgetContentInfoBody()\n\t{\n\t\tconst formObject = new ConnectionControls();\n\t\tconst button = formObject.getAddButton();\n\t\tconst buttonWrapper = formObject.getButtonWrapper();\n\t\tconst bodyHeader = this.getContentInfoBodyHeader();\n\t\tconst content = bodyHeader.querySelector('.calendar-sync-slider-header');\n\n\t\tEvent.bind(button, 'click', this.handleConnectButton.bind(this));\n\t\tDom.append(button, buttonWrapper);\n\t\tDom.append(buttonWrapper, content);\n\n\t\treturn Tag.render`\n\t\t\t${bodyHeader}\n\t\t`;\n\t}\n\n\tgetContentActiveBody(): *\n\t{\n\t\treturn Tag.render`\n\t\t\t${this.getContentActiveBodyHeader()}\n\t\t\t${this.getContentActiveBodySectionsManager()}\n\t\t`;\n\t}\n\n\tgetContentActiveBodyHeader()\n\t{\n\t\tconst formObject = new ConnectionControls();\n\t\tconst disconnectButton = formObject.getDisconnectButton();\n\t\tdisconnectButton.addEventListener('click', (event) => {\n\t\t\tevent.preventDefault();\n\t\t\tthis.sendRequestRemoveConnection(this.connection.getId());\n\t\t});\n\n\t\treturn Tag.render`\n\t\t\t<div class=\"calendar-sync-slider-section\">\n\t\t\t\t<div class=\"calendar-sync-slider-header-icon calendar-sync-slider-header-icon-google\"></div>\n\t\t\t\t<div class=\"calendar-sync-slider-header\">\n\t\t\t\t\t<div class=\"calendar-sync-slider-title\">${Loc.getMessage('CAL_GOOGLE_CALENDAR_IS_CONNECT')}</div>\n\t\t\t\t\t<span class=\"calendar-sync-slider-account\">\n\t\t\t\t\t\t<span class=\"calendar-sync-slider-account-avatar\"></span>\n\t\t\t\t\t\t<span class=\"calendar-sync-slider-account-email\">\n\t\t\t\t\t\t\t${BX.util.htmlspecialchars(this.connection.getConnectionName())}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</span>\n\t\t\t\t\t<div class=\"calendar-sync-slider-info\">\n\t\t\t\t\t\t<span class=\"calendar-sync-slider-info-text\">\n\t\t\t\t\t\t\t<a class=\"calendar-sync-slider-info-link\" href=\"javascript:void(0);\" onclick=\"${this.showHelp.bind(this)}\">\n\t\t\t\t\t\t\t\t${Loc.getMessage('CAL_TEXT_ABOUT_WORK_SYNC')}\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</div>\n\t\t\t\t\t${disconnectButton}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t`;\n\t}\n\n\tgetContentActiveBodySectionsManager()\n\t{\n\t\treturn Tag.render`\n\t\t\t<div class=\"calendar-sync-slider-section calendar-sync-slider-section-col\">\n\t\t\t\t<div class=\"calendar-sync-slider-header\">\n\t\t\t\t\t<div class=\"calendar-sync-slider-subtitle\">${Loc.getMessage('CAL_AVAILABLE_CALENDAR')}</div>\n\t\t\t\t</div>\n\t\t\t\t<ul class=\"calendar-sync-slider-list\">\n\t\t\t\t\t${this.getContentActiveBodySections(this.connection.getId())}\n\t\t\t\t</ul>\n\t\t\t</div>\n\t\t`;\n\t}\n\n\tgetContentActiveBodySections(connectionId)\n\t{\n\t\tconst sectionList = [];\n\t\tthis.sectionList.forEach(section => {\n\t\t\tsectionList.push(Tag.render`\n\t\t\t\t<li class=\"calendar-sync-slider-item\">\n\t\t\t\t\t<label class=\"ui-ctl ui-ctl-checkbox ui-ctl-xs\">\n\t\t\t\t\t\t<input type=\"checkbox\" class=\"ui-ctl-element\" value=\"${BX.util.htmlspecialchars(section['ID'])}\" onclick=\"${this.onClickCheckSection.bind(this)}\" ${section['ACTIVE'] === 'Y' ? 'checked' : ''}>\n\t\t\t\t\t\t<div class=\"ui-ctl-label-text\">${BX.util.htmlspecialchars(section['NAME'])}</div>\n\t\t\t\t\t</label>\n\t\t\t\t</li>\n\t\t\t`);\n\t\t});\n\n\t\treturn sectionList;\n\t}\n\n\thandleConnectButton()\n\t{\n\t\tthis.createConnection();\n\t}\n}","// @flow\n'use strict';\n\nimport {Loc, Tag} from \"main.core\";\nimport {InterfaceTemplate} from \"./interfacetemplate\";\n\nexport default class MacTemplate extends InterfaceTemplate\n{\n\tconstructor(provider, connection = null)\n\t{\n\t\tsuper({\n\t\t\ttitle: Loc.getMessage(\"CALENDAR_TITLE_MAC\"),\n\t\t\thelpDeskCode: '5684075',\n\t\t\ttitleInfoHeader: Loc.getMessage('CAL_CONNECT_MAC_CALENDAR_TITLE'),\n\t\t\tdescriptionInfoHeader: Loc.getMessage('CAL_MAC_CONNECT_DESCRIPTION'),\n\t\t\ttitleActiveHeader: Loc.getMessage('CAL_MAC_CALENDAR_IS_CONNECT_TITLE'),\n\t\t\tdescriptionActiveHeader: Loc.getMessage('CAL_MAC_SELECTED_DESCRIPTION'),\n\t\t\tsliderIconClass: 'calendar-sync-slider-header-icon-mac',\n\t\t\ticonPath: '/bitrix/images/calendar/sync/mac.svg',\n\t\t\tcolor: '#ff5752',\n\t\t\tprovider: provider,\n\t\t\tconnection: connection,\n\t\t\tpopupWithUpdateButton: false,\n\t\t});\n\t}\n\n\tgetPortalAddress()\n\t{\n\t\treturn this.portalAddress;\n\t}\n\n\tgetContentInfoBody()\n\t{\n\t\treturn Tag.render `\n\t\t\t${this.getContentInfoBodyHeader()}\n\t\t\t${this.getContentBodyConnect()}\n\t\t`;\n\t}\n\n\tgetContentActiveBody()\n\t{\n\t\treturn Tag.render`\n\t\t\t${this.getContentActiveBodyHeader()}\n\t\t\t${this.getContentBodyConnect()}\n\t\t`;\n\t}\n\n\tgetContentBodyConnect()\n\t{\n\t\treturn Tag.render`\n\t\t\t<div class=\"calendar-sync-slider-section calendar-sync-slider-section-col\">\n\t\t\t\t<div class=\"calendar-sync-slider-header calendar-sync-slider-header-divide\">\n\t\t\t\t\t<div class=\"calendar-sync-slider-subtitle\">${Loc.getMessage('CAL_MAC_INSTRUCTION_HEADER')}</div>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"calendar-sync-slider-info\">\n\t\t\t\t\t<span class=\"calendar-sync-slider-info-text\">${Loc.getMessage('CAL_MAC_INSTRUCTION_DESCRIPTION')}:</span>\n\t\t\t\t\t<ol class=\"calendar-sync-slider-info-list\">\n\t\t\t\t\t\t<li class=\"calendar-sync-slider-info-item\">\n\t\t\t\t\t\t\t<span class=\"calendar-sync-slider-info-text\">${Loc.getMessage('CAL_MAC_INSTRUCTION_POINT_FIRST')}</span>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li class=\"calendar-sync-slider-info-item\">\n\t\t\t\t\t\t\t<span class=\"calendar-sync-slider-info-text\">${Loc.getMessage('CAL_MAC_INSTRUCTION_POINT_SECOND')}</span>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li class=\"calendar-sync-slider-info-item\">\n\t\t\t\t\t\t\t<span class=\"calendar-sync-slider-info-text\">${Loc.getMessage('CAL_MAC_INSTRUCTION_POINT_THIRD')}</span>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li class=\"calendar-sync-slider-info-item\">\n\t\t\t\t\t\t\t<span class=\"calendar-sync-slider-info-text\">${Loc.getMessage('CAL_MAC_INSTRUCTION_POINT_FOURTH')}</span>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li class=\"calendar-sync-slider-info-item\">\n\t\t\t\t\t\t\t<span class=\"calendar-sync-slider-info-text\">${Loc.getMessage('CAL_MAC_INSTRUCTION_POINT_FIFTH').replace(/#PORTAL_ADDRESS#/gi, this.provider.getPortalAddress())}</span>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li class=\"calendar-sync-slider-info-item\">\n\t\t\t\t\t\t\t<span class=\"calendar-sync-slider-info-text\">${Loc.getMessage('CAL_MAC_INSTRUCTION_POINT_SIXTH')}</span>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li class=\"calendar-sync-slider-info-item\">\n\t\t\t\t\t\t\t<span class=\"calendar-sync-slider-info-text\">${Loc.getMessage('CAL_MAC_INSTRUCTION_POINT_SEVENTH')}</span>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ol>\n\t\t\t\t\t<span class=\"calendar-sync-slider-info-text\">${Loc.getMessage('CAL_MAC_INSTRUCTION_CONCLUSION')}</span>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`;\n\t}\n}\n","// @flow\n'use strict';\n\nimport {Loc} from \"main.core\";\nimport {InterfaceTemplate} from \"./interfacetemplate\";\n\nexport default class OutlookTemplate extends InterfaceTemplate\n{\n\tconstructor(provider, connection = null)\n\t{\n\t\tsuper({\n\t\t\ttitle: Loc.getMessage(\"CALENDAR_TITLE_MAC\"),\n\t\t\thelpDeskCode: '5684075',\n\t\t\ttitleInfoHeader: Loc.getMessage('CAL_CONNECT_MAC_CALENDAR_TITLE'),\n\t\t\tdescriptionInfoHeader: Loc.getMessage('CAL_MAC_CONNECT_DESCRIPTION'),\n\t\t\ttitleActiveHeader: Loc.getMessage('CAL_MAC_CALENDAR_IS_CONNECT_TITLE'),\n\t\t\tdescriptionActiveHeader: Loc.getMessage('CAL_MAC_SELECTED_DESCRIPTION'),\n\t\t\tsliderIconClass: 'calendar-sync-slider-header-icon-mac',\n\t\t\ticonPath: '/bitrix/images/calendar/sync/mac.svg',\n\t\t\tcolor: '#ff5752',\n\t\t\tprovider: provider,\n\t\t\tconnection: connection,\n\t\t\tpopupWithUpdateButton: false,\n\t\t});\n\t}\n}","// @flow\n'use strict';\n\nimport {Loc} from \"main.core\";\nimport {CaldavInterfaceTemplate} from \"./caldavinterfacetemplate\";\n\nexport default class YandexTemplate extends CaldavInterfaceTemplate\n{\n\tconstructor(provider, connection = null)\n\t{\n\t\tsuper({\n\t\t\ttitle: Loc.getMessage(\"CALENDAR_TITLE_YANDEX\"),\n\t\t\thelpDeskCode: '10930170',\n\t\t\ttitleInfoHeader: Loc.getMessage('CAL_CONNECT_YANDEX_CALENDAR'),\n\t\t\tdescriptionInfoHeader: Loc.getMessage('CAL_YANDEX_CONNECT_DESCRIPTION'),\n\t\t\ttitleActiveHeader: Loc.getMessage('CAL_YANDEX_CALENDAR_IS_CONNECT'),\n\t\t\tdescriptionActiveHeader: Loc.getMessage('CAL_YANDEX_SELECTED_DESCRIPTION'),\n\t\t\tsliderIconClass: 'calendar-sync-slider-header-icon-yandex',\n\t\t\ticonPath: '/bitrix/images/calendar/sync/yandex.svg',\n\t\t\tcolor: '#f9c500',\n\t\t\tprovider: provider,\n\t\t\tconnection: connection,\n\t\t\tpopupWithUpdateButton: true,\n\t\t});\n\t}\n}","// @flow\n'use strict';\n\nimport {Loc, Tag, Type} from \"main.core\";\nimport {InterfaceTemplate} from \"./interfacetemplate\";\nimport MobileSyncBanner from \"../controls/mobilesyncbanner\";\nimport {Util} from \"calendar.util\";\n\nexport default class MobileInterfaceTemplate extends InterfaceTemplate\n{\n\tconstructor(options)\n\t{\n\t\tsuper(options);\n\n\t\tthis.banner = new MobileSyncBanner({\n\t\t\ttype: this.provider.getType(),\n\t\t\thelpDeskCode: options.helpDeskCode,\n\t\t});\n\n\t\tif (this.status)\n\t\t{\n\t\t\tthis.syncDate = Type.isDate(this.data.syncDate) ? this.data.syncDate : Util.parseDate(this.data.syncDate);\n\t\t}\n\t}\n\n\tgetContentInfoBody()\n\t{\n\t\treturn Tag.render `\n\t\t\t${this.getContentInfoBodyHeader()}\n\t\t\t<div class=\"calendar-sync-slider-section calendar-sync-slider-section-banner\">\n\t\t\t\t${this.getContentBodyConnect()}\n\t\t\t</div>\n\t\t`;\n\t}\n\n\tgetContentActiveBody()\n\t{\n\t\treturn Tag.render`\n\t\t\t${this.getContentActiveBodyHeader()}\n\t\t\t<div class=\"calendar-sync-slider-section calendar-sync-slider-section-banner\">\n\t\t\t\t${this.getContentBodyConnect()}\n\t\t\t</div>\n\t\t`;\n\t}\n\n\tgetContentActiveBodyHeader()\n\t{\n\t\treturn Tag.render `\n\t\t\t<div class=\"calendar-sync-slider-section\">\n\t\t\t\t<div class=\"calendar-sync-slider-header-icon ${this.sliderIconClass}\"></div>\n\t\t\t\t<div class=\"calendar-sync-slider-header\">\n\t\t\t\t<div class=\"calendar-sync-slider-title\">${this.titleActiveHeader}</div>\n\t\t\t\t<div class=\"calendar-sync-slider-info\">\n\t\t\t\t\t<span class=\"calendar-sync-slider-info-text\">${Loc.getMessage('CAL_SYNC_LAST_SYNC_DATE')}</span>\n\t\t\t\t\t<span class=\"calendar-sync-slider-info-time\">${Util.formatDateUsable(this.connection.getSyncTimestamp()) + ' ' + BX.date.format(Util.getTimeFormatShort(), this.connection.getSyncTimestamp())}</span>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"calendar-sync-slider-desc\">${Loc.getMessage('CAL_SYNC_DISABLE')}</div>\n\t\t\t\t\t<a class=\"calendar-sync-slider-link\" href=\"javascript:void(0);\" onclick=\"${this.showHelp.bind(this)}\">${Loc.getMessage('CAL_TEXT_ABOUT_WORK_SYNC')}</a>\n\t\t\t\t</div>\n\t\t\t</div>`;\n\t}\n\n\tgetContentBodyConnect()\n\t{\n\t\tthis.banner.initQrCode().then(this.banner.drawQRCode.bind(this.banner));\n\t\treturn this.banner.getContainer();\n\t}\n}","// @flow\n'use strict';\n\nimport {Loc} from \"main.core\";\nimport MobileInterfaceTemplate from \"./mobileinterfacetemplate\";\n\nexport default class AndroidTemplate extends MobileInterfaceTemplate\n{\n\tconstructor(provider, connection = null)\n\t{\n\t\tsuper({\n\t\t\ttitle: Loc.getMessage(\"CALENDAR_TITLE_ANDROID\"),\n\t\t\thelpDeskCode: '5686179',\n\t\t\ttitleInfoHeader: Loc.getMessage('CAL_CONNECT_ANDROID_CALENDAR_TITLE'),\n\t\t\tdescriptionInfoHeader: Loc.getMessage('CAL_ANDROID_CONNECT_DESCRIPTION'),\n\t\t\ttitleActiveHeader: Loc.getMessage('CAL_SYNC_CONNECTED_ANDROID_TITLE'),\n\t\t\tdescriptionActiveHeader: Loc.getMessage('CAL_ANDROID_SELECTED_DESCRIPTION'),\n\t\t\tsliderIconClass: 'calendar-sync-slider-header-icon-android',\n\t\t\ticonPath: '/bitrix/images/calendar/sync/android.svg',\n\t\t\tcolor: '#9ece03',\n\t\t\tprovider: provider,\n\t\t\tconnection: connection,\n\t\t\tpopupWithUpdateButton: false,\n\t\t});\n\t}\n}","// @flow\n'use strict';\n\nimport {Loc} from \"main.core\";\nimport MobileInterfaceTemplate from \"./mobileinterfacetemplate\";\n\nexport default class IphoneTemplate extends MobileInterfaceTemplate\n{\n\tconstructor(provider, connection = null)\n\t{\n\t\tsuper({\n\t\t\ttitle: Loc.getMessage(\"CALENDAR_TITLE_IPHONE\"),\n\t\t\thelpDeskCode: '5686207',\n\t\t\ttitleInfoHeader: Loc.getMessage('CAL_CONNECT_IPHONE_CALENDAR_TITLE'),\n\t\t\tdescriptionInfoHeader: Loc.getMessage('CAL_IPHONE_CONNECT_DESCRIPTION'),\n\t\t\ttitleActiveHeader: Loc.getMessage('CAL_SYNC_CONNECTED_IPHONE_TITLE'),\n\t\t\tdescriptionActiveHeader: Loc.getMessage('CAL_IPHONE_SELECTED_DESCRIPTION'),\n\t\t\tsliderIconClass: 'calendar-sync-slider-header-icon-iphone',\n\t\t\ticonPath: '/bitrix/images/calendar/sync/iphone.svg',\n\t\t\tcolor: '#2fc6f6',\n\t\t\tprovider: provider,\n\t\t\tconnection: connection,\n\t\t\tpopupWithUpdateButton: false,\n\t\t});\n\t}\n}","// @flow\n'use strict';\n\n\nimport {Popup} from 'main.popup';\nimport {Util} from 'calendar.util';\nimport {Loc, Tag} from \"main.core\";\nimport \"../css/icalpopup.css\"\n\nexport default class IcalSyncPopup\n{\n\tLINK_LENGTH = 112;\n\n\tconstructor(options)\n\t{\n\t\tthis.link = this.getIcalLink(options);\n\t}\n\n\tstatic createInstance(options)\n\t{\n\t\treturn new this(options);\n\t}\n\n\tshow()\n\t{\n\t\tthis.createPopup().show();\n\t\tthis.startSync();\n\t}\n\n\tstartSync()\n\t{\n\t\tBX.ajax.get(this.link + '&check=Y', \"\", (result) =>\n\t\t{\n\t\t\tsetTimeout(() =>\n\t\t\t{\n\t\t\t\tif (!result || result.length <= 0 || result.toUpperCase().indexOf('BEGIN:VCALENDAR') === -1)\n\t\t\t\t{\n\t\t\t\t\tthis.showPopupWithSyncDataError();\n\t\t\t\t}\n\t\t\t}, 300);\n\t\t});\n\t}\n\n\tgetContent()\n\t{\n\t\treturn Tag.render`\n\t\t\t<div class=\"calendar-ical-popup-wrapper\">\n\t\t\t\t<h3>${Loc.getMessage('EC_JS_EXPORT_TILE')}</h3>\n\t\t\t\t<div class=\"calendar-ical-popup-label-text\"><span>${Loc.getMessage('EC_EXP_TEXT')}</span></div>\n\t\t\t\t${this.getLinkBlock()}\n\t\t\t</div>\n\t\t`;\n\t}\n\n\tcreatePopup()\n\t{\n\t\treturn this.popup = new Popup({\n\t\t\twidth: 400,\n\t\t\tzIndexOptions: 4000,\n\t\t\tautoHide: false,\n\t\t\tcloseByEsc: true,\n\t\t\tdraggable: true,\n\t\t\tcloseIcon: {right: \"12px\", top: \"10px\"},\n\t\t\tclassName: \"bxc-popup-window\",\n\t\t\tcontent: this.getContent(),\n\t\t\tbuttons: [\n\t\t\t\tnew BX.UI.Button({\n\t\t\t\t\ttext : Loc.getMessage('EC_JS_ICAL_COPY_ICAL_SYNC_LINK'),\n\t\t\t\t\tcolor: BX.UI.Button.Color.PRIMARY,\n\t\t\t\t\tonclick: () => {\n\t\t\t\t\t\tthis.copyLink(event);\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t\tnew BX.UI.Button({\n\t\t\t\t\ttext : Loc.getMessage('EC_SEC_SLIDER_CLOSE'),\n\t\t\t\t\tcolor: BX.UI.Button.Color.LINK,\n\t\t\t\t\tonclick: () => {\n\t\t\t\t\t\tthis.popup.close();\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t],\n\t\t});\n\t}\n\n\tgetIcalLink(options)\n\t{\n\t\treturn options.calendarPath\n\t\t\t+ ((options.calendarPath.indexOf('?') >= 0) ? '&' : '?')\n\t\t\t+ 'action=export'\n\t\t\t+ options.sectionLink;\n\t}\n\n\tgetLinkBlock()\n\t{\n\t\treturn Tag.render`\n\t\t\t\t<div class=\"calendar-ical-popup-link-block\">\n\t\t\t\t\t<a class=\"ui-link ui-link-primary \" target=\"_blank\" href=\"${BX.util.htmlspecialchars(this.link)}\">\n\t\t\t\t\t\t${BX.util.htmlspecialchars(this.getShortenLink(this.link))}\n\t\t\t\t\t</a>\n\t\t\t\t</div>\n\t\t\t`;\n\t}\n\n\tstatic checkPathes(options)\n\t{\n\t\treturn (!!options.sectionLink || !!options.calendarPath)\n\t}\n\n\tstatic showPopupWithPathesError()\n\t{\n\t\tBX.UI.Dialogs.MessageBox.alert(Loc.getMessage('EC_JS_ICAL_ERROR_WITH_PATHES'));\n\t}\n\n\tshowPopupWithSyncDataError()\n\t{\n\t\tBX.UI.Dialogs.MessageBox.alert(Loc.getMessage('EC_EDEV_EXP_WARN'));\n\t}\n\n\tcopyLink(event)\n\t{\n\t\twindow.BX.clipboard.copy(this.link)\n\t\t\t? this.#showSuccessCopyNotification()\n\t\t\t: this.#showFailedCopyNotification();\n\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t}\n\n\tgetShortenLink(link)\n\t{\n\t\treturn link.length < this.LINK_LENGTH ? link : link.substr(0, 105) + '...' + link.slice(-7);\n\t}\n\n\t#showSuccessCopyNotification()\n\t{\n\t\tthis.#showResultNotification(Loc.getMessage('EC_JS_ICAL_COPY_ICAL_SYNC_LINK_SUCCESS'));\n\t}\n\n\t#showFailedCopyNotification()\n\t{\n\t\tthis.#showResultNotification(Loc.getMessage('EC_JS_ICAL_COPY_ICAL_SYNC_LINK_FAILED'));\n\t}\n\n\t#showResultNotification(message)\n\t{\n\t\tUtil.showNotification(message);\n\t}\n}\n","// @flow\n'use strict';\nimport {Type, Tag, Loc, Runtime, Dom} from 'main.core';\nimport {Util} from \"calendar.util\";\nimport {Popup} from 'main.popup';\n\nexport default class AfterSyncTour\n{\n\tconstructor(options = {})\n\t{\n\t\tthis.options = options;\n\t}\n\n\tstatic createInstance(options)\n\t{\n\t\treturn new this(options);\n\t}\n\n\tloadExtension()\n\t{\n\t\treturn new Promise((resolve) => {\n\t\t\tRuntime.loadExtension('ui.tour').then((exports) => {\n\t\t\t\tif (exports && exports['Guide'] && exports['Manager'])\n\t\t\t\t{\n\t\t\t\t\tresolve();\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tconsole.error(`Extension \"ui.tour\" not found`);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\tshow()\n\t{\n\t\tthis.loadExtension()\n\t\t\t.then(() => {\n\t\t\t\tthis.guide = new BX.UI.Tour.Guide({\n\t\t\t\t\tsteps: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttarget: this.getTarget(),\n\t\t\t\t\t\t\ttitle: Loc.getMessage('CAL_AFTER_SYNC_AHA_TITLE'),\n\t\t\t\t\t\t\ttext: Loc.getMessage('CAL_AFTER_SYNC_AHA_TEXT'),\n\t\t\t\t\t\t}\n\t\t\t\t\t],\n\t\t\t\t\tonEvents: true\n\t\t\t\t});\n\n\t\t\t\tthis.guide.start();\n\t\t\t});\n\t}\n\n\tgetTarget()\n\t{\n\t\tlet target;\n\t\tconst view = this.options.view;\n\t\tconst viewWrap = view.getContainer();\n\n\t\tif (view.getName() === 'month')\n\t\t{\n\t\t\ttarget = viewWrap.querySelectorAll(\".calendar-grid-today\")[0];\n\t\t}\n\t\telse if (view.getName() === 'day'\n\t\t|| view.getName() === 'week')\n\t\t{\n\t\t\tconst dayCode = Util.getDayCode(new Date());\n\t\t\ttarget = viewWrap.querySelector('div[data-bx-calendar-timeline-day=\"' + dayCode + '\"] .calendar-grid-cell-inner');\n\t\t}\n\t\telse\n\t\t{\n\t\t\ttarget = document.querySelector('span[data-role=\"addButton\"]');\n\t\t}\n\n\t\treturn target;\n\t}\n}\n"],"names":["StatusBlock","options","status","connections","withStatusLabel","popupWithUpdateButton","popupId","statusInfoBlock","Tag","render","Loc","getMessage","addEventListener","handlerMouseEnter","handlerMouseLeave","statusBlock","getStatusTextLabel","clearTimeout","statusBlockEnterTimeout","buttonEnterTimeout","setTimeout","showPopup","statusBlockLeaveTimeout","hidePopup","node","popup","getPopup","show","addPopupHandlers","hide","getPopupContainer","SyncStatusPopup","createInstance","withUpdateButton","id","AuxiliarySyncPanel","Cache","MemoryCache","connectionsProviders","userId","BX","SidePanel","Instance","open","MAIN_SYNC_SLIDER_NAME","contentCallback","slider","Promise","resolve","reject","getContent","allowChangeHistory","events","onLoad","setGridContent","cacheable","width","SLIDER_WIDTH","loader","LOADER_NAME","getHeader","getMobileHeader","getMobileContentWrapper","getWebHeader","getWebContentWrapper","getMainHeader","getStatusBlockContent","getConnections","cache","remember","statusBlockContent","items","Object","values","forEach","item","itemConnections","length","connection","ConnectionItem","isConnectionItem","getConnectStatus","push","showWebGridContent","filter","mainPanel","getViewClassification","showMobileGridContent","wrapper","Dom","clean","grid","TileGrid","Grid","container","sizeRatio","itemMinWidth","tileMargin","itemType","draw","blockStatusContent","refresh","replace","document","querySelector","SyncPanelUnit","connectionProvider","connectionTemplate","getClassTemplateItem","outerWrapper","Type","isElementNode","appendChild","className","getStatus","unitNode","getLogoNode","getTitle","getButtonsWrap","Event","bind","handleItemClick","getSyncPanelLogo","getSyncPanelTitle","buttonsWrap","getButton","button","e","includes","hasMenu","showMenu","openActiveConnectionSlider","getConnection","openInfoConnectionSlider","getConnectionTemplate","handleConnectButton","SyncPanel","window","top","displayConnectionUnits","getHeaderWrapper","getUnitsContentWrapper","getFooterWrapper","unitsContentWrapper","getExtraInfoWithCheckIcon","getOpenAuxiliaryPanelLink","getOpenHelpLink","alreadyConnected","link","auxiliarySyncPanel","openSlider","Helper","HELPDESK_CODE","connected","renderConnectionUnits","unit","renderTo","GridUnit","type","gridUnit","getAdditionalContentClass","getContentStyles","getImage","isActive","onClick","layout","title","util","htmlspecialchars","getGridTitle","getGridIcon","getSyncStatus","getGridColor","ajax","runAction","analyticsLabel","open_connection_slider","sync_connection_type","getType","sync_connection_status","Item","ConnectionControls","addButtonText","removeButtonText","saveButtonText","userName","server","connectionName","MobileSyncBanner","helpDeskCode","Popup","draggable","content","getContainer","zIndexAbsolute","zIndex","closeByEsc","closeIcon","initQrCode","then","drawQRCode","close","DOM","getSliderContentInfoBlock","QRCODE_WRAP_CLASS","Util","getLoader","QRCODE_SIZE","getHelpdeskCode","initHintNode","Runtime","loadExtension","exports","QRCode","wrap","isDomNode","getInnerContainer","getMobileSyncUrl","QRC","text","getSize","height","colorDark","QRCODE_COLOR_DARK","colorLight","QRCODE_COLOR_LIGHT","correctLevel","CorrectLevel","H","data","response","InterfaceTemplate","setEventNamespace","helpdeskCode","titleInfoHeader","descriptionInfoHeader","titleActiveHeader","descriptionActiveHeader","sliderIconClass","iconPath","color","provider","getContentInfoHeader","getContentInfoBody","getContentActiveHeader","getContentActiveBody","getHeaderTitle","getContentInfoBodyHeader","getContentActiveBodyHeader","event","preventDefault","showHelp","connectionId","removeCalendars","reload","sectionStatus","sectionStatusObject","emit","setStatus","setConnections","getElementById","EventEmitter","CaldavInterfaceTemplate","formObject","formBlock","getWrapper","form","getForm","getAddButton","buttonWrapper","getButtonWrapper","bodyHeader","click_to_connection_button","connection_type","addClass","sendRequestAddConnection","append","addParams","getDisconnectButton","sendRequestRemoveConnection","getId","FormData","fd","name","get","pass","showAlertPopup","errors","alert","message","code","messageBox","UI","Dialogs","MessageBox","buttons","MessageBoxButtons","OK","okCaption","minWidth","mediumButtonSize","popupOptions","onOk","removeClass","CaldavTemplate","ExchangeTemplate","GoogleTemplate","sectionList","childWindow","getSyncLink","console","log","getContentActiveBodySectionsManager","disconnectButton","getConnectionName","getContentActiveBodySections","section","onClickCheckSection","target","value","checked","runUpdateInfo","offsetLeft","offsetTop","padding","autoHide","hasSetSyncCaldavSettings","createConnection","IcloudTemplate","Office365template","MacTemplate","portalAddress","getContentBodyConnect","getPortalAddress","OutlookTemplate","YandexTemplate","MobileInterfaceTemplate","banner","syncDate","isDate","parseDate","formatDateUsable","getSyncTimestamp","date","format","getTimeFormatShort","AndroidTemplate","IphoneTemplate","IcalSyncPopup","getIcalLink","createPopup","startSync","result","toUpperCase","indexOf","showPopupWithSyncDataError","getLinkBlock","zIndexOptions","right","Button","Color","PRIMARY","onclick","copyLink","LINK","calendarPath","sectionLink","getShortenLink","clipboard","copy","stopPropagation","LINK_LENGTH","substr","slice","showNotification","AfterSyncTour","error","guide","Tour","Guide","steps","getTarget","onEvents","start","view","viewWrap","getName","querySelectorAll","dayCode","getDayCode","Date"],"mappings":"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"}
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.3 |
proxy
|
phpinfo
|
Settings