You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by li...@apache.org on 2018/05/23 08:46:43 UTC

[incubator-servicecomb-service-center] branch master updated: Display proper error message in UI (#354)

This is an automated email from the ASF dual-hosted git repository.

littlecui pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-servicecomb-service-center.git


The following commit(s) were added to refs/heads/master by this push:
     new f9b9319  Display proper error message in UI (#354)
f9b9319 is described below

commit f9b93192203f1b4cd6539c52428f993e7aaba593
Author: Mohammad Asif Siddiqui <mo...@huawei.com>
AuthorDate: Wed May 23 14:16:39 2018 +0530

    Display proper error message in UI (#354)
---
 frontend/app/scripts/languages/locale-en.js        |  4 +-
 .../modules/dashboard/controllers/dashboardCtrl.js | 18 ++++-----
 .../serviceCenter/controllers/schemaCtrl.js        |  4 +-
 .../serviceCenter/controllers/serviceInfoCtrl.js   |  2 +-
 .../serviceCenter/controllers/servicesListCtrl.js  |  6 +--
 frontend/app/scripts/scRouterConfig.js             |  4 +-
 frontend/app/scripts/services/httpService.js       | 46 ++++++++++++++--------
 frontend/app/styles/main.css                       |  8 ++--
 frontend/app/views/serverError.html                |  5 +--
 9 files changed, 54 insertions(+), 43 deletions(-)

diff --git a/frontend/app/scripts/languages/locale-en.js b/frontend/app/scripts/languages/locale-en.js
index 942df92..fb71202 100644
--- a/frontend/app/scripts/languages/locale-en.js
+++ b/frontend/app/scripts/languages/locale-en.js
@@ -49,9 +49,9 @@ angular.module('serviceCenter')
 	"dashboard": "Dashboard",
 	"getSchema": "Get Schema",
 	"error": "Error",
-	"errorCode": "ErrorCode",
+	"errorCode": "Error Code",
 	"errorText": "ErrorText",
-	"errorStatus": "ErrorStatus",
+	"errorStatus": "Error Message",
 	"noSchemaFilesExists": "No Schema Files Exists",
 	"instances": "Instances",
 	"operations": "Operations",
diff --git a/frontend/app/scripts/modules/dashboard/controllers/dashboardCtrl.js b/frontend/app/scripts/modules/dashboard/controllers/dashboardCtrl.js
index c50b59a..ee859db 100644
--- a/frontend/app/scripts/modules/dashboard/controllers/dashboardCtrl.js
+++ b/frontend/app/scripts/modules/dashboard/controllers/dashboardCtrl.js
@@ -18,29 +18,29 @@
 angular.module('serviceCenter.dashboard', [])
 	.controller('dashboardController', ['$scope', '$state','apiConstant', 'httpService','$q', '$interval', function($scope, $state, apiConstant, httpService, $q, $interval){
 
-		$scope.labels = ["STRATING", "UP", "DOWN", "OUT OF SERVICE"];
+		$scope.labels = ["STARTING", "UP", "DOWN", "OUT OF SERVICE"];
 		$scope.colors = ["#00c0ef","#00a65a", "#dd4b39", "#A9A9A9"];
 		$scope.servicesChartData = [];
 		
 		$scope.servicesStatusData = [
 			{
 				count: 0,
-				title: "starting",
+				title: "STARTING",
 				iconName: "fa-spinner"
 			},
 			{
 				count: 0,
-				title: "up",
+				title: "UP",
 				iconName: "fa-arrow-up"
 			},
 			{
 				count: 0,
-				title: "down",
+				title: "DOWN",
 				iconName: "fa-arrow-down"
 			},
 			{
 				count: 0,
-				title: "outofservice",
+				title: "OUTOFSERVICE",
 				iconName: "fa-ban"
 			}
 		];
@@ -84,16 +84,16 @@ angular.module('serviceCenter.dashboard', [])
 				if(response && response.data && response.data.allServicesDetail) {
 					$scope.dashboardInfo[0].count = response.data.allServicesDetail.length;
 					response.data.allServicesDetail.forEach(function(services){
-						if(services.microService.status.toLowerCase() == "starting") {
+						if(services.microService.status == "STARTING") {
 							$scope.startingServices.push(services);
 						}
-						if(services.microService.status.toLowerCase() == "up"){		
+						if(services.microService.status == "UP"){
 							$scope.runningServices.push(services);
 						}
-						if(services.microService.status.toLowerCase() == "down"){
+						if(services.microService.status == "DOWN"){
 							$scope.stoppedServices.push(services);
 						}
-						if(services.microService.status.toLowerCase() == "outofservice"){
+						if(services.microService.status == "OUTOFSERVICE"){
 							$scope.outofserviceServices.push(services);
 						}
 
diff --git a/frontend/app/scripts/modules/serviceCenter/controllers/schemaCtrl.js b/frontend/app/scripts/modules/serviceCenter/controllers/schemaCtrl.js
index 4ff3e2b..746b96b 100644
--- a/frontend/app/scripts/modules/serviceCenter/controllers/schemaCtrl.js
+++ b/frontend/app/scripts/modules/serviceCenter/controllers/schemaCtrl.js
@@ -44,7 +44,7 @@ angular.module('serviceCenter.sc')
                     var headers = {
                         "X-ConsumerId": serviceId
                     };
-                    promises.push(httpService.apiRequest(url, method, null, headers, "nopopup"));
+                    promises.push(httpService.apiRequest(url, method, null, headers, null));
                 }
 
                 $q.all(promises).then(function(response) {
@@ -109,7 +109,7 @@ angular.module('serviceCenter.sc')
                 var instanceHeaders = {
                     "X-ConsumerId": serviceId
                 };
-                httpService.apiRequest(instanceApi, instanceMethod, null, instanceHeaders, "nopopup").then(function(response) {
+                httpService.apiRequest(instanceApi, instanceMethod, null, instanceHeaders, null).then(function(response) {
                     if (response && response.data && response.data.instances && response.data.instances.length > 0) {
                         for (var i = 0; i < response.data.instances.length; i++) {
                             addresses[i] = [];
diff --git a/frontend/app/scripts/modules/serviceCenter/controllers/serviceInfoCtrl.js b/frontend/app/scripts/modules/serviceCenter/controllers/serviceInfoCtrl.js
index f493fed..a92c95a 100644
--- a/frontend/app/scripts/modules/serviceCenter/controllers/serviceInfoCtrl.js
+++ b/frontend/app/scripts/modules/serviceCenter/controllers/serviceInfoCtrl.js
@@ -52,7 +52,7 @@ angular.module('serviceCenter.sc')
 				var url = apis[i];
 				var method = "GET";
 				var headers = {"X-ConsumerId": serviceId};
-				promises.push(httpService.apiRequest(url,method,null,headers,"nopopup"));
+				promises.push(httpService.apiRequest(url,method,null,headers,null));
 			}
 
 			$q.all(promises).then(function(response){
diff --git a/frontend/app/scripts/modules/serviceCenter/controllers/servicesListCtrl.js b/frontend/app/scripts/modules/serviceCenter/controllers/servicesListCtrl.js
index ec8de04..5f2c432 100644
--- a/frontend/app/scripts/modules/serviceCenter/controllers/servicesListCtrl.js
+++ b/frontend/app/scripts/modules/serviceCenter/controllers/servicesListCtrl.js
@@ -58,7 +58,7 @@ angular.module('serviceCenter.sc', [])
         			var url = apiConstant.api.deleteService.url;
         			var api =  url.replace("{{serviceId}}", $scope.deleteServiceId);
 					var method = apiConstant.api.deleteService.method;
-					httpService.apiRequest(api, method, null, null, "nopopup").then(function(response){
+					httpService.apiRequest(api, method, null, null, null).then(function(response){
 						if(response && response.status == 200){
 							$(".loader").hide();
 							$scope.refreshAppList();
@@ -111,7 +111,7 @@ angular.module('serviceCenter.sc', [])
 									serviceId: service.serviceId,
 									disableBtn: false
 								};
-								httpService.apiRequest(instanceUrl, instanceMethod, null, headers, "nopopup").then(function(resp){
+								httpService.apiRequest(instanceUrl, instanceMethod, null, headers, null).then(function(resp){
 									if(resp && resp.data && resp.data.instances){
 									   servicesList.instances = resp.data.instances.length;
 									   if(servicesList.instances > 0){
@@ -134,7 +134,7 @@ angular.module('serviceCenter.sc', [])
 									serviceId: service.serviceId,
 									disableBtn: false
 								};
-								httpService.apiRequest(instanceUrl, instanceMethod, null, headers, "nopopup").then(function(resp){
+								httpService.apiRequest(instanceUrl, instanceMethod, null, headers, null).then(function(resp){
 									if(resp && resp.data && resp.data.instances){
 									   servicesList.instances = resp.data.instances.length;
 									   if(servicesList.instances > 0){
diff --git a/frontend/app/scripts/scRouterConfig.js b/frontend/app/scripts/scRouterConfig.js
index 067415e..e286490 100644
--- a/frontend/app/scripts/scRouterConfig.js
+++ b/frontend/app/scripts/scRouterConfig.js
@@ -59,7 +59,7 @@ angular.module('serviceCenter.router', [])
                     var deferred = $q.defer();
                     var url = apiConstant.api.microservice.url;
                     var method = apiConstant.api.microservice.method;
-                    httpService.apiRequest(url, method, null, null, "nopopup").then(function(response){
+                    httpService.apiRequest(url, method, null, null, null).then(function(response){
                         $(".loader").hide();
                         if(response && response.data && response.data.services){
                             deferred.resolve(response);
@@ -114,7 +114,7 @@ angular.module('serviceCenter.router', [])
                     var deferred = $q.defer();
                     var url = apiConstant.api.microservice.url;
                     var method = apiConstant.api.microservice.method;
-                    httpService.apiRequest(url, method, null, null, "nopopup").then(function(response){
+                    httpService.apiRequest(url, method, null, null, null).then(function(response){
                         $(".loader").hide();
                         if(response && response.data && response.data.services){
                             deferred.resolve(response);
diff --git a/frontend/app/scripts/services/httpService.js b/frontend/app/scripts/services/httpService.js
index 5ff2fb3..b4de85a 100644
--- a/frontend/app/scripts/services/httpService.js
+++ b/frontend/app/scripts/services/httpService.js
@@ -16,39 +16,39 @@
  */
 'use strict';
 angular.module('serviceCenter')
-    .service('httpService', ['$http', '$q', '$mdDialog', 'apiConstant', function($http, $q, $mdDialog, apiConstant){
+    .service('httpService', ['$http', '$q', '$mdDialog', 'apiConstant', function($http, $q, $mdDialog, apiConstant) {
 
-	function apiRequest(requrl, method, payload, headers, nopopup){
+        function apiRequest(requrl, method, payload, headers, nopopup) {
             var tenant = localStorage.getItem('tenant');
-            if(!tenant || tenant == undefined || tenant == null){
+            if (!tenant || tenant == undefined || tenant == null) {
                 tenant = 'default';
                 localStorage.setItem('tenant', 'default');
             }
 
-	    var defer = $q.defer();
-            if(undefined === requrl || null === requrl || undefined === method || null === method){
+            var defer = $q.defer();
+            if (undefined === requrl || null === requrl || undefined === method || null === method) {
                 defer.reject("invalid params");
                 return defer.promise;
             }
             var baseUrl = "/sc"
-            if(undefined === headers || null === headers){
+            if (undefined === headers || null === headers) {
                 headers = {
-                    'x-domain-name' : tenant
+                    'x-domain-name': tenant
                 };
-            }else{
+            } else {
                 headers['x-domain-name'] = tenant;
             }
 
-            var url = baseUrl + '/'+ requrl;
+            var url = baseUrl + '/' + requrl;
             $http({
                 url: url,
                 method: method,
                 data: payload,
-                headers : headers
+                headers: headers
             }).then(function(response) {
                 defer.resolve(response);
             }, function(error) {
-                if(nopopup){
+                if (nopopup) {
                     defer.reject(error);
                     return;
                 }
@@ -59,8 +59,22 @@ angular.module('serviceCenter')
                     locals: {
                         error: error
                     },
-                    skipHide : true,
+                    skipHide: true,
                     controller: function($scope, $mdDialog, error) {
+                        switch (error.status) {
+                            case 502:
+                                error.data = "Service-Center is not reachable"
+                                break;
+                            case 500:
+                                error.data = "Mostly probably the Service-Center is not running or crashed"
+                                break;
+                            case 400:
+                                error.data = "The request is in-appropriate"
+                                break;
+                            case 404:
+                                error.data = "Requested entity was not found"
+                                break;
+                        }
                         $scope.error = error;
                         $scope.closeDialog = function() {
                             $mdDialog.hide();
@@ -70,9 +84,9 @@ angular.module('serviceCenter')
                 defer.reject(error);
             });
             return defer.promise;
-	}
+        }
 
-	return {
-	    apiRequest : apiRequest
-	};
+        return {
+            apiRequest: apiRequest
+        };
     }]);
diff --git a/frontend/app/styles/main.css b/frontend/app/styles/main.css
index 5ad3d4c..774f3e3 100644
--- a/frontend/app/styles/main.css
+++ b/frontend/app/styles/main.css
@@ -389,19 +389,19 @@ md-table-pagination .md-select-icon {
 .mainCard .consumers {
   background-color: #A9A9A9;
 }
-.card .starting {
+.card .STARTING {
   background-color: #00c0ef;
   border-radius: 6px 0px 0px 6px;
 }
-.card .up {
+.card .UP {
   background-color: #00a65a;
   border-radius: 6px 0px 0px 6px;
 }
-.card .down {
+.card .DOWN {
   background-color: #dd4b39;
   border-radius: 6px 0px 0px 6px;
 }
-.card .outofservice {
+.card .OUTOFSERVICE {
   background-color: #A9A9A9;
   border-radius: 6px 0px 0px 6px;
 }
diff --git a/frontend/app/views/serverError.html b/frontend/app/views/serverError.html
index bb5ff9d..6a3fb7a 100644
--- a/frontend/app/views/serverError.html
+++ b/frontend/app/views/serverError.html
@@ -28,10 +28,7 @@ limitations under the License.
     <md-content >
     	<div layout="column" layout-align="space-around stretch">
 	    	<div class="md-padding">
-                <span class="strongText">{{ "errorCode" | translate }}</span>: {{ error.status }}
-	    	</div>
-	    	<div class="md-padding">
-                <span class="strongText">{{ "errorText" | translate }}</span>: {{ error.statusText || "No Error Text found" }}
+                <span class="strongText">{{ "errorCode" | translate }}</span>: {{ error.status }} , {{ error.statusText || "No Error Text found" }}
 	    	</div>
 	    	<div class="md-padding">
                 <span class="strongText">{{ "errorStatus" | translate }}</span>: {{ error.data || "No Error Status Found" }}

-- 
To stop receiving notification emails like this one, please contact
littlecui@apache.org.