Добавить действие на нажатие "лупы" лукап поля.

Доброго времени суток, мне по задачке необходимо при нажатии на лупу лукап поля (перед открытием окошка выбора значения) сохранить страницу редактирования.

Грубо говоря, перед исполнением основного действия (открытия лукап окошка), мне нужно добавить еще одно.

Как это можно реализовать?

Нравится

2 комментария
Лучший ответ

Антон, логика при открытии лукапа — в функции loadVocabulary схемы BaseSchemaViewModel:

		/**
		 * Open selection page from the directory or trying to add a record.
		 * @protected
		 * @param {Object} args Params.
		 * @param {Object} columnName Column name.
		 */
		loadVocabulary: function(args, columnName) {
			var multiLookupColumns = this.getMultiLookupColumns(columnName);
			var config = (Ext.isEmpty(multiLookupColumns))
				? this.getLookupPageConfig(args, columnName)
				: this.getMultiLookupPageConfig(args, columnName);
			this.openLookup(config, this.onLookupResult, this);
		},

Там проверяется наличие у колонок некоторого свойства (а именно multiLookupColumns) и если оно не пусто, запускается окно мультилукапа вместо обычного. То есть Вы можете переопределить, чтобы проверяло ещё какое-то свойства у поля на карточке и если оно есть, то произвести сохранение (например, при помощи отправки отсюда карточке команды на тихое сохранение через «песочницу»).

Антон, логика при открытии лукапа — в функции loadVocabulary схемы BaseSchemaViewModel:

		/**
		 * Open selection page from the directory or trying to add a record.
		 * @protected
		 * @param {Object} args Params.
		 * @param {Object} columnName Column name.
		 */
		loadVocabulary: function(args, columnName) {
			var multiLookupColumns = this.getMultiLookupColumns(columnName);
			var config = (Ext.isEmpty(multiLookupColumns))
				? this.getLookupPageConfig(args, columnName)
				: this.getMultiLookupPageConfig(args, columnName);
			this.openLookup(config, this.onLookupResult, this);
		},

Там проверяется наличие у колонок некоторого свойства (а именно multiLookupColumns) и если оно не пусто, запускается окно мультилукапа вместо обычного. То есть Вы можете переопределить, чтобы проверяло ещё какое-то свойства у поля на карточке и если оно есть, то произвести сохранение (например, при помощи отправки отсюда карточке команды на тихое сохранение через «песочницу»).

Благодарю, все работает)

Показать все комментарии