From d7a1129f38612de5bf31edd4e6de771c91099610 Mon Sep 17 00:00:00 2001 From: ozer550 Date: Thu, 16 Jan 2025 14:37:43 +0530 Subject: [PATCH 01/13] migrate getFacilities action --- kolibri/plugins/coach/assets/src/app.js | 5 +- .../coach/assets/src/composables/useGroups.js | 4 +- .../assets/src/composables/useLessons.js | 4 +- .../src/modules/lessonResources/handlers.js | 9 +- .../src/modules/lessonSummary/handlers.js | 4 +- .../plugins/coach/assets/src/routes/index.js | 5 +- .../src/views/lessons/LessonCreationPage.vue | 4 +- .../lessons/LessonEditDetailsPage/index.vue | 4 +- kolibri/plugins/device/assets/src/app.js | 4 +- .../src/modules/userPermissions/handlers.js | 4 +- .../plugins/device/assets/src/routes/index.js | 4 +- kolibri/plugins/facility/assets/src/app.js | 4 +- .../src/modules/facilityConfig/actions.js | 4 +- .../src/views/ManageClassPage/index.vue | 5 +- .../assets/src/modules/pluginModule.js | 4 +- .../composables/useFacilities.js | 96 +++++++++++++++++++ .../test/fixtures/TestUserPermissions.js | 6 +- 17 files changed, 152 insertions(+), 18 deletions(-) create mode 100644 packages/kolibri-common/composables/useFacilities.js diff --git a/kolibri/plugins/coach/assets/src/app.js b/kolibri/plugins/coach/assets/src/app.js index 3b790935915..c6503c7f8ef 100644 --- a/kolibri/plugins/coach/assets/src/app.js +++ b/kolibri/plugins/coach/assets/src/app.js @@ -5,11 +5,14 @@ import router from 'kolibri/router'; import ChannelResource from 'kolibri-common/apiResources/ChannelResource'; import KolibriApp from 'kolibri-app'; import useSnackbar from 'kolibri/composables/useSnackbar'; +import { useFacilities } from 'kolibri-common/composables/useFacilities'; import { PageNames } from './constants'; import routes from './routes'; import pluginModule from './modules/pluginModule'; import HomeActivityPage from './views/home/HomeActivityPage'; +const { getFacilities } = useFacilities(); + function _channelListState(data) { return data.map(channel => ({ id: channel.id, @@ -138,7 +141,7 @@ class CoachToolsModule extends KolibriApp { } if (get(isSuperuser) && this.store.state.core.facilities.length === 0) { - promises.push(this.store.dispatch('getFacilities').catch(() => {})); + promises.push(getFacilities().catch(() => {})); } if (promises.length > 0) { diff --git a/kolibri/plugins/coach/assets/src/composables/useGroups.js b/kolibri/plugins/coach/assets/src/composables/useGroups.js index fa61b5eab88..d59a3ab226a 100644 --- a/kolibri/plugins/coach/assets/src/composables/useGroups.js +++ b/kolibri/plugins/coach/assets/src/composables/useGroups.js @@ -3,9 +3,11 @@ import samePageCheckGenerator from 'kolibri-common/utils/samePageCheckGenerator' import LearnerGroupResource from 'kolibri-common/apiResources/LearnerGroupResource'; import FacilityUserResource from 'kolibri-common/apiResources/FacilityUserResource'; import useUser from 'kolibri/composables/useUser'; +import { useFacilities } from 'kolibri-common/composables/useFacilities'; // Place outside the function to keep the state const groupsAreLoading = ref(false); +const { getFacilities } = useFacilities(); export function useGroups() { function setGroupsLoading(loading) { @@ -16,7 +18,7 @@ export function useGroups() { const initClassInfoPromise = store.dispatch('initClassInfo', classId); const getFacilitiesPromise = useUser().isSuperuser.value && store.state.core.facilities.length === 0 - ? store.dispatch('getFacilities').catch(() => {}) + ? getFacilities().catch(() => {}) : Promise.resolve(); await Promise.all([initClassInfoPromise, getFacilitiesPromise]); diff --git a/kolibri/plugins/coach/assets/src/composables/useLessons.js b/kolibri/plugins/coach/assets/src/composables/useLessons.js index 771d19b9998..b0eec8cb714 100644 --- a/kolibri/plugins/coach/assets/src/composables/useLessons.js +++ b/kolibri/plugins/coach/assets/src/composables/useLessons.js @@ -1,10 +1,12 @@ import { ref } from 'vue'; import LearnerGroupResource from 'kolibri-common/apiResources/LearnerGroupResource'; import useUser from 'kolibri/composables/useUser'; +import { useFacilities } from 'kolibri-common/composables/useFacilities'; import { PageNames } from '../constants'; // Place outside the function to keep the state const lessonsAreLoading = ref(false); +const { getFacilities } = useFacilities(); export function useLessons() { function setLessonsLoading(loading) { @@ -16,7 +18,7 @@ export function useLessons() { const initClassInfoPromise = store.dispatch('initClassInfo', classId); const getFacilitiesPromise = useUser().isSuperuser.value && store.state.core.facilities.length === 0 - ? store.dispatch('getFacilities').catch(() => {}) + ? getFacilities().catch(() => {}) : Promise.resolve(); await Promise.all([initClassInfoPromise, getFacilitiesPromise]); diff --git a/kolibri/plugins/coach/assets/src/modules/lessonResources/handlers.js b/kolibri/plugins/coach/assets/src/modules/lessonResources/handlers.js index d816d976aee..30a0b0f4744 100644 --- a/kolibri/plugins/coach/assets/src/modules/lessonResources/handlers.js +++ b/kolibri/plugins/coach/assets/src/modules/lessonResources/handlers.js @@ -6,8 +6,11 @@ import { ContentNodeKinds } from 'kolibri/constants'; import chunk from 'lodash/chunk'; import useUser from 'kolibri/composables/useUser'; import { get } from '@vueuse/core'; +import { useFacilities } from 'kolibri-common/composables/useFacilities'; import { PageNames } from '../../constants'; +const { getFacilities } = useFacilities(); + async function showResourceSelectionPage(store, params) { const { lessonId, @@ -23,7 +26,7 @@ async function showResourceSelectionPage(store, params) { const { isSuperuser } = useUser(); const getFacilitiesPromise = get(isSuperuser) && store.state.core.facilities.length === 0 - ? store.dispatch('getFacilities').catch(() => {}) + ? getFacilities().catch(() => {}) : Promise.resolve(); await Promise.all([initClassInfoPromise, getFacilitiesPromise]); @@ -187,7 +190,7 @@ export async function showLessonResourceContentPreview(store, params) { const { isSuperuser } = useUser(); const getFacilitiesPromise = get(isSuperuser) && store.state.core.facilities.length === 0 - ? store.dispatch('getFacilities').catch(() => {}) + ? getFacilities().catch(() => {}) : Promise.resolve(); await Promise.all([initClassInfoPromise, getFacilitiesPromise]); @@ -204,7 +207,7 @@ export async function showLessonSelectionContentPreview(store, params, query = { const { isSuperuser } = useUser(); const getFacilitiesPromise = get(isSuperuser) && store.state.core.facilities.length === 0 - ? store.dispatch('getFacilities').catch(() => {}) + ? getFacilities().catch(() => {}) : Promise.resolve(); await Promise.all([initClassInfoPromise, getFacilitiesPromise]); diff --git a/kolibri/plugins/coach/assets/src/modules/lessonSummary/handlers.js b/kolibri/plugins/coach/assets/src/modules/lessonSummary/handlers.js index fe1a977f38d..60d71f6777e 100644 --- a/kolibri/plugins/coach/assets/src/modules/lessonSummary/handlers.js +++ b/kolibri/plugins/coach/assets/src/modules/lessonSummary/handlers.js @@ -1,9 +1,11 @@ import LearnerGroupResource from 'kolibri-common/apiResources/LearnerGroupResource'; import useUser from 'kolibri/composables/useUser'; import { get } from '@vueuse/core'; +import { useFacilities } from 'kolibri-common/composables/useFacilities'; import { PageNames } from '../../constants'; export async function setLessonSummaryState(store, params) { + const { getFacilities } = useFacilities(); const { classId, lessonId } = params; store.commit('lessonSummary/resources/RESET_STATE'); store.commit('lessonSummary/SET_STATE', { @@ -17,7 +19,7 @@ export async function setLessonSummaryState(store, params) { const { isSuperuser } = useUser(); const getFacilitiesPromise = get(isSuperuser) && store.state.core.facilities.length === 0 - ? store.dispatch('getFacilities').catch(() => {}) + ? getFacilities().catch(() => {}) : Promise.resolve(); await Promise.all([initClassInfoPromise, getFacilitiesPromise]); diff --git a/kolibri/plugins/coach/assets/src/routes/index.js b/kolibri/plugins/coach/assets/src/routes/index.js index 0fad5c810e8..30cd11f7057 100644 --- a/kolibri/plugins/coach/assets/src/routes/index.js +++ b/kolibri/plugins/coach/assets/src/routes/index.js @@ -2,6 +2,7 @@ import store from 'kolibri/store'; import router from 'kolibri/router'; import useUser from 'kolibri/composables/useUser'; import { get } from '@vueuse/core'; +import { useFacilities } from 'kolibri-common/composables/useFacilities'; import AllFacilitiesPage from '../views/AllFacilitiesPage'; import CoachClassListPage from '../views/CoachClassListPage'; import ClassLearnersListPage from '../views/ClassLearnersListPage'; @@ -20,9 +21,11 @@ import groupsRoutes from './groupsRoutes'; function showHomePage(toRoute) { const initClassInfoPromise = store.dispatch('initClassInfo', toRoute.params.classId); const { isSuperuser } = useUser(); + const { getFacilities } = useFacilities(); + const getFacilitiesPromise = get(isSuperuser) && store.state.core.facilities.length === 0 - ? store.dispatch('getFacilities').catch(() => {}) + ? getFacilities().catch(() => {}) : Promise.resolve(); return Promise.all([initClassInfoPromise, getFacilitiesPromise]); diff --git a/kolibri/plugins/coach/assets/src/views/lessons/LessonCreationPage.vue b/kolibri/plugins/coach/assets/src/views/lessons/LessonCreationPage.vue index a719a9e3b0c..c5497249664 100644 --- a/kolibri/plugins/coach/assets/src/views/lessons/LessonCreationPage.vue +++ b/kolibri/plugins/coach/assets/src/views/lessons/LessonCreationPage.vue @@ -30,6 +30,7 @@ import { ERROR_CONSTANTS } from 'kolibri/constants'; import CatchErrors from 'kolibri/utils/CatchErrors'; import commonCoreStrings from 'kolibri/uiText/commonCoreStrings'; + import { useFacilities } from 'kolibri-common/composables/useFacilities'; import AssignmentDetailsModal from '../common/assignments/AssignmentDetailsModal'; import commonCoach from '../common'; import CoachImmersivePage from '../CoachImmersivePage'; @@ -47,10 +48,11 @@ }, }, created() { + const { getFacilities } = useFacilities(); const initClassInfoPromise = this.$store.dispatch('initClassInfo', this.classId); const getFacilitiesPromise = this.isSuperuser && this.$store.state.core.facilities.length === 0 - ? this.$store.dispatch('getFacilities').catch(() => {}) + ? getFacilities().catch(() => {}) : Promise.resolve(); Promise.all([initClassInfoPromise, getFacilitiesPromise]); diff --git a/kolibri/plugins/coach/assets/src/views/lessons/LessonEditDetailsPage/index.vue b/kolibri/plugins/coach/assets/src/views/lessons/LessonEditDetailsPage/index.vue index 39ca65b7db0..5318bbb6270 100644 --- a/kolibri/plugins/coach/assets/src/views/lessons/LessonEditDetailsPage/index.vue +++ b/kolibri/plugins/coach/assets/src/views/lessons/LessonEditDetailsPage/index.vue @@ -38,6 +38,7 @@ import commonCoreStrings from 'kolibri/uiText/commonCoreStrings'; import useUser from 'kolibri/composables/useUser'; import useSnackbar from 'kolibri/composables/useSnackbar'; + import { useFacilities } from 'kolibri-common/composables/useFacilities'; import { coachStringsMixin } from '../../common/commonCoachStrings'; import CoachImmersivePage from '../../CoachImmersivePage'; import AssignmentDetailsModal from '../../common/assignments/AssignmentDetailsModal'; @@ -96,13 +97,14 @@ }, }, created() { + const { getFacilities } = useFacilities(); const initClassInfoPromise = this.$store.dispatch( 'initClassInfo', this.$route.params.classId, ); const getFacilitiesPromise = this.isSuperuser && this.$store.state.core.facilities.length === 0 - ? this.$store.dispatch('getFacilities').catch(() => {}) + ? getFacilities().catch(() => {}) : Promise.resolve(); Promise.all([initClassInfoPromise, getFacilitiesPromise]) diff --git a/kolibri/plugins/device/assets/src/app.js b/kolibri/plugins/device/assets/src/app.js index ee809dbb8b6..bc291f145ec 100644 --- a/kolibri/plugins/device/assets/src/app.js +++ b/kolibri/plugins/device/assets/src/app.js @@ -4,6 +4,7 @@ import router from 'kolibri/router'; import { IsPinAuthenticated } from 'kolibri/constants'; import useUser from 'kolibri/composables/useUser'; import KolibriApp from 'kolibri-app'; +import { useFacilities } from 'kolibri-common/composables/useFacilities'; import RootVue from './views/DeviceIndex'; import routes from './routes'; import pluginModule from './modules/pluginModule'; @@ -43,10 +44,11 @@ class DeviceManagementModule extends KolibriApp { } } ready() { + const { getFacilities } = useFacilities(); // reset module states after leaving their respective page router.beforeEach((to, from, next) => { if (this.store.state.core.facilities.length === 0) { - this.store.dispatch('getFacilities').then(next, next); + getFacilities().then(next, next); } next(); }); diff --git a/kolibri/plugins/device/assets/src/modules/userPermissions/handlers.js b/kolibri/plugins/device/assets/src/modules/userPermissions/handlers.js index 50c12e5a439..c279047c484 100644 --- a/kolibri/plugins/device/assets/src/modules/userPermissions/handlers.js +++ b/kolibri/plugins/device/assets/src/modules/userPermissions/handlers.js @@ -3,6 +3,7 @@ import FacilityUserResource from 'kolibri-common/apiResources/FacilityUserResour import samePageCheckGenerator from 'kolibri-common/utils/samePageCheckGenerator'; import useUser from 'kolibri/composables/useUser'; import { get } from '@vueuse/core'; +import { useFacilities } from 'kolibri-common/composables/useFacilities'; /** * Serially fetches Permissions, then FacilityUser. If returned Promise rejects, @@ -43,6 +44,7 @@ function fetchUserPermissions(userId) { * @returns Promise */ export function showUserPermissionsPage(store, userId) { + const { getFacilities } = useFacilities(); const setUserPermissionsState = state => store.commit('userPermissions/SET_STATE', state); const stopLoading = () => store.dispatch('notLoading'); @@ -56,7 +58,7 @@ export function showUserPermissionsPage(store, userId) { const samePage = samePageCheckGenerator(store); - return Promise.all([fetchUserPermissions(userId), store.dispatch('getFacilities')]) + return Promise.all([fetchUserPermissions(userId), getFacilities()]) .then(([data]) => { if (samePage()) { setUserPermissionsState({ user: data.user, permissions: data.permissions }); diff --git a/kolibri/plugins/device/assets/src/routes/index.js b/kolibri/plugins/device/assets/src/routes/index.js index 85ba4f40f9b..0304901958b 100644 --- a/kolibri/plugins/device/assets/src/routes/index.js +++ b/kolibri/plugins/device/assets/src/routes/index.js @@ -3,6 +3,7 @@ import ManageSyncSchedule from 'kolibri-common/components/SyncSchedule/ManageSyn import EditDeviceSyncSchedule from 'kolibri-common/components/SyncSchedule/EditDeviceSyncSchedule'; import useUser from 'kolibri/composables/useUser'; import { get } from '@vueuse/core'; +import { useFacilities } from 'kolibri-common/composables/useFacilities'; import { showDeviceInfoPage } from '../modules/deviceInfo/handlers'; import { showManagePermissionsPage } from '../modules/managePermissions/handlers'; import { showManageContentPage } from '../modules/manageContent/handlers'; @@ -47,8 +48,9 @@ const routes = [ // fetch the facilities if redirecting from /welcome, since the WelcomeModal // needs it beforeEnter(to, from, next) { + const { getFacilities } = useFacilities(); if (to.redirectedFrom === '/welcome') { - store.dispatch('getFacilities').then(next, next); + getFacilities().then(next, next); } else { next(); } diff --git a/kolibri/plugins/facility/assets/src/app.js b/kolibri/plugins/facility/assets/src/app.js index 6419e3cd83b..32975466105 100644 --- a/kolibri/plugins/facility/assets/src/app.js +++ b/kolibri/plugins/facility/assets/src/app.js @@ -3,6 +3,7 @@ import useUser from 'kolibri/composables/useUser'; import redirectBrowser from 'kolibri/utils/redirectBrowser'; import router from 'kolibri/router'; import KolibriApp from 'kolibri-app'; +import { useFacilities } from 'kolibri-common/composables/useFacilities'; import RootVue from './views/FacilityIndex'; import routes from './routes'; import pluginModule from './modules/pluginModule'; @@ -19,13 +20,14 @@ class FacilityManagementModule extends KolibriApp { } ready() { const { isLearnerOnlyImport, isSuperuser } = useUser(); + const { getFacilities } = useFacilities(); router.beforeEach((to, from, next) => { if (get(isLearnerOnlyImport)) { redirectBrowser(); return; } if (get(isSuperuser) && this.store.state.core.facilities.length === 0) { - this.store.dispatch('getFacilities').then(next, next); + getFacilities().then(next, next); } else { next(); } diff --git a/kolibri/plugins/facility/assets/src/modules/facilityConfig/actions.js b/kolibri/plugins/facility/assets/src/modules/facilityConfig/actions.js index 726b3dce72f..876f952415d 100644 --- a/kolibri/plugins/facility/assets/src/modules/facilityConfig/actions.js +++ b/kolibri/plugins/facility/assets/src/modules/facilityConfig/actions.js @@ -2,6 +2,7 @@ import FacilityDatasetResource from 'kolibri-common/apiResources/FacilityDataset import FacilityResource from 'kolibri-common/apiResources/FacilityResource'; import client from 'kolibri/client'; import urls from 'kolibri/urls'; +import { useFacilities } from 'kolibri-common/composables/useFacilities'; export function saveFacilityName(store, payload) { return FacilityResource.saveModel({ @@ -11,8 +12,9 @@ export function saveFacilityName(store, payload) { }, }).then( facility => { + const { getFacilities } = useFacilities(); // Refresh facility list to get new name - store.dispatch('getFacilities', null, { root: true }); + getFacilities(null); store.commit('UPDATE_FACILITIES', { oldName: store.state.facilityName, newName: facility.name, diff --git a/kolibri/plugins/facility/assets/src/views/ManageClassPage/index.vue b/kolibri/plugins/facility/assets/src/views/ManageClassPage/index.vue index 9b4a37eedb3..a48bf753100 100644 --- a/kolibri/plugins/facility/assets/src/views/ManageClassPage/index.vue +++ b/kolibri/plugins/facility/assets/src/views/ManageClassPage/index.vue @@ -103,6 +103,7 @@ import { mapState, mapActions, mapGetters } from 'vuex'; import commonCoreStrings from 'kolibri/uiText/commonCoreStrings'; import useUser from 'kolibri/composables/useUser'; + import { useFacilities } from 'kolibri-common/composables/useFacilities'; import { Modals } from '../../constants'; import FacilityAppBarPage from '../FacilityAppBarPage'; import ClassCreateModal from './ClassCreateModal'; @@ -125,11 +126,13 @@ setup() { const { classToDelete, selectClassToDelete, clearClassToDelete } = useDeleteClass(); const { userIsMultiFacilityAdmin } = useUser(); + const { getFacilities } = useFacilities(); return { classToDelete, selectClassToDelete, clearClassToDelete, userIsMultiFacilityAdmin, + getFacilities, }; }, computed: { @@ -190,7 +193,7 @@ refreshCoreFacilities() { if (this.userIsMultiFacilityAdmin) { // Update the core facilities object to update classroom number - this.$store.dispatch('getFacilities'); + this.getFacilities(); } }, // Duplicated in class-list-page diff --git a/kolibri/plugins/user_auth/assets/src/modules/pluginModule.js b/kolibri/plugins/user_auth/assets/src/modules/pluginModule.js index 41ea72ccf2a..3959d3a84d7 100644 --- a/kolibri/plugins/user_auth/assets/src/modules/pluginModule.js +++ b/kolibri/plugins/user_auth/assets/src/modules/pluginModule.js @@ -1,6 +1,7 @@ import Lockr from 'lockr'; import { get } from '@vueuse/core'; import useUser from 'kolibri/composables/useUser'; +import { useFacilities } from 'kolibri-common/composables/useFacilities'; import { ComponentMap, pageNameToModuleMap } from '../constants'; import signIn from './signIn'; @@ -18,7 +19,8 @@ export default { store.commit('CORE_SET_ERROR', null); }, setFacilitiesAndConfig(store) { - return store.dispatch('getFacilities').then(() => { + const { getFacilities } = useFacilities(); + return getFacilities().then(() => { return store.dispatch('getFacilityConfig', store.getters.selectedFacility.id); }); }, diff --git a/packages/kolibri-common/composables/useFacilities.js b/packages/kolibri-common/composables/useFacilities.js new file mode 100644 index 00000000000..707d31ea5bc --- /dev/null +++ b/packages/kolibri-common/composables/useFacilities.js @@ -0,0 +1,96 @@ +import { reactive, computed } from 'vue'; +import FacilityResource from 'kolibri-common/apiResources/FacilityResource'; +import useUser from 'kolibri/composables/useUser'; +import redirectBrowser from 'kolibri/utils/redirectBrowser'; +import FacilityDatasetResource from 'kolibri-common/apiResources/FacilityDatasetResource'; +import Lockr from 'lockr'; + +const state = reactive({ + error: '', + facilityConfig: {}, + facilities: [], + facilityId: Lockr.get('facilityId') || null, +}); + +export function useFacilities() { + const { userFacilityId } = useUser(); + + const selectedFacility = computed(() => { + const facilityById = facilities.value.find(f => f.id === state.facilityId); + if (facilityById) { + return facilityById; + } + return facilities.value.find(f => f.id === userFacilityId.value) || null; + }); + + //getters + const facilities = computed(() => state.facilities); + const facilityConfig = computed(() => state.facilityConfig); + + //actions + async function getFacilities() { + try { + const facilities = await FacilityResource.fetchCollection({ force: true }); + state.facilities = facilities; + } catch (error) { + state.error = error.message; + } + } + + async function getFacilityConfig(facilityId) { + const facId = facilityId || userFacilityId.value; + + if (!facId) { + // No facility Id, so redirect and let Kolibri sort it out + return redirectBrowser(); + } + + let facilityConfig; + + try { + if (selectedFacility.value && typeof selectedFacility.value.dataset !== 'object') { + facilityConfig = [selectedFacility.value.dataset]; + } else { + facilityConfig = await FacilityDatasetResource.fetchCollection({ + getParams: { + facility_id: facId, + }, + }); + } + + let config = {}; + const facility = facilityConfig[0]; + + if (facility) { + config = { ...facility }; + } + setFacilityConfig(config); + } catch (error) { + setError(error.message); + throw error; + } + } + + //mutations + function setFacilityConfig(state, facilityConfig) { + state.facilityConfig = facilityConfig; + } + + function setFacilities(state, facilities) { + state.facilities = facilities; + } + + function setError(state, error) { + state.error = error; + } + + return { + facilities, + facilityConfig, + getFacilities, + getFacilityConfig, + setFacilityConfig, + setFacilities, + setError, + }; +} diff --git a/packages/kolibri-tools/test/fixtures/TestUserPermissions.js b/packages/kolibri-tools/test/fixtures/TestUserPermissions.js index 83a61826b4d..5084f706ce0 100644 --- a/packages/kolibri-tools/test/fixtures/TestUserPermissions.js +++ b/packages/kolibri-tools/test/fixtures/TestUserPermissions.js @@ -17,6 +17,8 @@ import FacilityUserResource from 'kolibri-common/apiResources/FacilityUserResour import samePageCheckGenerator from 'kolibri-common/utils/samePageCheckGenerator'; import { createTranslator } from 'kolibri/utils/i18n'; import useUser from 'kolibri/composables/useUser'; +import { useFacilities } from 'kolibri-common/composables/useFacilities'; +import { getFacilities } from '../../../../kolibri/core/assets/src/state/modules/core/actions'; const translator = createTranslator('UserPermissionToolbarTitles', { loading: 'Loading user permissions…', @@ -63,6 +65,8 @@ function fetchUserPermissions(userId) { * @returns Promise */ export function showUserPermissionsPage(store, userId) { + const { getfacilities } = useFacilities(); + const setAppBarTitle = title => store.commit('coreBase/SET_APP_BAR_TITLE', title); const setUserPermissionsState = state => store.commit('userPermissions/SET_STATE', state); const stopLoading = () => store.commit('CORE_SET_PAGE_LOADING', false); @@ -81,7 +85,7 @@ export function showUserPermissionsPage(store, userId) { const samePage = samePageCheckGenerator(store); let testThing = translator.$tr('invalidUserTitle'); - return Promise.all([fetchUserPermissions(userId), store.dispatch('getFacilities')]) + return Promise.all([fetchUserPermissions(userId), getFacilities()]) .then(([data]) => { if (samePage()) { setAppBarTitle(data.user.full_name); From edae304667907e52d8ee29a60e9899511daa0bdb Mon Sep 17 00:00:00 2001 From: ozer550 Date: Thu, 16 Jan 2025 15:02:27 +0530 Subject: [PATCH 02/13] migrate getFacilityConfig action --- .../facility/assets/src/views/UserCreatePage.vue | 10 ++++++++-- .../plugins/facility/assets/src/views/UserEditPage.vue | 6 ++++-- .../user_auth/assets/src/modules/pluginModule.js | 7 ++++--- .../user_auth/assets/src/views/FacilitySelect.vue | 4 +++- kolibri/plugins/user_profile/assets/src/routes.js | 4 +++- 5 files changed, 22 insertions(+), 9 deletions(-) diff --git a/kolibri/plugins/facility/assets/src/views/UserCreatePage.vue b/kolibri/plugins/facility/assets/src/views/UserCreatePage.vue index c15af7515fd..6edac3b1031 100644 --- a/kolibri/plugins/facility/assets/src/views/UserCreatePage.vue +++ b/kolibri/plugins/facility/assets/src/views/UserCreatePage.vue @@ -124,7 +124,7 @@ diff --git a/kolibri/plugins/user_auth/assets/src/views/SignInPage/index.vue b/kolibri/plugins/user_auth/assets/src/views/SignInPage/index.vue index d18fb45cc65..9cb693437f5 100644 --- a/kolibri/plugins/user_auth/assets/src/views/SignInPage/index.vue +++ b/kolibri/plugins/user_auth/assets/src/views/SignInPage/index.vue @@ -158,7 +158,7 @@