summaryrefslogtreecommitdiffstats
path: root/components/datalake-handler/admin/src/src/app/views/tools/tool-modal/tool-modal.component.ts
blob: 038d74647ae0b7042b51d334e33b80f2da527f4b (plain)
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
/*
 * ============LICENSE_START=======================================================
 * ONAP : DataLake
 * ================================================================================
 * Copyright 2019 - 2020 QCT
 *=================================================================================
 * 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.
 * ============LICENSE_END=========================================================
 */

/**
 *
 * @author Ekko Chang
 *
 */

import { Component, OnInit, Input, ViewChild } from "@angular/core";
import { NgxSpinnerService } from "ngx-spinner";
import { NgbActiveModal } from "@ng-bootstrap/ng-bootstrap";
import { RestApiService } from "src/app/core/services/rest-api.service";
import { AdminService } from "src/app/core/services/admin.service";
import { Db, DbType } from "src/app/core/models/db.model";
import { from, forkJoin } from "rxjs";
import { mergeMap, map } from "rxjs/operators";

@Component({
  selector: "app-tool-modal",
  templateUrl: "./tool-modal.component.html",
  styleUrls: ["./tool-modal.component.css"]
})
export class ToolModalComponent implements OnInit {
  @Input() data: Db;
  @Input() mode: string;

  dbTypes: Array<DbType> = [];

  constructor(
    public activeModal: NgbActiveModal,
    public adminService: AdminService,
    private restApiService: RestApiService,
    private spinner: NgxSpinnerService
  ) {}

  ngOnInit() {
    // this.spinner.show();

    // get database types
    const get_dbTypes = this.restApiService.getDbTypes().pipe(
      mergeMap(dbTypes => from(dbTypes)),
      map(dbType => {
        if (dbType.tool) this.dbTypes.push(dbType);
      })
    );

    forkJoin(get_dbTypes).subscribe(data => {
      if (this.mode === "new") {
        // default value
        if (this.dbTypes.length > 0) {
          this.data.dbTypeId = this.dbTypes[0].id;
        }
      }
    });
  }
}