diff --git a/src/app/app.constants.ts b/src/app/app.constants.ts index 581b39e3..955e7543 100644 --- a/src/app/app.constants.ts +++ b/src/app/app.constants.ts @@ -4,6 +4,7 @@ export const AUTH_ERROR_CODE = ['KER-ATH-007', 'KER-ATH-006']; export const SBI_PROJECT_ADD_ID = 'mosip.toolkit.sbi.project.add'; export const SDK_PROJECT_ADD_ID = 'mosip.toolkit.sdk.project.add'; export const ABIS_PROJECT_ADD_ID = 'mosip.toolkit.abis.project.add'; +export const SBI_PROJECT_UPDATE_ID = 'mosip.toolkit.sbi.project.update'; export const SDK_PROJECT_UPDATE_ID = 'mosip.toolkit.sdk.project.update'; export const ABIS_PROJECT_UPDATE_ID = 'mosip.toolkit.abis.project.update'; export const VALIDATIONS_ADD_ID = 'mosip.toolkit.api.id.validations'; @@ -42,14 +43,17 @@ export const SDK = 'SDK'; export const SBI = 'SBI'; export const ABIS = 'ABIS'; export const COMMON_CONTROLS = ['name', 'projectType']; -export const SDK_CONTROLS = ['sdkSpecVersion','sdkUrl', 'sdkPurpose', 'bioTestData']; +export const SDK_CONTROLS = ['sdkSpecVersion','sdkUrl', 'sdkPurpose', 'sdkHash', 'websiteUrl', 'bioTestData']; export const SBI_CONTROLS = [ 'sbiSpecVersion', 'sbiPurpose', 'deviceType', 'deviceSubType', + 'deviceImages', + 'sbiHash', + 'websiteUrl', ]; -export const ABIS_CONTROLS = ['abisUrl', 'username', 'password', 'outboundQueueName','inboundQueueName', 'modality', 'abisSpecVersion','abisBioTestData']; +export const ABIS_CONTROLS = ['abisUrl', 'username', 'password', 'outboundQueueName','inboundQueueName', 'modality', 'abisSpecVersion', 'abisHash', 'websiteUrl', 'abisBioTestData']; export const TEST_DATA_CONTROLS= ['name', 'type', 'purpose']; export const SBI_KEY_ROTATION_ITERATIONS = 'keyRotationIterations'; //SBI methods related constants diff --git a/src/app/core/components/dialog/dialog.component.css b/src/app/core/components/dialog/dialog.component.css index 17698b19..93d7097f 100644 --- a/src/app/core/components/dialog/dialog.component.css +++ b/src/app/core/components/dialog/dialog.component.css @@ -15,4 +15,70 @@ mat-dialog-content { } .custom-class mat-icon { vertical-align: middle; -} \ No newline at end of file +} +.formContainer { + background-color: white; + margin-top: 10px; +} +.fieldWrapper { + flex: 1; + display: flex; + flex-direction: row; + justify-content: flex-start; + align-items: center; + padding: 5px; + /* height: 50px; */ +} +.fieldLabel { +width: 20%; +} +.fieldContainer { +width: 80%; +align-items: center; +} +.fieldContainerBox{ +width: 300px; +} +.spinnerForUpdatingProject { + flex-direction: column; + display: flex; +} +.button-container + .buttonDiv { + margin-left: 8px; +} +.saveBt { + margin-left: 330px; +} +@media only screen and (max-width: 426px) { + .fieldWrapper { + width: 340px; + } + .fieldLabel { + width: 80px; + } + .fieldContainerBox { + width: 240px; + } + } + @media screen and (max-width: 402px) { + .fieldWrapper { + width: 330px; + padding-left: -5px; + } + .fieldLabel { + width: 60px; + } + .button-container { + width: 270px; + } + } + @media screen and (max-width: 374px) { + .fieldWrapper { + width: 250px; + display: block; + padding-bottom: 20px; + } + .fieldContainerBox { + width: 210px; + } + } \ No newline at end of file diff --git a/src/app/core/components/dialog/dialog.component.html b/src/app/core/components/dialog/dialog.component.html index 5589448d..66e221a8 100644 --- a/src/app/core/components/dialog/dialog.component.html +++ b/src/app/core/components/dialog/dialog.component.html @@ -30,4 +30,117 @@

