| @@ -1,10 +1,11 @@ | |||
| import { Component } from '@angular/core'; | |||
| @Component({ | |||
| selector: 'app-root', | |||
| templateUrl: './app.component.html', | |||
| styleUrls: ['./app.component.scss'] | |||
| }) | |||
| export class AppComponent { | |||
| title = 'lms-app-new'; | |||
| } | |||
| @@ -34,6 +34,9 @@ import { ChatWindowComponent } from './chat-page/chat-window/chat-window.compone | |||
| import { SettingsComponent } from './settings/settings.component'; | |||
| import { ClassCardListComponent } from './reusable-components/class-card-list/class-card-list.component'; | |||
| // Import services | |||
| import { DemoService } from './services/demo.service'; | |||
| @NgModule({ | |||
| declarations: [ | |||
| AppComponent, | |||
| @@ -69,7 +72,9 @@ import { ClassCardListComponent } from './reusable-components/class-card-list/cl | |||
| AngularSvgIconModule.forRoot(), | |||
| ServiceWorkerModule.register('ngsw-worker.js', { enabled: environment.production }) | |||
| ], | |||
| providers: [], | |||
| providers: [ | |||
| DemoService | |||
| ], | |||
| bootstrap: [AppComponent] | |||
| }) | |||
| export class AppModule { } | |||
| @@ -8,10 +8,13 @@ | |||
| </div> | |||
| <div class="subject"> | |||
| <label> {{ class.subject }} </label> | |||
| <p> | |||
| <p *ngIf="class.teacher.name !== 'You'"> | |||
| <img [src]="class.teacher.profile_image"> | |||
| <span> {{ class.teacher.name }} </span> | |||
| </p> | |||
| <p *ngIf="class.classLevel"> | |||
| {{ class.classLevel }} | |||
| </p> | |||
| </div> | |||
| <span *ngIf="class.classUrl"> | |||
| <button class="view-button" | |||
| @@ -0,0 +1,16 @@ | |||
| import { TestBed } from '@angular/core/testing'; | |||
| import { DemoService } from './demo.service'; | |||
| describe('DemoService', () => { | |||
| let service: DemoService; | |||
| beforeEach(() => { | |||
| TestBed.configureTestingModule({}); | |||
| service = TestBed.inject(DemoService); | |||
| }); | |||
| it('should be created', () => { | |||
| expect(service).toBeTruthy(); | |||
| }); | |||
| }); | |||
| @@ -0,0 +1,177 @@ | |||
| import { Injectable } from '@angular/core'; | |||
| import { Observable, Observer } from 'rxjs'; | |||
| import * as moment from 'moment'; | |||
| @Injectable({ | |||
| providedIn: 'root' | |||
| }) | |||
| export class DemoService { | |||
| demoType: Observable<string>; | |||
| demoTypeObserver: Observer<string>; | |||
| studentClassList = [{ | |||
| date: moment(new Date()).format('MMM, DD 2020'), | |||
| classes: [{ | |||
| time: '10:00 AM', | |||
| duration: '45 Mins', | |||
| subject: 'Mathematics', | |||
| teacher: { | |||
| name: 'Mr Kashinath Kashyap', | |||
| profile_image: 'https://pbs.twimg.com/profile_images/3478244961/01ebfc40ecc194a2abc81e82ab877af4.jpeg' | |||
| }, | |||
| classUrl: '/video-chapter', | |||
| classId: 'topic1', | |||
| attendanceStatus: 'LATE' | |||
| }, { | |||
| time: '11:00 AM', | |||
| duration: '45 Mins', | |||
| subject: 'Physics', | |||
| teacher: { | |||
| name: 'Dr Meghana', | |||
| profile_image: 'https://pbs.twimg.com/profile_images/416884752377843712/MW2qg7-f.jpeg' | |||
| }, | |||
| classUrl: '/chapter-notes', | |||
| classId: 'topic1', | |||
| attendanceStatus: 'ABSENT' | |||
| }, { | |||
| time: '12:00 PM', | |||
| duration: '45 Mins', | |||
| subject: 'Chemistry', | |||
| teacher: { | |||
| name: 'Mr Kashinath Kashyap', | |||
| profile_image: 'https://pbs.twimg.com/profile_images/3478244961/01ebfc40ecc194a2abc81e82ab877af4.jpeg' | |||
| }, | |||
| classUrl: '/chapter-notes', | |||
| classId: 'topic1', | |||
| attendanceStatus: 'PRESENT' | |||
| }, { | |||
| time: '2:00 PM', | |||
| duration: '45 Mins', | |||
| subject: 'EVS', | |||
| teacher: { | |||
| name: 'Mr Kashinath Kashyap', | |||
| profile_image: 'https://pbs.twimg.com/profile_images/3478244961/01ebfc40ecc194a2abc81e82ab877af4.jpeg' | |||
| } | |||
| }, { | |||
| time: '3:00 PM', | |||
| duration: '45 Mins', | |||
| subject: 'Biology', | |||
| teacher: { | |||
| name: 'Dr Meghana', | |||
| profile_image: 'https://pbs.twimg.com/profile_images/416884752377843712/MW2qg7-f.jpeg' | |||
| } | |||
| }] | |||
| }, { | |||
| date: moment(new Date()).subtract(1, 'day').format('MMM, DD 2020'), | |||
| classes: [{ | |||
| time: '10:00 AM', | |||
| duration: '45 Mins', | |||
| subject: 'Mathematics', | |||
| teacher: { | |||
| name: 'Mr Kashinath Kashyap', | |||
| profile_image: 'https://pbs.twimg.com/profile_images/3478244961/01ebfc40ecc194a2abc81e82ab877af4.jpeg' | |||
| } | |||
| }, { | |||
| time: '11:00 AM', | |||
| duration: '45 Mins', | |||
| subject: 'Physics', | |||
| teacher: { | |||
| name: 'Dr Meghana', | |||
| profile_image: 'https://pbs.twimg.com/profile_images/416884752377843712/MW2qg7-f.jpeg' | |||
| } | |||
| }, { | |||
| time: '12:00 PM', | |||
| duration: '45 Mins', | |||
| subject: 'Chemistry', | |||
| teacher: { | |||
| name: 'Mr Kashinath Kashyap', | |||
| profile_image: 'https://pbs.twimg.com/profile_images/3478244961/01ebfc40ecc194a2abc81e82ab877af4.jpeg' | |||
| } | |||
| }, { | |||
| time: '2:00 PM', | |||
| duration: '45 Mins', | |||
| subject: 'EVS', | |||
| teacher: { | |||
| name: 'Mr Kashinath Kashyap', | |||
| profile_image: 'https://pbs.twimg.com/profile_images/3478244961/01ebfc40ecc194a2abc81e82ab877af4.jpeg' | |||
| } | |||
| }, { | |||
| time: '3:00 PM', | |||
| duration: '45 Mins', | |||
| subject: 'Biology', | |||
| teacher: { | |||
| name: 'Dr Meghana', | |||
| profile_image: 'https://pbs.twimg.com/profile_images/416884752377843712/MW2qg7-f.jpeg' | |||
| } | |||
| }] | |||
| }]; | |||
| teacherClassList = [{ | |||
| date: moment(new Date()).format('MMM, DD 2020'), | |||
| classes: [{ | |||
| time: '10:00 AM', | |||
| duration: '45 Mins', | |||
| subject: 'Mathematics', | |||
| classLevel: 'Class 10', | |||
| teacher: { | |||
| name: 'You', | |||
| profile_image: 'https://pbs.twimg.com/profile_images/3478244961/01ebfc40ecc194a2abc81e82ab877af4.jpeg' | |||
| } | |||
| }, { | |||
| time: '11:00 AM', | |||
| duration: '45 Mins', | |||
| subject: 'EVS', | |||
| classLevel: 'Class 3', | |||
| teacher: { | |||
| name: 'You', | |||
| profile_image: 'https://pbs.twimg.com/profile_images/3478244961/01ebfc40ecc194a2abc81e82ab877af4.jpeg' | |||
| } | |||
| }, { | |||
| time: '2:00 PM', | |||
| duration: '45 Mins', | |||
| subject: 'Mathematics', | |||
| classLevel: 'Class 7', | |||
| teacher: { | |||
| name: 'You', | |||
| profile_image: 'https://pbs.twimg.com/profile_images/3478244961/01ebfc40ecc194a2abc81e82ab877af4.jpeg' | |||
| } | |||
| }] | |||
| }, { | |||
| date: moment(new Date()).subtract(1, 'day').format('MMM, DD 2020'), | |||
| classes: [{ | |||
| time: '10:00 AM', | |||
| duration: '45 Mins', | |||
| subject: 'EVS', | |||
| classLevel: 'Class 4', | |||
| teacher: { | |||
| name: 'You', | |||
| profile_image: 'https://pbs.twimg.com/profile_images/3478244961/01ebfc40ecc194a2abc81e82ab877af4.jpeg' | |||
| } | |||
| }, { | |||
| time: '11:00 AM', | |||
| duration: '45 Mins', | |||
| subject: 'Mathematics', | |||
| classLevel: 'Class 10', | |||
| teacher: { | |||
| name: 'You', | |||
| profile_image: 'https://pbs.twimg.com/profile_images/3478244961/01ebfc40ecc194a2abc81e82ab877af4.jpeg' | |||
| } | |||
| }, { | |||
| time: '12:00 PM', | |||
| duration: '45 Mins', | |||
| subject: 'Mathematics', | |||
| classLevel: 'Class 6', | |||
| teacher: { | |||
| name: 'You', | |||
| profile_image: 'https://pbs.twimg.com/profile_images/3478244961/01ebfc40ecc194a2abc81e82ab877af4.jpeg' | |||
| } | |||
| }] | |||
| }]; | |||
| constructor() { | |||
| this.demoType = Observable.create((observer: Observer<string>) => { | |||
| this.demoTypeObserver = observer; | |||
| this.demoTypeObserver.next('Teacher'); | |||
| }); | |||
| } | |||
| } | |||
| @@ -5,12 +5,12 @@ | |||
| </header> | |||
| <section class="video-section" [ngClass]="{'expand' : expandVideo }"> | |||
| <!-- <iframe src="https://player.vimeo.com/video/393975453?title=0&portrait=0&byline=0&autoplay=1" frameborder="0"></iframe> --> | |||
| <iframe *ngIf="showVideo" src="https://player.vimeo.com/video/393975453?title=0&portrait=0&byline=0&autoplay=1" frameborder="0"></iframe> | |||
| <div class="topic-name"> | |||
| <h2> English Class </h2> | |||
| <p> Starts in </p> | |||
| <div class="counter"> 00:00:59 </div> | |||
| <div class="topic-name" *ngIf="classList.length > 0"> | |||
| <h2> {{ classList[0].classes[0].subject }} </h2> | |||
| <p> Starts at </p> | |||
| <div class="counter"> {{ classList[0].classes[0].time }} </div> | |||
| </div> | |||
| <span class="tutor"> | |||
| @@ -20,8 +20,9 @@ | |||
| </p> | |||
| <div class="profile-holder"> | |||
| <img src="https://pbs.twimg.com/profile_images/3478244961/01ebfc40ecc194a2abc81e82ab877af4.jpeg"> | |||
| <span> Dwayne the Rock </span> | |||
| <span> {{ classList[0].classes[0].teacher.name }} </span> | |||
| </div> | |||
| <button (click)="showVideo = true" *ngIf="demoType === 'Teacher'" class="go-live-button"> Go Live </button> | |||
| </span> | |||
| </section> | |||
| @@ -100,7 +101,7 @@ | |||
| </section> | |||
| <div class="card-list-holder"> | |||
| <div class="card-list" *ngFor="let class of studentClassList"> | |||
| <div class="card-list" *ngFor="let class of classList"> | |||
| <header> | |||
| <h5> {{ class.date }} </h5> | |||
| </header> | |||
| @@ -102,6 +102,19 @@ | |||
| .tutor { | |||
| color: white; | |||
| width: 100%; | |||
| .go-live-button { | |||
| width: 100px; | |||
| display: block; | |||
| margin: 15px auto 0px; | |||
| background-color: var(--teal-green); | |||
| border-radius: 5px; | |||
| border: 0px; | |||
| color: white; | |||
| font-size: 14px; | |||
| height: 35px; | |||
| } | |||
| @media screen and (min-width: 1023px) { | |||
| position: relative; | |||
| @@ -1,6 +1,7 @@ | |||
| import { Component, OnInit } from '@angular/core'; | |||
| import { ScrollEvent } from 'ngx-scroll-event'; | |||
| import * as moment from 'moment'; | |||
| import { DemoService } from '../../services/demo.service'; | |||
| import { Subscription } from 'rxjs'; | |||
| @Component({ | |||
| selector: 'app-home', | |||
| @@ -11,105 +12,15 @@ export class HomeComponent implements OnInit { | |||
| expandVideo: boolean = false; | |||
| showClassDetails: boolean; | |||
| selectedSegment: string = 'transcript'; | |||
| showVideo: boolean = false; | |||
| demoTypeSubscriber: Subscription; | |||
| demoType: string; | |||
| studentClassList = [{ | |||
| date: moment(new Date()).format('MMM, DD 2020'), | |||
| classes: [{ | |||
| time: '10:00 AM', | |||
| duration: '45 Mins', | |||
| subject: 'Mathematics', | |||
| teacher: { | |||
| name: 'Mr Kashinath Kashyap', | |||
| profile_image: 'https://pbs.twimg.com/profile_images/3478244961/01ebfc40ecc194a2abc81e82ab877af4.jpeg' | |||
| }, | |||
| classUrl: '/video-chapter', | |||
| classId: 'topic1', | |||
| attendanceStatus: 'LATE' | |||
| }, { | |||
| time: '11:00 AM', | |||
| duration: '45 Mins', | |||
| subject: 'Physics', | |||
| teacher: { | |||
| name: 'Dr Meghana', | |||
| profile_image: 'https://pbs.twimg.com/profile_images/416884752377843712/MW2qg7-f.jpeg' | |||
| }, | |||
| classUrl: '/chapter-notes', | |||
| classId: 'topic1', | |||
| attendanceStatus: 'ABSENT' | |||
| }, { | |||
| time: '12:00 PM', | |||
| duration: '45 Mins', | |||
| subject: 'Chemistry', | |||
| teacher: { | |||
| name: 'Mr Kashinath Kashyap', | |||
| profile_image: 'https://pbs.twimg.com/profile_images/3478244961/01ebfc40ecc194a2abc81e82ab877af4.jpeg' | |||
| }, | |||
| classUrl: '/chapter-notes', | |||
| classId: 'topic1', | |||
| attendanceStatus: 'PRESENT' | |||
| }, { | |||
| time: '2:00 PM', | |||
| duration: '45 Mins', | |||
| subject: 'EVS', | |||
| teacher: { | |||
| name: 'Mr Kashinath Kashyap', | |||
| profile_image: 'https://pbs.twimg.com/profile_images/3478244961/01ebfc40ecc194a2abc81e82ab877af4.jpeg' | |||
| } | |||
| }, { | |||
| time: '3:00 PM', | |||
| duration: '45 Mins', | |||
| subject: 'Biology', | |||
| teacher: { | |||
| name: 'Dr Meghana', | |||
| profile_image: 'https://pbs.twimg.com/profile_images/416884752377843712/MW2qg7-f.jpeg' | |||
| } | |||
| }] | |||
| }, { | |||
| date: moment(new Date()).subtract(1, 'day').format('MMM, DD 2020'), | |||
| classes: [{ | |||
| time: '10:00 AM', | |||
| duration: '45 Mins', | |||
| subject: 'Mathematics', | |||
| teacher: { | |||
| name: 'Mr Kashinath Kashyap', | |||
| profile_image: 'https://pbs.twimg.com/profile_images/3478244961/01ebfc40ecc194a2abc81e82ab877af4.jpeg' | |||
| } | |||
| }, { | |||
| time: '11:00 AM', | |||
| duration: '45 Mins', | |||
| subject: 'Physics', | |||
| teacher: { | |||
| name: 'Dr Meghana', | |||
| profile_image: 'https://pbs.twimg.com/profile_images/416884752377843712/MW2qg7-f.jpeg' | |||
| } | |||
| }, { | |||
| time: '12:00 PM', | |||
| duration: '45 Mins', | |||
| subject: 'Chemistry', | |||
| teacher: { | |||
| name: 'Mr Kashinath Kashyap', | |||
| profile_image: 'https://pbs.twimg.com/profile_images/3478244961/01ebfc40ecc194a2abc81e82ab877af4.jpeg' | |||
| } | |||
| }, { | |||
| time: '2:00 PM', | |||
| duration: '45 Mins', | |||
| subject: 'EVS', | |||
| teacher: { | |||
| name: 'Mr Kashinath Kashyap', | |||
| profile_image: 'https://pbs.twimg.com/profile_images/3478244961/01ebfc40ecc194a2abc81e82ab877af4.jpeg' | |||
| } | |||
| }, { | |||
| time: '3:00 PM', | |||
| duration: '45 Mins', | |||
| subject: 'Biology', | |||
| teacher: { | |||
| name: 'Dr Meghana', | |||
| profile_image: 'https://pbs.twimg.com/profile_images/416884752377843712/MW2qg7-f.jpeg' | |||
| } | |||
| }] | |||
| }]; | |||
| classList = []; | |||
| constructor() { } | |||
| constructor( | |||
| private demoService: DemoService | |||
| ) { } | |||
| ngOnInit(): void { | |||
| if (window.innerWidth > 1023) { | |||
| @@ -117,6 +28,18 @@ export class HomeComponent implements OnInit { | |||
| } else { | |||
| this.showClassDetails = false; | |||
| } | |||
| this.demoTypeSubscriber = this.demoService.demoType.subscribe((type) => { | |||
| this.demoType = type; | |||
| if (type === 'Student') { | |||
| this.classList = this.demoService.studentClassList; | |||
| this.showVideo = true; | |||
| } | |||
| if (type === 'Teacher') { | |||
| this.classList = this.demoService.teacherClassList; | |||
| } | |||
| }); | |||
| } | |||
| public handleScroll(event: ScrollEvent) { | |||
| @@ -2,7 +2,7 @@ | |||
| <section class="upfold"> | |||
| <h1> | |||
| Good Morning, <br> | |||
| Shashank | |||
| {{ demoType }} | |||
| </h1> | |||
| <p> | |||
| Your schedule for the day! | |||
| @@ -10,7 +10,7 @@ | |||
| </section> | |||
| <div class="card-list-holder"> | |||
| <div class="card-list" *ngFor="let class of studentClassList"> | |||
| <div class="card-list" *ngFor="let class of classList"> | |||
| <header> | |||
| <h5> {{ class.date }} </h5> | |||
| </header> | |||
| @@ -1,3 +1,7 @@ | |||
| .page-container { | |||
| padding-bottom: 100px; | |||
| } | |||
| .upfold { | |||
| width: 100%; | |||
| color: white; | |||
| @@ -1,5 +1,6 @@ | |||
| import { Component, OnInit } from '@angular/core'; | |||
| import * as moment from 'moment'; | |||
| import { DemoService } from '../services/demo.service'; | |||
| import { Subscription } from 'rxjs'; | |||
| @Component({ | |||
| selector: 'app-welcome', | |||
| @@ -7,97 +8,30 @@ import * as moment from 'moment'; | |||
| styleUrls: ['./welcome.component.scss'] | |||
| }) | |||
| export class WelcomeComponent implements OnInit { | |||
| studentClassList = [{ | |||
| date: moment(new Date()).format('MMM, DD 2020'), | |||
| classes: [{ | |||
| time: '10:00 AM', | |||
| duration: '45 Mins', | |||
| subject: 'Mathematics', | |||
| teacher: { | |||
| name: 'Mr Kashinath Kashyap', | |||
| profile_image: 'https://pbs.twimg.com/profile_images/3478244961/01ebfc40ecc194a2abc81e82ab877af4.jpeg' | |||
| } | |||
| }, { | |||
| time: '11:00 AM', | |||
| duration: '45 Mins', | |||
| subject: 'Physics', | |||
| teacher: { | |||
| name: 'Dr Meghana', | |||
| profile_image: 'https://pbs.twimg.com/profile_images/416884752377843712/MW2qg7-f.jpeg' | |||
| } | |||
| }, { | |||
| time: '12:00 PM', | |||
| duration: '45 Mins', | |||
| subject: 'Chemistry', | |||
| teacher: { | |||
| name: 'Mr Kashinath Kashyap', | |||
| profile_image: 'https://pbs.twimg.com/profile_images/3478244961/01ebfc40ecc194a2abc81e82ab877af4.jpeg' | |||
| } | |||
| }, { | |||
| time: '2:00 PM', | |||
| duration: '45 Mins', | |||
| subject: 'EVS', | |||
| teacher: { | |||
| name: 'Mr Kashinath Kashyap', | |||
| profile_image: 'https://pbs.twimg.com/profile_images/3478244961/01ebfc40ecc194a2abc81e82ab877af4.jpeg' | |||
| } | |||
| }, { | |||
| time: '3:00 PM', | |||
| duration: '45 Mins', | |||
| subject: 'Biology', | |||
| teacher: { | |||
| name: 'Dr Meghana', | |||
| profile_image: 'https://pbs.twimg.com/profile_images/416884752377843712/MW2qg7-f.jpeg' | |||
| } | |||
| }] | |||
| }, { | |||
| date: moment(new Date()).subtract(1, 'day').format('MMM, DD 2020'), | |||
| classes: [{ | |||
| time: '10:00 AM', | |||
| duration: '45 Mins', | |||
| subject: 'Mathematics', | |||
| teacher: { | |||
| name: 'Mr Kashinath Kashyap', | |||
| profile_image: 'https://pbs.twimg.com/profile_images/3478244961/01ebfc40ecc194a2abc81e82ab877af4.jpeg' | |||
| } | |||
| }, { | |||
| time: '11:00 AM', | |||
| duration: '45 Mins', | |||
| subject: 'Physics', | |||
| teacher: { | |||
| name: 'Dr Meghana', | |||
| profile_image: 'https://pbs.twimg.com/profile_images/416884752377843712/MW2qg7-f.jpeg' | |||
| } | |||
| }, { | |||
| time: '12:00 PM', | |||
| duration: '45 Mins', | |||
| subject: 'Chemistry', | |||
| teacher: { | |||
| name: 'Mr Kashinath Kashyap', | |||
| profile_image: 'https://pbs.twimg.com/profile_images/3478244961/01ebfc40ecc194a2abc81e82ab877af4.jpeg' | |||
| } | |||
| }, { | |||
| time: '2:00 PM', | |||
| duration: '45 Mins', | |||
| subject: 'EVS', | |||
| teacher: { | |||
| name: 'Mr Kashinath Kashyap', | |||
| profile_image: 'https://pbs.twimg.com/profile_images/3478244961/01ebfc40ecc194a2abc81e82ab877af4.jpeg' | |||
| } | |||
| }, { | |||
| time: '3:00 PM', | |||
| duration: '45 Mins', | |||
| subject: 'Biology', | |||
| teacher: { | |||
| name: 'Dr Meghana', | |||
| profile_image: 'https://pbs.twimg.com/profile_images/416884752377843712/MW2qg7-f.jpeg' | |||
| } | |||
| }] | |||
| }]; | |||
| demoTypeSubscriber: Subscription; | |||
| demoType: string; | |||
| constructor() { } | |||
| classList = []; | |||
| constructor( | |||
| private demoService: DemoService | |||
| ) { } | |||
| ngOnInit(): void { | |||
| this.demoTypeSubscriber = this.demoService.demoType.subscribe((type) => { | |||
| this.demoType = type; | |||
| if (type === 'Student') { | |||
| this.classList = this.demoService.studentClassList; | |||
| } | |||
| if (type === 'Teacher') { | |||
| this.classList = this.demoService.teacherClassList; | |||
| } | |||
| }); | |||
| } | |||
| ngOnDestroy() { | |||
| this.demoTypeSubscriber.unsubscribe(); | |||
| } | |||
| } | |||