Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
b616f40
Initial commit
Dec 10, 2018
11f6cb7
update login and signup module: made API request
Dec 19, 2018
fbfd6e6
update 'support' mode: connect with firebase
Dec 19, 2018
0bdf96f
update 'change username' of the account mode
Dec 19, 2018
5870260
update 'change username' of the account mode
Dec 19, 2018
34e81e1
change a model name: UserOptions to User
Dec 19, 2018
c042a3e
update account.ts: add changeEmail(), user-data.ts: updateUsername to…
Dec 19, 2018
13b3de5
add change password mode to account.ts
Dec 19, 2018
6e13952
create more providers and update speaker-list, session-detail connect…
Dec 20, 2018
a57388b
update speaker-detail.ts: add links and show all details of speaker.
Dec 20, 2018
be2f9c1
update schedule-filter.ts: work by user's default setting and update …
Dec 21, 2018
1bfb8a5
add 'trackFilter' to user and modify 'signup.ts' to update user file
Dec 21, 2018
66b1677
add 'Select one track mode' to list up the schedule by the selected t…
Dec 22, 2018
515cf8a
update 'schedule mode': get main sessions from firebase and manipulat…
Dec 23, 2018
0349790
update 'session-detail mode': activated toggling favorite function
Dec 23, 2018
48604e8
fix a bug: initial schedule were loaded opposit way.
Dec 23, 2018
9461f7b
updated 'schedule mode': fixed showing favorites schedule
Dec 23, 2018
3447f01
update app openning mode: let app open after login or signup
Dec 23, 2018
ddd158c
created 'image downloading module' using AngularFireStorage
Dec 28, 2018
ef5b979
testing pull request
Dec 28, 2018
c9eef94
Merge pull request #1 from Hogusong/dev
Hogusong Dec 28, 2018
41efbba
fixed some conflicts
Dec 28, 2018
f6ee2b2
updated installing dependencies and matching versions in package.json
Dec 28, 2018
b4d31b9
fixed all errors after merge. Mainly version conflict of @ionic/angular.
Dec 29, 2018
eee7996
added uploading user's avatar to firebase storage.
Dec 29, 2018
280b7ea
fixed 'stylesheet conflicts'
Dec 29, 2018
7020bcc
Just added primary color for ion-toolbar.
Jan 2, 2019
48edaa2
Added new set of tabs for admin dashboard to manipulate all databases
Jan 3, 2019
0a47b08
Created edit/delete module for 'Tracks' in admin setup
Jan 4, 2019
7e6f1ef
Created adding module for 'Tracks' in admin setup.
Jan 5, 2019
e49e416
Created UI of 'PartOfDay' module in admin setup.
Jan 5, 2019
e15e7c2
Created edit/create a new set module for 'Parts Of Day' in admin setup
Jan 6, 2019
7e0c704
Created UI of 'Speakers' module in admin setup.
Jan 6, 2019
4c2a37c
Created add/edit/remove module for 'Speakers' in admin setup
Jan 7, 2019
477f66e
updated after meeting with UI designer
Jan 8, 2019
6154d8c
reassign previously deleted id to object after it has been updated.
Jan 8, 2019
20b8f10
updated main page of the session setup mode.
Jan 8, 2019
c5229ff
added 'select speakers module' to session-edit.
Jan 15, 2019
fee6b60
updated 'check validation of input' to session-edit
Jan 15, 2019
f6f1276
Fixed a bug and updated 'alert mode' in account.ts
Jan 15, 2019
077831a
updated all alert to the provided function 'onError()'.
Jan 15, 2019
9419033
added search bar for 'Speaker-list'.
Jan 15, 2019
647953d
added 'pick-tracks mode' to the session-edit.
Jan 15, 2019
54476ba
complited all of setup of the session: add, edit, remove.
Jan 15, 2019
2441827
Fixed bugs: missing parameter, declarations of 2 modules
Jan 15, 2019
c9ae1b7
added 'date-period mode' to 'schedule.ts and sessions-setup.ts
Jan 16, 2019
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ npm-debug.log*
coverage/
dist/
node_modules/
src/environments
tmp/
temp/
hooks/
Expand Down
2 changes: 1 addition & 1 deletion config.xml
Original file line number Diff line number Diff line change
Expand Up @@ -84,5 +84,5 @@
<plugin name="cordova-plugin-statusbar" spec="^2.4.2" />
<plugin name="cordova-plugin-ionic-keyboard" spec="^2.1.2" />
<engine name="ios" spec="^4.5.5" />
<engine name="android" spec="7.0.0" />
<engine name="android" spec="7.1.4" />
</widget>
2,985 changes: 1,682 additions & 1,303 deletions package-lock.json

