mazdak/UX-1213 #4

Merged
mubashar.hussain merged 3 commits from mazdak/UX-1213 into dev-pending-09-12-2025 1 week ago

@ -26,16 +26,16 @@
<div class="row g-3 mb-3"> <div class="row g-3 mb-3">
<div class="col-md-6"> <div class="col-md-6">
<div class="d-flex align-items-center gap-2"> <div class="d-flex align-items-center gap-2">
<label for="OldPassword" class="text-nowrap"> <label for="oldPassword" class="text-nowrap">
{{ 'OldPassword' | translate }}<span {{ 'oldPassword' | translate }}<span
class="mandatory">*</span> class="mandatory">*</span>
</label> </label>
<div class="password-wrapper position-relative w-100"> <div class="password-wrapper position-relative w-100">
<div class="d-flex flex-row align-items-stretch"> <div class="d-flex flex-row align-items-stretch">
<input type="text" id="OldPassword" <input type="text" id="oldPassword"
class="form-control" class="form-control"
type="{{passwordType}}" type="{{passwordType}}"
placeholder="{{ 'OldPassword' | translate }}" appNoWhitespaces placeholder="{{ 'oldPassword' | translate }}" appNoWhitespaces
/> />
<app-password-hide-show #psh class="password-eye align-items-stretch" [showPassword]="true" (onEyeClick)="togglePasswordType()"></app-password-hide-show> <app-password-hide-show #psh class="password-eye align-items-stretch" [showPassword]="true" (onEyeClick)="togglePasswordType()"></app-password-hide-show>
</div> </div>
@ -47,18 +47,18 @@
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<div class="d-flex align-items-start gap-2"> <div class="d-flex align-items-start gap-2">
<label for="EnterNewPassword" <label for="enterNewPassword"
class="text-nowrap mt-2"> class="text-nowrap mt-2">
{{ 'EnterNewPassword' | translate }}<span {{ 'enterNewPassword' | translate }}<span
class="mandatory">*</span> class="mandatory">*</span>
</label> </label>
<div class="password-wrapper position-relative w-100"> <div class="password-wrapper position-relative w-100">
<input id="EnterNewPassword" <input id="enterNewPassword"
class="form-control" class="form-control"
type="{{passwordType1}}" type="{{passwordType1}}"
maxlength="500" maxlength="500"
placeholder="{{ 'EnterNewPassword' | translate }}" appNoWhitespaces placeholder="{{ 'enterNewPassword' | translate }}" appNoWhitespaces
rows="3" /> rows="3" />
<app-password-hide-show #psh1 class="password-eye align-items-stretch" [showPassword]="true" (onEyeClick)="togglePasswordType1()"></app-password-hide-show> <app-password-hide-show #psh1 class="password-eye align-items-stretch" [showPassword]="true" (onEyeClick)="togglePasswordType1()"></app-password-hide-show>
@ -71,25 +71,21 @@
<div class="row g-3 mb-3"> <div class="row g-3 mb-3">
<div class="col-md-6"> <div class="col-md-6">
<div class="d-flex align-items-center gap-2"> <div class="d-flex align-items-center gap-2">
<label for="ConfirmPassword" class="text-nowrap"> <label for="confirmPassword" class="text-nowrap">
{{ 'ConfirmPassword' | translate }}<span {{ 'confirmPassword' | translate }}<span
class="mandatory">*</span> class="mandatory">*</span>
</label> </label>
<div class="password-wrapper position-relative w-100"> <div class="password-wrapper position-relative w-100">
<input id="ConfirmPassword"
<input id="confirmPassword"
class="form-control" class="form-control"
type="{{passwordType2}}" type="{{passwordType2}}"
maxlength="500"
placeholder="{{ 'ConfirmPassword' | translate }}" appNoWhitespaces/> placeholder="{{ 'confirmPassword' | translate }}" appNoWhitespaces
<app-password-hide-show class="password-eye align-items-stretch" #psh2 [showPassword]="true" (onEyeClick)="togglePasswordType2()"></app-password-hide-show> rows="3" />
<!-- <div class="text-danger"> <app-password-hide-show #psh2 class="password-eye align-items-stretch" [showPassword]="true" (onEyeClick)="togglePasswordType2()"></app-password-hide-show>
<div>
{{ 'requiredField' | translate }}
</div>
</div>
<div>
{{ 'expiryBeforeRenewal' | translate }}
</div> -->
</div> </div>
</div> </div>
</div> </div>