{{ in +
+

{{"projectDashboard.title"|translate}}

+ + {{"projectDashboard.message"|translate}} + +
+
+ +
+ + {{"viewProject.deviceImages"|translate}} + + + + + {{"viewProject.deviceImages"|translate}} + + + {{"viewProject.deviceImagesIsRequired"|translate}} + + + {{"dialogMessages.deviceImagesIsInvalid"|translate}} + + + +
+
+ + {{"viewProject.sbiHash"|translate}} + + + + + {{"viewProject.sbiHash"|translate}} + + + {{"viewProject.sbiHashIsRequired"|translate}} + + + {{"dialogMessages.sbiHashIsInvalid"|translate}} + + + +
+
+ +
+ + {{"viewProject.sdkHash"|translate}} + + + + + {{"viewProject.sdkHash"|translate}} + + + {{"viewProject.sdkHashIsRequired"|translate}} + + + {{"dialogMessages.sdkHashIsInvalid"|translate}} + + + +
+
+ +
+ + {{"viewProject.abisHash"|translate}} + + + + + {{"viewProject.abisHash"|translate}} + + + {{"viewProject.abisHashIsRequired"|translate}} + + + {{"dialogMessages.abisHashIsInvalid"|translate}} + + + +
+
+
+ + {{"viewProject.websiteUrl"|translate}} + + + + + {{"viewProject.websiteUrl"|translate}} + + + {{"viewProject.websiteUrlIsRequired"|translate}} + + + {{"dialogMessages.websiteUrlIsInvalid"|translate}} + + + +
+
+
+
+ + +
+
\ No newline at end of file diff --git a/src/app/core/components/dialog/dialog.component.ts b/src/app/core/components/dialog/dialog.component.ts index b23723ac..f510520b 100644 --- a/src/app/core/components/dialog/dialog.component.ts +++ b/src/app/core/components/dialog/dialog.component.ts @@ -7,6 +7,14 @@ import { } from '@angular/material/dialog'; import { TranslateService } from '@ngx-translate/core'; import { UserProfileService } from '../../services/user-profile.service'; +import { AbstractControl, FormControl, FormGroup, ValidationErrors, Validators } from '@angular/forms'; +import * as appConstants from 'src/app/app.constants'; +import { Router } from '@angular/router'; +import { Subscription } from 'rxjs'; +import Utils from 'src/app/app.utils'; +import { SbiProjectModel } from '../../models/sbi-project'; +import { AbisProjectModel } from '../../models/abis-project'; +import { SdkProjectModel } from '../../models/sdk-project'; @Component({ selector: 'app-dialog', @@ -16,10 +24,21 @@ import { UserProfileService } from '../../services/user-profile.service'; export class DialogComponent implements OnInit { input: any; panelOpenState = false; + projectId: string; + projectType: string; + projectForm = new FormGroup({}); + projectFormData: any; + allControls: string[]; + updatingAttribute: string; + subscriptions: Subscription[] = []; + resourceBundleJson: any = {}; + dataLoaded = false; constructor( + private router: Router, private dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any, private dataService: DataService, + private dialog: MatDialog, private translate: TranslateService, private userProfileService: UserProfileService ) { @@ -31,8 +50,400 @@ export class DialogComponent implements OnInit { this.dialogRef.close(); } - ngOnInit(): void { + async ngOnInit(): Promise { this.input = this.data; this.translate.use(this.userProfileService.getUserPreferredLanguage()); + this.resourceBundleJson = await Utils.getResourceBundle(this.userProfileService.getUserPreferredLanguage(), this.dataService); + this.projectId = this.input.id; + this.projectType = this.input.projectType; + if(this.projectType == appConstants.SBI) { + this.initSbiProjectForm(); + await this.getSbiProjectDetails(); + this.populateSbiProjectForm(); + } + if (this.projectType == appConstants.SDK) { + this.initSdkProjectForm(); + await this.getSdkProjectDetails(); + this.populateSdkProjectForm(); + } + if (this.projectType == appConstants.ABIS) { + this.initAbisProjectForm(); + await this.getAbisProjectDetails(); + this.populateAbisProjectForm(); + } + this.dataLoaded = true; + } + + initSbiProjectForm() { + this.allControls = [ + ...appConstants.COMMON_CONTROLS, + ...appConstants.SBI_CONTROLS, + ]; + this.allControls.forEach((controlId) => { + this.projectForm.addControl( + controlId, + new FormControl({ + value: '', + disabled: + controlId == 'deviceImages' || controlId == 'sbiHash' || controlId == 'websiteUrl' ? false : true, + }) + ); + }); + appConstants.SBI_CONTROLS.forEach((controlId) => { + this.projectForm.controls[controlId].setValidators(Validators.required); + if (controlId == 'deviceImages' || controlId == 'sbiHash' || controlId == 'websiteUrl') { + this.projectForm.controls[controlId].setValidators([ + Validators.required, + this.toBeAddedPatternValidator, + ]); + } + }); + } + + initSdkProjectForm() { + this.allControls = [ + ...appConstants.COMMON_CONTROLS, + ...appConstants.SDK_CONTROLS, + ]; + this.allControls.forEach((controlId) => { + this.projectForm.addControl( + controlId, + new FormControl({ + value: '', + disabled: + controlId == 'sdkHash' || controlId == 'websiteUrl' ? false : true, + }) + ); + }); + appConstants.SDK_CONTROLS.forEach((controlId) => { + this.projectForm.controls[controlId].setValidators(Validators.required); + if (controlId == 'sdkHash' || controlId == 'websiteUrl') { + this.projectForm.controls[controlId].setValidators([ + Validators.required, + this.toBeAddedPatternValidator, + ]); + } + }); + } + + initAbisProjectForm() { + this.allControls = [ + ...appConstants.COMMON_CONTROLS, + ...appConstants.ABIS_CONTROLS, + ]; + this.allControls.forEach((controlId) => { + this.projectForm.addControl( + controlId, + new FormControl({ + value: '', + disabled: + controlId == 'abisHash' || controlId == 'websiteUrl' ? false : true, + }) + ); + }); + appConstants.ABIS_CONTROLS.forEach((controlId) => { + this.projectForm.controls[controlId].setValidators(Validators.required); + if (controlId == 'abisHash' || controlId == 'websiteUrl') { + this.projectForm.controls[controlId].setValidators([ + Validators.required, + this.toBeAddedPatternValidator, + ]); + } + }); + } + + //Function for 'To_Be_Added' pattern + toBeAddedPatternValidator(control: AbstractControl): ValidationErrors | null { + const pattern = /^To_Be_Added$/; + const value = control.value; + return pattern.test(value) ? { toBeAddedPattern: true } : null; + } + + async getSbiProjectDetails() { + return new Promise((resolve, reject) => { + this.subscriptions.push( + this.dataService.getSbiProject(this.projectId).subscribe( + (response: any) => { + this.projectFormData = response['response']; + resolve(true); + }, + (errors) => { + Utils.showErrorMessage(this.resourceBundleJson, errors, this.dialog); + resolve(false); + } + ) + ); + }); + } + + async getSdkProjectDetails() { + return new Promise((resolve, reject) => { + this.subscriptions.push( + this.dataService.getSdkProject(this.projectId).subscribe( + (response: any) => { + this.projectFormData = response['response']; + resolve(true); + }, + (errors) => { + Utils.showErrorMessage(this.resourceBundleJson, errors, this.dialog); + resolve(false); + } + ) + ); + }); + } + + async getAbisProjectDetails() { + return new Promise((resolve, reject) => { + this.subscriptions.push( + this.dataService.getAbisProject(this.projectId).subscribe( + (response: any) => { + this.projectFormData = response['response']; + resolve(true); + }, + (errors) => { + Utils.showErrorMessage(this.resourceBundleJson, errors, this.dialog); + resolve(false); + } + ) + ); + }); + } + + populateSbiProjectForm() { + if (this.projectFormData) { + this.projectForm.controls['name'].setValue(this.projectFormData.name); + this.projectForm.controls['projectType'].setValue(appConstants.SBI); + this.projectForm.controls['sbiSpecVersion'].setValue( + this.projectFormData.sbiVersion + ); + this.projectForm.controls['sbiPurpose'].setValue( + this.projectFormData.purpose + ); + this.projectForm.controls['deviceType'].setValue( + this.projectFormData.deviceType + ); + this.projectForm.controls['deviceSubType'].setValue( + this.projectFormData.deviceSubType + ); + this.projectForm.controls['deviceImages'].setValue( + this.projectFormData.deviceImages + ); + this.projectForm.controls['sbiHash'].setValue( + this.projectFormData.sbiHash + ); + this.projectForm.controls['websiteUrl'].setValue( + this.projectFormData.websiteUrl + ); + } + } + + populateSdkProjectForm() { + if (this.projectFormData) { + this.projectForm.controls['name'].setValue(this.projectFormData.name); + this.projectForm.controls['projectType'].setValue(appConstants.SDK); + this.projectForm.controls['sdkUrl'].setValue(this.projectFormData.url); + this.projectForm.controls['sdkSpecVersion'].setValue( + this.projectFormData.sdkVersion + ); + this.projectForm.controls['sdkPurpose'].setValue( + this.projectFormData.purpose + ); + this.projectForm.controls['sdkHash'].setValue( + this.projectFormData.sdkHash + ); + this.projectForm.controls['websiteUrl'].setValue( + this.projectFormData.websiteUrl + ); + this.projectForm.controls['bioTestData'].setValue( + this.projectFormData.bioTestDataFileName + ); + } + } + + populateAbisProjectForm() { + if (this.projectFormData) { + this.projectForm.controls['name'].setValue(this.projectFormData.name); + this.projectForm.controls['projectType'].setValue(appConstants.ABIS); + this.projectForm.controls['abisUrl'].setValue(this.projectFormData.url); + this.projectForm.controls['inboundQueueName'].setValue(this.projectFormData.inboundQueueName); + this.projectForm.controls['outboundQueueName'].setValue(this.projectFormData.outboundQueueName); + this.projectForm.controls['username'].setValue(this.projectFormData.username); + this.projectForm.controls['password'].setValue(this.projectFormData.password); + this.projectForm.controls['modality'].setValue(this.projectFormData.modality); + this.projectForm.controls['abisSpecVersion'].setValue( + this.projectFormData.abisVersion + ); + this.projectForm.controls['abisHash'].setValue( + this.projectFormData.abisHash + ); + this.projectForm.controls['websiteUrl'].setValue( + this.projectFormData.websiteUrl + ); + this.projectForm.controls['abisBioTestData'].setValue( + this.projectFormData.bioTestDataFileName + ); + } + } + + async updateProject() { + const projectType = this.projectForm.controls['projectType'].value; + console.log(`updateProject for type: ${projectType}`); + if (projectType == appConstants.SBI) { + appConstants.SBI_CONTROLS.forEach((controlId) => { + this.projectForm.controls[controlId].markAsTouched(); + }); + } + if (projectType == appConstants.SDK) { + appConstants.SDK_CONTROLS.forEach((controlId) => { + this.projectForm.controls[controlId].markAsTouched(); + }); + } + if (projectType == appConstants.ABIS) { + appConstants.ABIS_CONTROLS.forEach((controlId) => { + this.projectForm.controls[controlId].markAsTouched(); + }); + } + if (this.projectForm.valid) { + //Save the project in db + console.log('valid'); + if (projectType == appConstants.SBI) { + const projectData: SbiProjectModel = { + id: this.projectFormData.id, + name: this.projectForm.controls['name'].value, + projectType: this.projectForm.controls['projectType'].value, + sbiVersion: this.projectForm.controls['sbiSpecVersion'].value, + purpose: this.projectForm.controls['sbiPurpose'].value, + deviceType: this.projectForm.controls['deviceType'].value, + deviceSubType: this.projectForm.controls['deviceSubType'].value, + deviceImages: this.projectForm.controls['deviceImages'].value, + sbiHash: this.projectForm.controls['sbiHash'].value, + websiteUrl: this.projectForm.controls['websiteUrl'].value, + }; + let request = { + id: appConstants.SBI_PROJECT_UPDATE_ID, + version: appConstants.VERSION, + requesttime: new Date().toISOString(), + request: projectData, + }; + await this.updateSbiProject(request); + } + if (projectType == appConstants.SDK) { + const projectData: SdkProjectModel = { + id: this.projectFormData.id, + name: this.projectForm.controls['name'].value, + projectType: this.projectForm.controls['projectType'].value, + sdkVersion: this.projectForm.controls['sdkSpecVersion'].value, + purpose: this.projectForm.controls['sdkPurpose'].value, + url: this.projectForm.controls['sdkUrl'].value, + sdkHash: this.projectForm.controls['sdkHash'].value, + websiteUrl: this.projectForm.controls['websiteUrl'].value, + bioTestDataFileName: this.projectForm.controls['bioTestData'].value, + }; + let request = { + id: appConstants.SDK_PROJECT_UPDATE_ID, + version: appConstants.VERSION, + requesttime: new Date().toISOString(), + request: projectData, + }; + await this.updateSdkProject(request); + } + if (projectType == appConstants.ABIS) { + const projectData: AbisProjectModel = { + id: this.projectFormData.id, + name: this.projectForm.controls['name'].value, + projectType: this.projectForm.controls['projectType'].value, + abisVersion: this.projectForm.controls['abisSpecVersion'].value, + url: this.projectForm.controls['abisUrl'].value, + username: this.projectForm.controls['username'].value, + password: this.projectForm.controls['password'].value, + outboundQueueName: this.projectForm.controls['outboundQueueName'].value, + inboundQueueName: this.projectForm.controls['inboundQueueName'].value, + modality:this.projectForm.controls['modality'].value, + abisHash:this.projectForm.controls['abisHash'].value, + websiteUrl:this.projectForm.controls['websiteUrl'].value, + bioTestDataFileName: this.projectForm.controls['abisBioTestData'].value, + }; + let request = { + id: appConstants.ABIS_PROJECT_UPDATE_ID, + version: appConstants.VERSION, + requesttime: new Date().toISOString(), + request: projectData, + }; + await this.updateAbisProject(request); + } + await this.saveProject() + } + } + + async updateSbiProject(request: any) { + return new Promise((resolve, reject) => { + this.subscriptions.push( + this.dataService.updateSbiProject(request).subscribe( + (response: any) => { + console.log(response); + resolve(this.getProjectResponse(response)); + }, + (errors) => { + this.updatingAttribute = ''; + Utils.showErrorMessage(this.resourceBundleJson, errors, this.dialog); + resolve(false); + } + ) + ); + }); + } + + async updateSdkProject(request: any) { + return new Promise((resolve, reject) => { + this.subscriptions.push( + this.dataService.updateSdkProject(request).subscribe( + (response: any) => { + console.log(response); + resolve(this.getProjectResponse(response)); + }, + (errors) => { + this.updatingAttribute = ''; + Utils.showErrorMessage(this.resourceBundleJson, errors, this.dialog); + resolve(false); + } + ) + ); + }); + } + + async updateAbisProject(request: any) { + return new Promise((resolve, reject) => { + this.subscriptions.push( + this.dataService.updateAbisProject(request).subscribe( + (response: any) => { + console.log(response); + resolve(this.getProjectResponse(response)); + }, + (errors) => { + this.updatingAttribute = ''; + Utils.showErrorMessage(this.resourceBundleJson, errors, this.dialog); + resolve(false); + } + ) + ); + }); + } + + getProjectResponse(response: any){ + if (response.errors && response.errors.length > 0) { + this.updatingAttribute = ''; + Utils.showErrorMessage(this.resourceBundleJson, response.errors, this.dialog); + return true; + } else { + this.updatingAttribute = ''; + this.panelOpenState = true; + return true; + } + } + + async saveProject() { + this.dialogRef.close(''); + await this.router.navigate([`toolkit/project/${this.projectType}/${this.projectId}`]); } } diff --git a/src/app/core/core.module.ts b/src/app/core/core.module.ts index 25ebcf14..98e98c62 100644 --- a/src/app/core/core.module.ts +++ b/src/app/core/core.module.ts @@ -22,9 +22,10 @@ import { HeaderComponent } from './components/header/header.component'; import { DialogComponent } from './components/dialog/dialog.component'; import { AbisTestCaseService } from './services/abis-testcase-service'; import { ActiveMqService } from './services/activemq-service'; +import { ReactiveFormsModule } from '@angular/forms'; @NgModule({ - imports: [CommonModule, MaterialModule, RouterModule, HttpClientModule], + imports: [CommonModule, MaterialModule, RouterModule, HttpClientModule, ReactiveFormsModule], declarations: [HomeComponent, MainLayoutComponent, HeaderComponent, DialogComponent], exports: [ HomeComponent, diff --git a/src/app/core/models/abis-project.ts b/src/app/core/models/abis-project.ts index 88781de6..562284ea 100644 --- a/src/app/core/models/abis-project.ts +++ b/src/app/core/models/abis-project.ts @@ -10,6 +10,8 @@ export class AbisProjectModel { public outboundQueueName: string, public inboundQueueName: string, public modality: string, + public abisHash: string, + public websiteUrl: string, public bioTestDataFileName: string ) {} } diff --git a/src/app/core/models/sbi-project.ts b/src/app/core/models/sbi-project.ts index 4b754d3c..3c10eca5 100644 --- a/src/app/core/models/sbi-project.ts +++ b/src/app/core/models/sbi-project.ts @@ -1,10 +1,14 @@ export class SbiProjectModel { constructor( + public id: string, public name: string, public projectType: string, public sbiVersion: string, public purpose: string, public deviceType: string, - public deviceSubType: string + public deviceSubType: string, + public deviceImages: string, + public sbiHash: string, + public websiteUrl: string ) {} } diff --git a/src/app/core/models/sdk-project.ts b/src/app/core/models/sdk-project.ts index b4ffc509..023ae8e4 100644 --- a/src/app/core/models/sdk-project.ts +++ b/src/app/core/models/sdk-project.ts @@ -6,6 +6,8 @@ export class SdkProjectModel { public sdkVersion: string, public url: string, public purpose: string, + public sdkHash: string, + public websiteUrl: string, public bioTestDataFileName: string ) {} } diff --git a/src/app/core/services/data-service.ts b/src/app/core/services/data-service.ts index 3b612a6f..c32e503a 100644 --- a/src/app/core/services/data-service.ts +++ b/src/app/core/services/data-service.ts @@ -60,6 +60,11 @@ export class DataService { return this.httpClient.get(url); } + updateSbiProject(body: any) { + let url = `${this.SERVICES_BASE_URL}updateSbiProject`; + return this.httpClient.put(url, body); + } + updateSdkProject(body: any) { let url = `${this.SERVICES_BASE_URL}updateSdkProject`; return this.httpClient.put(url, body); diff --git a/src/app/features/dashboard/projects-dashboard/projects-dashboard.component.ts b/src/app/features/dashboard/projects-dashboard/projects-dashboard.component.ts index 9b872b5b..fe2f886e 100644 --- a/src/app/features/dashboard/projects-dashboard/projects-dashboard.component.ts +++ b/src/app/features/dashboard/projects-dashboard/projects-dashboard.component.ts @@ -12,6 +12,7 @@ import Utils from 'src/app/app.utils'; import { UserProfileService } from 'src/app/core/services/user-profile.service'; import { environment } from 'src/environments/environment'; import { BreadcrumbService } from 'xng-breadcrumb'; +import { DialogComponent } from 'src/app/core/components/dialog/dialog.component'; export interface ProjectData { id: string; @@ -41,6 +42,7 @@ export class ProjectsDashboardComponent implements OnInit { 'actions', ]; dataLoaded = false; + projectFormData: any; subscriptions: Subscription[] = []; @ViewChild(MatPaginator) paginator: MatPaginator; @ViewChild(MatSort) sort: MatSort; @@ -152,11 +154,109 @@ export class ProjectsDashboardComponent implements OnInit { localStorage.removeItem(appConstants.SBI_SCAN_DATA); localStorage.removeItem(appConstants.SBI_SCAN_COMPLETE); } - await this.router.navigate([ - `toolkit/project/${project.projectType}/${project.id}`, - ]); + if (project.projectType == appConstants.SBI) { + await this.getSbiProjectDetails(project.id); + const deviceImages = this.projectFormData.deviceImages; + const sbiHash = this.projectFormData.sbiHash; + const websiteUrl = this.projectFormData.websiteUrl; + if (deviceImages == 'To_Be_Added' || sbiHash == 'To_Be_Added' || websiteUrl == 'To_Be_Added') { + await this.showUpdateProject(project.id, project.projectType); + } else { + await this.router.navigate([ + `toolkit/project/${project.projectType}/${project.id}`, + ]); + } + } + if (project.projectType == appConstants.SDK) { + await this.getSdkProjectDetails(project.id); + const sdkHash = this.projectFormData.sdkHash; + const websiteUrl = this.projectFormData.websiteUrl; + if (sdkHash == 'To_Be_Added'|| websiteUrl == 'To_Be_Added') { + await this.showUpdateProject(project.id, project.projectType); + } else { + await this.router.navigate([ + `toolkit/project/${project.projectType}/${project.id}`, + ]); + } + } + if (project.projectType == appConstants.ABIS) { + await this.getAbisProjectDetails(project.id); + const abisHash = this.projectFormData.abisHash; + const websiteUrl = this.projectFormData.websiteUrl; + if (abisHash == 'To_Be_Added'|| websiteUrl == 'To_Be_Added') { + await this.showUpdateProject(project.id, project.projectType); + } else { + await this.router.navigate([ + `toolkit/project/${project.projectType}/${project.id}`, + ]); + } + } } + async getSbiProjectDetails(projectId: any) { + return new Promise((resolve, reject) => { + this.subscriptions.push( + this.dataService.getSbiProject(projectId).subscribe( + (response: any) => { + this.projectFormData = response['response']; + resolve(true); + }, + (errors) => { + Utils.showErrorMessage(this.resourceBundleJson, errors, this.dialog); + resolve(false); + } + ) + ); + }); + } + + async getSdkProjectDetails(projectId: any) { + return new Promise((resolve, reject) => { + this.subscriptions.push( + this.dataService.getSdkProject(projectId).subscribe( + (response: any) => { + this.projectFormData = response['response']; + resolve(true); + }, + (errors) => { + Utils.showErrorMessage(this.resourceBundleJson, errors, this.dialog); + resolve(false); + } + ) + ); + }); + } + + async getAbisProjectDetails(projectId: any) { + return new Promise((resolve, reject) => { + this.subscriptions.push( + this.dataService.getAbisProject(projectId).subscribe( + (response: any) => { + this.projectFormData = response['response']; + resolve(true); + }, + (errors) => { + Utils.showErrorMessage(this.resourceBundleJson, errors, this.dialog); + resolve(false); + } + ) + ); + }); + } + + async showUpdateProject(projectId: any, projectType: any) { + const body = { + case: 'UPDATE_PROJECT', + id: projectId, + projectType: projectType + }; + const dialogRef = this.dialog.open(DialogComponent, { + width: '600px', + data: body, + }); + dialogRef.disableClose = false; + } + async showBiometricDashboard() { await this.router.navigate([`toolkit/dashboard/biometric`]); } diff --git a/src/app/features/project/add-project/add-project.component.css b/src/app/features/project/add-project/add-project.component.css index 771a1334..cd7b9d0b 100644 --- a/src/app/features/project/add-project/add-project.component.css +++ b/src/app/features/project/add-project/add-project.component.css @@ -13,6 +13,13 @@ /* height: 50px; width: 340px; */ } +.rowContainer { + display: flex; + flex-direction: row; + flex-wrap: wrap; + justify-content: flex-start; + align-items: center; +} .fieldLabel { width: 20%; } @@ -59,6 +66,16 @@ font-size: smaller; width: 100%; } +.deviceImgFieldWrapper { + align-items: start; + padding: 5px; +} +.deviceImgFieldContainer { + margin-left: 30px; +} +.deviceImgFieldContainerBox { + width: 250px; +} @media screen and (max-width: 2560px) { .fieldContainerBox { width: 250px; @@ -68,11 +85,24 @@ width: 250px; padding-left: 10px; } + .deviceImgFieldWrapper { + align-items: start; + padding: 5px; + } + .deviceImgFieldContainer { + margin-left: 30px; + } + .deviceImgFieldContainerBox { + width: 250px; + } } @media screen and (max-width: 770px) { .button-container { width: 700px; } + .deviceImgFieldContainer { + margin-left: 5px; + } } @media screen and (max-width: 480px) { .fieldLabel { @@ -92,11 +122,29 @@ .button-container{ width: 360px; } + .deviceImgFieldWrapper { + width: 340px; + display: block; + } + .deviceImgFieldContainer { + width: 80px; + } + .deviceImgFieldContainerBox { + width: 240px; + } } @media screen and (max-width: 378px) { .button-container{ width: 320px; } + .deviceImgFieldWrapper { + width: 280px; + display: block; + padding-left: -5px; + } + .deviceImgFieldContainer { + width: 60px; + } } @media screen and (max-width: 365px) { .formContainer { diff --git a/src/app/features/project/add-project/add-project.component.html b/src/app/features/project/add-project/add-project.component.html index bbf38c56..b1e4d5b4 100644 --- a/src/app/features/project/add-project/add-project.component.html +++ b/src/app/features/project/add-project/add-project.component.html @@ -8,436 +8,572 @@
-
- - {{ "addProject.projectName" | translate }} - * - - - - - {{ "addProject.projectName" | translate }} - - - {{"addProject.projectNameIsRequired"|translate}} - - - -
-
- - {{ "addProject.projectType" | translate }} - * - - - -
- - - SBI - SDK - ABIS - - - SBI - SDK - ABIS - - - - {{"addProject.projectTypeIsRequired"|translate}} - -
-
-
-
+
- {{"addProject.baseUrl" | translate }} + {{ "addProject.projectType" | translate }} * - - {{"addProject.baseUrl" | translate }} - - - {{"addProject.baseUrlIsRequired" | translate}} - - - {{"addProject.baseUrlIsInvalid" | translate}} +
+ + + SBI + SDK + ABIS + + + SBI + SDK + ABIS + + + + {{"addProject.projectTypeIsRequired"|translate}} - +
- {{ "addProject.specVersion" | translate }} + {{ "addProject.projectName" | translate }} * - {{ "addProject.specVersion" | translate }} - - - 0.9.0 - - - - {{"addProject.specVersionIsRequired"|translate}} + {{ "addProject.projectName" | translate }} + + + {{"addProject.projectNameIsRequired"|translate}}
-
- - {{"addProject.purpose"|translate}} - * - - - - - {{"addProject.purpose" | translate }} - - - Matcher - - - Check Quality - - - Extract Template - - - Convert Format - - - - - {{"addProject.purposeIsRequired"|translate}} - - - +
+
+
+
+ + {{"addProject.baseUrl" | translate }} + * + + + + + {{"addProject.baseUrl" | translate }} + + + {{"addProject.baseUrlIsRequired" | translate}} + + + {{"addProject.baseUrlIsInvalid" | translate}} + + + +
+
+ + {{"addProject.purpose"|translate}} + * + + + + + {{"addProject.purpose" | translate }} + + + Matcher + + + Check Quality + + + Extract Template + + + Convert Format + + + + + {{"addProject.purposeIsRequired"|translate}} + + + +
-
- - {{"addProject.selectTestData" | translate}} - * - - - - - {{"addProject.selectTestData" | translate}} - - - MOSIP_DEFAULT - - - - {{item}} +
+
+ + {{ "addProject.specVersion" | translate }} + * + + + + + {{ "addProject.specVersion" | translate }} + + + 0.9.0 - - - - {{"addProject.testDataIsRequired" | translate}} - - - + + + {{"addProject.specVersionIsRequired"|translate}} + + + +
+
+ + {{"addProject.sdkHash"|translate}} + * + + + + + {{"addProject.sdkHash"|translate}} + + + {{"addProject.sdkHashIsRequired"|translate}} + + + +
+
+
+
+ + {{"addProject.websiteUrl"|translate}} + * + + + + + {{"addProject.websiteUrl"|translate}} + + + {{"addProject.websiteUrlIsRequired"|translate}} + + + +
+
+ + {{"addProject.selectTestData" | translate}} + * + + + + + {{"addProject.selectTestData" | translate}} + + + MOSIP_DEFAULT + + + + {{item}} + + + + + {{"addProject.testDataIsRequired" | translate}} + + + +
-
- - {{ "addProject.specVersion" | translate }} - * - - - - - {{ "addProject.specVersion" | translate }} - - - 0.9.5 - - - 1.0.0 - - - - {{"addProject.specVersionIsRequired"|translate}} - - - +
+
+ + {{"addProject.purpose" | translate }} + * + + + + + {{"addProject.purpose" | translate }} + + + Registration + + + Auth + + + + {{"addProject.purposeIsRequired"|translate}} + + + +
+
+ + {{"addProject.deviceType"|translate}} + * + + + + + {{"addProject.deviceType"|translate}} + + + Finger + + + Iris + + + Face + + + + {{"addProject.deviceTypeIsRequired"|translate}} + + + +
-
- - {{"addProject.purpose" | translate }} - * - - - - - {{"addProject.purpose" | translate }} - - - Registration - - - Auth - - - - {{"addProject.purposeIsRequired"|translate}} - - - +
+
+ + {{"addProject.deviceSubType"|translate}} + * + + + + + {{"addProject.deviceSubType"|translate}} + + + Slap + + + Single + + + Touchless + + + Single + + + Double + + + Full face + + + + {{"addProject.deviceSubTypeIsRequired"|translate}} + + + {{"addProject.deviceSubTypeIsInvalid"|translate}} + + + +
+
+ + {{ "addProject.specVersion" | translate }} + * + + + + + {{ "addProject.specVersion" | translate }} + + + 0.9.5 + + + 1.0.0 + + + + {{"addProject.specVersionIsRequired"|translate}} + + + +
-
- - {{"addProject.deviceType"|translate}} - * - - - - - {{"addProject.deviceType"|translate}} - - - Finger - - - Iris - - - Face - - - - {{"addProject.deviceTypeIsRequired"|translate}} - - - +
+
+ + {{ "addProject.sbiHash" | translate }} + * + + + + + {{ "addProject.sbiHash" | translate }} + + + {{"addProject.sbiHashIsRequired"|translate}} + + + +
+
+ + {{ "addProject.websiteUrl" | translate }} + * + + + + + {{ "addProject.websiteUrl" | translate }} + + + {{"addProject.websiteUrlIsRequired"|translate}} + + + +
-
+
- {{"addProject.deviceSubType"|translate}} + {{ "addProject.deviceImages" | translate }} * - - - {{"addProject.deviceSubType"|translate}} - - - Slap - - - Single - - - Touchless - - - Single - - - Double - - - Full face - - - - {{"addProject.deviceSubTypeIsRequired"|translate}} - - - {{"addProject.deviceSubTypeIsInvalid"|translate}} + + + {{ "addProject.deviceImages" | translate }} + + + {{"addProject.deviceImagesIsRequired"|translate}}
-
- - {{"addProject.activeMqUrl" | translate }} - * - - - - - {{"addProject.baseUrl" | translate }} - - - {{"addProject.baseUrlIsRequired" | translate}} - - - {{"addProject.baseUrlIsInvalid" | translate}} - - - -
-
- - {{"addProject.username"|translate}} - * - - - - - {{"addProject.username"|translate}} - - - {{"addProject.usernameIsRequired"|translate}} - - - -
-
- - {{"addProject.password"|translate}} - * - - - - - {{"addProject.password"|translate}} - - {{hidePassword ? - 'visibility_off' - : 'visibility'}} - - {{"addProject.passwordIsRequired"|translate}} - - - -
-
- - {{"addProject.requestQueueName"|translate}} - * - - - - - {{"addProject.outboundQueueName"|translate}} - - - {{"addProject.outboundQueueNameIsRequired"|translate}} - - - +
+
+ + {{"addProject.modality"|translate}} + * + + + + + {{"addProject.modality"|translate}} + + + All + + + Finger + + + Iris + + + Face + + + Finger and Iris + + + Iris and Face + + + Finger and Face + + + + {{"addProject.modalityIsRequired"|translate}} + + + +
+
+ + {{"addProject.activeMqUrl" | translate }} + * + + + + + {{"addProject.baseUrl" | translate }} + + + {{"addProject.baseUrlIsRequired" | translate}} + + + {{"addProject.baseUrlIsInvalid" | translate}} + + + +
-
- - {{"addProject.responseQueueName"|translate}} - * - - - - - {{"addProject.inboundQueueName"|translate}} - - - {{"addProject.inboundQueueNameIsRequired"|translate}} - - - +
+
+ + {{"addProject.username"|translate}} + * + + + + + {{"addProject.username"|translate}} + + + {{"addProject.usernameIsRequired"|translate}} + + + +
+
+ + {{"addProject.password"|translate}} + * + + + + + {{"addProject.password"|translate}} + + {{hidePassword ? + 'visibility_off' + : 'visibility'}} + + {{"addProject.passwordIsRequired"|translate}} + + + +
-
- - {{"addProject.modality"|translate}} - * - - - - - {{"addProject.modality"|translate}} - - - All - - - Finger - - - Iris - - - Face - - - Finger and Iris - - - Iris and Face - - - Finger and Face - - - - {{"addProject.modalityIsRequired"|translate}} - - - +
+
+ + {{"addProject.requestQueueName"|translate}} + * + + + + + {{"addProject.outboundQueueName"|translate}} + + + {{"addProject.outboundQueueNameIsRequired"|translate}} + + + +
+
+ + {{"addProject.responseQueueName"|translate}} + * + + + + + {{"addProject.inboundQueueName"|translate}} + + + {{"addProject.inboundQueueNameIsRequired"|translate}} + + + +
-
- - {{ "addProject.specVersion" | translate }} - * - - - - - {{ "addProject.specVersion" | translate }} - - - 0.9.0 - - - - {{"addProject.specVersionIsRequired"|translate}} - - - +
+
+ + {{"addProject.abisHash"|translate}} + * + + + + + {{"addProject.abisHash"|translate}} + + + {{"addProject.abisHashIsRequired"|translate}} + + + +
+
+ + {{"addProject.websiteUrl"|translate}} + * + + + + + {{"addProject.websiteUrl"|translate}} + + + {{"addProject.websiteUrlIsRequired"|translate}} + + + +
-
- - {{"addProject.selectTestData" | translate}} - * - - - - - {{"addProject.selectTestData" | translate}} - - - MOSIP_DEFAULT - - - - {{item}} +
+
+ + {{ "addProject.specVersion" | translate }} + * + + + + + {{ "addProject.specVersion" | translate }} + + + 0.9.0 - - - - {{"addProject.testDataIsRequired" | translate}} - - - + + + {{"addProject.specVersionIsRequired"|translate}} + + + +
+
+ + {{"addProject.selectTestData" | translate}} + * + + + + + {{"addProject.selectTestData" | translate}} + + + MOSIP_DEFAULT + + + + {{item}} + + + + + {{"addProject.testDataIsRequired" | translate}} + + + +


@@ -449,7 +585,7 @@ home {{"addProject.dashboard"|translate}} - diff --git a/src/app/features/project/add-project/add-project.component.ts b/src/app/features/project/add-project/add-project.component.ts index 5fca0c3e..9a204528 100644 --- a/src/app/features/project/add-project/add-project.component.ts +++ b/src/app/features/project/add-project/add-project.component.ts @@ -203,12 +203,16 @@ export class AddProjectComponent implements OnInit { console.log('valid'); if (projectType == appConstants.SBI) { const projectData: SbiProjectModel = { + id: '', name: this.projectForm.controls['name'].value, projectType: this.projectForm.controls['projectType'].value, sbiVersion: this.projectForm.controls['sbiSpecVersion'].value, purpose: this.projectForm.controls['sbiPurpose'].value, deviceType: this.projectForm.controls['deviceType'].value, deviceSubType: this.projectForm.controls['deviceSubType'].value, + deviceImages: this.projectForm.controls['deviceImages'].value, + sbiHash: this.projectForm.controls['sbiHash'].value, + websiteUrl: this.projectForm.controls['websiteUrl'].value }; let request = { id: appConstants.SBI_PROJECT_ADD_ID, @@ -228,6 +232,8 @@ export class AddProjectComponent implements OnInit { sdkVersion: this.projectForm.controls['sdkSpecVersion'].value, purpose: this.projectForm.controls['sdkPurpose'].value, url: this.projectForm.controls['sdkUrl'].value, + sdkHash: this.projectForm.controls['sdkHash'].value, + websiteUrl: this.projectForm.controls['websiteUrl'].value, bioTestDataFileName: this.projectForm.controls['bioTestData'].value, }; let request = { @@ -252,6 +258,8 @@ export class AddProjectComponent implements OnInit { outboundQueueName:this.projectForm.controls['outboundQueueName'].value, inboundQueueName:this.projectForm.controls['inboundQueueName'].value, modality:this.projectForm.controls['modality'].value, + abisHash:this.projectForm.controls['abisHash'].value, + websiteUrl:this.projectForm.controls['websiteUrl'].value, bioTestDataFileName: this.projectForm.controls['abisBioTestData'].value, }; let request = { diff --git a/src/app/features/project/view-project/view-project.component.css b/src/app/features/project/view-project/view-project.component.css index 060e17a6..1c16e016 100644 --- a/src/app/features/project/view-project/view-project.component.css +++ b/src/app/features/project/view-project/view-project.component.css @@ -96,6 +96,16 @@ mat-expansion-panel-header { cursor: pointer; color: #ff4081; } +.deviceImgFieldWrapper { + align-items: start; + padding: 5px; +} +.deviceImgFieldContainer { + margin-left: 45px; +} +.deviceImgFieldContainerBox { + width: 300px; +} @media screen and (max-width: 2048px) { .encryptionkeyButton{ margin-left: 800px; @@ -290,6 +300,16 @@ mat-expansion-panel-header { } } @media screen and (min-width:1280px) and (max-width: 1380px) { + .deviceImgFieldWrapper { + align-items: start; + padding: 5px; + } + .deviceImgFieldContainer { + margin-left: 35px; + } + .deviceImgFieldContainerBox { + width: 300px; + } .actionsHeader{ width: 2em; } @@ -327,6 +347,9 @@ mat-expansion-panel-header { } } @media screen and (min-width: 1200px) and (max-width: 1279px) { + .deviceImgFieldContainer { + margin-left: 30px; + } .actionsHeader{ width: 2em; } @@ -353,6 +376,9 @@ mat-expansion-panel-header { } } @media screen and (min-width: 1140px) and (max-width: 1190px) { + .deviceImgFieldContainer { + margin-left: 20px; + } .collections-button{ position: absolute; } @@ -378,6 +404,9 @@ mat-expansion-panel-header { } } @media screen and (min-width: 1069px) and (max-width: 1140px) { + .deviceImgFieldContainer { + margin-left: 15px; + } .collections-button{ position: absolute; margin-left: 0em; @@ -401,6 +430,9 @@ mat-expansion-panel-header { } } @media screen and (min-width: 1024px) and (max-width: 1068px) { + .deviceImgFieldContainer { + margin-left: 10px; + } .collections-button{ position: absolute; } @@ -432,7 +464,15 @@ mat-expansion-panel-header { margin-right: 820px; } } +@media screen and (max-width: 1023px) { + .deviceImgFieldContainer { + margin-left: 10px; + } +} @media screen and (max-width: 960px) { + .deviceImgFieldContainer { + margin-left: 5px; + } .collections-button{ position: absolute; margin-left: 0em; @@ -580,6 +620,16 @@ mat-expansion-panel-header { .fieldContainerBox { width: 240px; } + .deviceImgFieldWrapper { + width: 340px; + display: block; + } + .deviceImgFieldContainer { + width: 80px; + } + .deviceImgFieldContainerBox { + width: 240px; + } .projectTypeBt { width: 240px; } @@ -724,6 +774,14 @@ mat-expansion-panel-header { .fieldLabel { width: 60px; } + .deviceImgFieldWrapper { + width: 280px; + display: block; + padding-left: -5px; + } + .deviceImgFieldContainer { + width: 60px; + } .collections-button{ width: 120px; } @@ -879,6 +937,14 @@ mat-expansion-panel-header { .fieldContainerBox { width: 100%; } + .deviceImgFieldWrapper { + width: 250px; + display: block; + padding-bottom: 20px; + } + .deviceImgFieldContainerBox { + width: 100%; + } .runHeader{ opacity: 100%; padding-left: 5px; @@ -897,6 +963,14 @@ mat-expansion-panel-header { .fieldContainerBox { width: 232px; } + .deviceImgFieldWrapper { + width: 250px; + display: block; + padding-bottom: 20px; + } + .deviceImgFieldContainerBox { + width: 232px; + } .projectTypeBt { width: 232px; padding-top: 20px; diff --git a/src/app/features/project/view-project/view-project.component.html b/src/app/features/project/view-project/view-project.component.html index a40522ba..16fb0412 100644 --- a/src/app/features/project/view-project/view-project.component.html +++ b/src/app/features/project/view-project/view-project.component.html @@ -24,157 +24,175 @@
-
- - {{"viewProject.projectName"|translate}} - - - - - - - -
-
- - {{"viewProject.projectType"|translate}} - - - -
- - SBI - SDK - ABIS - -
-
-
- +
- {{"viewProject.baseUrl"|translate}} + {{"viewProject.projectType"|translate}} - - {{"viewProject.baseUrl"|translate}} - - - {{"viewProject.baseUrlIsRequired"|translate}} - - - {{"viewProject.baseUrlIsInvalid"|translate}} - - +
+ + SBI + SDK + ABIS + +
-
- -
- {{"viewProject.specVersion"|translate}} - * + {{"viewProject.projectName"|translate}} - {{"viewProject.specVersion"|translate}} - - - 0.9.0 - - - - {{"viewProject.specVersionIsRequired"|translate}} - +
-
- - {{"viewProject.purpose"|translate}} - - - - - {{"viewProject.purpose"|translate}} - - - Matcher - - - Check Quality - - - Extract Template - - - Convert Format - - - - - {{"viewProject.purposeIsRequired"|translate}} - - - +
+ +
+
+ + {{"viewProject.baseUrl"|translate}} + + + + + {{"viewProject.baseUrl"|translate}} + + + {{"viewProject.baseUrlIsRequired"|translate}} + + + {{"viewProject.baseUrlIsInvalid"|translate}} + + + +
+ +
+
+
+ + {{"viewProject.purpose"|translate}} + + + + + {{"viewProject.purpose"|translate}} + + + Matcher + + + Check Quality + + + Extract Template + + + Convert Format + + + + + {{"viewProject.purposeIsRequired"|translate}} + + + +
-
- - {{"viewProject.selectTestData"|translate}} - - - - - {{"viewProject.selectTestData"|translate}} - - - MOSIP_DEFAULT - - - - {{item}} +
+
+ + {{"viewProject.specVersion"|translate}} + + + + {{"viewProject.specVersion"|translate}} + + + 0.9.0 - - - - {{"viewProject.testDataIsRequired"|translate}} - - - -
- + + + {{"viewProject.specVersionIsRequired"|translate}} + + + +
+
+ + {{"viewProject.sdkHash"|translate}} + + + + + {{"viewProject.sdkHash"|translate}} + + + {{"viewProject.sdkHashIsRequired"|translate}} + + +
- -
- {{"viewProject.specVersion"|translate}} + {{"viewProject.websiteUrl"|translate}} - - - 0.9.5 - - - 1.0.0 + {{"viewProject.websiteUrl"|translate}} + + + {{"viewProject.websiteUrlIsRequired"|translate}} + + + +
+
+ + {{"viewProject.selectTestData"|translate}} + + + + + {{"viewProject.selectTestData"|translate}} + + + MOSIP_DEFAULT + + + {{item}} + + + + {{"viewProject.testDataIsRequired"|translate}} + +
+ +
+
+
+ +
{{"viewProject.purpose"|translate}} @@ -193,8 +211,6 @@
-
-
{{"viewProject.deviceType"|translate}} @@ -216,6 +232,8 @@
+
+
{{"viewProject.deviceSubType"|translate}} @@ -252,187 +270,292 @@
-
-
- -
- - {{"viewProject.activeMqUrl"|translate}} - - - - - {{"viewProject.baseUrl"|translate}} - - - {{"viewProject.baseUrlIsRequired"|translate}} - - - {{"viewProject.baseUrlIsInvalid"|translate}} - - - -
- +
+ + {{"viewProject.specVersion"|translate}} + + + + + + + 0.9.5 + + + 1.0.0 + + + +
-
- - {{"viewProject.username"|translate}} - - - - - {{"viewProject.username"|translate}} - - - {{"addProject.usernameIsRequired"|translate}} - - - -
- +
+
+ + {{"viewProject.sbiHash"|translate}} + + + + + {{"viewProject.sbiHash"|translate}} + + + {{"viewProject.sbiHashIsRequired"|translate}} + + + +
+
+ + {{"viewProject.websiteUrl"|translate}} + + + + + {{"viewProject.websiteUrl"|translate}} + + + {{"viewProject.websiteUrlIsRequired"|translate}} + + +
-
+
- {{"viewProject.password"|translate}} + {{"viewProject.deviceImages"|translate}} - - - {{"viewProject.password"|translate}} - - {{hidePassword ? - 'visibility_off' - : 'visibility'}} - - {{"addProejct.passwordIsRequired"|translate}} + + + {{"viewProject.deviceImages"|translate}} + + + {{"viewProject.deviceImagesIsRequired"|translate}} -
- +
+
+ +
+
+ + {{"viewProject.modality"|translate}} + + + + {{"viewProject.modality"|translate}} + + + All + + + Finger + + + Iris + + + Face + + + Finger and Iris + + + Iris and Face + + + Finger and Face + + + + {{"viewProject.modalityIsRequired"|translate}} + + + +
+
+ + {{"viewProject.activeMqUrl"|translate}} + + + + + {{"viewProject.baseUrl"|translate}} + + + {{"viewProject.baseUrlIsRequired"|translate}} + + + {{"viewProject.baseUrlIsInvalid"|translate}} + + + +
+ +
-
- - {{"viewProject.requestQueueName"|translate}} - - - - {{"viewProject.outboundQueueName"|translate}} - - - {{"addProject.outboundQueueNameIsRequired"}} - - - -
- +
+
+ + {{"viewProject.username"|translate}} + + + + + {{"viewProject.username"|translate}} + + + {{"addProject.usernameIsRequired"|translate}} + + + +
+ +
+
+
+ + {{"viewProject.password"|translate}} + + + + + {{"viewProject.password"|translate}} + + {{hidePassword ? + 'visibility_off' + : 'visibility'}} + + {{"addProejct.passwordIsRequired"|translate}} + + + +
+ +
-
- - {{"viewProject.responseQueueName"|translate}} - - - - {{"viewProject.inboundQueueName"|translate}} - - - {{"addProject.inboundQueueNameIsRequired"}} - - - -
- +
+
+ + {{"viewProject.requestQueueName"|translate}} + + + + {{"viewProject.outboundQueueName"|translate}} + + + {{"addProject.outboundQueueNameIsRequired"}} + + + +
+ +
+
+
+ + {{"viewProject.responseQueueName"|translate}} + + + + {{"viewProject.inboundQueueName"|translate}} + + + {{"addProject.inboundQueueNameIsRequired"}} + + + +
+ +
-
- - {{"viewProject.modality"|translate}} - - - - {{"viewProject.modality"|translate}} - - - All - - - Finger - - - Iris - - - Face - - - Finger and Iris - - - Iris and Face - - - Finger and Face - - - - {{"viewProject.modalityIsRequired"|translate}} - - - +
+
+ + {{"viewProject.abisHash"|translate}} + + + + + {{"viewProject.abisHash"|translate}} + + + {{"viewProject.abisHashIsRequired"|translate}} + + + +
+
+ + {{"viewProject.websiteUrl"|translate}} + + + + + {{"viewProject.websiteUrl"|translate}} + + + {{"viewProject.websiteUrlIsRequired"|translate}} + + + +
-
- - {{"viewProject.specVersion"|translate}} - - - +
+
+ {{"viewProject.specVersion"|translate}} - - - 0.9.0 - - - - {{"viewProject.specVersionIsRequired"|translate}} - - - -
-
- - {{"viewProject.selectTestData"|translate}} - - - + + + + {{"viewProject.specVersion"|translate}} + + + 0.9.0 + + + + {{"viewProject.specVersionIsRequired"|translate}} + + + +
+
+ {{"viewProject.selectTestData"|translate}} - - - MOSIP_DEFAULT - - - - {{item}} + + + + {{"viewProject.selectTestData"|translate}} + + + MOSIP_DEFAULT - - - - {{"viewProject.testDataIsRequired"|translate}} - - - -
- + + + {{item}} + + + + + {{"viewProject.testDataIsRequired"|translate}} + + + +
+ +
diff --git a/src/app/features/project/view-project/view-project.component.ts b/src/app/features/project/view-project/view-project.component.ts index 9dd81d7a..3806e15e 100644 --- a/src/app/features/project/view-project/view-project.component.ts +++ b/src/app/features/project/view-project/view-project.component.ts @@ -261,6 +261,15 @@ export class ViewProjectComponent implements OnInit { this.projectForm.controls['deviceSubType'].setValue( this.projectFormData.deviceSubType ); + this.projectForm.controls['deviceImages'].setValue( + this.projectFormData.deviceImages + ); + this.projectForm.controls['sbiHash'].setValue( + this.projectFormData.sbiHash + ); + this.projectForm.controls['websiteUrl'].setValue( + this.projectFormData.websiteUrl + ); } } @@ -275,6 +284,12 @@ export class ViewProjectComponent implements OnInit { this.projectForm.controls['sdkPurpose'].setValue( this.projectFormData.purpose ); + this.projectForm.controls['sdkHash'].setValue( + this.projectFormData.sdkHash + ); + this.projectForm.controls['websiteUrl'].setValue( + this.projectFormData.websiteUrl + ); this.projectForm.controls['bioTestData'].setValue( this.projectFormData.bioTestDataFileName ); @@ -294,6 +309,12 @@ export class ViewProjectComponent implements OnInit { this.projectForm.controls['abisSpecVersion'].setValue( this.projectFormData.abisVersion ); + this.projectForm.controls['abisHash'].setValue( + this.projectFormData.abisHash + ); + this.projectForm.controls['websiteUrl'].setValue( + this.projectFormData.websiteUrl + ); this.projectForm.controls['abisBioTestData'].setValue( this.projectFormData.bioTestDataFileName ); @@ -429,6 +450,8 @@ export class ViewProjectComponent implements OnInit { sdkVersion: this.projectForm.controls['sdkSpecVersion'].value, purpose: this.projectForm.controls['sdkPurpose'].value, url: this.projectForm.controls['sdkUrl'].value, + sdkHash: this.projectForm.controls['sdkHash'].value, + websiteUrl: this.projectForm.controls['websiteUrl'].value, bioTestDataFileName: this.projectForm.controls['bioTestData'].value, }; let request = { @@ -452,6 +475,8 @@ export class ViewProjectComponent implements OnInit { outboundQueueName: this.projectForm.controls['outboundQueueName'].value, inboundQueueName: this.projectForm.controls['inboundQueueName'].value, modality:this.projectForm.controls['modality'].value, + abisHash:this.projectForm.controls['abisHash'].value, + websiteUrl:this.projectForm.controls['websiteUrl'].value, bioTestDataFileName: this.projectForm.controls['abisBioTestData'].value, }; let request = { diff --git a/src/assets/i18n/ara.json b/src/assets/i18n/ara.json index 07651950..d51224bb 100644 --- a/src/assets/i18n/ara.json +++ b/src/assets/i18n/ara.json @@ -6,7 +6,13 @@ "successMessage": "تم إنشاء المشروع بنجاح", "close": "يغلق", "logout": "تسجيل خروج", - "addTestDataSuccessMsg": "تمت إضافة بيانات الاختبار بنجاح." + "addTestDataSuccessMsg": "تمت إضافة بيانات الاختبار بنجاح.", + "deviceImagesIsInvalid": "صورة الجهاز غير صالحة", + "sbiHashIsInvalid": "تجزئة SBI غير صالحة", + "sdkHashIsInvalid": "تجزئة SDK غير صالحة", + "abisHashIsInvalid": "تجزئة ABIS غير صالحة", + "websiteUrlIsInvalid": "عنوان URL لموقع الويب غير صالح", + "updateProject": "تحديث المشروع" }, "breadcrumb": { "home": "بيت", @@ -37,7 +43,9 @@ "success": "نجاح", "failure": "فشل", "projectRow": "لا توجد مشاريع متاحة.", - "tableDescription": "قائمة المشاريع" + "tableDescription": "قائمة المشاريع", + "title": "تحديث تفاصيل المشروع", + "message": "أضف الحقول التالية المطلوبة للمشروع ، للمتابعة." }, "biometricDashboard": { "projectDashboard": "لوحة تحكم المشاريع", @@ -89,7 +97,21 @@ "responseQueueName": "اسم قائمة انتظار الاستجابة", "invalidPartnerTypeMsg": "يمكن لشريك ABIS فقط إنشاء مشروع ABIS", "modality": "طريقة", - "modalityIsRequired": "طريقة مطلوبة" + "modalityIsRequired": "طريقة مطلوبة", + "deviceImages": "صور الجهاز:", + "deviceImagesIsRequired": "صور الجهاز مطلوبة", + "make": "يصنع:", + "makeIsRequired": "جعل مطلوب", + "model": "نموذج:", + "modelIsRequired": "النموذج مطلوب", + "sbiHash": "تجزئة SBI:", + "sbiHashIsRequired": "مطلوب تجزئة SBI", + "websiteUrl": "موقع إلكتروني URL", + "websiteUrlIsRequired": "مطلوب عنوان URL لموقع الويب", + "sdkHash": "تجزئة SDK:", + "sdkHashIsRequired": "مطلوب تجزئة SDK", + "abisHash": "تجزئة ABIS:", + "abisHashIsRequired": "مطلوب تجزئة ABIS" }, "addTestData": { "name": "اسم", @@ -140,7 +162,21 @@ "responseQueueName": "اسم قائمة انتظار الاستجابة", "tableDescription": "قائمة المجموعات", "modality": "طريقة", - "modalityIsRequired": "طريقة مطلوبة" + "modalityIsRequired": "طريقة مطلوبة", + "deviceImages": "صور الجهاز:", + "deviceImagesIsRequired": "صور الجهاز مطلوبة", + "make": "يصنع:", + "makeIsRequired": "جعل مطلوب", + "model": "نموذج:", + "modelIsRequired": "النموذج مطلوب", + "sbiHash": "تجزئة SBI:", + "sbiHashIsRequired": "مطلوب تجزئة SBI", + "websiteUrl": "موقع إلكتروني URL", + "websiteUrlIsRequired": "مطلوب عنوان URL لموقع الويب", + "sdkHash": "تجزئة SDK:", + "sdkHashIsRequired": "مطلوب تجزئة SDK", + "abisHash": "تجزئة ABIS:", + "abisHashIsRequired": "مطلوب تجزئة ABIS" }, "testRunHistory": { "runDate": "تشغيل التاريخ", diff --git a/src/assets/i18n/eng.json b/src/assets/i18n/eng.json index 9cc1c79e..eeaee936 100644 --- a/src/assets/i18n/eng.json +++ b/src/assets/i18n/eng.json @@ -6,7 +6,13 @@ "successMessage": "Project created successfully", "close": "Close", "logout": "Logout", - "addTestDataSuccessMsg": "Test data added successfully." + "addTestDataSuccessMsg": "Test data added successfully.", + "deviceImagesIsInvalid": "Device Image is Invalid", + "sbiHashIsInvalid": "SBI Hash is Invalid", + "sdkHashIsInvalid": "SDK Hash is Invalid", + "abisHashIsInvalid": "ABIS Hash is Invalid", + "websiteUrlIsInvalid": "Website URL is Invalid", + "updateProject": "Update Project" }, "breadcrumb": { "home": "Home", @@ -37,7 +43,9 @@ "success": "Success", "failure": "Failure", "projectRow": "There are no projects available.", - "tableDescription": "List of Projects" + "tableDescription": "List of Projects", + "title": "Update Project Details", + "message": "Add the following fields required for the Project, to proceed." }, "biometricDashboard": { "projectDashboard": "Projects Dashboard", @@ -89,7 +97,21 @@ "responseQueueName": "Response Queue Name:", "invalidPartnerTypeMsg": "ABIS partner can only create an ABIS project", "modality": "Modality", - "modalityIsRequired": "Modality is required" + "modalityIsRequired": "Modality is required", + "deviceImages": "Device Images:", + "deviceImagesIsRequired": "Device Images is required", + "make": "Make:", + "makeIsRequired": "Make is required", + "model": "Model:", + "modelIsRequired": "Model is required", + "sbiHash": "SBI Hash:", + "sbiHashIsRequired": "SBI Hash is required", + "websiteUrl": "Website URL:", + "websiteUrlIsRequired": "Website URL is required", + "sdkHash": "SDK Hash:", + "sdkHashIsRequired": "SDK Hash is required", + "abisHash": "ABIS Hash:", + "abisHashIsRequired": "ABIS Hash is required" }, "addTestData": { "name": "Name:", @@ -140,7 +162,21 @@ "responseQueueName": "Response Queue Name:", "tableDescription": "List of Collections", "modality": "Modality", - "modalityIsRequired": "Modality is required" + "modalityIsRequired": "Modality is required", + "deviceImages": "Device Images:", + "deviceImagesIsRequired": "Device Images is required", + "make": "Make:", + "makeIsRequired": "Make is required", + "model": "Model:", + "modelIsRequired": "Model is required", + "sbiHash": "SBI Hash:", + "sbiHashIsRequired": "SBI Hash is required", + "websiteUrl": "Website URL:", + "websiteUrlIsRequired": "Website URL is required", + "sdkHash": "SDK Hash:", + "sdkHashIsRequired": "SDK Hash is required", + "abisHash": "ABIS Hash:", + "abisHashIsRequired": "ABIS Hash is required" }, "testRunHistory": { "runDate": "Run Date", diff --git a/src/assets/i18n/fra.json b/src/assets/i18n/fra.json index ae2d03a1..fcf28e82 100644 --- a/src/assets/i18n/fra.json +++ b/src/assets/i18n/fra.json @@ -6,7 +6,13 @@ "successMessage": "Projet créé avec succès", "close": "Fermer", "logout": "Se déconnecter", - "addTestDataSuccessMsg": "Données de test ajoutées avec succès." + "addTestDataSuccessMsg": "Données de test ajoutées avec succès.", + "deviceImagesIsInvalid": "L'image de l'appareil n'est pas valide", + "sbiHashIsInvalid": "Le hachage SBI n'est pas valide", + "sdkHashIsInvalid": "Le hachage SDK n'est pas valide", + "abisHashIsInvalid": "Le hachage ABIS n'est pas valide", + "websiteUrlIsInvalid": "L'URL du site Web n'est pas valide", + "updateProject": "Mettre à jour le projet" }, "breadcrumb": { "home": "Maison", @@ -37,7 +43,9 @@ "success": "Succès", "failure": "Échec", "projectRow": "Il n'y a pas de projets disponibles.", - "tableDescription": "Liste des projets" + "tableDescription": "Liste des projets", + "title": "Mettre à jour les détails du projet", + "message": "Ajoutez les champs suivants requis pour le projet, pour continuer." }, "biometricDashboard": { "projectDashboard": "Tableau de bord des projets", @@ -89,7 +97,21 @@ "responseQueueName": "Nom de la file d'attente de réponses:", "invalidPartnerTypeMsg": "Le partenaire ABIS peut uniquement créer un projet ABIS", "modality": "Modalité", - "modalityIsRequired": "La modalité est requise" + "modalityIsRequired": "La modalité est requise", + "deviceImages": "Images de l'appareil:", + "deviceImagesIsRequired": "Les images de l'appareil sont requises", + "make": "Faire:", + "makeIsRequired": "La marque est requise", + "model": "Modèle:", + "modelIsRequired": "Le modèle est requis", + "sbiHash": "Hachage SBI:", + "sbiHashIsRequired": "Le hachage SBI est requis", + "websiteUrl": "URL de site web:", + "websiteUrlIsRequired": "L'URL du site Web est requise", + "sdkHash": "Hachage SDK:", + "sdkHashIsRequired": "Le hachage SDK est requis", + "abisHash": "Hachage ABIS:", + "abisHashIsRequired": "Le hachage ABIS est requis" }, "addTestData": { "name": "Nom", @@ -140,7 +162,21 @@ "responseQueueName": "Nom de la file d'attente de réponses:", "tableDescription": "Liste des collections", "modality": "Modalité", - "modalityIsRequired": "La modalité est requise" + "modalityIsRequired": "La modalité est requise", + "deviceImages": "Images de l'appareil:", + "deviceImagesIsRequired": "Les images de l'appareil sont requises", + "make": "Faire:", + "makeIsRequired": "La marque est requise", + "model": "Modèle:", + "modelIsRequired": "Le modèle est requis", + "sbiHash": "Hachage SBI:", + "sbiHashIsRequired": "Le hachage SBI est requis", + "websiteUrl": "URL de site web:", + "websiteUrlIsRequired": "L'URL du site Web est requise", + "sdkHash": "Hachage SDK:", + "sdkHashIsRequired": "Le hachage SDK est requis", + "abisHash": "Hachage ABIS:", + "abisHashIsRequired": "Le hachage ABIS est requis" }, "testRunHistory": { "runDate": "Date d'exécution",