From 44b92dab72c625d0eb9de1a331c5be5ef891aa8f Mon Sep 17 00:00:00 2001 From: MisRob Date: Fri, 1 Sep 2023 15:17:57 +0200 Subject: [PATCH 01/53] Add temporary reference to KDS fork --- kolibri/core/package.json | 2 +- .../plugins/learn/assets/src/views/LearningActivityBar.vue | 2 +- packages/kolibri-core-for-export/package.json | 2 +- yarn.lock | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/kolibri/core/package.json b/kolibri/core/package.json index 4138f1e1b0e..81a9567f883 100644 --- a/kolibri/core/package.json +++ b/kolibri/core/package.json @@ -21,7 +21,7 @@ "js-cookie": "^3.0.5", "knuth-shuffle-seeded": "^1.0.6", "kolibri-constants": "0.2.0", - "kolibri-design-system": "https://github.com/learningequality/kolibri-design-system#2e5c1e8fc9a5239eaf3780639953619f34b6a2be", + "kolibri-design-system": "https://github.com/MisRob/kolibri-design-system#cfd99deadd301aae83598afb5c6290085f8351fb", "lockr": "0.8.5", "lodash": "^4.17.21", "loglevel": "^1.8.1", diff --git a/kolibri/plugins/learn/assets/src/views/LearningActivityBar.vue b/kolibri/plugins/learn/assets/src/views/LearningActivityBar.vue index fc6ea787d27..f674355ef52 100644 --- a/kolibri/plugins/learn/assets/src/views/LearningActivityBar.vue +++ b/kolibri/plugins/learn/assets/src/views/LearningActivityBar.vue @@ -40,7 +40,7 @@ --> Date: Fri, 1 Sep 2023 15:36:12 +0200 Subject: [PATCH 02/53] Add useKShow to apiSpec --- kolibri/core/assets/src/core-app/apiSpec.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/kolibri/core/assets/src/core-app/apiSpec.js b/kolibri/core/assets/src/core-app/apiSpec.js index 02ee53934af..83d9bf0de10 100644 --- a/kolibri/core/assets/src/core-app/apiSpec.js +++ b/kolibri/core/assets/src/core-app/apiSpec.js @@ -18,6 +18,7 @@ import UiAlert from 'kolibri-design-system/lib/keen/UiAlert'; import responsiveWindowMixin from 'kolibri-design-system/lib/KResponsiveWindowMixin'; import responsiveElementMixin from 'kolibri-design-system/lib/KResponsiveElementMixin'; import useKResponsiveWindow from 'kolibri-design-system/lib/useKResponsiveWindow'; +import useKShow from 'kolibri-design-system/lib/composables/useKShow'; import UiIconButton from 'kolibri-design-system/lib/keen/UiIconButton'; // temp hack import * as vueCompositionApi from '@vue/composition-api'; import logging from '../logging'; @@ -230,6 +231,7 @@ export default { }, composables: { useKResponsiveWindow, + useKShow, useMinimumKolibriVersion, useUser, }, From 4080bd6ee0ca93f2a1bf6cc8cad1b9acf129a2b2 Mon Sep 17 00:00:00 2001 From: MisRob Date: Thu, 31 Aug 2023 11:18:50 +0200 Subject: [PATCH 03/53] Fetch lesson sizes before commiting new lessons so that they can be commited together with their sizes. Fixes https://github.com/learningequality/kolibri/issues/10797 --- .../assets/src/modules/lessonsRoot/actions.js | 27 ++++++++++++++----- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/kolibri/plugins/coach/assets/src/modules/lessonsRoot/actions.js b/kolibri/plugins/coach/assets/src/modules/lessonsRoot/actions.js index ab9e4ff0caf..17c4bd0d4d5 100644 --- a/kolibri/plugins/coach/assets/src/modules/lessonsRoot/actions.js +++ b/kolibri/plugins/coach/assets/src/modules/lessonsRoot/actions.js @@ -16,24 +16,37 @@ export function refreshClassLessons(store, classId) { force: true, }) .then(lessons => { + // Fetch lesson sizes before commiting new lessons + // so that they can be commited together with their sizes. + // Fixes https://github.com/learningequality/kolibri/issues/10797 + if (Object.keys(lessons).length > 0) { + return store.dispatch('fetchLessonsSizes', classId, false).then(sizes => { + return { lessons, sizes }; + }); + } else { + return { lessons, sizes: null }; + } + }) + .then(({ lessons, sizes }) => { store.commit('SET_CLASS_LESSONS', lessons); + if (sizes) { + store.commit('SET_CLASS_LESSONS_SIZES', sizes); + } // resolve lessons in case it's needed return lessons; }) - .then(lessons => { - if (Object.keys(lessons).length > 0) { - return store.dispatch('fetchLessonsSizes', classId); - } - }) .catch(error => { return store.dispatch('handleApiError', { error }, { root: true }); }); } -export function fetchLessonsSizes(store, classId) { +export function fetchLessonsSizes(store, classId, shouldCommit = true) { return LessonResource.fetchLessonsSizes({ collection: classId }) .then(sizes => { - store.commit('SET_CLASS_LESSONS_SIZES', sizes); + if (shouldCommit) { + store.commit('SET_CLASS_LESSONS_SIZES', sizes); + } + return sizes; }) .catch(error => { return store.dispatch('handleApiError', { error }, { root: true }); From eca698de5fde21226c8d8fab454a2cc2072ebbfb Mon Sep 17 00:00:00 2001 From: MisRob Date: Fri, 1 Sep 2023 17:25:53 +0200 Subject: [PATCH 04/53] Add loader when toggling lessons - Resolves seemingly unresponsive toggle switch on slow networks and prevents from repeated clicks. - Includes related re-ordering of async events to achieve consistent UX. --- .../src/views/plan/LessonsRootPage/index.vue | 66 ++++++++++++++----- 1 file changed, 51 insertions(+), 15 deletions(-) diff --git a/kolibri/plugins/coach/assets/src/views/plan/LessonsRootPage/index.vue b/kolibri/plugins/coach/assets/src/views/plan/LessonsRootPage/index.vue index 8ecbe6901ff..57a571d9607 100644 --- a/kolibri/plugins/coach/assets/src/views/plan/LessonsRootPage/index.vue +++ b/kolibri/plugins/coach/assets/src/views/plan/LessonsRootPage/index.vue @@ -63,13 +63,26 @@ /> - +
+ + + + +
@@ -148,6 +161,7 @@