Roberto Sánchez
2014-01-08 702f30f4dc61c5ca3c4747dd41170631716a414f
securis/src/main/resources/static/js/admin.js
....@@ -1,7 +1,7 @@
11 (function() {
22 'use strict';
33
4
- var app = angular.module('app', [ 'ngRoute', 'ngAnimate', 'ngResource' ]);
4
+ var app = angular.module('app', [ 'ngRoute', 'ngAnimate', 'ngResource', 'toaster' ]);
55
66 app.directive(
77 'catalogField',
....@@ -22,7 +22,7 @@
2222 };
2323 });
2424
25
- app.factory('Catalogs', function($http, $resource) {
25
+ app.factory('Catalogs', function($http, $resource, toaster) {
2626 var CatalogsService = {
2727 resources : {
2828 application : $resource('/application/:appId', {
....@@ -68,7 +68,25 @@
6868 return CatalogsService.data ? CatalogsService.data[index] : {};
6969 },
7070 save: function(catalog, data) {
71
- console.log('save ???? ' );
71
+ var resource = CatalogsService.resources[catalog.toLowerCase()];
72
+ function success(data) {
73
+ console.log('success')
74
+ console.log(data)
75
+ toaster.pop('success', "Data saved sucessfully in " + catalog);
76
+ }
77
+ function fail(data, status) {
78
+ var errorMsg = {500: 'Server error', 404: 'Item to modify was not found'}[data.status]
79
+ toaster.pop('error', "Error saving data in " + catalog, errorMsg);
80
+ console.log('error')
81
+ console.error(data)
82
+ console.error(status)
83
+ }
84
+ if (data.id && data.id !== '')
85
+ return resource.update(data, success, fail)
86
+ else
87
+ return resource.save(data, success, fail)
88
+ },
89
+ remove: function(catalog, data) {
7290 var resource = CatalogsService.resources[catalog.toLowerCase()];
7391 function success(data) {
7492 console.log('success')
....@@ -79,10 +97,7 @@
7997 console.error(data)
8098 console.error(status)
8199 }
82
- if (data.id && data.id !== '')
83
- return resource.update(data, success, fail)
84
- else
85
- return resource.save(data, success, fail)
100
+ return resource.remove({}, data, success, fail)
86101 },
87102 query: function(catalog, callback) {
88103 console.log('HI catalog ???? ' + catalog);
....@@ -108,38 +123,58 @@
108123 '$scope',
109124 '$http',
110125 'Catalogs',
111
- function($scope, $http, catalogs) {
126
+ function($scope, $http, Catalogs) {
112127 $scope.formu = {};
113128 $scope.catalogIndex = 0;
114
- $scope.catalogs = catalogs.list(function() {
115
- $scope.catalogMetadata = catalogs.getMetadata($scope.catalogIndex);
116
- $scope.list = catalogs.query(catalogs.getResource($scope.catalogIndex));
129
+ $scope.catalogs = Catalogs.list(function() {
130
+ $scope.catalogMetadata = Catalogs.getMetadata($scope.catalogIndex);
131
+ $scope.list = Catalogs.query(Catalogs.getResource($scope.catalogIndex));
117132 });
118133
119134 $scope.catalogMetadata = {};
120135 $scope.selectCatalog = function(index, $event) {
121136 $scope.catalogIndex = index;
122
- $scope.catalogMetadata = catalogs.getMetadata($scope.catalogIndex);
123
- $scope.list = catalogs.query(catalogs.getResource($scope.catalogIndex));
137
+ $scope.catalogMetadata = Catalogs.getMetadata($scope.catalogIndex);
138
+ $scope.list = Catalogs.query(Catalogs.getResource($scope.catalogIndex));
124139 console.log($event);
125140 }
126
- } ]);
127
-
128
- app.controller('CatalogFormCtrl', [ '$scope', '$http', 'Catalogs',
129
- function($scope, $http, Catalogs) {
130
- $scope.showForm = false;
131
- $scope.scope = $scope;
132
- console.log('Form: currentCatalog:' + $scope.cataLogIndex);
133
- $scope.editNew = function() {
141
+ $scope.edit = function(data) {
134142 $scope.showForm = true;
135
- $scope.isNew = true;
143
+ $scope.isNew = false;
144
+ for (var k in data) {
145
+ if (k.indexOf('$') !== 0) $scope.formu[k] = data[k]
146
+ }
147
+ // TODO: Load in formu values for Form
136148 // $scope.formu = {};
137149 }
138
- $scope.edit = function() {
139
- $scope.showForm = true;
150
+ $scope.delete = function(data) {
151
+ BootstrapDialog.confirm('The record will be deleted, are you sure?', function(result){
152
+ if(result) {
153
+ var catalogName = Catalogs.getResource($scope.catalogIndex);
154
+ var promise = Catalogs.remove(catalogName, data).$promise;
155
+ promise.then(function(data) {
156
+ $scope.list = Catalogs.query(catalogName);
157
+ });
158
+ }
159
+ });
160
+ $scope.showForm = false;
140161 $scope.isNew = false;
141162 // TODO: Load in formu values for Form
142163 // $scope.formu = {};
164
+ }
165
+
166
+ } ]);
167
+
168
+ app.controller('CatalogFormCtrl', [ '$scope', '$http', 'toaster', 'Catalogs',
169
+ function($scope, $http, toaster, Catalogs) {
170
+ $scope.showForm = false;
171
+ $scope.scope = $scope;
172
+ console.log('Form: currentCatalog:' + $scope.cataLogIndex);
173
+
174
+ $scope.editNew = function() {
175
+ $scope.showForm = true;
176
+ $scope.isNew = true;
177
+ $scope.formu = {};
143178 }
144179 $scope.cancel = function() {
145180 $scope.showForm = false;
....@@ -151,34 +186,44 @@
151186 } else {
152187 var catalogName = Catalogs.getResource($scope.catalogIndex);
153188 var promise = Catalogs.save(catalogName, $scope.formu).$promise;
154
- console.log('================================================================================================================================')
155
- console.log(promise)
156
- promise.then(function(data) {
157
- console.log('Command returned OK form promise')
158
- console.log(data)
189
+ promise.then(function(data, otro) {
190
+ if ($scope.isNew) {
191
+ $scope.formu = {}
192
+ $('#name').focus();
193
+ } else {
194
+ $scope.cancel();
195
+ }
196
+ // $scope.formu = {};
159197 $scope.$parent.list = Catalogs.query(catalogName);
160
-
198
+ }, function(error, otro) {
199
+ console.log('then error');
200
+ console.log(error);
201
+ console.log(otro);
161202 });
203
+
162204 }
163205 }
164206 } ]);
165207
166
- app.controller('CatalogListCtrl', [ '$scope', '$http', 'Catalogs',
167
- function($scope, $http, Catalogs) {
208
+ app.controller('CatalogListCtrl', [ '$scope', '$http', '$filter', 'Catalogs',
209
+ function($scope, $http, $filter, Catalogs) {
168210 console.log('List: currentCatalog: ' + $scope.currentCatalog);
169
- $scope.myFilter = function(field) {
170
- if (field === 'creationTimestamp')
171
- return 'date';
172
- else '';
211
+ var _indexOfField = function(name) {
212
+ if (!$scope.catalogMetadata) return -1;
213
+ for (var i = $scope.catalogMetadata.fields.length - 1; i >= 0 && $scope.catalogMetadata.fields[i].name !== name; i--);
214
+ return i;
215
+ }
216
+
217
+ $scope.print = function(name, value) {
218
+ var index = _indexOfField(name);
219
+ if (index === -1) return value;
220
+ var type = $scope.catalogMetadata.fields[index].type;
221
+
222
+ return type === 'date' ? $filter('date')(value, 'yyyy-MM-dd') : value;
173223 }
174224
175225 $scope.display = function(name) {
176
- var _indexOf = function(name) {
177
- if (!$scope.catalogMetadata) return -1;
178
- for (var i = $scope.catalogMetadata.fields.length - 1; i >= 0 && $scope.catalogMetadata.fields[i].name !== name; i--);
179
- return i;
180
- }
181
- var index = _indexOf(name);
226
+ var index = _indexOfField(name);
182227 return index === -1 ? '' : $scope.catalogMetadata.fields[index].display;
183228 }
184229