import { AfterViewInit, Component, Input, OnInit, ViewChild } from '@angular/core';
import { FormBuilder, FormGroup } from '@angular/forms';
import { HttpClient } from '@angular/common/http';
import { MatSelect } from '@angular/material';
import { ActivatedRoute, Router } from '@angular/router';
import 'rxjs/add/operator/filter';
import { _MobilFormComponent } from '../_mobil-form/_mobil-form.component';
import { _PenggunaFormComponent } from '../_pengguna-form/_pengguna-form.component';
import { _SupirFormComponent } from '../_supir-form/_supir-form.component';
import { Mobil$Key } from '../../interfaces/mobil.interface';
import { Pengguna$Key } from '../../interfaces/pengguna.interface';
import { Supir$Key } from '../../interfaces/supir.interface';
import { DatabaseService } from '../../services/database.service';
import { ConfigService } from '../../services/config.service';
import { Pp2Service } from '../../services/pp2.service';
@Component({
selector: 'pp2-dry-ubah',
template: `
{{ data.nama }}
{{ data.nama }}
{{ data.nama }}
`
})
export class _UbahComponent implements AfterViewInit, OnInit {
@ViewChild('C_Mat_Select_Ubah_Mobil') C_Mat_Select_Ubah_Mobil: MatSelect;
@ViewChild('C_Mat_Select_Ubah_Pengguna') C_Mat_Select_Ubah_Pengguna: MatSelect;
@ViewChild('C_Mat_Select_Ubah_Supir') C_Mat_Select_Ubah_Supir: MatSelect;
@ViewChild('C_Pp2_Dry_MobilForm') C_Pp2_Dry_MobilForm: _MobilFormComponent;
@ViewChild('C_Pp2_Dry_PenggunaForm') C_Pp2_Dry_PenggunaForm: _PenggunaFormComponent;
@ViewChild('C_Pp2_Dry_SupirForm') C_Pp2_Dry_SupirForm: _SupirFormComponent;
jenis: 'mobil' | 'pengguna' | 'supir' | null | undefined = 'mobil';
$key = '';
pilihMobilForm: FormGroup;
pilihPenggunaForm: FormGroup;
pilihSupirForm: FormGroup;
constructor(
private $_ngActivatedRoute: ActivatedRoute,
private $_ngFormBuilder: FormBuilder,
private $_ngRouter: Router,
public $_pp2Database: DatabaseService,
public $_pp2: Pp2Service
) {
try{
this.$key = this.$_ngActivatedRoute.params['value']['id'] || '';
this.jenis = this.$_ngActivatedRoute.data['value']['jenis'] || 'mobil';
}catch(e){
console.log('error ', e)
}
this.jenis = this.$_ngActivatedRoute.data['value']['jenis'];
$_pp2Database.table = this.jenis;
}
ngAfterViewInit(){
if (this.jenis === 'mobil') {
setTimeout(() => {
this.C_Pp2_Dry_MobilForm.sembunyikan = true;
if ( this.$key != '' ) {
this.C_Pp2_Dry_MobilForm.sembunyikan = false;
const mobil: Mobil$Key = this.$_pp2Database.data.filter(mobil => mobil.$key == this.$key)[0]
this.mobilSetValue(mobil)
this.pilihMobilForm.get('data').setValue( JSON.stringify(mobil) )
}
}, 10)
this.C_Mat_Select_Ubah_Mobil.valueChange.subscribe((mobil: string) => {
this.C_Pp2_Dry_MobilForm.sembunyikan = false;
const _mobil: Mobil$Key = JSON.parse(mobil);
this.mobilSetValue(_mobil);
this.$_ngRouter.navigate(['pengurus', 'mobil', 'ubah', _mobil.$key])
})
}else if (this.jenis === 'pengguna'){
setTimeout(() => {
this.C_Pp2_Dry_PenggunaForm.sembunyikan = true;
if ( this.$key != '' ) {
this.C_Pp2_Dry_PenggunaForm.sembunyikan = false;
const pengguna: Pengguna$Key = this.$_pp2Database.data.filter(pengguna => pengguna.$key == this.$key)[0]
this.penggunaSetValue(pengguna)
this.pilihPenggunaForm.get('data').setValue( JSON.stringify(pengguna) )
}
}, 10)
this.C_Mat_Select_Ubah_Pengguna.valueChange.subscribe((pengguna: string) => {
this.C_Pp2_Dry_PenggunaForm.sembunyikan = false;
const _pengguna: Pengguna$Key = JSON.parse(pengguna);
this.penggunaSetValue(_pengguna);
this.$_ngRouter.navigate(['pengurus', 'pengguna', 'ubah', _pengguna.$key])
})
}else{
setTimeout(() => {
this.C_Pp2_Dry_SupirForm.sembunyikan = true;
if ( this.$key != '' ) {
this.C_Pp2_Dry_SupirForm.sembunyikan = false;
const supir: Supir$Key = this.$_pp2Database.data.filter(supir => supir.$key == this.$key)[0]
this.supirSetValue(supir)
this.pilihSupirForm.get('data').setValue( JSON.stringify(supir) )
}
}, 10)
this.C_Mat_Select_Ubah_Supir.valueChange.subscribe((supir: string) => {
this.C_Pp2_Dry_SupirForm.sembunyikan = false;
const _supir: Supir$Key = JSON.parse(supir);
this.supirSetValue(_supir);
this.$_ngRouter.navigate(['pengurus', 'supir', 'ubah', _supir.$key])
})
}
}
ngOnInit() {
this.pilihMobilForm = this.$_ngFormBuilder.group({ data: [''] })
this.pilihPenggunaForm = this.$_ngFormBuilder.group({ data: [''] })
this.pilihSupirForm = this.$_ngFormBuilder.group({ data: [''] })
}
mobilSetValue(mobil: Mobil$Key){
this.C_Pp2_Dry_MobilForm.sembunyikan = false;
this.C_Pp2_Dry_MobilForm.mobilForm.setValue({
$key: mobil.$key,
nama: mobil.nama,
platNo: mobil.platNo,
kursi: mobil.kursi,
bensin: mobil.bensin,
hargaSewa: mobil.hargaSewa,
image: mobil.image,
kondisi: mobil.kondisi,
_status: mobil._status,
_disewa: mobil._disewa,
_disewaSampai: mobil._disewaSampai,
createdAt: mobil.createdAt,
updatedAt: mobil.updatedAt
})
this.C_Pp2_Dry_MobilForm.C_Pp2_Dry_FI.img.nativeElement.src = mobil.image;
}
penggunaSetValue(pengguna: Pengguna$Key){
this.C_Pp2_Dry_PenggunaForm.sembunyikan = false;
this.C_Pp2_Dry_PenggunaForm.penggunaForm.setValue({
$key: pengguna.$key,
nama: pengguna.nama,
username: pengguna.username,
password: pengguna.password,
noKTP: pengguna.noKTP,
noHP: pengguna.noHP,
jk: pengguna.jk,
email: pengguna.email,
alamat: pengguna.alamat,
image: pengguna.image,
createdAt: pengguna.createdAt,
updatedAt: pengguna.updatedAt
})
this.C_Pp2_Dry_PenggunaForm.C_Pp2_Dry_FI.img.nativeElement.src = pengguna.image;
}
supirSetValue(supir: Supir$Key){
this.C_Pp2_Dry_SupirForm.sembunyikan = false;
this.C_Pp2_Dry_SupirForm.supirForm.setValue({
$key: supir.$key,
nama: supir.nama,
noSIM: supir.noSIM,
jk: supir.jk,
noHP: supir.noHP,
hargaSewa: supir.hargaSewa,
alamat: supir.alamat,
email: supir.email,
image: supir.image,
_status: supir._status,
_disewa: supir._disewa,
_disewaSampai: supir._disewaSampai,
createdAt: supir.createdAt,
updatedAt: supir.updatedAt
})
this.C_Pp2_Dry_SupirForm.C_Pp2_Dry_FI.img.nativeElement.src = supir.image;
}
}