Commit 335f4bd9325fc2e53af55258e26e790389732a58

Authored by unknown
1 parent 99fd7a45

Implemented Submit Btn Functionality

400-SOURCECODE/AIAHTML5.Web/app/controllers/LabExercController.js
1 1 /// <reference path="../../content/data/json/le/LabExercise.js" />
2   -AIA.controller("LabExercController", ["$scope", "$rootScope", "pages", "$log", '$http', 'DataService', '$filter', '$location', '$document', '$sce',"$compile","$location",
3   -function ($scope, $rootScope, pages, log, $http, DataService, $filter, $location, $document, $sce, $compile, $location) {
  2 +AIA.controller("LabExercController", ["$scope", "$rootScope", "pages", "$log", '$http', 'DataService', '$filter', '$location', '$document', '$sce', "$compile", "$location", "LabExerciseService",
  3 +function ($scope, $rootScope, pages, log, $http, DataService, $filter, $location, $document, $sce, $compile, $location, LabExerciseService) {
4 4 $scope.$sce = $sce;
5 5 $scope.LabExerciseName;
6 6 $scope.LabExerciseQuiz = null;
... ... @@ -10,13 +10,14 @@ function ($scope, $rootScope, pages, log, $http, DataService, $filter, $location
10 10 $scope.Title = "";
11 11 $scope.Imagepath = "";
12 12 $scope.DraggedList = [];
  13 + $scope.UserAttempt = [];
  14 + $scope.UserAnswersForAllQuestions = [];
  15 + $scope.LabExerciseUserData = [];
  16 + $scope.LabExercise = [];
13 17 $scope.dragableId = "";
  18 + $scope.UserAttempt = [];
14 19 $scope.blReviewAttempt = false;
15 20 $scope.$on('$viewContentLoaded', function (event) {
16   -
17   - if ($rootScope.refreshcheck == null) {
18   - $location.path('/');
19   - }
20 21 // code that will be executed ...
21 22 // every time this view is loaded
22 23  
... ... @@ -31,7 +32,7 @@ function ($scope, $rootScope, pages, log, $http, DataService, $filter, $location
31 32 $rootScope.currentActiveModuleTitle = selectedModuleName;
32 33 })
33 34  
34   - $scope.showTabButton = false;
  35 + $scope.showme = false;
35 36 $rootScope.currentActiveModuleTitle = pages[8].name;
36 37 $scope.getLabExerciseModules();
37 38  
... ... @@ -47,7 +48,7 @@ function ($scope, $rootScope, pages, log, $http, DataService, $filter, $location
47 48  
48 49 });
49 50  
50   - // $scope.showTabButton = false;
  51 + // $scope.showme = false;
51 52 $scope.IsVisible = function () {
52 53 // $scope.scroll();
53 54  
... ... @@ -85,6 +86,7 @@ function ($scope, $rootScope, pages, log, $http, DataService, $filter, $location
85 86 if (title != null) {
86 87 $scope.LabExerciseQuiz = title;
87 88 $scope.LabExerciseName = title.Topic;
  89 + $scope.LabExerciseUserData = [];
88 90 $location.url("/lab-exercises-detail?labexercise=" + (title.Slug || ""));
89 91 }
90 92  
... ... @@ -92,19 +94,17 @@ function ($scope, $rootScope, pages, log, $http, DataService, $filter, $location
92 94  
93 95  
94 96 $scope.GetQuizByTopic = function () {
95   -
96   - if ($rootScope.refreshcheck == null) {
97   - $location.path('/');
98   - }
99 97 var keywords = $location.search();
100 98 $scope.LabExerciseName = keywords.labexercise;
101 99 $scope.LabExerciseModules = null;
102 100 $scope.LabExerciseBoxes = null;
  101 +
  102 +
103 103 var labExerciseModulePath = '~/../content/data/json/le/' + $scope.LabExerciseName + '.json';
104 104  
105 105 DataService.getAnotherJson(labExerciseModulePath).then(
106 106 function (result) {
107   - //debugger;
  107 + $scope.LabExData = result;
108 108 // alert(JSON.stringify(result.LabExercise));
109 109 $.each(result.LabExercise, function (index, value) {
110 110 $scope.LabExerciseName = result.LabExercise[index].Topic;
... ... @@ -113,23 +113,28 @@ function ($scope, $rootScope, pages, log, $http, DataService, $filter, $location
113 113 $scope.TotalNumberofQuiz = result.LabExercise[index].NumberofQuestions;
114 114 $.each(result.LabExercise[index].Questions, function (index1, value1) {
115 115 if (result.LabExercise[index].Questions[index1].Number == $scope.quiznumber) {
  116 + $scope.MaxScore = result.LabExercise[index].Questions[index1].Options.length;
116 117 if (result.LabExercise[index].Questions[index1].ImagePath == "") {
117 118 $("#imgblock").css("display", "none");
  119 + //$("#imgblock").remove();
118 120 $scope.IsVisible = false;
119 121 $("#textblock").css("display", "block");
120 122 $scope.LabExerciseModules = result.LabExercise[index].Questions[index1];
121 123 $scope.deliberatelyTrustDangerousSnippet = function (html) {
122   - //var htmltag= $compile(html)($scope);
123   - return $sce.trustAsHtml(html);
  124 + //var htmltag= $compile(html)($scope);
  125 + return $sce.trustAsHtml(html);
124 126 };
125 127 $scope.activityTitle = result.LabExercise[index].Questions[index1].activityTitle;
126 128 $scope.Title = result.LabExercise[index].Questions[index1].Title;
  129 +
127 130 }
128 131 else {
129 132 $("#imgblock").css("display", "block");
130 133 $scope.IsVisible = true;
131 134 $("#textblock").css("display", "none");
  135 + // $("#textblock").remove();
132 136 $scope.LabExerciseModules = result.LabExercise[index].Questions[index1];
  137 + console.log($scope.LabExerciseModules);
133 138 $scope.activityTitle = result.LabExercise[index].Questions[index1].activityTitle;
134 139 $scope.Title = result.LabExercise[index].Questions[index1].Title;
135 140 $scope.Imagepath = keywords.labexercise + "/" + result.LabExercise[index].Questions[index1].ImagePath;
... ... @@ -137,7 +142,7 @@ function ($scope, $rootScope, pages, log, $http, DataService, $filter, $location
137 142 $scope.ShowHideDiv(result.LabExercise[index].Questions[index1].Options[0].textalign);
138 143 }
139 144 });
140   - //$scope.quiznumber++;
  145 + //$scope.quiznumber++;0
141 146  
142 147 }
143 148  
... ... @@ -149,32 +154,126 @@ function ($scope, $rootScope, pages, log, $http, DataService, $filter, $location
149 154 }
150 155 )
151 156 }
152   -
  157 + $scope.isReviewBtnSelected = false;
153 158 $scope.nextQuiz = function () {
  159 +
  160 + //need to save all questions till the current question number when user clicks on save
  161 + //if ($scope.dragableId!="") {
  162 + // $scope.UserAnswersForAllQuestions.push({'QuestionNo':$scope.quiznumber,'UserAnswer':$scope.UserAttempt})
  163 +
  164 + //}
  165 + //else {
  166 + // //need to anattampted question means user ahs not dragged, dropped options so save blank
  167 + // $scope.UserAnswersForAllQuestions.push({ 'QuestionNo': $scope.quiznumber, 'UserAnswer': "" })
  168 + //}
  169 + if ($scope.quiznumber != $scope.TotalNumberofQuiz)
  170 + {
  171 + $scope.CreateLabExerciseDataToSave();
  172 + }
  173 +
  174 + //{
  175 + // $scope.selectedQuestionNo = $scope.quiznumber + 1;
  176 + // $scope.CreateLabExerciseDataToSave();
  177 + //}
  178 +
  179 +
  180 + $scope.dragableId = "";
154 181 if ($scope.quiznumber == $scope.TotalNumberofQuiz)
155 182 return;
156 183 else
157   - $scope.quiznumber++;
  184 + $scope.quiznumber++;
  185 +
  186 +
  187 + if ($scope.quiznumber == $scope.TotalNumberofQuiz) {
  188 + if ($scope.isReviewBtnSelected == true) {
  189 + $("#quizSubmitBtn").css("display", "none");
  190 + }
  191 + else {
  192 + $("#quizSubmitBtn").css("display", "block");
  193 + }
  194 +
  195 + }
  196 + else
  197 + {
  198 + $("#quizSubmitBtn").css("display", "none");
  199 + }
  200 +
158 201 $scope.resetQuiz();
159 202 $scope.ShowHideDiv();
  203 +
  204 +
160 205 }
161 206  
162 207 $scope.prevQuiz = function () {
163   - if ($scope.quiznumber == 1)
164   - return;
165   - else
166   - $scope.quiznumber--;
  208 + if ($scope.quiznumber != 1) {
  209 + // $scope.quizQuesNo = $scope.quizQuesNo - 1;
  210 + // $scope.selectedQuestionNo = $scope.quizQuesNo;
  211 + $scope.CreateLabExerciseDataToSave();
  212 + }
  213 + $scope.dragableId = "";
  214 + $scope.UserAttempt = [];
  215 + if ($scope.quiznumber == 1)
  216 + return;
  217 + else
  218 + $scope.quiznumber--;
  219 +
  220 + if ($scope.quiznumber == $scope.TotalNumberofQuiz) {
  221 + if ($scope.isReviewBtnSelected == true) {
  222 + $("#quizSubmitBtn").css("display", "none");
  223 + }
  224 + else {
  225 + $("#quizSubmitBtn").css("display", "block");
  226 + }
  227 + }
  228 + else {
  229 + $("#quizSubmitBtn").css("display", "none");
  230 + }
  231 + $scope.resetQuiz();
  232 + $scope.ShowHideDiv();
  233 + }
167 234  
168   - $scope.resetQuiz();
169   - $scope.ShowHideDiv();
  235 +
  236 + $scope.SubmitAttempt = function () {
  237 + $scope.CreateLabExerciseDataToSave();
  238 +
  239 + $("#submitResultHtml").css("display", "block");
  240 + $("#questionHtml").css("display", "none");
  241 + console.log($scope.usersCorrectQuestData);
  242 + $("#resultLabData").empty();
  243 + for (var i = 0; i <= $scope.usersCorrectQuestData.length - 1; i++) {
  244 + var labExerciseHtml = $("#resultLabData").append("<tr><td>" + $scope.usersCorrectQuestData[i].QuestionNo + "</td><td>" + $scope.usersCorrectQuestData[i].title + "</td><td>" + $scope.usersCorrectQuestData[i].CorrectStatus + "</td><td><button ng-click='reviewAttemptAnswer(" + $scope.usersCorrectQuestData[i].QuestionNo + ");' id=" + $scope.usersCorrectQuestData[i].QuestionNo + " class='btn btn-danger btn-sm'><i class='fa fa-times'></i> Review</button></td></tr>");
  245 + $compile(labExerciseHtml)($scope);
  246 + }
170 247 }
171 248  
  249 +
  250 + $scope.ReportGen = function () {
  251 + $("#submitResultHtml").css("display", "block");
  252 + $("#questionHtml").css("display", "none");
  253 + }
  254 +
  255 +
172 256 $scope.handleDragStart = function (e) {
173 257  
174   - this.style.opacity = '0.8';
  258 + this.style.opacity = '0.4';
175 259 e.dataTransfer.setData('text/plain', this.innerHTML);
176 260 $scope.dragableId = $(this).attr("Id");
177 261  
  262 + //if user drag already selected answer from one blankbox to another than it gets id of blank box so need to get answer
  263 + if ($scope.dragableId.indexOf('T') != -1) {
  264 + var optionText = document.getElementById($scope.dragableId).innerHTML;
  265 + var currentQuizData = new jinqJs()
  266 + .from($scope.LabExData.LabExercise[0].Questions)
  267 + .where('Number == ' + $scope.quiznumber)
  268 + .select();
  269 + var optionData = new jinqJs()
  270 + .from(currentQuizData[0].Options)
  271 + .where('OptionTitle == ' + optionText)
  272 + .select();
  273 + var option = optionData[0].OptionNumber;
  274 + $scope.dragableId = optionText + '-' + option;
  275 + }
  276 +
178 277 };
179 278  
180 279 $scope.handleDragEnd = function (e) {
... ... @@ -188,7 +287,10 @@ function ($scope, $rootScope, pages, log, $http, DataService, $filter, $location
188 287 //alert(x.left + "," + $("#droppable").clientWidth + "," + x.top);
189 288  
190 289 var id = $(this).attr("id");
  290 +
191 291 var keywords = $location.search();
  292 + $scope.labExercideIdentifier = (keywords.labexercise.replace('.json', '')).split('dat_')[1];
  293 +
192 294 var dataText = e.dataTransfer.getData('text/plain');
193 295 if (id == "divoptions" || id == "divleft" || id == "divright") {
194 296 var item = $('#' + $scope.dragableId).html();
... ... @@ -202,11 +304,15 @@ function ($scope, $rootScope, pages, log, $http, DataService, $filter, $location
202 304 $.each(result.LabExercise[index].Questions, function (index1, value1) {
203 305 if (result.LabExercise[index].Questions[index1].Number == $scope.quiznumber) {
204 306 var Options = result.LabExercise[index].Questions[index1].Options;
  307 +
  308 +
205 309 $.each(Options, function (inx, value2) {
206 310 if (Options[inx].OptionTitle == item) {
207 311 if ($scope.DraggedList != null) {
208 312 $.each($scope.DraggedList, function (inx1, value3) {
209   -
  313 + $scope.UserAttempt.push({ "BlankBoxName": id.split('-')[1], "OptionName": $scope.dragableId.split('-')[1] });
  314 + //var balnkBox=id.split('-')[1];
  315 + //$scope.UserAttempt.push({balnkBox :+ $scope.dragableId.split('-')[1] });
210 316 if ($scope.DraggedList[inx1].Value == item) {
211 317 $scope.DraggedList.splice(inx1, 1);
212 318 $('#block-' + Options[inx].OptionNumber).css("display", "block");
... ... @@ -248,7 +354,9 @@ function ($scope, $rootScope, pages, log, $http, DataService, $filter, $location
248 354 }
249 355 });
250 356 }
251   -
  357 + //var balnkBox = id.split('-')[1];
  358 + //$scope.UserAttempt.push({ balnkBox: +$scope.dragableId.split('-')[1] });
  359 + $scope.UserAttempt.push({ "BlankBoxName": id.split('-')[1], "OptionName": $scope.dragableId.split('-')[1] });
252 360 $scope.DraggedList.push({ "id": id.split('-')[1], "optionName": id.split('-')[1], "Value": dataText, "topcoord": Options[inx].topcoord, "leftcoord": Options[inx].leftcoord });
253 361 //$('#' + $scope.dragableId).remove();
254 362 $('#' + $scope.dragableId).css("display", "none");
... ... @@ -274,6 +382,7 @@ function ($scope, $rootScope, pages, log, $http, DataService, $filter, $location
274 382 //{
275 383 // $("#divoptions").html("<br><br><br><br>")
276 384 //}
  385 + //alert(JSON.stringify($scope.UserAttempt));
277 386 };
278 387  
279 388 $scope.handleDragOver = function (e) {
... ... @@ -284,6 +393,7 @@ function ($scope, $rootScope, pages, log, $http, DataService, $filter, $location
284 393  
285 394 $scope.resetQuiz = function () {
286 395 $scope.DraggedList = [];
  396 + $scope.UserAttempt = [];
287 397 $scope.GetQuizByTopic();
288 398 };
289 399  
... ... @@ -342,7 +452,211 @@ function ($scope, $rootScope, pages, log, $http, DataService, $filter, $location
342 452 }
343 453  
344 454 };
345   -
  455 +
  456 + $scope.SaveAnswer = function () {
  457 + $scope.CreateLabExerciseDataToSave();
  458 +
  459 +
  460 + //LabExerciseService.saveLabExerciseAttempt("superadmin", $scope.LabExerciseAttemptedData)
  461 + $scope.labExerciseAttempt = [];
  462 + $scope.labExerciseAttempt.push({ 'LabExerciseUserData': $scope.LabExerciseUserData, 'userId': $scope.userId, 'labExerciseIdentifier': $scope.labExerciseIdentifier, 'LastQuestion': $scope.LastQuestion, 'TotalQuestions': $scope.TotalQuestions });
  463 + LabExerciseService.saveLabExerciseAttempt($scope.labExerciseAttempt)
  464 + .then(
  465 + function (result) {
  466 + alert("Successfully updated");
  467 + },
  468 + function (error) {
  469 + console.log(' Error in authentication = ' + error.statusText);
  470 + alert("Error");
  471 + });
  472 + };
  473 +
  474 + $scope.usersCorrectQuestData = [];
  475 + $scope.CreateLabExerciseDataToSave = function () {
  476 +
  477 + $scope.LabExerciseAttemptedData = [];
  478 + $scope.lb = [];
  479 + //get user answers
  480 + $scope.getUserAnswers();
  481 +
  482 +
  483 + //get correct response
  484 + $scope.getCorrectResponse();
  485 +
  486 + // $scope.correctResponseForSavingDatabaseArray = $scope.correctResponseForSavingDatabase.split(',');
  487 +
  488 + //get dragItems
  489 + $scope.getDragItems();
  490 +
  491 + //get score
  492 + $scope.getScore();
  493 +
  494 + $scope.userId = JSON.parse(localStorage.getItem('loggedInUserDetails')).Id;
  495 + $scope.labExerciseIdentifier = $scope.labExercideIdentifier;
  496 + $scope.LastQuestion = $scope.quiznumber;
  497 + $scope.TotalQuestions = $scope.TotalNumberofQuiz;
  498 +
  499 + $scope.LabExerciseAttemptedData = {
  500 +
  501 + MaxScore: $scope.MaxScore,
  502 + UserAnswer: $scope.commaSeperatedUserAnswers,
  503 + QuestionNo: $scope.quiznumber,
  504 + CorrectAnswer: JSON.stringify($scope.correctResponseForSavingDatabase),
  505 + DragItems: $scope.DragItems,
  506 + Score: $scope.Score,
  507 + title: $scope.activityTitle,
  508 + }
  509 +
  510 +
  511 + if($scope.LabExerciseAttemptedData.MaxScore == $scope.LabExerciseAttemptedData.Score)
  512 + {
  513 + $scope.usersCorrectQuestData.push({
  514 + MaxScore: $scope.MaxScore,
  515 + UserAnswer: $scope.commaSeperatedUserAnswers,
  516 + QuestionNo: $scope.quiznumber,
  517 + CorrectAnswer: JSON.stringify($scope.correctResponseForSavingDatabase),
  518 + DragItems: $scope.DragItems,
  519 + Score: $scope.Score,
  520 + title: $scope.activityTitle,
  521 + CorrectStatus : 'Correct'
  522 + });
  523 + }
  524 + else
  525 + {
  526 + $scope.usersCorrectQuestData.push({
  527 + MaxScore: $scope.MaxScore,
  528 + UserAnswer: $scope.commaSeperatedUserAnswers,
  529 + QuestionNo: $scope.quiznumber,
  530 + CorrectAnswer: JSON.stringify($scope.correctResponseForSavingDatabase),
  531 + DragItems: $scope.DragItems,
  532 + Score: $scope.Score,
  533 + title: $scope.activityTitle,
  534 + CorrectStatus: 'Incorrect'
  535 + });
  536 + }
  537 +
  538 + var thisQuestiondataInLabExerciseUserData = new jinqJs()
  539 + .from($scope.LabExerciseUserData)
  540 + .where('QuestionNo == ' + $scope.LabExerciseAttemptedData.QuestionNo)
  541 + .select();
  542 + if (thisQuestiondataInLabExerciseUserData.length > 0) {
  543 +
  544 + angular.forEach($scope.LabExerciseUserData, function (value, key) {
  545 + if (value.QuestionNo == $scope.LabExerciseAttemptedData.QuestionNo) {
  546 +
  547 + }
  548 + else {
  549 + $scope.lb.push(value);
  550 + }
  551 + })
  552 + $scope.LabExerciseUserData = [];
  553 +
  554 + $scope.lb.push($scope.LabExerciseAttemptedData);
  555 + angular.forEach($scope.lb, function (value1, key1) {
  556 + $scope.LabExerciseUserData.push(value1);
  557 + })
  558 + }
  559 + else
  560 + $scope.LabExerciseUserData.push($scope.LabExerciseAttemptedData);
  561 + }
  562 +
  563 + $scope.reviewAttemptAnswer = function () {
  564 + $scope.isReviewBtnSelected = true;
  565 + $("#reviewBtn").css("display", "none");
  566 + $("#resetBtn").css("display", "none");
  567 + $("#saveBtn").css("display", "none");
  568 + $("#submitResultHtml").css("display", "none");
  569 + $("#questionHtml").css("display", "block");
  570 + $("#reportBtn").css("display", "block");
  571 + $scope.quiznumber = 1;
  572 + $scope.nextQuiz();
  573 + }
  574 +
  575 +
  576 +
  577 + $scope.getUserAnswers = function () {
  578 + var userAnswers = [];
  579 + var blockBoxes = $("div[id*='blockbox']");
  580 + var blockBoxesInTextBlock = $("#textblock").children();
  581 +
  582 + var blockBoxLength = blockBoxes.length - blockBoxesInTextBlock.length;
  583 + var blockAnswers = $("div[id*='blockans']");
  584 + for (var i = 0; i < blockAnswers.length; i++) {
  585 +
  586 + var id = (blockAnswers[i].id).split('-')[1];
  587 + userAnswers[id.replace('T', '')] = blockAnswers[i].innerHTML;
  588 + }
  589 +
  590 + $scope.commaSeperatedUserAnswers = '';
  591 + for (var i = 1; i <= blockBoxLength; i++) {
  592 +
  593 + var userAns = userAnswers[i];
  594 + if (userAns != undefined) {
  595 + $scope.commaSeperatedUserAnswers += userAns + ',';
  596 + }
  597 + else {
  598 + $scope.commaSeperatedUserAnswers += '' + ',';
  599 + }
  600 + }
  601 + //remove last comma
  602 + $scope.commaSeperatedUserAnswers = $scope.commaSeperatedUserAnswers.replace(/,$/, '');
  603 + }
  604 +
  605 + $scope.getCorrectResponse = function () {
  606 + $scope.correctResponse = '';
  607 + $scope.correctResponseForSavingDatabase = '';
  608 + var cr = new jinqJs()
  609 + .from($scope.LabExData.LabExercise[0].Questions)
  610 + .where('Number == ' + $scope.quiznumber)
  611 + .select();
  612 + for (var i = 0; i < cr[0].correctResponse.length; i++) {
  613 + var blankBox = cr[0].correctResponse[i].OptionBox;
  614 + var option = cr[0].correctResponse[i].Answer;
  615 +
  616 + var options = new jinqJs()
  617 + .from(cr[0].Options)
  618 + .where('OptionNumber == ' + option)
  619 + .select();
  620 +
  621 + //var optionText = options[0].OptionTitle;
  622 + // $scope.correctResponse += blankBox + ' ' + option + ',';
  623 + // $scope.correctResponseForSavingDatabase += parseInt(blankBox.replace('T', '')) - 1 + ':' + optionText + ',';
  624 + }
  625 +
  626 + $scope.correctResponse = $scope.correctResponse.replace(/,$/, '');
  627 + $scope.correctResonseKeyValue = $scope.correctResponse.split(',');
  628 +
  629 + $scope.correctResponseForSavingDatabase = $scope.correctResponseForSavingDatabase.replace(/,$/, '');
  630 + }
  631 +
  632 +
  633 + $scope.getDragItems = function () {
  634 + var OptionBoxes = $("div[id*='block-']");
  635 + $scope.DragItems = '';
  636 + for (var i = 0; i < OptionBoxes.length; i++) {
  637 + $scope.DragItems += OptionBoxes[i].id.replace('block-', '') + ',' + OptionBoxes[i].innerHTML + ';';
  638 + }
  639 + $scope.DragItems = $scope.DragItems.replace(/;$/, '');
  640 +
  641 + }
  642 +
  643 + $scope.getScore = function () {
  644 +
  645 + var abc = $scope.UserAttempt;
  646 + $scope.Score = 0;
  647 + angular.forEach($scope.UserAttempt, function (value, key) {
  648 +
  649 + var userOptedAnswer = value.BlankBoxName + ' ' + value.OptionName;
  650 + for (var i = 0; i < $scope.correctResonseKeyValue.length; i++) {
  651 + if (userOptedAnswer == $scope.correctResonseKeyValue[i]) {
  652 + $scope.Score += 1;
  653 + }
  654 +
  655 + }
  656 +
  657 +
  658 + })
  659 + }
346 660 }]
347 661  
348 662 );
... ...
400-SOURCECODE/AIAHTML5.Web/app/views/LabExerc/lab-exercises-detail.html
... ... @@ -17,11 +17,11 @@
17 17  
18 18 <div class="container-fluid main-full">
19 19 <div class="row">
20   - <div class="panel panel-default">
  20 + <div class="panel panel-default" id="questionHtml">
21 21 <div class="panel-heading">
22 22 {{activityTitle}}<p style="margin:-20px 474px -1px;" class="text-primary">{{Title}}</p>
23 23 <div class="pull-right" style="margin: -20px 20px;">
24   - <p>Question <strong>{{quiznumber}}</strong> of {{TotalNumberofQuiz}}</p>
  24 + <p>Question <strong id="quizNo">{{quiznumber}}</strong> of {{TotalNumberofQuiz}}</p>
25 25 </div>
26 26 </div>
27 27 <div class="panel-body" style="padding:2px;overflow:scroll">
... ... @@ -64,9 +64,11 @@
64 64 </div>
65 65 <div class="pull-right">
66 66 <div class="btn-group pull-left marginR5">
67   - <button class="btn btn-sm btn-primary">Save</button>
68   - <button class="btn btn-sm btn-primary" ng-click="ReviewAttempt()">Review Your Attempt</button>
69   - <button class="btn btn-sm btn-primary" ng-click="resetQuiz()">Reset</button>
  67 + <button class="btn btn-sm btn-primary" style="display:none;" ng-click="SubmitAttempt()" id="quizSubmitBtn">Submit</button>
  68 + <button class="btn btn-sm btn-primary" style="display:none;" id="reportBtn" ng-click="ReportGen()">Report</button>
  69 + <button class="btn btn-sm btn-primary" id="saveBtn">Save</button>
  70 + <button class="btn btn-sm btn-primary" id="reviewBtn" ng-click="ReviewAttempt()">Review Your Attempt</button>
  71 + <button class="btn btn-sm btn-primary" id="resetBtn" ng-click="resetQuiz()">Reset</button>
70 72 </div>
71 73 <div class="btn-group">
72 74 <button class="btn btn-sm btn-black" ng-click="prevQuiz()"><i class="fa fa-arrow-left"></i></button>
... ... @@ -77,6 +79,65 @@
77 79 </div>
78 80  
79 81 </div>
  82 +
  83 +
  84 + <div class="panel panel-default" id="submitResultHtml" style="display:none;">
  85 + <div class="panel-heading">
  86 + <div class="row">
  87 + <div class="col-sm-4 text-left"><strong>Cardiovascula System</strong></div>
  88 + <div class="col-sm-4 text-center">Performace Report</div>
  89 + <div class="col-sm-4 text-right">Score: 0% </div>
  90 + </div>
  91 + </div>
  92 + <div class="panel-body no-padding">
  93 + <div class="row">
  94 + <div class="col-sm-12 table-responsive ">
  95 + <table class="table table-hover table-condensed bg-white">
  96 + <thead>
  97 + <tr class="active">
  98 + <th class="text-center">Total Question</th>
  99 + <th class="text-center">Correct Answers</th>
  100 + <th class="text-center">Incorrect Answers</th>
  101 + </tr>
  102 + </thead>
  103 + <tbody>
  104 + <tr class="text-center">
  105 + <td>18</td>
  106 + <td>0</td>
  107 + <td>18</td>
  108 + </tr>
  109 + </tbody>
  110 + </table>
  111 +
  112 + </div>
  113 + <div class="col-sm-12 table-responsive">
  114 + <table class="table table-hover table-condensed bg-white">
  115 + <thead>
  116 + <tr class="active">
  117 + <th>Question</th>
  118 + <th>Activity Title</th>
  119 + <th>Status</th>
  120 + <th>Action</th>
  121 + </tr>
  122 + </thead>
  123 + <tbody id="resultLabData"></tbody>
  124 + </table>
  125 + </div>
  126 + </div>
  127 + </div>
  128 + <div class="panel-footer">
  129 + <div class="text-center">
  130 + <button class="btn btn-sm btn-primary">
  131 + Email
  132 + </button>
  133 +
  134 + </div>
  135 + <div class="clearfix"></div>
  136 + </div>
  137 +
  138 + </div>
  139 +
  140 +
80 141 </div>
81 142 </div>
82 143 </div>
... ...
400-SOURCECODE/AIAHTML5.Web/index.html
... ... @@ -1447,7 +1447,7 @@
1447 1447 <!--<script src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/0.4.1/html2canvas.js"></script>-->
1448 1448 <script src="libs/html2canvas.js"></script>
1449 1449 <script src="libs/FileSaver.js"></script>
1450   -
  1450 + <script src="app/services/LabExerciseService.js"></script>
1451 1451 <!--<script type="text/javascript">
1452 1452 $(function () {
1453 1453 $('#canvas').sketch();
... ...