You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficcontrol.apache.org by da...@apache.org on 2017/06/08 19:41:46 UTC
[4/5] incubator-trafficcontrol git commit: adds the ability to bulk
assign ds's to user in ui
adds the ability to bulk assign ds's to user in ui
Project: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/commit/b3ba1437
Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/tree/b3ba1437
Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/diff/b3ba1437
Branch: refs/heads/master
Commit: b3ba14370e6b9b8e66976be54215a565a4035f65
Parents: aee08f6
Author: Jeremy Mitchell <mi...@gmail.com>
Authored: Thu Jun 8 11:50:53 2017 -0600
Committer: Dan Kirkwood <da...@gmail.com>
Committed: Thu Jun 8 13:41:32 2017 -0600
----------------------------------------------------------------------
.../src/common/api/DeliveryServiceService.js | 2 +-
.../ui/app/src/common/api/UserService.js | 4 +-
.../modules/navigation/navigation.tpl.html | 2 +-
.../TableUserDSUnassignedController.js | 59 ++++++++++++++++----
.../TableUserDeliveryServicesController.js | 10 ++--
.../table.userDSUnassigned.tpl.html | 6 +-
6 files changed, 61 insertions(+), 22 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/b3ba1437/traffic_ops/experimental/ui/app/src/common/api/DeliveryServiceService.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/api/DeliveryServiceService.js b/traffic_ops/experimental/ui/app/src/common/api/DeliveryServiceService.js
index 165d320..b653f06 100644
--- a/traffic_ops/experimental/ui/app/src/common/api/DeliveryServiceService.js
+++ b/traffic_ops/experimental/ui/app/src/common/api/DeliveryServiceService.js
@@ -85,7 +85,7 @@ var DeliveryServiceService = function(Restangular, locationUtils, httpService, m
};
this.assignDeliveryServiceServers = function(dsId, servers) {
- return Restangular.service('deliveryserviceserver').post( { dsId: dsId, servers: servers, replace: true })
+ return Restangular.service('deliveryserviceserver').post( { dsId: dsId, servers: servers, replace: true } )
.then(
function() {
messageModel.setMessages([ { level: 'success', text: 'Servers linked to delivery service' } ], false);
http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/b3ba1437/traffic_ops/experimental/ui/app/src/common/api/UserService.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/api/UserService.js b/traffic_ops/experimental/ui/app/src/common/api/UserService.js
index 6fcc2ac..3b187a1 100644
--- a/traffic_ops/experimental/ui/app/src/common/api/UserService.js
+++ b/traffic_ops/experimental/ui/app/src/common/api/UserService.js
@@ -126,8 +126,8 @@ var UserService = function(Restangular, $http, $location, $q, authService, httpS
);
};
- this.assignUserDeliveryServices = function(userDSMappings) {
- return Restangular.service('deliveryservice_user').post(userDSMappings)
+ this.assignUserDeliveryServices = function(userId, deliveryServices) {
+ return Restangular.service('deliveryservice_user').post( { userId: userId, deliveryServices: deliveryServices, replace: true } )
.then(
function() {
messageModel.setMessages([ { level: 'success', text: 'Delivery services linked to user' } ], false);
http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/b3ba1437/traffic_ops/experimental/ui/app/src/common/modules/navigation/navigation.tpl.html
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/navigation/navigation.tpl.html b/traffic_ops/experimental/ui/app/src/common/modules/navigation/navigation.tpl.html
index 7a1bb82..41edd41 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/navigation/navigation.tpl.html
+++ b/traffic_ops/experimental/ui/app/src/common/modules/navigation/navigation.tpl.html
@@ -19,7 +19,7 @@ under the License.
<div class="main-nav scroll-view">
<div class="navbar nav_title">
- <span class="site_title">Traffic Ops</span>
+ <span class="site_title">Traffic Portal</span>
</div>
<div class="clearfix"></div>
<div id="sidebar-menu" class="main_menu_side hidden-print main_menu">
http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/b3ba1437/traffic_ops/experimental/ui/app/src/common/modules/table/userDeliveryServices/TableUserDSUnassignedController.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/userDeliveryServices/TableUserDSUnassignedController.js b/traffic_ops/experimental/ui/app/src/common/modules/table/userDeliveryServices/TableUserDSUnassignedController.js
index 746433e..5e430f0 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/table/userDeliveryServices/TableUserDSUnassignedController.js
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/userDeliveryServices/TableUserDSUnassignedController.js
@@ -17,22 +17,59 @@
* under the License.
*/
-var TableUserDSUnassignedController = function(user, deliveryServices, $scope, $uibModalInstance) {
+var TableUserDSUnassignedController = function(user, deliveryServices, userDeliveryServices, $scope, $uibModalInstance) {
- var selectedDeliveryServices = [];
-
- $scope.user = user;
-
- $scope.unassignedDeliveryServices = deliveryServices;
+ var selectedDeliveryServiceIds = [];
var addDS = function(dsId) {
- if (_.indexOf(selectedDeliveryServices, dsId) == -1) {
- selectedDeliveryServices.push(dsId);
+ if (_.indexOf(selectedDeliveryServiceIds, dsId) == -1) {
+ selectedDeliveryServiceIds.push(dsId);
}
};
var removeDS = function(dsId) {
- selectedDeliveryServices = _.without(selectedDeliveryServices, dsId);
+ selectedDeliveryServiceIds = _.without(selectedDeliveryServiceIds, dsId);
+ };
+
+ var addAll = function() {
+ markDSs(true);
+ selectedDeliveryServiceIds = _.pluck(deliveryServices, 'id');
+ };
+
+ var removeAll = function() {
+ markDSs(false);
+ selectedDeliveryServiceIds = [];
+ };
+
+ var markDSs = function(selected) {
+ $scope.selectedDSs = _.map(deliveryServices, function(ds) {
+ ds['selected'] = selected;
+ return ds;
+ });
+ };
+
+ $scope.user = user;
+
+ $scope.selectedDSs = _.map(deliveryServices, function(ds) {
+ var isAssigned = _.find(userDeliveryServices, function(userDS) { return userDS.id == ds.id });
+ if (isAssigned) {
+ ds['selected'] = true; // so the checkbox will be checked
+ selectedDeliveryServiceIds.push(ds.id); // so the ds is added to selected delivery services
+ }
+ return ds;
+ });
+
+ $scope.allSelected = function() {
+ return deliveryServices.length == selectedDeliveryServiceIds.length;
+ };
+
+ $scope.selectAll = function($event) {
+ var checkbox = $event.target;
+ if (checkbox.checked) {
+ addAll();
+ } else {
+ removeAll();
+ }
};
$scope.updateDeliveryServices = function($event, dsId) {
@@ -45,7 +82,7 @@ var TableUserDSUnassignedController = function(user, deliveryServices, $scope, $
};
$scope.submit = function() {
- $uibModalInstance.close(selectedDeliveryServices);
+ $uibModalInstance.close(selectedDeliveryServiceIds);
};
$scope.cancel = function () {
@@ -66,5 +103,5 @@ var TableUserDSUnassignedController = function(user, deliveryServices, $scope, $
};
-TableUserDSUnassignedController.$inject = ['user', 'deliveryServices', '$scope', '$uibModalInstance'];
+TableUserDSUnassignedController.$inject = ['user', 'deliveryServices', 'userDeliveryServices', '$scope', '$uibModalInstance'];
module.exports = TableUserDSUnassignedController;
http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/b3ba1437/traffic_ops/experimental/ui/app/src/common/modules/table/userDeliveryServices/TableUserDeliveryServicesController.js
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/userDeliveryServices/TableUserDeliveryServicesController.js b/traffic_ops/experimental/ui/app/src/common/modules/table/userDeliveryServices/TableUserDeliveryServicesController.js
index 763ebe4..69ab8bf 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/table/userDeliveryServices/TableUserDeliveryServicesController.js
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/userDeliveryServices/TableUserDeliveryServicesController.js
@@ -41,15 +41,17 @@ var TableUserDeliveryServicesController = function(user, userDeliveryServices, $
user: function() {
return user;
},
- deliveryServices: function(userService) {
- return userService.getUnassignedUserDeliveryServices(user.id);
+ deliveryServices: function(deliveryServiceService) {
+ return deliveryServiceService.getDeliveryServices();
+ },
+ userDeliveryServices: function() {
+ return userDeliveryServices;
}
}
});
modalInstance.result.then(function(selectedDSIds) {
console.log(selectedDSIds);
- var userDSAssignments = { userId: user.id, deliveryServices: selectedDSIds };
- userService.assignUserDeliveryServices(userDSAssignments)
+ userService.assignUserDeliveryServices(user.id, selectedDSIds)
.then(
function() {
$scope.refresh();
http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/b3ba1437/traffic_ops/experimental/ui/app/src/common/modules/table/userDeliveryServices/table.userDSUnassigned.tpl.html
----------------------------------------------------------------------
diff --git a/traffic_ops/experimental/ui/app/src/common/modules/table/userDeliveryServices/table.userDSUnassigned.tpl.html b/traffic_ops/experimental/ui/app/src/common/modules/table/userDeliveryServices/table.userDSUnassigned.tpl.html
index e5e1018..58d9621 100644
--- a/traffic_ops/experimental/ui/app/src/common/modules/table/userDeliveryServices/table.userDSUnassigned.tpl.html
+++ b/traffic_ops/experimental/ui/app/src/common/modules/table/userDeliveryServices/table.userDSUnassigned.tpl.html
@@ -27,14 +27,14 @@ under the License.
<table id="userDSUnassignedTable" class="table responsive-utilities jambo_table" style="table-layout:fixed; width:100%;">
<thead>
<tr class="headings">
- <th></th>
+ <th style="padding-left: 10px;"><input type="checkbox" ng-click="selectAll($event)" ng-checked="allSelected()"></th>
<th>xmlId</th>
<th>displayName</th>
</tr>
</thead>
<tbody>
- <tr ng-repeat="ds in ::unassignedDeliveryServices">
- <td><input type="checkbox" ng-click="updateDeliveryServices($event, ds.id)"></td>
+ <tr ng-repeat="ds in ::selectedDSs">
+ <td><input type="checkbox" ng-click="updateDeliveryServices($event, ds.id)" ng-checked="ds.selected"></td>
<td>{{::ds.xmlId}}</td>
<td>{{::ds.displayName}}</td>
</tr>