From 2209f284ed63e412e2e8787c3d07edd3da7021d8 Mon Sep 17 00:00:00 2001 From: Aleksandr Vishnyakov Date: Tue, 16 May 2017 19:26:03 +0500 Subject: [PATCH 1/4] Localization files moved from vc-localization repository VirtoCommerce/vc-platform#879 --- .../de.VirtoCommerce.Subscription.json | 123 ++++++++++++++++++ ...irtoCommerce.SubscriptionModule.Web.csproj | 1 + 2 files changed, 124 insertions(+) create mode 100644 VirtoCommerce.SubscriptionModule.Web/Localizations/de.VirtoCommerce.Subscription.json diff --git a/VirtoCommerce.SubscriptionModule.Web/Localizations/de.VirtoCommerce.Subscription.json b/VirtoCommerce.SubscriptionModule.Web/Localizations/de.VirtoCommerce.Subscription.json new file mode 100644 index 0000000..e65efb1 --- /dev/null +++ b/VirtoCommerce.SubscriptionModule.Web/Localizations/de.VirtoCommerce.Subscription.json @@ -0,0 +1,123 @@ +{ + "subscription": { + "main-menu-title": "Abonnemente", + "blades": { + "subscription-list": { + "title": "Abonnements", + "labels": { + "new-filter": "Neuen Filter hinzufügen", + "unnamed-filter": "Unbenannter Filter", + "number": "Anzahl", + "status": "Status", + "balance": "Kontostand", + "customer": "Teilnehmer", + "startDate": "Periodenstart", + "endDate": "Periodende" + }, + "placeholders": { + "select-filter": "Filter wählen" + } + }, + "filter-detail": { + "subtitle": "Filter bearbeiten", + "new-title": "Neuer Filter", + "new-subtitle": "Neuen Filter erstellen", + "labels": { + "name": "Name des Filters", + "name_": "Wie werden Sie diesen Filter nennen?", + "criteria": "Filterkriterien", + "from": "Aktiv ab", + "to": "Aktiv bis" + }, + "placeholders": { + "all": "Nicht angegeben" + } + }, + "subscription-detail": { + "title": "Abonnement {{number}}", + "subtitle": "Abonnementdetails und zugehörige Dokumente", + "labels": { + "status": "Status", + "balance": "Kontostand", + "billing-date": "Nächster Rechnungsdatum", + "trial-expiration": "Ablauf des Verfallsdatums", + "expiration": "Ablaufdatum des Abonnements", + "employee": "Neue Bestellung zuordnen zu", + "number": "Anzahl", + "coupon-code": "Gutscheincode", + "prorate": "Prorate Änderungen" + } + }, + "schedule-detail": { + "title": "Auto-Auftragsablaufplan", + "title-new": "Neue automatische auftragsablaufplan", + "subtitle-new": "Neue automatische Erstellung Auftragsablaufplan", + "labels": { + "charge-every": "Bestellen jede", + "trial-period": "Zeitraum (Tage)", + "charge-count": "Abonnement endet nach Anzahl der Bestellungen", + "grace-period": "Frist (in Tagen)" + }, + "placeholders": { + "select": "Wählen Sie aus..." + } + }, + "subscriptionOrder-list": { + "title": "Abonnement Bestellungen" + } + }, + "widgets": { + "subscription-orders": { + "title": "Bestellungen" + }, + "orderDynamicProperty": { + "title": "Um dynamische Eigenschaften" + }, + "product-schedule": { + "no-schedule": "Auto-auftragsablaufplan nicht definiert", + "info": "Auto - um jeden {{intervalCount}} {{interval}}" + }, + "order-subscription": { + "title": "Öffene Abonnement {{ number }}", + "title-no": "Nicht im Abonnement" + }, + "notificationsWidget": { + "title": "Benachrichtigung", + "blade-subtitle": "Benachrichtigungsservice", + "blade-title": "Abonnement Benachrichtigungstypliste" + }, + "notificationsLogWidget": { + "title": "Benachrichtigungsprotokoll", + "blade-subtitle": "Benachrichtigungsprotokoll", + "blade-title": "Abonnement das Senden von Benachrichtigungen anmelden" + } + }, + "dialogs": { + "subscription-delete": { + "title": "Bestätigung löschen", + "message": "Möchten Sie die ausgewählten Abonnements löschen?", + "warning": "WARNUNG: Diese Änderung ist endgültig und kann nicht rückgängig gemacht werden. Es kann zu Datenverlust führen.", + "instruction": "Geben Sie 'Ja' ein um zu löschen." + }, + "subscription-save": { + "title": "Änderungen speichern", + "message": "Das Abonnement wurde geändert. Möchten Sie die Änderungen speichern?" + }, + "schedule-delete": { + "title": "Bestätigung löschen", + "message": "Möchten Sie diese Bestellung Zeitplan wirklich löschen?" + }, + "schedule-save": { + "title": "Änderungen speichern", + "message": "Der Zeitplan wurde geändert. Möchten Sie die Änderungen speichern?" + }, + "new-order": { + "title": "Bestätigung", + "message": "Eine neue Bestellung für dieses Abonnement anlegen?" + } + }, + "commands": { + "new-order": "Bestellung anlegen" + } + } +} \ No newline at end of file diff --git a/VirtoCommerce.SubscriptionModule.Web/VirtoCommerce.SubscriptionModule.Web.csproj b/VirtoCommerce.SubscriptionModule.Web/VirtoCommerce.SubscriptionModule.Web.csproj index e5bfcc3..6742044 100644 --- a/VirtoCommerce.SubscriptionModule.Web/VirtoCommerce.SubscriptionModule.Web.csproj +++ b/VirtoCommerce.SubscriptionModule.Web/VirtoCommerce.SubscriptionModule.Web.csproj @@ -143,6 +143,7 @@ Designer + Web.config From f71d7b171fd782aa8eedf201281cb6e1eb6264e7 Mon Sep 17 00:00:00 2001 From: Eugeny Tatarincev Date: Fri, 18 Aug 2017 10:59:27 +0200 Subject: [PATCH 2/4] Do not inherit toolbar commands from customer order details blade --- .../Scripts/blades/subscription-detail.js | 217 +++++++++--------- 1 file changed, 111 insertions(+), 106 deletions(-) diff --git a/VirtoCommerce.SubscriptionModule.Web/Scripts/blades/subscription-detail.js b/VirtoCommerce.SubscriptionModule.Web/Scripts/blades/subscription-detail.js index 7cf8c0d..5fa124f 100644 --- a/VirtoCommerce.SubscriptionModule.Web/Scripts/blades/subscription-detail.js +++ b/VirtoCommerce.SubscriptionModule.Web/Scripts/blades/subscription-detail.js @@ -4,6 +4,7 @@ var blade = $scope.blade; blade.updatePermission = 'subscription:update'; blade.customerOrder = {}; + blade.toolbarCommands = []; blade.refresh = function () { if (blade.id === 'operationDetail') { @@ -34,6 +35,8 @@ subtitle: 'subscription.blades.subscription-detail.subtitle' }); + initToolbarCommands(); + blade.isLocked = blade.currentEntity.isCancelled; blade.isLoading = false; }; @@ -98,122 +101,124 @@ $scope.setForm = function (form) { $scope.formScope = form; }; - blade.toolbarCommands = [ - { - name: "orders.commands.new-document", icon: 'fa fa-plus', - executeMethod: function () { - var newBlade = { - id: "newOperationWizard", - customerOrder: blade.customerOrder, - currentEntity: blade.currentEntity, - stores: blade.stores, - availableTypes: blade.knownChildrenOperations, - title: "orders.blades.newOperation-wizard.title", - subtitle: 'orders.blades.newOperation-wizard.subtitle', - controller: 'virtoCommerce.orderModule.newOperationWizardController', - template: 'Modules/$(VirtoCommerce.Orders)/Scripts/wizards/newOperation/newOperation-wizard.tpl.html' - }; - bladeNavigationService.showBlade(newBlade, blade); + function initToolbarCommands() { + blade.toolbarCommands = [ + { + name: "orders.commands.new-document", icon: 'fa fa-plus', + executeMethod: function () { + var newBlade = { + id: "newOperationWizard", + customerOrder: blade.customerOrder, + currentEntity: blade.currentEntity, + stores: blade.stores, + availableTypes: blade.knownChildrenOperations, + title: "orders.blades.newOperation-wizard.title", + subtitle: 'orders.blades.newOperation-wizard.subtitle', + controller: 'virtoCommerce.orderModule.newOperationWizardController', + template: 'Modules/$(VirtoCommerce.Orders)/Scripts/wizards/newOperation/newOperation-wizard.tpl.html' + }; + bladeNavigationService.showBlade(newBlade, blade); + }, + canExecuteMethod: function () { + return !blade.isLocked && _.any(blade.knownChildrenOperations); + }, + permission: blade.updatePermission }, - canExecuteMethod: function () { - return !blade.isLocked && _.any(blade.knownChildrenOperations); + { + name: "platform.commands.save", icon: 'fa fa-save', + executeMethod: $scope.saveChanges, + canExecuteMethod: canSave, + permission: blade.updatePermission }, - permission: blade.updatePermission - }, - { - name: "platform.commands.save", icon: 'fa fa-save', - executeMethod: $scope.saveChanges, - canExecuteMethod: canSave, - permission: blade.updatePermission - }, - { - name: "platform.commands.reset", icon: 'fa fa-undo', - executeMethod: function () { - angular.copy(blade.origEntity, blade.currentEntity); + { + name: "platform.commands.reset", icon: 'fa fa-undo', + executeMethod: function () { + angular.copy(blade.origEntity, blade.currentEntity); + }, + canExecuteMethod: isDirty, + permission: blade.updatePermission }, - canExecuteMethod: isDirty, - permission: blade.updatePermission - }, - { - name: "platform.commands.delete", icon: 'fa fa-trash-o', - executeMethod: function () { - var dialog = { - id: "confirmDeleteItem", - title: "orders.dialogs.operation-delete.title", - message: "orders.dialogs.operation-delete.message", - callback: function (remove) { - if (remove) { - if (blade.id === 'operationDetail') { - //var idx = _.findIndex(blade.customerOrder.childrenOperations, function (x) { return x.id === blade.origEntity.id; }); - //blade.customerOrder.childrenOperations.splice(idx, 1); - //var idx = _.findIndex(blade.realOperationsCollection, function (x) { return x.id === blade.origEntity.id; }); - //blade.realOperationsCollection.splice(idx, 1); - - //bladeNavigationService.closeBlade(blade); - } - else { - subscriptionAPI.delete({ ids: blade.origEntity.id }, function () { - blade.parentBlade.refresh(); - bladeNavigationService.closeBlade(blade); - }); + { + name: "platform.commands.delete", icon: 'fa fa-trash-o', + executeMethod: function () { + var dialog = { + id: "confirmDeleteItem", + title: "orders.dialogs.operation-delete.title", + message: "orders.dialogs.operation-delete.message", + callback: function (remove) { + if (remove) { + if (blade.id === 'operationDetail') { + //var idx = _.findIndex(blade.customerOrder.childrenOperations, function (x) { return x.id === blade.origEntity.id; }); + //blade.customerOrder.childrenOperations.splice(idx, 1); + //var idx = _.findIndex(blade.realOperationsCollection, function (x) { return x.id === blade.origEntity.id; }); + //blade.realOperationsCollection.splice(idx, 1); + + //bladeNavigationService.closeBlade(blade); + } + else { + subscriptionAPI.delete({ ids: blade.origEntity.id }, function () { + blade.parentBlade.refresh(); + bladeNavigationService.closeBlade(blade); + }); + } } } - } - }; - dialogService.showConfirmationDialog(dialog); + }; + dialogService.showConfirmationDialog(dialog); + }, + canExecuteMethod: function () { + return true; + }, + permission: 'order:delete' }, - canExecuteMethod: function () { - return true; - }, - permission: 'order:delete' - }, - { - name: "orders.commands.cancel-document", icon: 'fa fa-remove', - executeMethod: function () { - var dialog = { - id: "confirmCancelOperation", - callback: function (reason) { - if (reason) { - blade.currentEntity.cancelReason = reason; - blade.currentEntity.cancelledDate = moment().utc(); - blade.currentEntity.isCancelled = true; - blade.setEntityStatus('Canceled'); - $scope.saveChanges(); + { + name: "orders.commands.cancel-document", icon: 'fa fa-remove', + executeMethod: function () { + var dialog = { + id: "confirmCancelOperation", + callback: function (reason) { + if (reason) { + blade.currentEntity.cancelReason = reason; + blade.currentEntity.cancelledDate = moment().utc(); + blade.currentEntity.isCancelled = true; + blade.setEntityStatus('Canceled'); + $scope.saveChanges(); + } } - } - }; - dialogService.showDialog(dialog, 'Modules/$(VirtoCommerce.Orders)/Scripts/dialogs/cancelOperation-dialog.tpl.html', 'virtoCommerce.orderModule.confirmCancelDialogController'); - }, - canExecuteMethod: function () { - return blade.currentEntity && !blade.currentEntity.isCancelled; + }; + dialogService.showDialog(dialog, 'Modules/$(VirtoCommerce.Orders)/Scripts/dialogs/cancelOperation-dialog.tpl.html', 'virtoCommerce.orderModule.confirmCancelDialogController'); + }, + canExecuteMethod: function () { + return blade.currentEntity && !blade.currentEntity.isCancelled; + }, + permission: blade.updatePermission }, - permission: blade.updatePermission - }, - { - name: "subscription.commands.new-order", icon: 'fa fa-file-text', - executeMethod: function () { - dialogService.showConfirmationDialog({ - id: "confirmDialog", - title: "subscription.dialogs.new-order.title", - message: "subscription.dialogs.new-order.message", - callback: function (confirmed) { - if (confirmed) { - bladeNavigationService.closeChildrenBlades(blade, function () { - subscriptionAPI.createOrder(blade.currentEntity, function (result) { - blade.refresh(); - blade.parentBlade.refresh(); + { + name: "subscription.commands.new-order", icon: 'fa fa-file-text', + executeMethod: function () { + dialogService.showConfirmationDialog({ + id: "confirmDialog", + title: "subscription.dialogs.new-order.title", + message: "subscription.dialogs.new-order.message", + callback: function (confirmed) { + if (confirmed) { + bladeNavigationService.closeChildrenBlades(blade, function () { + subscriptionAPI.createOrder(blade.currentEntity, function (result) { + blade.refresh(); + blade.parentBlade.refresh(); + }); }); - }); + } } - } - }); - }, - canExecuteMethod: function () { - return !blade.isLocked && !isDirty(); - }, - permission: 'order:create' - } - ]; + }); + }, + canExecuteMethod: function () { + return !blade.isLocked && !isDirty(); + }, + permission: 'order:create' + } + ]; + }; blade.onClose = function (closeCallback) { bladeNavigationService.showConfirmationIfNeeded(isDirty(), canSave(), blade, $scope.saveChanges, closeCallback, "orders.dialogs.operation-save.title", "orders.dialogs.operation-save.message"); From 0ec6e388284bedcea2390eed90b962ffb5c5bc5f Mon Sep 17 00:00:00 2001 From: eMazeika Date: Tue, 3 Oct 2017 11:55:19 +0300 Subject: [PATCH 3/4] FIX: overlapping widgets #2 --- .../blades/subscription-detail.tpl.html | 2 +- .../Scripts/subscription.js | 22 +++++++++---------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/VirtoCommerce.SubscriptionModule.Web/Scripts/blades/subscription-detail.tpl.html b/VirtoCommerce.SubscriptionModule.Web/Scripts/blades/subscription-detail.tpl.html index a2f298d..cfc11d6 100644 --- a/VirtoCommerce.SubscriptionModule.Web/Scripts/blades/subscription-detail.tpl.html +++ b/VirtoCommerce.SubscriptionModule.Web/Scripts/blades/subscription-detail.tpl.html @@ -15,7 +15,7 @@ - + \ No newline at end of file diff --git a/VirtoCommerce.SubscriptionModule.Web/Scripts/subscription.js b/VirtoCommerce.SubscriptionModule.Web/Scripts/subscription.js index 1b447e0..32229dc 100644 --- a/VirtoCommerce.SubscriptionModule.Web/Scripts/subscription.js +++ b/VirtoCommerce.SubscriptionModule.Web/Scripts/subscription.js @@ -106,17 +106,12 @@ angular.module(moduleName, ['virtoCommerce.orderModule']) $compile(response.data); }); - // register WIDGETS + // register WIDGETS widgetService.registerWidget({ controller: 'virtoCommerce.subscriptionModule.subscriptionOrdersWidgetController', template: 'Modules/$(VirtoCommerce.Subscription)/Scripts/widgets/subscription-orders-widget.tpl.html' }, 'subscriptionDetail'); - _.each(widgetService.widgetsMap['customerOrderDetailWidgets'], function (x) { - if (x.controller !== 'platformWebApp.dynamicPropertyWidgetController') - widgetService.registerWidget(x, 'subscriptionDetail'); - }); - widgetService.registerWidget({ controller: 'virtoCommerce.subscriptionModule.orderDynamicPropertyWidgetController', template: 'Modules/$(VirtoCommerce.Subscription)/Scripts/widgets/orderDynamicPropertyWidget.tpl.html' @@ -135,16 +130,21 @@ angular.module(moduleName, ['virtoCommerce.orderModule']) controller: 'virtoCommerce.subscriptionModule.notificationsLogWidgetController', template: 'Modules/$(VirtoCommerce.Subscription)/Scripts/widgets/notificationsLogWidget.tpl.html' }, 'subscriptionDetail'); - + var scheduleWidget = { - controller: 'virtoCommerce.subscriptionModule.scheduleWidgetController', - // isVisible: function (blade) { return blade.isSubscriptionsEnabled; }, - template: 'Modules/$(VirtoCommerce.Subscription)/Scripts/widgets/integrations/schedule-widget.tpl.html' + controller: 'virtoCommerce.subscriptionModule.scheduleWidgetController', + // isVisible: function (blade) { return blade.isSubscriptionsEnabled; }, + template: 'Modules/$(VirtoCommerce.Subscription)/Scripts/widgets/integrations/schedule-widget.tpl.html' }; widgetService.registerWidget(scheduleWidget, 'subscriptionDetail'); - // integration: schedule in product details + // integration: schedule in product details widgetService.registerWidget(scheduleWidget, 'itemDetail'); + _.each(widgetService.widgetsMap['customerOrderDetailWidgets'], function (x) { + if (x.controller !== 'platformWebApp.dynamicPropertyWidgetController') + widgetService.registerWidget(x, 'subscriptionDetail'); + }); + // integration: subscription in order details widgetService.registerWidget({ controller: 'virtoCommerce.subscriptionModule.orderSubscriptionWidgetController', From 6853bed726edeea17c35b19be8d8e003ac62d793 Mon Sep 17 00:00:00 2001 From: Eugeny Tatarincev Date: Tue, 10 Oct 2017 11:00:17 +0200 Subject: [PATCH 4/4] 1.0.4 --- CommonAssemblyInfo.cs | 4 ++-- VirtoCommerce.SubscriptionModule.Web/module.manifest | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CommonAssemblyInfo.cs b/CommonAssemblyInfo.cs index 46fdb4b..c08993c 100644 --- a/CommonAssemblyInfo.cs +++ b/CommonAssemblyInfo.cs @@ -10,8 +10,8 @@ [assembly: AssemblyProduct("VirtoCommerce Subscription Module")] [assembly: AssemblyCopyright("Copyright © VirtoCommerce 2011-2017")] -[assembly: AssemblyFileVersion("1.0.3.0")] -[assembly: AssemblyVersion("1.0.3.0")] +[assembly: AssemblyFileVersion("1.0.4.0")] +[assembly: AssemblyVersion("1.0.4.0")] #if DEBUG diff --git a/VirtoCommerce.SubscriptionModule.Web/module.manifest b/VirtoCommerce.SubscriptionModule.Web/module.manifest index da67d78..64a1216 100644 --- a/VirtoCommerce.SubscriptionModule.Web/module.manifest +++ b/VirtoCommerce.SubscriptionModule.Web/module.manifest @@ -1,7 +1,7 @@  VirtoCommerce.Subscription - 1.0.3 + 1.0.4 2.12.4