unserver-unify
Version:
154 lines (148 loc) • 4.7 kB
JavaScript
;
angular.module('bamboo.course').controller('CourseSummaryCtrl', function($scope, ApiService, loginService, CommonService, CourseApi, $stateParams, ExamService) {
var self = this;
self.id = ApiService.gid;
this.lid = this.courseId = $stateParams.cid; // save the current course id
this.uid = loginService.user._id;
console.log(loginService.user);
$scope.appUrl = ApiService.APPURL;
this.history = {};
this.score = {};
this.additions = [];
// this.course = $stateParams.courseParam;
this.school = loginService.school;
this.user = loginService.user;
function getCourseResult() {
var info = {
cid: self.lid,
uid: self.uid,
action: "getcourseresult",
};
console.log(info);
ApiService.post('/user', info).then(function(result) {
// console.log(result);
if (result.data.success) {
console.log("-------success---------");
// console.log(result.data.data);
self.user = result.data.data.user;
self.history = result.data.data.history;
self.score = result.data.data.score;
console.log(result);
console.log(self.score);
console.log(self.history);
getCourseSurveyStatus();
}
});
}
this.lmsResult = [];
var info = {
cid: self.lid,
action: "getcourselms",
}
CourseApi.mvApi(info, function(result) {
// console.log(result);
if (result.data) {
console.log(result.data);
// var records = result.data.records;
var lmsinfo = {};
angular.forEach(result.data.resources, function(item) {
lmsinfo[item._id] = item;
})
self.thirdPartyScore = 0;
angular.forEach(result.data.records, function(_value, key) {
console.log(key);
var val = JSON.parse(_value);
console.log(val);
if (val.cmi) { // 2004
var info = {
name: lmsinfo[key].name,
status: (val.cmi && val.cmi.completion_status),
max: (val.cmi && val.cmi.score.max),
raw: (val.cmi && val.cmi.score.raw),
scaled: (val.cmi && val.cmi.score.scaled),
time: (val.cmi && val.cmi.session_time),
}
if(info.time){
info.time=info.time.replace('PT',"").replace('M',":").replace('S',"");
}
self.thirdPartyScore += info.raw;
self.lmsResult.push(info);
} else { // v1.2
var info = {
name: lmsinfo[key].name,
status: val['cmi.core.lesson_status'] ,
max: val['cmi.core.score.max'] ,
raw: val['cmi.core.score.raw'] ,
time: val['cmi.core.session_time'] ,
}
self.thirdPartyScore += info.raw;
self.lmsResult.push(info);
}
})
console.log(self.lmsResult);
}
})
$scope.chartOptions = {
scale: {
pointLabels: {
fontSize: 12
}
}
};
this.showexam = true;
this.showAssignment = true;
this.getexamitems = function(tableState) {
var limit = tableState.pagination.number;
var start = tableState.pagination.start;
var info = {
cid: self.lid,
start: start,
limit: limit,
sort: tableState.sort,
action: "getuserpublishexamsforcourse",
}
console.log(info);
CourseApi.lcApi(info, function(data) {
// console.log(data);
if (!data || !data.counter) {
self.showexam = false;
}
$scope.examitems = data.items;
console.log($scope.examitems);
tableState.pagination.numberOfPages = Math.ceil(data.counter / limit);
});
}
this.getassignments = function(tableState) {
var limit = tableState.pagination.number;
var start = tableState.pagination.start;
var info = {
cid: self.lid,
start: start,
limit: limit,
sort: tableState.sort,
action: "getUserAssignmentsForCourse",
}
console.log(info);
ExamService.examApi(info, function(data) {
console.log(data);
$scope.assignmentitems = data.items;
if (!data || !data.counter) {
self.showAssignment = false;
}
console.log($scope.assignmentitems);
tableState.pagination.numberOfPages = Math.ceil(data.counter / limit);
});
}
getCourseResult();
function getCourseSurveyStatus(){
var info = {
action: 'getCouseSurveyStatus',
id: self.lid,
};
CourseApi.courseSurveyApi(info, function(result) {
if(result){
$scope.surveyItems = result;
}
});
}
});