check add person photo finish
This commit is contained in:
@@ -0,0 +1,171 @@
|
||||
import { ChangeDetectorRef, Component, inject, Inject, OnDestroy, OnInit, signal } from '@angular/core';
|
||||
import { DynamicDialogModule, DynamicDialogRef ,DynamicDialogConfig} from 'primeng/dynamicdialog';
|
||||
|
||||
import { LookupEdit } from '../models';
|
||||
import { UntypedFormBuilder, Validators, ReactiveFormsModule } from '@angular/forms';
|
||||
import { Subject, Subscription } from 'rxjs';
|
||||
import { ConfirmationService, MessageService } from 'primeng/api';
|
||||
import { LookupService } from '../shares';
|
||||
import { CommonModule } from '@angular/common';
|
||||
import { CheckboxModule } from 'primeng/checkbox';
|
||||
import { InputTextModule } from 'primeng/inputtext';
|
||||
import { ButtonModule } from 'primeng/button';
|
||||
@Component({
|
||||
selector: 'add-photo',
|
||||
imports: [CommonModule, ReactiveFormsModule,
|
||||
ButtonModule, InputTextModule,
|
||||
DynamicDialogModule, CheckboxModule],
|
||||
templateUrl: './add.photo.html',
|
||||
styleUrls: ['./add.photo.css'],
|
||||
providers: [ConfirmationService]
|
||||
})
|
||||
export class AddPhoto implements OnInit, OnDestroy {
|
||||
isChange = true; // disable use false//true for not disable. make sure it true is disable button.
|
||||
selType = "";
|
||||
_error = "";
|
||||
downloadFile = signal(false);
|
||||
files: File[] = [];
|
||||
fileName = "";
|
||||
disabled: boolean = true;
|
||||
subChanged$ = new Subject<boolean>();
|
||||
private formBuilder = inject(UntypedFormBuilder);
|
||||
private cdr = inject(ChangeDetectorRef);
|
||||
private subscription: Subscription = new Subscription();
|
||||
lookupForm = this.formBuilder.group({
|
||||
id: [0], //Validators.required
|
||||
description: ['', [Validators.required, Validators.maxLength(50)]],
|
||||
codeId: ['', [Validators.required]],
|
||||
parentId: [0],
|
||||
|
||||
active: [false], //Validators.required
|
||||
});
|
||||
|
||||
constructor(
|
||||
|
||||
private lookupService: LookupService,
|
||||
private messageService: MessageService,
|
||||
private confirmationService: ConfirmationService,
|
||||
public ref: DynamicDialogRef, public config: DynamicDialogConfig) { }
|
||||
|
||||
ngOnInit(): void {
|
||||
const id = this.config.data.id;
|
||||
this.selType = this.config.data.type;
|
||||
const maxcodeId = this.config.data.maxCodeId;
|
||||
if (id > 0) {
|
||||
this.lookupService.loadLookupById(id, this.selType).subscribe({
|
||||
next: x => {
|
||||
this.assignValue(x.data);
|
||||
this.cdr.markForCheck();
|
||||
this.subscription.add(this.lookupForm.valueChanges.subscribe(x => this.isChange = false));
|
||||
this.subscription.add(this.subChanged$.subscribe(x => this.isChange = x));
|
||||
|
||||
},
|
||||
error: e => {
|
||||
console.error("error", e);
|
||||
this.messageService.add({ severity: 'error', summary: 'Error on load cleaner ', detail: e.message });
|
||||
}
|
||||
});
|
||||
}
|
||||
else {
|
||||
//new cleaner
|
||||
const ward:LookupEdit = {
|
||||
id: -1, description: '', codeId: maxcodeId, type: this.selType, active: true,
|
||||
|
||||
};
|
||||
this.assignValue(ward);
|
||||
this.subscription.add(this.lookupForm.valueChanges.subscribe(x => this.isChange = false));
|
||||
this.subscription.add(this.subChanged$.subscribe(x => this.isChange = x));
|
||||
}
|
||||
}
|
||||
|
||||
getClassForRequire(prev: string, name: string) {
|
||||
const notok = !this.lookupForm.controls[name].valid &&
|
||||
this.lookupForm.controls[name].touched;
|
||||
let str = prev;
|
||||
if (notok)
|
||||
str += " ng-invalid ng-dirty";
|
||||
return str;
|
||||
}
|
||||
get isFieldsChange() {
|
||||
const chan = this.isChange || !this.lookupForm.valid; // this disable so need true valid = true not
|
||||
//console.log(this.msg + 'is fields change', chan);
|
||||
return chan;
|
||||
}
|
||||
|
||||
assignValue(item: LookupEdit): void {
|
||||
this.lookupForm.patchValue({
|
||||
id: item.id,
|
||||
codeId: item.codeId,
|
||||
description: item.description,
|
||||
active: item.active,
|
||||
|
||||
|
||||
});
|
||||
// disable use false//true for not disable.
|
||||
this.subChanged$.next(true);
|
||||
}
|
||||
validate(item: LookupEdit): boolean {
|
||||
let result = true;
|
||||
if (item.description!.trim() == "") {
|
||||
this._error = "Description is empty or blank";
|
||||
result = false;
|
||||
}
|
||||
return result;
|
||||
|
||||
}
|
||||
deleteFile() : void {
|
||||
//const filename = this.requestForm.value.attachmentFile;
|
||||
// const data = { filename };
|
||||
this.fileName ="";
|
||||
//this.requestForm.patchValue({ attachmentFile: "" });
|
||||
/*
|
||||
const delete$ = this.tradePersonService.deleteUploadFile(data);
|
||||
this.subscription.add(delete$.subscribe(
|
||||
{
|
||||
next: x => {
|
||||
if (x.statusCode == 1) {
|
||||
{
|
||||
this.requestForm.patchValue({ attachmentFile: "" });
|
||||
}
|
||||
}
|
||||
else {
|
||||
this.messageService.add({ severity: 'error', summary: 'Error delete upload file', detail: 'Fail to delete upload file: ' + x.message });
|
||||
}
|
||||
},
|
||||
error: e => {
|
||||
this.messageService.add({ severity: 'error', summary: 'Error delete upload file', detail: 'Fail to delete upload file: ' + e });
|
||||
}
|
||||
}
|
||||
));
|
||||
*/
|
||||
}
|
||||
onFileSelected(event: any) {
|
||||
|
||||
let i =0;
|
||||
for (i = 0; i < event.target.files.length; i++)
|
||||
{
|
||||
const file: File = event.target.files[i];
|
||||
this.files.push(file);
|
||||
if (this.fileName != "")
|
||||
this.fileName = this.fileName + "," + file.name;
|
||||
else
|
||||
this.fileName = file.name;
|
||||
|
||||
this.subChanged$.next(false);
|
||||
|
||||
}
|
||||
}
|
||||
upload(e: Event): void {
|
||||
e.preventDefault();
|
||||
this.ref.close(this.files);
|
||||
}
|
||||
|
||||
cancel(e: Event): void {
|
||||
e.preventDefault();
|
||||
this.ref.close(null);
|
||||
}
|
||||
|
||||
ngOnDestroy(): void {
|
||||
this.subscription.unsubscribe();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user