Skip to content

Commit 96fa8b4

Browse files
cemersozDerekTBrown
authored andcommitted
updates (#163)
* issue 32 fixed * removed swp * fixed nconf issues * issue 82, 84 fixes * fixed #82 * isse #77 * fixed tests * fixed files * fixed tests master * fixed comment * moved validator * removed duplicate file * fixed tests, removed duplicate underscore, publish * changes * fixed methods.ts import * fixed issues w methods * fixes * minor fixes * A * api changes * fixed api * comments * minor changes * minor fixes * api changes (#126) * issue 32 fixed * removed swp * fixed nconf issues * issue 82, 84 fixes * fixed #82 * isse #77 * fixed tests * fixed files * fixed tests master * fixed comment * moved validator * removed duplicate file * fixed tests, removed duplicate underscore, publish * changes * fixed methods.ts import * fixed issues w methods * fixes * minor fixes * A * api changes * fixed api * comments * minor changes * minor fixes * method implementations * before merge * removed testing change * fixed typo * fixed prepareLab * removed test methods * fix prepareLab * methods changes * removed swap file * fixed merge * fixes * prepareLab WORKS * further fixes * merge * all works * deleted debug line * fixed minor excess code * minor indentation fix * reference fixes * fixes to nextTask * merged with master * minor changes * fixed merge problems * fixed md view and swithces * fixed error messages * removed debug code * removed swp * fixes * added student object * changed function calls * deleted unnecessary files
1 parent 40fc7ae commit 96fa8b4

File tree

9 files changed

+512
-30
lines changed

9 files changed

+512
-30
lines changed

client/imports/ui/pages/lab/taskview.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636

3737
<tuxlab-markdown [mdData]="labMarkdown">Task markdown loading...</tuxlab-markdown>
3838
<div class="markdown-check-button">
39-
<button md-raised-button (click)="nextTask()" *ngIf="!currentCompleted">
39+
<button md-raised-button (click)="check()" *ngIf="!currentCompleted">
4040
Check
4141
<md-icon fontIcon="tuxicon-tick"></md-icon>
4242
</button>

client/imports/ui/pages/lab/taskview.ts

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ export default class TaskView extends MeteorComponent {
5959
currentTask: number;
6060
currentCompleted: boolean;
6161
courseId: string;
62+
nextButton : boolean;
6263
@ViewChild(Terminal) term : Terminal;
6364

6465

@@ -81,6 +82,7 @@ export default class TaskView extends MeteorComponent {
8182
//slf.labMarkdown = "# Sander \n ## are you sure this will work?";
8283
slf.tasks = res.taskList;
8384
slf.toTask(slf.tasks[0]);
85+
slf.labProgress = "0 / "+slf.tasks.length;
8486
slf.auth = {
8587
username: Meteor.user().profile.nickname,
8688
password: res.sshInfo.pass,
@@ -91,6 +93,25 @@ export default class TaskView extends MeteorComponent {
9193
console.log("fired",err,res);
9294
});
9395
}
96+
97+
//called by the check button, I'm already calling this
98+
verify(){
99+
Meteor.call('verifyTask',"1",function(err,res){
100+
if(err){
101+
console.log("something went horribly wrong");
102+
}
103+
else{
104+
if(res){
105+
nextButton = true;
106+
}
107+
else{
108+
nextButton = false;
109+
}
110+
}
111+
});
112+
}
113+
114+
//TODO: @Sander call this from a new button, only shown when nextButton == true
94115
nextTask(){
95116
console.log("proceeding");
96117
var slf = this;
@@ -102,6 +123,7 @@ export default class TaskView extends MeteorComponent {
102123
console.log(res);
103124
slf.tasks = res.taskList
104125
slf.toTask(slf.tasks[res.taskNo-1]);
126+
slf.labProgress = res.taskNo+" / "+slf.tasks.length
105127
}
106128
console.log("yay");
107129
});

server/imports/api/lab.session.js

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,30 @@
11
/// <reference path="./lab.exec.d.ts" />
22
var lab = require('./lab.js');
3-
var session = function(){
4-
};
3+
var student = require('./lab.student.js');
4+
var session = function(){};
55

66
session.prototype.env = null;
77
session.prototype.lab = null;
8+
session.prototype.student = null;
89
/* init: pulls labFile and initializes session object from it
910
*/
10-
session.prototype.init = function(user,labId,callback){
11+
session.prototype.init = function(user,userId,labId,callback){
1112
var slf = this;
1213
this.env = require('./lab.env.js');
1314
this.env.setUser(user);
14-
15+
1516
// Get Metadata from Database
1617
var lab_data = Collections.labs.findOne({_id: labId}, {fields: {'labfile' : 0}});
18+
var courseId = lab_data.course_id;
19+
20+
//initialize student object
21+
this.student = new student(userId,labId,courseId);
22+
1723
if(!lab_data || lab_data.length < 0){
1824
TuxLog.log("warn",new Error("Lab not found"));
1925
callback(new Error("Lab Not Found."), null);
2026
}
27+
2128
else{
2229
// Get Course Metadata
2330
var course = Collections.courses.findOne({_id: lab_data.course_id}, {fields: {'labs' : 1 }});
@@ -53,7 +60,6 @@ session.prototype.init = function(user,labId,callback){
5360
else{
5461
slf.env.getPass(function(err,res){
5562
if(err){
56-
//TODO: err log in server/imports/api/lab.env.js:
5763
//TODO: separate streams in env.js
5864
callback(err,null);
5965
}
@@ -102,7 +108,7 @@ session.prototype.start = function(callback){
102108
.then(function(){
103109
return new Promise(function(resolve,reject){
104110
try{
105-
slf.lab.tasks(this.env);
111+
slf.lab.tasks();
106112
resolve();
107113
}
108114
catch(e){
@@ -116,15 +122,14 @@ session.prototype.start = function(callback){
116122
}
117123
)
118124
.then(function(){
119-
console.log("resolved");
120125
if(!slf.lab.currentTask.next){
121126
TuxLog.log('warn',new Error('labfile tasks not properly chained at start'));
122127
callback(new Error("labfile task chaining error"));
123128
}
124129

125130
else{
126131
slf.lab.currentTask = slf.lab.currentTask.next;
127-
slf.lab.currentTask.setupFn(slf.env)
132+
slf.lab.currentTask.setupFn(slf.env,slf.student)
128133
.then(callback(null),function(err){
129134
TuxLog.log("warn",err);
130135
callback(err)});
@@ -136,6 +141,12 @@ session.prototype.start = function(callback){
136141
});
137142
}
138143

144+
145+
session.prototype.verify = function(callback){
146+
147+
slf.lab.currentTask.verifyFn(slf.env,slf.student)
148+
.then(callback(true),callback(false));
149+
}
139150
/* next: verifies that task is completed
140151
* moves on to next task and runs callback(null,parseTasks) if completed
141152
* runs callback(err,null) -err from verify- if not
@@ -151,10 +162,10 @@ session.prototype.next = function(callback){
151162

152163
//if it is not the last task...
153164
else{
154-
slf.lab.currentTask.verifyFn(slf.env)
165+
slf.lab.currentTask.verifyFn(slf.env,slf.student)
155166
.then(function(){
156167
slf.lab.currentTask = slf.lab.currentTask.next;
157-
slf.lab.currentTask.setupFn(slf.env)
168+
slf.lab.currentTask.setupFn(slf.env,slf.student)
158169
.then(function(){
159170
slf.lab.taskNo += 1;
160171
callback(null,slf.lab.taskNo);

0 commit comments

Comments
 (0)