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/angular-cli.json b/angular-cli.json
index b70b5cd..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",
@@ -15,9 +16,14 @@
"prefix": "app",
"mobile": false,
"styles": [
- "styles.css"
+ "styles.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": [
+ "../node_modules/material-design-lite/dist/material.min.js"
],
- "scripts": [],
"environments": {
"source": "environments/environment.ts",
"dev": "environments/environment.ts",
@@ -41,4 +47,4 @@
"styleExt": "css",
"prefixInterfaces": false
}
-}
+}
\ No newline at end of file
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 0ff063d..80623b7 100644
--- a/package.json
+++ b/package.json
@@ -14,27 +14,37 @@
},
"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/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",
- "@types/lodash": "^4.14.36",
- "@types/request": "0.0.30",
- "angularfire2": "^2.0.0-beta.4",
+ "angular2-materialize": "^6.3.0",
+ "angular2-mdl": "^2.5.1",
+ "angularfire2": "^2.0.0-beta.6",
"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",
+ "material-design-lite": "^1.2.1",
+ "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",
"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",
@@ -43,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/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-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 b6931b5..886af40 100644
--- a/src/app/app.component.html
+++ b/src/app/app.component.html
@@ -1,3 +1,29 @@
-
- {{title}}
-
+
\ No newline at end of file
diff --git a/src/app/app.component.ts b/src/app/app.component.ts
index ff63e05..40bb77e 100644
--- a/src/app/app.component.ts
+++ b/src/app/app.component.ts
@@ -1,10 +1,51 @@
+import { AngularFire, FirebaseListObservable } from 'angularfire2';
+import { database, initializeApp } from 'firebase'
+
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
- styleUrls: ['./app.component.css']
+ 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..9f00341 100644
--- a/src/app/app.module.ts
+++ b/src/app/app.module.ts
@@ -1,20 +1,40 @@
+import 'rxjs/add/operator/do';
+
+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 { 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 { AppComponent } from './app.component';
+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';
@NgModule({
declarations: [
- AppComponent
+ AppComponent,
+ HeaderComponent,
+ LessonComponent
],
imports: [
BrowserModule,
FormsModule,
- HttpModule
+ HttpModule,
+ AngularFireModule.initializeApp(firebaseConfig),
+ DataTableModule,
+ SharedModule,
+ ButtonModule,
+ MdlModule,
+ HelloWorldRoutingModule
],
- providers: [],
+ providers: [AngularFire, CoursesService, LessonsService],
bootstrap: [AppComponent]
})
export class AppModule { }
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/course/course.ts b/src/app/course/course.ts
new file mode 100644
index 0000000..316bbe8
--- /dev/null
+++ b/src/app/course/course.ts
@@ -0,0 +1,15 @@
+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 @@
+
+
+
+ Description |
+ Duration |
+
+
+
+
+
+ {{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/service/courses.service.ts b/src/app/service/courses.service.ts
new file mode 100644
index 0000000..9007859
--- /dev/null
+++ b/src/app/service/courses.service.ts
@@ -0,0 +1,8 @@
+import { Injectable } from '@angular/core';
+
+@Injectable()
+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/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..0b2d2e9 100644
--- a/src/index.html
+++ b/src/index.html
@@ -1,21 +1,38 @@
+
- HelloWorld
+ Material-Lite && Firebase
-
+
+
+
+
+
Loading...
+
+
+
+
+
-
+
+