File manager - Edit - /home/c14075/dragmet-ural.ru/www/bitrix/components/bitrix/ui.sidepanel.wrapper/templates/.default/template.js
Back
;(function () { BX.namespace("BX.UI.SidePanel"); if (BX.UI.SidePanel.Wrapper) { return; } function Wrapper (parameters) { } Wrapper.prototype.init = function (parameters) { this.container = BX(parameters.containerId); this.isCloseAfterSave = parameters.isCloseAfterSave || false; this.isReloadGridAfterSave = parameters.isReloadGridAfterSave || false; this.isReloadPageAfterSave = parameters.isReloadPageAfterSave || false; this.skipNotification = parameters.skipNotification || false; this.useLinkTargetsReplacing = parameters.useLinkTargetsReplacing || false; this.notification = parameters.notification || {}; var previousSlider = BX.SidePanel.Instance.getPreviousSlider(BX.SidePanel.Instance.getSliderByWindow(window)); this.parentWindow = previousSlider ? previousSlider.getWindow() : top; this.initEditableTitle(parameters); if (this.isReloadGridAfterSave) { if (this.getParam("reloadGridAfterSave")) { //This code executes after a page reload. this.reloadGridOnParentPage(); } this.setParam("reloadGridAfterSave", true); } if (this.isCloseAfterSave) { if (this.getParam("closeAfterSave")) { //This code executes after a page reload. var handler; if (this.notification.content && top.BX && !this.getParam("skipNotification")) { handler = function() { top.BX.loadExt("ui.notification").then(function() { top.BX.UI.Notification.Center.notify(this.notification); }.bind(this)); }.bind(this); } else if (this.isReloadPageAfterSave) { handler = function () { this.parentWindow.location.reload(); }.bind(this); } BX.SidePanel.Instance.close(false, handler); } if (this.skipNotification) { this.setParam("skipNotification", true); } this.setParam("closeAfterSave", true); } if (this.useLinkTargetsReplacing) { this.initLinkTargetsReplacing(); } }; Wrapper.prototype.initEditableTitle = function (parameters) { if (!parameters.title || !parameters.title.selector || !parameters.title.defaultTitle) { return; } var dataContainer = this.container.querySelector(parameters.title.selector); if (!dataContainer) { return; } var titleDataNode = dataContainer.querySelector('input[type="text"]'); if (!titleDataNode) { return; } dataContainer.style.display = 'none'; TitleEditor.init({ dataContainer: dataContainer, dataNode: titleDataNode, defaultTitle: parameters.title.defaultTitle }); }; Wrapper.prototype.initLinkTargetsReplacing = function () { this.replaceLinkTargets(); if (!window.MutationObserver) { return; } var observer = new MutationObserver(this.domMutationHandler.bind(this)); observer.observe(this.container, {childList: true, subtree: true}); }; Wrapper.prototype.domMutationHandler = function (mutations) { mutations.forEach(function (mutation) { for (var i = 0; i < mutation.addedNodes.length; ++i) { var node = mutation.addedNodes.item(i); if (!node) { continue; } this.replaceLinkTargets(node); } }, this); }; Wrapper.prototype.replaceLinkTargets = function (context) { if (!context) { context = document.body; } var list = []; if (context.tagName === 'A') { list = [context]; } else if (context.nodeName !== '#text') { list = BX.convert.nodeListToArray(context.querySelectorAll('a')) } if (list.length === 0) { return; } BX.convert.nodeListToArray(list).filter(function (a) { return !a.target; }).forEach(function (a) { a.target = '_top'; }); }; Wrapper.prototype.setParam = function(name, value) { var slider = BX.SidePanel.Instance.getSliderByWindow(window); if (slider) { slider.getData().set(name, value); } }; /** * * @param name * @returns {undefined|*} */ Wrapper.prototype.getParam = function(name) { var slider = BX.SidePanel.Instance.getSliderByWindow(window); if (slider) { return slider.getData().get(name); } return undefined; }; /** * * @param name * @returns {void} */ Wrapper.prototype.removeParam = function(name) { var slider = BX.SidePanel.Instance.getSliderByWindow(window); if (slider) { slider.getData().delete(name); } }; Wrapper.prototype.reloadGridOnParentPage = function () { var parent = this.parentWindow; var id = BX.type.isString(this.isReloadGridAfterSave) ? this.isReloadGridAfterSave : null; if (!parent.BX.Main || !parent.BX.Main.gridManager) { return; } if (id === 'all') { parent.BX.Main.gridManager.data.forEach(function(grid) { grid.instance.reload(); }); return; } if (!id && parent.BX.Main.gridManager.data) { var grids = parent.BX.Main.gridManager.data; id = grids.length > 0 ? grids[0].id : null; } if(!id) { return; } var grid = parent.BX.Main.gridManager.getById(id); if (!grid) { return; } grid.instance.reload(); }; var TitleEditor = { isInit: false, init: function (params) { // init nodes this.dataNode = params.dataNode; this.titleNode = document.querySelector('.ui-side-panel-wrap-title-name'); this.inputNode = document.querySelector('.ui-side-panel-wrap-title-input'); this.buttonNode = document.querySelector('.ui-side-panel-wrap-title-edit-button'); this.initialTitle = this.titleNode.textContent; this.defaultTitle = params.defaultTitle; // init bindings BX.bind(this.dataNode, 'bxchange', this.onDataNodeChange.bind(this)); BX.bind(this.buttonNode, 'click', this.startEdit.bind(this)); BX.bind(this.inputNode, 'keyup', this.onKeyUp.bind(this)); BX.bind(this.inputNode, 'blur', this.endEdit.bind(this)); this.isInit = true; // init state if (!params.disabled) { this.enable(); } if (!this.dataNode.value) { this.dataNode.value = this.defaultTitle; } }, enable: function (isDisable) { isDisable = isDisable || false; if (!this.isInit) { return; } this.changeDisplay(this.buttonNode, !isDisable); this.titleNode.textContent = !isDisable ? this.dataNode.value ? this.dataNode.value : this.defaultTitle : this.initialTitle; }, disable: function () { this.enable(true); }, onDataNodeChange: function () { this.titleNode.textContent = this.dataNode.value; }, onKeyUp: function (event) { event = event || window.event; if ((event.keyCode === 0xA)||(event.keyCode === 0xD)) { this.endEdit(); event.preventDefault(); return false; } }, getTitle: function () { var title = this.dataNode.value; if (!title) { title = this.titleNode.textContent; } return title; }, startEdit: function () { this.inputNode.value = this.getTitle(); this.changeDisplay(this.titleNode, false); this.changeDisplay(this.buttonNode, false); this.changeDisplay(this.inputNode, true); this.inputNode.focus(); }, endEdit: function () { this.dataNode.value = this.inputNode.value; this.titleNode.textContent = this.inputNode.value; this.changeDisplay(this.inputNode, false); this.changeDisplay(this.buttonNode, true); this.changeDisplay(this.titleNode, true); }, changeDisplay: function (node, isShow) { return node.style.display = isShow ? '' : 'none'; } }; BX.UI.SidePanel.Wrapper = new Wrapper; })();
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.36 |
proxy
|
phpinfo
|
Settings