665ceeaf9e8c06c0c08b9af5c9dc04d65cbaf5cb
[working/Evergreen.git] /
1
2 import {Component, OnInit, Input,Output,EventEmitter} from '@angular/core';
3 import { IdlService} from '@eg/core/idl.service';
4 class LinkedLimitSetObjects {
5     linkedLimitSet:any;
6     created:boolean;
7     isDeleted:boolean;
8     isNew:boolean;
9 }
10
11 @Component({
12     selector:'linked-circ-limit-sets',
13     templateUrl: './linked-circ-limit-sets.component.html'
14 })
15
16
17 export class LinkedCircLimitSetsComponent implements OnInit {
18
19     @Input() usedSetLimitList = [];
20     @Input() limitSetNames = {};
21     @Output() outputLinkedLimitSet: EventEmitter<any>;
22     linkedSetList = {};
23     linkedSet:any;
24     showLinkLimitSets:boolean
25
26     constructor( 
27         private idl: IdlService
28         ) {
29         this.outputLinkedLimitSet = new EventEmitter();
30     }
31
32     ngOnInit() {}
33
34     displayLinkedLimitSets() {
35         this.createEmptyLimitSetObject()
36     }
37
38     createFilledLimitSetObject(element) {
39         let newLinkedSetObject = new LinkedLimitSetObjects();
40         if(element.fallthrough() == "f") element.fallthrough(false)
41         if(element.fallthrough() == "t") element.fallthrough(true)
42         if(element.active() == "f") element.active(false)
43         if(element.active() == "t") element.active(true)
44         newLinkedSetObject.linkedLimitSet = element;
45         newLinkedSetObject.created = true;
46         newLinkedSetObject.isNew = false;
47         newLinkedSetObject.isDeleted = false;
48         this.linkedSetList[this.getObjectKeys().length] = newLinkedSetObject;
49     }
50
51     createEmptyLimitSetObject() {
52         let object = this.idl.create("ccmlsm")
53         let newLinkedSetObject = new LinkedLimitSetObjects();
54         newLinkedSetObject.linkedLimitSet = object;
55         newLinkedSetObject.linkedLimitSet.fallthrough(false);
56         newLinkedSetObject.linkedLimitSet.active(true);
57         newLinkedSetObject.isNew = true;
58         newLinkedSetObject.created = false;
59         newLinkedSetObject.isDeleted = false;
60         this.linkedSetList[this.getObjectKeys().length] = newLinkedSetObject;
61     }
62
63     onChange(object:any) {
64         this.linkedSet = object;
65     }
66
67     getObjectKeys() {
68         if(this.linkedSetList) {
69             return Object.keys(this.linkedSetList);
70         } else {
71             this.linkedSetList = {}
72             return Object.keys({})
73         }
74     }
75
76     addLinkedSet() {
77         if (this.linkedSet) {
78             if( !this.usedSetLimitList.find(element => element == this.linkedSet.id)) {
79                 this.createEmptyLimitSetObject();
80                 this.linkedSetList[this.getObjectKeys().length-1].linkedLimitSet.limit_set(this.linkedSet.id);
81                 this.linkedSetList[this.getObjectKeys().length-1].created = true;
82                 this.emitLimitSet();
83                 this.usedSetLimitList.push(this.linkedSet.id)
84             }
85         }
86     }
87
88     emitLimitSet() {
89         this.outputLinkedLimitSet.emit(this.linkedSetList)
90     }
91
92     removeLinkedSet(index) {
93         if(!this.linkedSetList[index].isNew) {
94             this.usedSetLimitList.splice(index,1);
95         }
96         this.linkedSetList[index].isDeleted = true;
97         this.emitLimitSet();
98     }
99 }
100