%PDF- %PDF-
Server IP : 37.220.80.31 / Your IP : 18.118.166.45 Web Server : Apache/2.4.52 (Ubuntu) System : Linux 3051455-guretool.twc1.net 5.15.0-107-generic #117-Ubuntu SMP Fri Apr 26 12:26:49 UTC 2024 x86_64 User : www-root ( 1010) PHP Version : 7.4.33 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, MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/www-root/data/www/dev.artlot24.ru/bitrix/components/bitrix/main.field.enum/templates/main.view/src/ |
Upload File : |
import {Loc} from 'main.core'; const nodeEnum = (function () { const nodeEnum = function (select, container, isInlineEdit) { this.click = BX.delegate(this.click, this); this.callback = BX.delegate(this.callback, this); this.multiple = false; this.select = null; this.container = null; this.isInlineEdit = null; this.titles = []; this.values = []; this.defaultTitles = []; this.init(select, container, isInlineEdit); }; nodeEnum.prototype = { init: function (select, container, isInlineEdit = true) { if (BX(select) && BX(container)) { this.select = select; this.container = container; this.isInlineEdit = isInlineEdit; if (!this.select.hasAttribute('bx-bound')) { this.select.setAttribute('bx-bound', 'Y'); BX.addCustomEvent(select, 'onChange', BX.delegate(function () { this.multiple = this.select.hasAttribute('multiple'); this.initValues(); }, this)); BX.bind(this.container, 'click', this.click); } this.multiple = select.hasAttribute('multiple'); this.initValues(); } }, initValues: function () { this.titles = []; this.values = []; this.defaultTitles = []; for (let ii = 0; ii < this.select.options.length; ii++) { this.titles.push(this.select.options[ii].textContent.trim()); this.values.push(this.select.options[ii].value); if (this.select.options[ii].hasAttribute('selected')) { this.defaultTitles.push(this.select.options[ii].innerHTML); } } }, click: function (e) { this.show(); return BX.PreventDefault(e); }, show: function () { if (this.titles.length > 0) { BXMobileApp.UI.SelectPicker.show({ callback: this.callback, values: this.titles, multiselect: this.multiple, default_value: this.defaultTitles }); } }, callback: function (data) { this.defaultTitles = []; if (data && data.values && data.values.length > 0) { let keys = []; for (let ii = 0; ii < this.titles.length; ii++) { for (let jj = 0; jj < data.values.length; jj++) { if (this.titles[ii] === data.values[jj]) { keys.push(this.values[ii]); this.defaultTitles.push(this.titles[ii]); break; } } } let html = ''; for (let ii = 0; ii < this.select.options.length; ii++) { this.select.options[ii].removeAttribute('selected'); if (BX.util.in_array(this.select.options[ii].value, keys)) { this.select.options[ii].setAttribute('selected', 'selected'); if (this.multiple) { html += this.select.options[ii].innerHTML + '<br>'; } else { html = this.select.options[ii].innerHTML; } } } if (html === '' && !this.multiple) { html = `<span style="color:grey">${Loc.getMessage('interface_form_select')}</span>`; } this.container.innerHTML = html; } else { for (let ii = 0; ii < this.select.options.length; ii++) { this.select.options[ii].removeAttribute('selected'); } this.container.innerHTML = Loc.getMessage('USER_TYPE_ENUM_NO_VALUE'); } if (this.isInlineEdit) { BX.onCustomEvent(this, 'onChange', [this, this.select]); } } }; return nodeEnum; })(); window.app.exec('enableCaptureKeyboard', true); BX.Mobile.Field.Enum = function (params) { this.init(params); }; BX.Mobile.Field.Enum.prototype = { __proto__: BX.Mobile.Field.prototype, bindElement: function (node) { let result = null; if (BX(node)) { result = new nodeEnum( node, BX(`${node.id}_select`), (node.dataset.isInlineEdit !== 'false') ); } return result; }, };