@ -19,23 +19,23 @@
<div class="card mb-0 mt-2"> <div class="card mb-0 mt-2">
<div <div
class="card-header font-edit-13-child d-flex justify-content-between align-items-center"> class="card-header font-edit-13-child d-flex justify-content-between align-items-center">
{{'ResetPassword' | translate}} {{'resetPassword' | translate}}
</div> </div>
<div class="card-body"> <div class="card-body">
<form > <form >
<div class="row g-3 mb-3"> <div class="row g-3 mb-3">
<div class="col-md-6"> <div class="col-md-6">
<div class="d-flex align-items-center gap-2"> <div class="d-flex align-items-center gap-2">
<label for="UserID" class="text-nowrap"> <label for="userID" class="text-nowrap">
{{ 'UserID' | translate }}<span {{ 'userID' | translate }}<span
class="mandatory">*</span> class="mandatory">*</span>
</label> </label>
<div class="password-wrapper position-relative w-100"> <div class="password-wrapper position-relative w-100">
<div class="d-flex flex-row align-items-stretch"> <div class="d-flex flex-row align-items-stretch">
<input type="text" id="UserID" <input type="text" id="userID"
class="form-control" class="form-control"
placeholder="{{ 'UserID' | translate }}" appNoWhitespaces placeholder="{{ 'userID' | translate }}" appNoWhitespaces
/> />
@ -48,19 +48,19 @@
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<div class="d-flex align-items-start gap-2"> <div class="d-flex align-items-start gap-2">
<label for="EnterNewPassword" <label for="enterNewPassword"
class="text-nowrap mt-2"> class="text-nowrap mt-2">
{{ 'EnterNewPassword' | translate }}<span {{ 'enterNewPassword' | translate }}<span
class="mandatory">*</span> class="mandatory">*</span>
</label> </label>
<div class="password-wrapper position-relative w-100"> <div class="password-wrapper position-relative w-100">
<input id="EnterNewPassword" <input id="enterNewPassword"
class="form-control" class="form-control"
autocomplete="new-password" autocomplete="new-password"
type="{{passwordType1}}" type="{{passwordType1}}"
maxlength="500" maxlength="500"
placeholder="{{ 'EnterNewPassword' | translate }}" appNoWhitespaces placeholder="{{ 'enterNewPassword' | translate }}" appNoWhitespaces
rows="3" /> rows="3" />
<app-password-hide-show #psh1 class="password-eye align-items-stretch" [showPassword]="true" (onEyeClick)="togglePasswordType1()"></app-password-hide-show> <app-password-hide-show #psh1 class="password-eye align-items-stretch" [showPassword]="true" (onEyeClick)="togglePasswordType1()"></app-password-hide-show>
@ -73,16 +73,16 @@
<div class="row g-3 mb-3"> <div class="row g-3 mb-3">
<div class="col-md-6"> <div class="col-md-6">
<div class="d-flex align-items-center gap-2"> <div class="d-flex align-items-center gap-2">
<label for="ConfirmPassword" class="text-nowrap"> <label for="confirmPassword" class="text-nowrap">
{{ 'ConfirmPassword' | translate }}<span {{ 'confirmPassword' | translate }}<span
class="mandatory">*</span> class="mandatory">*</span>
</label> </label>
<div class="password-wrapper position-relative w-100"> <div class="password-wrapper position-relative w-100">
<input id="ConfirmPassword" <input id="confirmPassword"
class="form-control" class="form-control"
type="{{passwordType2}}" type="{{passwordType2}}"
placeholder="{{ 'ConfirmPassword' | translate }}" appNoWhitespaces/> placeholder="{{ 'confirmPassword' | translate }}" appNoWhitespaces/>
<app-password-hide-show class="password-eye align-items-stretch" #psh2 [showPassword]="true" (onEyeClick)="togglePasswordType2()"></app-password-hide-show> <app-password-hide-show class="password-eye align-items-stretch" #psh2 [showPassword]="true" (onEyeClick)="togglePasswordType2()"></app-password-hide-show>
<!-- <div class="text-danger"> <!-- <div class="text-danger">
<div> <div>

