Skip to content

Commit

Permalink
Merge pull request #69 from amansinghbais/user-management/#67
Browse files Browse the repository at this point in the history
Implemented: single facility selection for facility login(#67)
  • Loading branch information
ravilodhi authored Dec 26, 2023
2 parents 4df76fe + 3e8e6d4 commit ea05920
Show file tree
Hide file tree
Showing 4 changed files with 36 additions and 7 deletions.
25 changes: 22 additions & 3 deletions src/components/SelectFacilityModal.vue
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
</ion-header>

<ion-content>
<ion-list>
<ion-list v-if="!isFacilityLogin">
<ion-item v-for="facility in facilities" :key="facility.facilityId">
<ion-label>
{{ facility.facilityName }}
Expand All @@ -20,7 +20,19 @@
<ion-checkbox slot="end" :checked="isSelected(facility.facilityId)" @ionChange="toggleFacilitySelection(facility)" />
</ion-item>
</ion-list>


<ion-list v-else>
<ion-radio-group :value="selectedFacilities[0].facilityId" @ionChange="updateSelectedFacility($event)">
<ion-item v-for="facility in facilities" :key="facility.facilityId">
<ion-label>
{{ facility.facilityName }}
<p>{{ facility.facilityId }}</p>
</ion-label>
<ion-radio slot="end" :value="facility.facilityId"></ion-radio>
</ion-item>
</ion-radio-group>
</ion-list>

<ion-fab @click="saveFacilities()" vertical="bottom" horizontal="end" slot="fixed">
<ion-fab-button>
<ion-icon :icon="saveOutline" />
Expand All @@ -42,6 +54,8 @@ import {
IonItem,
IonLabel,
IonList,
IonRadio,
IonRadioGroup,
IonTitle,
IonToolbar,
modalController
Expand All @@ -65,10 +79,12 @@ export default defineComponent({
IonItem,
IonLabel,
IonList,
IonRadio,
IonRadioGroup,
IonTitle,
IonToolbar,
},
props: ["selectedFacilities"],
props: ["selectedFacilities", "isFacilityLogin"],
data() {
return {
selectedFacilityValues: JSON.parse(JSON.stringify(this.selectedFacilities)),
Expand Down Expand Up @@ -110,6 +126,9 @@ export default defineComponent({
},
isSelected(facilityId: any) {
return this.selectedFacilityValues.some((facility: any) => facility.facilityId === facilityId);
},
updateSelectedFacility(event: CustomEvent) {
this.selectedFacilityValues = this.facilities.filter((facility: any) => facility.facilityId === event.detail.value)
}
},
setup() {
Expand Down
4 changes: 3 additions & 1 deletion src/store/modules/util/actions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,9 @@ const actions: ActionTree<UtilState, RootState> = {
const payload = {
"inputFields": {
"parentTypeId": "VIRTUAL_FACILITY",
"parentTypeId_op": "notEqual"
"parentTypeId_op": "notEqual",
"facilityTypeId": "VIRTUAL_FACILITY",
"facilityTypeId_op": "notEqual"
},
"entityName": "FacilityAndType",
"viewSize": 100 // keeping view size 100 as considering that we will have max 100 facilities
Expand Down
10 changes: 9 additions & 1 deletion src/views/UserDetails.vue
Original file line number Diff line number Diff line change
Expand Up @@ -550,9 +550,17 @@ export default defineComponent({
return productStoreActionsPopover.present();
},
async selectFacility() {
let componentProps = {
selectedFacilities: this.selectedUser.facilities
} as any
if(this.selectedUser.partyTypeId === 'PARTY_GROUP') {
componentProps['isFacilityLogin'] = true
}
const selectFacilityModal = await modalController.create({
component: SelectFacilityModal,
componentProps: { selectedFacilities: this.selectedUser.facilities }
componentProps
});
selectFacilityModal.onDidDismiss().then( async (result) => {
Expand Down
4 changes: 2 additions & 2 deletions src/views/UserQuickSetup.vue
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@
{{ facility.facilityName }}
<p>{{ facility.facilityId }}</p>
</ion-label>
<ion-checkbox slot="end" :checked="true" @ionChange="toggleFacilitySelection(facility)" />
<ion-checkbox v-if="!isFacilityLogin" slot="end" :checked="true" @ionChange="toggleFacilitySelection(facility)" />
</ion-item>
</ion-list>

Expand Down Expand Up @@ -429,7 +429,7 @@ export default defineComponent({
async addFacilities() {
const selectFacilityModal = await modalController.create({
component: SelectFacilityModal,
componentProps: { selectedFacilities: this.selectedFacilities }
componentProps: { selectedFacilities: this.selectedFacilities, isFacilityLogin: this.isFacilityLogin() }
});
selectFacilityModal.onDidDismiss().then((result) => {
Expand Down

0 comments on commit ea05920

Please sign in to comment.