Skip to content

Commit

Permalink
Merge pull request #496 from Madhuravas/develop
Browse files Browse the repository at this point in the history
MOSIP-29352 adding gender values and input value with multi language.
  • Loading branch information
aranaravi authored Sep 25, 2023
2 parents 3dc5223 + 97dedc4 commit e3e5599
Show file tree
Hide file tree
Showing 3 changed files with 66 additions and 73 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -134,8 +134,8 @@ <h3 class="tab-headings">{{'updatedemographic.identityHeading' | translate}}</h3
placeholder="{{field.placeHolder[item.language]}}"
[(value)]="userInputValues[field.attributeName][item.language]"
[disabled]="attributeUpdateCountRemainLimit[field.attributeName] === 0">
<mat-option *ngFor="let data of dropDownValues[field.attributeName]"
(onSelectionChange)="captureDropDownValue($event, field.attributeName, item.language, field.dataType, buildJSONData[field.attributeName][langCode])"
<mat-option *ngFor="let data of dropDownValues[field.attributeName][item.language]"
(onSelectionChange)="captureDropDownValue($event, field.attributeName, item.language, data.code, buildJSONData[field.attributeName][langCode])"
[value]="data.value">{{ data.value }}</mat-option>
</mat-select>
</span>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -383,8 +383,13 @@ export class UpdatedemographicComponent implements OnInit, OnDestroy {
}

getGender() {
this.dataStorageService.getDataForDropDown("/auth-proxy/masterdata/dynamicfields/gender" + "/" + localStorage.getItem("langCode") + "?withValue=true").subscribe(response => {
this.dropDownValues["gender"] = response["response"]['values'];
this.dropDownValues["gender"] = {}
this.dataStorageService.getDataForDropDown("/proxy/masterdata/dynamicfields/all/gender").subscribe(response => {
if(response['response']){
response['response'].forEach(eachItem =>{
this.dropDownValues["gender"][eachItem.langCode] = eachItem.fieldVal
})
}
});
}

Expand Down Expand Up @@ -522,9 +527,7 @@ export class UpdatedemographicComponent implements OnInit, OnDestroy {
})
}

