put in signal for edit
This commit is contained in:
@@ -0,0 +1,191 @@
|
||||
import { Component, inject, OnDestroy, OnInit, ViewChild } from '@angular/core';
|
||||
import { Router, ActivatedRoute } from '@angular/router';
|
||||
import { FormsModule, ReactiveFormsModule, UntypedFormBuilder, Validators } from '@angular/forms';
|
||||
import { Subject, Subscription} from 'rxjs';
|
||||
import { MessageService } from 'primeng/api';
|
||||
|
||||
import {Staff, Code, userRole, ResetPassword} from '../models';
|
||||
import { LookupService, Utils } from '../shares';
|
||||
import { StaffService } from './staff.service';
|
||||
import { CommonModule } from '@angular/common';
|
||||
import { ButtonModule } from 'primeng/button';
|
||||
|
||||
@Component({
|
||||
templateUrl: 'staff.pass.component.html',
|
||||
selector: 'staff-pass',
|
||||
imports:[ReactiveFormsModule,CommonModule,ButtonModule],
|
||||
styleUrls: ['staff.pass.component.css']
|
||||
})
|
||||
export class StaffPassComponent implements OnInit, OnDestroy {
|
||||
returnUrl ='';
|
||||
loginUser ='';
|
||||
_error ='';
|
||||
_id= -1;
|
||||
|
||||
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
|
||||
|
||||
password: ['',Validators.required], //Validators.required
|
||||
passwordAgain: ['',Validators.required], //Validators.required
|
||||
|
||||
|
||||
});
|
||||
constructor(
|
||||
private staffService: StaffService,
|
||||
private messageService: MessageService,
|
||||
private lookupService: LookupService,
|
||||
private router: Router, private route: ActivatedRoute,
|
||||
) {
|
||||
|
||||
|
||||
//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));
|
||||
|
||||
|
||||
}
|
||||
getEditText(): string {
|
||||
|
||||
return "Reset Password";
|
||||
|
||||
}
|
||||
// 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;
|
||||
}
|
||||
searchUser(): void {
|
||||
const staffid = this.adminuserForm.controls["stafflinkNo"].value;
|
||||
// console.log(this.msg + " the staffid is ", staffid);
|
||||
if (staffid != '') {
|
||||
//this.form.controls['your form control name'].value
|
||||
this.staffService.loadStaffById(staffid).subscribe({
|
||||
next: x => {
|
||||
//console.log(this.msg + " this is stafflink no ", x);
|
||||
// now get current user.
|
||||
|
||||
if (x.statusCode == 1) {
|
||||
//this.error = true;
|
||||
const fname = x.data.firstname + " " + x.data.lastname;
|
||||
this.adminuserForm.patchValue({name:fname, addedBy:this.loginUser});
|
||||
|
||||
}
|
||||
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.toastr.error("please enter staff link no");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// convenience getter for easy access in form fields
|
||||
get f() { return this.adminuserForm.controls;}
|
||||
validate(adminuser:any, passwordAgain:string): boolean {
|
||||
let result = true;
|
||||
const pass = adminuser.password.trim();
|
||||
if (pass == '')
|
||||
{
|
||||
this._error = 'password is blank or empty';
|
||||
result = false;
|
||||
}
|
||||
if (pass !== passwordAgain)
|
||||
{
|
||||
this._error = 'password is not match';
|
||||
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:ResetPassword = {
|
||||
id: this._id,
|
||||
password: adminuserValue.password,
|
||||
|
||||
};
|
||||
this._error ='';
|
||||
const again = adminuserValue.passwordAgain;
|
||||
const allOK = this.validate(adminuserValue, again);
|
||||
if (allOK)
|
||||
{
|
||||
this.subscription.add (
|
||||
this.staffService.saveResetPassword(adminuser).subscribe({
|
||||
next: x => {
|
||||
if (x.statusCode >= 1)
|
||||
{
|
||||
this.messageService.add({severity:'success', summary: 'Save user', detail: adminuser.id.toString() });
|
||||
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