-
Notifications
You must be signed in to change notification settings - Fork 10
Expand file tree
/
Copy pathfulfillment-center-list.js
More file actions
112 lines (100 loc) · 5.09 KB
/
fulfillment-center-list.js
File metadata and controls
112 lines (100 loc) · 5.09 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
angular.module('virtoCommerce.inventoryModule')
.controller('virtoCommerce.inventoryModule.fulfillmentListController', ['$scope', 'virtoCommerce.inventoryModule.fulfillments', 'platformWebApp.bladeNavigationService', 'platformWebApp.bladeUtils', 'uiGridConstants', 'platformWebApp.uiGridHelper', 'platformWebApp.dialogService',
function ($scope, fulfillments, bladeNavigationService, bladeUtils, uiGridConstants, uiGridHelper, dialogService) {
$scope.uiGridConstants = uiGridConstants;
var blade = $scope.blade;
// actions on load
blade.title = 'core.blades.fulfillment-center-list.title';
blade.subtitle = 'core.blades.fulfillment-center-list.subtitle';
blade.refresh = function (parentRefresh = false) {
blade.isLoading = true;
fulfillments.search({
searchPhrase: filter.keyword ? filter.keyword : undefined,
outerId: blade.outerId ? blade.outerId : undefined,
organizationId: blade.organizationId ? blade.organizationId : undefined,
sort: uiGridHelper.getSortExpression($scope),
skip: ($scope.pageSettings.currentPage - 1) * $scope.pageSettings.itemsPerPageCount,
take: $scope.pageSettings.itemsPerPageCount
}, function (response) {
blade.isLoading = false;
$scope.pageSettings.totalItems = response.totalCount;
blade.currentEntities = response.results;
if (parentRefresh === true && blade.parentBlade && blade.parentBlade.refresh) {
blade.parentBlade.refresh(true);
}
return response.results;
});
};
function showDetailBlade(node, title) {
$scope.selectedNodeId = node.id;
var newBlade = {
id: 'fulfillmentDetail',
currentEntityId: node.id,
currentEntity: node,
title: title,
subtitle: 'inventory.blades.fulfillment-center-detail.subtitle',
controller: 'virtoCommerce.inventoryModule.fulfillmentCenterDetailController',
template: 'Modules/$(VirtoCommerce.Inventory)/Scripts/blades/fulfillment-center-detail.tpl.html'
};
bladeNavigationService.showBlade(newBlade, blade);
};
blade.selectNode = function (node) {
showDetailBlade(node, node.name);
};
blade.headIcon = 'fa fa-wrench';
blade.toolbarCommands = [
{
name: "platform.commands.refresh", icon: 'fa fa-refresh',
executeMethod: blade.refresh,
canExecuteMethod: function () {
return true;
}
},
{
name: "platform.commands.add", icon: 'fas fa-plus',
executeMethod: function () {
showDetailBlade({ maxReleasesPerPickBatch: 20, pickDelay: 30, outerId: blade.outerId, organizationId: blade.organizationId }, 'New Fulfillment Center');
},
canExecuteMethod: function () {
return true;
},
permission: 'inventory:fulfillment:edit'
}
];
$scope.delete = function (item) {
var dialog = {
id: "confirmDelete",
title: "inventory.dialogs.fulfillment-delete.title",
message: "inventory.dialogs.fulfillment-delete.message",
name: item.name,
callback: function (remove) {
if (remove) {
blade.isLoading = true;
fulfillments.remove({ ids: item.id }, function () {
blade.refresh(true);
blade.isLoading = false;
}, function (error) {
bladeNavigationService.setError('Error ' + error.status, blade);
});
}
}
}
dialogService.showDeleteConfirmationDialog(dialog);
}
// simple and advanced filtering
var filter = $scope.filter = {};
filter.criteriaChanged = function () {
if ($scope.pageSettings.currentPage > 1) {
$scope.pageSettings.currentPage = 1;
} else {
blade.refresh();
}
};
// ui-grid
$scope.setGridOptions = function (gridOptions) {
uiGridHelper.initialize($scope, gridOptions, function (gridApi) {
uiGridHelper.bindRefreshOnSortChanged($scope);
});
bladeUtils.initializePagination($scope);
};
}]);