@ -1 +1,222 @@
<p>setup-user works!</p> <div id="layout-wrapper">
<div class="inner-pg-sp">
<div class="container-fluid">
<div class="row">
<div class="col-12">
<div class="d-sm-flex align-items-center justify-content-between navbar-header p-0">
</div>
</div>
</div>
<div class="container-fluid">
<div class="col-xl-12 mt-4">
<div class="card border">
<div class="card-body">
<div class="table-section">
<div class="row">
<div class="col-lg-12">
<div class="card-body mt-2 p-0">
<div class="card mb-0 mt-2">
<div
class="card-header font-edit-13-child d-flex justify-content-between align-items-center">
{{'setupUser' | translate}}
</div>
<div class="card-body">
<form>
<div class="row g-3 mb-3">
<div class="col-md-6">
<div class="d-flex align-items-center gap-2">
<label for="userID" class="text-nowrap">
{{ 'userID' | translate }}<span
class="mandatory">*</span>
</label>
<div class="password-wrapper position-relative w-100">
<div class="d-flex flex-row align-items-stretch">
<input type="text" id="userID"
class="form-control"
placeholder="{{ 'userID' | translate }}" appNoWhitespaces
/>
</div>
<!-- <div class="text-danger">
{{ 'requiredField' | translate }}
</div> -->
</div>
</div>
</div>
<div class="col-md-6">
<div class="d-flex align-items-start gap-2">
<label for="name"
class="text-nowrap mt-2">
{{ 'name' | translate }}<span
class="mandatory">*</span>
</label>
<div class="password-wrapper position-relative w-100">
<input id="name"
class="form-control"
maxlength="500"
placeholder="{{ 'username' | translate }}" appNoWhitespaces
rows="3" />
</div>
</div>
</div>
</div>
<div class="row g-3 mb-3">
<div class="col-md-6">
<div class="d-flex align-items-center gap-2">
<label for="phoneNumber" class="text-nowrap">
{{ 'phoneNumber' | translate }}<span
class="mandatory">*</span>
</label>
<div class="password-wrapper position-relative w-100">
<input id="phoneNumber"
class="form-control"
placeholder="{{ 'userContactNumber' | translate }}" appNoWhitespaces/>
<!-- <div class="text-danger">
<div>
{{ 'requiredField' | translate }}
</div>
</div>
<div>
{{ 'expiryBeforeRenewal' | translate }}
</div> -->
</div>
</div>
</div>
<div class="col-md-6">
</div>
</div>
<div class="row g-3 mb-3">
<div class="col-md-6 ms-auto text-end">
<button
class="btn btn-primary waves-effect waves-light"
>{{'save' | translate}}</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="container-fluid">
<div class="col-xl-12 mt-4">
<div class="card border">
<div class="card-body">
<div class="table-section">
<div class="row">
<div class="col-lg-12">
<div class="card-body mt-2 p-0">
<div class="card mb-0 mt-2">
<div class="card-header font-edit-13-child d-flex justify-content-between align-items-center">
{{'SetupUserDetails' | translate}}
<div class="d-flex align-items-center gap-2">
<div class="search-box">
<input type="text" class="form-control form-control-sm"
placeholder="{{ 'search' | translate }}">
<i class="fas fa-search search-icon"></i>
</div>
<i class="materialdesignicons" (click)="toggleCard('registrationData')">
</i>
</div>
</div>
<div class="card-body">
<div class="table-responsive">
<table class="table mb-0 border">
<thead class="table-light">
<tr>
<th>{{'userID' | translate}}</th>
<th>{{'Name' | translate}}</th>
<th>{{'phoneNumber' | translate}}</th>
<th>{{'action' | translate}}</th>
</tr>
</thead>
<tbody>
<tr>
<td></td>
<td></td>
<td></td>
<td>
<div class="d-flex justify-content-center gap-2">
<button class="btn btn-info btn-sm" title="View">
<i class="mdi mdi-eye-outline"></i>
</button>
<button class="btn btn-secondary btn-sm" title="Edit">
<i class="fas fa-pen"></i>
</button>
<button class="btn btn-danger btn-sm" title="Delete">
<i class="fas fa-trash-alt"></i>
</button>
</div>
</td>
</tr>
</tbody>
</table>
<div class="d-flex justify-content-between align-items-center mt-3">
<div class="form-group mb-0">
<ng-select class="form-select-sm"
[items]="pageSizeOptions"
bindLabel="label"
bindValue="value"
[(ngModel)]="itemsPerPage"
[searchable]="false"
[clearable]="false"
[dropdownPosition]="'top'">
</ng-select>
</div>
<div class="text-muted">
{{ 'page' | translate }} {{ 'of' | translate }} ({{ 'totalItems' | translate }})
</div>
<div class="btn-group">
<button class="btn btn-primary waves-effect waves-light">
{{ 'previous' | translate }}
</button>
<button class="btn btn-primary waves-effect waves-light">
{{ 'next' | translate }}
</button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>

