From 702f30f4dc61c5ca3c4747dd41170631716a414f Mon Sep 17 00:00:00 2001
From: Roberto Sánchez <roberto.sanchez@curisit.net>
Date: Wed, 08 Jan 2014 14:13:28 +0000
Subject: [PATCH] #394 feature - Added toaster for non intrusive messages
---
securis/src/main/resources/static/js/admin.js | 129 +++++++++++++++++++++++++++++--------------
1 files changed, 87 insertions(+), 42 deletions(-)
diff --git a/securis/src/main/resources/static/js/admin.js b/securis/src/main/resources/static/js/admin.js
index 759b8a2..7bd2645 100644
--- a/securis/src/main/resources/static/js/admin.js
+++ b/securis/src/main/resources/static/js/admin.js
@@ -1,7 +1,7 @@
(function() {
'use strict';
- var app = angular.module('app', [ 'ngRoute', 'ngAnimate', 'ngResource' ]);
+ var app = angular.module('app', [ 'ngRoute', 'ngAnimate', 'ngResource', 'toaster' ]);
app.directive(
'catalogField',
@@ -22,7 +22,7 @@
};
});
- app.factory('Catalogs', function($http, $resource) {
+ app.factory('Catalogs', function($http, $resource, toaster) {
var CatalogsService = {
resources : {
application : $resource('/application/:appId', {
@@ -68,7 +68,25 @@
return CatalogsService.data ? CatalogsService.data[index] : {};
},
save: function(catalog, data) {
- console.log('save ???? ' );
+ var resource = CatalogsService.resources[catalog.toLowerCase()];
+ function success(data) {
+ console.log('success')
+ console.log(data)
+ toaster.pop('success', "Data saved sucessfully in " + catalog);
+ }
+ function fail(data, status) {
+ var errorMsg = {500: 'Server error', 404: 'Item to modify was not found'}[data.status]
+ toaster.pop('error', "Error saving data in " + catalog, errorMsg);
+ console.log('error')
+ console.error(data)
+ console.error(status)
+ }
+ if (data.id && data.id !== '')
+ return resource.update(data, success, fail)
+ else
+ return resource.save(data, success, fail)
+ },
+ remove: function(catalog, data) {
var resource = CatalogsService.resources[catalog.toLowerCase()];
function success(data) {
console.log('success')
@@ -79,10 +97,7 @@
console.error(data)
console.error(status)
}
- if (data.id && data.id !== '')
- return resource.update(data, success, fail)
- else
- return resource.save(data, success, fail)
+ return resource.remove({}, data, success, fail)
},
query: function(catalog, callback) {
console.log('HI catalog ???? ' + catalog);
@@ -108,38 +123,58 @@
'$scope',
'$http',
'Catalogs',
- function($scope, $http, catalogs) {
+ function($scope, $http, Catalogs) {
$scope.formu = {};
$scope.catalogIndex = 0;
- $scope.catalogs = catalogs.list(function() {
- $scope.catalogMetadata = catalogs.getMetadata($scope.catalogIndex);
- $scope.list = catalogs.query(catalogs.getResource($scope.catalogIndex));
+ $scope.catalogs = Catalogs.list(function() {
+ $scope.catalogMetadata = Catalogs.getMetadata($scope.catalogIndex);
+ $scope.list = Catalogs.query(Catalogs.getResource($scope.catalogIndex));
});
$scope.catalogMetadata = {};
$scope.selectCatalog = function(index, $event) {
$scope.catalogIndex = index;
- $scope.catalogMetadata = catalogs.getMetadata($scope.catalogIndex);
- $scope.list = catalogs.query(catalogs.getResource($scope.catalogIndex));
+ $scope.catalogMetadata = Catalogs.getMetadata($scope.catalogIndex);
+ $scope.list = Catalogs.query(Catalogs.getResource($scope.catalogIndex));
console.log($event);
}
- } ]);
-
- app.controller('CatalogFormCtrl', [ '$scope', '$http', 'Catalogs',
- function($scope, $http, Catalogs) {
- $scope.showForm = false;
- $scope.scope = $scope;
- console.log('Form: currentCatalog:' + $scope.cataLogIndex);
- $scope.editNew = function() {
+ $scope.edit = function(data) {
$scope.showForm = true;
- $scope.isNew = true;
+ $scope.isNew = false;
+ for (var k in data) {
+ if (k.indexOf('$') !== 0) $scope.formu[k] = data[k]
+ }
+ // TODO: Load in formu values for Form
// $scope.formu = {};
}
- $scope.edit = function() {
- $scope.showForm = true;
+ $scope.delete = function(data) {
+ BootstrapDialog.confirm('The record will be deleted, are you sure?', function(result){
+ if(result) {
+ var catalogName = Catalogs.getResource($scope.catalogIndex);
+ var promise = Catalogs.remove(catalogName, data).$promise;
+ promise.then(function(data) {
+ $scope.list = Catalogs.query(catalogName);
+ });
+ }
+ });
+ $scope.showForm = false;
$scope.isNew = false;
// TODO: Load in formu values for Form
// $scope.formu = {};
+ }
+
+ } ]);
+
+ app.controller('CatalogFormCtrl', [ '$scope', '$http', 'toaster', 'Catalogs',
+ function($scope, $http, toaster, Catalogs) {
+ $scope.showForm = false;
+ $scope.scope = $scope;
+ console.log('Form: currentCatalog:' + $scope.cataLogIndex);
+
+ $scope.editNew = function() {
+ $scope.showForm = true;
+ $scope.isNew = true;
+ $scope.formu = {};
}
$scope.cancel = function() {
$scope.showForm = false;
@@ -151,34 +186,44 @@
} else {
var catalogName = Catalogs.getResource($scope.catalogIndex);
var promise = Catalogs.save(catalogName, $scope.formu).$promise;
- console.log('================================================================================================================================')
- console.log(promise)
- promise.then(function(data) {
- console.log('Command returned OK form promise')
- console.log(data)
+ promise.then(function(data, otro) {
+ if ($scope.isNew) {
+ $scope.formu = {}
+ $('#name').focus();
+ } else {
+ $scope.cancel();
+ }
+ // $scope.formu = {};
$scope.$parent.list = Catalogs.query(catalogName);
-
+ }, function(error, otro) {
+ console.log('then error');
+ console.log(error);
+ console.log(otro);
});
+
}
}
} ]);
- app.controller('CatalogListCtrl', [ '$scope', '$http', 'Catalogs',
- function($scope, $http, Catalogs) {
+ app.controller('CatalogListCtrl', [ '$scope', '$http', '$filter', 'Catalogs',
+ function($scope, $http, $filter, Catalogs) {
console.log('List: currentCatalog: ' + $scope.currentCatalog);
- $scope.myFilter = function(field) {
- if (field === 'creationTimestamp')
- return 'date';
- else '';
+ var _indexOfField = function(name) {
+ if (!$scope.catalogMetadata) return -1;
+ for (var i = $scope.catalogMetadata.fields.length - 1; i >= 0 && $scope.catalogMetadata.fields[i].name !== name; i--);
+ return i;
+ }
+
+ $scope.print = function(name, value) {
+ var index = _indexOfField(name);
+ if (index === -1) return value;
+ var type = $scope.catalogMetadata.fields[index].type;
+
+ return type === 'date' ? $filter('date')(value, 'yyyy-MM-dd') : value;
}
$scope.display = function(name) {
- var _indexOf = function(name) {
- if (!$scope.catalogMetadata) return -1;
- for (var i = $scope.catalogMetadata.fields.length - 1; i >= 0 && $scope.catalogMetadata.fields[i].name !== name; i--);
- return i;
- }
- var index = _indexOf(name);
+ var index = _indexOfField(name);
return index === -1 ? '' : $scope.catalogMetadata.fields[index].display;
}
--
Gitblit v1.3.2