Current Path : /home/bitrix/vorobey-clubru/bitrix/js/currency/ |
Current File : /home/bitrix/vorobey-clubru/bitrix/js/currency/core_uf_money.js |
;(function(){ 'use strict'; BX.namespace('BX.Main.UF'); if(typeof BX.Main.UF.TypeMoney !== 'undefined') { return; } /** * Money type handler class. Will be initialized in Factory. * * @constructor */ BX.Main.UF.TypeMoney = function() { }; BX.extend(BX.Main.UF.TypeMoney, BX.Main.UF.BaseType); BX.Main.UF.TypeMoney.USER_TYPE_ID = 'money'; BX.Main.UF.TypeMoney.prototype.addRow = function(fieldName, thisButton) { var node = thisButton.previousSibling; var newNode = this.getClone(node, fieldName); node.parentNode.insertBefore(newNode, thisButton); }; BX.Main.UF.TypeMoney.prototype.getClone = function(node, fieldName) { var newNode = BX.Main.UF.TypeMoney.superclass.getClone.apply(this, arguments); var nodeList = BX.findChildrenByClassName(newNode, 'money-editor-currency-selector-wrap', true); var wrapNode = nodeList[0]; BX.cleanNode(wrapNode); var inputList = BX.findChildren(newNode, { tagName: /INPUT|SELECT/i }, true); inputList[0].value = ''; inputList[1].value = ''; var currencyList = BX.message('CURRENCY'); var currencyItems = []; var defaultValue = null; for(var currency in currencyList) { if(currencyList.hasOwnProperty(currency)) { var item = {NAME: currencyList[currency].NAME, VALUE: currency}; currencyItems.push(item); if(defaultValue === null) { defaultValue = item; } } } var inputHandler = new BX.Currency.MoneyInput({ controlId: controlId, input: inputList[1], resultInput: inputList[0], currency: defaultValue.VALUE }); var controlId = Math.random(); wrapNode.appendChild(BX.decl({ block: 'main-ui-select', name: controlId, items: currencyItems, value: defaultValue, params: { fieldName: controlId, isMulti: false }, valueDelete: false })); BX.addCustomEvent(window, 'UI::Select::change', function(controlObject, value) { if(controlObject.params.fieldName === controlId) { var currentValue = JSON.parse(controlObject.node.getAttribute('data-value')); if(!!currentValue) { inputHandler.setCurrency(currentValue.VALUE); } } }); return newNode; }; BX.Main.UF.Factory.setTypeHandler(BX.Main.UF.TypeMoney.USER_TYPE_ID, BX.Main.UF.TypeMoney); })();