Добрый день!

Подскажите, как добавить в кнопку действие для контрагента раскрывающееся меню. Получается добавить только кнопку таким образом:

actionMenuItems.addItem(this.getButtonMenuItem({.......}})

Нравится

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

создаёте набор подпунктов меню:



var subMenuItems = this.Ext.create("Terrasoft.BaseViewModelCollection");

var subMenuCaption = "Test";



subMenuItems.addItem(this.getButtonMenuItem({

                   Caption: "sub test 1",

                   Click: {"bindTo": "subTest1Click"}

                    }));

subMenuItems.addItem(this.getButtonMenuItem({

                   Caption: "sub test 2",

                   Click: {"bindTo": "subTest2Click"}

                    }));



А затем весь набор в действия:



var subMenuItem = this.Ext.create("Terrasoft.BaseViewModel", {

                    values: {

                        Caption: subMenuCaption,

                        Id: this.Terrasoft.generateGUID(),

                        Items: subMenuItems,

                        MarkerValue: subMenuCaption

                    }

                });



 actionMenuItems.addItem(subMenuItem);

создаёте набор подпунктов меню:



var subMenuItems = this.Ext.create("Terrasoft.BaseViewModelCollection");

var subMenuCaption = "Test";



subMenuItems.addItem(this.getButtonMenuItem({

                   Caption: "sub test 1",

                   Click: {"bindTo": "subTest1Click"}

                    }));

subMenuItems.addItem(this.getButtonMenuItem({

                   Caption: "sub test 2",

                   Click: {"bindTo": "subTest2Click"}

                    }));



А затем весь набор в действия:



var subMenuItem = this.Ext.create("Terrasoft.BaseViewModel", {

                    values: {

                        Caption: subMenuCaption,

                        Id: this.Terrasoft.generateGUID(),

                        Items: subMenuItems,

                        MarkerValue: subMenuCaption

                    }

                });



 actionMenuItems.addItem(subMenuItem);

Владимир Соколов,

 спасибо большое!

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

Есть хеш логотипа компании. Пробую вывести изображение на сайте по URL https://epo.bpmonline.com/0/img/entity/hash/SysImage/Data/MYHASH, но там 401 ошибка (доступ запрещен). Как можно этот доступ разрешить? Или может есть другой способ вывести лого компании на сайта?

Нравится

1 комментарий

Возможно, будет достаточно просто сначала залогиниться на сайте bpm'online через веб-форму логина. Если после этого по URL грузится нужное изображение, то стоит в серверной логике Вашего сайта логиниться программно через AuthService и далее работать с выданной кукой.

Если же и логин не поможет, то этот придётся разрабатывать отдельный веб-сервис именно для выдачи этих изображений.

Вообще, каждый раз тянуть из bpm'online картинки для сайта, доступного извне — плохая идея, потенциальная уязвимость при DDOS-е. Лучше кешировать.

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

На форуме не нашел, решил написать.
Проблема такая:
-В расширенном модуле AccountSectionV2 нужно по нажатию кнопки еще проставлять true на галку.
При создание нового account(а именно на page) все без проблем "завелось", проблема встала именно на section, при редактирование из клиентской части уже имеющегося юр.лица.

Как я понял нужно использовать esq, т.к. this.set("bool",true); не работает, но не нашел как устанавливать значения через esq. Быть может надо по другому. Помогите пожалуйста.

define("AccountSectionV2", [],
        function() {
        return {
                entitySchemaName: "Account",
            // Коллекция методов модели представления страницы редактирования.
            methods: {
                                getChainCardModuleSandboxId: function(typeColumnValue) {
                                        return this.getCardModuleSandboxId() + "_chain" + typeColumnValue;
                                },
                                showExistingRecordSaveButton: function() {
                                        this.set("IsSendToFlextera", true);
                                        return this.get("IsCardInEditMode") && this.get("ShowSaveButton");
                                       
                                },
                                onClickSaveToFlex: function() {
                                   this.set("IsSendToFlextera", true);
                                        var tag = arguments[0] || arguments[3];
                                        this.sandbox.publish("OnCardAction", tag, [this.getCardModuleSandboxId()]);
                                       
                                }
                        },
                               
                        diff: [
                {
                                        "operation": "insert",
                                        "name": "FlexsaveRecordButton",
                                        "parentName": "CombinedModeActionButtonsCardLeftContainer",
                                        "propertyName": "items",
                                        "values": {
                                                "itemType": Terrasoft.ViewItemType.BUTTON,
                                                "caption": {"bindTo": "Resources.Strings.SaveToFlexteraCaption"},
                                                "click": {"bindTo": "IsSendToFlextera"},//"onClickSaveToFlex"},
                                                "visible": {"bindTo": "showExistingRecordSaveButton"},
                                                "classes": {"textClass": ["actions-button-margin-right"]},
                                                "tag": "save"
                                        }
                                }
            ]
                 
         };
        });

Нравится

1 комментарий

Максим, добрый день!

Если колонка, для которой необходимо установить значение, есть среди колонок активной строки, можно попробовать сохранять активную строку:

var activeRow = this.getActiveRow();
activeRow.set("YourColumnName", columnValue);
activeRow.saveEntity();

Для работы этого кода необходимо, чтобы в коллекции activeRow.columns была колонка с названием YourColumnName и типом Terrasoft.ViewModelColumnType.ENTITY_COLUMN (данная константа равняется 0).

Также обновление значения можно выполнить через запрос примерно так:

var updateQuery = this.Ext.create("Terrasoft.UpdateQuery", {
	rootSchemaName: "EntitySchemaName"
});
var filters = updateQuery.filters;
filters.addItem(this.Terrasoft.createColumnFilterWithParameter(
	this.Terrasoft.ComparisonType.EQUAL, "Id", currentRecordId));
updateQuery.setParameterValue("YourColumnName", columnValue);
updateQuery.execute(callbackFunction, this);
Показать все комментарии