You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@trafficcontrol.apache.org by GitBox <gi...@apache.org> on 2018/03/28 14:50:40 UTC

[GitHub] dewrich closed pull request #2060: [Issue 2057] - adds the ability to compare 2 delivery service requests

dewrich closed pull request #2060: [Issue 2057] - adds the ability to compare 2 delivery service requests
URL: https://github.com/apache/incubator-trafficcontrol/pull/2060
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git a/traffic_portal/app/src/app.js b/traffic_portal/app/src/app.js
index 4169d07c3..990e8f62c 100644
--- a/traffic_portal/app/src/app.js
+++ b/traffic_portal/app/src/app.js
@@ -81,6 +81,7 @@ var trafficPortal = angular.module('trafficPortal', [
         require('./modules/private/dashboard').name,
         require('./modules/private/dashboard/view').name,
         require('./modules/private/deliveryServiceRequests').name,
+        require('./modules/private/deliveryServiceRequests/compare').name,
         require('./modules/private/deliveryServiceRequests/comments').name,
         require('./modules/private/deliveryServiceRequests/edit').name,
         require('./modules/private/deliveryServiceRequests/list').name,
diff --git a/traffic_portal/app/src/common/modules/dialog/compare/DialogCompareController.js b/traffic_portal/app/src/common/modules/dialog/compare/DialogCompareController.js
index 0cdaab33a..369718e1d 100644
--- a/traffic_portal/app/src/common/modules/dialog/compare/DialogCompareController.js
+++ b/traffic_portal/app/src/common/modules/dialog/compare/DialogCompareController.js
@@ -33,13 +33,16 @@ var DialogCompareController = function(params, collection, $scope, $uibModalInst
 		$uibModalInstance.dismiss('cancel');
 	};
 
-	$scope.label = function (item) {
-		if ($scope.params.label !== undefined) {
-			return $scope.params.label
+	var init = function() {
+		if ($scope.params.label) {
+			$scope.label = function(item) { return item[$scope.params.label]; }
+		} else if ($scope.params.labelFunction) {
+			$scope.label = $scope.params.labelFunction;
 		} else {
-			return 'name';
+			$scope.label = function(item) { return item['name']; }
 		}
 	};
+	init();
 
 };
 
diff --git a/traffic_portal/app/src/common/modules/dialog/compare/dialog.compare.tpl.html b/traffic_portal/app/src/common/modules/dialog/compare/dialog.compare.tpl.html
index 402153e14..22b4d0ae0 100644
--- a/traffic_portal/app/src/common/modules/dialog/compare/dialog.compare.tpl.html
+++ b/traffic_portal/app/src/common/modules/dialog/compare/dialog.compare.tpl.html
@@ -26,7 +26,7 @@ <h4 class="modal-title">{{::params.title}}</h4>
     <form name="compareForm" novalidate>
         <div class="row">
             <div class="col-sm-12 col-md-12">
-                <select class="form-control" ng-model="selectedItems[0]" ng-options="item as item[label()] for item in collection" required>
+                <select class="form-control" ng-model="selectedItems[0]" ng-options="item as label(item) for item in collection" required>
                     <option value="">Select...</option>
                 </select>
             </div>
@@ -34,7 +34,7 @@ <h4 class="modal-title">{{::params.title}}</h4>
         <br>
         <div class="row">
             <div class="col-sm-12 col-md-12">
-                <select class="form-control" ng-model="selectedItems[1]" ng-options="item as item[label()] for item in collection" required>
+                <select class="form-control" ng-model="selectedItems[1]" ng-options="item as label(item) for item in collection" required>
                     <option value="">Select...</option>
                 </select>
             </div>
diff --git a/traffic_portal/app/src/common/modules/dialog/select/DialogSelectController.js b/traffic_portal/app/src/common/modules/dialog/select/DialogSelectController.js
index 74fe505e9..5fe85cff6 100644
--- a/traffic_portal/app/src/common/modules/dialog/select/DialogSelectController.js
+++ b/traffic_portal/app/src/common/modules/dialog/select/DialogSelectController.js
@@ -34,22 +34,17 @@ var DialogSelectController = function(params, collection, $scope, $uibModalInsta
 		$uibModalInstance.dismiss('cancel');
 	};
 
-	$scope.label = function (item) {
-		if ($scope.params.label) {
-			return item[$scope.params.label];
-		} else {
-			return item['name'];
-		}
-	};
-
 	var init = function() {
-		if ($scope.params.labelFunction) {
+		if ($scope.params.label) {
+			$scope.label = function(item) { return item[$scope.params.label]; }
+		} else if ($scope.params.labelFunction) {
 			$scope.label = $scope.params.labelFunction;
+		} else {
+			$scope.label = function(item) { return item['name']; }
 		}
 	};
 	init();
 
-
 };
 
 DialogSelectController.$inject = ['params', 'collection', '$scope', '$uibModalInstance'];
diff --git a/traffic_portal/app/src/common/modules/table/deliveryServiceRequests/TableDeliveryServiceRequestsController.js b/traffic_portal/app/src/common/modules/table/deliveryServiceRequests/TableDeliveryServiceRequestsController.js
index 1cf88635c..3692f5947 100644
--- a/traffic_portal/app/src/common/modules/table/deliveryServiceRequests/TableDeliveryServiceRequestsController.js
+++ b/traffic_portal/app/src/common/modules/table/deliveryServiceRequests/TableDeliveryServiceRequestsController.js
@@ -128,6 +128,34 @@ var TableDeliveryServicesRequestsController = function(dsRequests, $scope, $stat
 		return (request.status == 'rejected' || request.status == 'complete');
 	};
 
+	$scope.compareRequests = function() {
+		var params = {
+			title: 'Compare Delivery Service Requests',
+			message: "Please select 2 delivery service requests to compare",
+			labelFunction: function (item) {
+				return item['deliveryService']['xmlId'] + ' ' + item['changeType'] + ' (' + item['author'] + ' created on ' + item['createdAt'] + ')'
+			}
+		};
+		var modalInstance = $uibModal.open({
+			templateUrl: 'common/modules/dialog/compare/dialog.compare.tpl.html',
+			controller: 'DialogCompareController',
+			size: 'lg',
+			resolve: {
+				params: function () {
+					return params;
+				},
+				collection: function(deliveryServiceRequestService) {
+					return deliveryServiceRequestService.getDeliveryServiceRequests();
+				}
+			}
+		});
+		modalInstance.result.then(function(requests) {
+			$location.path($location.path() + '/compare/' + requests[0].id + '/' + requests[1].id);
+		}, function () {
+			// do nothing
+		});
+	};
+
 	$scope.assignRequest = function(request, assign, $event) {
 		$event.stopPropagation(); // this kills the click event so it doesn't trigger anything else
 		var params = {
diff --git a/traffic_portal/app/src/common/modules/table/deliveryServiceRequests/table.deliveryServiceRequests.tpl.html b/traffic_portal/app/src/common/modules/table/deliveryServiceRequests/table.deliveryServiceRequests.tpl.html
index 0d5c9c5ad..2ce315bc1 100644
--- a/traffic_portal/app/src/common/modules/table/deliveryServiceRequests/table.deliveryServiceRequests.tpl.html
+++ b/traffic_portal/app/src/common/modules/table/deliveryServiceRequests/table.deliveryServiceRequests.tpl.html
@@ -25,6 +25,15 @@
         <div class="pull-right" role="group">
             <button class="btn btn-primary" title="Create Delivery Service Request" ng-click="createRequest()"><i class="fa fa-plus"></i></button>
             <button class="btn btn-default" title="Refresh" ng-click="refresh()"><i class="fa fa-refresh"></i></button>
+            <div class="btn-group" role="group" uib-dropdown is-open="more.isopen">
+                <button type="button" class="btn btn-default dropdown-toggle" uib-dropdown-toggle aria-haspopup="true" aria-expanded="false">
+                    More
+                    <span class="caret"></span>
+                </button>
+                <ul class="dropdown-menu-right dropdown-menu" uib-dropdown-menu>
+                    <li role="menuitem"><a ng-click="compareRequests()">Compare Delivery Service Requests</a></li>
+                </ul>
+            </div>
         </div>
         <div class="clearfix"></div>
     </div>
diff --git a/traffic_portal/app/src/modules/private/deliveryServiceRequests/compare/index.js b/traffic_portal/app/src/modules/private/deliveryServiceRequests/compare/index.js
new file mode 100644
index 000000000..00bddc116
--- /dev/null
+++ b/traffic_portal/app/src/modules/private/deliveryServiceRequests/compare/index.js
@@ -0,0 +1,54 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+module.exports = angular.module('trafficPortal.private.deliveryServiceRequests.compare', [])
+	.config(function($stateProvider, $urlRouterProvider) {
+		$stateProvider
+			.state('trafficPortal.private.deliveryServiceRequests.compare', {
+				url: '/compare/{dsr1Id}/{dsr2Id}',
+				views: {
+					deliveryServiceRequestsContent: {
+						templateUrl: 'common/modules/compare/compare.tpl.html',
+						controller: 'CompareController',
+						resolve: {
+							dsr1: function($stateParams, deliveryServiceRequestService) {
+								return deliveryServiceRequestService.getDeliveryServiceRequests({ id: $stateParams.dsr1Id });
+							},
+							dsr2: function($stateParams, deliveryServiceRequestService) {
+								return deliveryServiceRequestService.getDeliveryServiceRequests({ id: $stateParams.dsr2Id });
+							},
+							item1Name: function(dsr1) {
+								return dsr1[0].deliveryService.xmlId + ' ' + dsr1[0].changeType + ' (' + dsr1[0].author + ' created on ' + dsr1[0].createdAt + ')';
+							},
+							item2Name: function(dsr2) {
+								return dsr2[0].deliveryService.xmlId + ' ' + dsr2[0].changeType + ' (' + dsr2[0].author + ' created on ' + dsr2[0].createdAt + ')';
+							},
+							item1: function(dsr1) {
+								return dsr1[0].deliveryService;
+							},
+							item2: function(dsr2) {
+								return dsr2[0].deliveryService;
+							}
+						}
+					}
+				}
+			})
+		;
+		$urlRouterProvider.otherwise('/');
+	});


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services