From 61709105e3da5fd83b03522842ff7f1bb72383ea Mon Sep 17 00:00:00 2001 From: walljm Date: Thu, 1 Dec 2016 15:21:07 -0500 Subject: [PATCH] FEATURE: Adding settings and user profile * fixed bug in card closing injected during other work * fixed modal close * --- DynamicBibleIonic/src/app/app.component.ts | 4 ++- DynamicBibleIonic/src/app/app.module.ts | 13 ++++++-- .../src/components/passage/passage.ts | 7 ++-- .../strongs-modal/strongs-modal.html | 5 ++- .../components/strongs-modal/strongs-modal.ts | 2 +- .../src/components/strongs/strongs.ts | 7 ++-- .../src/pages/search/search.html | 8 ++--- .../src/pages/search/search.scss | 2 +- DynamicBibleIonic/src/pages/search/search.ts | 30 ++++++++++++----- .../src/pages/settings/settings.html | 15 +++++++++ .../src/pages/settings/settings.scss | 3 ++ .../src/pages/settings/settings.ts | 33 +++++++++++++++++++ DynamicBibleIonic/src/types.ts | 8 ++++- 13 files changed, 111 insertions(+), 26 deletions(-) create mode 100644 DynamicBibleIonic/src/pages/settings/settings.html create mode 100644 DynamicBibleIonic/src/pages/settings/settings.scss create mode 100644 DynamicBibleIonic/src/pages/settings/settings.ts diff --git a/DynamicBibleIonic/src/app/app.component.ts b/DynamicBibleIonic/src/app/app.component.ts index 8373c36a..ebd0b399 100644 --- a/DynamicBibleIonic/src/app/app.component.ts +++ b/DynamicBibleIonic/src/app/app.component.ts @@ -5,6 +5,7 @@ import { Platform, MenuController, Nav } from 'ionic-angular'; import { StatusBar, Splashscreen } from 'ionic-native'; import {SearchPage} from "../pages/search/search"; +import {SettingsPage} from "../pages/settings/settings"; @Component({ templateUrl: 'app.html' @@ -24,7 +25,8 @@ export class MyApp { // set our app's pages this.pages = [ - { title: 'Dynamic Bible', component: SearchPage } + { title: 'Search', component: SearchPage }, + { title: 'Settings', component: SettingsPage } ]; } diff --git a/DynamicBibleIonic/src/app/app.module.ts b/DynamicBibleIonic/src/app/app.module.ts index 5e1ff267..56b19769 100644 --- a/DynamicBibleIonic/src/app/app.module.ts +++ b/DynamicBibleIonic/src/app/app.module.ts @@ -1,9 +1,14 @@ import { NgModule, ErrorHandler } from '@angular/core'; -import { IonicApp, IonicModule, IonicErrorHandler } from 'ionic-angular'; -import { MyApp } from './app.component'; import { BrowserModule } from '@angular/platform-browser'; +import { IonicApp, IonicModule, IonicErrorHandler } from 'ionic-angular'; +import { Storage } from '@ionic/storage'; + +import { MyApp } from './app.component'; + import {SearchPage} from "../pages/search/search"; +import {SettingsPage} from "../pages/settings/settings"; + import {ComponentLoader} from "../components/component-loader/component-loader.ts"; import {Passage} from "../components/passage/passage.ts"; import {Strongs} from "../components/strongs/strongs.ts"; @@ -13,6 +18,7 @@ import {StrongsModal} from "../components/strongs-modal/strongs-modal.ts"; declarations: [ MyApp, SearchPage, + SettingsPage, ComponentLoader, Passage, Strongs, @@ -26,10 +32,11 @@ import {StrongsModal} from "../components/strongs-modal/strongs-modal.ts"; entryComponents: [ MyApp, SearchPage, + SettingsPage, Passage, Strongs, StrongsModal, ], - providers: [{ provide: ErrorHandler, useClass: IonicErrorHandler }] + providers: [{ provide: ErrorHandler, useClass: IonicErrorHandler }, Storage] }) export class AppModule { } \ No newline at end of file diff --git a/DynamicBibleIonic/src/components/passage/passage.ts b/DynamicBibleIonic/src/components/passage/passage.ts index 4adf79b4..eaba10ea 100644 --- a/DynamicBibleIonic/src/components/passage/passage.ts +++ b/DynamicBibleIonic/src/components/passage/passage.ts @@ -7,7 +7,7 @@ export class Passage { @Output() onStrongs = new EventEmitter(); @Output() - onClose = new EventEmitter(); + onClose = new EventEmitter(); @Input() item: BiblePassageResult; @@ -15,11 +15,14 @@ export class Passage { @Input() dict: string; + @Input() + cardItem: CardItem; + constructor() { } close() { - this.onClose.emit(this.item); + this.onClose.emit(this.cardItem); } openStrongs(strongs: string) { this.onStrongs.emit(this.dict+strongs); diff --git a/DynamicBibleIonic/src/components/strongs-modal/strongs-modal.html b/DynamicBibleIonic/src/components/strongs-modal/strongs-modal.html index d3de8160..03467de9 100644 --- a/DynamicBibleIonic/src/components/strongs-modal/strongs-modal.html +++ b/DynamicBibleIonic/src/components/strongs-modal/strongs-modal.html @@ -4,9 +4,8 @@ Strongs: {{item.prefix}}{{item.sn}} - diff --git a/DynamicBibleIonic/src/components/strongs-modal/strongs-modal.ts b/DynamicBibleIonic/src/components/strongs-modal/strongs-modal.ts index 2928fde3..7c4dad49 100644 --- a/DynamicBibleIonic/src/components/strongs-modal/strongs-modal.ts +++ b/DynamicBibleIonic/src/components/strongs-modal/strongs-modal.ts @@ -1,5 +1,5 @@ import {Component} from "@angular/core"; -import { ModalController, Platform, NavParams, ViewController } from 'ionic-angular'; +import { Platform, NavParams, ViewController } from 'ionic-angular'; @Component({ selector: "strongs-modal", diff --git a/DynamicBibleIonic/src/components/strongs/strongs.ts b/DynamicBibleIonic/src/components/strongs/strongs.ts index f88ff4fa..22f3d5cf 100644 --- a/DynamicBibleIonic/src/components/strongs/strongs.ts +++ b/DynamicBibleIonic/src/components/strongs/strongs.ts @@ -6,15 +6,18 @@ import {EventEmitter, Component, Input, Output} from "@angular/core"; }) export class Strongs { @Output() - onClose = new EventEmitter(); + onClose = new EventEmitter(); @Input() item: StrongsResult; + @Input() + cardItem: CardItem; + constructor() { } close() { - this.onClose.emit(this.item); + this.onClose.emit(this.cardItem); } } \ No newline at end of file diff --git a/DynamicBibleIonic/src/pages/search/search.html b/DynamicBibleIonic/src/pages/search/search.html index 43b02ca3..accf8499 100644 --- a/DynamicBibleIonic/src/pages/search/search.html +++ b/DynamicBibleIonic/src/pages/search/search.html @@ -1,15 +1,15 @@ - - - - + + + Settings + + + + + Show Strongs as Modal + + + \ No newline at end of file diff --git a/DynamicBibleIonic/src/pages/settings/settings.scss b/DynamicBibleIonic/src/pages/settings/settings.scss new file mode 100644 index 00000000..ee78e1c3 --- /dev/null +++ b/DynamicBibleIonic/src/pages/settings/settings.scss @@ -0,0 +1,3 @@ +page-settings { + +} diff --git a/DynamicBibleIonic/src/pages/settings/settings.ts b/DynamicBibleIonic/src/pages/settings/settings.ts new file mode 100644 index 00000000..d1f70da3 --- /dev/null +++ b/DynamicBibleIonic/src/pages/settings/settings.ts @@ -0,0 +1,33 @@ +/// +import { Component } from '@angular/core'; +import { NavController } from 'ionic-angular'; +import { Storage } from '@ionic/storage'; + +@Component({ + selector: 'settings', + templateUrl: 'settings.html' +}) +export class SettingsPage { + user: User = { strongs_modal: true }; + constructor(public navCtrl: NavController, public local: Storage) { + + // Check if there is a profile saved in local storage + this.local.get('profile').then(profile => { + if (profile === null) { + this.save(); + } + else + this.user = JSON.parse(profile); + }).catch(error => { + console.log(error); + }); + } + + save() { + this.local.set('profile', JSON.stringify(this.user)); + } + + ionViewDidLoad() { + console.log('Hello SettingsPage Page'); + } +} \ No newline at end of file diff --git a/DynamicBibleIonic/src/types.ts b/DynamicBibleIonic/src/types.ts index 8ae70b71..8d1c68f7 100644 --- a/DynamicBibleIonic/src/types.ts +++ b/DynamicBibleIonic/src/types.ts @@ -1,4 +1,10 @@ - + +type CardItem = { id: number, data: any, type: any, dict: string} + +type User = { + strongs_modal: boolean +} + type BiblePassage = { ch: number, vss: BibleVerse[]