unserver-unify
Version:
151 lines (142 loc) • 4.15 kB
JavaScript
angular.module('bamboo.course').controller('CourseSurveyChapterCtrl', function($scope, ApiService, CommonService, $rootScope, $stateParams, $state, $filter, loginService, $translate, CourseApi) {
var self = this;
this.cid = $stateParams.cid;
this.id = $stateParams.rid;
this.questionInfo = {};
this.qresults = {};
this.lqinfo = {};
this.item = {};
this.reason = {};
function getInfo() {
var info = {
action: 'getresource',
id: self.id,
};
CourseApi.mvApi(info, function(result) {
console.log(result);
if(result.success){
self.chapter = result.data;
checkSurveyExist();
}
});
}
getInfo();
function getText(string) {
return string.replace(/ /g, '').replace(/<[^>]*>/g, "").replace(/\./g, ',');
}
$scope.numToLetters = function(num) {
return String.fromCharCode(65 + num);
};
this.errorFlag=false;
this.surveySubmit = function() {
var allanswered = true;
var lastunanswered = [];
console.log("------------submit----------------");
console.log(self.item);
var result = {};
var _index = 0;
console.log(self.lqinfo);
angular.forEach(self.lqinfo, function(q, id) {
console.log(q);
if (q.type == 'multiple') {
var _ans = [];
angular.forEach(q.options, function(val, index) {
if (val.selection) {
_ans.push(val.text);
}
})
result[id] = _ans;
if (_ans.length < 1) {
allanswered = false;
}
} else if (q.selection != undefined && q.selection != '') {
result[id] = q.selection;
} else {
allanswered = false;
}
})
console.log(result);
if (!allanswered) {
self.errorFlag = true;
CommonService.showNoBlockErr('Not all question answered!');
} else {
var info = {
id: self.id,
action: 'submitsurvey',
object: {
result: result,
cid: self.cid,
type: self.reason.type,
sid: self.item._id,
}
};
console.log(info);
CourseApi.courseSurveyApi(info, function(res) {
checkSurveyExist();
if (self.chapter.taskFlag) {
recordUsage($scope.chapter);
}
});
}
};
function checkSurveyExist() {
self.surveyResult = false;
if (self.chapter.content) {
self.surveyId = self.chapter.content;
var infor = {
action: 'checksurveyexist',
id: self.surveyId
};
CourseApi.courseSurveyApi(infor, function(data) {
console.log(data);
if (data != 0) {
self.surveyResult = true;
} else {
getSurveyInfo();
}
});
}
}
function getSurveyInfo() {
var questions = {};
var info = {
action: 'get',
id: self.surveyId
};
CourseApi.courseSurveyApi(info, function(result) {
console.log(result);
self.item = result;
self.qresults = {};
$rootScope.currentSurveyTitle = self.item.name;
if (!self.item.sections) {
self.item.sections = [];
}
angular.forEach(self.item.questions, function(val, index) {
self.questionInfo[val._id] = val;
})
angular.forEach(self.item.sections, function(item, index) {
item.index = index;
});
angular.forEach(self.item.sections, function(item, index) {
// item.index=index;
item.sindex = index;
var lqids = [];
angular.forEach(item.questions, function(id) {
var longid = id + '-' + index;
lqids.push(longid);
var info = {
id: id,
index: item.index,
sindex: index,
}
self.qresults[longid] = info;
self.lqinfo[longid] = angular.copy(self.questionInfo[id]);
})
item.lqids = lqids;
console.log(item);
});
console.log(self.qresults);
console.log(self.lqinfo);
});
}
});