async translateUserInput(toLang: string, fromLang: string, input:string,formControlName:string){
// let attribute = document.getElementById(formControlName+toLang)
// if(toLang !== 'fra'){
async translateUserInput(toLang: string, fromLang: string, input:string,formControlName:string, userInfoType:string){
let request = {
"id": this.appConfigService.getConfig()["mosip.resident.transliteration.transliterate.id"],
"version": this.appConfigService.getConfig()['mosip.resident.request.response.version'],
Expand All @@ -538,52 +541,36 @@ async translateUserInput(toLang: string, fromLang: string, input:string,formCont
this.dataStorageService.translateUserInput(request).subscribe(response =>{
if(response['response']){
let value = response['response'].to_field_value
this.userInfoClone[formControlName].push({"language":toLang, "value" : value})
this[userInfoType][formControlName].push({"language":toLang, "value" : value})
this.userInputValues[formControlName][toLang] = value;
// document.getElementById(formControlName+toLang).focus();
// attribute.setAttribute('value',value);
// document.getElementById(formControlName+toLang).focusOut();
}else{
this.userInputValues[formControlName][toLang] = '';
}

})
// }
}

async captureValue(event: any, formControlName: string, language: string, currentValue: any) {
captureValue(event: any, formControlName: string, language: string, currentValue: any) {
let self = this;
if (event.target.value.trim() === "") {
this.userInfoClone[formControlName].forEach(item => {
if (item['language'] === language) {
item['value'] = '';
}
if(this.userInfoClone[formControlName]){
delete this.userInfoClone[formControlName]
}
this.getUserPerfLang.forEach(item =>{
this.userInputValues[formControlName][item] = ''
})
} else {
if (formControlName !== "proofOfIdentity") {
if(this.userInputValues[formControlName][language] === ''){
console.log("Hello")
this.getUserPerfLang.forEach(item =>{
if(item === language){
this.userInfoClone[formControlName] = [].concat({"language":language,"value":event.target.value})
}else{
this.translateUserInput(item, language, event.target.value, formControlName)
}

})
// if( this.userInfoClone[formControlName]){
// this.userInfoClone[formControlName].push(newData)
// }else{
// this.userInfoClone[formControlName] = [].concat(newData)
// }
}else{
this.userInfoClone[formControlName].forEach(item =>{
if(item.language === language){
item.value = event.target.value
}
})
}
this.userInputValues[formControlName][language] = event.target.value;
this.userInfoClone[formControlName] = []
this.getUserPerfLang.forEach(item =>{
let newData
if(item === language){
newData = { "language": language, "value": event.target.value }
this.userInfoClone[formControlName].push(newData)
this.userInputValues[formControlName][language] = event.target.value;
}else{
this.translateUserInput(item, language, event.target.value, formControlName, 'userInfoClone')
}
})
} else {
self[formControlName]["documentreferenceId"] = event.target.value;
this.userInputValues[formControlName] = event.target.value;
Expand All @@ -606,25 +593,28 @@ async captureValue(event: any, formControlName: string, language: string, curren
this.userInputValues[formControlName] = formattedDate;
}

captureDropDownValue(event: any, formControlName: string, language: string, dataType: string, currentValue: any) {
captureDropDownValue(event: any, formControlName: string, language: string, code: string, currentValue: any) {
let genders =this.dropDownValues.gender
let self = this;
if (event.source.selected && event.source.viewValue !== currentValue) {
if (formControlName !== "proofOfIdentity") {
if(this.userInputValues[formControlName][language] === ''){
let newData = { "language": language, "value": event.source.viewValue };
if( this.userInfoClone[formControlName]){
this.userInfoClone[formControlName] = []
this.getUserPerfLang.forEach(item =>{
let newData
if(item === language){
newData = { "language": language, "value": event.source.viewValue }
this.userInfoClone[formControlName].push(newData)
this.userInputValues[formControlName][language] = event.source.viewValue;
}else{
this.userInfoClone[formControlName] = [].concat(newData)
genders[item].forEach(eachGender =>{
if(eachGender.code === code){
newData = { "language": item, "value": eachGender.value }
this.userInputValues[formControlName][item] = eachGender.value;
}
})
this.userInfoClone[formControlName].push(newData)
}
}else{
this.userInfoClone[formControlName].forEach(item =>{
if(item.language === language){
item.value = event.source.viewValue
}
})
}
this.userInputValues[formControlName][language] = event.source.viewValue;
})
} else {
if (formControlName === "proofOfIdentity") {
this.displayPOIUpload = true;
Expand All @@ -640,29 +630,25 @@ async captureValue(event: any, formControlName: string, language: string, curren
captureAddressValue(event: any, formControlName: string, language: string, currentValue: any) {
let self = this;
if (event.target.value.trim() === "") {
this.userInfoAddressClone[formControlName].forEach(item => {
if (item['language'] === language) {
item['value'] = '';
}
if(this.userInfoClone[formControlName]){
delete this.userInfoClone[formControlName]
}
this.getUserPerfLang.forEach(item =>{
this.userInputValues[formControlName][item] = ''
})
} else {
if (formControlName !== "proofOfAddress") {
if(this.userInputValues[formControlName][language] === ''){
let newData = { "language": language, "value": event.target.value };
if( this.userInfoAddressClone[formControlName]){
this.userInfoAddressClone[formControlName].push(newData)
}else{
this.userInfoAddressClone[formControlName] = [].concat(newData)
}
this.userInfoAddressClone[formControlName] = []
this.getUserPerfLang.forEach(item =>{
let newData
if(item === language){
newData = { "language": language, "value": event.target.value }
this.userInfoAddressClone[formControlName].push(newData)
this.userInputValues[formControlName][language] = event.target.value;
}else{
this.userInfoAddressClone[formControlName].forEach(item =>{
if(item.language === language){
item.value = event.target.value
}
})
this.translateUserInput(item, language, event.target.value, formControlName, 'userInfoAddressClone')
}
this.userInputValues[formControlName][language] = event.target.value;
console.log(this.userInfoAddressClone)
})
} else {
self[formControlName]["documentreferenceId"] = event.target.value;
this.userInputValues[formControlName] = event.target.value;
Expand Down
9 changes: 8 additions & 1 deletion resident-ui/src/assets/i18n/eng.json
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,13 @@
"route": "uinservices/sharewithpartner",
"description": " Residents can choose the data to be shared with any of the registered partners to avail various third party services.",
"auditEventId": "ADM-004"
},
{
"displayName": "Update My Data",
"icon": "assets/images/updatedemographic.png",
"route": "uinservices/updatedemographic",
"description": "Residents can update the already existing data associated with their UIN/ VID. The data that can be updated includes name, gender, DOB, address, documents uploaded, phone number, email ID, preferred language, etc.",
"auditEventId": "ADM-004"
}
]
},
Expand Down Expand Up @@ -557,7 +564,7 @@
"WarningMessageLabel": "Generating a new perpetual VID will revoke the already existing VID.",
"confirmationMessageForCreateVid": "Are you sure you want to create a perpetual VID card?",
"confirmationMessageForDeleteVid": "Are you sure you want to delete the chosen Perpetual VID card?",
"confirmationMessageForDownloadVid": "Are you sure you want to download Perpetual VID card card?"
"confirmationMessageForDownloadVid": "Are you sure you want to download Perpetual VID card?"
},
"Temporary": {
"confirmationMessageForCreateVid": "Are you sure you want to create a temporary VID card?",
Expand Down

0 comments on commit e3e5599

Please sign in to comment.