From 616e79e6e987b3f445ef117e3df93f7d08fb2298 Mon Sep 17 00:00:00 2001 From: yiren Date: Fri, 2 Dec 2016 16:02:23 +0800 Subject: [PATCH 1/3] init --- angular-cli.json | 7 +++++-- package.json | 25 +++++++++++++++---------- 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/angular-cli.json b/angular-cli.json index b70b5cd..f04c9ed 100644 --- a/angular-cli.json +++ b/angular-cli.json @@ -15,7 +15,10 @@ "prefix": "app", "mobile": false, "styles": [ - "styles.css" + "styles.css", + "../node_modules/primeng/resources/themes/omega/theme.css", + "../node_modules/font-awesome/css/font-awesome.min.css", + "../node_modules/primeng/resources/primeng.min.css" ], "scripts": [], "environments": { @@ -41,4 +44,4 @@ "styleExt": "css", "prefixInterfaces": false } -} +} \ No newline at end of file diff --git a/package.json b/package.json index 0ff063d..4d6fc69 100644 --- a/package.json +++ b/package.json @@ -14,27 +14,32 @@ }, "private": true, "dependencies": { - "@angular/common": "2.0.1", - "@angular/compiler": "2.0.1", - "@angular/core": "2.0.1", - "@angular/forms": "2.0.1", - "@angular/http": "2.0.1", - "@angular/platform-browser": "2.0.1", - "@angular/platform-browser-dynamic": "2.0.1", - "@angular/router": "3.0.0", + "@angular/common": "^2.0.1", + "@angular/compiler": "^2.0.1", + "@angular/core": "^2.0.1", + "@angular/forms": "^2.0.1", + "@angular/http": "^2.0.1", + "@angular/platform-browser": "^2.0.1", + "@angular/platform-browser-dynamic": "^2.0.1", + "@angular/router": "^3.0.0", "@types/lodash": "^4.14.36", "@types/request": "0.0.30", + "angular2-materialize": "^6.3.0", + "angular2-mdl": "^2.5.1", "angularfire2": "^2.0.0-beta.4", "core-js": "^2.4.0", "firebase-queue": "^1.5.0", + "font-awesome": "^4.7.0", "lodash": "^4.15.0", - "rxjs": "5.0.0-beta.12", + "materialize-css": "^0.97.8", + "primeng": "^1.0.0", + "rxjs": "^5.0.0-beta.12", "ts-helpers": "^1.1.1", "zone.js": "^0.6.21" }, "devDependencies": { "@types/jasmine": "^2.2.30", - "angular-cli": "1.0.0-beta.16", + "angular-cli": "^1.0.0-beta.16", "codelyzer": "~0.0.26", "jasmine-core": "2.4.1", "jasmine-spec-reporter": "2.5.0", From c35386d26ff42844ce952a129428574abaa0af81 Mon Sep 17 00:00:00 2001 From: yiren Date: Mon, 5 Dec 2016 16:08:39 +0800 Subject: [PATCH 2/3] Add PrimeNG/Bootstrap/Material-Lite --- .vscode/settings.json | 3 ++ package.json | 4 ++- populate-db.ts | 4 +-- src/app/app.component.html | 6 ++++ src/app/app.component.ts | 38 +++++++++++++++++++++++++- src/app/app.module.ts | 20 ++++++++++---- src/app/course-service.service.spec.ts | 16 +++++++++++ src/app/course-service.service.ts | 8 ++++++ src/app/courses/course.ts | 7 +++++ src/app/shared/firebaseConfig.ts | 7 +++++ src/environments/firebase.config.ts | 17 ------------ src/index.html | 8 +++++- 12 files changed, 110 insertions(+), 28 deletions(-) create mode 100644 .vscode/settings.json create mode 100644 src/app/course-service.service.spec.ts create mode 100644 src/app/course-service.service.ts create mode 100644 src/app/courses/course.ts create mode 100644 src/app/shared/firebaseConfig.ts delete mode 100644 src/environments/firebase.config.ts diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..ccdda08 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "typescript.check.workspaceVersion": false +} \ No newline at end of file diff --git a/package.json b/package.json index 4d6fc69..91fe6e9 100644 --- a/package.json +++ b/package.json @@ -26,12 +26,14 @@ "@types/request": "0.0.30", "angular2-materialize": "^6.3.0", "angular2-mdl": "^2.5.1", - "angularfire2": "^2.0.0-beta.4", + "angularfire2": "^2.0.0-beta.6", "core-js": "^2.4.0", + "firebase": "^3.6.2", "firebase-queue": "^1.5.0", "font-awesome": "^4.7.0", "lodash": "^4.15.0", "materialize-css": "^0.97.8", + "ng2-bootstrap": "^1.1.16", "primeng": "^1.0.0", "rxjs": "^5.0.0-beta.12", "ts-helpers": "^1.1.1", diff --git a/populate-db.ts b/populate-db.ts index 63376ef..866173c 100644 --- a/populate-db.ts +++ b/populate-db.ts @@ -1,7 +1,7 @@ import {database, initializeApp} from "firebase"; -import {firebaseConfig} from "./src/environments/firebase.config"; -import {dbData} from "./db-data"; +import {dbData} from "./db-data"; +import {firebaseConfig} from "./src/app/shared/firebaseConfig"; console.log("WARNING VERY IMPORTANT - PLEASE READ THIS\n\n\n"); console.log('WARNING Please set your own firebase config on src/environmnents/firebase.config.ts'); diff --git a/src/app/app.component.html b/src/app/app.component.html index b6931b5..b3fbedf 100644 --- a/src/app/app.component.html +++ b/src/app/app.component.html @@ -1,3 +1,9 @@

