put in ignore file
This commit is contained in:
@@ -0,0 +1,211 @@
|
||||
import { Component, inject, OnDestroy, OnInit, ViewChild } from '@angular/core';
|
||||
import { Router, ActivatedRoute } from '@angular/router';
|
||||
import { ReactiveFormsModule, UntypedFormBuilder, Validators } from '@angular/forms';
|
||||
import { Subject, Subscription} from 'rxjs';
|
||||
import { MessageService } from 'primeng/api';
|
||||
|
||||
import {Staff, Code, userRole} from '../models';
|
||||
import { LookupService, Utils } from '../shares';
|
||||
import { StaffService } from './staff.service';
|
||||
import { ButtonModule } from 'primeng/button';
|
||||
import { SelectModule } from 'primeng/select';
|
||||
import { CheckboxModule } from 'primeng/checkbox';
|
||||
import { InputTextModule } from 'primeng/inputtext';
|
||||
|
||||
@Component({
|
||||
templateUrl: 'staff.edit.component.html',
|
||||
selector: 'staff-edit',
|
||||
imports:[ButtonModule,ReactiveFormsModule,SelectModule,CheckboxModule, InputTextModule],
|
||||
styleUrls: ['staff.edit.component.css']
|
||||
})
|
||||
export class StaffEditComponent implements OnInit, OnDestroy {
|
||||
returnUrl ='';
|
||||
loginUser ='';
|
||||
_error ='';
|
||||
_id= -1;
|
||||
Roles: Code[];
|
||||
isNew = false;
|
||||
validationPoints?: Code[];
|
||||
msg="[adminUser Component] ";
|
||||
private formBuilder = inject(UntypedFormBuilder);
|
||||
//for focus input
|
||||
// @ViewChild('mystaffid') mystaffNo!: MatInput;
|
||||
isChange = true; // disable use false//true for not disable. make sure it true is disable button.
|
||||
private subscription:Subscription = new Subscription();
|
||||
subChanged$ = new Subject<boolean>();
|
||||
adminuserForm = this.formBuilder.group({
|
||||
id: [0], //Validators.required
|
||||
email: ['',Validators.required], //Validators.required
|
||||
firstname: ['',Validators.required], //Validators.required
|
||||
lastname: ['',Validators.required], //Validators.required
|
||||
phone: [''], //Validators.required
|
||||
password: [''],
|
||||
active: [false], //Validators.required
|
||||
|
||||
roleType: [0,[Validators.required, Validators.min(1)]],
|
||||
|
||||
});
|
||||
constructor(
|
||||
private staffService: StaffService,
|
||||
private messageService: MessageService,
|
||||
private lookupService: LookupService,
|
||||
private router: Router, private route: ActivatedRoute,
|
||||
) {
|
||||
|
||||
this.Roles = [];
|
||||
let item:Code = {id:userRole.Admin, name: 'Admin', status:'Admin'};
|
||||
this.Roles.push(item);
|
||||
item = {id:userRole.Accounting, name: 'Accounting', status:'Accounting'};
|
||||
this.Roles.push(item);
|
||||
item = {id:userRole.Normal, name: 'Normal', status:'Normal'};
|
||||
this.Roles.push(item);
|
||||
item = {id:userRole.ServiceManager, name: 'Service Manager', status:'ServiceManager'};
|
||||
this.Roles.push(item);
|
||||
|
||||
|
||||
//item = {id:userRole.Normal, name: 'Switch', status:'Switch'};
|
||||
//this.Roles.push(item);
|
||||
}
|
||||
getClassForRequire(prev:string,name:string){
|
||||
const notok = !this.adminuserForm.controls[name].valid &&
|
||||
this.adminuserForm.controls[name].touched;
|
||||
let str =prev;
|
||||
if (notok)
|
||||
str += " ng-invalid ng-dirty";
|
||||
return str;
|
||||
}
|
||||
ngOnInit():void {
|
||||
this.returnUrl = this.route.snapshot.queryParams['returnUrl'] || '/';
|
||||
const id = Number(this.route.snapshot.paramMap.get('id'));
|
||||
// now load thing up
|
||||
const user = Utils.getCurrentUser();
|
||||
// console.log(this.msg + "current login user ", user);
|
||||
if (user.username === '')
|
||||
alert("you are not login.");
|
||||
else
|
||||
this.loginUser = user.firstName;
|
||||
this._id = id;
|
||||
//console.log(this.msg + " " + id );
|
||||
this.subscription.add(this.adminuserForm.valueChanges.subscribe(x => this.isChange = false));
|
||||
this.subscription.add(this.subChanged$.subscribe(x => this.isChange = x));
|
||||
if (id > 0)
|
||||
{
|
||||
this.isNew = false;
|
||||
this.subscription.add(
|
||||
this.staffService.loadStaffById(id).subscribe({
|
||||
next: x => this.assignValue(x.data),
|
||||
error: e => console.log(e)
|
||||
})
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
this.isNew = true;
|
||||
}
|
||||
|
||||
}
|
||||
getEditText(): string {
|
||||
if (this._id > 0)
|
||||
return "Edit Staff";
|
||||
else
|
||||
return "New Staff";
|
||||
}
|
||||
// this for disable submit button
|
||||
get isFieldsChange() {
|
||||
const chan = this.isChange || !this.adminuserForm.valid; // this disable so need true valid = true not
|
||||
//console.log(this.msg + 'is fields change', chan);
|
||||
return chan;
|
||||
}
|
||||
|
||||
assignValue(adminuser:Staff): void {
|
||||
this.adminuserForm.patchValue({
|
||||
id: adminuser.id,
|
||||
email: adminuser.email,
|
||||
firstname: adminuser.firstname,
|
||||
lastname: adminuser.lastname,
|
||||
active: adminuser.active,
|
||||
phone: adminuser.phone,
|
||||
roleType: adminuser.roleType,
|
||||
|
||||
});
|
||||
// disable use false//true for not disable.
|
||||
this.subChanged$.next(true);
|
||||
}
|
||||
|
||||
// convenience getter for easy access in form fields
|
||||
get f() { return this.adminuserForm.controls;}
|
||||
validate(adminuser:Staff): boolean {
|
||||
let result = true;
|
||||
if (adminuser.email.trim() == '')
|
||||
{
|
||||
this._error = 'email is blank or empty';
|
||||
result = false;
|
||||
}
|
||||
else if (adminuser.firstname.trim() == '')
|
||||
{
|
||||
this._error = 'Firstname is blank or empty';
|
||||
result = false;
|
||||
}
|
||||
else if (adminuser.lastname.trim() == '')
|
||||
{
|
||||
this._error = 'lastname is blank or empty';
|
||||
result = false;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
onSubmit(): void {
|
||||
// if form valid then go save
|
||||
//make sure
|
||||
const okToSave = this.adminuserForm.valid;
|
||||
if (okToSave)
|
||||
{
|
||||
let adminuserValue = this.adminuserForm.value;
|
||||
|
||||
let adminuser:Staff = {
|
||||
id: adminuserValue.id,
|
||||
email: adminuserValue.email,
|
||||
firstname: adminuserValue.firstname,
|
||||
lastname: adminuserValue.lastname,
|
||||
active: adminuserValue.active,
|
||||
roleType: adminuserValue.roleType,
|
||||
phone: adminuserValue.phone,
|
||||
password: adminuserValue.password,
|
||||
|
||||
type: 0
|
||||
};
|
||||
this._error ='';
|
||||
const allOK = this.validate(adminuser);
|
||||
if (allOK)
|
||||
{
|
||||
this.subscription.add (
|
||||
this.staffService.saveStaff(adminuser).subscribe({
|
||||
next: x => {
|
||||
if (x.statusCode >= 1)
|
||||
{
|
||||
this.messageService.add({severity:'success', summary: 'Save user', detail: adminuser.firstname + " " + adminuser.lastname });
|
||||
this.router.navigate([this.returnUrl]);
|
||||
}
|
||||
else
|
||||
{
|
||||
this.messageService.add({severity:'error', summary: 'Error', detail: x.message });
|
||||
}
|
||||
},
|
||||
error: e => {
|
||||
const message = e || e.message;
|
||||
// this.toastr.error(message);
|
||||
console.log("error ", e);
|
||||
}
|
||||
})
|
||||
);
|
||||
}
|
||||
else
|
||||
this.messageService.add({severity:'error', summary: 'Error', detail: this._error });
|
||||
}
|
||||
}
|
||||
goBack(): void {
|
||||
this.router.navigate([this.returnUrl]);
|
||||
}
|
||||
ngOnDestroy() {
|
||||
this.subscription.unsubscribe();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user