From 225dc136c1c6fba26b2e4f8b763cbd3fc4d596e3 Mon Sep 17 00:00:00 2001
From: Roberto Sánchez <roberto.sanchez@curisit.net>
Date: Mon, 13 Jan 2014 12:37:25 +0000
Subject: [PATCH] #394 feature - Added error messages to Admin module

---
 securis/src/main/resources/static/js/admin.js |   28 +++++++++++++++++++++-------
 1 files changed, 21 insertions(+), 7 deletions(-)

diff --git a/securis/src/main/resources/static/js/admin.js b/securis/src/main/resources/static/js/admin.js
index 4cde879..53b2125 100644
--- a/securis/src/main/resources/static/js/admin.js
+++ b/securis/src/main/resources/static/js/admin.js
@@ -2,7 +2,13 @@
 	'use strict';
 
 	var app = angular.module('app', [ 'ngRoute', 'ngResource', 'toaster', 'localytics.directives', 'catalogs' ]);
-
+	
+	var HTTP_ERRORS = {
+			403: "Forbidden action",
+			500: "Server error",
+			404: "Element not found"
+	}
+	
 	app.directive(
 					'catalogField',
 					function() {
@@ -25,8 +31,9 @@
 	app.controller('CatalogsCtrl', [
 			'$scope',
 			'$http',
+			'toaster',
 			'Catalogs',
-			function($scope, $http, Catalogs) {
+			function($scope, $http, toaster, Catalogs) {
 				$scope.showForm = false;
 				$scope.isNew = false;
 				$scope.formu = {};
@@ -57,7 +64,7 @@
 					$scope.isNew = false;
 					$scope.formu = {}
 					for (var k in data) {
-						if (k.indexOf('$') !== 0 && !Catalogs.getField(k).listingOnly) $scope.formu[k] = data[k]
+						if (k.indexOf('$') !== 0 && k.indexOf('_') !== 0 && !Catalogs.getField(k).listingOnly) $scope.formu[k] = data[k]
 					}
 
 					setTimeout(function() {
@@ -71,13 +78,16 @@
 							var promise = Catalogs.remove(data).$promise;
 							promise.then(function(data) {
 								$scope.list = Catalogs.query();
+								Catalogs.refreshRef($scope.refs, Catalogs.getMetadata().resource, $scope.list);
+								toaster.pop('success', Catalogs.getName(), "Element deleted successfully");
+							},function(error) {
+								console.log(error);
+								toaster.pop('error', Catalogs.getName(), "Error deleting element, reason: " + HTTP_ERRORS[error.status] + ". Details: " + error.headers('X-SECURIS-ERROR'), 12000);
 							});
 			            }
 			        });
 					$scope.showForm = false;
 					$scope.isNew = false;
-					// TODO: Load in formu values for Form
-					// $scope.formu = {};
 				}
 
 			} ]);
@@ -119,7 +129,7 @@
 
 				$scope.saveCatalog = function() {
 					if ($scope.catalogForm.$invalid) {
-						alert(JSON.stringify($scope.catalogForm))
+						toaster.pop('error', Catalogs.getName(), "There are wrong data in current form, please fix it before to save");
 					} else {
 						var promise = Catalogs.save($scope.formu).$promise;
 						promise.then(function(data, otro) {
@@ -130,8 +140,12 @@
 								$scope.cancel();
 							}
 							$scope.$parent.list = Catalogs.query();
+							Catalogs.refreshRef($scope.refs, Catalogs.getMetadata().resource, $scope.$parent.list);
+
+							toaster.pop('success', Catalogs.getName(), "Element saved successfully");
 						}, function(error) {
 							console.log(error);
+							toaster.pop('error', Catalogs.getName(), "Error saving element, reason: " + HTTP_ERRORS[error.status] + ". Details: " + error.headers('X-SECURIS-ERROR'), 12000);
 						});
 						
 					}
@@ -146,7 +160,7 @@
 					var type = Catalogs.getField(name).type;
 					var printedValue = type === 'date' ? $filter('date')(value, 'yyyy-MM-dd') : value;
 					if (printedValue !== value) // this line is a work around to allow search in formatted fields
-						row['$display_'+name] = printedValue;
+						row['_display_'+name] = printedValue;
 					return printedValue;
 				}
 				

--
Gitblit v1.3.2