Large diffs are not rendered by default.

37 changes: 21 additions & 16 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,43 +17,46 @@
},
"private": true,
"dependencies": {
"@angular/common": "7.1.3",
"@angular/core": "7.1.3",
"@angular/forms": "7.1.3",
"@angular/common": "~7.1.0",
"@angular/core": "~7.1.0",
"@angular/fire": "^5.1.1",
"@angular/forms": "~7.1.0",
"@angular/http": "~7.1.0",
"@angular/platform-browser": "7.1.3",
"@angular/platform-browser-dynamic": "7.1.3",
"@angular/platform-browser": "7.1.0",
"@angular/platform-browser-dynamic": "7.1.0",
"@angular/pwa": "0.11.0",
"@angular/router": "7.1.3",
"@angular/router": "7.1.0",
"@angular/service-worker": "~7.1.0",
"@ionic-native/core": "5.0.0-beta.15",
"@ionic-native/in-app-browser": "5.0.0-beta.15",
"@ionic-native/splash-screen": "5.0.0-beta.15",
"@ionic-native/status-bar": "5.0.0-beta.15",
"@ionic/angular": "4.0.0-beta.19",
"@ionic/angular": "^4.0.0-beta.16",
"@ionic/storage": "^2.1.3",
"cordova-android": "7.0.0",
"angularfire2": "^5.1.1",
"cordova-android": "7.1.4",
"cordova-ios": "^4.5.5",
"cordova-plugin-device": "^2.0.2",
"cordova-plugin-inappbrowser": "^3.0.0",
"cordova-plugin-ionic-keyboard": "^2.1.2",
"cordova-plugin-ionic-webview": "^2.0.0",
"cordova-plugin-ionic-keyboard": "^2.1.3",
"cordova-plugin-ionic-webview": "^2.3.1",
"cordova-plugin-splashscreen": "^5.0.2",
"cordova-plugin-statusbar": "^2.4.2",
"cordova-plugin-whitelist": "^1.3.2",
"cordova-plugin-whitelist": "^1.3.3",
"core-js": "^2.5.7",
"firebase": "^5.7.2",
"rxjs": "6.3.3",
"sw-toolbox": "3.6.0",
"zone.js": "^0.8.26"
},
"devDependencies": {
"@angular-devkit/architect": "0.11.0",
"@angular-devkit/build-angular": "0.11.0",
"@angular-devkit/core": "7.1.2",
"@angular-devkit/schematics": "7.1.2",
"@angular-devkit/core": "7.1.0",
"@angular-devkit/schematics": "7.1.0",
"@angular/cli": "7.1.0",
"@angular/compiler": "7.1.3",
"@angular/compiler-cli": "7.1.3",
"@angular/compiler": "7.1.0",
"@angular/compiler-cli": "7.1.0",
"@angular/language-service": "~7.1.0",
"@ionic/angular-toolkit": "1.2.0",
"@ionic/lab": "^1.0.0",
Expand Down Expand Up @@ -85,7 +88,9 @@
"cordova-plugin-inappbrowser": {},
"cordova-plugin-splashscreen": {},
"cordova-plugin-whitelist": {},
"cordova-plugin-ionic-webview": {},
"cordova-plugin-ionic-webview": {
"ANDROID_SUPPORT_ANNOTATIONS_VERSION": "27.+"
},
"cordova-plugin-statusbar": {},
"cordova-plugin-ionic-keyboard": {}
}
Expand Down
11 changes: 7 additions & 4 deletions src/app/app-routing.module.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { CheckTutorial } from './providers/check-tutorial.service';

