| .. | .. |
|---|
| 101 | 101 | '$store', |
|---|
| 102 | 102 | '$L', |
|---|
| 103 | 103 | function($scope, $http, $resource, toaster, Catalogs, $store, $L) { |
|---|
| 104 | | - var packResource = $resource('/pack/:packId', { |
|---|
| 105 | | - packId : '@id' |
|---|
| 106 | | - }); |
|---|
| 104 | + var packResource = $resource('/pack/:packId/:action', |
|---|
| 105 | + { |
|---|
| 106 | + packId : '@id', |
|---|
| 107 | + action : '@action' |
|---|
| 108 | + }, |
|---|
| 109 | + { |
|---|
| 110 | + activate: { |
|---|
| 111 | + method: "POST", |
|---|
| 112 | + params: {action: "activate"} |
|---|
| 113 | + } |
|---|
| 114 | + } |
|---|
| 115 | + ); |
|---|
| 107 | 116 | var PACK_STATUS = [ |
|---|
| 108 | | - {id: 'PE', label: $L.get('Pending')}, |
|---|
| 117 | + {id: 'CR', label: $L.get('Created')}, |
|---|
| 109 | 118 | {id: 'AC', label: $L.get('Active')}, |
|---|
| 110 | 119 | {id: 'OH', label: $L.get('On Hold')}, |
|---|
| 111 | 120 | {id: 'EX', label: $L.get('Expired')}, |
|---|
| .. | .. |
|---|
| 165 | 174 | _savePackData(); |
|---|
| 166 | 175 | } |
|---|
| 167 | 176 | } |
|---|
| 177 | + |
|---|
| 178 | + /** |
|---|
| 179 | + * Execute an action over the pack, activation, onhold, cancellation |
|---|
| 180 | + */ |
|---|
| 181 | + $scope.execute = function(action) { |
|---|
| 182 | + console.log('Action: '+ action +' on pack: ' + $scope.pack.id); |
|---|
| 183 | + var _success = function() { |
|---|
| 184 | + if (!$scope.isNew) $scope.showForm = false; |
|---|
| 185 | + $scope.packs = packResource.query(); |
|---|
| 186 | + toaster.pop('success', Catalogs.getName(), $L.get("Pack '{0}' {1} successfully", $scope.pack.code, $L.get("activated"))); |
|---|
| 187 | + } |
|---|
| 188 | + var _error = function(error) { |
|---|
| 189 | + console.log(error); |
|---|
| 190 | + toaster.pop('error', Catalogs.getName(), $L.get("Error {0} pack '{1}'. Reason: {2}", $L.get("activating"), $scope.pack.code, $L.get(error.headers('X-SECURIS-ERROR')))); |
|---|
| 191 | + } |
|---|
| 192 | + packResource.activate({id: $scope.pack.id}, _success, _error); |
|---|
| 193 | + } |
|---|
| 168 | 194 | |
|---|
| 195 | + |
|---|
| 169 | 196 | $scope.newPack = function() { |
|---|
| 170 | 197 | $scope.isNew = true; |
|---|
| 171 | 198 | $scope.showForm = true; |
|---|
| 172 | 199 | $scope.pack = { |
|---|
| 173 | 200 | license_preactivation: true, |
|---|
| 174 | | - status: 'PE', |
|---|
| 201 | + status: 'CR', |
|---|
| 175 | 202 | num_licenses: 1, |
|---|
| 176 | 203 | license_type_id: null, |
|---|
| 177 | 204 | organization_id: null //!$scope.refs.organization_id || !$scope.refs.organization_id.length ? null : $scope.refs.organization_id[0].id |
|---|
| .. | .. |
|---|
| 190 | 217 | if (!(selectedPack.end_valid_date instanceof Date)) { |
|---|
| 191 | 218 | selectedPack.end_valid_date = new Date(selectedPack.end_valid_date); |
|---|
| 192 | 219 | } |
|---|
| 220 | + |
|---|
| 193 | 221 | $scope.pack = selectedPack; |
|---|
| 222 | + |
|---|
| 223 | + //$scope.pack.organization_name = $scope.getLabelFromId('organization_id', $scope.pack.organization_id); |
|---|
| 224 | + $scope.pack.license_type_name = $scope.getLabelFromId('license_type_id', $scope.pack.license_type_id); |
|---|
| 225 | + $scope.pack.status_name = $scope.getLabelFromId('pack_status', $scope.pack.status); |
|---|
| 226 | + |
|---|
| 194 | 227 | setTimeout(function() { |
|---|
| 195 | 228 | $('#code').focus(); |
|---|
| 196 | 229 | }, 0); |
|---|
| .. | .. |
|---|
| 223 | 256 | $scope.$parent.currentPack = pack; |
|---|
| 224 | 257 | $store.put('currentPack', pack); |
|---|
| 225 | 258 | $scope.$parent.$broadcast('pack_changed', pack); |
|---|
| 259 | + } |
|---|
| 260 | + |
|---|
| 261 | + $scope.getLabelFromId = function(field, myid) { |
|---|
| 262 | + var label = null; |
|---|
| 263 | + $scope.refs[field].forEach(function (elem) { |
|---|
| 264 | + if (elem.id === myid) { |
|---|
| 265 | + label = elem.label; |
|---|
| 266 | + } |
|---|
| 267 | + }); |
|---|
| 268 | + return label; |
|---|
| 226 | 269 | } |
|---|
| 227 | 270 | |
|---|
| 228 | 271 | $scope.createMetadataRow = function() { |
|---|
| .. | .. |
|---|
| 264 | 307 | function($scope, $http, $resource, toaster, $store, $L) { |
|---|
| 265 | 308 | $scope.$on('pack_changed', function(evt, message) { |
|---|
| 266 | 309 | $scope.licenses = licenseResource.query({packId: $scope.currentPack.id}); |
|---|
| 310 | + $scope.creationAvailable = $scope.currentPack.status == 'AC'; |
|---|
| 267 | 311 | if ($scope.showForm) { |
|---|
| 268 | 312 | if ($scope.isNew) { |
|---|
| 269 | 313 | $scope.license.pack_id = $scope.currentPack.id |
|---|
| .. | .. |
|---|
| 296 | 340 | } |
|---|
| 297 | 341 | }); |
|---|
| 298 | 342 | $scope.mandatory = { |
|---|
| 299 | | - code: true |
|---|
| 343 | + code: true, |
|---|
| 344 | + email: true |
|---|
| 300 | 345 | } |
|---|
| 301 | 346 | $scope.maxlength = { |
|---|
| 302 | 347 | code: 50, |
|---|
| .. | .. |
|---|
| 356 | 401 | }); |
|---|
| 357 | 402 | return; |
|---|
| 358 | 403 | } |
|---|
| 404 | + if (!$scope.creationAvailable) { |
|---|
| 405 | + BootstrapDialog.show({ |
|---|
| 406 | + title: $L.get('Pack not active'), |
|---|
| 407 | + type: BootstrapDialog.TYPE_WARNING, |
|---|
| 408 | + message: $L.get('Current pack is not active, so licenses cannot be created'), |
|---|
| 409 | + buttons: [{ |
|---|
| 410 | + label: 'OK', |
|---|
| 411 | + action: function(dialog) { |
|---|
| 412 | + dialog.close(); |
|---|
| 413 | + } |
|---|
| 414 | + }] |
|---|
| 415 | + }); |
|---|
| 416 | + return; |
|---|
| 417 | + } |
|---|
| 359 | 418 | |
|---|
| 360 | 419 | $scope.isNew = true; |
|---|
| 361 | 420 | $scope.showForm = true; |
|---|