ソースを参照

Chapter notes details UI

master
kj1352 5年前
コミット
391b1e3600
6個のファイルの変更189行の追加20行の削除
  1. +2
    -0
      src/app/app-routing.module.ts
  2. +35
    -1
      src/app/tabs/courses/chapter-notes/chapter-notes.component.html
  3. +121
    -0
      src/app/tabs/courses/chapter-notes/chapter-notes.component.scss
  4. +26
    -6
      src/app/tabs/courses/chapter-notes/chapter-notes.component.ts
  5. +4
    -4
      src/app/tabs/courses/details/details.component.html
  6. +1
    -9
      src/app/tabs/courses/video-chapter/video-notes/video-notes.component.html

+ 2
- 0
src/app/app-routing.module.ts ファイルの表示

@@ -8,6 +8,7 @@ import { VideoNotesComponent } from './tabs/courses/video-chapter/video-notes/vi
import { CalendarComponent } from './calendar/calendar.component';
import { AttendanceComponent } from './tabs/more/attendance/attendance.component';
import { ForumPageComponent } from './tabs/more/forum-page/forum-page.component';
import { ChapterNotesComponent } from './tabs/courses/chapter-notes/chapter-notes.component';

const routes: Routes = [
{ path: '', pathMatch: 'full', redirectTo: 'welcome' },
@@ -16,6 +17,7 @@ const routes: Routes = [
{ component: TabsComponent, path: 'tabs/:subpage' },
{ component: DetailsComponent, path: 'course-details' },
{ component: DetailsComponent, path: 'course-details/:heading' },
{ component: ChapterNotesComponent, path: 'chapter-notes/:heading' },
{ component: VideoChapterComponent, path: 'video-chapter/:heading' },
{ component: VideoNotesComponent, path: 'video-notes/:heading' },
{ component: CalendarComponent, path: 'calendar' },


+ 35
- 1
src/app/tabs/courses/chapter-notes/chapter-notes.component.html ファイルの表示

@@ -1 +1,35 @@
<p>chapter-notes works!</p>
<div class="page">
<header class="nav-header">
<button class="close-button" (click)="back()">
<svg-icon [applyClass]="true" class="icon" src="assets/custom-icons/close.svg"></svg-icon>
</button>
<h5>
<svg-icon [applyClass]="true" class="icon" src="assets/custom-icons/play-button.svg"></svg-icon>
<span> {{ heading }} </span>
</h5>
</header>

<h2> {{ heading }} </h2>
<div class="author">
<img src="https://pbs.twimg.com/profile_images/3478244961/01ebfc40ecc194a2abc81e82ab877af4.jpeg">
<label> Dwayne the Rock </label>
<span> Faculty, Mathematics </span>
</div>

<div class="description">
<p>
<a href="#">Lorem ipsum</a> dolor sit amet, consectetur adipisicing elit. Voluptatem in ad commodi quo. Nisi non rerum perspiciatis? Molestiae beatae sit aliquid culpa, dolores quas! Dolore, eveniet, sit. Tempore, soluta omnis.
</p>

<figure>
<img src="https://www.educationworld.in/wp-content/uploads/2018/12/notebook-near-math-supplies_23-2147847773.jpg" alt="">
</figure>
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aperiam dolore doloremque necessitatibus ut quae ipsum, voluptas fuga perferendis incidunt labore voluptatibus iusto ullam ab repudiandae commodi alias excepturi nulla! Vero?
Lorem ipsum dolor sit amet, <a href="#">Lorem ipsum</a> consectetur adipisicing elit. Saepe et cupiditate at nam earum mollitia commodi cum quidem dolore aliquid nostrum architecto voluptatem eius recusandae, enim explicabo deserunt expedita similique.
</p>

</div>

</div>

+ 121
- 0
src/app/tabs/courses/chapter-notes/chapter-notes.component.scss ファイルの表示

@@ -0,0 +1,121 @@
.page {
background-color: var(--black);
height: 100vh;
padding-bottom: 60px;
overflow: auto;
}

.nav-header {
background-color: var(--ash-black);
display: flex;
align-items: center;
padding: 0 5%;
height: 60px;
position: sticky;
position: -webkit-sticky;
top: 0;
z-index: 1;

.close-button {
border: 0px;
background-color: transparent;
.icon {
width: 16px;
height: 16px;
fill: var(--light-grey);
}
}

h5 {
font-size: 16px;
color: white;
font-weight: 400;
margin-left: 20px;
letter-spacing: 1px;

.icon {
width: 15px;
height: 15px;
fill: white;
margin-right: 3px;
vertical-align: middle;
position: relative;
top: -1px;
}
}
}

h2 {
padding: 0 5%;
font-size: 22px;
margin: 20px auto 10px;
color: white;
font-weight: 400;
}

.author {
display: flex;
width: 100%;
padding: 0 5%;

img {
width: 20px;
height: 20px;
border-radius: 50%;
margin-right: 10px;
}

label {
font-size: 14px;
color: white;
margin-right: 10px;
}

span {
position: relative;
font-size: 14px;
color: var(--light-grey);
position: relative;
display: flex;
align-items: center;

&::before {
content: '';
display: inline-block;
height: 100%;
width: 2px;
background-color: var(--light-grey);
margin-right: 10px;
}
}
}

.description {
width: 90%;
margin: 40px auto 0;
color: white;

p {
margin: 20px auto;
font-size: 14px;
line-height: 2;
}

a {
color: var(--teal-green);
}

figure {
display: block;
width: 100%;
border-radius: 5px;
overflow: hidden;
margin: 20px auto;

img {
display: block;
width: 100%;
object-fit: cover;
}
}
}

+ 26
- 6
src/app/tabs/courses/chapter-notes/chapter-notes.component.ts ファイルの表示

@@ -1,15 +1,35 @@
import { Component, OnInit } from '@angular/core';
import { Location } from '@angular/common';
import { ActivatedRoute } from '@angular/router';
import { Subscription } from 'rxjs';

@Component({
selector: 'app-chapter-notes',
templateUrl: './chapter-notes.component.html',
styleUrls: ['./chapter-notes.component.scss']
selector: 'app-chapter-notes',
templateUrl: './chapter-notes.component.html',
styleUrls: ['./chapter-notes.component.scss']
})
export class ChapterNotesComponent implements OnInit {
heading: string;
routeSubscription: Subscription;

constructor() { }
constructor(
private location: Location,
private route: ActivatedRoute
) { }

ngOnInit(): void {
}
ngOnInit(): void {
this.routeSubscription = this.route.params.subscribe((params) => {
this.heading = params['heading'];
});
}

ngOnDestroy() {
this.routeSubscription.unsubscribe();
}


back() {
this.location.back();
}

}

+ 4
- 4
src/app/tabs/courses/details/details.component.html ファイルの表示

@@ -61,7 +61,7 @@
<li class="topic completed">
<svg-icon [applyClass]="true" class="icon checkmark" src="assets/custom-icons/checkmark.svg"></svg-icon>
<div class="topic-container">
<p [routerLink]="['/video-chapter/', 'Topic-2']">
<p [routerLink]="['/chapter-notes/', 'Topic-2']">
<span class="type"> <svg-icon [applyClass]="true" class="type-icon" src="assets/custom-icons/newspaper.svg"></svg-icon> Notes: </span> Corrupti dolores illo perferendis, impedit fugiat officiis cum tenetur amet itaque suscipit, possimus. Quas ipsam corporis aliquid enim, quisquam nobis laudantium dolorum.
</p>
<button class="action-button" (click)="showDeletePopup = true">
@@ -85,7 +85,7 @@
<li class="topic">
<svg-icon [applyClass]="true" class="icon checkmark" src="assets/custom-icons/checkmark.svg"></svg-icon>
<div class="topic-container">
<p [routerLink]="['/video-chapter/', 'Topic-4']">
<p [routerLink]="['/chapter-notes/', 'Topic-4']">
<span class="type"> <svg-icon [applyClass]="true" class="type-icon" src="assets/custom-icons/newspaper.svg"></svg-icon> Notes: </span> Corrupti dolores illo perferendis, impedit fugiat officiis cum tenetur amet itaque suscipit, possimus. Quas ipsam corporis aliquid enim, quisquam nobis laudantium dolorum.
</p>
<button class="action-button">
@@ -120,7 +120,7 @@
<li class="topic completed">
<svg-icon [applyClass]="true" class="icon checkmark" src="assets/custom-icons/checkmark.svg"></svg-icon>
<div class="topic-container">
<p [routerLink]="['/video-chapter/', 'Topic-2']">
<p [routerLink]="['/chapter-notes/', 'Topic-2']">
<span class="type"> <svg-icon [applyClass]="true" class="type-icon" src="assets/custom-icons/newspaper.svg"></svg-icon> Notes: </span> Corrupti dolores illo perferendis, impedit fugiat officiis cum tenetur amet itaque suscipit, possimus. Quas ipsam corporis aliquid enim, quisquam nobis laudantium dolorum.
</p>
<button class="action-button" (click)="showDeletePopup = true">
@@ -144,7 +144,7 @@
<li class="topic">
<svg-icon [applyClass]="true" class="icon checkmark" src="assets/custom-icons/checkmark.svg"></svg-icon>
<div class="topic-container">
<p [routerLink]="['/video-chapter/', 'Topic-4']">
<p [routerLink]="['/chapter-notes/', 'Topic-4']">
<span class="type"> <svg-icon [applyClass]="true" class="type-icon" src="assets/custom-icons/newspaper.svg"></svg-icon> Notes: </span> Corrupti dolores illo perferendis, impedit fugiat officiis cum tenetur amet itaque suscipit, possimus. Quas ipsam corporis aliquid enim, quisquam nobis laudantium dolorum.
</p>
<button class="action-button">


+ 1
- 9
src/app/tabs/courses/video-chapter/video-notes/video-notes.component.html ファイルの表示

@@ -1,14 +1,6 @@
<div class="page">
<ngx-siema [options]="options">
<header class="nav-header">
<button class="close-button" (click)="back()">
<svg-icon [applyClass]="true" class="icon" src="assets/custom-icons/close.svg"></svg-icon>
</button>
<h5>
<svg-icon [applyClass]="true" class="icon" src="assets/custom-icons/play-button.svg"></svg-icon>
<span> Notes 1</span>
</h5>
</header>
<ngx-siema-slide>
<header class="nav-header">
<button class="close-button" (click)="back()">