X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=otf-frontend%2Fclient%2Fsrc%2Fapp%2Fshared%2Fservices%2Flist.service.ts;fp=otf-frontend%2Fclient%2Fsrc%2Fapp%2Fshared%2Fservices%2Flist.service.ts;h=aced885ff110fbeb1220900fb1ec25eb2dc4eda4;hb=14f6f95c84a4a1fa8774190db4a03fd0214ec55f;hp=0000000000000000000000000000000000000000;hpb=f49bd1efeaaddd4891c1f329b18d8cfb28b3e75b;p=it%2Fotf.git diff --git a/otf-frontend/client/src/app/shared/services/list.service.ts b/otf-frontend/client/src/app/shared/services/list.service.ts new file mode 100644 index 0000000..aced885 --- /dev/null +++ b/otf-frontend/client/src/app/shared/services/list.service.ts @@ -0,0 +1,77 @@ +/* Copyright (c) 2019 AT&T Intellectual Property. # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); # +# you may not use this file except in compliance with the License. # +# You may obtain a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +##############################################################################*/ + + +import { Injectable, OnInit } from '@angular/core'; +import { BehaviorSubject } from 'rxjs'; + +@Injectable({ + providedIn: 'root' +}) +export class ListService { + + listMap: {[uniqueKey: string]: {listSource: any, currentList: any} } = {}; + // private listSource = new BehaviorSubject(null); + // currentList = this.listSource.asObservable(); + + constructor() { } + + createList(key){ + this.listMap[key] = { + listSource: new BehaviorSubject(null), + currentList: null + } + this.listMap[key].currentList = this.listMap[key].listSource.asObservable(); + this.listMap[key].listSource.next([]); + } + + changeMessage(key, message: any) { + if(!this.listMap[key]) + this.createList(key); + + this.listMap[key].listSource.next(message) + } + + addElement(key, obj: any){ + this.listMap[key].currentList.subscribe(function(value){ + //console.log(value); + value.push(obj); + }); + } + + removeElement(key, object_field_name, id: any){ + let val = 0; + this.listMap[key].currentList.subscribe(function(value){ + value.forEach(function(elem, val) { + if(elem[object_field_name] == id){ + value.splice(val, 1); + } + }); + }); + + } + + updateElement(key, object_field_name, id: any, new_object){ + let val = 0; + this.listMap[key].currentList.subscribe(function(value){ + value.forEach(function(elem, val) { + if(elem[object_field_name] == id){ + value[val] = new_object; + } + }) + }); + } + +}