summaryrefslogtreecommitdiffstats
path: root/ecomp-sdk/portalsdk-tag-library/projects/portalsdk-tag-lib/src/lib/rdp/rdp-data-table/rdp-data-table-edit/rdp-data-table-edit.component.ts
blob: 5437c17473acbc027e6597658c2c96710bf3f18f (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
75
76
77
78
79
80
81
82
83
84
85
import { Component, OnInit, Input, EventEmitter, Output } from '@angular/core';
import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';
import { RdpDataTableService } from '../../shared/rdp-data-table.service';
import { RdpModalService } from '../../services/rdp-modal.service';
import { RdpInformationModelComponent } from '../../rdp-information-model/rdp-information-model.component';

@Component({
  selector: 'rdp-rdp-data-table-edit',
  templateUrl: './rdp-data-table-edit.component.html',
  styleUrls: ['./rdp-data-table-edit.component.scss']
})
export class RdpDataTableEditComponent implements OnInit {

  @Input() settings: any;
  @Input() rowdata: any;
  @Input() isEditMode: boolean;
  @Input() applicationService: any;
  @Output() passEntry: EventEmitter<any> = new EventEmitter();
  modalPopupTitle: string;
  selectedRowData: any;
  public columnsInfoList = [];

  constructor(
    public activeModal: NgbActiveModal,
    public rdpDataTableService: RdpDataTableService,
    private rdpModal: RdpModalService) { }

  ngOnInit() {
    this.modalPopupTitle = "Edit";
    if (this.rowdata) {
      this.selectedRowData = JSON.stringify(this.rowdata);
    }
    if (this.settings) {
      if (this.settings.modalPopupTitle) {
        this.modalPopupTitle = this.settings.modalPopupTitle;
      }
      for (var index in this.settings.columns) {
        this.columnsInfoList.push(this.settings.columns[index]);
      }
    }
  }

  saveChanges() {
    let validationResult = this.validateRowData(this.rowdata);
    if (validationResult) {
      console.log("Validation is complete")
      this.applicationService.update(this.rowdata);
      this.applicationService.statusResponse.subscribe(responseData => {
        if (responseData == "200") {
          console.log("Success")
          this.applicationService.get();
          this.applicationService.updatedData.subscribe(val => {
            if (val) {
              this.passEntry.emit(val);
            }
          })
        }
      })
      this.activeModal.close();
    }
  }

  validateRowData(rowData): any {
    let columnData = this.settings.columns;
    let validate: boolean = true;
    for (let column of columnData) {
      if (column.isMandatory) {
        if (rowData[column.title] == undefined || rowData[column.title] == null 
          || rowData[column.title] == "") {
          const modelRef = this.rdpModal.open(RdpInformationModelComponent, { size: 'lg' });
          modelRef.componentInstance.title = 'Missing Mandatory Field';
          modelRef.componentInstance.message = "Please fill mandatory field " + column.dispalyTitle;
          validate = false;
          break;
        }
      }
    }
    return validate;
  }

  columnDataChanged($event, columnTitle) {
    this.rowdata[columnTitle] = $event;
  }

}