Skip to content

Commit 51dfe3a

Browse files
sandershihackerDerekTBrown
authored andcommitted
Use routerLink
course pages now uses Child Routing deleted LabData class
1 parent e69bbed commit 51dfe3a

30 files changed

+515
-462
lines changed
Lines changed: 23 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,25 @@
11
<div class="tuxlab-gradelist">
2-
<md-data-table layout-fill>
3-
<thead>
4-
<tr>
5-
<th class="md-text-cell">Exam</th>
6-
<th>Grade Percentage</th>
7-
</tr>
8-
</thead>
9-
<tbody>
10-
<tr *ngFor="let grade of grades">
11-
<td class="md-text-cell">{{ grade.name }}</td>
12-
<td>{{ grade.grade }}</td>
13-
</tr>
14-
</tbody>
15-
</md-data-table>
2+
<md-card>
3+
<md-card-title>
4+
<md-card-title-text>
5+
<span class="md-headline">Course Grades</span>
6+
</md-card-title-text>
7+
</md-card-title>
8+
<md-card-content>
9+
<md-data-table layout-fill>
10+
<thead>
11+
<tr>
12+
<th class="md-text-cell">Exam</th>
13+
<th>Grade Percentage</th>
14+
</tr>
15+
</thead>
16+
<tbody>
17+
<tr *ngFor="let grade of grades">
18+
<td class="md-text-cell">{{ grade.name }}</td>
19+
<td>{{ grade.grade }}</td>
20+
</tr>
21+
</tbody>
22+
</md-data-table>
23+
</md-card-content>
24+
</md-card>
1625
</div>
Lines changed: 27 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,28 @@
11
<div class="tuxlab-lablist">
2-
<md-progress-bar mode="determinate" [value]="determinateValue"></md-progress-bar>
3-
<md-data-table layout-fill>
4-
<thead>
5-
<tr>
6-
<th class="md-text-cell">Lab</th>
7-
<th>Tasks Completed</th>
8-
<th>Due Date</th>
9-
</tr>
10-
</thead>
11-
<tbody>
12-
<tr *ngFor="let lab of labs">
13-
<td class="md-text-cell" (click)="toLab(lab.name)">{{ lab.name }}</td>
14-
<td (click)="toLab(lab.name)">{{ lab.completed }}</td>
15-
<td (click)="toLab(lab.name)">{{ lab.date }}</td>
16-
</tr>
17-
</tbody>
18-
</md-data-table>
19-
</div>
2+
<md-card>
3+
<md-card-title>
4+
<md-card-title-text>
5+
<span class="md-headline">Labs</span>
6+
</md-card-title-text>
7+
</md-card-title>
8+
<md-card-content>
9+
<md-progress-bar mode="determinate" [value]="determinateValue"></md-progress-bar>
10+
<md-data-table layout-fill>
11+
<thead>
12+
<tr>
13+
<th class="md-text-cell">Lab</th>
14+
<th>Tasks Completed</th>
15+
<th>Due Date</th>
16+
</tr>
17+
</thead>
18+
<tbody>
19+
<tr *ngFor="let lab of labs">
20+
<td class="md-text-cell" (click)="toLab(lab.name)">{{ lab.name }}</td>
21+
<td (click)="toLab(lab.name)">{{ lab.completed }}</td>
22+
<td (click)="toLab(lab.name)">{{ lab.date }}</td>
23+
</tr>
24+
</tbody>
25+
</md-data-table>
26+
</md-card-content>
27+
</md-card>
28+
</div>

client/imports/ui/components/markdown/markdown.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<div class="wrapper">
66
<!-- Navigation -->
77
<div class="markdown-toolbar-nav">
8-
<a href="/labs" class="markdown-back-link">
8+
<a class="markdown-back-link">
99
<md-icon fontIcon="tuxicon-left"></md-icon>
1010
</a>
1111
</div>

client/imports/ui/components/markdown/markdown.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import 'zone.js/dist/zone';
66

77
// Angular Imports
8-
import { Component, ViewEncapsulation, provide } from '@angular/core';
8+
import { Component, ViewEncapsulation, provide, Input } from '@angular/core';
99
import { bootstrap } from 'angular2-meteor-auto-bootstrap';
1010
import { APP_BASE_HREF } from '@angular/common';
1111
import { HTTP_PROVIDERS } from '@angular/http';
@@ -22,7 +22,8 @@
2222
// Icon
2323
import { MD_ICON_DIRECTIVES, MdIconRegistry } from '@angular2-material/icon';
2424

