Merge pull request 'mazdak/UX-2151' (#42) from mazdak/UX-2151 into dev-pending-20-01-2026

Reviewed-on: https://ct.mfsys.com.pk/aConnect/aConnect-UX/pulls/42
mazdak/UX-2147
Naeem Ullah 2 weeks ago
commit 45b34eef3f

@ -30,7 +30,7 @@
</a> </a>
</li> </li>
<li *ngIf="permissions.changePassword || authService.isAdminUser()"> <li *ngIf="permissions.changePassword || authService.isAdminUser()">
<a routerLink="/home/changePassword" routerLinkActive="mm-active" (click)="navigateToChangePassword()" style="cursor: pointer"> <a routerLink="/home/changePassword" routerLinkActive="mm-active" style="cursor: pointer">
<span> {{ 'changePassword' | translate }}</span> <span> {{ 'changePassword' | translate }}</span>
</a> </a>
</li> </li>

@ -47,11 +47,6 @@ export class SideNavComponent {
this.closeSidebarMenu(); this.closeSidebarMenu();
} }
navigateToChangePassword() {
this.router.navigate(['/home/changePassword'], {
state: { fromMenu: true }
});
}
closeSidebarMenu(): void { closeSidebarMenu(): void {
if (isPlatformBrowser(this.platformId)) { if (isPlatformBrowser(this.platformId)) {
const subMenus = document.querySelectorAll('#sidebar-menu .sub-menu'); const subMenus = document.querySelectorAll('#sidebar-menu .sub-menu');

@ -6,6 +6,9 @@ import { PasswordHideShowComponent } from '../../shared/components/password-hide
import { HttpURIService } from '../../app.http.uri.service'; import { HttpURIService } from '../../app.http.uri.service';
import { URIKey } from '../../utils/uri-enums'; import { URIKey } from '../../utils/uri-enums';
import { StorageService } from '../../shared/services/storage.service'; import { StorageService } from '../../shared/services/storage.service';
import { I18NService } from '../../services/i18n.service';
import { HttpErrorResponse } from '@angular/common/http';
import { SuccessMessages } from '../../utils/enums';
@Component({ @Component({
selector: 'app-change-password', selector: 'app-change-password',
@ -28,7 +31,7 @@ passwordType2: string = 'password';
@ViewChild('psh') passwordHideShow?: PasswordHideShowComponent; @ViewChild('psh') passwordHideShow?: PasswordHideShowComponent;
@ViewChild('psh1') passwordHideShow1 ?: PasswordHideShowComponent; @ViewChild('psh1') passwordHideShow1 ?: PasswordHideShowComponent;
@ViewChild('psh2') passwordHideShow2 ?: PasswordHideShowComponent; @ViewChild('psh2') passwordHideShow2 ?: PasswordHideShowComponent;
constructor(private fb: FormBuilder, private httpURIService: HttpURIService, private storageService: StorageService){} constructor(private fb: FormBuilder, private httpURIService: HttpURIService, private storageService: StorageService, private i18nService: I18NService){}
togglePasswordType() { togglePasswordType() {
this.passwordType = this.passwordHideShow?.showPassword ? 'password' : 'text'; this.passwordType = this.passwordHideShow?.showPassword ? 'password' : 'text';
@ -65,13 +68,6 @@ constructor(private fb: FormBuilder, private httpURIService: HttpURIService, pri
} }
checkIfFirstTimeChangePasswordOrNot(): void { checkIfFirstTimeChangePasswordOrNot(): void {
const fromMenu = history.state?.['fromMenu'];
if (fromMenu) {
this.isFirstLogin = false;
return;
}
try { try {
const currentUser: any = JSON.parse( const currentUser: any = JSON.parse(
this.storageService.getItem('user') || '{}' this.storageService.getItem('user') || '{}'
@ -120,7 +116,6 @@ constructor(private fb: FormBuilder, private httpURIService: HttpURIService, pri
return { return {
oldPassword: form.get('oldPassword')?.value || null, oldPassword: form.get('oldPassword')?.value || null,
// confirmPassword: form.get('confirmPassword')?.value || null,
newPassword: form.get('newPassword')?.value, newPassword: form.get('newPassword')?.value,
userId: this.storageService.getItem('USER_ID'), userId: this.storageService.getItem('USER_ID'),
porOrgaCode: this.storageService.getItem('POR_ORGACODE') porOrgaCode: this.storageService.getItem('POR_ORGACODE')
@ -130,7 +125,15 @@ constructor(private fb: FormBuilder, private httpURIService: HttpURIService, pri
const payload = this.getFormPayload(); const payload = this.getFormPayload();
this.httpURIService.requestPOST(URIKey.CHANGE_PASSWORD_URI, payload) this.httpURIService.requestPOST(URIKey.CHANGE_PASSWORD_URI, payload)
.subscribe(); .subscribe({
next: (response) => {
if (!(response instanceof HttpErrorResponse)) {
this.i18nService.success(SuccessMessages.CHANGE_PASSWORD_SUCCESS, []);
}
}
});
} }
} }

@ -6,6 +6,9 @@ import { PasswordHideShowComponent } from '../../shared/components/password-hide
import { URIKey } from '../../utils/uri-enums'; import { URIKey } from '../../utils/uri-enums';
import { HttpURIService } from '../../app.http.uri.service'; import { HttpURIService } from '../../app.http.uri.service';
import { StorageService } from '../../shared/services/storage.service'; import { StorageService } from '../../shared/services/storage.service';
import { I18NService } from '../../services/i18n.service';
import { ErrorMessages, SuccessMessages } from '../../utils/enums';
import { HttpErrorResponse } from '@angular/common/http';
@Component({ @Component({
selector: 'app-reset-password', selector: 'app-reset-password',
@ -21,7 +24,7 @@ export class ResetPasswordComponent implements OnInit{
@ViewChild('psh1') passwordHideShow1?: PasswordHideShowComponent; @ViewChild('psh1') passwordHideShow1?: PasswordHideShowComponent;
@ViewChild('psh2') passwordHideShow2?: PasswordHideShowComponent; @ViewChild('psh2') passwordHideShow2?: PasswordHideShowComponent;
constructor(private fb: FormBuilder, private httpURIService: HttpURIService, private storageService: StorageService){} constructor(private fb: FormBuilder, private httpURIService: HttpURIService, private storageService: StorageService, private i18nService: I18NService){}
ngOnInit(): void { ngOnInit(): void {
const userIdValue = this.storageService.getItem('USER_ID') const userIdValue = this.storageService.getItem('USER_ID')
@ -83,10 +86,15 @@ export class ResetPasswordComponent implements OnInit{
porOrgaCode: this.storageService.getItem('POR_ORGACODE') porOrgaCode: this.storageService.getItem('POR_ORGACODE')
}; };
this.httpURIService.requestPOST(URIKey.RESET_PASSWORD_URI, payload) this.httpURIService.requestPOST(URIKey.RESET_PASSWORD_URI, payload)
.subscribe(); .subscribe({
next: (response) => {
if (!(response instanceof HttpErrorResponse)) {
this.i18nService.success(SuccessMessages.RESET_PASSWORD_SUCCESS, []);
}
}
});
} }
} }

@ -53,6 +53,8 @@ export enum SuccessMessages {
SAVED_SUCESSFULLY = "SUC_APP_F_0001", SAVED_SUCESSFULLY = "SUC_APP_F_0001",
LOGIN_SUCCESSFULLY = "LOGIN_SUCCESSFULLY", LOGIN_SUCCESSFULLY = "LOGIN_SUCCESSFULLY",
RESET_PASSWORD_SUCCESS ="RESET_PASSWORD_SUCCESS",
CHANGE_PASSWORD_SUCCESS ="CHANGE_PASSWORD_SUCCESS",
TRANSACTION_SUCCESSFUL = "TRANSACTION_SUCCESSFUL", TRANSACTION_SUCCESSFUL = "TRANSACTION_SUCCESSFUL",
SAVED_SUCCESSFULLY = "SAVED_SUCCESSFULLY", SAVED_SUCCESSFULLY = "SAVED_SUCCESSFULLY",
RECORD_DELETED_SUCCESSFULY = "RECORD_DELETED_SUCCESSFULY", RECORD_DELETED_SUCCESSFULY = "RECORD_DELETED_SUCCESSFULY",

@ -5,27 +5,6 @@
"checked": false, "checked": false,
"expanded": false, "expanded": false,
"children": [ "children": [
{
"name": "thirdPartyRegistration",
"route": "/home/thirdPartyRegistration",
"checked": false,
"expanded": false,
"children": [],
"buttons": [
{
"name": "edit",
"route": "",
"checked": false,
"expanded": false
},
{
"name": "delete",
"route": "",
"checked": false,
"expanded": false
}
]
},
{ {
"name": "setupUser", "name": "setupUser",
"route": "/home/setupUser", "route": "/home/setupUser",
@ -113,99 +92,6 @@
} }
] ]
}, },
{
"name": "SMSBanking",
"route": "",
"checked": false,
"expanded": false,
"children": [
{
"name": "smsLogger",
"route": "/home/smsLogger",
"checked": false,
"expanded": false,
"children": []
},
{
"name": "smsGateway",
"route": "/home/smsGateway",
"checked": false,
"expanded": false,
"children": [],
"buttons": [
{
"name": "edit",
"route": "",
"checked": false,
"expanded": false
},
{
"name": "delete",
"route": "",
"checked": false,
"expanded": false
}
]
}
]
},
{
"name": "ibSupport",
"route": "",
"checked": false,
"expanded": false,
"children": [
{
"name": "ibUnblockUser",
"route": "/home/ibUnblockUser",
"checked": false,
"expanded": false,
"children": [],
"buttons": [
{
"name": "edit",
"route": "",
"checked": false,
"expanded": false
},
{
"name": "delete",
"route": "",
"checked": false,
"expanded": false
}
]
},
{
"name": "feedbackSetup",
"route": "/home/feedbackSetup",
"checked": false,
"expanded": false,
"children": []
},
{
"name": "purposeSetup",
"route": "/home/purposeSetup",
"checked": false,
"expanded": false,
"children": [],
"buttons": [
{
"name": "edit",
"route": "",
"checked": false,
"expanded": false
},
{
"name": "delete",
"route": "",
"checked": false,
"expanded": false
}
]
}
]
},
{ {
"name": "permissions", "name": "permissions",
"route": "/home/permissions", "route": "/home/permissions",

@ -234,6 +234,8 @@
"previous": "سابق", "previous": "سابق",
"next": "التالي", "next": "التالي",
"LOGIN_SUCCESSFULLY":"تم تسجيل الدخول بنجاح", "LOGIN_SUCCESSFULLY":"تم تسجيل الدخول بنجاح",
"RESET_PASSWORD_SUCCESS": "تمت إعادة تعيين كلمة المرور بنجاح",
"CHANGE_PASSWORD_SUCCESS": "تم تغيير كلمة المرور بنجاح",
"ALREADY_LOGGED_IN": "المستخدم مسجل دخوله بالفعل", "ALREADY_LOGGED_IN": "المستخدم مسجل دخوله بالفعل",
"ACCESS_DENIED" : "تم الرفض", "ACCESS_DENIED" : "تم الرفض",
"INTERNAL_SERVER_ERROR": "خطأ في الخادم الداخلي", "INTERNAL_SERVER_ERROR": "خطأ في الخادم الداخلي",
@ -254,6 +256,9 @@
"ERR_SEC_0001": "البريد الإلكتروني موجود بالفعل", "ERR_SEC_0001": "البريد الإلكتروني موجود بالفعل",
"ERR_SEC_0002": "اسم المستخدم موجود بالفعل", "ERR_SEC_0002": "اسم المستخدم موجود بالفعل",
"ERR_SEC_0003": "كلمة المرور القديمة غير صحيحة", "ERR_SEC_0003": "كلمة المرور القديمة غير صحيحة",
"ERR_SEC_0004": "اسم المستخدم أو كلمة المرور غير صحيحة",
"ERR_SEC_0005": "المستخدم غير موجود",
"ERR_SEC_0006": "كلمة المرور التي تم إدخالها غير صحيحة",
"toDateGreaterThanToday": "يجب أن يكون التاريخ الحالي أقل من التاريخ الحالي", "toDateGreaterThanToday": "يجب أن يكون التاريخ الحالي أقل من التاريخ الحالي",
"fromDateGreaterThanToday": "يجب أن يكون تاريخ البدء أقل من التاريخ الحالي" "fromDateGreaterThanToday": "يجب أن يكون تاريخ البدء أقل من التاريخ الحالي"
} }

@ -233,6 +233,8 @@
"previous": "Previous", "previous": "Previous",
"next": "Next", "next": "Next",
"LOGIN_SUCCESSFULLY":"Login SucessFully", "LOGIN_SUCCESSFULLY":"Login SucessFully",
"RESET_PASSWORD_SUCCESS":"Password Reset Successfully",
"CHANGE_PASSWORD_SUCCESS":"Password Changed Successfully",
"ALREADY_LOGGED_IN": "User Already Logged In", "ALREADY_LOGGED_IN": "User Already Logged In",
"ACCESS_DENIED" : "Access Denied", "ACCESS_DENIED" : "Access Denied",
"INTERNAL_SERVER_ERROR": "Internal Server Error", "INTERNAL_SERVER_ERROR": "Internal Server Error",
@ -254,6 +256,9 @@
"ERR_SEC_0001": "Email already exists", "ERR_SEC_0001": "Email already exists",
"ERR_SEC_0002": "Username already exists", "ERR_SEC_0002": "Username already exists",
"ERR_SEC_0003": "Old Password is not correct", "ERR_SEC_0003": "Old Password is not correct",
"ERR_SEC_0004":"Invalid credentials",
"ERR_SEC_0005": "User not found",
"ERR_SEC_0006": "Incorrect password",
"toDateGreaterThanToday": "To Date must be less than Current Date", "toDateGreaterThanToday": "To Date must be less than Current Date",
"fromDateGreaterThanToday": "From Date must be less than Current Date" "fromDateGreaterThanToday": "From Date must be less than Current Date"
} }

@ -5,6 +5,6 @@ export const environment = {
buildDate: '08-01-2026', buildDate: '08-01-2026',
enableEncryption: true, enableEncryption: true,
moduleHost: new Map([ moduleHost: new Map([
["ACONNECT_DOMAIN_URI", "https://api.redmetic.com"] ["ACONNECT_DOMAIN_URI", "http://localhost:8080"]
]) ])
}; };

@ -2,7 +2,7 @@
<html lang="en"> <html lang="en">
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<title>ACONNECTUX</title> <title>aConnect</title>
<base href="/"> <base href="/">
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/png" href="assets/images/mfsys-logo.png"> <link rel="icon" type="image/png" href="assets/images/mfsys-logo.png">

Loading…
Cancel
Save