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