403Webshell
Server IP : 80.87.202.40  /  Your IP : 216.73.216.169
Web Server : Apache
System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64
User : bitrix ( 600)
PHP Version : 8.2.27
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : ON |  Perl : ON |  Python : OFF |  Sudo : ON |  Pkexec : ON
Directory :  /home/bitrix/ext_www/rospirotorg.ru/bitrix/js/yandex.market/field/condition/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/rospirotorg.ru/bitrix/js/yandex.market/field/condition/summary.js
(function(BX, $, window) {

	'use strict';

	var Reference = BX.namespace('YandexMarket.Field.Reference');
	var Condition = BX.namespace('YandexMarket.Field.Condition');
	var utils = BX.namespace('YandexMarket.Utils');

	var constructor = Condition.Summary = Reference.Summary.extend({

		defaults: {
			textElement: '.js-condition-summary__text',

			editButtonElement: '.js-condition-summary__edit-button',
			editModalElement: '.js-condition-summary__edit-modal',

			modalElement: '.js-condition-summary__edit-modal',
			fieldElement: '.js-condition-summary__field',

			countElement: '.js-condition-summary__count',
			countMessageElement: '.js-condition-summary__count-message',
			countMessageTextElement: '.js-condition-summary__count-message-text',

			lang: {},
			langPrefix: 'YANDEX_MARKET_FIELD_CONDITION_'
		},

		initialize: function() {
			this.callParent('initialize', constructor);
			this.bind();
		},

		destroy: function() {
			this.unbind();
			this.callParent('destroy', constructor);
		},

		bind: function() {
			this.handleTextClick(true);
			this.handleEditButtonClick(true);
		},

		unbind: function() {
			this.handleTextClick(false);
			this.handleEditButtonClick(false);
		},

		handleTextClick: function(dir) {
			var textElement = this.getElement('text');

			textElement[dir ? 'on' : 'off']('click', $.proxy(this.onTextClick, this));
		},

		handleEditButtonClick: function(dir) {
			var editButton = this.getElement('editButton');

			editButton[dir ? 'on' : 'off']('click', $.proxy(this.onEditButtonClick, this));
		},

		onTextClick: function(evt) {
			this.openEditModal();

			evt.preventDefault();
		},

		onEditButtonClick: function(evt) {
			this.openEditModal();

			evt.preventDefault();
		},

		updateField: function(modalContent) {
			this.callParent('updateField', [modalContent], constructor);
			this.$el.trigger('FieldConditionChange');
		},

		isValid: function() {
			var valueList = this.getFilteredValue();

			return valueList.length > 0;
		},

		getFilteredValue: function() {
			var displayValueList = this.getDisplayValue();
			var displayValue;
			var displayValueIndex;
			var result = [];

			if (!$.isArray(displayValueList)) {
				displayValueList = [ displayValueList ];
			}

			for (displayValueIndex = 0; displayValueIndex < displayValueList.length; displayValueIndex++) {
				displayValue = displayValueList[displayValueIndex];

				if (displayValue && this.isValidDisplayValue(displayValue)) {
					result.push(displayValue);
				}
			}

			return result;
		},

		refreshSummary: function() {
			var displayValueList = this.getFilteredValue();
			var displayValue;
			var displayValueIndex;
			var displayValueText;
			var textParts = [];
			var junction;
			var text;
			var textElement = this.getElement('text');

			for (displayValueIndex = 0; displayValueIndex < displayValueList.length; displayValueIndex++) {
				displayValue = displayValueList[displayValueIndex];
				displayValueText = this.getDisplayValueText(displayValue);

				textParts.push(displayValueText);
			}

			if (textParts.length > 0) {
				junction = this.getLang('JUNCTION');
				text = textParts.join(junction);
			} else {
				text = this.getLang('PLACEHOLDER');
			}

			textElement.text(text);
		},

		isValidDisplayValue: function(displayValue) {
			return (
				displayValue['FIELD'].length > 0
				&& displayValue['COMPARE'].length > 0
				&& displayValue['VALUE'].length > 0
			);
		},

		getDisplayValueText: function(displayValue) {
			var result = displayValue['FIELD'] + ' ' + displayValue['COMPARE'];

			if (!displayValue['VALUE_HIDDEN']) {
				result += ' ' + displayValue['VALUE'];
			}

			return result;
		},

		updateCount: function(countList, warningList) {
			var baseName = this.getBaseName();
			var count = countList && baseName in countList ? countList[baseName] : null;
			var warning = warningList && baseName in warningList ? warningList[baseName] : null;

			this.updateCountSelf(count, warning);
			this.callField('updateCount', [countList, warningList]);
		},

		progressCount: function() {
			this.progressCountSelf();
			this.callField('progressCount');
		},

		updateCountSelf: function(count, warning) {
			var countInteger = parseInt(count, 10);
			var countElement = this.getElement('count');
			var countText;
			var messageElement = this.getElement('countMessage');
			var messageTextElement = this.getElement('countMessageText', messageElement);
			var messageText;

			if (!isNaN(countInteger)) {
				countText = this.getLang('COUNT', {
					'COUNT': count,
					'LABEL': utils.sklon(count, [
						this.getLang('PRODUCT_1'),
						this.getLang('PRODUCT_2'),
						this.getLang('PRODUCT_5')
					])
				});

				countElement.html(countText);
				countElement.removeClass('is--hidden');

				if (countInteger === 0) {
					messageText = this.getLang('COUNT_EMPTY');
				}
			} else {
				messageText = this.getLang('COUNT_FAIL');
			}

			if (warning) {
				messageText = warning;
			}

			if (messageText) {
				messageElement.removeClass('is--hidden');
				messageTextElement.html(messageText);
			} else {
				messageElement.addClass('is--hidden');
				messageTextElement.html('');
			}
		},

		progressCountSelf: function() {
			var countElement = this.getElement('count');
			var messageElement = this.getElement('countMessage');
			var messageTextElement = this.getElement('countMessageText', messageElement);
			var countText = this.getLang('COUNT_PROGRESS');

			countElement.text(countText);
			countElement.removeClass('is--hidden');

			messageElement.addClass('is--hidden');
			messageTextElement.text('');
		},

		getFieldPlugin: function() {
			return Condition.Collection;
		}

	}, {
		dataName: 'FieldConditionSummary'
	});

})(BX, $, window);

Youez - 2016 - github.com/yon3zu
LinuXploit