From 93e0f2eb02d941442321b65ecab6538639a29546 Mon Sep 17 00:00:00 2001 From: Valentin Churekov Date: Fri, 19 Jul 2024 07:05:46 +0500 Subject: [PATCH 1/5] doc: lookup actions. --- .../3.x/components/ef3_flexberry-lookup.ru.md | 97 +++++++++++++++++-- 1 file changed, 90 insertions(+), 7 deletions(-) diff --git a/pages/products/flexberry-ember/3.x/components/ef3_flexberry-lookup.ru.md b/pages/products/flexberry-ember/3.x/components/ef3_flexberry-lookup.ru.md index e1af9811c..83ac630eb 100644 --- a/pages/products/flexberry-ember/3.x/components/ef3_flexberry-lookup.ru.md +++ b/pages/products/flexberry-ember/3.x/components/ef3_flexberry-lookup.ru.md @@ -388,13 +388,96 @@ export default EditFormController.extend({ Если необходима дополнительная логика при изменении значения лукапа, то в контроллере формы, на которой расположен лукап, следует переопределить экшен `updateLookupValue`: ```js - actions: { - updateLookupValue() { - // Базовая логика - this._super(...arguments); +actions: { + updateLookupValue(updateData) { + // Базовая логика + this._super(...arguments); + + // Дополнительная логика + // ... + } +} +``` + +Объект `updateData` имеет формат: +```js +{ + relationName: /* Значение атрибута relationName. Название связи в модели, куда записывается выбранное значение. */, + modelToLookup: /* Значение атрибута relatedModel. Модель, чей атрибут отображает данный компонент. */, + newRelationValue: /* Значение атрибута value. Новое значение мастера. */, + componentName: /* Значение атрибута componentName. Имя компонента. */ +} +``` + +Данное событие срабатывает каждый раз когда меняется значение атрибута `value` лукапа: +- Выбор значения в лукапе; +- Выбор значения по autocomplete; +- Выбор значения в DropDown режиме. + +## Возможность переопределить поведение при очистке значения лукапа + +Если необходима дополнительная логика при очистке значения лукапа, то в в лукапе следует указать событие или функцию в свойстве `remove`. Обычно это `removeLookupValue`: + +```js +{{flexberry-lookup + ... + remove="removeLookupValue" + ... +}} +``` + +Тогда функция будет выглядеть так: - // Дополнительная логика - // ... +```js +removeLookupValue(removeData) { + // Дополнительная логика + // ... +} +``` + +Объект `removeData` имеет формат: +```js +{ + relationName: /* Значение атрибута relationName. Название связи в модели, куда записывается выбранное значение. */, + modelToLookup: /* Значение атрибута relatedModel. Модель, чей атрибут отображает данный компонент. */ +} +``` + +Данное событие срабатывает каждый раз когда очищается значение атрибута `value` лукапа: +- Очистка значения в лукапе. Например по кнопке "Очистить"; +- Выбор значения по autocomplete, которое не соответствует никакому объекту лукапа; + +## Настройка событий лукапа для groupEdit + +Для возможности настройки событий лукапа, находящегося внутри `flexberry-gropedit`, необъодимо в контроллер добавить метод `getCellComponent`. + +Пример: + +```js +getCellComponent(attr, bindingPath, model) { + let cellComponent = this._super(...arguments); + + // Признак мастеровой связи. + if (attr.kind === 'belongsTo') { + let updateLookupValue = this.get('actions.updateLookupValue').bind(this); + + switch (`${model.modelName}+${bindingPath}`) { + // ${Имя модели лукапа}+${Имя свойства, которое редактирует лукап} + case 'test-project-test-model+testAttr': + cellComponent.componentProperties = { + ... + remove: 'removeLookupValue', + updateLookupValue: updateLookupValue + ... + }; + break; + + ... } } - ``` + + ... + + return cellComponent; +}, +``` \ No newline at end of file From 08164f30a88ae310023cf31633b0902a23f590e2 Mon Sep 17 00:00:00 2001 From: Svetlana Date: Wed, 28 Aug 2024 02:05:02 +0500 Subject: [PATCH 2/5] code review --- .../3.x/components/ef3_flexberry-lookup.ru.md | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/pages/products/flexberry-ember/3.x/components/ef3_flexberry-lookup.ru.md b/pages/products/flexberry-ember/3.x/components/ef3_flexberry-lookup.ru.md index 83ac630eb..1f0d83df8 100644 --- a/pages/products/flexberry-ember/3.x/components/ef3_flexberry-lookup.ru.md +++ b/pages/products/flexberry-ember/3.x/components/ef3_flexberry-lookup.ru.md @@ -400,6 +400,7 @@ actions: { ``` Объект `updateData` имеет формат: + ```js { relationName: /* Значение атрибута relationName. Название связи в модели, куда записывается выбранное значение. */, @@ -410,20 +411,21 @@ actions: { ``` Данное событие срабатывает каждый раз когда меняется значение атрибута `value` лукапа: -- Выбор значения в лукапе; -- Выбор значения по autocomplete; -- Выбор значения в DropDown режиме. + +* Выбор значения в лукапе; +* Выбор значения по autocomplete; +* Выбор значения в DropDown режиме. ## Возможность переопределить поведение при очистке значения лукапа Если необходима дополнительная логика при очистке значения лукапа, то в в лукапе следует указать событие или функцию в свойстве `remove`. Обычно это `removeLookupValue`: ```js -{{flexberry-lookup +{% raw %}{{flexberry-lookup ... remove="removeLookupValue" ... -}} +}}{% endraw %} ``` Тогда функция будет выглядеть так: @@ -436,6 +438,7 @@ removeLookupValue(removeData) { ``` Объект `removeData` имеет формат: + ```js { relationName: /* Значение атрибута relationName. Название связи в модели, куда записывается выбранное значение. */, @@ -444,8 +447,9 @@ removeLookupValue(removeData) { ``` Данное событие срабатывает каждый раз когда очищается значение атрибута `value` лукапа: -- Очистка значения в лукапе. Например по кнопке "Очистить"; -- Выбор значения по autocomplete, которое не соответствует никакому объекту лукапа; + +* Очистка значения в лукапе. Например по кнопке "Очистить"; +* Выбор значения по autocomplete, которое не соответствует никакому объекту лукапа; ## Настройка событий лукапа для groupEdit @@ -480,4 +484,4 @@ getCellComponent(attr, bindingPath, model) { return cellComponent; }, -``` \ No newline at end of file +``` From 72fd84d4ed41d428f1574dd64b53b6ff5c513c42 Mon Sep 17 00:00:00 2001 From: Valentin Churekov Date: Fri, 25 Oct 2024 15:42:28 +0500 Subject: [PATCH 3/5] Update pages/products/flexberry-ember/3.x/components/ef3_flexberry-lookup.ru.md Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --- .../flexberry-ember/3.x/components/ef3_flexberry-lookup.ru.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/products/flexberry-ember/3.x/components/ef3_flexberry-lookup.ru.md b/pages/products/flexberry-ember/3.x/components/ef3_flexberry-lookup.ru.md index 1f0d83df8..61be44019 100644 --- a/pages/products/flexberry-ember/3.x/components/ef3_flexberry-lookup.ru.md +++ b/pages/products/flexberry-ember/3.x/components/ef3_flexberry-lookup.ru.md @@ -418,7 +418,7 @@ actions: { ## Возможность переопределить поведение при очистке значения лукапа -Если необходима дополнительная логика при очистке значения лукапа, то в в лукапе следует указать событие или функцию в свойстве `remove`. Обычно это `removeLookupValue`: +Если необходима дополнительная логика при очистке значения лукапа, то в лукапе следует указать событие или функцию в свойстве `remove`. Обычно это `removeLookupValue`: ```js {% raw %}{{flexberry-lookup From 4bd212255ea2499885397a6cd523e6f5aa792e87 Mon Sep 17 00:00:00 2001 From: Valentin Churekov Date: Fri, 25 Oct 2024 15:42:49 +0500 Subject: [PATCH 4/5] Update pages/products/flexberry-ember/3.x/components/ef3_flexberry-lookup.ru.md Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --- .../flexberry-ember/3.x/components/ef3_flexberry-lookup.ru.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/products/flexberry-ember/3.x/components/ef3_flexberry-lookup.ru.md b/pages/products/flexberry-ember/3.x/components/ef3_flexberry-lookup.ru.md index 61be44019..86ec851fe 100644 --- a/pages/products/flexberry-ember/3.x/components/ef3_flexberry-lookup.ru.md +++ b/pages/products/flexberry-ember/3.x/components/ef3_flexberry-lookup.ru.md @@ -448,7 +448,7 @@ removeLookupValue(removeData) { Данное событие срабатывает каждый раз когда очищается значение атрибута `value` лукапа: -* Очистка значения в лукапе. Например по кнопке "Очистить"; +* Очистка значения в лукапе. Например, по кнопке "Очистить"; * Выбор значения по autocomplete, которое не соответствует никакому объекту лукапа; ## Настройка событий лукапа для groupEdit From 557e2fa2fa469a9bd117010f1c32a223c7834765 Mon Sep 17 00:00:00 2001 From: Valentin Churekov Date: Fri, 25 Oct 2024 15:43:03 +0500 Subject: [PATCH 5/5] Update pages/products/flexberry-ember/3.x/components/ef3_flexberry-lookup.ru.md Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --- .../flexberry-ember/3.x/components/ef3_flexberry-lookup.ru.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/products/flexberry-ember/3.x/components/ef3_flexberry-lookup.ru.md b/pages/products/flexberry-ember/3.x/components/ef3_flexberry-lookup.ru.md index 86ec851fe..8719ba0c3 100644 --- a/pages/products/flexberry-ember/3.x/components/ef3_flexberry-lookup.ru.md +++ b/pages/products/flexberry-ember/3.x/components/ef3_flexberry-lookup.ru.md @@ -453,7 +453,7 @@ removeLookupValue(removeData) { ## Настройка событий лукапа для groupEdit -Для возможности настройки событий лукапа, находящегося внутри `flexberry-gropedit`, необъодимо в контроллер добавить метод `getCellComponent`. +Для возможности настройки событий лукапа, находящегося внутри `flexberry-gropedit`, необходимо в контроллер добавить метод `getCellComponent`. Пример: