diff --git a/package-lock.json b/package-lock.json index d2f58cfce..241b0bb39 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "MentorED", - "version": "3.1.0", + "version": "3.1.3.8", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "MentorED", - "version": "3.1.0", + "version": "3.1.3.8", "dependencies": { "@angular-material-components/datetime-picker": "^7.0.1", "@angular-material-components/moment-adapter": "^7.0.0", @@ -56,8 +56,7 @@ "cordova-plugin-screen-orientation": "^3.0.3", "cordova-sqlite-storage": "^6.1.0", "es6-promise-plugin": "^4.2.2", - "generic-chart": "file:../../frontend-utils-library/dist/generic-chart/generic-chart-0.0.23.tgz", - "generic-table": "file:../../frontend-utils-library/dist/generic-table/generic-table-0.0.624.tgz", + "generic-chart": "^1.0.4", "ionic-plugin-deeplinks": "^1.0.24", "jwt-decode": "^3.1.2", "lodash-es": "^4.17.21", @@ -67,7 +66,7 @@ "papaparse": "^5.4.1", "rxjs": "~6.6.0", "rxjs-compat": "^6.6.7", - "sl-generic-table": "^1.1.0", + "sl-generic-table": "^1.3.11", "tslib": "^2.2.0", "yargs": "^17.7.2", "zone.js": "~0.11.4" @@ -9727,21 +9726,9 @@ } }, "node_modules/generic-chart": { - "version": "0.0.23", - "resolved": "file:../../frontend-utils-library/dist/generic-chart/generic-chart-0.0.23.tgz", - "integrity": "sha512-ST3j/GhjZIbRC/HXgd+7dVg5ta1ssFaODE+Qm1kxQlxFdcI27CY9uj+BBxqlUilxb9yLQWdlG9GKO666hMr+gg==", - "dependencies": { - "tslib": "^2.3.0" - }, - "peerDependencies": { - "@angular/common": "^13.2.0", - "@angular/core": "^13.2.0" - } - }, - "node_modules/generic-table": { - "version": "0.0.624", - "resolved": "file:../../frontend-utils-library/dist/generic-table/generic-table-0.0.624.tgz", - "integrity": "sha512-wA8hI/A9Vgixh9GWaOs8SsRqLeBZQ5gYdV8l4zPjH07hxCdmSCqb6svuImT/L+JAHM3ObOu62KRChfZ87y4EFg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/generic-chart/-/generic-chart-1.1.0.tgz", + "integrity": "sha512-55dHyLRodj0m61vBIcP64N+KQBh/ysH98V7jvRxhUzXbWTRjY+g2aNPxLGhMKvvpMCcB4bIzilPeXliof3TybA==", "dependencies": { "tslib": "^2.3.0" }, @@ -16538,9 +16525,9 @@ "dev": true }, "node_modules/sl-generic-table": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/sl-generic-table/-/sl-generic-table-1.1.0.tgz", - "integrity": "sha512-qBmN8MIjJCw0fszcB0qvEXGaOtcuWaT0lEnPE8dFf7k66o61aQFXHXBJsSBKIf6Vx+DQCdPYI1QwcpL6OZLu0A==", + "version": "1.3.11", + "resolved": "https://registry.npmjs.org/sl-generic-table/-/sl-generic-table-1.3.11.tgz", + "integrity": "sha512-xMvbWnLlrPXkJ+NvKv49+r8z7a1nBERh/cwGHFqEHi9vjlC+qZIDYP9KKWQWO+CsqraFqcJjKW2XivVzZ7NmRQ==", "dependencies": { "tslib": "^2.3.0" }, diff --git a/package.json b/package.json index 7f076a4d9..4b03dc50c 100644 --- a/package.json +++ b/package.json @@ -73,7 +73,7 @@ "papaparse": "^5.4.1", "rxjs": "~6.6.0", "rxjs-compat": "^6.6.7", - "sl-generic-table": "^1.3.1", + "sl-generic-table": "^1.3.11", "tslib": "^2.2.0", "yargs": "^17.7.2", "zone.js": "~0.11.4" diff --git a/src/app/core/services/util/util.service.ts b/src/app/core/services/util/util.service.ts index 125803812..6b93f00f8 100644 --- a/src/app/core/services/util/util.service.ts +++ b/src/app/core/services/util/util.service.ts @@ -274,5 +274,15 @@ export class UtilService { subscribeCriteriaChip(criteriaChip: string) { this.criteriaChipSource.next(criteriaChip); } + + downloadCSVFile(rawCsvUrl: string, fileName: string): void { + const link = document.createElement('a'); + link.href = rawCsvUrl; + link.download = fileName.endsWith('.csv') ? fileName : `${fileName}.csv`; + + document.body.appendChild(link); + link.click(); + document.body.removeChild(link); + } } diff --git a/src/app/pages/mentor-details/mentor-details.page.ts b/src/app/pages/mentor-details/mentor-details.page.ts index 5b3195e5e..5151b4a41 100644 --- a/src/app/pages/mentor-details/mentor-details.page.ts +++ b/src/app/pages/mentor-details/mentor-details.page.ts @@ -110,18 +110,32 @@ export class MentorDetailsPage implements OnInit { this.detailData.data = this.mentorProfileData?.result; this.detailData.data.organizationName = this.mentorProfileData?.result?.organization.name; } - async getUpcomingSessions() { + async getUpcomingSessions(isLoadMore: boolean = false) { const config = { url: urlConstants.API_URLS.UPCOMING_SESSIONS + this.mentorId + "?page="+this.page + '&limit='+this.limit, payload: {} }; try { let data = await this.httpService.get(config); - this.upcomingSessions = this.upcomingSessions.concat(data.result.data); - this.totalCount = data.result.count; - this.infiniteScroll.disabled = (this.upcomingSessions.length === this.totalCount) ? true : false; + const newSessions = data?.result?.data || []; + + if (isLoadMore) { + this.upcomingSessions = [...this.upcomingSessions, ...newSessions]; + } else { + this.upcomingSessions = newSessions; + } + + this.totalCount = data?.result?.count || 0; + + if (this.infiniteScroll) { + this.infiniteScroll.disabled = this.upcomingSessions.length >= this.totalCount; + } } catch (error) { + console.error('Error fetching upcoming sessions:', error); + if (this.infiniteScroll) { + this.infiniteScroll.disabled = true; + } } } @@ -175,11 +189,9 @@ export class MentorDetailsPage implements OnInit { } } - loadMore(event){ - setTimeout(() => { - this.page += 1; - this.getUpcomingSessions(); - event.target.complete(); - }, 1000); + async loadMore(event){ + this.page += 1; + await this.getUpcomingSessions(true); + event.target.complete(); } -} +} \ No newline at end of file diff --git a/src/app/pages/tabs/dashboard/dashboard.page.html b/src/app/pages/tabs/dashboard/dashboard.page.html index e5655ba85..b56c29f31 100644 --- a/src/app/pages/tabs/dashboard/dashboard.page.html +++ b/src/app/pages/tabs/dashboard/dashboard.page.html @@ -49,7 +49,7 @@