From b60e2de7cfa74cadba4d7277b6340f2b0afccf23 Mon Sep 17 00:00:00 2001 From: walljm Date: Wed, 28 Dec 2016 16:57:40 -0500 Subject: [PATCH] FEATURE: Added option to insert new card above or below the card you clicked from. * some mods for testing (still not working) --- DynamicBibleIonic/karma.conf.js | 62 +++++++++---------- DynamicBibleIonic/package.json | 26 +++++--- .../src/components/passage/passage.ts | 4 +- .../components/strongs-modal/strongs-modal.ts | 2 +- .../src/components/strongs/strongs.ts | 4 +- .../src/components/words/words.ts | 4 +- .../src/pages/search/search.html | 6 +- DynamicBibleIonic/src/pages/search/search.ts | 44 ++++++++++--- .../src/pages/settings/settings.html | 4 ++ .../src/pages/settings/settings.ts | 16 ++++- DynamicBibleIonic/src/types.ts | 12 +++- 11 files changed, 119 insertions(+), 65 deletions(-) diff --git a/DynamicBibleIonic/karma.conf.js b/DynamicBibleIonic/karma.conf.js index 7914086a..2e67b8af 100644 --- a/DynamicBibleIonic/karma.conf.js +++ b/DynamicBibleIonic/karma.conf.js @@ -2,47 +2,41 @@ module.exports = function (config) { config.set({ basePath: '', - frameworks: ['jasmine', 'karma-typescript'], - + frameworks: ['jasmine', 'angular-cli'], + plugins: [ + require('karma-jasmine'), + require('karma-chrome-launcher'), + require('karma-remap-istanbul'), + require('karma-mocha-reporter'), + require('angular-cli/plugins/karma') + ], files: [ - './src/polyfills.ts', - './src/mocks.ts', - './src/**/*.ts', - './src/**/*.spec.ts' + { pattern: './src/**/*.spec.ts', watched: false } ], - - exclude: [ - ], - preprocessors: { - './src/polyfills.ts': ['karma-typescript'], - './src/mocks.ts': ['karma-typescript'], - './src/**/*.ts': ['karma-typescript'], - './src/**/*.spec.ts': ['karma-typescript'] + './src/**/*.spec.ts': ['angular-cli'] }, - - typescriptPreprocessor: { - options: { - sourceMap: false, - target: 'ES5', - module: 'amd', - noImplicitAny: true, - noResolve: true, - removeComments: true, - concatenateOutput: false - }, - transformPath: function (path) - { - return path.replace(/\.ts$/, '.js'); + mime: { + 'text/x-typescript': ['ts', 'tsx'] + }, + remapIstanbulReporter: { + reports: { + html: 'coverage', + lcovonly: './coverage/coverage.lcov' } }, - reporters: ['progress', 'karma-typescript'], + angularCli: { + config: './angular-cli.json', + environment: 'dev' + }, + reporters: config.angularCli && config.angularCli.codeCoverage + ? ['mocha', 'karma-remap-istanbul'] + : ['mocha'], port: 9876, colors: true, - logLevel: config.LOG_DEBUG, + logLevel: config.LOG_INFO, autoWatch: true, browsers: ['Chrome'], - singleRun: false, - concurrency: Infinity - }) -} \ No newline at end of file + singleRun: false + }); +}; \ No newline at end of file diff --git a/DynamicBibleIonic/package.json b/DynamicBibleIonic/package.json index bf4f7463..edf0a4ab 100644 --- a/DynamicBibleIonic/package.json +++ b/DynamicBibleIonic/package.json @@ -12,7 +12,7 @@ "build": "ionic-app-scripts build", "ionic:build": "ionic-app-scripts build", "ionic:serve": "ionic-app-scripts serve", - "test": "karma start karma.conf.js" + "test": "ng test --code-coverage" }, "dependencies": { "@angular/common": "2.2.1", @@ -25,22 +25,32 @@ "@angular/platform-browser-dynamic": "2.2.1", "@angular/platform-server": "2.2.1", "@ionic/storage": "1.1.7", - "@types/jasmine": "^2.5.38", "ionic-angular": "2.0.0-rc.4", "ionic-native": "2.2.11", "ionicons": "3.0.0", - "jasmine-core": "^2.5.2", - "karma": "^1.3.0", - "karma-chrome-launcher": "^2.0.0", - "karma-jasmine": "^1.1.0", - "karma-typescript": "^2.1.5", "rxjs": "5.0.0-beta.12", "zone.js": "0.6.26" }, "devDependencies": { "@ionic/app-scripts": "0.0.47", "karma": "^1.3.0", - "typescript": "2.0.9" + "typescript": "2.0.9", + "@types/jasmine": "2.5.38", + "@types/node": "6.0.42", + "angular-cli": "1.0.0-beta.24", + "codecov": "1.0.1", + "jasmine-core": "2.5.2", + "jasmine-spec-reporter": "2.7.0", + "karma-chrome-launcher": "2.0.0", + "karma-cli": "1.0.1", + "karma-jasmine": "1.1.0", + "karma-mocha-reporter": "2.2.1", + "karma-remap-istanbul": "0.2.2", + "protractor": "4.0.13", + "protractor-jasmine2-screenshot-reporter": "0.3.2", + "ts-node": "1.7.2", + "tslint": "4.1.1", + "tslint-eslint-rules": "3.2.0" }, "cordovaPlugins": [ "cordova-plugin-whitelist", diff --git a/DynamicBibleIonic/src/components/passage/passage.ts b/DynamicBibleIonic/src/components/passage/passage.ts index 54606fa1..84367b48 100644 --- a/DynamicBibleIonic/src/components/passage/passage.ts +++ b/DynamicBibleIonic/src/components/passage/passage.ts @@ -5,7 +5,7 @@ import { Component, EventEmitter, Output, Input} from "@angular/core"; }) export class Passage { @Output() - onStrongsClicked = new EventEmitter(); + onStrongsClicked = new EventEmitter(); @Output() onClose = new EventEmitter(); @@ -25,7 +25,7 @@ export class Passage { this.onClose.emit(this.cardItem); } openStrongs(strongs: string) { - this.onStrongsClicked.emit(this.dict+strongs); + this.onStrongsClicked.emit({ card: this.cardItem, qry: this.dict + strongs }); } isPunct(c: string) { diff --git a/DynamicBibleIonic/src/components/strongs-modal/strongs-modal.ts b/DynamicBibleIonic/src/components/strongs-modal/strongs-modal.ts index b272f384..8f6a24f4 100644 --- a/DynamicBibleIonic/src/components/strongs-modal/strongs-modal.ts +++ b/DynamicBibleIonic/src/components/strongs-modal/strongs-modal.ts @@ -10,7 +10,7 @@ export class StrongsModal { item: StrongsResult; @Output() - onPassageClicked = new EventEmitter(); + onPassageClicked = new EventEmitter(); constructor( public platform: Platform, diff --git a/DynamicBibleIonic/src/components/strongs/strongs.ts b/DynamicBibleIonic/src/components/strongs/strongs.ts index 6f8a078b..63530223 100644 --- a/DynamicBibleIonic/src/components/strongs/strongs.ts +++ b/DynamicBibleIonic/src/components/strongs/strongs.ts @@ -10,7 +10,7 @@ export class Strongs { onClose = new EventEmitter(); @Output() - onPassageClicked = new EventEmitter(); + onPassageClicked = new EventEmitter(); @Input() item: StrongsResult; @@ -30,6 +30,6 @@ export class Strongs { } openPassage(p: string) { let ref = this.makePassage(p); - this.onPassageClicked.emit(ref); + this.onPassageClicked.emit({ card: this.cardItem, qry: ref }); } } \ No newline at end of file diff --git a/DynamicBibleIonic/src/components/words/words.ts b/DynamicBibleIonic/src/components/words/words.ts index 2117d9e1..d5ce0dbb 100644 --- a/DynamicBibleIonic/src/components/words/words.ts +++ b/DynamicBibleIonic/src/components/words/words.ts @@ -10,7 +10,7 @@ export class Words { onClose = new EventEmitter(); @Output() - onPassageClicked = new EventEmitter(); + onPassageClicked = new EventEmitter(); @Input() item: WordLookupResult; @@ -37,6 +37,6 @@ export class Words { openPassage(p: string) { let ref = this.makePassage(p); - this.onPassageClicked.emit(ref); + this.onPassageClicked.emit({ card: this.cardItem, qry: ref }); } } \ No newline at end of file diff --git a/DynamicBibleIonic/src/pages/search/search.html b/DynamicBibleIonic/src/pages/search/search.html index a1749790..25a408a2 100644 --- a/DynamicBibleIonic/src/pages/search/search.html +++ b/DynamicBibleIonic/src/pages/search/search.html @@ -8,9 +8,9 @@ - - - + + + diff --git a/DynamicBibleIonic/src/pages/settings/settings.ts b/DynamicBibleIonic/src/pages/settings/settings.ts index 9fe4214c..d2588561 100644 --- a/DynamicBibleIonic/src/pages/settings/settings.ts +++ b/DynamicBibleIonic/src/pages/settings/settings.ts @@ -10,7 +10,13 @@ import {UserHelpers} from '../../Helpers'; }) export class SettingsPage { - user: User = { strongs_modal: true, clear_search_after_query: true, items: [], append_to_bottom: false }; + user: User = { + strongs_modal: true, + clear_search_after_query: true, + items: [], + append_to_bottom: false, + insert_next_to_item: false + }; constructor(public navCtrl: NavController, public local: Storage) { @@ -37,7 +43,13 @@ export class SettingsPage reset() { - this.user = { strongs_modal: true, clear_search_after_query: true, items: [], append_to_bottom: false }; + this.user = { + strongs_modal: true, + clear_search_after_query: true, + items: [], + append_to_bottom: false, + insert_next_to_item: false + }; this.save(); } diff --git a/DynamicBibleIonic/src/types.ts b/DynamicBibleIonic/src/types.ts index 070f1cce..40d35583 100644 --- a/DynamicBibleIonic/src/types.ts +++ b/DynamicBibleIonic/src/types.ts @@ -1,4 +1,9 @@ -type WordLookupResult = { +type OpenData = { + card: CardItem, + qry: string +} + +type WordLookupResult = { refs: string[], word: string, status: Status, @@ -10,13 +15,14 @@ type IndexResult = { refs: string[]; word: string; } -type CardItem = { id: number, data: any, type: string, dict: string } +type CardItem = { data: any, type: string, dict: string } type User = { strongs_modal: boolean, clear_search_after_query: boolean, items: CardItem[], - append_to_bottom: boolean + append_to_bottom: boolean, + insert_next_to_item: boolean } type BiblePassage = {