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>