@ -1,11 +1,44 @@
import { CommonModule } from '@angular/common';
import { Component } from '@angular/core'; import { Component } from '@angular/core';
import { FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';
import { NgSelectModule } from '@ng-select/ng-select';
import { TranslateModule } from '@ngx-translate/core';
import { pageSizeOptions } from '../../utils/app.constants';
@Component({ @Component({
selector: 'app-setup-user', selector: 'app-setup-user',
imports: [], standalone: true,
imports: [TranslateModule, ReactiveFormsModule, FormsModule, CommonModule, NgSelectModule],
templateUrl: './setup-user.component.html', templateUrl: './setup-user.component.html',
styleUrl: './setup-user.component.scss' styleUrl: './setup-user.component.scss'
}) })
export class SetupUserComponent { export class SetupUserComponent {
allItems: any[] = [];
currentPage: number = 1;
pageSizeOptions = pageSizeOptions
itemsPerPage: number = 5;
searchText: any;
createUserForm!: FormGroup<any>;
nextPage() {
throw new Error('Method not implemented.');
}
previousPage() {
throw new Error('Method not implemented.');
}
totalPages() {
return 1;
}
toggleCard(arg0: string) {
throw new Error('Method not implemented.');
}
onSubmit() {
throw new Error('Method not implemented.');
}
} }

@ -95,7 +95,7 @@
<div class="col-md-6"> <div class="col-md-6">
<div class="d-flex align-items-center gap-2"> <div class="d-flex align-items-center gap-2">
<label for="renewalDate" class="text-nowrap"> <label for="renewalDate" class="text-nowrap">
{{ 'PhoneNumber' | translate }}<span {{ 'phoneNumber' | translate }}<span
class="mandatory">*</span> class="mandatory">*</span>
</label> </label>
<div class="d-flex flex-column w-100"> <div class="d-flex flex-column w-100">

@ -72,11 +72,11 @@
"smsStatus":"حالة", "smsStatus":"حالة",
"viewThirdPartyAccounts":"عرض الحسابات", "viewThirdPartyAccounts":"عرض الحسابات",
"ThirdPartyID":"معرف الحفلة الثالثة", "ThirdPartyID":"معرف الحفلة الثالثة",
"Name":"اسم", "name":"اسم",
"EnterThirdPartyName":"أدخل اسم الطرف الثالث", "EnterThirdPartyName":"أدخل اسم الطرف الثالث",
"Email":"البريد الإلكتروني", "Email":"البريد الإلكتروني",
"Address":"تبوك", "Address":"تبوك",
"PhoneNumber":"رقم الهاتف", "phoneNumber":"رقم الهاتف",
"PhoneNumberPlaceHolder":"أدخل رقم الهاتف", "PhoneNumberPlaceHolder":"أدخل رقم الهاتف",
"NewNoOfAccounts":"عدد جديد من الحسابات", "NewNoOfAccounts":"عدد جديد من الحسابات",
"EnterNewNumberOfAccounts":"أدخل عددًا جديدًا من الحسابات", "EnterNewNumberOfAccounts":"أدخل عددًا جديدًا من الحسابات",
@ -89,16 +89,15 @@
"gridNum25":"خمسة وعشرون", "gridNum25":"خمسة وعشرون",
"gridNum50":"خمسون", "gridNum50":"خمسون",
"gridNum100":"مائة", "gridNum100":"مائة",
"UserID":"معرف المستخدم", "userID":"معرف المستخدم",
"UserContactNumber":"أدخل رقم اتصال المستخدم", "userContactNumber":"أدخل رقم اتصال المستخدم",
"SelectHomeBranch":"حدد الفرع الرئيسي", "SelectHomeBranch":"حدد الفرع الرئيسي",
"SelectRole":"حدد الدور", "SelectRole":"حدد الدور",
"HomeBranch":"فرع المنزل", "HomeBranch":"فرع المنزل",
"Role":"دور", "Role":"دور",
"ResetPassword":"إعادة تعيين كلمة المرور", "ResetPassword":"إعادة تعيين كلمة المرور",
"EnterNewPassword":"أدخل كلمة مرور جديدة", "enterNewPassword":"أدخل كلمة مرور جديدة",
"ConfirmPassword":"تأكيد كلمة المرور", "oldPassword":"كلمة المرور القديمة",
"OldPassword":"كلمة المرور القديمة",
"newPasswordStatic":"كلمة السر الجديدة", "newPasswordStatic":"كلمة السر الجديدة",
"savePassword":"يحفظ", "savePassword":"يحفظ",
"passwordPattern":"يجب أن تكون كلمة المرور أكثر من 8 أحرف وتتضمن حرفًا كبيرًا وحرفًا صغيرًا ورقمًا وحرفًا خاصًا", "passwordPattern":"يجب أن تكون كلمة المرور أكثر من 8 أحرف وتتضمن حرفًا كبيرًا وحرفًا صغيرًا ورقمًا وحرفًا خاصًا",
@ -141,7 +140,6 @@
"poc": "POC", "poc": "POC",
"nicop": "S / NICOP", "nicop": "S / NICOP",
"passport": "جواز السفر", "passport": "جواز السفر",
"Previous": "السابق",
"Next": "التالي", "Next": "التالي",
"ERR_APP_B_0001": "خطأ خادم داخلي", "ERR_APP_B_0001": "خطأ خادم داخلي",
"ERR_APP_B_0002": "خطأ اتصال محتمل مع الوحدة النمطية {{value1}}", "ERR_APP_B_0002": "خطأ اتصال محتمل مع الوحدة النمطية {{value1}}",
@ -191,6 +189,7 @@
"update": "تحديث", "update": "تحديث",
"cancel": "يلغي", "cancel": "يلغي",
"thirdPartyRegistrationDetails": "تفاصيل تسجيل الطرف الثالث", "thirdPartyRegistrationDetails": "تفاصيل تسجيل الطرف الثالث",
"SetupUserDetails": "إعداد تفاصيل المستخدم",
"search": "يبحث", "search": "يبحث",
"thirdPartyNamePlaceholder": "أدخل اسم الطرف الثالث", "thirdPartyNamePlaceholder": "أدخل اسم الطرف الثالث",
"phoneNumberPlaceholder": "أدخل رقم الهاتف", "phoneNumberPlaceholder": "أدخل رقم الهاتف",

@ -1,7 +1,7 @@
{ {
"logintoAccount":"Login to your account", "logintoAccount":"Login to your account",
"userName":"Username", "username":"Username",
"userNamePlaceHolder":"Enter Username", "userNamePlaceHolder":"Enter Username",
"password":"Password", "password":"Password",
"passwordPlaceHolder":"Enter Password", "passwordPlaceHolder":"Enter Password",
@ -74,11 +74,11 @@
"smsStatus":"Status", "smsStatus":"Status",
"viewThirdPartyAccounts":"View Accounts", "viewThirdPartyAccounts":"View Accounts",
"ThirdPartyID":"Third Party ID", "ThirdPartyID":"Third Party ID",
"Name":"Name", "name":"Name",
"EnterThirdPartyName":"Enter Third Party Name", "EnterThirdPartyName":"Enter Third Party Name",
"Email":"Email", "Email":"Email",
"Address":"Address", "Address":"Address",
"PhoneNumber":"Phone Number", "phoneNumber":"Phone Number",
"PhoneNumberPlaceHolder":"Enter Phone Number", "PhoneNumberPlaceHolder":"Enter Phone Number",
"NewNoOfAccounts":"New No of Accounts", "NewNoOfAccounts":"New No of Accounts",
"EnterNewNumberOfAccounts":"Enter New Number of Accounts", "EnterNewNumberOfAccounts":"Enter New Number of Accounts",
@ -91,16 +91,15 @@
"gridNum25":"25", "gridNum25":"25",
"gridNum50":"50", "gridNum50":"50",
"gridNum100":"100", "gridNum100":"100",
"UserID":"User ID", "userID":"User ID",
"UserContactNumber":"Enter User Contact Number", "userContactNumber":"Enter User Contact Number",
"SelectHomeBranch":"Select Home Branch", "SelectHomeBranch":"Select Home Branch",
"SelectRole":"Select Role", "SelectRole":"Select Role",
"HomeBranch":"Home Branch", "HomeBranch":"Home Branch",
"Role":"Role", "Role":"Role",
"ResetPassword":"Reset Password", "ResetPassword":"Reset Password",
"EnterNewPassword":"Enter New Password", "enterNewPassword":"Enter New Password",
"ConfirmPassword":"Confirm Password", "oldPassword":"Old Password",
"OldPassword":"Old Password",
"newPasswordStatic":"New Password", "newPasswordStatic":"New Password",
"savePassword":"Save", "savePassword":"Save",
"passwordPattern":"Password must be over 8 characters and include an uppercase letter, a lower case letter, a number and a special character", "passwordPattern":"Password must be over 8 characters and include an uppercase letter, a lower case letter, a number and a special character",
@ -145,7 +144,6 @@
"passport": "PASSPORT", "passport": "PASSPORT",
"senderNamePlaceHolder":"Enter Sender Name", "senderNamePlaceHolder":"Enter Sender Name",
"senderName":"Sender Name", "senderName":"Sender Name",
"Previous": "Previous",
"Next": "Next", "Next": "Next",
"ERR_APP_B_0001":"Internal Server Error", "ERR_APP_B_0001":"Internal Server Error",
"ERR_APP_B_0002":"Possible connection error with {{value1}} module", "ERR_APP_B_0002":"Possible connection error with {{value1}} module",
@ -166,7 +164,6 @@
"emailRequiredError": "Email is required.", "emailRequiredError": "Email is required.",
"invalidEmailFormatError": "Invalid email format.", "invalidEmailFormatError": "Invalid email format.",
"passNotMatch": "Password does not match", "passNotMatch": "Password does not match",
"POR_ORGACODE": "Organization ID", "POR_ORGACODE": "Organization ID",
"purposeSetup": "Configure Transaction Purpose", "purposeSetup": "Configure Transaction Purpose",
"purpcodeLabel": "Purpose Code", "purpcodeLabel": "Purpose Code",
@ -194,6 +191,7 @@
"update": "Update", "update": "Update",
"cancel": "Cancel", "cancel": "Cancel",
"thirdPartyRegistrationDetails": "Third Party Registration Details", "thirdPartyRegistrationDetails": "Third Party Registration Details",
"SetupUserDetails":"Setup User Details",
"search": "Search", "search": "Search",
"thirdPartyNamePlaceholder": "Enter Third Party Name", "thirdPartyNamePlaceholder": "Enter Third Party Name",
"phoneNumberPlaceholder": "Enter Phone Number", "phoneNumberPlaceholder": "Enter Phone Number",

Loading…
Cancel
Save