25-
import { LabData } from '../../pages/lab/taskview.ts';
25+
import TaskView from '../../pages/lab/taskview.ts';
26+
2627
// Markdown Imports
2728
/// <reference path="./marked.d.ts" />
2829
import * as marked from 'marked';
@@ -45,8 +46,7 @@
4546

4647
// Export MarkdownView Class
4748
export class MarkdownView {
48-
//TODO: Replace with markdown from the database
49-
data = (new LabData).labMarkdown;
49+
data = (new TaskView).labMarkdown;
5050
convertedData: String;
5151
labName = "Lab Name Here";
5252
labProgress = "3/10";
Lines changed: 27 additions & 105 deletions
Original file line numberDiff line numberDiff line change
@@ -1,106 +1,28 @@
11
<div class="tuxlab-courseview">
2-
<!--Course View Content-->
3-
<div class="course-content">
4-
<!--Course Description Card-->
5-
<a name="description"></a>
6-
<md-card>
7-
<md-card-title>
8-
<md-card-title-text>
9-
<span class="md-headline">{{ courseName }}</span>
10-
</md-card-title-text>
11-
</md-card-title>
12-
<md-card-content>
13-
<p [innerHTML]="courseDescription"></p>
14-
</md-card-content>
15-
<md-card-actions layout="row" layout-align="end center">
16-
<a md-button href="https://www.cs.cmu.edu/~15131/f15/">Course Website</a>
17-
</md-card-actions>
18-
</md-card>
19-
20-
<!--Responsive Section for Lectures and Assignments-->
21-
<div layout="row" layout-xs="column">
22-
23-
<div flex>
24-
<!--Grade Card-->
25-
<a name="grades"></a>
26-
<md-card>
27-
<md-card-title>
28-
<md-card-title-text>
29-
<span class="md-headline">Course Grades</span>
30-
</md-card-title-text>
31-
</md-card-title>
32-
<md-card-content>
33-
<tuxlab-gradelist></tuxlab-gradelist>
34-
</md-card-content>
35-
<md-card-actions layout="row" layout-align="end center">
36-
<a md-button href="/grades">Specifics</a>
37-
</md-card-actions>
38-
</md-card>
39-
</div>
40-
41-
<div flex>
42-
<!--Assignments Card-->
43-
<a name="assignments"></a>
44-
<md-card>
45-
<md-card-title>
46-
<md-card-title-text>
47-
<span class="md-headline">Announcements</span>
48-
</md-card-title-text>
49-
</md-card-title>
50-
<md-card-content>
51-
52-
<md-data-table layout-fill>
53-
<thead>
54-
<tr>
55-
<th class="md-text-cell">Announcement</th>
56-
<th>Date</th>
57-
</tr>
58-
</thead>
59-
<tbody>
60-
<tr>
61-
<td class="md-text-cell">Course Begins</td>
62-
<td>Sept. 1st</td>
63-
</tr>
64-
<tr>
65-
<td class="md-text-cell">Midterm Exam</td>
66-
<td>Oct. 25th</td>
67-
</tr>
68-
<tr>
69-
<td class="md-text-cell">Final Exam</td>
70-
<td>Dec. 19th</td>
71-
</tr>
72-
</tbody>
73-
</md-data-table>
74-
75-
</md-card-content>
76-
<md-card-actions layout="row" layout-align="end center">
77-
<md-dialog #alert>
78-
<md-dialog-title>Nice Try</md-dialog-title>
79-
Go home and think about what you did.
80-
<md-dialog-actions ok="Fine"></md-dialog-actions>
81-
</md-dialog>
82-
<button md-button class="right" (click)="alert.show()">
83-
Complain
84-
</button>
85-
</md-card-actions>
86-
</md-card>
87-
</div>
88-
</div>
89-
90-
<!--Lab List Card-->
91-
<a name="labs"></a>
92-
<md-card>
93-
<md-card-title>
94-
<md-card-title-text>
95-
<span class="md-headline">Labs</span>
96-
</md-card-title-text>
97-
</md-card-title>
98-
<md-card-content>
99-
<tuxlab-lablist></tuxlab-lablist>
100-
</md-card-content>
101-
<md-card-actions layout="row" layout-align="end center">
102-
<a md-button href="/labs">Continue</a>
103-
</md-card-actions>
104-
</md-card>
105-
</div>
106-
</div>
2+
<!-- Course Toolbar -->
3+
<div id="course-toolbar">
4+
<md-toolbar class="md-medium-tall large" *hideItBootstrap="['xs']">
5+
<div class="wrapper">
6+
<!-- Navigation -->
7+
<div class="course-toolbar-nav">
8+
<a md-button [routerLink]="['/course']" class="home-button" id="toolbar-course">Home</a>
9+
<a md-button [routerLink]="['/course/labs']" id="toolbar-labs">Labs</a>
10+
<a md-button [routerLink]="['/course/grades']" id="toolbar-grades">Grades</a>
11+
</div>
12+
</div>
13+
</md-toolbar>
14+
<md-toolbar class="small" *showItBootstrap="['xs']">
15+
<div>
16+
<a md-button [routerLink]="['/course']" id="toolbar-course">Home</a>
17+
<a md-button [routerLink]="['/course/labs']" id="toolbar-labs">Labs</a>
18+
<a md-button [routerLink]="['/course/grades']" id="toolbar-grades">Grades</a>
19+
<a md-button [routerLink]="['/course']">More</a>
20+
<a md-button [routerLink]="['/course']">More</a>
21+
</div>
22+
</md-toolbar>
23+
</div>
24+
<!--Course View Content-->
25+
<div class="course-content" id="course-content">
26+
<router-outlet></router-outlet>
27+
</div>
28+
</div>
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import { RouterConfig } from '@angular/router';
2+
import CourseView from './course.ts';
3+
import { GradeView } from './gradeview.ts';
4+
import { LabView } from './labview.ts';
5+
import { MainCourseView } from './mainview.ts';
6+
7+
export const courseRoutes: RouterConfig = [
8+
{
9+
path: 'course',
10+
component: CourseView,
11+
children: [
12+
{ path: '', component: MainCourseView },
13+
{ path: 'grades', component: GradeView },
14+
{ path: 'labs', component: LabView }
15+
// { path: '/:courseid', as: 'CourseView', component: CourseView },
16+
// { path: '/:courseid/users', as: 'UserList', component: UserList },
17+
// { path: '/:courseid/user/:userid', as: 'UserView', component: UserView },
18+
// { path: '/:courseid/labs', as: 'LabList', component: LabList },
19+
// { path: '/:courseid/lab/:labid', as: 'LabView', component: LabView },
20+
]
21+
}
22+
];

client/imports/ui/pages/course/course.ts

Lines changed: 3 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,12 @@
1010
import { APP_BASE_HREF } from '@angular/common';
1111
import { HTTP_PROVIDERS } from '@angular/http';
1212
import { InjectUser } from 'angular2-meteor-accounts-ui';
13+
import { ROUTER_DIRECTIVES } from '@angular/router';
1314

1415
// Angular Material Imports
1516
import { MATERIAL_PROVIDERS, MATERIAL_DIRECTIVES } from 'ng2-material';
1617
import { MeteorComponent } from 'angular2-meteor';
17-
import {OVERLAY_PROVIDERS} from '@angular2-material/core/overlay/overlay';
18+
import { OVERLAY_PROVIDERS } from '@angular2-material/core/overlay/overlay';
1819

1920
// Icon
2021
import { MD_ICON_DIRECTIVES, MdIconRegistry } from '@angular2-material/icon';
@@ -34,6 +35,7 @@
3435
directives: [
3536
MATERIAL_DIRECTIVES,
3637
MD_ICON_DIRECTIVES,
38+
ROUTER_DIRECTIVES,
3739
LabList,
3840
GradeList
3941
],
@@ -44,29 +46,10 @@
4446

4547
// Export CourseView Class
4648
export default class CourseView extends MeteorComponent {
47-
course;
48-
courseNumber: String = '15-131'; // TODO: Get from URL
49-
courseDescription: String = "Course Description Not Found";
50-
courseName: String = "Course Name Not Found";
51-
5249
constructor(mdIconRegistry: MdIconRegistry) {
5350
super();
5451
// Create Icon Font
5552
mdIconRegistry.registerFontClassAlias('tux', 'tuxicon');
5653
mdIconRegistry.setDefaultFontSetClass('tuxicon');
57-
58-
// Display Course Toolbar
59-
document.getElementById('course-toolbar').className += " block";
60-
// Activate toolbar button
61-
document.getElementById('toolbar-course').className += " active-button";
62-
63-
// Subscribe to courses database and set current course
64-
this.subscribe('user-courses', this.courseNumber, () => {
65-
this.course = courses.findOne({ course_number: this.courseNumber });
66-
if (typeof this.course !== "undefined") {
67-
this.courseName = this.course.course_name;
68-
this.courseDescription = this.course.course_description.content;
69-
}
70-
}, true);
7154
}
7255
}

client/imports/ui/pages/course/gradelist.html

Lines changed: 0 additions & 12 deletions
This file was deleted.
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
<div class="tuxlab-gradeview">
2+
<tuxlab-gradelist></tuxlab-gradelist>
3+
</div>

0 commit comments

Comments
 (0)