mazdak/UX-1387 #10

Merged
naeem.ullah merged 2 commits from mazdak/UX-1387 into dev-pending-09-12-2025 9 hours ago

@ -1 +1,280 @@
<p>sms-gateway 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">
<span *ngIf="!selectedGateway"></span>
<span *ngIf="selectedGateway">{{(selectedGateway === selectedGatewayType.SYRIATEL ? 'syriatelCredentials' : (selectedGateway === selectedGatewayType.TWILIO ? 'twilioCredentials' : (selectedGateway === selectedGatewayType.JAZZ ? 'jazzCredentials' : ''))) | translate}}</span>
<select class="form-select"style="min-width: 200px; width: auto;" [(ngModel)]="selectedGateway">
<option value="">{{'SMSGatewaySelect' | translate}}</option>
<option [value]="selectedGatewayType.SYRIATEL">{{'SMSGatewaySyriatel' | translate}}</option>
<option [value]="selectedGatewayType.TWILIO">{{'SMSGatewayTwillio' | translate}}</option>
<option [value]="selectedGatewayType.JAZZ">{{'SMSGatewayJazz' | translate}}</option>
</select>
</div>
<div class="card-body">
<form *ngIf="selectedGateway==='Jazz' || selectedGateway==='Twilio'">
<div class="row g-3 mb-3">
<div class="col-md-6">
<div class="d-flex align-items-center gap-2">
<label for="accountSID" class="text-nowrap">
{{ 'accountSID' | 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="accountSID"
class="form-control"
placeholder="{{ 'accountSID' | 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="authToken"
class="text-nowrap mt-2">
{{ 'authToken' | translate }}<span
class="mandatory">*</span>
</label>
<div class="password-wrapper position-relative w-100">
<input id="authToken" class="form-control" autocomplete="new-password" maxlength="500"
placeholder="{{ 'authToken' | 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="fromNumber" class="text-nowrap">
{{ 'fromNumber' | translate }}<span
class="mandatory">*</span>
</label>
<div class="password-wrapper position-relative w-100">
<input id="fromNumber" class="form-control"
placeholder="{{ 'fromNumber' | 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">
<div class="d-flex align-items-center gap-2">
<label class="text-nowrap">
{{ 'notificationType' | translate }}<span
class="mandatory">*</span>
</label>
<div class="w-100 d-flex gap-3">
<div class="form-check">
<input class="form-check-input" type="radio" name="notificationType" id="message" value="Message">
<label class="form-check-label" for="message">
{{ 'message' | translate }}
</label>
</div>
<div class="form-check">
<input class="form-check-input" type="radio" name="notificationType" id="template" value="Template">
<label class="form-check-label" for="template">
{{ 'template' | translate }}
</label>
</div>
</div>
</div>
</div>
<div class="col-md-6">
<div class="d-flex align-items-center gap-2">
<label class="text-nowrap">
{{ 'language' | translate }}<span
class="mandatory">*</span>
</label>
<div class="w-100 d-flex gap-3">
<div class="form-check">
<input class="form-check-input" type="radio" name="language" id="languageArabic" value="Arabic">
<label class="form-check-label" for="languageArabic">
{{ 'arabic' | translate }}
</label>
</div>
<div class="form-check">
<input class="form-check-input" type="radio" name="language" id="languageEnglish" value="English">
<label class="form-check-label" for="languageEnglish">
{{ 'english' | translate }}
</label>
</div>
</div>
</div>
</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>
<form *ngIf="selectedGateway==='Syriatel'">
<div class="row g-3 mb-3">
<div class="col-md-6">
<div class="d-flex align-items-center gap-2">
<label for="userName" class="text-nowrap">
{{ 'userName' | 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="userName" class="form-control" placeholder="{{ 'userNamePlaceHolder' | translate }}"
appNoWhitespaces />
</div>
</div>
</div>
</div>
<div class="col-md-6">
<div class="d-flex align-items-center gap-2">
<label for="senderName" class="text-nowrap">
{{ 'senderName' | translate }}<span class="mandatory">*</span>
</label>
<div class="password-wrapper position-relative w-100">
<input type="text" id="senderName" class="form-control" placeholder="{{ 'senderNamePlaceHolder' | translate }}"
appNoWhitespaces />
</div>
</div>
</div>
</div>
<div class="row g-3 mb-3">
<div class="col-md-6">
<div class="d-flex align-items-start gap-2">
<label for="password" class="text-nowrap mt-2">
{{ 'password' | translate }}<span class="mandatory">*</span>
</label>
<div class="password-wrapper position-relative w-100">
<input type="password" id="password" class="form-control" autocomplete="new-password"
maxlength="500" placeholder="{{ 'passwordPlaceholder' | translate }}" appNoWhitespaces />
</div>
</div>
</div>
<div class="col-md-6">
</div>
</div>
<div class="row g-3 mb-3">
<div class="col-md-6">
<div class="d-flex align-items-center gap-2">
<label class="text-nowrap">
{{ 'notificationType' | translate }}<span class="mandatory">*</span>
</label>
<div class="w-100 d-flex gap-3">
<div class="form-check">
<input class="form-check-input" type="radio" name="notificationType" id="message"
value="Message">
<label class="form-check-label" for="message">
{{ 'message' | translate }}
</label>
</div>
<div class="form-check">
<input class="form-check-input" type="radio" name="notificationType" id="template"
value="Template">
<label class="form-check-label" for="template">
{{ 'template' | translate }}
</label>
</div>
</div>
</div>
</div>
<div class="col-md-6">
<div class="d-flex align-items-center gap-2">
<label class="text-nowrap">
{{ 'language' | translate }}<span class="mandatory">*</span>
</label>
<div class="w-100 d-flex gap-3">
<div class="form-check">
<input class="form-check-input" type="radio" name="language" id="languageArabic" value="Arabic">
<label class="form-check-label" for="languageArabic">
{{ 'arabic' | translate }}
</label>
</div>
<div class="form-check">
<input class="form-check-input" type="radio" name="language" id="languageEnglish"
value="English">
<label class="form-check-label" for="languageEnglish">
{{ 'english' | translate }}
</label>
</div>
</div>
</div>
</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>
</div>
</div>

@ -1,11 +1,18 @@
import { CommonModule } from '@angular/common';
import { Component } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { NgSelectComponent } from '@ng-select/ng-select';
import { TranslateModule } from '@ngx-translate/core';
import { selectedGatewayType } from '../utils/enums';
@Component({
selector: 'app-sms-gateway',
imports: [],
imports: [TranslateModule, FormsModule, CommonModule],
templateUrl: './sms-gateway.component.html',
styleUrl: './sms-gateway.component.scss'
})
export class SmsGatewayComponent {
selectedGateway: string = '';
selectedGatewayType = selectedGatewayType
}

@ -18,4 +18,10 @@ export enum directions{
export enum APP_URL_KEY{
API_PATH = 'API_PATH'
}
export enum selectedGatewayType{
SYRIATEL = 'Syriatel',
TWILIO = 'Twilio',
JAZZ = 'Jazz'
}

@ -113,12 +113,18 @@
"SMSGatewaySyriatel":"سيريتل",
"SMSGatewayTwillio":"تويليو",
"SMSGatewayJazz":"جاز",
"SyriatelCredentials":"أوراق اعتماد سيريتل",
"TwilioCredentials":"أوراق اعتماد تويليو",
"JazzCredentials":"أوراق اعتماد جاز",
"AccountSID":"الحساب SID",
"AuthToken":"رمز المصادقة",
"syriatelCredentials":"أوراق اعتماد سيريتل",
"twilioCredentials":"أوراق اعتماد تويليو",
"jazzCredentials":"أوراق اعتماد جاز",
"accountSID":"الحساب SID",
"authToken":"رمز المصادقة",
"fromNumber":"من الرقم",
"senderName":"اسم المرسل",
"senderNamePlaceHolder":"أدخل اسم المرسل",
"message": "رسالة",
"template": "قالب",
"language":"اللغة",
"notificationType": "نوع الإشعار",
"sinceLastDay":"منذ اليوم الماضي",
"TodayTotalErrorRequest":"طلب إجمالي الخطأ اليوم",
"TodayTotalPendingSms":"مجموع الرسائل القصيرة المعلقة اليوم",

@ -71,10 +71,13 @@
"smsBankingChildTitle":"SMS Logger",
"smsTrackingID":"Tracking ID",
"smsMessage":"Message",
"message": "Message",
"template": "Template",
"smsNo":"Phone Number",
"smsOrgaCode":"Organization Code",
"smsDate":"Date",
"smsStatus":"Status",
"language":"Language",
"viewThirdPartyAccounts":"View Accounts",
"ThirdPartyID":"Third Party ID",
"name":"Name",
@ -112,12 +115,13 @@
"SMSGatewaySyriatel":"Syriatel",
"SMSGatewayTwillio":"Twilio",
"SMSGatewayJazz":"Jazz",
"SyriatelCredentials":"Syriatel Credentials",
"TwilioCredentials":"Twilio Credentials",
"JazzCredentials":"Jazz Credentials",
"AccountSID":"Account SID",
"AuthToken":"Auth Token",
"syriatelCredentials":"Syriatel Credentials",
"twilioCredentials":"Twilio Credentials",
"jazzCredentials":"Jazz Credentials",
"accountSID":"Account SID",
"authToken":"Auth Token",
"fromNumber":"From Number",
"notificationType":"Notification Type",
"sinceLastDay":"Since last day",
"TodayTotalErrorRequest":"Today Total Error Request",
"TodayTotalPendingSms":"Today Total Pending Sms",
@ -159,7 +163,7 @@
"feedbackSetup": "Feedback Setup",
"credentials": "Credentials",
"credentialsTitle": "Feedback Credentials Setup",
"passwordPlaceholder": "Enter password",
"passwordPlaceholder": "Enter Password",
"confirmPasswordPlaceholder": "Enter confirm password",
"newPasswordPlaceholder": "Enter new password",
"confirmPassword": "Confirm Password",

Loading…
Cancel
Save