rsanchez
2017-03-10 2762277c60db7df5ad3214b10a0dd93d4f2f1128
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
import { Observable } from 'rxjs/Rx';
import { Injectable } from '@angular/core';
import { Http, RequestOptions } from '@angular/http';
import { SeCurisResourceServices } from './base';
var pack_example = { 
  id: 7,
  code: 'DX250000',
  status: 'AC',
  application_name: 'Doxr',
  created_by_id: 'admin',
  created_by_name: 'Administrator  (admin)',
  creation_timestamp: 1440597540000,
  end_valid_date: 2051222400000,
  init_valid_date: 1440547200000,
  license_preactivation: true,
  license_type_id: 5,
  licensetype_code: 'DXL3',
  metadata: 
   [ { key: 'max_docs',
       value: '250000',
       readonly: true,
       mandatory: true,
       pack_id: 7 } ],
  num_activations: 7,
  num_available: -2,
  num_creations: 7,
  num_licenses: 5,
  organization_id: 2,
  organization_name: 'CurisTec',
  preactivation_valid_period: 70,
  renew_valid_period: 0,
}
export const PACK_STATUS = {
               CREATED: 'CR',
               ACTIVE: 'AC',
               ONHOLD: 'OH',
               EXPIRED: 'EX',
               CANCELLED: 'CA'
       }
export const PACK_STATUSES = {
               'CR': 'Created',
               'AC': 'Active',
               'OH': 'On Hold',
               'EX': 'Expired',
               'CA': 'Cancelled'
       };
export const COLORS_BY_STATUS = {
                   'CR': '#808080',
                   'AC': '#329e5a',
                   'OH': '#9047c7',
                   'EX': '#ea7824',
                   'CA': '#a21717'
           };
export const PACK_ACTIONS_BY_STATUS = {
               edit: [PACK_STATUS.CREATED, PACK_STATUS.EXPIRED, PACK_STATUS.ONHOLD, PACK_STATUS.ACTIVE],
               activate: [PACK_STATUS.CREATED, PACK_STATUS.EXPIRED, PACK_STATUS.ONHOLD],
               putonhold: [PACK_STATUS.ACTIVE],
               cancel: [PACK_STATUS.EXPIRED, PACK_STATUS.ONHOLD, PACK_STATUS.ACTIVE],
               'delete': [PACK_STATUS.CREATED, PACK_STATUS.CANCELLED]
       }
@Injectable()
export class PacksService extends SeCurisResourceServices {
  constructor(http: Http) {
    super(http, 'pack');
  }
  public activate(id: number) {
           return super.action(id, "activate");
   }
  
  public cancel(id: number) {
           return super.action(id, "cancel");
   }
  public putonhold(id: number) {
           return super.action(id, "putonhold");
   }
     public isActionAvailable(action:string, pack:any) {
       var validStatuses = PACK_ACTIONS_BY_STATUS[action];
       return pack && validStatuses && validStatuses.indexOf(pack.status) !== -1;
   }
}