const routes: Routes = [
{
Expand Down Expand Up @@ -30,9 +29,13 @@ const routes: Routes = [
},
{
path: 'tutorial',
loadChildren: './pages/tutorial/tutorial.module#TutorialModule',
canLoad: [CheckTutorial]
}
loadChildren: './pages/tutorial/tutorial.module#TutorialModule'
},
{
path: 'setup',
loadChildren: './setup/tabs-setup/tabs-setup.module#TabsSetupPageModule'
},
{ path: 'session-edit', loadChildren: './setup/sessions/session-edit/session-edit.module#SessionEditPageModule' },
];

@NgModule({
Expand Down
18 changes: 15 additions & 3 deletions src/app/app.component.html
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
Navigate
</ion-list-header>
<ion-menu-toggle auto-hide="false" *ngFor="let p of appPages; let i = index">
<ion-item [routerLink]="p.url">
<ion-item button (click)="navigate(p.url)" [disabled]="!loggedIn">
<ion-icon slot="start" [name]="p.icon"></ion-icon>
<ion-label>
{{p.title}}
Expand Down Expand Up @@ -73,7 +73,7 @@
</ion-menu-toggle>

<ion-menu-toggle auto-hide="false">
<ion-item routerLink="/support">
<ion-item button (click)="navigate('/support')" [disabled]='true'>
<ion-icon slot="start" name="help"></ion-icon>
<ion-label>
Support
Expand All @@ -91,7 +91,19 @@
</ion-menu-toggle>
</ion-list>

<ion-list>
<ion-list *ngIf="keyword === 'admin'">
<ion-list-header>
Configuration
</ion-list-header>
<ion-menu-toggle auto-hide="false">
<ion-item button (click)="onSetup()">
<ion-icon slot="start" name="hammer"></ion-icon>
<ion-label>Set Up</ion-label>
</ion-item>
</ion-menu-toggle>
</ion-list>

<ion-list *ngIf="keyword !== 'admin'">
<ion-list-header>
Tutorial
</ion-list-header>
Expand Down
34 changes: 21 additions & 13 deletions src/app/app.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,26 +17,27 @@ export class AppComponent implements OnInit {
appPages = [
{
title: 'Schedule',
url: '/app/tabs/schedule',
url: '/app/tabs/(schedule:schedule)',
icon: 'calendar'
},
{
title: 'Speakers',
url: '/app/tabs/speakers',
url: '/app/tabs/(speakers:speakers)',
icon: 'contacts'
},
{
title: 'Map',
url: '/app/tabs/map',
url: '/app/tabs/(map:map)',
icon: 'map'
},
{
title: 'About',
url: '/app/tabs/about',
url: '/app/tabs/(about:about)',
icon: 'information-circle'
}
];
loggedIn = false;
keyword = '';

constructor(
private events: Events,
Expand All @@ -52,7 +53,9 @@ export class AppComponent implements OnInit {
}

ngOnInit() {
this.checkLoginStatus();
this.userData.isLoggedIn().then(loggedIn => {
this.updateLoggedInStatus(loggedIn);
});
this.listenForLoginEvents();
}

Expand All @@ -63,15 +66,12 @@ export class AppComponent implements OnInit {
});
}

checkLoginStatus() {
return this.userData.isLoggedIn().then(loggedIn => {
return this.updateLoggedInStatus(loggedIn);
});
}

updateLoggedInStatus(loggedIn: boolean) {
setTimeout(() => {
this.loggedIn = loggedIn;
this.userData.getUser().then(user => {
this.keyword = user ? user.username : '' ;
});
}, 300);
}

Expand All @@ -89,15 +89,23 @@ export class AppComponent implements OnInit {
});
}

