%PDF- %PDF-
Direktori : /home/bitrix/www/bitrix/components/bitrix/lists.element.attached.crm/templates/.default/ |
Current File : /home/bitrix/www/bitrix/components/bitrix/lists.element.attached.crm/templates/.default/script.js |
BX.namespace('BX.Lists'); BX.Lists.ListsElementAttachedCrm = (function () { var ListsElementAttachedCrm = function (parameters) { this.randomString = parameters.randomString; this.jsObject = parameters.jsObject; this.entityId = parameters.entityId; this.entityType = parameters.entityType; this.singleMode = Boolean(parameters.singleMode); this.iblockId = parameters.iblockId; this.gridPrefixId = parameters.gridPrefixId; this.listElementTemplateUrl = parameters.listElementTemplateUrl; this.backEndUrl = parameters.backEndUrl; this.fieldsForSetValue = parameters.fieldsForSetValue; this.init(); }; ListsElementAttachedCrm.prototype.init = function () { this.gridId = this.gridPrefixId + this.iblockId; this.externalContext = 'creatingElementFromCrm'; this.externalRequestData = null; this.externalEventHandler = null; BX.addCustomEvent('Grid::beforeRequest', BX.delegate(function (gridObject, eventArgs) { this.setGridRequestParams(gridObject, eventArgs); }, this)); if(this.singleMode) { BX.bind(BX('leac-button-add-element-'+this.iblockId), 'click', BX.delegate(this.addElement, this)); } }; ListsElementAttachedCrm.prototype.setGridRequestParams = function (gridObject, eventArgs) { if(eventArgs.gridId != this.gridId) return; if(eventArgs.url == '') eventArgs.url = this.backEndUrl; eventArgs.url = BX.util.add_url_param(eventArgs.url, { gridId: eventArgs.gridId, entityId: this.entityId, entityType: this.entityType }); }; ListsElementAttachedCrm.prototype.showElement = function (gridId, elementId, url) { var gridObject; window.open(url); gridObject = BX.Main.gridManager.getById(gridId); if(gridObject.hasOwnProperty('instance')) { var rowObject = gridObject.instance.getRows().getById(elementId); if(rowObject) rowObject.closeActionsMenu(); } }; ListsElementAttachedCrm.prototype.unBind = function (gridId, elementId) { BX.Lists.modalWindow({ modalId: 'bx-lists-migrate-list', title: BX.message('LEACT_DELETE_POPUP_TITLE'), contentClassName: '', draggable: true, contentStyle: { width: '400px', padding: '20px 20px 20px 20px' }, events: { onPopupClose : function() { this.destroy(); } }, content: BX.message("LEACT_TOOLBAR_ELEMENT_DELETE_WARNING"), buttons: [ BX.create('span', { text : BX.message("LEACT_DELETE_POPUP_ACCEPT_BUTTON"), props: { className: 'webform-small-button webform-small-button-accept' }, events : { click : BX.delegate(function() { var reloadParams = {}, gridObject; reloadParams['action_button_'+gridId] = 'delete'; reloadParams['ID'] = [elementId]; gridObject = BX.Main.gridManager.getById(gridId); if(gridObject.hasOwnProperty('instance')) { gridObject.instance.reloadTable('POST', reloadParams); var rowObject = gridObject.instance.getRows().getById(elementId); if(rowObject) rowObject.closeActionsMenu(); } BX.PopupWindowManager.getCurrentPopup().close(); }, this) } }), BX.create('span', { text : BX.message("LEACT_DELETE_POPUP_CANCEL_BUTTON"), props: { className: 'popup-window-button popup-window-button-link popup-window-button-link-cancel' }, events : { click : BX.delegate(function() { BX.PopupWindowManager.getCurrentPopup().close(); }, this) } }) ] }); }; ListsElementAttachedCrm.prototype.addElement = function () { this.performExternalRequest(); }; ListsElementAttachedCrm.prototype.performExternalRequest = function() { var url = this.listElementTemplateUrl[this.iblockId]; url = url.replace('#section_id#', 0).replace('#element_id#', 0); var urlParams = {external_context: this.externalContext}; for(var p in this.fieldsForSetValue) { urlParams['fieldId'] = p; urlParams['defaultValue'] = this.fieldsForSetValue[p].defaultValue; } url = BX.util.add_url_param(url, urlParams); if(!this.externalRequestData) { this.externalRequestData = {}; } this.externalRequestData[this.externalContext] = { context: this.externalContext, wnd: window.open(url) }; if(!this.externalEventHandler) { this.externalEventHandler = BX.delegate(this.onExternalEvent, this); BX.addCustomEvent(window, 'onLocalStorageSet', this.externalEventHandler); } BX.localStorage.set('externalValue_'+this.iblockId, this.fieldsForSetValue, 10); }; ListsElementAttachedCrm.prototype.onExternalEvent = function(params) { var key = BX.type.isNotEmptyString(params['key']) ? params['key'] : ''; var value = BX.type.isPlainObject(params['value']) ? params['value'] : {}; var context = BX.type.isNotEmptyString(value['context']) ? value['context'] : ''; if(key === 'onElementCreate' && this.externalRequestData && BX.type.isPlainObject(this.externalRequestData[context])) { var isCanceled = BX.type.isBoolean(value['isCanceled']) ? value['isCanceled'] : false; if(!isCanceled && BX.type.isPlainObject(value['elementInfo'])) { if(this.iblockId == value['elementInfo']['iblockId']) { BX.Main.gridManager.getById(this.gridId).instance.reload(); } } if(this.externalRequestData[context]['wnd']) { this.externalRequestData[context]['wnd'].close(); } delete this.externalRequestData[context]; } }; return ListsElementAttachedCrm; })();