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; } }