{{title}}

+ + + + + + \ No newline at end of file diff --git a/src/app/app.component.ts b/src/app/app.component.ts index ff63e05..87ef3a1 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -1,4 +1,8 @@ +import {AngularFire, FirebaseListObservable} from 'angularfire2'; +import { database, initializeApp } from 'firebase' + import { Component } from '@angular/core'; +import { Course } from './courses/course'; @Component({ selector: 'app-root', @@ -6,5 +10,37 @@ import { Component } from '@angular/core'; styleUrls: ['./app.component.css'] }) export class AppComponent { - title = 'app works!'; + + title = 'Intro to PrimeNG & Firebase'; + course$; + + constructor(private af:AngularFire) { + + const courses:FirebaseListObservable=af.database.list('courses'); + + const course=af.database.object('KYCQXzSvTn09jSN-BPS'); + + + + // initializeApp(firebaseConfig); + + // let root=database().ref(); + + // root.on('value', function(snap){ + // console.log(snap.val()); + // }); + } + + onPush(){ + + } + onRemove(){ + + } + onUpdate(){ + + } + on(){ + + } } diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 67ae491..4d7a866 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -1,20 +1,28 @@ +import { AngularFire, AngularFireModule } from 'angularfire2'; +import {ButtonModule, DataTableModule, SharedModule} from 'primeng/primeng'; + +import { AppComponent } from './app.component'; import { BrowserModule } from '@angular/platform-browser'; -import { NgModule } from '@angular/core'; import { FormsModule } from '@angular/forms'; import { HttpModule } from '@angular/http'; - -import { AppComponent } from './app.component'; +import { NgModule } from '@angular/core'; +import {firebaseConfig} from './shared/firebaseConfig'; @NgModule({ declarations: [ - AppComponent + AppComponent, + ], imports: [ BrowserModule, FormsModule, - HttpModule + HttpModule, + AngularFireModule.initializeApp(firebaseConfig), + DataTableModule, + SharedModule, + ButtonModule ], - providers: [], + providers: [AngularFire], bootstrap: [AppComponent] }) export class AppModule { } diff --git a/src/app/course-service.service.spec.ts b/src/app/course-service.service.spec.ts new file mode 100644 index 0000000..bf3c9f6 --- /dev/null +++ b/src/app/course-service.service.spec.ts @@ -0,0 +1,16 @@ +/* tslint:disable:no-unused-variable */ + +import { TestBed, async, inject } from '@angular/core/testing'; +import { CourseServiceService } from './course-service.service'; + +describe('CourseServiceService', () => { + beforeEach(() => { + TestBed.configureTestingModule({ + providers: [CourseServiceService] + }); + }); + + it('should ...', inject([CourseServiceService], (service: CourseServiceService) => { + expect(service).toBeTruthy(); + })); +}); diff --git a/src/app/course-service.service.ts b/src/app/course-service.service.ts new file mode 100644 index 0000000..daa8933 --- /dev/null +++ b/src/app/course-service.service.ts @@ -0,0 +1,8 @@ +import { Injectable } from '@angular/core'; + +@Injectable() +export class CourseServiceService { + + constructor() { } + +} diff --git a/src/app/courses/course.ts b/src/app/courses/course.ts new file mode 100644 index 0000000..d26cbb2 --- /dev/null +++ b/src/app/courses/course.ts @@ -0,0 +1,7 @@ +export interface Course{ + description:string; + longDescription?:string; + url:string; + courseListIcon?:string; + iconUrl?:string; +} \ No newline at end of file diff --git a/src/app/shared/firebaseConfig.ts b/src/app/shared/firebaseConfig.ts new file mode 100644 index 0000000..114643a --- /dev/null +++ b/src/app/shared/firebaseConfig.ts @@ -0,0 +1,7 @@ +export const firebaseConfig={ + apiKey: "AIzaSyBlXXgYPzAXLWTg9390Yc7pvPTAEPokNaE", + authDomain: "angular2tutorial-3e5ed.firebaseapp.com", + databaseURL: "https://angular2tutorial-3e5ed.firebaseio.com", + storageBucket: "angular2tutorial-3e5ed.appspot.com", + messagingSenderId: "1082079754351" +}; \ No newline at end of file diff --git a/src/environments/firebase.config.ts b/src/environments/firebase.config.ts deleted file mode 100644 index 45b6c3a..0000000 --- a/src/environments/firebase.config.ts +++ /dev/null @@ -1,17 +0,0 @@ - -import {AuthMethods, AuthProviders} from "angularfire2"; - -export const firebaseConfig = { - apiKey: "AIzaSyA0BcUcu4V8aHT_gM-32BhRcmqji4z-lts", - authDomain: "final-project-recording.firebaseapp.com", - databaseURL: "https://final-project-recording.firebaseio.com", - storageBucket: "final-project-recording.appspot.com", - messagingSenderId: "290354329688" -}; - - - -export const authConfig = { - provider: AuthProviders.Password, - method: AuthMethods.Password -}; \ No newline at end of file diff --git a/src/index.html b/src/index.html index 8163d10..9aee777 100644 --- a/src/index.html +++ b/src/index.html @@ -9,11 +9,17 @@ + + Loading... From b635354c825e461bd67a76bffa5f27c0237a5dab Mon Sep 17 00:00:00 2001 From: yiren Date: Wed, 25 Jan 2017 11:06:12 +0800 Subject: [PATCH 3/3] initial --- angular-cli.json | 9 ++- batch-server.ts | 5 +- package.json | 28 +++++----- src/app/app-routing.module.ts | 9 ++- src/app/app.component.html | 38 ++++++++++--- src/app/app.component.ts | 37 ++++++------ src/app/app.module.ts | 22 ++++++-- src/app/course-service.service.spec.ts | 16 ------ src/app/course/course.component.css | 0 src/app/course/course.component.html | 3 + src/app/course/course.component.spec.ts | 28 ++++++++++ src/app/course/course.component.ts | 15 +++++ src/app/{courses => course}/course.ts | 10 +++- src/app/eoc25-pro/eoc25-pro.component.css | 0 src/app/eoc25-pro/eoc25-pro.component.html | 3 + src/app/eoc25-pro/eoc25-pro.component.spec.ts | 28 ++++++++++ src/app/eoc25-pro/eoc25-pro.component.ts | 15 +++++ .../my-blogger/my-blogger.component.css | 0 .../my-blogger/my-blogger.component.html | 3 + .../my-blogger/my-blogger.component.spec.ts | 28 ++++++++++ .../my-blogger/my-blogger.component.ts | 15 +++++ .../q-item-list/q-item-list.component.css | 0 .../q-item-list/q-item-list.component.html | 3 + .../q-item-list/q-item-list.component.spec.ts | 28 ++++++++++ .../q-item-list/q-item-list.component.ts | 15 +++++ src/app/eoc25-pro/qItem.ts | 21 +++++++ src/app/header/header.component.css | 0 src/app/header/header.component.html | 20 +++++++ src/app/header/header.component.spec.ts | 28 ++++++++++ src/app/header/header.component.ts | 15 +++++ src/app/lesson/lesson.component.css | 0 src/app/lesson/lesson.component.html | 23 ++++++++ src/app/lesson/lesson.component.spec.ts | 28 ++++++++++ src/app/lesson/lesson.component.ts | 56 +++++++++++++++++++ src/app/lesson/lesson.ts | 15 +++++ src/app/service/courses.service.spec.ts | 16 ++++++ .../courses.service.ts} | 2 +- src/app/service/lessons.service.spec.ts | 16 ++++++ src/app/service/lessons.service.ts | 16 ++++++ src/app/service/q-item.service.spec.ts | 16 ++++++ src/app/service/q-item.service.ts | 8 +++ src/index.html | 19 +++++-- src/tsconfig.json | 3 +- 43 files changed, 586 insertions(+), 74 deletions(-) delete mode 100644 src/app/course-service.service.spec.ts create mode 100644 src/app/course/course.component.css create mode 100644 src/app/course/course.component.html create mode 100644 src/app/course/course.component.spec.ts create mode 100644 src/app/course/course.component.ts rename src/app/{courses => course}/course.ts (60%) create mode 100644 src/app/eoc25-pro/eoc25-pro.component.css create mode 100644 src/app/eoc25-pro/eoc25-pro.component.html create mode 100644 src/app/eoc25-pro/eoc25-pro.component.spec.ts create mode 100644 src/app/eoc25-pro/eoc25-pro.component.ts create mode 100644 src/app/eoc25-pro/my-blogger/my-blogger.component.css create mode 100644 src/app/eoc25-pro/my-blogger/my-blogger.component.html create mode 100644 src/app/eoc25-pro/my-blogger/my-blogger.component.spec.ts create mode 100644 src/app/eoc25-pro/my-blogger/my-blogger.component.ts create mode 100644 src/app/eoc25-pro/q-item-list/q-item-list.component.css create mode 100644 src/app/eoc25-pro/q-item-list/q-item-list.component.html create mode 100644 src/app/eoc25-pro/q-item-list/q-item-list.component.spec.ts create mode 100644 src/app/eoc25-pro/q-item-list/q-item-list.component.ts create mode 100644 src/app/eoc25-pro/qItem.ts create mode 100644 src/app/header/header.component.css create mode 100644 src/app/header/header.component.html create mode 100644 src/app/header/header.component.spec.ts create mode 100644 src/app/header/header.component.ts create mode 100644 src/app/lesson/lesson.component.css create mode 100644 src/app/lesson/lesson.component.html create mode 100644 src/app/lesson/lesson.component.spec.ts create mode 100644 src/app/lesson/lesson.component.ts create mode 100644 src/app/lesson/lesson.ts create mode 100644 src/app/service/courses.service.spec.ts rename src/app/{course-service.service.ts => service/courses.service.ts} (69%) create mode 100644 src/app/service/lessons.service.spec.ts create mode 100644 src/app/service/lessons.service.ts create mode 100644 src/app/service/q-item.service.spec.ts create mode 100644 src/app/service/q-item.service.ts diff --git a/angular-cli.json b/angular-cli.json index f04c9ed..9866dd9 100644 --- a/angular-cli.json +++ b/angular-cli.json @@ -7,7 +7,8 @@ { "root": "src", "outDir": "dist", - "assets": "assets", + "assets": ["assets" + ], "index": "index.html", "main": "main.ts", "test": "test.ts", @@ -16,11 +17,13 @@ "mobile": false, "styles": [ "styles.css", - "../node_modules/primeng/resources/themes/omega/theme.css", + "../node_modules/primeng/resources/themes/cupertino/theme.css", "../node_modules/font-awesome/css/font-awesome.min.css", "../node_modules/primeng/resources/primeng.min.css" ], - "scripts": [], + "scripts": [ + "../node_modules/material-design-lite/dist/material.min.js" + ], "environments": { "source": "environments/environment.ts", "dev": "environments/environment.ts", diff --git a/batch-server.ts b/batch-server.ts index 700835b..7c580cd 100644 --- a/batch-server.ts +++ b/batch-server.ts @@ -1,6 +1,7 @@ +import {auth, database, initializeApp} from 'firebase'; + +import {firebaseConfig} from "./src/app/shared/firebaseConfig"; -import {firebaseConfig} from "./src/environments/firebase.config"; -import {initializeApp, auth,database} from 'firebase'; var Queue = require('firebase-queue'); diff --git a/package.json b/package.json index 91fe6e9..80623b7 100644 --- a/package.json +++ b/package.json @@ -14,24 +14,23 @@ }, "private": true, "dependencies": { - "@angular/common": "^2.0.1", - "@angular/compiler": "^2.0.1", - "@angular/core": "^2.0.1", - "@angular/forms": "^2.0.1", - "@angular/http": "^2.0.1", - "@angular/platform-browser": "^2.0.1", - "@angular/platform-browser-dynamic": "^2.0.1", - "@angular/router": "^3.0.0", - "@types/lodash": "^4.14.36", - "@types/request": "0.0.30", + "@angular/common": "2.2.0", + "@angular/compiler": "2.2.0", + "@angular/compiler-cli": "2.2.0", + "@angular/core": "2.2.0", + "@angular/forms": "2.2.0", + "@angular/http": "2.2.0", + "@angular/platform-browser": "2.2.0", + "@angular/platform-browser-dynamic": "2.2.0", + "@angular/router": "3.0.0", "angular2-materialize": "^6.3.0", "angular2-mdl": "^2.5.1", "angularfire2": "^2.0.0-beta.6", "core-js": "^2.4.0", - "firebase": "^3.6.2", "firebase-queue": "^1.5.0", "font-awesome": "^4.7.0", "lodash": "^4.15.0", + "material-design-lite": "^1.2.1", "materialize-css": "^0.97.8", "ng2-bootstrap": "^1.1.16", "primeng": "^1.0.0", @@ -40,8 +39,12 @@ "zone.js": "^0.6.21" }, "devDependencies": { + "@types/express": "^4.0.34", + "@types/lodash": "^4.14.36", + "@types/request": "0.0.30", "@types/jasmine": "^2.2.30", - "angular-cli": "^1.0.0-beta.16", + "@types/node": "^0.0.2", + "angular-cli": "1.0.0-beta.18", "codelyzer": "~0.0.26", "jasmine-core": "2.4.1", "jasmine-spec-reporter": "2.5.0", @@ -50,7 +53,6 @@ "karma-jasmine": "0.3.8", "karma-remap-istanbul": "^0.2.1", "protractor": "4.0.3", - "ts-node": "1.2.1", "tslint": "3.13.0", "typescript": "^2.0.2" } diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts index f1a4984..86a6097 100644 --- a/src/app/app-routing.module.ts +++ b/src/app/app-routing.module.ts @@ -1,7 +1,12 @@ +import { RouterModule, Routes } from '@angular/router'; + +import { AppComponent } from './app.component'; +import { LessonComponent } from './lesson/lesson.component'; import { NgModule } from '@angular/core'; -import { Routes, RouterModule } from '@angular/router'; -const routes: Routes = []; +const routes: Routes = [ + {path:'', component:LessonComponent} +]; @NgModule({ imports: [RouterModule.forRoot(routes)], diff --git a/src/app/app.component.html b/src/app/app.component.html index b3fbedf..886af40 100644 --- a/src/app/app.component.html +++ b/src/app/app.component.html @@ -1,9 +1,29 @@ -

- {{title}} -

- - - - - - \ No newline at end of file +
+ + + + Angular Courses + + + + + + + Angular Courses + + + + + + + + +
\ No newline at end of file diff --git a/src/app/app.component.ts b/src/app/app.component.ts index 87ef3a1..40bb77e 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -1,26 +1,26 @@ -import {AngularFire, FirebaseListObservable} from 'angularfire2'; +import { AngularFire, FirebaseListObservable } from 'angularfire2'; import { database, initializeApp } from 'firebase' import { Component } from '@angular/core'; -import { Course } from './courses/course'; @Component({ selector: 'app-root', templateUrl: './app.component.html', - styleUrls: ['./app.component.css'] + styleUrls: ['./app.component.css', + ] }) export class AppComponent { - + title = 'Intro to PrimeNG & Firebase'; course$; - constructor(private af:AngularFire) { - - const courses:FirebaseListObservable=af.database.list('courses'); + constructor(private af: AngularFire) { + + const courses: FirebaseListObservable = af.database.list('courses'); + + const course = af.database.object('KYCQXzSvTn09jSN-BPS'); - const course=af.database.object('KYCQXzSvTn09jSN-BPS'); - // initializeApp(firebaseConfig); @@ -30,17 +30,22 @@ export class AppComponent { // console.log(snap.val()); // }); } + + - onPush(){ + + + onPush() { } - onRemove(){ - + onRemove() { + } - onUpdate(){ - + onUpdate() { + } - on(){ - + on() { + } } + diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 4d7a866..9f00341 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -1,17 +1,27 @@ +import 'rxjs/add/operator/do'; + import { AngularFire, AngularFireModule } from 'angularfire2'; -import {ButtonModule, DataTableModule, SharedModule} from 'primeng/primeng'; +import { ButtonModule, DataTableModule, SharedModule } from 'primeng/primeng'; import { AppComponent } from './app.component'; import { BrowserModule } from '@angular/platform-browser'; +import { Course } from "./course/course"; +import { CoursesService } from "./service/courses.service"; import { FormsModule } from '@angular/forms'; +import { HeaderComponent } from './header/header.component'; +import { HelloWorldRoutingModule } from './app-routing.module'; import { HttpModule } from '@angular/http'; +import { LessonComponent } from './lesson/lesson.component'; +import { LessonsService } from './service/lessons.service'; +import { MdlModule } from 'angular2-mdl'; import { NgModule } from '@angular/core'; -import {firebaseConfig} from './shared/firebaseConfig'; +import { firebaseConfig } from './shared/firebaseConfig'; @NgModule({ declarations: [ AppComponent, - + HeaderComponent, + LessonComponent ], imports: [ BrowserModule, @@ -20,9 +30,11 @@ import {firebaseConfig} from './shared/firebaseConfig'; AngularFireModule.initializeApp(firebaseConfig), DataTableModule, SharedModule, - ButtonModule + ButtonModule, + MdlModule, + HelloWorldRoutingModule ], - providers: [AngularFire], + providers: [AngularFire, CoursesService, LessonsService], bootstrap: [AppComponent] }) export class AppModule { } diff --git a/src/app/course-service.service.spec.ts b/src/app/course-service.service.spec.ts deleted file mode 100644 index bf3c9f6..0000000 --- a/src/app/course-service.service.spec.ts +++ /dev/null @@ -1,16 +0,0 @@ -/* tslint:disable:no-unused-variable */ - -import { TestBed, async, inject } from '@angular/core/testing'; -import { CourseServiceService } from './course-service.service'; - -describe('CourseServiceService', () => { - beforeEach(() => { - TestBed.configureTestingModule({ - providers: [CourseServiceService] - }); - }); - - it('should ...', inject([CourseServiceService], (service: CourseServiceService) => { - expect(service).toBeTruthy(); - })); -}); diff --git a/src/app/course/course.component.css b/src/app/course/course.component.css new file mode 100644 index 0000000..e69de29 diff --git a/src/app/course/course.component.html b/src/app/course/course.component.html new file mode 100644 index 0000000..16f10bf --- /dev/null +++ b/src/app/course/course.component.html @@ -0,0 +1,3 @@ +

+ course works! +

diff --git a/src/app/course/course.component.spec.ts b/src/app/course/course.component.spec.ts new file mode 100644 index 0000000..9b7ae3d --- /dev/null +++ b/src/app/course/course.component.spec.ts @@ -0,0 +1,28 @@ +/* tslint:disable:no-unused-variable */ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import { By } from '@angular/platform-browser'; +import { DebugElement } from '@angular/core'; + +import { CourseComponent } from './course.component'; + +describe('CourseComponent', () => { + let component: CourseComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ CourseComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(CourseComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/course/course.component.ts b/src/app/course/course.component.ts new file mode 100644 index 0000000..6075a15 --- /dev/null +++ b/src/app/course/course.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-course', + templateUrl: './course.component.html', + styleUrls: ['./course.component.css'] +}) +export class CourseComponent implements OnInit { + + constructor() { } + + ngOnInit() { + } + +} diff --git a/src/app/courses/course.ts b/src/app/course/course.ts similarity index 60% rename from src/app/courses/course.ts rename to src/app/course/course.ts index d26cbb2..316bbe8 100644 --- a/src/app/courses/course.ts +++ b/src/app/course/course.ts @@ -1,7 +1,15 @@ -export interface Course{ +export class Course{ description:string; longDescription?:string; url:string; courseListIcon?:string; iconUrl?:string; + lessionId:string; + + constructor(){ + + } + + + } \ No newline at end of file diff --git a/src/app/eoc25-pro/eoc25-pro.component.css b/src/app/eoc25-pro/eoc25-pro.component.css new file mode 100644 index 0000000..e69de29 diff --git a/src/app/eoc25-pro/eoc25-pro.component.html b/src/app/eoc25-pro/eoc25-pro.component.html new file mode 100644 index 0000000..109ccb6 --- /dev/null +++ b/src/app/eoc25-pro/eoc25-pro.component.html @@ -0,0 +1,3 @@ +

+ eoc25-pro works! +

diff --git a/src/app/eoc25-pro/eoc25-pro.component.spec.ts b/src/app/eoc25-pro/eoc25-pro.component.spec.ts new file mode 100644 index 0000000..58282c9 --- /dev/null +++ b/src/app/eoc25-pro/eoc25-pro.component.spec.ts @@ -0,0 +1,28 @@ +/* tslint:disable:no-unused-variable */ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import { By } from '@angular/platform-browser'; +import { DebugElement } from '@angular/core'; + +import { EOC25ProComponent } from './eoc25-pro.component'; + +describe('EOC25ProComponent', () => { + let component: EOC25ProComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ EOC25ProComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(EOC25ProComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/eoc25-pro/eoc25-pro.component.ts b/src/app/eoc25-pro/eoc25-pro.component.ts new file mode 100644 index 0000000..3f5e7bc --- /dev/null +++ b/src/app/eoc25-pro/eoc25-pro.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-eoc25-pro', + templateUrl: './eoc25-pro.component.html', + styleUrls: ['./eoc25-pro.component.css'] +}) +export class EOC25ProComponent implements OnInit { + + constructor() { } + + ngOnInit() { + } + +} diff --git a/src/app/eoc25-pro/my-blogger/my-blogger.component.css b/src/app/eoc25-pro/my-blogger/my-blogger.component.css new file mode 100644 index 0000000..e69de29 diff --git a/src/app/eoc25-pro/my-blogger/my-blogger.component.html b/src/app/eoc25-pro/my-blogger/my-blogger.component.html new file mode 100644 index 0000000..09c251c --- /dev/null +++ b/src/app/eoc25-pro/my-blogger/my-blogger.component.html @@ -0,0 +1,3 @@ +

+ my-blogger works! +

diff --git a/src/app/eoc25-pro/my-blogger/my-blogger.component.spec.ts b/src/app/eoc25-pro/my-blogger/my-blogger.component.spec.ts new file mode 100644 index 0000000..61f11d8 --- /dev/null +++ b/src/app/eoc25-pro/my-blogger/my-blogger.component.spec.ts @@ -0,0 +1,28 @@ +/* tslint:disable:no-unused-variable */ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import { By } from '@angular/platform-browser'; +import { DebugElement } from '@angular/core'; + +import { MyBloggerComponent } from './my-blogger.component'; + +describe('MyBloggerComponent', () => { + let component: MyBloggerComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ MyBloggerComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(MyBloggerComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/eoc25-pro/my-blogger/my-blogger.component.ts b/src/app/eoc25-pro/my-blogger/my-blogger.component.ts new file mode 100644 index 0000000..941439a --- /dev/null +++ b/src/app/eoc25-pro/my-blogger/my-blogger.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-my-blogger', + templateUrl: './my-blogger.component.html', + styleUrls: ['./my-blogger.component.css'] +}) +export class MyBloggerComponent implements OnInit { + + constructor() { } + + ngOnInit() { + } + +} diff --git a/src/app/eoc25-pro/q-item-list/q-item-list.component.css b/src/app/eoc25-pro/q-item-list/q-item-list.component.css new file mode 100644 index 0000000..e69de29 diff --git a/src/app/eoc25-pro/q-item-list/q-item-list.component.html b/src/app/eoc25-pro/q-item-list/q-item-list.component.html new file mode 100644 index 0000000..e1ddeb6 --- /dev/null +++ b/src/app/eoc25-pro/q-item-list/q-item-list.component.html @@ -0,0 +1,3 @@ +

+ q-item-list works! +

diff --git a/src/app/eoc25-pro/q-item-list/q-item-list.component.spec.ts b/src/app/eoc25-pro/q-item-list/q-item-list.component.spec.ts new file mode 100644 index 0000000..f83756e --- /dev/null +++ b/src/app/eoc25-pro/q-item-list/q-item-list.component.spec.ts @@ -0,0 +1,28 @@ +/* tslint:disable:no-unused-variable */ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import { By } from '@angular/platform-browser'; +import { DebugElement } from '@angular/core'; + +import { QItemListComponent } from './q-item-list.component'; + +describe('QItemListComponent', () => { + let component: QItemListComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ QItemListComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(QItemListComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/eoc25-pro/q-item-list/q-item-list.component.ts b/src/app/eoc25-pro/q-item-list/q-item-list.component.ts new file mode 100644 index 0000000..5aa2bc4 --- /dev/null +++ b/src/app/eoc25-pro/q-item-list/q-item-list.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-q-item-list', + templateUrl: './q-item-list.component.html', + styleUrls: ['./q-item-list.component.css'] +}) +export class QItemListComponent implements OnInit { + + constructor() { } + + ngOnInit() { + } + +} diff --git a/src/app/eoc25-pro/qItem.ts b/src/app/eoc25-pro/qItem.ts new file mode 100644 index 0000000..ce49df2 --- /dev/null +++ b/src/app/eoc25-pro/qItem.ts @@ -0,0 +1,21 @@ +/** + * Created by joombuopre on 12/6/2016. + */ + +export class qItem { + + constructor( + public pId:string, + public itemNo:string, + public description:string, + public category:string, + + public procedure:string, + public correspondant:string, + public qcVerifier:string, + public note:string, + public div?:number, + ){ + + } +} diff --git a/src/app/header/header.component.css b/src/app/header/header.component.css new file mode 100644 index 0000000..e69de29 diff --git a/src/app/header/header.component.html b/src/app/header/header.component.html new file mode 100644 index 0000000..463a6eb --- /dev/null +++ b/src/app/header/header.component.html @@ -0,0 +1,20 @@ + + + Angular Courses + + + + + + + Angular Courses + + \ No newline at end of file diff --git a/src/app/header/header.component.spec.ts b/src/app/header/header.component.spec.ts new file mode 100644 index 0000000..00b8bf6 --- /dev/null +++ b/src/app/header/header.component.spec.ts @@ -0,0 +1,28 @@ +/* tslint:disable:no-unused-variable */ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import { By } from '@angular/platform-browser'; +import { DebugElement } from '@angular/core'; + +import { HeaderComponent } from './header.component'; + +describe('HeaderComponent', () => { + let component: HeaderComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ HeaderComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(HeaderComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/header/header.component.ts b/src/app/header/header.component.ts new file mode 100644 index 0000000..3ee4d0f --- /dev/null +++ b/src/app/header/header.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-header', + templateUrl: './header.component.html', + styleUrls: ['./header.component.css'] +}) +export class HeaderComponent implements OnInit { + + constructor() { } + + ngOnInit() { + } + +} diff --git a/src/app/lesson/lesson.component.css b/src/app/lesson/lesson.component.css new file mode 100644 index 0000000..e69de29 diff --git a/src/app/lesson/lesson.component.html b/src/app/lesson/lesson.component.html new file mode 100644 index 0000000..f12e3fc --- /dev/null +++ b/src/app/lesson/lesson.component.html @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + +
DescriptionDuration
{{lesson.description}} {{lesson.duration}}
+ + + + + + +{{selected | json}} \ No newline at end of file diff --git a/src/app/lesson/lesson.component.spec.ts b/src/app/lesson/lesson.component.spec.ts new file mode 100644 index 0000000..c4a94e4 --- /dev/null +++ b/src/app/lesson/lesson.component.spec.ts @@ -0,0 +1,28 @@ +/* tslint:disable:no-unused-variable */ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import { By } from '@angular/platform-browser'; +import { DebugElement } from '@angular/core'; + +import { LessonComponent } from './lesson.component'; + +describe('LessonComponent', () => { + let component: LessonComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ LessonComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(LessonComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/lesson/lesson.component.ts b/src/app/lesson/lesson.component.ts new file mode 100644 index 0000000..5340e7b --- /dev/null +++ b/src/app/lesson/lesson.component.ts @@ -0,0 +1,56 @@ +import { Component, OnInit } from '@angular/core'; +import { + IMdlTableModel, + IMdlTableModelItem, + MdlDefaultTableModel, +} from "angular2-mdl"; + +import { Lesson } from './lesson'; +import { LessonsService } from './../service/lessons.service'; + +@Component({ + selector: 'mdl-lesson', + templateUrl: './lesson.component.html', + styleUrls: ['./lesson.component.css'] +}) +export class LessonComponent implements OnInit { + + lessons:Lesson[]; + + constructor(private lessonService:LessonsService) { } + + + tableData: [ILessonTableItem] = [ + { description: 'Hello', duration: '02:59', selected: true }, + { description: 'World', duration: '04:59', selected: false }, + ] + + selected: Array = new Array(); + + public tableModel = new MdlDefaultTableModel([ + { key: 'description', name: 'Description', sortable: true }, + { key: 'duration', name: 'Duration' }, + + ]); + + ngOnInit() { + + this.lessonService.findAllLessons() + .do(console.log) + .subscribe( + lessons=>this.lessons=lessons + ); + console.log(this.tableData); + this.tableModel.addAll(this.tableData); + this.selected = this.tableData.filter(data => data.selected); + } + + selectionChanged($event) { + this.selected = $event.value; + } + +} +interface ILessonTableItem extends IMdlTableModelItem { + description: string; + duration: string; +} \ No newline at end of file diff --git a/src/app/lesson/lesson.ts b/src/app/lesson/lesson.ts new file mode 100644 index 0000000..782a8e8 --- /dev/null +++ b/src/app/lesson/lesson.ts @@ -0,0 +1,15 @@ +import { IMdlTableModelItem } from 'angular2-mdl'; + +export class Lesson implements IMdlTableModelItem { + constructor( + public $key:string, + public description:string, + public duration:string, + public url:string, + public tag:string, + public pro:string, + public longDescription:string, + public courseId:string, + public selected:boolean + ){} +} \ No newline at end of file diff --git a/src/app/service/courses.service.spec.ts b/src/app/service/courses.service.spec.ts new file mode 100644 index 0000000..195436c --- /dev/null +++ b/src/app/service/courses.service.spec.ts @@ -0,0 +1,16 @@ +/* tslint:disable:no-unused-variable */ + +import { TestBed, async, inject } from '@angular/core/testing'; +import { CoursesService } from './courses.service'; + +describe('CoursesService', () => { + beforeEach(() => { + TestBed.configureTestingModule({ + providers: [CoursesService] + }); + }); + + it('should ...', inject([CoursesService], (service: CoursesService) => { + expect(service).toBeTruthy(); + })); +}); diff --git a/src/app/course-service.service.ts b/src/app/service/courses.service.ts similarity index 69% rename from src/app/course-service.service.ts rename to src/app/service/courses.service.ts index daa8933..9007859 100644 --- a/src/app/course-service.service.ts +++ b/src/app/service/courses.service.ts @@ -1,7 +1,7 @@ import { Injectable } from '@angular/core'; @Injectable() -export class CourseServiceService { +export class CoursesService { constructor() { } diff --git a/src/app/service/lessons.service.spec.ts b/src/app/service/lessons.service.spec.ts new file mode 100644 index 0000000..b681cfa --- /dev/null +++ b/src/app/service/lessons.service.spec.ts @@ -0,0 +1,16 @@ +/* tslint:disable:no-unused-variable */ + +import { TestBed, async, inject } from '@angular/core/testing'; +import { LessonsService } from './lessons.service'; + +describe('Service: Lessons', () => { + beforeEach(() => { + TestBed.configureTestingModule({ + providers: [LessonsService] + }); + }); + + it('should ...', inject([LessonsService], (service: LessonsService) => { + expect(service).toBeTruthy(); + })); +}); diff --git a/src/app/service/lessons.service.ts b/src/app/service/lessons.service.ts new file mode 100644 index 0000000..dff02e5 --- /dev/null +++ b/src/app/service/lessons.service.ts @@ -0,0 +1,16 @@ +import { AngularFire } from 'angularfire2'; +import { Injectable } from '@angular/core'; +import { Lesson } from './../lesson/lesson'; +import{Observable} from 'rxjs/Rx'; + +@Injectable() +export class LessonsService { + + constructor(private af:AngularFire) { } + + findAllLessons():Observable{ + return this.af.database.list('lessons') + ; + } + +} diff --git a/src/app/service/q-item.service.spec.ts b/src/app/service/q-item.service.spec.ts new file mode 100644 index 0000000..ef8a305 --- /dev/null +++ b/src/app/service/q-item.service.spec.ts @@ -0,0 +1,16 @@ +/* tslint:disable:no-unused-variable */ + +import { TestBed, async, inject } from '@angular/core/testing'; +import { QItemService } from './q-item.service'; + +describe('QItemService', () => { + beforeEach(() => { + TestBed.configureTestingModule({ + providers: [QItemService] + }); + }); + + it('should ...', inject([QItemService], (service: QItemService) => { + expect(service).toBeTruthy(); + })); +}); diff --git a/src/app/service/q-item.service.ts b/src/app/service/q-item.service.ts new file mode 100644 index 0000000..05454b8 --- /dev/null +++ b/src/app/service/q-item.service.ts @@ -0,0 +1,8 @@ +import { Injectable } from '@angular/core'; + +@Injectable() +export class QItemService { + + constructor() { } + +} diff --git a/src/index.html b/src/index.html index 9aee777..0b2d2e9 100644 --- a/src/index.html +++ b/src/index.html @@ -1,16 +1,20 @@ + - HelloWorld + Material-Lite && Firebase - + + + + + Loading... + + + + + - + + \ No newline at end of file diff --git a/src/tsconfig.json b/src/tsconfig.json index 00a0ad2..98c9058 100644 --- a/src/tsconfig.json +++ b/src/tsconfig.json @@ -14,8 +14,7 @@ "../node_modules/@types" ], "types": [ - "node", - "firebase" + "node" ] } }