From 365d200fc01001eaede9035d26a80b241a49a008 Mon Sep 17 00:00:00 2001 From: Evgenii Kolosov Date: Fri, 28 Mar 2025 18:46:39 +0100 Subject: [PATCH 01/14] VCST-2980: Copy UI blade functionality --- .../Localizations/en.OrderManagement.json | 6 + .../Scripts/module.js | 107 ++++++++++++------ .../VirtoCommerce.OrderManagement.Web.csproj | 12 ++ .../module.manifest | 6 +- 4 files changed, 96 insertions(+), 35 deletions(-) diff --git a/src/VirtoCommerce.OrderManagement.Web/Localizations/en.OrderManagement.json b/src/VirtoCommerce.OrderManagement.Web/Localizations/en.OrderManagement.json index 392c403..8a1e9db 100644 --- a/src/VirtoCommerce.OrderManagement.Web/Localizations/en.OrderManagement.json +++ b/src/VirtoCommerce.OrderManagement.Web/Localizations/en.OrderManagement.json @@ -4,6 +4,12 @@ "hello-world": { "title": "Hello world blade" } + }, + "commands": { + "new-document": "New document", + "cancel-document": "Cancel document", + "add-selected": "Add selected", + "add-item": "Add item" } }, "permissions": { diff --git a/src/VirtoCommerce.OrderManagement.Web/Scripts/module.js b/src/VirtoCommerce.OrderManagement.Web/Scripts/module.js index 6c9c597..6dec304 100644 --- a/src/VirtoCommerce.OrderManagement.Web/Scripts/module.js +++ b/src/VirtoCommerce.OrderManagement.Web/Scripts/module.js @@ -6,38 +6,81 @@ if (AppDependencies !== undefined) { } angular.module(moduleName, []) - .config(['$stateProvider', - function ($stateProvider) { - $stateProvider - .state('workspace.OrderManagementState', { - url: '/OrderManagement', - templateUrl: '$(Platform)/Scripts/common/templates/home.tpl.html', - controller: [ - 'platformWebApp.bladeNavigationService', - function (bladeNavigationService) { - var newBlade = { - id: 'blade1', - controller: 'OrderManagement.helloWorldController', - template: 'Modules/$(VirtoCommerce.OrderManagement)/Scripts/blades/hello-world.html', - isClosingDisabled: true, - }; - bladeNavigationService.showBlade(newBlade); - } - ] - }); - } - ]) - .run(['platformWebApp.mainMenuService', '$state', - function (mainMenuService, $state) { +// .config(['$stateProvider', +// function ($stateProvider) { +// $stateProvider +// .state('workspace.OrderManagementState', { +// url: '/OrderManagement', +// templateUrl: '$(Platform)/Scripts/common/templates/home.tpl.html', +// controller: [ +// 'platformWebApp.bladeNavigationService', +// function (bladeNavigationService) { +// var newBlade = { +// id: 'blade1', +// controller: 'OrderManagement.helloWorldController', +// template: 'Modules/$(VirtoCommerce.OrderManagement)/Scripts/blades/hello-world.html', +// isClosingDisabled: true, +// }; +// bladeNavigationService.showBlade(newBlade); +// } +// ] +// }); +// } +// ]) + .run(['platformWebApp.mainMenuService', '$state', 'platformWebApp.toolbarService', 'platformWebApp.bladeNavigationService', + function (mainMenuService, $state, toolbarService, bladeNavigationService) { //Register module in main menu - var menuItem = { - path: 'browse/OrderManagement', - icon: 'fa fa-cube', - title: 'OrderManagement', - priority: 100, - action: function () { $state.go('workspace.OrderManagementState'); }, - permission: 'OrderManagement:access', - }; - mainMenuService.addMenuItem(menuItem); +// var menuItem = { +// path: 'browse/OrderManagement', +// icon: 'fa fa-cube', +// title: 'OrderManagement', +// priority: 100, +// action: function () { $state.go('workspace.OrderManagementState'); }, +// permission: 'OrderManagement:access', +// }; +// mainMenuService.addMenuItem(menuItem); + + toolbarService.register({ + name: "OrderManagement.commands.add-item", + icon: 'fas fa-plus', + executeMethod: function () { + var bladeAddItem = { + id: 'bladeAddItem', + controller: 'OrderManagement.helloWorldController', + template: 'Modules/$(VirtoCommerce.OrderManagement)/Scripts/blades/hello-world.html' + }; + bladeNavigationService.showBlade(bladeAddItem); + }, + canExecuteMethod: function (blade) { + return blade.currentEntity.operationType === 'CustomerOrder'; + }, + permission: 'order:update', + index: 0 + }, 'virtoCommerce.orderModule.customerOrderItemsController'); + + toolbarService.register({ + name: "platform.commands.remove", + icon: 'fas fa-trash-alt', + executeMethod: function (blade) { + var lineItems = blade.currentEntity.items; + var selectedLineItems = _.filter(lineItems, function (x) { return x.selected; }); + + if (blade.selectedNodeId >= 0) { + var selectedNode = lineItems[blade.selectedNodeId]; + if (selectedNode && _.some(selectedLineItems, lineItem => selectedNode.id === lineItem.id)) { + bladeNavigationService.closeChildrenBlades(blade); + } + } + + blade.currentEntity.items = _.difference(lineItems, selectedLineItems); + blade.selectedAll = false; + blade.recalculateFn(); + }, + canExecuteMethod: function (blade) { + return _.any(blade.currentEntity.items, function (x) { return x.selected; }); + }, + permission: 'order:update', + index: 1 + }, 'virtoCommerce.orderModule.customerOrderItemsController'); } ]); diff --git a/src/VirtoCommerce.OrderManagement.Web/VirtoCommerce.OrderManagement.Web.csproj b/src/VirtoCommerce.OrderManagement.Web/VirtoCommerce.OrderManagement.Web.csproj index 0b85e01..1deb8e6 100644 --- a/src/VirtoCommerce.OrderManagement.Web/VirtoCommerce.OrderManagement.Web.csproj +++ b/src/VirtoCommerce.OrderManagement.Web/VirtoCommerce.OrderManagement.Web.csproj @@ -1,12 +1,24 @@ net8.0 + true + 1591 + False Library false + + + + + + + + + diff --git a/src/VirtoCommerce.OrderManagement.Web/module.manifest b/src/VirtoCommerce.OrderManagement.Web/module.manifest index 974cc53..9e810fc 100644 --- a/src/VirtoCommerce.OrderManagement.Web/module.manifest +++ b/src/VirtoCommerce.OrderManagement.Web/module.manifest @@ -6,11 +6,11 @@ 3.876.0 - + - VirtoCommerce OrderManagement module - VirtoCommerce OrderManagement module + New Order Management + Functionality for editing the composition of orders. Evgenii Kolosov From 65fcf7d16fcc4dccc846632867cc7f89ffe7dca3 Mon Sep 17 00:00:00 2001 From: Evgenii Kolosov Date: Tue, 1 Apr 2025 10:44:57 +0200 Subject: [PATCH 02/14] VCST-2980: Add/delete line item full functionality --- .../ModuleConstants.cs | 10 +- .../Localizations/en.OrderManagement.json | 21 +-- .../Scripts/blades/hello-world.html | 2 +- .../Scripts/blades/hello-world.js | 25 ++-- .../Scripts/module.js | 80 +---------- .../Scripts/resources/order-management-api.js | 4 +- .../extending-order-module-service.js | 130 ++++++++++++++++++ 7 files changed, 167 insertions(+), 105 deletions(-) create mode 100644 src/VirtoCommerce.OrderManagement.Web/Scripts/services/extending-order-module-service.js diff --git a/src/VirtoCommerce.OrderManagement.Core/ModuleConstants.cs b/src/VirtoCommerce.OrderManagement.Core/ModuleConstants.cs index 414302e..dc502f1 100644 --- a/src/VirtoCommerce.OrderManagement.Core/ModuleConstants.cs +++ b/src/VirtoCommerce.OrderManagement.Core/ModuleConstants.cs @@ -9,11 +9,11 @@ public static class Security { public static class Permissions { - public const string Access = "OrderManagement:access"; - public const string Create = "OrderManagement:create"; - public const string Read = "OrderManagement:read"; - public const string Update = "OrderManagement:update"; - public const string Delete = "OrderManagement:delete"; + public const string Access = "orderManagement:access"; + public const string Create = "orderManagement:create"; + public const string Read = "orderManagement:read"; + public const string Update = "orderManagement:update"; + public const string Delete = "orderManagement:delete"; public static string[] AllPermissions { get; } = [ diff --git a/src/VirtoCommerce.OrderManagement.Web/Localizations/en.OrderManagement.json b/src/VirtoCommerce.OrderManagement.Web/Localizations/en.OrderManagement.json index 8a1e9db..2e9091c 100644 --- a/src/VirtoCommerce.OrderManagement.Web/Localizations/en.OrderManagement.json +++ b/src/VirtoCommerce.OrderManagement.Web/Localizations/en.OrderManagement.json @@ -1,29 +1,30 @@ { - "OrderManagement": { + "orderManagement": { "blades": { "hello-world": { "title": "Hello world blade" + }, + "catalog-items-select": { + "title": "Add item to order" } }, "commands": { - "new-document": "New document", - "cancel-document": "Cancel document", "add-selected": "Add selected", "add-item": "Add item" } }, "permissions": { - "OrderManagement:access": "Open OrderManagement menu", - "OrderManagement:create": "Create OrderManagement related data", - "OrderManagement:read": "View OrderManagement related data", - "OrderManagement:update": "Update OrderManagement related data", - "OrderManagement:delete": "Delete OrderManagement related data" + "orderManagement:access": "Open OrderManagement menu", + "orderManagement:create": "Create OrderManagement related data", + "orderManagement:read": "View OrderManagement related data", + "orderManagement:update": "Update OrderManagement related data", + "orderManagement:delete": "Delete OrderManagement related data" }, "settings": { "OrderManagement": { "Enabled": { - "title": "OrderManagement Enabled", - "description": "OrderManagement Enabled setting" + "title": "Order Management", + "description": "Enabling order management functionality" } } } diff --git a/src/VirtoCommerce.OrderManagement.Web/Scripts/blades/hello-world.html b/src/VirtoCommerce.OrderManagement.Web/Scripts/blades/hello-world.html index a8d9856..851f3ee 100644 --- a/src/VirtoCommerce.OrderManagement.Web/Scripts/blades/hello-world.html +++ b/src/VirtoCommerce.OrderManagement.Web/Scripts/blades/hello-world.html @@ -1,7 +1,7 @@
-
{{blade.data}}
+
\ No newline at end of file diff --git a/src/VirtoCommerce.OrderManagement.Web/Scripts/blades/hello-world.js b/src/VirtoCommerce.OrderManagement.Web/Scripts/blades/hello-world.js index 5c3584b..067f733 100644 --- a/src/VirtoCommerce.OrderManagement.Web/Scripts/blades/hello-world.js +++ b/src/VirtoCommerce.OrderManagement.Web/Scripts/blades/hello-world.js @@ -1,15 +1,16 @@ -angular.module('OrderManagement') - .controller('OrderManagement.helloWorldController', ['$scope', 'OrderManagement.webApi', function ($scope, api) { +angular.module('virtoCommerce.orderManagement') + .controller('virtoCommerce.orderManagement.helloWorldController', ['$scope', function ($scope) { var blade = $scope.blade; - blade.title = 'OrderManagement'; + blade.title = 'orderManagement.blades.hello-world.title'; + blade.isLoading = false; - blade.refresh = function () { - api.get(function (data) { - blade.title = 'OrderManagement.blades.hello-world.title'; - blade.data = data.result; - blade.isLoading = false; - }); - }; - - blade.refresh(); +// blade.refresh = function () { +//// api.get(function (data) { +// blade.title = 'OrderManagement.blades.hello-world.title'; +//// blade.data = data.result; +// blade.isLoading = false; +//// }); +// }; +// +// blade.refresh(); }]); diff --git a/src/VirtoCommerce.OrderManagement.Web/Scripts/module.js b/src/VirtoCommerce.OrderManagement.Web/Scripts/module.js index 6dec304..a3a592b 100644 --- a/src/VirtoCommerce.OrderManagement.Web/Scripts/module.js +++ b/src/VirtoCommerce.OrderManagement.Web/Scripts/module.js @@ -1,86 +1,16 @@ // Call this to register your module to main application -var moduleName = 'OrderManagement'; +var moduleName = 'virtoCommerce.orderManagement'; if (AppDependencies !== undefined) { AppDependencies.push(moduleName); } angular.module(moduleName, []) -// .config(['$stateProvider', -// function ($stateProvider) { -// $stateProvider -// .state('workspace.OrderManagementState', { -// url: '/OrderManagement', -// templateUrl: '$(Platform)/Scripts/common/templates/home.tpl.html', -// controller: [ -// 'platformWebApp.bladeNavigationService', -// function (bladeNavigationService) { -// var newBlade = { -// id: 'blade1', -// controller: 'OrderManagement.helloWorldController', -// template: 'Modules/$(VirtoCommerce.OrderManagement)/Scripts/blades/hello-world.html', -// isClosingDisabled: true, -// }; -// bladeNavigationService.showBlade(newBlade); -// } -// ] -// }); -// } -// ]) - .run(['platformWebApp.mainMenuService', '$state', 'platformWebApp.toolbarService', 'platformWebApp.bladeNavigationService', - function (mainMenuService, $state, toolbarService, bladeNavigationService) { - //Register module in main menu -// var menuItem = { -// path: 'browse/OrderManagement', -// icon: 'fa fa-cube', -// title: 'OrderManagement', -// priority: 100, -// action: function () { $state.go('workspace.OrderManagementState'); }, -// permission: 'OrderManagement:access', -// }; -// mainMenuService.addMenuItem(menuItem); + .run(['platformWebApp.toolbarService', 'virtoCommerce.orderManagement.extendingOrderModuleService', + function (toolbarService, extendingOrderModuleService) { - toolbarService.register({ - name: "OrderManagement.commands.add-item", - icon: 'fas fa-plus', - executeMethod: function () { - var bladeAddItem = { - id: 'bladeAddItem', - controller: 'OrderManagement.helloWorldController', - template: 'Modules/$(VirtoCommerce.OrderManagement)/Scripts/blades/hello-world.html' - }; - bladeNavigationService.showBlade(bladeAddItem); - }, - canExecuteMethod: function (blade) { - return blade.currentEntity.operationType === 'CustomerOrder'; - }, - permission: 'order:update', - index: 0 - }, 'virtoCommerce.orderModule.customerOrderItemsController'); + toolbarService.register(extendingOrderModuleService.getAddItemButtonInstance(), 'virtoCommerce.orderModule.customerOrderItemsController'); - toolbarService.register({ - name: "platform.commands.remove", - icon: 'fas fa-trash-alt', - executeMethod: function (blade) { - var lineItems = blade.currentEntity.items; - var selectedLineItems = _.filter(lineItems, function (x) { return x.selected; }); - - if (blade.selectedNodeId >= 0) { - var selectedNode = lineItems[blade.selectedNodeId]; - if (selectedNode && _.some(selectedLineItems, lineItem => selectedNode.id === lineItem.id)) { - bladeNavigationService.closeChildrenBlades(blade); - } - } - - blade.currentEntity.items = _.difference(lineItems, selectedLineItems); - blade.selectedAll = false; - blade.recalculateFn(); - }, - canExecuteMethod: function (blade) { - return _.any(blade.currentEntity.items, function (x) { return x.selected; }); - }, - permission: 'order:update', - index: 1 - }, 'virtoCommerce.orderModule.customerOrderItemsController'); + toolbarService.register(extendingOrderModuleService.getRemoveItemButtonInstance(), 'virtoCommerce.orderModule.customerOrderItemsController'); } ]); diff --git a/src/VirtoCommerce.OrderManagement.Web/Scripts/resources/order-management-api.js b/src/VirtoCommerce.OrderManagement.Web/Scripts/resources/order-management-api.js index 79a3e02..9a9d809 100644 --- a/src/VirtoCommerce.OrderManagement.Web/Scripts/resources/order-management-api.js +++ b/src/VirtoCommerce.OrderManagement.Web/Scripts/resources/order-management-api.js @@ -1,4 +1,4 @@ -angular.module('OrderManagement') - .factory('OrderManagement.webApi', ['$resource', function ($resource) { +angular.module('virtoCommerce.orderManagement') + .factory('virtoCommerce.orderManagement.orderManagementApi', ['$resource', function ($resource) { return $resource('api/order-management'); }]); diff --git a/src/VirtoCommerce.OrderManagement.Web/Scripts/services/extending-order-module-service.js b/src/VirtoCommerce.OrderManagement.Web/Scripts/services/extending-order-module-service.js new file mode 100644 index 0000000..b721cc9 --- /dev/null +++ b/src/VirtoCommerce.OrderManagement.Web/Scripts/services/extending-order-module-service.js @@ -0,0 +1,130 @@ +angular.module('virtoCommerce.orderManagement') + .factory('virtoCommerce.orderManagement.extendingOrderModuleService', ['platformWebApp.bladeNavigationService', 'virtoCommerce.orderModule.catalogItems', 'virtoCommerce.orderModule.prices', + function (bladeNavigationService, catalogItemsApi, pricesApi) { + var selectedProducts = []; + + function openAddItemWizard(orderBlade) { + var options = { + checkItemFn: function (listItem, isSelected) { + if (isSelected) { + if (_.all(selectedProducts, function (x) { return x.id !== listItem.id; })) { + selectedProducts.push(listItem); + } + } + else { + selectedProducts = _.reject(selectedProducts, function (x) { return x.id === listItem.id; }); + } + } + }; + + var newBlade = { + id: "CatalogItemsSelect", + controller: 'virtoCommerce.catalogModule.catalogItemSelectController', + template: 'Modules/$(VirtoCommerce.Catalog)/Scripts/blades/common/catalog-items-select.tpl.html', + title: "orderManagement.blades.catalog-items-select.title", + currentEntities: orderBlade.currentEntity, + options: options, + breadcrumbs: [], + toolbarCommands: [ + { + name: "orderManagement.commands.add-selected", icon: 'fas fa-plus', + executeMethod: function (blade) { + addProductsToOrder(selectedProducts, orderBlade); + selectedProducts.length = 0; + bladeNavigationService.closeBlade(blade); + }, + canExecuteMethod: function () { + return selectedProducts.length > 0; + } + }] + }; + + bladeNavigationService.showBlade(newBlade, orderBlade); + } + + function addProductsToOrder(products, blade) { + angular.forEach(products, function (product) { + catalogItemsApi.get({ id: product.id }, function (data) { + pricesApi.getProductPrices({ id: product.id }, function (prices) { + var price = _.find(prices, function (x) { return x.currency === blade.currentEntity.currency }); + + var newLineItem = + { + productId: data.id, + catalogId: data.catalogId, + categoryId: data.categoryId, + name: data.name, + imageUrl: data.imgSrc, + sku: data.code, + quantity: 1, + price: price && price.list ? price.list : 0, + discountAmount: price && price.list && price.sale ? price.list - price.sale : 0, + currency: blade.currentEntity.currency + }; + blade.currentEntity.items.push(newLineItem); + blade.recalculateFn(); + }, function (error) { + if (error.status == 404) { + // Seems no pricing module installed. + // Just add lineitem with zero price. + var newLineItem = + { + productId: data.id, + catalogId: data.catalogId, + categoryId: data.categoryId, + name: data.name, + imageUrl: data.imgSrc, + sku: data.code, + quantity: 1, + price: 0, + discountAmount: 0, + currency: blade.currentEntity.currency + }; + blade.currentEntity.items.push(newLineItem); + blade.recalculateFn(); + } + + }); + }); + }); + } + + return { + getAddItemButtonInstance: () => angular.copy({ + name: "orderManagement.commands.add-item", + icon: 'fas fa-plus', + executeMethod: function(blade) { + openAddItemWizard(blade); + }, + canExecuteMethod: function (blade) { + return blade.currentEntity.operationType === 'CustomerOrder'; + }, + permission: 'order:update', + index: 0 + }), + getRemoveItemButtonInstance: () => angular.copy({ + name: "platform.commands.remove", + icon: 'fas fa-trash-alt', + executeMethod: function (blade) { + var lineItems = blade.currentEntity.items; + var selectedLineItems = _.filter(lineItems, function (x) { return x.selected; }); + + if (blade.selectedNodeId >= 0) { + var selectedNode = lineItems[blade.selectedNodeId]; + if (selectedNode && _.some(selectedLineItems, lineItem => selectedNode.id === lineItem.id)) { + bladeNavigationService.closeChildrenBlades(blade); + } + } + + blade.currentEntity.items = _.difference(lineItems, selectedLineItems); + blade.selectedAll = false; + blade.recalculateFn(); + }, + canExecuteMethod: function (blade) { + return _.any(blade.currentEntity.items, function (x) { return x.selected; }); + }, + permission: 'order:update', + index: 1 + }) + }; + }]); From f7ebdb6a576580e5cca4491cc9aaee06536d1d92 Mon Sep 17 00:00:00 2001 From: Evgenii Kolosov Date: Tue, 1 Apr 2025 11:48:32 +0200 Subject: [PATCH 03/14] VCST-2980: Add localization and final clearing --- .../ModuleConstants.cs | 10 +--------- .../Api/OrderManagementController.cs | 2 +- .../de.VirtoCommerce.OrderManagemen.json | 20 +++++++++++++++++++ ... => en.VirtoCommerce.OrderManagement.json} | 11 ---------- .../es.VirtoCommerce.OrderManagemen.json | 20 +++++++++++++++++++ .../fr.VirtoCommerce.OrderManagemen.json | 20 +++++++++++++++++++ .../it.VirtoCommerce.OrderManagemen.json | 20 +++++++++++++++++++ .../ja.VirtoCommerce.OrderManagemen.json | 20 +++++++++++++++++++ .../pl.VirtoCommerce.OrderManagemen.json | 20 +++++++++++++++++++ .../pt.VirtoCommerce.OrderManagemen.json | 20 +++++++++++++++++++ .../ru.VirtoCommerce.OrderManagemen.json | 20 +++++++++++++++++++ .../zh.VirtoCommerce.OrderManagemen.json | 20 +++++++++++++++++++ .../Scripts/blades/.keep | 0 .../Scripts/blades/hello-world.html | 7 ------- .../Scripts/blades/hello-world.js | 16 --------------- 15 files changed, 182 insertions(+), 44 deletions(-) create mode 100644 src/VirtoCommerce.OrderManagement.Web/Localizations/de.VirtoCommerce.OrderManagemen.json rename src/VirtoCommerce.OrderManagement.Web/Localizations/{en.OrderManagement.json => en.VirtoCommerce.OrderManagement.json} (69%) create mode 100644 src/VirtoCommerce.OrderManagement.Web/Localizations/es.VirtoCommerce.OrderManagemen.json create mode 100644 src/VirtoCommerce.OrderManagement.Web/Localizations/fr.VirtoCommerce.OrderManagemen.json create mode 100644 src/VirtoCommerce.OrderManagement.Web/Localizations/it.VirtoCommerce.OrderManagemen.json create mode 100644 src/VirtoCommerce.OrderManagement.Web/Localizations/ja.VirtoCommerce.OrderManagemen.json create mode 100644 src/VirtoCommerce.OrderManagement.Web/Localizations/pl.VirtoCommerce.OrderManagemen.json create mode 100644 src/VirtoCommerce.OrderManagement.Web/Localizations/pt.VirtoCommerce.OrderManagemen.json create mode 100644 src/VirtoCommerce.OrderManagement.Web/Localizations/ru.VirtoCommerce.OrderManagemen.json create mode 100644 src/VirtoCommerce.OrderManagement.Web/Localizations/zh.VirtoCommerce.OrderManagemen.json create mode 100644 src/VirtoCommerce.OrderManagement.Web/Scripts/blades/.keep delete mode 100644 src/VirtoCommerce.OrderManagement.Web/Scripts/blades/hello-world.html delete mode 100644 src/VirtoCommerce.OrderManagement.Web/Scripts/blades/hello-world.js diff --git a/src/VirtoCommerce.OrderManagement.Core/ModuleConstants.cs b/src/VirtoCommerce.OrderManagement.Core/ModuleConstants.cs index dc502f1..288af0b 100644 --- a/src/VirtoCommerce.OrderManagement.Core/ModuleConstants.cs +++ b/src/VirtoCommerce.OrderManagement.Core/ModuleConstants.cs @@ -30,19 +30,11 @@ public static class Settings { public static class General { - public static SettingDescriptor OrderManagementEnabled { get; } = new() - { - Name = "OrderManagement.Enabled", - GroupName = "OrderManagement|General", - ValueType = SettingValueType.Boolean, - DefaultValue = false, - }; - public static IEnumerable AllGeneralSettings { get { - yield return OrderManagementEnabled; + return []; } } } diff --git a/src/VirtoCommerce.OrderManagement.Web/Controllers/Api/OrderManagementController.cs b/src/VirtoCommerce.OrderManagement.Web/Controllers/Api/OrderManagementController.cs index 287b62b..a185be7 100644 --- a/src/VirtoCommerce.OrderManagement.Web/Controllers/Api/OrderManagementController.cs +++ b/src/VirtoCommerce.OrderManagement.Web/Controllers/Api/OrderManagementController.cs @@ -17,7 +17,7 @@ public class OrderManagementController : Controller [Authorize(ModuleConstants.Security.Permissions.Read)] public ActionResult Get() { - return Ok(new { result = "Hello world!" }); + return Ok(); } } } diff --git a/src/VirtoCommerce.OrderManagement.Web/Localizations/de.VirtoCommerce.OrderManagemen.json b/src/VirtoCommerce.OrderManagement.Web/Localizations/de.VirtoCommerce.OrderManagemen.json new file mode 100644 index 0000000..fa985c8 --- /dev/null +++ b/src/VirtoCommerce.OrderManagement.Web/Localizations/de.VirtoCommerce.OrderManagemen.json @@ -0,0 +1,20 @@ +{ + "orderManagement": { + "blades": { + "catalog-items-select": { + "title": "Artikel zur Bestellung hinzufügen" + } + }, + "commands": { + "add-selected": "Ausgewählte hinzufügen", + "add-item": "Artikel hinzufügen" + } + }, + "permissions": { + "orderManagement:access": "Bestellmanagement öffnen", + "orderManagement:create": "Bestelldaten erstellen", + "orderManagement:read": "Bestellbezogene Daten anzeigen", + "orderManagement:update": "Bestelldaten aktualisieren", + "orderManagement:delete": "Bestellverwaltungsdaten löschen" + } +} \ No newline at end of file diff --git a/src/VirtoCommerce.OrderManagement.Web/Localizations/en.OrderManagement.json b/src/VirtoCommerce.OrderManagement.Web/Localizations/en.VirtoCommerce.OrderManagement.json similarity index 69% rename from src/VirtoCommerce.OrderManagement.Web/Localizations/en.OrderManagement.json rename to src/VirtoCommerce.OrderManagement.Web/Localizations/en.VirtoCommerce.OrderManagement.json index 2e9091c..9b856d0 100644 --- a/src/VirtoCommerce.OrderManagement.Web/Localizations/en.OrderManagement.json +++ b/src/VirtoCommerce.OrderManagement.Web/Localizations/en.VirtoCommerce.OrderManagement.json @@ -1,9 +1,6 @@ { "orderManagement": { "blades": { - "hello-world": { - "title": "Hello world blade" - }, "catalog-items-select": { "title": "Add item to order" } @@ -19,13 +16,5 @@ "orderManagement:read": "View OrderManagement related data", "orderManagement:update": "Update OrderManagement related data", "orderManagement:delete": "Delete OrderManagement related data" - }, - "settings": { - "OrderManagement": { - "Enabled": { - "title": "Order Management", - "description": "Enabling order management functionality" - } - } } } diff --git a/src/VirtoCommerce.OrderManagement.Web/Localizations/es.VirtoCommerce.OrderManagemen.json b/src/VirtoCommerce.OrderManagement.Web/Localizations/es.VirtoCommerce.OrderManagemen.json new file mode 100644 index 0000000..01b198f --- /dev/null +++ b/src/VirtoCommerce.OrderManagement.Web/Localizations/es.VirtoCommerce.OrderManagemen.json @@ -0,0 +1,20 @@ +{ + "orderManagement": { + "blades": { + "catalog-items-select": { + "title": "Añadir artículo al pedido" + } + }, + "commands": { + "add-selected": "Añadir seleccionados", + "add-item": "Añadir artículo" + } + }, + "permissions": { + "orderManagement:access": "Abrir menú Gestión de pedidos", + "orderManagement:create": "Crear datos relacionados con la gestión de pedidos", + "orderManagement:read": "Ver datos relacionados con OrderManagement", + "orderManagement:update": "Actualizar datos relacionados con la gestión de pedidos", + "orderManagement:delete": "Eliminar datos relacionados con OrderManagement" + } +} diff --git a/src/VirtoCommerce.OrderManagement.Web/Localizations/fr.VirtoCommerce.OrderManagemen.json b/src/VirtoCommerce.OrderManagement.Web/Localizations/fr.VirtoCommerce.OrderManagemen.json new file mode 100644 index 0000000..a3b5435 --- /dev/null +++ b/src/VirtoCommerce.OrderManagement.Web/Localizations/fr.VirtoCommerce.OrderManagemen.json @@ -0,0 +1,20 @@ +{ + "orderManagement": { + "blades": { + "catalog-items-select": { + "title": "Ajouter un article à la commande" + } + }, + "commands": { + "add-selected": "Ajouter sélection", + "add-item": "Ajouter un article" + } + }, + "permissions": { + "orderManagement:access": "Ouvrir le menu Gestion des commandes", + "orderManagement:create": "Créer des données liées à la gestion des commandes", + "orderManagement:read": "Voir les données relatives à la gestion des commandes", + "orderManagement:update": "Mettre à jour les données liées à la gestion des commandes", + "orderManagement:delete": "Supprimer les données liées à la gestion des commandes" + } +} \ No newline at end of file diff --git a/src/VirtoCommerce.OrderManagement.Web/Localizations/it.VirtoCommerce.OrderManagemen.json b/src/VirtoCommerce.OrderManagement.Web/Localizations/it.VirtoCommerce.OrderManagemen.json new file mode 100644 index 0000000..e532713 --- /dev/null +++ b/src/VirtoCommerce.OrderManagement.Web/Localizations/it.VirtoCommerce.OrderManagemen.json @@ -0,0 +1,20 @@ +{ + "orderManagement": { + "blades": { + "catalog-items-select": { + "title": "Aggiungi articolo all'ordine" + } + }, + "commands": { + "add-selected": "Aggiungi selezionati", + "add-item": "Aggiungi articolo" + } + }, + "permissions": { + "orderManagement:access": "Apri il menu Gestione ordini", + "orderManagement:create": "Crea dati relativi a OrderManagement", + "orderManagement:read": "Visualizza i dati relativi a OrderManagement", + "orderManagement:update": "Aggiorna dati relativi a OrderManagement", + "orderManagement:delete": "Elimina dati relativi a OrderManagement" + } +} \ No newline at end of file diff --git a/src/VirtoCommerce.OrderManagement.Web/Localizations/ja.VirtoCommerce.OrderManagemen.json b/src/VirtoCommerce.OrderManagement.Web/Localizations/ja.VirtoCommerce.OrderManagemen.json new file mode 100644 index 0000000..f0e42f5 --- /dev/null +++ b/src/VirtoCommerce.OrderManagement.Web/Localizations/ja.VirtoCommerce.OrderManagemen.json @@ -0,0 +1,20 @@ +{ + "orderManagement": { + "blades": { + "catalog-items-select": { + "title": "注文に商品を追加" + } + }, + "commands": { + "add-selected": "選択を追加", + "add-item": "アイテムを追加" + } + }, + "permissions": { + "orderManagement:access": "注文管理メニューを開く", + "orderManagement:create": "注文管理関連データを作成", + "orderManagement:read": "注文管理関連のデータを表示", + "orderManagement:update": "注文管理関連データを更新", + "orderManagement:delete": "OrderManagement関連のデータを削除" + } +} \ No newline at end of file diff --git a/src/VirtoCommerce.OrderManagement.Web/Localizations/pl.VirtoCommerce.OrderManagemen.json b/src/VirtoCommerce.OrderManagement.Web/Localizations/pl.VirtoCommerce.OrderManagemen.json new file mode 100644 index 0000000..776f1a5 --- /dev/null +++ b/src/VirtoCommerce.OrderManagement.Web/Localizations/pl.VirtoCommerce.OrderManagemen.json @@ -0,0 +1,20 @@ +{ + "orderManagement": { + "blades": { + "catalog-items-select": { + "title": "Dodaj przedmiot do zamówienia" + } + }, + "commands": { + "add-selected": "Dodaj wybrane", + "add-item": "Dodaj przedmiot" + } + }, + "permissions": { + "orderManagement:access": "Otwórz menu Zarządzania Zamówieniami", + "orderManagement:create": "Utwórz dane związane z OrderManagement", + "orderManagement:read": "Zobacz dane związane z Zarządzaniem Zamówieniami", + "orderManagement:update": "Aktualizuj dane związane z Zarządzaniem Zamówieniami", + "orderManagement:delete": "Usuń dane związane z OrderManagement" + } +} \ No newline at end of file diff --git a/src/VirtoCommerce.OrderManagement.Web/Localizations/pt.VirtoCommerce.OrderManagemen.json b/src/VirtoCommerce.OrderManagement.Web/Localizations/pt.VirtoCommerce.OrderManagemen.json new file mode 100644 index 0000000..659b796 --- /dev/null +++ b/src/VirtoCommerce.OrderManagement.Web/Localizations/pt.VirtoCommerce.OrderManagemen.json @@ -0,0 +1,20 @@ +{ + "orderManagement": { + "blades": { + "catalog-items-select": { + "title": "Adicionar item ao pedido" + } + }, + "commands": { + "add-selected": "Adicionar selecionados", + "add-item": "Adicionar item" + } + }, + "permissions": { + "orderManagement:access": "Abrir menu OrderManagement", + "orderManagement:create": "Criar dados relacionados com Gestão de Encomendas", + "orderManagement:read": "Ver dados relacionados com Gestão de Encomendas", + "orderManagement:update": "Atualizar dados relacionados ao OrderManagement", + "orderManagement:delete": "Eliminar dados relacionados com OrderManagement" + } +} \ No newline at end of file diff --git a/src/VirtoCommerce.OrderManagement.Web/Localizations/ru.VirtoCommerce.OrderManagemen.json b/src/VirtoCommerce.OrderManagement.Web/Localizations/ru.VirtoCommerce.OrderManagemen.json new file mode 100644 index 0000000..6978d7d --- /dev/null +++ b/src/VirtoCommerce.OrderManagement.Web/Localizations/ru.VirtoCommerce.OrderManagemen.json @@ -0,0 +1,20 @@ +{ + "orderManagement": { + "blades": { + "catalog-items-select": { + "title": "Добавить товар в заказ" + } + }, + "commands": { + "add-selected": "Добавить выбранное", + "add-item": "Добавить товар" + } + }, + "permissions": { + "orderManagement:access": "Открыть меню \"Управление заказами\"", + "orderManagement:create": "Создать данные для OrderManagement", + "orderManagement:read": "Просмотреть данные, связанные с OrderManagement", + "orderManagement:update": "Обновить данные OrderManagement", + "orderManagement:delete": "Удалить данные OrderManagement" + } +} \ No newline at end of file diff --git a/src/VirtoCommerce.OrderManagement.Web/Localizations/zh.VirtoCommerce.OrderManagemen.json b/src/VirtoCommerce.OrderManagement.Web/Localizations/zh.VirtoCommerce.OrderManagemen.json new file mode 100644 index 0000000..79a72be --- /dev/null +++ b/src/VirtoCommerce.OrderManagement.Web/Localizations/zh.VirtoCommerce.OrderManagemen.json @@ -0,0 +1,20 @@ +{ + "orderManagement": { + "blades": { + "catalog-items-select": { + "title": "添加到订单" + } + }, + "commands": { + "add-selected": "添加所选", + "add-item": "添加商品" + } + }, + "permissions": { + "orderManagement:access": "打开订单管理菜单", + "orderManagement:create": "创建订单管理相关数据", + "orderManagement:read": "查看订单管理相关数据", + "orderManagement:update": "更新订单管理相关数据", + "orderManagement:delete": "删除订单管理相关数据" + } +} \ No newline at end of file diff --git a/src/VirtoCommerce.OrderManagement.Web/Scripts/blades/.keep b/src/VirtoCommerce.OrderManagement.Web/Scripts/blades/.keep new file mode 100644 index 0000000..e69de29 diff --git a/src/VirtoCommerce.OrderManagement.Web/Scripts/blades/hello-world.html b/src/VirtoCommerce.OrderManagement.Web/Scripts/blades/hello-world.html deleted file mode 100644 index 851f3ee..0000000 --- a/src/VirtoCommerce.OrderManagement.Web/Scripts/blades/hello-world.html +++ /dev/null @@ -1,7 +0,0 @@ -
-
-
- -
-
-
\ No newline at end of file diff --git a/src/VirtoCommerce.OrderManagement.Web/Scripts/blades/hello-world.js b/src/VirtoCommerce.OrderManagement.Web/Scripts/blades/hello-world.js deleted file mode 100644 index 067f733..0000000 --- a/src/VirtoCommerce.OrderManagement.Web/Scripts/blades/hello-world.js +++ /dev/null @@ -1,16 +0,0 @@ -angular.module('virtoCommerce.orderManagement') - .controller('virtoCommerce.orderManagement.helloWorldController', ['$scope', function ($scope) { - var blade = $scope.blade; - blade.title = 'orderManagement.blades.hello-world.title'; - blade.isLoading = false; - -// blade.refresh = function () { -//// api.get(function (data) { -// blade.title = 'OrderManagement.blades.hello-world.title'; -//// blade.data = data.result; -// blade.isLoading = false; -//// }); -// }; -// -// blade.refresh(); - }]); From adc8f1a73b62dd98b39469a3f8b8718bd5b53376 Mon Sep 17 00:00:00 2001 From: Evgenii Kolosov Date: Wed, 2 Apr 2025 12:50:26 +0200 Subject: [PATCH 04/14] VCST-2980: fix sonar warnings --- .../Scripts/services/extending-order-module-service.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/VirtoCommerce.OrderManagement.Web/Scripts/services/extending-order-module-service.js b/src/VirtoCommerce.OrderManagement.Web/Scripts/services/extending-order-module-service.js index b721cc9..88d183c 100644 --- a/src/VirtoCommerce.OrderManagement.Web/Scripts/services/extending-order-module-service.js +++ b/src/VirtoCommerce.OrderManagement.Web/Scripts/services/extending-order-module-service.js @@ -64,7 +64,7 @@ angular.module('virtoCommerce.orderManagement') blade.currentEntity.items.push(newLineItem); blade.recalculateFn(); }, function (error) { - if (error.status == 404) { + if (error.status === 404) { // Seems no pricing module installed. // Just add lineitem with zero price. var newLineItem = From c9e8daff177a4fdc08285faea74dd666485d31af Mon Sep 17 00:00:00 2001 From: Evgenii Kolosov Date: Thu, 3 Apr 2025 11:40:50 +0200 Subject: [PATCH 05/14] VCST-2980: Transfer API from Order to OrderManagement module --- .../Scripts/resources/catalog-items-api.js | 4 ++++ .../Scripts/resources/pricing-api.js | 7 +++++++ .../Scripts/services/extending-order-module-service.js | 2 +- 3 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 src/VirtoCommerce.OrderManagement.Web/Scripts/resources/catalog-items-api.js create mode 100644 src/VirtoCommerce.OrderManagement.Web/Scripts/resources/pricing-api.js diff --git a/src/VirtoCommerce.OrderManagement.Web/Scripts/resources/catalog-items-api.js b/src/VirtoCommerce.OrderManagement.Web/Scripts/resources/catalog-items-api.js new file mode 100644 index 0000000..024d8f6 --- /dev/null +++ b/src/VirtoCommerce.OrderManagement.Web/Scripts/resources/catalog-items-api.js @@ -0,0 +1,4 @@ +angular.module('virtoCommerce.orderManagement') + .factory('virtoCommerce.orderManagement.catalogItemsApi', ['$resource', function($resource) { + return $resource('api/catalog/products/:id', null, {}); + }]); diff --git a/src/VirtoCommerce.OrderManagement.Web/Scripts/resources/pricing-api.js b/src/VirtoCommerce.OrderManagement.Web/Scripts/resources/pricing-api.js new file mode 100644 index 0000000..6e02f42 --- /dev/null +++ b/src/VirtoCommerce.OrderManagement.Web/Scripts/resources/pricing-api.js @@ -0,0 +1,7 @@ +angular.module('virtoCommerce.orderManagement') + .factory('virtoCommerce.orderManagement.pricesApi', ['$resource', function ($resource) { + return $resource('api/products/:id/prices', { id: '@Id', catalogId: '@catalogId' }, { + search: { url: 'api/catalog/products/prices/search' }, + getProductPrices: { isArray: true } + }); + }]); diff --git a/src/VirtoCommerce.OrderManagement.Web/Scripts/services/extending-order-module-service.js b/src/VirtoCommerce.OrderManagement.Web/Scripts/services/extending-order-module-service.js index 88d183c..3c11011 100644 --- a/src/VirtoCommerce.OrderManagement.Web/Scripts/services/extending-order-module-service.js +++ b/src/VirtoCommerce.OrderManagement.Web/Scripts/services/extending-order-module-service.js @@ -1,5 +1,5 @@ angular.module('virtoCommerce.orderManagement') - .factory('virtoCommerce.orderManagement.extendingOrderModuleService', ['platformWebApp.bladeNavigationService', 'virtoCommerce.orderModule.catalogItems', 'virtoCommerce.orderModule.prices', + .factory('virtoCommerce.orderManagement.extendingOrderModuleService', ['platformWebApp.bladeNavigationService', 'virtoCommerce.orderManagement.catalogItemsApi', 'virtoCommerce.orderManagement.pricesApi', function (bladeNavigationService, catalogItemsApi, pricesApi) { var selectedProducts = []; From 5eff097b0f5c2e204fc6c3d46d63335aeb5916df Mon Sep 17 00:00:00 2001 From: Evgenii Kolosov Date: Thu, 3 Apr 2025 12:39:54 +0200 Subject: [PATCH 06/14] VCST-2980: mkdocs and versions of modules --- mkdocs.yml | 54 +++++++++++++++++++ .../module.manifest | 3 +- 2 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 mkdocs.yml diff --git a/mkdocs.yml b/mkdocs.yml new file mode 100644 index 0000000..cc2452e --- /dev/null +++ b/mkdocs.yml @@ -0,0 +1,54 @@ +site_name: Virto Commerce Documentation +theme: + name: material + language: en +# features: +# - instant # (still experimental) feature fails to load images when folder changes + favicon: media/favicon.ico + logo: media/logo.png + palette: + primary: red + font: + text: Roboto + code: Ubuntu Mono +markdown_extensions: + - admonition # https://squidfunk.github.io/mkdocs-material/extensions/admonition/ (in material theme) + - codehilite + - meta + # https://squidfunk.github.io/mkdocs-material/extensions/pymdown/ + - pymdownx.superfences + - pymdownx.magiclink +plugins: + - search # necessary for search to work + # - autolinks + - awesome-pages: + # strict: false + - git-revision-date-localized + # - minify: + # minify_html: true + - redirects: + redirect_maps: + 'redir.md': 'index.md' +# - monorepo + +# Project information +site_name: Virto Commerce +site_description: Virto Commerce Documentation +site_author: Virto Commerce +site_url: https://virtocommerce.com/docs/latest + +# Repository +repo_name: VirtoCommerce/vc-module-order-management +repo_url: https://github.com/VirtoCommerce/vc-module-order-management + +# Copyright +copyright: Copyright © 2020. All rights reserved. + +extra: + social: + - icon: fontawesome/brands/github-alt + link: https://github.com/VirtoCommerce + - icon: fontawesome/brands/twitter + link: https://twitter.com/virtocommerce?lang=en + - icon: fontawesome/brands/linkedin + link: https://www.linkedin.com/company/virto-commerce/ \ No newline at end of file diff --git a/src/VirtoCommerce.OrderManagement.Web/module.manifest b/src/VirtoCommerce.OrderManagement.Web/module.manifest index 9e810fc..ae0abb5 100644 --- a/src/VirtoCommerce.OrderManagement.Web/module.manifest +++ b/src/VirtoCommerce.OrderManagement.Web/module.manifest @@ -6,7 +6,8 @@ 3.876.0 - + + New Order Management From facd9c962eb60b12705cce152285b202015dedcd Mon Sep 17 00:00:00 2001 From: Evgenii Kolosov Date: Thu, 3 Apr 2025 13:18:25 +0200 Subject: [PATCH 07/14] VCST-2980: readme updated --- README.md | 49 +++++++++++++++---------------------------------- 1 file changed, 15 insertions(+), 34 deletions(-) diff --git a/README.md b/README.md index 02c44ac..876975c 100644 --- a/README.md +++ b/README.md @@ -1,46 +1,27 @@ -# OrderManagement +# Virto Commerce Order Management Module -## Overview +[![CI status](https://github.com/VirtoCommerce/vc-module-order-management/workflows/Module%20CI/badge.svg?branch=dev)](https://github.com/VirtoCommerce/vc-module-order-management/actions?query=workflow%3A"Module+CI") [![Quality gate](https://sonarcloud.io/api/project_badges/measure?project=VirtoCommerce_vc-module-order-management&metric=alert_status&branch=dev)](https://sonarcloud.io/dashboard?id=VirtoCommerce_vc-module-order-management) [![Reliability rating](https://sonarcloud.io/api/project_badges/measure?project=VirtoCommerce_vc-module-order-management&metric=reliability_rating&branch=dev)](https://sonarcloud.io/dashboard?id=VirtoCommerce_vc-module-order-management) [![Security rating](https://sonarcloud.io/api/project_badges/measure?project=VirtoCommerce_vc-module-order-management&metric=security_rating&branch=dev)](https://sonarcloud.io/dashboard?id=VirtoCommerce_vc-module-order-management) [![Sqale rating](https://sonarcloud.io/api/project_badges/measure?project=VirtoCommerce_vc-module-order-management&metric=sqale_rating&branch=dev)](https://sonarcloud.io/dashboard?id=VirtoCommerce_vc-module-order-management) -Short overview of what the new module is. +The “Order Management” module in Virto Commerce is an attempt to split the old [“Order”](https://github.com/VirtoCommerce/vc-module-order) module into two modules where the new module will take over the whole functionality of managing the composition of order products, their prices, quantities, adding new and deleting old items, etc. -- What is the new or updated experience? +## Key features -- Does this module replace an existing module/experience? If yes, what is the transition plan? +Virto Commerce Order Management module supports the following functionalities: -- Does this module has dependency on other ? If yes, list/explain the dependencies. +* Changing Order products (quantity, product change, new products). +* Possibility to change Product items. -- List the key deployment scenarios - why would people use this module? +## Documentation -## Functional Requirements +* [View on GitHub](https://github.com/VirtoCommerce/vc-module-order/) -Short description of the new module functional requirements. +## References -## Scenarios - -List of scenarios that the new module implements - -1. [Scenario 1](/doc/scenario-name1.md) -1. [Scenario 2](/doc/scenario-name2.md) -1. [Scenario 3](/doc/scenario-name3.md) - 1. [Scenario 3.1](/doc/scenario-name31.md) - 1. [Scenario 3.2](/doc/scenario-name32.md) -1. [Scenario 4](/doc/scenario-name4.md) - -## Web API - -Web API documentation for each module is built out automatically and can be accessed by following the link bellow: - - -## Database Model - -![DB model](./docs/media/diagram-db-model.png) - -## Related topics - -[Some Article1](some-article1.md) - -[Some Article2](some-article2.md) +* [Deployment](https://docs.virtocommerce.org/platform/developer-guide/Tutorials-and-How-tos/Tutorials/deploy-module-from-source-code/) +* [Installation](https://docs.virtocommerce.org/platform/user-guide/modules-installation/) +* [Home](https://virtocommerce.com) +* [Community](https://www.virtocommerce.org) +* [Download latest release](https://github.com/VirtoCommerce/vc-module-order-management/releases/latest) ## License From baa119593ebe886724d040bc579124f8fe39f446 Mon Sep 17 00:00:00 2001 From: Andrew <56427313+AndrewEhlo@users.noreply.github.com> Date: Thu, 3 Apr 2025 20:32:03 +0500 Subject: [PATCH 08/14] Use branch for workflow test --- .github/workflows/module-ci.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/module-ci.yml b/.github/workflows/module-ci.yml index 02142c6..8e9a355 100644 --- a/.github/workflows/module-ci.yml +++ b/.github/workflows/module-ci.yml @@ -241,13 +241,15 @@ jobs: if: ${{ ((github.ref == 'refs/heads/dev') && (github.event_name == 'push') && (needs.ci.outputs.run-e2e == 'true')) || (github.event_name == 'workflow_dispatch') || (github.base_ref == 'dev') && (github.event_name == 'pull_request') }} needs: 'ci' - uses: VirtoCommerce/.github/.github/workflows/e2e.yml@v3.800.11 + # uses: VirtoCommerce/.github/.github/workflows/e2e.yml@v3.800.11 + uses: VirtoCommerce/.github/.github/workflows/e2e.yml@VCST-2469 with: katalonRepo: 'VirtoCommerce/vc-quality-gate-katalon' katalonRepoBranch: 'dev' testSuite: 'Test Suites/Modules/Platform_collection' - installModules: 'true' + # installModules: 'true' + installModules: 'false' installCustomModule: 'true' customModuleId: ${{ needs.ci.outputs.moduleId }} customModuleUrl: ${{ needs.ci.outputs.artifactUrl }} From 24e95e511750dbc5c06e82d5826b104540a8a291 Mon Sep 17 00:00:00 2001 From: Andrew <56427313+AndrewEhlo@users.noreply.github.com> Date: Thu, 3 Apr 2025 20:38:46 +0500 Subject: [PATCH 09/14] Fix dependency version in module manifest --- src/VirtoCommerce.OrderManagement.Web/module.manifest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/VirtoCommerce.OrderManagement.Web/module.manifest b/src/VirtoCommerce.OrderManagement.Web/module.manifest index ae0abb5..4b190a7 100644 --- a/src/VirtoCommerce.OrderManagement.Web/module.manifest +++ b/src/VirtoCommerce.OrderManagement.Web/module.manifest @@ -7,7 +7,7 @@ 3.876.0 - + New Order Management From 96f8597afec92ea67e168bfdba7bde3af5f1338b Mon Sep 17 00:00:00 2001 From: Evgenii Kolosov Date: Fri, 4 Apr 2025 11:19:07 +0200 Subject: [PATCH 10/14] VCST-2980: Xapi module version and information. feat: Added information about Xapi module to the manifest. Also updated version of module --- .../VirtoCommerce.OrderManagement.ExperienceApi.csproj | 2 +- src/VirtoCommerce.OrderManagement.Web/module.manifest | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/VirtoCommerce.OrderManagement.ExperienceApi/VirtoCommerce.OrderManagement.ExperienceApi.csproj b/src/VirtoCommerce.OrderManagement.ExperienceApi/VirtoCommerce.OrderManagement.ExperienceApi.csproj index 14983ce..b4b0620 100644 --- a/src/VirtoCommerce.OrderManagement.ExperienceApi/VirtoCommerce.OrderManagement.ExperienceApi.csproj +++ b/src/VirtoCommerce.OrderManagement.ExperienceApi/VirtoCommerce.OrderManagement.ExperienceApi.csproj @@ -8,7 +8,7 @@ - + diff --git a/src/VirtoCommerce.OrderManagement.Web/module.manifest b/src/VirtoCommerce.OrderManagement.Web/module.manifest index 4b190a7..7744b07 100644 --- a/src/VirtoCommerce.OrderManagement.Web/module.manifest +++ b/src/VirtoCommerce.OrderManagement.Web/module.manifest @@ -8,6 +8,7 @@ + New Order Management From 9fbfd089208ead9989dfece12720712a96ed3180 Mon Sep 17 00:00:00 2001 From: Evgenii Kolosov Date: Fri, 4 Apr 2025 15:30:42 +0200 Subject: [PATCH 11/14] VCST-2980: return release for workflow test --- .github/workflows/module-ci.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/module-ci.yml b/.github/workflows/module-ci.yml index 8e9a355..c0484d7 100644 --- a/.github/workflows/module-ci.yml +++ b/.github/workflows/module-ci.yml @@ -241,15 +241,15 @@ jobs: if: ${{ ((github.ref == 'refs/heads/dev') && (github.event_name == 'push') && (needs.ci.outputs.run-e2e == 'true')) || (github.event_name == 'workflow_dispatch') || (github.base_ref == 'dev') && (github.event_name == 'pull_request') }} needs: 'ci' - # uses: VirtoCommerce/.github/.github/workflows/e2e.yml@v3.800.11 - uses: VirtoCommerce/.github/.github/workflows/e2e.yml@VCST-2469 + uses: VirtoCommerce/.github/.github/workflows/e2e.yml@v3.800.11 + # uses: VirtoCommerce/.github/.github/workflows/e2e.yml@VCST-2469 with: katalonRepo: 'VirtoCommerce/vc-quality-gate-katalon' katalonRepoBranch: 'dev' testSuite: 'Test Suites/Modules/Platform_collection' - # installModules: 'true' - installModules: 'false' + installModules: 'true' + # installModules: 'false' installCustomModule: 'true' customModuleId: ${{ needs.ci.outputs.moduleId }} customModuleUrl: ${{ needs.ci.outputs.artifactUrl }} From 1c8b071544d980d8d4d3d3dfea7c3cb709c6f813 Mon Sep 17 00:00:00 2001 From: Evgenii Kolosov Date: Tue, 8 Apr 2025 11:40:29 +0200 Subject: [PATCH 12/14] VCST-2980: fixes after review --- .github/workflows/module-ci.yml | 6 +- .../ModuleConstants.cs | 10 +-- .../Api/OrderManagementController.cs | 14 ---- .../de.VirtoCommerce.OrderManagemen.json | 12 +-- .../en.VirtoCommerce.OrderManagement.json | 10 +-- .../es.VirtoCommerce.OrderManagemen.json | 10 +-- .../fr.VirtoCommerce.OrderManagemen.json | 12 +-- .../it.VirtoCommerce.OrderManagemen.json | 12 +-- .../ja.VirtoCommerce.OrderManagemen.json | 12 +-- .../pl.VirtoCommerce.OrderManagemen.json | 12 +-- .../pt.VirtoCommerce.OrderManagemen.json | 12 +-- .../ru.VirtoCommerce.OrderManagemen.json | 12 +-- .../zh.VirtoCommerce.OrderManagemen.json | 12 +-- .../Scripts/module.js | 11 ++- ...service.js => order-management-service.js} | 75 ++++++++++--------- 15 files changed, 111 insertions(+), 121 deletions(-) rename src/VirtoCommerce.OrderManagement.Web/Scripts/services/{extending-order-module-service.js => order-management-service.js} (67%) diff --git a/.github/workflows/module-ci.yml b/.github/workflows/module-ci.yml index c0484d7..8756f28 100644 --- a/.github/workflows/module-ci.yml +++ b/.github/workflows/module-ci.yml @@ -241,15 +241,13 @@ jobs: if: ${{ ((github.ref == 'refs/heads/dev') && (github.event_name == 'push') && (needs.ci.outputs.run-e2e == 'true')) || (github.event_name == 'workflow_dispatch') || (github.base_ref == 'dev') && (github.event_name == 'pull_request') }} needs: 'ci' - uses: VirtoCommerce/.github/.github/workflows/e2e.yml@v3.800.11 - # uses: VirtoCommerce/.github/.github/workflows/e2e.yml@VCST-2469 + uses: VirtoCommerce/.github/.github/workflows/e2e.yml@VCST-2469 with: katalonRepo: 'VirtoCommerce/vc-quality-gate-katalon' katalonRepoBranch: 'dev' testSuite: 'Test Suites/Modules/Platform_collection' - installModules: 'true' - # installModules: 'false' + installModules: 'false' installCustomModule: 'true' customModuleId: ${{ needs.ci.outputs.moduleId }} customModuleUrl: ${{ needs.ci.outputs.artifactUrl }} diff --git a/src/VirtoCommerce.OrderManagement.Core/ModuleConstants.cs b/src/VirtoCommerce.OrderManagement.Core/ModuleConstants.cs index 288af0b..421fe84 100644 --- a/src/VirtoCommerce.OrderManagement.Core/ModuleConstants.cs +++ b/src/VirtoCommerce.OrderManagement.Core/ModuleConstants.cs @@ -9,11 +9,11 @@ public static class Security { public static class Permissions { - public const string Access = "orderManagement:access"; - public const string Create = "orderManagement:create"; - public const string Read = "orderManagement:read"; - public const string Update = "orderManagement:update"; - public const string Delete = "orderManagement:delete"; + public const string Access = "order-management:access"; + public const string Create = "order-management:create"; + public const string Read = "order-management:read"; + public const string Update = "order-management:update"; + public const string Delete = "order-management:delete"; public static string[] AllPermissions { get; } = [ diff --git a/src/VirtoCommerce.OrderManagement.Web/Controllers/Api/OrderManagementController.cs b/src/VirtoCommerce.OrderManagement.Web/Controllers/Api/OrderManagementController.cs index a185be7..5fab4e4 100644 --- a/src/VirtoCommerce.OrderManagement.Web/Controllers/Api/OrderManagementController.cs +++ b/src/VirtoCommerce.OrderManagement.Web/Controllers/Api/OrderManagementController.cs @@ -1,23 +1,9 @@ -using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; -using VirtoCommerce.OrderManagement.Core; namespace VirtoCommerce.OrderManagement.Web.Controllers.Api { [Route("api/order-management")] public class OrderManagementController : Controller { - // GET: api/order-management - /// - /// Get message - /// - /// Return "Hello world!" message - [HttpGet] - [Route("")] - [Authorize(ModuleConstants.Security.Permissions.Read)] - public ActionResult Get() - { - return Ok(); - } } } diff --git a/src/VirtoCommerce.OrderManagement.Web/Localizations/de.VirtoCommerce.OrderManagemen.json b/src/VirtoCommerce.OrderManagement.Web/Localizations/de.VirtoCommerce.OrderManagemen.json index fa985c8..31d4d2d 100644 --- a/src/VirtoCommerce.OrderManagement.Web/Localizations/de.VirtoCommerce.OrderManagemen.json +++ b/src/VirtoCommerce.OrderManagement.Web/Localizations/de.VirtoCommerce.OrderManagemen.json @@ -11,10 +11,10 @@ } }, "permissions": { - "orderManagement:access": "Bestellmanagement öffnen", - "orderManagement:create": "Bestelldaten erstellen", - "orderManagement:read": "Bestellbezogene Daten anzeigen", - "orderManagement:update": "Bestelldaten aktualisieren", - "orderManagement:delete": "Bestellverwaltungsdaten löschen" + "order-management:access": "Bestellmanagement öffnen", + "order-management:create": "Bestelldaten erstellen", + "order-management:read": "Bestellbezogene Daten anzeigen", + "order-management:update": "Bestelldaten aktualisieren", + "order-management:delete": "Bestellverwaltungsdaten löschen" } -} \ No newline at end of file +} diff --git a/src/VirtoCommerce.OrderManagement.Web/Localizations/en.VirtoCommerce.OrderManagement.json b/src/VirtoCommerce.OrderManagement.Web/Localizations/en.VirtoCommerce.OrderManagement.json index 9b856d0..de484ac 100644 --- a/src/VirtoCommerce.OrderManagement.Web/Localizations/en.VirtoCommerce.OrderManagement.json +++ b/src/VirtoCommerce.OrderManagement.Web/Localizations/en.VirtoCommerce.OrderManagement.json @@ -11,10 +11,10 @@ } }, "permissions": { - "orderManagement:access": "Open OrderManagement menu", - "orderManagement:create": "Create OrderManagement related data", - "orderManagement:read": "View OrderManagement related data", - "orderManagement:update": "Update OrderManagement related data", - "orderManagement:delete": "Delete OrderManagement related data" + "order-management:access": "Open OrderManagement menu", + "order-management:create": "Create OrderManagement related data", + "order-management:read": "View OrderManagement related data", + "order-management:update": "Update OrderManagement related data", + "order-management:delete": "Delete OrderManagement related data" } } diff --git a/src/VirtoCommerce.OrderManagement.Web/Localizations/es.VirtoCommerce.OrderManagemen.json b/src/VirtoCommerce.OrderManagement.Web/Localizations/es.VirtoCommerce.OrderManagemen.json index 01b198f..6b8baa0 100644 --- a/src/VirtoCommerce.OrderManagement.Web/Localizations/es.VirtoCommerce.OrderManagemen.json +++ b/src/VirtoCommerce.OrderManagement.Web/Localizations/es.VirtoCommerce.OrderManagemen.json @@ -11,10 +11,10 @@ } }, "permissions": { - "orderManagement:access": "Abrir menú Gestión de pedidos", - "orderManagement:create": "Crear datos relacionados con la gestión de pedidos", - "orderManagement:read": "Ver datos relacionados con OrderManagement", - "orderManagement:update": "Actualizar datos relacionados con la gestión de pedidos", - "orderManagement:delete": "Eliminar datos relacionados con OrderManagement" + "order-management:access": "Abrir menú Gestión de pedidos", + "order-management:create": "Crear datos relacionados con la gestión de pedidos", + "order-management:read": "Ver datos relacionados con OrderManagement", + "order-management:update": "Actualizar datos relacionados con la gestión de pedidos", + "order-management:delete": "Eliminar datos relacionados con OrderManagement" } } diff --git a/src/VirtoCommerce.OrderManagement.Web/Localizations/fr.VirtoCommerce.OrderManagemen.json b/src/VirtoCommerce.OrderManagement.Web/Localizations/fr.VirtoCommerce.OrderManagemen.json index a3b5435..34a2c39 100644 --- a/src/VirtoCommerce.OrderManagement.Web/Localizations/fr.VirtoCommerce.OrderManagemen.json +++ b/src/VirtoCommerce.OrderManagement.Web/Localizations/fr.VirtoCommerce.OrderManagemen.json @@ -11,10 +11,10 @@ } }, "permissions": { - "orderManagement:access": "Ouvrir le menu Gestion des commandes", - "orderManagement:create": "Créer des données liées à la gestion des commandes", - "orderManagement:read": "Voir les données relatives à la gestion des commandes", - "orderManagement:update": "Mettre à jour les données liées à la gestion des commandes", - "orderManagement:delete": "Supprimer les données liées à la gestion des commandes" + "order-management:access": "Ouvrir le menu Gestion des commandes", + "order-management:create": "Créer des données liées à la gestion des commandes", + "order-management:read": "Voir les données relatives à la gestion des commandes", + "order-management:update": "Mettre à jour les données liées à la gestion des commandes", + "order-management:delete": "Supprimer les données liées à la gestion des commandes" } -} \ No newline at end of file +} diff --git a/src/VirtoCommerce.OrderManagement.Web/Localizations/it.VirtoCommerce.OrderManagemen.json b/src/VirtoCommerce.OrderManagement.Web/Localizations/it.VirtoCommerce.OrderManagemen.json index e532713..7bdc5f2 100644 --- a/src/VirtoCommerce.OrderManagement.Web/Localizations/it.VirtoCommerce.OrderManagemen.json +++ b/src/VirtoCommerce.OrderManagement.Web/Localizations/it.VirtoCommerce.OrderManagemen.json @@ -11,10 +11,10 @@ } }, "permissions": { - "orderManagement:access": "Apri il menu Gestione ordini", - "orderManagement:create": "Crea dati relativi a OrderManagement", - "orderManagement:read": "Visualizza i dati relativi a OrderManagement", - "orderManagement:update": "Aggiorna dati relativi a OrderManagement", - "orderManagement:delete": "Elimina dati relativi a OrderManagement" + "order-management:access": "Apri il menu Gestione ordini", + "order-management:create": "Crea dati relativi a OrderManagement", + "order-management:read": "Visualizza i dati relativi a OrderManagement", + "order-management:update": "Aggiorna dati relativi a OrderManagement", + "order-management:delete": "Elimina dati relativi a OrderManagement" } -} \ No newline at end of file +} diff --git a/src/VirtoCommerce.OrderManagement.Web/Localizations/ja.VirtoCommerce.OrderManagemen.json b/src/VirtoCommerce.OrderManagement.Web/Localizations/ja.VirtoCommerce.OrderManagemen.json index f0e42f5..0dcaac7 100644 --- a/src/VirtoCommerce.OrderManagement.Web/Localizations/ja.VirtoCommerce.OrderManagemen.json +++ b/src/VirtoCommerce.OrderManagement.Web/Localizations/ja.VirtoCommerce.OrderManagemen.json @@ -11,10 +11,10 @@ } }, "permissions": { - "orderManagement:access": "注文管理メニューを開く", - "orderManagement:create": "注文管理関連データを作成", - "orderManagement:read": "注文管理関連のデータを表示", - "orderManagement:update": "注文管理関連データを更新", - "orderManagement:delete": "OrderManagement関連のデータを削除" + "order-management:access": "注文管理メニューを開く", + "order-management:create": "注文管理関連データを作成", + "order-management:read": "注文管理関連のデータを表示", + "order-management:update": "注文管理関連データを更新", + "order-management:delete": "OrderManagement関連のデータを削除" } -} \ No newline at end of file +} diff --git a/src/VirtoCommerce.OrderManagement.Web/Localizations/pl.VirtoCommerce.OrderManagemen.json b/src/VirtoCommerce.OrderManagement.Web/Localizations/pl.VirtoCommerce.OrderManagemen.json index 776f1a5..a94ef6c 100644 --- a/src/VirtoCommerce.OrderManagement.Web/Localizations/pl.VirtoCommerce.OrderManagemen.json +++ b/src/VirtoCommerce.OrderManagement.Web/Localizations/pl.VirtoCommerce.OrderManagemen.json @@ -11,10 +11,10 @@ } }, "permissions": { - "orderManagement:access": "Otwórz menu Zarządzania Zamówieniami", - "orderManagement:create": "Utwórz dane związane z OrderManagement", - "orderManagement:read": "Zobacz dane związane z Zarządzaniem Zamówieniami", - "orderManagement:update": "Aktualizuj dane związane z Zarządzaniem Zamówieniami", - "orderManagement:delete": "Usuń dane związane z OrderManagement" + "order-management:access": "Otwórz menu Zarządzania Zamówieniami", + "order-management:create": "Utwórz dane związane z OrderManagement", + "order-management:read": "Zobacz dane związane z Zarządzaniem Zamówieniami", + "order-management:update": "Aktualizuj dane związane z Zarządzaniem Zamówieniami", + "order-management:delete": "Usuń dane związane z OrderManagement" } -} \ No newline at end of file +} diff --git a/src/VirtoCommerce.OrderManagement.Web/Localizations/pt.VirtoCommerce.OrderManagemen.json b/src/VirtoCommerce.OrderManagement.Web/Localizations/pt.VirtoCommerce.OrderManagemen.json index 659b796..14ca290 100644 --- a/src/VirtoCommerce.OrderManagement.Web/Localizations/pt.VirtoCommerce.OrderManagemen.json +++ b/src/VirtoCommerce.OrderManagement.Web/Localizations/pt.VirtoCommerce.OrderManagemen.json @@ -11,10 +11,10 @@ } }, "permissions": { - "orderManagement:access": "Abrir menu OrderManagement", - "orderManagement:create": "Criar dados relacionados com Gestão de Encomendas", - "orderManagement:read": "Ver dados relacionados com Gestão de Encomendas", - "orderManagement:update": "Atualizar dados relacionados ao OrderManagement", - "orderManagement:delete": "Eliminar dados relacionados com OrderManagement" + "order-management:access": "Abrir menu OrderManagement", + "order-management:create": "Criar dados relacionados com Gestão de Encomendas", + "order-management:read": "Ver dados relacionados com Gestão de Encomendas", + "order-management:update": "Atualizar dados relacionados ao OrderManagement", + "order-management:delete": "Eliminar dados relacionados com OrderManagement" } -} \ No newline at end of file +} diff --git a/src/VirtoCommerce.OrderManagement.Web/Localizations/ru.VirtoCommerce.OrderManagemen.json b/src/VirtoCommerce.OrderManagement.Web/Localizations/ru.VirtoCommerce.OrderManagemen.json index 6978d7d..348f682 100644 --- a/src/VirtoCommerce.OrderManagement.Web/Localizations/ru.VirtoCommerce.OrderManagemen.json +++ b/src/VirtoCommerce.OrderManagement.Web/Localizations/ru.VirtoCommerce.OrderManagemen.json @@ -11,10 +11,10 @@ } }, "permissions": { - "orderManagement:access": "Открыть меню \"Управление заказами\"", - "orderManagement:create": "Создать данные для OrderManagement", - "orderManagement:read": "Просмотреть данные, связанные с OrderManagement", - "orderManagement:update": "Обновить данные OrderManagement", - "orderManagement:delete": "Удалить данные OrderManagement" + "order-management:access": "Открыть меню \"Управление заказами\"", + "order-management:create": "Создать данные для OrderManagement", + "order-management:read": "Просмотреть данные, связанные с OrderManagement", + "order-management:update": "Обновить данные OrderManagement", + "order-management:delete": "Удалить данные OrderManagement" } -} \ No newline at end of file +} diff --git a/src/VirtoCommerce.OrderManagement.Web/Localizations/zh.VirtoCommerce.OrderManagemen.json b/src/VirtoCommerce.OrderManagement.Web/Localizations/zh.VirtoCommerce.OrderManagemen.json index 79a72be..7195ad0 100644 --- a/src/VirtoCommerce.OrderManagement.Web/Localizations/zh.VirtoCommerce.OrderManagemen.json +++ b/src/VirtoCommerce.OrderManagement.Web/Localizations/zh.VirtoCommerce.OrderManagemen.json @@ -11,10 +11,10 @@ } }, "permissions": { - "orderManagement:access": "打开订单管理菜单", - "orderManagement:create": "创建订单管理相关数据", - "orderManagement:read": "查看订单管理相关数据", - "orderManagement:update": "更新订单管理相关数据", - "orderManagement:delete": "删除订单管理相关数据" + "order-management:access": "打开订单管理菜单", + "order-management:create": "创建订单管理相关数据", + "order-management:read": "查看订单管理相关数据", + "order-management:update": "更新订单管理相关数据", + "order-management:delete": "删除订单管理相关数据" } -} \ No newline at end of file +} diff --git a/src/VirtoCommerce.OrderManagement.Web/Scripts/module.js b/src/VirtoCommerce.OrderManagement.Web/Scripts/module.js index a3a592b..1cdbc65 100644 --- a/src/VirtoCommerce.OrderManagement.Web/Scripts/module.js +++ b/src/VirtoCommerce.OrderManagement.Web/Scripts/module.js @@ -6,11 +6,10 @@ if (AppDependencies !== undefined) { } angular.module(moduleName, []) - .run(['platformWebApp.toolbarService', 'virtoCommerce.orderManagement.extendingOrderModuleService', - function (toolbarService, extendingOrderModuleService) { - - toolbarService.register(extendingOrderModuleService.getAddItemButtonInstance(), 'virtoCommerce.orderModule.customerOrderItemsController'); - - toolbarService.register(extendingOrderModuleService.getRemoveItemButtonInstance(), 'virtoCommerce.orderModule.customerOrderItemsController'); + .run(['platformWebApp.toolbarService', 'virtoCommerce.orderManagement.orderManagementService', + function (toolbarService, orderManagementService) { + angular.forEach(orderManagementService.getButtons(), function(button) { + toolbarService.register(button, 'virtoCommerce.orderModule.customerOrderItemsController'); + }); } ]); diff --git a/src/VirtoCommerce.OrderManagement.Web/Scripts/services/extending-order-module-service.js b/src/VirtoCommerce.OrderManagement.Web/Scripts/services/order-management-service.js similarity index 67% rename from src/VirtoCommerce.OrderManagement.Web/Scripts/services/extending-order-module-service.js rename to src/VirtoCommerce.OrderManagement.Web/Scripts/services/order-management-service.js index 3c11011..40059fb 100644 --- a/src/VirtoCommerce.OrderManagement.Web/Scripts/services/extending-order-module-service.js +++ b/src/VirtoCommerce.OrderManagement.Web/Scripts/services/order-management-service.js @@ -1,5 +1,5 @@ angular.module('virtoCommerce.orderManagement') - .factory('virtoCommerce.orderManagement.extendingOrderModuleService', ['platformWebApp.bladeNavigationService', 'virtoCommerce.orderManagement.catalogItemsApi', 'virtoCommerce.orderManagement.pricesApi', + .factory('virtoCommerce.orderManagement.orderManagementService', ['platformWebApp.bladeNavigationService', 'virtoCommerce.orderManagement.catalogItemsApi', 'virtoCommerce.orderManagement.pricesApi', function (bladeNavigationService, catalogItemsApi, pricesApi) { var selectedProducts = []; @@ -90,41 +90,48 @@ angular.module('virtoCommerce.orderManagement') } return { - getAddItemButtonInstance: () => angular.copy({ - name: "orderManagement.commands.add-item", - icon: 'fas fa-plus', - executeMethod: function(blade) { - openAddItemWizard(blade); - }, - canExecuteMethod: function (blade) { - return blade.currentEntity.operationType === 'CustomerOrder'; - }, - permission: 'order:update', - index: 0 - }), - getRemoveItemButtonInstance: () => angular.copy({ - name: "platform.commands.remove", - icon: 'fas fa-trash-alt', - executeMethod: function (blade) { - var lineItems = blade.currentEntity.items; - var selectedLineItems = _.filter(lineItems, function (x) { return x.selected; }); + getButtons: () => { + var buttons = []; - if (blade.selectedNodeId >= 0) { - var selectedNode = lineItems[blade.selectedNodeId]; - if (selectedNode && _.some(selectedLineItems, lineItem => selectedNode.id === lineItem.id)) { - bladeNavigationService.closeChildrenBlades(blade); + buttons.push(angular.copy({ + name: "orderManagement.commands.add-item", + icon: 'fas fa-plus', + executeMethod: function (blade) { + openAddItemWizard(blade); + }, + canExecuteMethod: function (blade) { + return blade.currentEntity.operationType === 'CustomerOrder'; + }, + permission: 'order:update', + index: 0 + })); + + buttons.push(angular.copy({ + name: "platform.commands.remove", + icon: 'fas fa-trash-alt', + executeMethod: function (blade) { + var lineItems = blade.currentEntity.items; + var selectedLineItems = _.filter(lineItems, function (x) { return x.selected; }); + + if (blade.selectedNodeId >= 0) { + var selectedNode = lineItems[blade.selectedNodeId]; + if (selectedNode && _.some(selectedLineItems, lineItem => selectedNode.id === lineItem.id)) { + bladeNavigationService.closeChildrenBlades(blade); + } } - } - blade.currentEntity.items = _.difference(lineItems, selectedLineItems); - blade.selectedAll = false; - blade.recalculateFn(); - }, - canExecuteMethod: function (blade) { - return _.any(blade.currentEntity.items, function (x) { return x.selected; }); - }, - permission: 'order:update', - index: 1 - }) + blade.currentEntity.items = _.difference(lineItems, selectedLineItems); + blade.selectedAll = false; + blade.recalculateFn(); + }, + canExecuteMethod: function (blade) { + return _.any(blade.currentEntity.items, function (x) { return x.selected; }); + }, + permission: 'order:update', + index: 1 + })); + + return buttons; + } }; }]); From d870208766147e28bbafe70d18c7e9f0d34f23ec Mon Sep 17 00:00:00 2001 From: Evgenii Kolosov Date: Tue, 8 Apr 2025 12:05:19 +0200 Subject: [PATCH 13/14] VCST-2980: mush fixes --- mkdocs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mkdocs.yml b/mkdocs.yml index cc2452e..7d1b0ab 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -42,7 +42,7 @@ repo_name: VirtoCommerce/vc-module-order-management repo_url: https://github.com/VirtoCommerce/vc-module-order-management # Copyright -copyright: Copyright © 2020. All rights reserved. +copyright: Copyright © 2025 Virto Commerce. All rights reserved. extra: social: From 1f851cf570460c1582d2a5b0f69a24ab19f05000 Mon Sep 17 00:00:00 2001 From: Artem Dudarev Date: Thu, 10 Apr 2025 17:10:18 +0200 Subject: [PATCH 14/14] Update module.ignore --- module.ignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module.ignore b/module.ignore index 70fe2bd..601e2d8 100644 --- a/module.ignore +++ b/module.ignore @@ -10,7 +10,7 @@ GraphQL.Server.Ui.GraphiQL.dll GraphQL.SystemTextJson.dll GraphQLParser.dll MediatR.dll -MediatR.Extensions.Microsoft.DependencyInjection.dll +MediatR.Contracts.dll Microsoft.AI.DependencyCollector.dll Microsoft.AI.EventCounterCollector.dll Microsoft.AI.PerfCounterCollector.dll