diff --git a/client/imports/ui/pages/course/course_dashboard.ts b/client/imports/ui/pages/course/course_dashboard.ts
index bec850a6..d07eb938 100644
--- a/client/imports/ui/pages/course/course_dashboard.ts
+++ b/client/imports/ui/pages/course/course_dashboard.ts
@@ -15,15 +15,21 @@
// LabList and Grades import
import { GradeList } from './gradelist.ts';
import { LabList } from './lablist.ts';
-
+
// Roles Import
import { Roles } from '../../../../../collections/users.ts';
// Markdown Editor
import { MDEditor } from '../../components/mdeditor/mdeditor.ts';
+
+// Icon
+ import { MD_ICON_DIRECTIVES } from '@angular2-material/icon';
declare var Collections: any;
+///
+ import * as marked from 'marked';
+
// Define CourseDashboard Component
@Component({
selector: 'tuxlab-course-dashboard',
@@ -32,6 +38,7 @@ declare var Collections: any;
ROUTER_DIRECTIVES,
MATERIAL_DIRECTIVES,
MD_INPUT_DIRECTIVES,
+ MD_ICON_DIRECTIVES,
LabList,
MDEditor,
GradeList
@@ -46,6 +53,7 @@ declare var Collections: any;
courseDescription: string = "";
courseName: string = "";
courseSyllabus: string = "";
+ editSyllabus: boolean = false;
constructor(private route: ActivatedRoute, private router: Router) {
super();
@@ -71,16 +79,37 @@ declare var Collections: any;
return false;
}
}
+
+ // Emit function
mdUpdate(md: string) {
this.courseSyllabus = md;
}
+
+ // Update the database with new syllabus
updateSyllabus() {
- Collections.courses.update({
- _id: this.courseId
+ Collections.courses.update({
+ _id: this.courseId
}, {
$set: {
"course_description.syllabus": this.courseSyllabus
}
});
+ this.toggleEdit();
+ }
+
+ // Hide and show the markdown editor for syllabus
+ toggleEdit() {
+ this.editSyllabus = !this.editSyllabus;
+ }
+
+ // Convert to markdown
+ convert(markdown: string) {
+ let md = marked.setOptions({});
+ if(typeof markdown !== "undefined" && markdown !== null) {
+ return md.parse(markdown);
+ }
+ else {
+ return "";
+ }
}
}
diff --git a/client/imports/ui/pages/explore/explore.ts b/client/imports/ui/pages/explore/explore.ts
index 843de3a0..583a08b7 100644
--- a/client/imports/ui/pages/explore/explore.ts
+++ b/client/imports/ui/pages/explore/explore.ts
@@ -1,24 +1,27 @@
// Meteor Imports
- import { Meteor } from 'meteor/meteor';
+ import { Meteor } from 'meteor/meteor';
// Angular Imports
- import { Component, Input } from '@angular/core';
- import { InjectUser } from 'angular2-meteor-accounts-ui';
- import { ROUTER_DIRECTIVES } from '@angular/router'
+ import { Component, Input } from '@angular/core';
+ import { InjectUser } from 'angular2-meteor-accounts-ui';
+ import { ROUTER_DIRECTIVES } from '@angular/router'
// Angular Material Imports
- import { MATERIAL_PROVIDERS, MATERIAL_DIRECTIVES } from 'ng2-material';
- import { MeteorComponent } from 'angular2-meteor';
+ import { MATERIAL_PROVIDERS, MATERIAL_DIRECTIVES } from 'ng2-material';
+ import { MeteorComponent } from 'angular2-meteor';
- import { MD_TABS_DIRECTIVES } from '@angular2-material/tabs';
- import { MD_INPUT_DIRECTIVES } from '@angular2-material/input';
- import { MdToolbar } from '@angular2-material/toolbar';
- import { FORM_DIRECTIVES, FORM_PROVIDERS } from '@angular/forms';
+ import { MD_TABS_DIRECTIVES } from '@angular2-material/tabs';
+ import { MD_INPUT_DIRECTIVES } from '@angular2-material/input';
+ import { MdToolbar } from '@angular2-material/toolbar';
+ import { FORM_DIRECTIVES, FORM_PROVIDERS } from '@angular/forms';
// Component View Imports
- import { ExploreView } from '../../components/explore/explore.ts';
- import { SearchView } from '../../components/explore/search.ts';
+ import { ExploreView } from '../../components/explore/explore.ts';
+ import { SearchView } from '../../components/explore/search.ts';
+
+// Icons
+ import { MD_ICON_DIRECTIVES } from '@angular2-material/icon';
// Define Explore Component
@Component({
@@ -26,10 +29,11 @@
templateUrl: '/client/imports/ui/pages/explore/explore.html',
directives: [
MATERIAL_DIRECTIVES,
- ROUTER_DIRECTIVES,
+ ROUTER_DIRECTIVES,
MD_TABS_DIRECTIVES,
MD_INPUT_DIRECTIVES,
FORM_DIRECTIVES,
+ MD_ICON_DIRECTIVES,
MdToolbar,
ExploreView,
SearchView
diff --git a/client/imports/ui/pages/lab/labview.html b/client/imports/ui/pages/lab/labview.html
index 06037825..9a8a785c 100644
--- a/client/imports/ui/pages/lab/labview.html
+++ b/client/imports/ui/pages/lab/labview.html
@@ -5,25 +5,23 @@
- Course Page
- LabVM Connection
-
+
+
+
+
-
LabVM Connection
You are currently connected.
-
diff --git a/client/imports/ui/pages/lab/labview.ts b/client/imports/ui/pages/lab/labview.ts
index aad5f7fd..13a116ce 100644
--- a/client/imports/ui/pages/lab/labview.ts
+++ b/client/imports/ui/pages/lab/labview.ts
@@ -18,6 +18,9 @@
// Terminal and Markdown Imports
import { Terminal } from "../../components/wetty/terminal.ts";
import { MarkdownView } from "../../components/markdown/markdown.ts";
+
+// Icons
+ import { MD_ICON_DIRECTIVES } from '@angular2-material/icon';
// Meteor method imports
import "../../../lab/methods.ts"
@@ -31,6 +34,7 @@
Terminal,
MATERIAL_DIRECTIVES,
MD_INPUT_DIRECTIVES,
+ MD_ICON_DIRECTIVES,
MD_SIDENAV_DIRECTIVES,
MD_TOOLBAR_DIRECTIVES,
ROUTER_DIRECTIVES
diff --git a/client/style/lab/_labview.scss b/client/style/lab/_labview.scss
index b00c7066..03756919 100644
--- a/client/style/lab/_labview.scss
+++ b/client/style/lab/_labview.scss
@@ -59,13 +59,10 @@
md-sidenav {
width: 260px;
padding: 0;
- a {
- color: black;
- display: block;
+ button {
width: 260px;
height: 50px;
margin: 0;
- line-height: 50px;
text-align: left;
padding-left: 15px;
padding-right: 15px;
@@ -74,7 +71,7 @@
color: #64dd17;
}
.tuxicon-tick:before {
- font-size: 36px
+ font-size: 36px;
}
.tuxicon-progress:before {
font-size: 36px;
diff --git a/public/assets b/public/assets
index bac57f8b..a977e98c 160000
--- a/public/assets
+++ b/public/assets
@@ -1 +1 @@
-Subproject commit bac57f8b0ed7c81e45d1dcad51ecb193bfc2885e
+Subproject commit a977e98c22fef515cd14c0f49b5ee89601dda398
diff --git a/server/imports/course/search.ts b/server/imports/course/search.ts
index 266d2b61..fd0b28ef 100644
--- a/server/imports/course/search.ts
+++ b/server/imports/course/search.ts
@@ -15,6 +15,7 @@ export function course_search(text : string, results_per_page : number, page_no
var search_object =
{$and : [
{"hidden" : false},
+ { "permissions.meta": true },
{$or : [
{"course_number" : search_pattern},
{$where: "this.course_number.replace(/[ .-]/g,'') == '"+text+"'"},
diff --git a/tsconfig.json b/tsconfig.json
index c839a68b..ef0803c5 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -12,7 +12,7 @@
"emitDecoratorMetadata": true,
"experimentalDecorators": true
},
- "compileOnSave": true,
+ "compileOnSave": false,
"filesGlob": [
"client/**/*.ts",
"server/**/*.ts",
@@ -57,6 +57,7 @@
"server/imports/course/search.ts",
"server/imports/lab/checkLab.d.ts",
"server/imports/lab/labMethods.ts",
+ "server/imports/lab/markdown.ts",
"server/imports/lab/methods.ts",
"typings/globals/es6-shim/index.d.ts",
"typings/globals/meteor/index.d.ts",