%PDF- %PDF-
Direktori : /home/bitrix/www/bitrix/components/bitrix/report.construct/templates/.default/ |
Current File : //home/bitrix/www/bitrix/components/bitrix/report.construct/templates/.default/script.js |
BX.namespace('BX.Report'); BX.Report.ReportConstructClass = (function () { var ReportConstructClass = function(parameters) { this.ajaxUrl = '/bitrix/components/bitrix/report.construct/ajax.php'; this.jsClass = parameters.jsClass; this.sharingData = parameters.sharingData; this.sessionError = Boolean(parameters.sessionError); this.sharingBlockId = 'report-sharing-block'; this.sharingFormDataId = 'report-sharing-form-data'; this.helpWindow = false; this.destFormName = parameters.destFormName || 'report-construct-destFormName'; this.init(); }; var entityToNewShared = {}; var loadedReadOnlyEntityToNewShared = {}; var maxAccessName = ''; ReportConstructClass.prototype.init = function() { BX.bind(BX('report-title-sharing-help'), 'mouseover', BX.delegate(function(e) { this.onHelpShow(); }, this)); BX.bind(BX('report-title-sharing-help'), 'mouseout', BX.delegate(function(e) { this.onHelpHide(); }, this)); if(this.sessionError) { BX.Report.showModalWithStatusAction({ status: 'error', message: BX('report-list-error').innerHTML }); } entityToNewShared = {}; loadedReadOnlyEntityToNewShared = {}; maxAccessName = this.sharingData.maxAccess; BX(this.sharingBlockId).appendChild(BX.create('div', { props: { className: 'bx-report-popup-construct-content' }, children: [ BX.create('table', { props: { id: 'bx-report-popup-shared-people-list', className: 'bx-report-popup-shared-people-list', style: 'display:none;' }, children: [ BX.create('thead', { html: '<tr>' + '<td class="bx-report-popup-shared-people-list-head-col1">' +BX.message('REPORT_SHARING_NAME_RIGHTS_USER') +'</td>'+ '<td class="bx-report-popup-shared-people-list-head-col2">' +BX.message('REPORT_SHARING_NAME_RIGHTS')+ '</td><td class="bx-report-popup-shared-people-list-head-col3">'+ '</td></tr>' }) ] }), BX.create('div', { props: { id: 'feed-add-post-destination-container', className: 'feed-add-post-destination-wrap report-destination-wrap-construct' }, children: [ BX.create('span', { props: { className: 'feed-add-post-destination-item' } }), BX.create('span', { props: { id: 'feed-add-post-destination-input-box', className: 'feed-add-destination-input-box' }, style: { background: 'transparent' }, children: [ BX.create('input', { props: { type: 'text', value: '', id: 'feed-add-post-destination-input', className: 'feed-add-destination-inp report-destination-input' } }) ] }), BX.create('a', { props: { href: '#', id: 'bx-destination-tag', className: 'feed-add-destination-link' }, style: { background: 'transparent' }, text: BX.message('REPORT_SHARING_NAME_ADD_RIGHTS_USER'), events: { click: BX.delegate(function () { }, this) } }) ] }) ] })); BX.addCustomEvent('onChangeRightOfSharing', BX.proxy(this.onChangeRightOfSharing, this)); for (var i in this.sharingData.members) { if (!this.sharingData.members.hasOwnProperty(i)) { continue; } entityToNewShared[this.sharingData.members[i].entityId] = { item: { id: this.sharingData.members[i].entityId, name: this.sharingData.members[i].name, avatar: this.sharingData.members[i].avatar }, type: this.sharingData.members[i].type, right: this.sharingData.members[i].right }; } BX.SocNetLogDestination.init({ name : this.destFormName, searchInput : BX('feed-add-post-destination-input'), bindMainPopup : { 'node': BX('feed-add-post-destination-container'), 'offsetTop' : '5px', 'offsetLeft': '15px' }, bindSearchPopup : { 'node': BX('feed-add-post-destination-container'), 'offsetTop' : '5px', 'offsetLeft': '15px' }, callback : { select : BX.proxy(this.onSelectDestination, this), unSelect : BX.proxy(this.onUnSelectDestination, this), openDialog : BX.proxy(this.onOpenDialogDestination, this), closeDialog : BX.proxy(this.onCloseDialogDestination, this), openSearch : BX.proxy(this.onOpenSearchDestination, this), closeSearch : BX.proxy(this.onCloseSearchDestination, this) }, items: this.sharingData.destination.items, itemsLast: this.sharingData.destination.itemsLast, itemsSelected : this.sharingData.destination.itemsSelected }); var BXSocNetLogDestinationFormName = this.destFormName; BX.bind(BX('feed-add-post-destination-container'), 'click', function(e){ BX.SocNetLogDestination.openDialog(BXSocNetLogDestinationFormName); BX.PreventDefault(e); }); BX.bind(BX('feed-add-post-destination-input'), 'keyup', BX.proxy(this.onKeyUpDestination, this)); BX.bind(BX('feed-add-post-destination-input'), 'keydown', BX.proxy(this.onKeyDownDestination, this)); }; ReportConstructClass.prototype.onSetEntityToForm = function() { BX(this.sharingFormDataId).innerHTML = ''; for(var k in entityToNewShared) { if (!entityToNewShared.hasOwnProperty(k)) { continue; } BX(this.sharingFormDataId).appendChild( BX.create('input', { props: { id: 'report-sharing-entity-'+k }, attrs: { name: 'sharing_entity['+k+']', value: entityToNewShared[k].right } }) ); } }; ReportConstructClass.prototype.onDeleteEntityFromForm = function(entityId) { BX.Report.removeElement(BX('report-sharing-entity-'+entityId)); }; ReportConstructClass.prototype.onSelectDestination = function(item, type, search) { entityToNewShared[item.id] = entityToNewShared[item.id] || {}; BX.Report.appendNewShared({ maxAccessName: maxAccessName, readOnly: !!loadedReadOnlyEntityToNewShared[item.id], destFormName: this.destFormName, item: item, type: type, right: entityToNewShared[item.id].right }); entityToNewShared[item.id] = { item: item, type: type, right: entityToNewShared[item.id].right || 'access_read' }; this.onSetEntityToForm(); BX.Report.show(BX('bx-report-popup-shared-people-list')); }; ReportConstructClass.prototype.onUnSelectDestination = function (item, type, search) { var entityId = item.id; if(!!loadedReadOnlyEntityToNewShared[entityId]) { return false; } this.onDeleteEntityFromForm(entityId); delete entityToNewShared[entityId]; var child = BX.findChild(BX('bx-report-popup-shared-people-list'), {attribute: {'data-dest-id': '' + entityId + ''}}, true); if (child) { BX.remove(child); } if(BX.Report.isEmptyObject(entityToNewShared)) { BX.Report.hide(BX('bx-report-popup-shared-people-list')); } }; ReportConstructClass.prototype.onOpenDialogDestination = function() { BX.style(BX('feed-add-post-destination-input-box'), 'display', 'inline-block'); BX.style(BX('bx-destination-tag'), 'display', 'none'); BX.focus(BX('feed-add-post-destination-input')); if(BX.SocNetLogDestination.popupWindow) BX.SocNetLogDestination.popupWindow.adjustPosition({ forceTop: true }); }; ReportConstructClass.prototype.onCloseDialogDestination = function() { var input = BX('feed-add-post-destination-input'); if (!BX.SocNetLogDestination.isOpenSearch() && input && input.value.length <= 0) { BX.style(BX('feed-add-post-destination-input-box'), 'display', 'none'); BX.style(BX('bx-destination-tag'), 'display', 'inline-block'); } }; ReportConstructClass.prototype.onOpenSearchDestination = function() { if(BX.SocNetLogDestination.popupSearchWindow) BX.SocNetLogDestination.popupSearchWindow.adjustPosition({ forceTop: true }); }; ReportConstructClass.prototype.onCloseSearchDestination = function() { var input = BX('feed-add-post-destination-input'); if (!BX.SocNetLogDestination.isOpenSearch() && input && input.value.length > 0) { BX.style(BX('feed-add-post-destination-input-box'), 'display', 'none'); BX.style(BX('bx-destination-tag'), 'display', 'inline-block'); BX('feed-add-post-destination-input').value = ''; } }; ReportConstructClass.prototype.onKeyUpDestination = function (event) { var BXSocNetLogDestinationFormName = this.destFormName; if (event.keyCode == 16 || event.keyCode == 17 || event.keyCode == 18 || event.keyCode == 20 || event.keyCode == 244 || event.keyCode == 224 || event.keyCode == 91) return false; if (event.keyCode == 13) { BX.SocNetLogDestination.selectFirstSearchItem(BXSocNetLogDestinationFormName); return BX.PreventDefault(event); } if (event.keyCode == 27) { BX('feed-add-post-destination-input').value = ''; } else { BX.SocNetLogDestination.search( BX('feed-add-post-destination-input').value, true, BXSocNetLogDestinationFormName); } if (BX.SocNetLogDestination.sendEvent && BX.SocNetLogDestination.isOpenDialog()) BX.SocNetLogDestination.closeDialog(); if (event.keyCode == 8) { BX.SocNetLogDestination.sendEvent = true; } return BX.PreventDefault(event); }; ReportConstructClass.prototype.onKeyDownDestination = function (event) { var BXSocNetLogDestinationFormName = this.destFormName; if (event.keyCode == 8 && BX('feed-add-post-destination-input').value.length <= 0) { BX.SocNetLogDestination.sendEvent = false; BX.SocNetLogDestination.deleteLastItem(BXSocNetLogDestinationFormName); } return true; }; ReportConstructClass.prototype.onChangeRightOfSharing = function(entityId, taskName) { if(entityToNewShared[entityId]) { entityToNewShared[entityId].right = taskName; } }; ReportConstructClass.prototype.export = function(reportId) { var form = BX.create('form', { props: { method: 'POST' }, children: [ BX.create('input', { props: { type: 'hidden', name: 'sessid', value: BX.bitrix_sessid() } }), BX.create('input', { props: { type: 'text', name: 'EXPORT_REPORT', value: BX.util.htmlspecialchars(reportId) } }) ] }); document.body.appendChild(form); BX.submit(form); }; ReportConstructClass.prototype.onHelpShow = function() { var node = BX.proxy_context, text = node.innerHTML; if(BX.type.isNotEmptyString(text)) { if(this.helpWindow) { this.helpWindow.close(); } var _this = this; var popup = new BX.PopupWindow('report-help', node, { lightShadow: true, autoHide: false, darkMode: true, offsetLeft: 0, offsetTop: 2, bindOptions: {position: 'top'}, zIndex: 200, events : { onPopupClose : function() { this.destroy(); _this.helpWindow = false; } }, content : BX.create('div', { attrs : { style : 'padding-right: 5px; width: 250px;' }, html: text}) }); popup.setAngle({offset:13, position: 'bottom'}); popup.show(); this.helpWindow = popup; } }; ReportConstructClass.prototype.onHelpHide = function() { if(this.helpWindow) { this.helpWindow.close(); } }; return ReportConstructClass; })();