navigate(url: string) {
return this.router.navigateByUrl(url);
}

logout() {
this.userData.logout().then(() => {
return this.router.navigateByUrl('/app/tabs/schedule');
return this.openTutorial();
});
}

onSetup() {
this.router.navigateByUrl('/setup/tabs/(sessions:sessions)');
}

openTutorial() {
this.menu.enable(false);
this.storage.set('ion_did_tutorial', false);
this.storage.set('ion_did_tutorial', 'false');
this.router.navigateByUrl('/tutorial');
}
}
14 changes: 11 additions & 3 deletions src/app/app.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,14 @@ import { StatusBar } from '@ionic-native/status-bar/ngx';
import { IonicModule } from '@ionic/angular';
import { IonicStorageModule } from '@ionic/storage';

import { environment } from '../environments/environment';
import { AngularFireModule } from 'angularfire2';
import { AngularFirestoreModule } from 'angularfire2/firestore';
import { AngularFireStorageModule } from 'angularfire2/storage';
import { AngularFireAuthModule } from 'angularfire2/auth';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { ServiceWorkerModule } from '@angular/service-worker';
import { environment } from '../environments/environment';

@NgModule({
imports: [
Expand All @@ -21,10 +25,14 @@ import { environment } from '../environments/environment';
IonicStorageModule.forRoot(),
ServiceWorkerModule.register('ngsw-worker.js', {
enabled: environment.production
})
}),
AngularFireModule.initializeApp(environment.firebase, 'ionic-conference'),
AngularFireAuthModule,
AngularFirestoreModule,
AngularFireStorageModule
],
declarations: [AppComponent],
providers: [InAppBrowser, SplashScreen, StatusBar],
bootstrap: [AppComponent]
bootstrap: [AppComponent],
})
export class AppModule {}
31 changes: 31 additions & 0 deletions src/app/directive/drop-zone.directive.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
import { Directive, HostListener, Output, EventEmitter } from '@angular/core';

@Directive({
selector: '[appDropZone]'
})
export class DropZoneDirective {

@Output() dropped = new EventEmitter<FileList>();
@Output() hovered = new EventEmitter<boolean>();

constructor() { }

@HostListener('drop', ['$event'])
onDrop($event) {
$event.preventDefault();
this.dropped.emit($event.dataTransfer.files);
this.hovered.emit(false);
}

@HostListener('dragover', ['$event'])
onDragOver($event) {
$event.preventDefault();
this.hovered.emit(true);
}

@HostListener('dragleave', ['$event'])
onDragLeave($event) {
$event.preventDefault();
this.hovered.emit(false);
}
}
31 changes: 31 additions & 0 deletions src/app/directive/dropzone.directive.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
import { Directive, HostListener, Output, EventEmitter } from '@angular/core';

@Directive({
selector: '[appDropzone]'
})
export class DropzoneDirective {

@Output() dropped = new EventEmitter<FileList>();
@Output() hovered = new EventEmitter<boolean>();

constructor() { }

@HostListener('drop', ['$event'])
onDrop($event) {
$event.preventDefault();
this.dropped.emit($event.dataTransfer.files);
this.hovered.emit(false);
}

@HostListener('dragover', ['$event'])
onDragOver($event) {
$event.preventDefault();
this.hovered.emit(true);
}

@HostListener('dragleave', ['$event'])
onDragLeave($event) {
$event.preventDefault();
this.hovered.emit(false);
}
}
5 changes: 0 additions & 5 deletions src/app/interfaces/user-options.ts

This file was deleted.

Loading