Добавляю в кнопку "Действие" свой пункт, все по фэн-шую, то есть SDK.
Вот фрагмент:
Type : "Terrasoft.MenuSeparator",
Caption : ""
}));
// Добавление пункта меню [Проверить заказ] в список действий страницы редактирования.
actionMenuItems.addItem(this.getActionsMenuItem({
// Привязка заголовка пункта меню к локализуемой строке схемы.
"Caption" : {
bindTo : "Resources.Strings.UsrCheckOrder"
},
Неожиданная проблема в том, что при первом запуске виден текст локализованной строки "Проверить заказ", а после отрабатывания процесса, или закрытии-открытии окна с заказами, текст пропадает, но пункт в меню все равно есть, и по нажатию на него отрабатывает процесс.
А текста не видно.. что нужно проверить? :(
Нравится
Здравствуйте, Алексей Владимирович.
Листинг кода предоставленный Вами верен и данное поведение наблюдаться не должно, предоставьте полный листинг кода схемы для проверки и поиска причины данного поведения.
Пожалуйста..
define("OrderPageV2", ["OrderPageV2Resources", "GeneralDetails", "ProcessModuleUtilities", "NotificationsModule"], function(resources, GeneralDetails, ProcessModuleUtilities, NotificationsModule) { return { entitySchemaName : "Order", details: /**SCHEMA_DETAILS*/{},/**SCHEMA_DETAILS*/ diff: /**SCHEMA_DIFF*/[],/**SCHEMA_DIFF*/ attributes: {}, methods: { getActions : function() { // Вызывается родительская реализация метода для получения // коллекции проинициализированных действий базовой страницы. var actionMenuItems = this.callParent(arguments); // Добавление линии сепаратора для визуального отделения пользовательского действия от списка // действий базовой страницы. actionMenuItems.addItem(this.getActionsMenuItem({ Type : "Terrasoft.MenuSeparator", Caption : "" })); // Добавление пункта меню [Проверить заказ] в список действий страницы редактирования. actionMenuItems.addItem(this.getActionsMenuItem({ // Привязка заголовка пункта меню к локализуемой строке схемы. "Caption" : { bindTo : "Resources.Strings.UsrCheckOrder" }, // Привязка метода обработчика действия. "Tag" : "CheckOrderPay" // Привязка свойства видимости пункта меню к значению, которое возвращает метод isAccountPrimaryContactSet. //"Visible": { bindTo: "isAccountPrimaryContactSet" } })); actionMenuItems.addItem(this.getActionsMenuItem({ Type : "Terrasoft.MenuSeparator", Caption : "" })); return actionMenuItems; }, // Метод-обработчик выбора действия. CheckOrderPay : function() { // Получение идентификатора заказа. var OrderId = this.get("Id"); // Объект, который будет передан в качестве аргумента в метод executeProcess. var args = { // Имя процесса, который необходимо запустить. sysProcessName : "UsrCheckOrder", // Объект со значением входящего параметра для процесса. parameters : { idOrder : OrderId } }; // Запуск пользовательского бизнес-процесса. ProcessModuleUtilities.executeProcess(args); //Terrasoft.configuration.NotificationsModule.onShowNewNotificationClick(); //this.Location.Reload(false); } }, rules : {}, userCode : {} }; });
В Resources.Strings.UsrCheckOrder Заголовок и значение одинаковы, Проверить заказ
Строчка с Visible закоментирована в точности как указано, но функции, указанной там, в теле схемы нет..
Здравствуйте, Алексей Владимирович.
Мы проанализировали Ваш код. Данное поведение возникает у Вас, по причине того, что используя статью http://academy.terrasoft.ru/documents/docs/technic/SDK/7.7.0/AddActionT… Вы не выполнили пункты начиная с 6-го. После добавления локализированной строки в OrderSectionV2 данная проблема возникать не будет.
Спасибо за анализ, но я не повторяю типовое задание, а делаю свое, и у меня нет необходимости контролировать видимость пункта в зависимости от статуса заказа.
При любом статусе кнопка видна, по задумке.
Сейчас ситуация такова:
1. Ctrl+F5
2. Создаю заказ. Текст пункта виден.
3. Сохраняю заказ.
4. Открываю на редактирование только что созданный заказ - текст не виден.
5. Ctrl+F5 и открываю заказ опять - текст виден.
6. Закрываю заказ кнопкой "Закрыть".
7. Открываю заказ, текст пункта не виден.
Я понимаю, что, возможно, я где-то что-то не так сделал. Мне интересно что делать дальше?
Сейчас вот подумалось, что надо сделать новую локализуемую строку и попробовать ее назначить вместо прежней. Сделаю, отпишусь.
Увы, ситуация не изменилась, текст пропадает.
data-item-marker и текст, с ним совпадающий, показывается только в первый раз после полной перезагрузки.
Попробую пересоздать замещающую схему.