diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 5427b30b..8fbfa33c 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -14,6 +14,7 @@ import { HttpClientModule, HttpClient } from '@angular/common/http'; import { TranslateModule, TranslateLoader } from '@ngx-translate/core'; import { TranslateHttpLoader } from "@ngx-translate/http-loader"; import { i18nData } from './assets/i18n-en'; +import { AppConfigModule } from '../shared/app-config/app-config.module'; import { TranslationModule } from '../shared/translation/translation.module'; import { MomentModule } from 'angular2-moment'; import { WindowRef } from '../shared/window'; @@ -63,7 +64,7 @@ import { EventsListPage } from '../pages/events/list/list.page'; import { EventsPreviewPage } from '../pages/events/download/events-preview.page'; import { EventsViewPage } from '../pages/events/view/events-view.page'; import { ForgetPasswordPage } from '../pages/forget-password/forget-password'; -import { GalleryPage } from '../pages/gallery/gallery'; +import { GalleryPage } from '../pages/gallery/gallery.page'; import { ItemsPopupPage } from '../pages/assessments/popup/items-popup.page'; import { LeaderboardSettingsPage } from '../pages/settings/leaderboard/leaderboard-settings.page'; import { LevelsListPage } from '../pages/levels/list/list'; @@ -77,7 +78,7 @@ import { ResetPasswordPage } from '../pages/reset-password/reset-password'; import { SettingsPage } from '../pages/settings/settings.page'; import { SidenavPage } from '../pages/sidenav/sidenav'; import { TabsPage } from '../pages/tabs/tabs.page'; -import { TeamPage } from '../pages/team/team'; +import { TeamPage } from '../pages/team/team.page'; import { TermsConditionsPage } from '../pages/registration/terms-conditions/terms-conditions.page'; import { TestPage } from '../pages/tabs/test.page'; import { TutorialPage } from '../pages/settings/tutorial/tutorial.page'; @@ -147,6 +148,7 @@ export function createTranslateLoader(http: HttpClient) { EscapeHtmlPipe, ], imports: [ + AppConfigModule, BrowserModule, CacheModule, FormsModule, diff --git a/src/pages/activities-classic/list/activities-classic-list.page.ts b/src/pages/activities-classic/list/activities-classic-list.page.ts new file mode 100644 index 00000000..d01caf09 --- /dev/null +++ b/src/pages/activities-classic/list/activities-classic-list.page.ts @@ -0,0 +1,125 @@ +/** + * @TODO: I believe we can delete this now + */ +import { Component } from '@angular/core'; +import { NavController, ToastController, LoadingController } from 'ionic-angular'; + +import { ActivitiesViewPage } from '../../activities/view/activities-view.page'; +import { ActivityService } from '../../../services/activity.service'; + +declare var _: any; + +@Component({ + templateUrl: './list.html' +}) +export class ActivitiesClassicListPage { + activities: Array = []; + + constructor( + public navCtrl: NavController, + public activityService: ActivityService, + public toastCtrl: ToastController, + public loader: LoadingController + ) {} + + // @TODO: Move to shared function later... + public _error(err) { + let toast = this.toastCtrl.create({ + message: err, + duration: 5000, + position: 'bottom', + dismissOnPageChange: true + }); + + toast.onDidDismiss(() => { + console.log('Dismissed toast'); + }); + + toast.present(); + } + + /** + * normalise activities + */ + normaliseActivities(activities): Array { + let result = []; + + activities.forEach((act, index) => { + result[index] = _.merge(act.Activity, { + activity: act.Activity, + sequences: act.ActivitySequence, + Activity: act.Activity, + ActivitySequence: act.ActivitySequence, + }); + }); + return result; + } + + _pullData(acts, cb?) { + let self = this; + + this.activityService.getList() + .toPromise() + .then(function(activities) { + let result = []; + activities.map((act, index) => { + act = _.merge(act, act.Activity); + }); + this.activities = activities; + self.activities = activities; + + if (cb) { + cb(); + } + }, err => { + this._error(err); + console.log('err', err); + + if (cb) { + cb(); + } + }); + } + + doRefresh(refresher) { + this._pullData(this.activities, () => { + if (refresher) { + refresher.complete(); + } + }); + } + + ionViewDidEnter() { + + let loader = this.loader.create(); + let self = this; + + loader.present().then(() => { + this.activityService.getList() + .subscribe(activities => { + console.log(self.activities); + activities = self.normaliseActivities(activities); + + self.activities = activities; + loader.dismiss(); + }); + }); + } + + hasReservation(activity) { + return false; + } + + viewTicket(activity) { + + } + + book(activity) { + + } + + gotoActivity(activity) { + console.log(activity); + this.navCtrl.push(ActivitiesViewPage, {activity}); + } +} diff --git a/src/pages/activities/list/popup.ts b/src/pages/activities/list/popup.ts index c461f689..44a0e7f4 100644 --- a/src/pages/activities/list/popup.ts +++ b/src/pages/activities/list/popup.ts @@ -13,7 +13,6 @@ import { loadingMessages, errMessages } from '../../../app/messages'; templateUrl: 'popup.html' }) export class ActivityListPopupPage { - achievementData: any = null; achievementName: string; achievementsLoadingErr: any = errMessages.General.loading.load; diff --git a/src/pages/assessments/assessments.html b/src/pages/assessments/assessments.html index 02d56f6b..bb0fe09f 100644 --- a/src/pages/assessments/assessments.html +++ b/src/pages/assessments/assessments.html @@ -1,7 +1,6 @@ -