UNPKG

unserver-unify

Version:

151 lines (142 loc) 4.15 kB
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(/&nbsp;/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); }); } });