uawdijnntqw1x1x1
IP : 3.21.248.226
Hostname : axolotl
Kernel : Linux axolotl 4.9.0-13-amd64 #1 SMP Debian 4.9.228-1 (2020-07-05) x86_64
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
OS : Linux
PATH:
/
var
/
www
/
axolotl
/
data
/
www
/
b24.axolotl.ru
/
.
/
public_html
/
en
/
..
/
bitrix
/
js
/
crm
/
communication_search.js
/
/
if(typeof(BX.CrmCommunicationSearch) === 'undefined') { BX.CrmCommunicationSearch = function() { this._id = ""; this._settings = {}; this._provider = null; this._dlg = null; this._dlgContainer = null; this._enableSearch = false; this._searchCompletionHandler = BX.delegate(this._handleSearchCompletion, this); this._onDlgCloseCallback = null; this._tabData = []; this._items = []; }; BX.CrmCommunicationSearch.prototype = { initialize: function(id, settings) { this._id = BX.type.isNotEmptyString(id) ? id : ""; this._settings = settings ? settings : {}; this._enableSearch = this.getSetting("enableSearch", false); //entityType="LEAD", entityId = 1} var entityType = this.getSetting("entityType", "").toUpperCase(); this._provider = BX.CrmCommunicationSearchProvider.create( this, { "entityType" : entityType, "entityId" : this.getSetting("entityId", ""), "serviceUrl" : this.getSetting("serviceUrl", ""), "communicationType" : this.getSetting("communicationType", ""), "enableDataLoading" : this.getSetting("enableDataLoading", true) } ); if(!this._provider) { throw "BX.CrmCommunicationSearch. Could resolve provider for '" + entityType + "' entity type`."; } }, getSetting: function(name, defaultval) { return typeof(this._settings[name]) != "undefined" ? this._settings[name] : defaultval; }, getId: function() { return this._id; }, getCommunicationType: function() { return this.getSetting("communicationType", ""); }, getDefaultCommunication: function() { return this._provider ? this._provider.getDefaultCommunication() : null; }, getTab: function(tabId) { var tabs = this._tabData; for(var i = 0; i < tabs.length; i++) { var tab = tabs[i]; if(tab["id"] == tabId) { return tab; } } return null; }, search: function(needle) { if(!this._enableSearch) { return; } var serviceUrl = this.getSetting("serviceUrl", ""); if(serviceUrl === "") { return; } var entityType = this.getSetting("entityType", ""); var entityId = this.getSetting("entityId", ""); var communicationType = this.getSetting("communicationType", ""); BX.ajax( { "url": serviceUrl, "method": "POST", "dataType": "json", "data": { "ACTION" : "SEARCH_COMMUNICATIONS", "ENTITY_TYPE": entityType, "ENTITY_ID": entityId, "COMMUNICATION_TYPE": communicationType, "NEEDLE": needle }, "async": false, "start": true, "onsuccess": this._searchCompletionHandler, "onfailure": this._searchCompletionHandler } ); }, openDialog: function(bindElem, onCloseCallback, popupParams) { if(BX.type.isFunction(onCloseCallback)) { this._onDlgCloseCallback = onCloseCallback; } if(this._dlg) { return; } if (!BX.type.isPlainObject(popupParams)) { popupParams = {}; } popupParams = BX.mergeEx({ autoHide: this.getSetting('dialogAutoHide', false), draggable: false, offsetLeft: 0, offsetTop: 0, closeByEsc: true, closeIcon : { top: "13px", right : "17px" }, events: { onPopupShow: function() { }, onPopupClose: BX.delegate(this._handleDialogClose, this), onPopupDestroy: BX.delegate(this._handleDialogDestroy, this) }, content: this._prepareDialogContent(), buttons: this._prepareDialogButtons() }, popupParams); this._dlg = new BX.PopupWindow( this._id, bindElem, popupParams ); this._dlg.show(); }, closeDialog: function() { if(this._dlg) { this._dlg.close(); } }, adjustDialogPosition: function() { if(this._dlg) { this._dlg.adjustPosition(); } }, selectCommunication: function(communication) { var callback = this.getSetting('selectCallback', null); if(typeof(callback) !== "function") { return; } try { callback(communication); } catch(ex) { if(typeof(window.console) === "object" && typeof(window.console.error) === "function") { window.console.error(ex); } } }, isDataLoaded: function() { return this._provider && this._provider.isDataLoaded(); }, prepareDataRequest: function(requestData) { if(this._provider) { this._provider.prepareDataRequest(requestData); } }, processDataResponse: function(responseData) { if(this._provider) { this._provider.processDataResponse(responseData); } }, _handleDialogClose: function(e) { if(this._onDlgCloseCallback) { try { this._onDlgCloseCallback(); } catch(e) { } } if(this._dlg) { this._dlg.destroy(); } }, _handleDialogDestroy: function(e) { this._dlg = null; }, _prepareDialogContent: function() { if(!this._provider) { throw "BX.CrmCommunicationSearch. Could not find provider."; } var activeTab = null; var titleElems = []; var tabs = this._tabData = this._provider.prepareTabData(); for(var i = 0; i < tabs.length; i++) { var tab = tabs[i]; if(!activeTab && tab["active"] === true) { activeTab = tab; } titleElems.push(this._createTabButton(tab)); } if(this._enableSearch) { var searchTab = { id: "search", title: BX.CrmCommunicationSearch.messages["SearchTab"], active: !activeTab }; if(!activeTab) { activeTab = searchTab; } tabs.push(searchTab); titleElems.push(this._createTabButton(searchTab)); } var contentElems = this._prepareTabContent(activeTab && typeof(activeTab["items"]) != "undefined" ? activeTab["items"] : []); return (this._dlgContainer = BX.create( "DIV", { attrs: { className: "crm-connection-search-dlg-wrapper" }, children: [ BX.create( "DIV", { attrs: { className: "crm-connection-search-dlg-title" }, children: titleElems } ), BX.create( "DIV", { attrs: { className: "crm-connection-search-dlg-content" }, children: contentElems } ) ] } )); }, _createTabButton: function(tab) { //{ id: "main", title: "Lead", active: true }; var className = "crm-connection-search-dlg-button"; if(tab["active"] === true) { className += " crm-connection-search-dlg-button-active"; } return BX.create( "SPAN", { attrs: { className: className }, children: [ BX.create( "INPUT", { attrs: { className: "crm-connection-search-dlg-tab-id", type: "hidden", value: tab["id"] } } ), BX.create( "SPAN", { attrs: { className: "crm-connection-search-dlg-button-l" } } ), BX.create( "SPAN", { attrs: { className: "crm-connection-search-dlg-button-t" }, text: tab["title"] } ), BX.create( "SPAN", { attrs: { className: "crm-connection-search-dlg-button-r" } } ) ], events:{ click: BX.delegate(this._handleButtonClick, this) } } ); }, _prepareDialogButtons: function() { return {}; //no buttons }, _prepareNoData: function(ary) { var wrapper = BX.create( "DIV", { attrs: { className: "crm-connection-search-block" } } ); // title wrapper.appendChild( BX.create( "SPAN", { attrs: { className: "crm-connection-search-section" }, children: [ BX.create( "SPAN", { attrs: { className: "crm-connection-search-title" }, text: BX.CrmCommunicationSearch.messages["NoData"] } ) ] } ) ); ary.push(wrapper); }, _prepareTabContent: function(data) { this._items = []; //clear communications var result = []; var commType = this.getCommunicationType(); if(data.length == 0) { this._prepareNoData(result); return result; } for(var i = 0; i < data.length; i++) { var itemData = data[i]; var itemCommData = itemData["communications"]; if(itemCommData.length === 0 && commType !== '') { continue; } var wrapper = BX.create( "DIV", { attrs: { className: "crm-connection-search-block" } } ); result.push(wrapper); if(itemCommData.length === 0) { // wrapper wrapper.appendChild( BX.create( "SPAN", { attrs: { className: "crm-connection-search-section" } } ) ); var item = BX.CrmCommunication.create( this, { "type": this.getSetting("communicationType", ""), "entityType": itemData["entityType"], "entityId": itemData["entityId"], "entityTitle": itemData["entityTitle"], "entityDescription": itemData["entityDescription"], "value": "" } ); this._items.push(item); wrapper.appendChild(item.layout()); } else { // wrapper + title wrapper.appendChild( BX.create( "SPAN", { attrs: { className: "crm-connection-search-section" }, children: [ BX.create( "SPAN", { attrs: { className: "crm-connection-search-title" }, text: itemData["entityTitle"] } ), BX.create( "SPAN", { attrs: { className: "crm-connection-search-description" }, text: itemData["entityDescription"] } ) ] } ) ); // connections var itemWrapper = BX.create( "SPAN", { attrs: { className: "crm-connection-search-section" } } ); wrapper.appendChild(itemWrapper); for(var j = 0; j < itemCommData.length; j++) { var itemComm = itemCommData[j]; var item = BX.CrmCommunication.create( this, { "type": this.getSetting("communicationType", ""), "entityType": itemData["entityType"], "entityId": itemData["entityId"], "entityTitle": itemData["entityTitle"], "entityDescription": itemData["entityDescription"], "value": itemComm["value"] } ); this._items.push(item); itemWrapper.appendChild(item.layout()); } } } if(result.length === 0) { this._prepareNoData(result); } return result; }, _selectTab: function(tabId) { var activeButtons = BX.findChildren(this._dlgContainer, { className: "crm-connection-search-dlg-button-active" }, true); if(activeButtons && activeButtons.length > 0) { for(var i = 0; i < activeButtons.length; i++) { BX.removeClass(activeButtons[i], "crm-connection-search-dlg-button-active"); } } var button = BX.findChild(this._dlgContainer, { className: "crm-connection-search-dlg-tab-id", property: { value: tabId } }, true, false); if(button) { BX.addClass(button.parentNode, "crm-connection-search-dlg-button-active"); } var contentContainer = BX.findChild(this._dlgContainer, { className: "crm-connection-search-dlg-content" }, true, false); if(contentContainer) { BX.cleanNode(contentContainer, false); var tab = tabId !== "" ? this.getTab(tabId) : null; var contentElems = this._prepareTabContent(tab && typeof(tab["items"]) != "undefined" ? tab["items"] : []); for(var j = 0; j < contentElems.length; j++) { contentContainer.appendChild(contentElems[j]); } } }, _handleButtonClick: function(e) { if(!this._dlgContainer) { return; } if(!e) { e = window.event; } var hidden = BX.findPreviousSibling(e.target, { tagName:"INPUT", className:"crm-connection-search-dlg-tab-id" }, true, false); if(hidden) { this._selectTab(hidden.value); } }, _handleSearchCompletion: function(data) { if(typeof(data["DATA"]) !== "undefined" && typeof(data["DATA"]["ITEMS"]) !== "undefined") { var tab = this.getTab("search"); if(tab) { tab["items"] = data["DATA"]["ITEMS"]; this._selectTab("search"); } } } }; BX.CrmCommunicationSearch.create = function(id, settings) { var self = new BX.CrmCommunicationSearch(); self.initialize(id, settings); return self; }; BX.CrmCommunicationType = { undefined: "", phone: "PHONE", email: "EMAIL" }; BX.CrmCommunicationSearchProvider = function() { this._manager = null; this._settings = {}; this._entityType = ""; this._entityId = ""; this._commType = ""; this._data = []; this._items = []; }; BX.CrmCommunicationSearchProvider.prototype = { initialize: function(manager, settings) { if(!manager) { throw "BX.CrmCommunicationSearchProvider. Manager is not defined."; } this._manager = manager; this._settings = settings ? settings : {}; this._entityType = this.getSetting("entityType", ""); this._entityId = parseInt(this.getSetting("entityId", 0)); this._commType = this.getSetting("communicationType", ""); if(this._entityType !== "" && this._entityId !== 0) { this._data = BX.CrmCommunicationSearchProvider.getEntityData( this._entityType, this._entityId, this._commType ); if(this._data === null && this.getSetting("enableDataLoading", true)) { this._loadData(); } } else { this._data = {}; } }, getEntityType: function() { return this.getSetting("entityType", ""); }, getDefaultCommunication: function() { if(!(BX.type.isPlainObject(this._data) && BX.type.isArray(this._data["TABS"]))) { return null; } var data = this._data["TABS"]; var commType = this.getSetting("communicationType", ""); for(var i = 0; i < data.length; i++) { var tab = data[i]; var items = BX.type.isArray(tab["items"]) ? tab["items"] : []; for(var j = 0; j < items.length; j++) { var item = items[j]; if(commType === "") { // There are no communications - return first item return BX.CrmCommunication.create( this, { "type": commType, "entityType": item["entityType"], "entityId": item["entityId"], "entityTitle": "", "value": item["entityTitle"] } ); } var comms = typeof(item["communications"]) != "undefined" ? item["communications"] : []; if(comms.length > 0) { return BX.CrmCommunication.create( this, { "type": commType, "entityType": item["entityType"], "entityId": item["entityId"], "entityTitle": item["entityTitle"], "value": comms[0]["value"] } ); } } } return null; }, prepareTabData: function() { var result = []; if(this._data['TABS']) { for(var i = 0; i < this._data['TABS'].length; i++) { result.push(this._data['TABS'][i]); } } return result; }, getTab: function(tabId) { var data = typeof(this._data["TABS"]) != "undefined" ? this._data["TABS"] : []; for(var i = 0; i < data.length; i++) { var tab = data[i]; if(tab["id"] == tabId) { return tab; } } return null; }, getSetting: function(name, defaultval) { return typeof(this._settings[name]) != "undefined" ? this._settings[name] : defaultval; }, prepareDataRequest: function(requestData) { if(this._data === null && this._entityType !== "" && this._entityId !== 0) { requestData["ENTITY_COMMUNICATIONS"] = { "ENTITY_TYPE": this._entityType, "ENTITY_ID": this._entityId, "COMMUNICATION_TYPE": this._commType }; } }, processDataResponse: function(responseData) { if(this._data !== null) { return; } this._data = typeof(responseData['ENTITY_COMMUNICATIONS']) !== 'undefined' && typeof(responseData['ENTITY_COMMUNICATIONS']['DATA']) !== 'undefined' ? responseData['ENTITY_COMMUNICATIONS']['DATA'] : {}; BX.CrmCommunicationSearchProvider.setEntityData( this._entityType, this._entityId, this._commType, this._data ); }, isDataLoaded: function() { return this._data !== null; }, _loadData: function() { var serviceUrl = this.getSetting("serviceUrl", ""); if(this._entityType === "" || this._entityId === 0 || serviceUrl === "") { return; } BX.ajax( { "url": serviceUrl, "method": "POST", "dataType": "json", "data": { "ACTION" : "GET_ENTITY_COMMUNICATIONS", "ENTITY_TYPE": this._entityType, "ENTITY_ID": this._entityId, "COMMUNICATION_TYPE": this._commType }, "async": false, "start": true, "onsuccess": BX.delegate(this._handleRequestCompletion, this), "onfailure": BX.delegate(this._handleRequestError, this) } ); }, _handleRequestCompletion: function(data) { if(typeof(data["DATA"]) !== "undefined") { this._data = data["DATA"]; BX.CrmCommunicationSearchProvider.setEntityData( this._entityType, this._entityId, this._commType, this._data ); } }, _handleRequestError: function(data) { } }; BX.CrmCommunicationSearchProvider.entityData = {}; BX.CrmCommunicationSearchProvider.getEntityData = function(entityType, entityId, type) { if(type === "") { type = "PERS"; } var key = entityType + "_" + entityId + "_" + type; return this.entityData.hasOwnProperty(key) ? this.entityData[key] : null; }; BX.CrmCommunicationSearchProvider.setEntityData = function(entityType, entityId, type, data) { if(type === "") { type = "PERS"; } var key = entityType + "_" + entityId + "_" + type; this.entityData[key] = data; }; BX.CrmCommunicationSearchProvider.create = function(manager, settings) { var self = new BX.CrmCommunicationSearchProvider(); self.initialize(manager, settings); return self; }; BX.CrmCommunication = function() { this._settings = {}; this._manager = null; }; BX.CrmCommunication.prototype = { initialize: function(manager, settings) { if(!manager) { throw "BX.CrmCommunication. Manager is not defined."; } this._manager = manager; this._settings = settings ? settings : {}; //entityType //entityId //value }, getSettings: function() { var orig = this._settings; var copy = {}; for (var p in orig) { if (orig.hasOwnProperty(p)) { copy[p] = orig[p]; } } return copy; }, getSetting: function(name, defaultval) { return typeof(this._settings[name]) != "undefined" ? this._settings[name] : defaultval; }, getType: function() { return this.getSetting("type", ""); }, getOwnerEntityType: function() { return this.getSetting("ownerEntityType", ""); }, getOwnerEntityId: function() { return this.getSetting("ownerEntityId", ""); }, getEntityType: function() { return this.getSetting("entityType", ""); }, getEntityId: function() { return this.getSetting("entityId", ""); }, getValue: function() { return this.getSetting("value", ""); }, getEntityTitle: function() { return this.getSetting("entityTitle", ""); }, getEntityDescription: function() { return this.getSetting("entityDescription", ""); }, layout: function() { var wrapper = BX.create( "SPAN", { attrs: { className: "crm-connection-search-item" }, events: { click: BX.delegate(this._handleClick, this) } } ); wrapper.appendChild(BX.create("I")); var val = this.getSetting("value", ""); if(val !== "") { wrapper.appendChild(document.createTextNode(this.getSetting("value"))); } else { wrapper.appendChild( BX.create( "SPAN", { attrs: { className: "crm-connection-search-title" }, text: this.getSetting("entityTitle", "Untitled") } ) ); var descr = this.getSetting("entityDescription", ""); if(descr !== "") { wrapper.appendChild( BX.create( "SPAN", { attrs: { className: "crm-connection-search-description" }, text: descr } ) ); } } return wrapper; }, _handleClick: function(e) { this._manager.selectCommunication(this); } }; BX.CrmCommunication.create = function(manager, settings) { var self = new BX.CrmCommunication(); self.initialize(manager, settings); return self; }; BX.CrmCommunicationSearchController = function() { this._id = ''; this._manager = null; this._input = null; this._value = ""; this._isActive = false; this._timeoutId = 0; this._checkHandler = BX.delegate(this.check, this); this._keyPressHandler = BX.delegate(this.onKeyPress, this); }; BX.CrmCommunicationSearchController.prototype = { initialize: function(manager, input) { this._id = Math.random().toString(); this._manager = manager; this._input = input; this._value = input.value; }, start: function() { if(this._isActive) { return; } this._isActive = true; if(this._timeoutId > 0) { window.clearTimeout(this._timeoutId); this._timeoutId = 0; } BX.bind(this._input, "keyup", this._keyPressHandler); }, stop: function() { if(!this._isActive) { return; } this._isActive = false; if(this._timeoutId > 0) { window.clearTimeout(this._timeoutId); this._timeoutId = 0; } BX.unbind(this._input, "keyup", this._keyPressHandler); }, check: function() { this._timeoutId = 0; if(!this._isActive) { return; } if(this._value !== this._input.value) { this._value = this._input.value; this._timeoutId = window.setTimeout(this._checkHandler, 750); } else if(this._value.length >= 2) { this._manager.search(this._value); } }, onKeyPress: function(e) { if(!this._isActive) { return; } if(this._timeoutId !== 0) { window.clearTimeout(this._timeoutId); this._timeoutId = 0; } this._timeoutId = window.setTimeout(this._checkHandler, 375); } }; BX.CrmCommunicationSearchController.create = function(manager, input) { var self = new BX.CrmCommunicationSearchController(); self.initialize(manager, input); return self; }; }
/var/www/axolotl/data/www/b24.axolotl.ru/./public_html/en/../bitrix/js/crm/communication_search.js