/// AIA.controller("LabExercController", ["$scope", "$rootScope", "pages", "$log", '$http','$timeout', 'DataService', '$filter', '$location', '$document', '$sce', "$compile", "$location", "LabExerciseService","AIAConstants", function ($scope, $rootScope, pages, log, $http,$timeout, DataService, $filter, $location, $document, $sce, $compile, $location, LabExerciseService,AIAConstants) { $scope.$sce = $sce; $scope.LabExerciseName; $scope.LabExerciseQuiz = null; $scope.TotalNumberofQuiz = "0"; $scope.quiznumber = 1; $scope.activityTitle = ""; $scope.Title = ""; $scope.Imagepath = ""; $scope.DraggedList = []; $scope.UserAttempt = []; $scope.UserAnswersForAllQuestions = []; $scope.LabExerciseUserData = []; $scope.LabExercise = []; $scope.dragableId = ""; $scope.UserAttempt = []; $scope.blReviewAttempt = false; $scope.isResetClicked = false; $scope.$on('$viewContentLoaded', function (event) { // code that will be executed ... // every time this view is loaded //get current path var currentURL = $location.path(); var selectedModuleName = ''; //set module title angular.forEach($rootScope.userModules, function (value, key) { if (value.slug === currentURL.replace('/', '')) { selectedModuleName = value.name; } $rootScope.currentActiveModuleTitle = selectedModuleName; }) $scope.showme = false; //$rootScope.currentActiveModuleTitle = pages[8].name; $scope.getLabExerciseModules(); $scope.scroll(); $document.find('div#divoptions div.thumbnail').draggable(); //$document.find("#droppable").droppable({ // drop: function (event, ui) { // $(this) // .find("img") // .html("Dropped!"); // } //}); }); // $scope.showme = false; $scope.IsVisible = function () { // $scope.scroll(); } $scope.scroll = function () { // $window.scrollTo(0, 0); $("html,body").scrollTop(0); //alert("scroll"); } // $rootScope.currentActiveModuleTitle = pages[8].Name; //to get all lab exercise modules from json files $scope.getLabExerciseModules = function () { //debugger; $scope.LabExerciseModules1 = null; var labExerciseModulePath = '~/../content/data/json/le/labexercise.json'; DataService.getAnotherJson(labExerciseModulePath).then( function (result) { //debugger; //alert(JSON.stringify(result)); $scope.LabExerciseModules1 = result; }, function (error) { console.log(error.statusText) } ) } $scope.getLabExerciseTitle = function (title) { $rootScope.menuLabExer = 1; $scope.quiznumber = 1; if (title != null) { $scope.LabExerciseQuiz = title; $scope.LabExerciseName = title.Topic; $scope.LabExerciseUserData = []; $location.url("/lab-exercises-detail?labexercise=" + (title.Slug || "")); } } $scope.InitializeLabExercise = function () { var keywords = $location.search(); $scope.labExercideIdentifier = (keywords.labexercise.replace('.json', '')).split('dat_')[1]; var labExerciseInfo = { userId: JSON.parse(localStorage.getItem('loggedInUserDetails')).Id, identifier: $scope.labExercideIdentifier, }; LabExerciseService.GetLabExercise(labExerciseInfo) .then( function (labResult) { if (labResult != undefined && labResult.lastQuestion>0 && labResult != AIAConstants.SAVED_LAB_EXERCISE_NOT_FOUND) { $scope.SavedLabExercise = labResult; $scope.quiznumber = $scope.SavedLabExercise.lastQuestion; $scope.initialQuestioNo = $scope.SavedLabExercise.lastQuestion; $scope.GetQuizByTopic(); } else { $scope.GetQuizByTopic(); } }, function(error){ console.log('error in getting save ddata'); } ) } $scope.GetQuizByTopic = function () { $rootScope.isLoading = true; $('#spinner').css('visibility', 'visible'); var keywords = $location.search(); $scope.LabExerciseName = keywords.labexercise; $scope.LabExerciseModules = null; $scope.LabExerciseBoxes = null; //alert($scope.LabExerciseName) var labExerciseModulePath = '~/../content/data/json/le/' + $scope.LabExerciseName + '.json'; DataService.getAnotherJson(labExerciseModulePath).then( function (result) { $scope.LabExData = result; var keywords = $location.search(); $scope.labExercideIdentifier = (keywords.labexercise.replace('.json', '')).split('dat_')[1]; $.each(result.LabExercise, function (index, value) { $scope.LabExerciseName = result.LabExercise[index].Topic; if (result.LabExercise[index].Slug == keywords.labexercise) { $scope.TotalNumberofQuiz = result.LabExercise[index].NumberofQuestions; $.each(result.LabExercise[index].Questions, function (index1, value1) { if (result.LabExercise[index].Questions[index1].Number == $scope.quiznumber) { $scope.MaxScore = result.LabExercise[index].Questions[index1].Options.length; if (result.LabExercise[index].Questions[index1].ImagePath == "") { $("#imgblock").css("display", "none"); //$("#imgblock").remove(); $scope.IsVisible = false; $("#textblock").css("display", "block"); $scope.LabExerciseModules = result.LabExercise[index].Questions[index1]; $scope.deliberatelyTrustDangerousSnippet = function (html) { //var htmltag= $compile(html)($scope); return $sce.trustAsHtml(html); }; $scope.activityTitle = result.LabExercise[index].Questions[index1].activityTitle; $scope.Title = result.LabExercise[index].Questions[index1].Title; } else { $("#imgblock").css("display", "block"); $scope.IsVisible = true; $("#textblock").css("display", "none"); // $("#textblock").remove(); $scope.LabExerciseModules = result.LabExercise[index].Questions[index1]; $scope.activityTitle = result.LabExercise[index].Questions[index1].activityTitle; $scope.Title = result.LabExercise[index].Questions[index1].Title; $scope.Imagepath = keywords.labexercise + "/" + result.LabExercise[index].Questions[index1].ImagePath; } $scope.ShowHideDiv(result.LabExercise[index].Questions[index1].Options[0].textalign); } }); $timeout(function () { if ($scope.SavedLabExercise != undefined && $scope.SavedLabExercise.lastQuestion > 0) { if ($scope.isResetClicked != true) { $scope.ShowSavedLabExercise(); } else { $rootScope.isLoading = false; $('#spinner').css('visibility', 'hidden'); $scope.isResetClicked = false; } } else { $rootScope.isLoading = false; $('#spinner').css('visibility', 'hidden'); } },100); } }); //} //$scope.ShowHideDiv(); }, function (error) { console.log(error.statusText) } ) } $scope.isReviewBtnSelected = false; // $rootScope.selectedDivArray = []; $scope.nextQuiz = function () { //need to save all questions till the current question number when user clicks on save //if ($scope.dragableId!="") { // $scope.UserAnswersForAllQuestions.push({'QuestionNo':$scope.quiznumber,'UserAnswer':$scope.UserAttempt}) //} //else { // //need to anattampted question means user ahs not dragged, dropped options so save blank // $scope.UserAnswersForAllQuestions.push({ 'QuestionNo': $scope.quiznumber, 'UserAnswer': "" }) //} $scope.isNextOrPreviousClicked = true; $scope.dragableId = ""; if ($scope.quiznumber != $scope.TotalNumberofQuiz) { $scope.CreateLabExerciseDataToSave(); } if ($scope.quiznumber == $scope.TotalNumberofQuiz) return; else $scope.quiznumber++; // console.log($rootScope.selectedDivArray); if ($scope.quiznumber == $scope.TotalNumberofQuiz) { if ($scope.isReviewBtnSelected == true) { $("#quizSubmitBtn").css("display", "none"); } else { $("#quizSubmitBtn").css("display", "block"); } } else { $("#quizSubmitBtn").css("display", "none"); } $scope.resetQuiz(); $scope.ShowHideDiv(); } $scope.prevQuiz = function () { if ($scope.quiznumber != 1) { // $scope.quizQuesNo = $scope.quizQuesNo - 1; // $scope.selectedQuestionNo = $scope.quizQuesNo; $scope.CreateLabExerciseDataToSave(); } $scope.dragableId = ""; $scope.UserAttempt = []; if ($scope.quiznumber == 1) return; else $scope.quiznumber--; if ($scope.quiznumber == $scope.TotalNumberofQuiz) { if ($scope.isReviewBtnSelected == true) { $("#quizSubmitBtn").css("display", "none"); } else { $("#quizSubmitBtn").css("display", "block"); } } else { $("#quizSubmitBtn").css("display", "none"); } $scope.resetQuiz(); $scope.ShowHideDiv(); //for (var i = 0; i <= $rootScope.selectedDivArray.length - 1; i++) { // if ($scope.quiznumber == $rootScope.selectedDivArray[i].questionNo) { // alert($rootScope.selectedDivArray[i].draggedText); // document.getElementById($rootScope.selectedDivArray[i].droppedID).innerHTML = $rootScope.selectedDivArray[i].draggedText; // // $('#'+$rootScope.selectedDivArray[i].droppedID).html($rootScope.selectedDivArray[i].draggedText); // document.getElementById($rootScope.selectedDivArray[i].droppedID).style.display = "none"; // // $('#'+$rootScope.selectedDivArray[i].draggedID).css("display","none!important"); // } //} } $scope.SubmitAttempt = function () { $scope.CreateLabExerciseDataToSave(); $("#submitResultHtml").css("display", "block"); $("#questionHtml").css("display", "none"); console.log($scope.usersCorrectQuestData); $("#resultLabData").empty(); var sortedQuestionHtml = ''; for (var j = $scope.TotalNumberofQuiz; j >= 1; j--) { for (var i = 0; i <= $scope.usersCorrectQuestData.length - 1; i++) { if (j == $scope.usersCorrectQuestData[i].QuestionNo) { if ($scope.usersCorrectQuestData[i].CorrectStatus == "Correct") { var labExerciseHtml = $("#resultLabData").append("" + $scope.usersCorrectQuestData[i].QuestionNo + "" + $scope.usersCorrectQuestData[i].title + "" + $scope.usersCorrectQuestData[i].CorrectStatus + ""); $compile(labExerciseHtml)($scope); } else { var labExerciseHtml = $("#resultLabData").append("" + $scope.usersCorrectQuestData[i].QuestionNo + "" + $scope.usersCorrectQuestData[i].title + "" + $scope.usersCorrectQuestData[i].CorrectStatus + ""); $compile(labExerciseHtml)($scope); } $scope.isValueExist = true; break; } else { $scope.isValueExist = false; } } if ($scope.isValueExist == false) { var labExerciseHtml_1 = $("#resultLabData").prepend("" + j + " Incorrect"); $compile(labExerciseHtml_1)($scope); } } for (var j = 1;j <= $scope.TotalNumberofQuiz;j++) { $("#resultLabData tr td:nth-child(1)").each(function () { if (j == $(this).text()) { $q = $(this).parent(); if ($q.find("td:nth-child(3)").text() == "Correct") { sortedQuestionHtml += '' + $q.find("td:nth-child(1)").text() + '' + $q.find("td:nth-child(2)").text() + '' + $q.find("td:nth-child(3)").text() + ''; } else { sortedQuestionHtml += '' + $q.find("td:nth-child(1)").text() + '' + $q.find("td:nth-child(2)").text() + '' + $q.find("td:nth-child(3)").text() + ''; } } }); } $("#resultLabData").empty(); var sortedCompileHtml = $("#resultLabData").append(sortedQuestionHtml); $compile(sortedCompileHtml)($scope); $scope.inCorrectAnswer = 0; $scope.CorrectAnswer = 0; $scope.scoreResult = 0; $("#resultLabData tr td:nth-child(3)").each(function () { if ($(this).text() == "Incorrect") { $scope.inCorrectAnswer = $scope.inCorrectAnswer + 1; } else { $scope.CorrectAnswer = $scope.CorrectAnswer + 1; } }); $scope.scoreResult = (parseInt($scope.CorrectAnswer) / parseInt($scope.inCorrectAnswer)) * 100; $scope.scoreResult = Math.round($scope.scoreResult); } $scope.ReportGen = function () { $("#submitResultHtml").css("display", "block"); $("#questionHtml").css("display", "none"); } $scope.handleDragStart = function (e) { this.style.opacity = '0.4'; var $ua = navigator.userAgent; if ($.browser.msie) { localStorage.setItem("text", this.innerHTML); } else { e.dataTransfer.setData('text/plain', this.innerHTML); } $scope.dragableId = $(this).attr("Id"); console.log($scope.dragableId); $scope.dragableText = $("#" + $scope.dragableId).text(); // alert($("#" + $scope.dragableId).text()); //if user drag already selected answer from one blankbox to another than it gets id of blank box so need to get answer if ($scope.dragableId.indexOf('T') != -1) { var optionText = document.getElementById($scope.dragableId).innerHTML; var currentQuizData = new jinqJs() .from($scope.LabExData.LabExercise[0].Questions) .where('Number == ' + $scope.quiznumber) .select(); var optionData = new jinqJs() .from(currentQuizData[0].Options) .where('OptionTitle == ' + optionText) .select(); var option = optionData[0].OptionNumber; // $scope.dragableId = optionText + '-' + option; } //if user drag already selected answer from one blankbox to another than it gets id of blank box so need to get answer if ($scope.dragableId.indexOf('T') != -1) { var optionText = document.getElementById($scope.dragableId).innerHTML; var currentQuizData = new jinqJs() .from($scope.LabExData.LabExercise[0].Questions) .where('Number == ' + $scope.quiznumber) .select(); var optionData = new jinqJs() .from(currentQuizData[0].Options) .where('OptionTitle == ' + optionText) .select(); var option = optionData[0].OptionNumber; //$scope.dragableId = optionText + '-' + option; } }; $scope.handleDragEnd = function (e) { this.style.opacity = '1.0'; }; $scope.handleDrop = function (e) { e.preventDefault(); e.stopPropagation(); var x = $("#droppable").offset(); var id = $(this).attr("id"); // $scope.dragableText = $("#" + $scope.dragableId).text(); //$rootScope.selectedDivArray.push({ // "questionNo": $scope.quiznumber, // "draggedID": $scope.dragableId, // "draggedText": $scope.dragableText, // "droppedID": id //}); //console.log($rootScope.selectedDivArray); var keywords = $location.search(); var $ua = navigator.userAgent; if ($.browser.msie) { dataText = localStorage.getItem("text"); localStorage.setItem("text", ''); } else { var dataText = e.dataTransfer.getData('text/plain'); } if (id == "divoptions" || id == "divleft" || id == "divright") { var item = $('#' + $scope.dragableId).html(); var rindex = $scope.DraggedList.indexOf(item); var labExerciseModulePath = '~/../content/data/json/le/' + keywords.labexercise + '.json'; DataService.getAnotherJson(labExerciseModulePath).then( function (result) { $.each(result.LabExercise, function (index, value) { if (result.LabExercise[index].Slug == keywords.labexercise) { $.each(result.LabExercise[index].Questions, function (index1, value1) { if (result.LabExercise[index].Questions[index1].Number == $scope.quiznumber) { var Options = result.LabExercise[index].Questions[index1].Options; $.each(Options, function (inx, value2) { if (Options[inx].OptionTitle == item) { if ($scope.DraggedList != null) { $.each($scope.DraggedList, function (inx1, value3) { $scope.UserAttempt.push({ "BlankBoxName": id.split('-')[1], "OptionName": $scope.dragableId.split('-')[1] }); //var balnkBox=id.split('-')[1]; //$scope.UserAttempt.push({balnkBox :+ $scope.dragableId.split('-')[1] }); if ($scope.DraggedList[inx1].Value == item) { $scope.DraggedList.splice(inx1, 1); $('#block-' + Options[inx].OptionNumber).css("display", "block"); $('#blockans-' + Options[inx].OptionNumber).css("background-color", "transparent !important"); } }); } } }); } }); } }); }, function (error) { console.log(error.statusText) } ) } else { $(this).each(function (key, value) { var droppedID = $(this).attr("id").split("-"); if (droppedID[0] == 'blockbox') { var labExerciseModulePath = '~/../content/data/json/le/' + keywords.labexercise + '.json'; DataService.getAnotherJson(labExerciseModulePath).then( function (result) { $.each(result.LabExercise, function (index, value) { if (result.LabExercise[index].Slug == keywords.labexercise) { $.each(result.LabExercise[index].Questions, function (index1, value1) { if (result.LabExercise[index].Questions[index1].Number == $scope.quiznumber) { var Options = result.LabExercise[index].Questions[index1].OptionBox; $.each(Options, function (inx, value2) { if (Options[inx].BoxName == id.split('-')[1]) { if ($scope.DraggedList != null) { $.each($scope.DraggedList, function (inx1, value3) { if ($scope.DraggedList[inx1].Value == dataText) { $scope.DraggedList.splice(inx1, 1); } }); } // $scope.UserAttempt.push({ "BlankBoxName": id.split('-')[1], "OptionName": $scope.dragableId.split('-')[1] }); //$scope.UserAttempt.push({ balnkBox: +$scope.dragableId.split('-')[1] }); $scope.UserAttempt.push({ "BlankBoxName": id.split('-')[1], "OptionName": $scope.dragableId.split('-')[1] }); $scope.DraggedList.push({ "id": id.split('-')[1], "optionName": id.split('-')[1], "Value": dataText, "topcoord": Options[inx].topcoord, "leftcoord": Options[inx].leftcoord }); $('#' + $scope.dragableId).css("display", "none"); $('#blockans-' + Options[inx].OptionNumber).css("background-color", "transparent !important"); } }); } }); } }); }, function (error) { console.log(error.statusText) } ) } }); } $scope.$apply(); //alert(JSON.stringify($scope.UserAttempt)); }; $scope.minLabExPanel = function () { $("#questionHtml").css("display", "none"); $("#LabExPageHeading").css("display", "none"); $("#LabExMinimizedId").css("display", "block"); } $scope.maxLabExPanel = function () { $("#questionHtml").css("display", "block"); $("#LabExPageHeading").css("display", "block"); $("#LabExMinimizedId").css("display", "none"); } $scope.handleDragOver = function (e) { e.preventDefault(); // Necessary. Allows us to drop. e.dataTransfer.dropEffect = 'move'; // See the section on the DataTransfer object. //return false; }; $scope.OnResetClick = function () { $scope.isResetClicked = true; $scope.resetQuiz(); } $scope.resetQuiz = function () { $scope.DraggedList = []; $scope.UserAttempt = []; $scope.GetQuizByTopic(); }; $scope.ReviewAttempt = function () { var keywords = $location.search(); var labExerciseModulePath = '~/../content/data/json/le/' + keywords.labexercise + '.json'; DataService.getAnotherJson(labExerciseModulePath).then( function (result) { //alert(result) $.each(result.LabExercise, function (index, value) { if (result.LabExercise[index].Slug == keywords.labexercise) { $.each(result.LabExercise[index].Questions, function (index1, value1) { if (result.LabExercise[index].Questions[index1].Number == $scope.quiznumber) { var correctResponse = result.LabExercise[index].Questions[index1].correctResponse; var Options = result.LabExercise[index].Questions[index1].Options; $.each(correctResponse, function (inx, value2) { $scope.OptionName = ""; $.each(Options, function (inx1, value3) { if (Options[inx1].OptionTitle == $('#blockans-' + correctResponse[inx].OptionBox).text()) { $scope.OptionName = Options[inx1].OptionNumber; } }); if (correctResponse[inx].Answer == $scope.OptionName) { blReviewAttempt = true; } else { blReviewAttempt = false; $('#blockans-' + correctResponse[inx].OptionBox).css("background", "#ff4e00"); } }); } }); } }); }, function (error) { console.log(error.statusText) } ) }; $scope.ShowHideDiv = function (status) { if (status == "bottom") { $("#divright").css("display", "none"); $("#divleft").css("display", "none"); $("#divoptions").css("display", "block"); } else { $("#divright").css("display", "block"); $("#divleft").css("display", "block"); $("#divoptions").css("display", "none"); } }; $scope.SaveAnswer = function () { $rootScope.isLoading = false; $('#spinner').css('visibility', 'hidden'); $scope.CreateLabExerciseDataToSave(); //LabExerciseService.saveLabExerciseAttempt("superadmin", $scope.LabExerciseAttemptedData) $scope.labExerciseAttempt = []; $scope.labExerciseAttempt.push({ 'LabExerciseUserData': $scope.LabExerciseUserData, 'userId': $scope.userId, 'labExerciseIdentifier': $scope.labExerciseIdentifier, 'LastQuestion': $scope.LastQuestion, 'TotalQuestions': $scope.TotalQuestions }); $scope.initialQuestioNo = $scope.LastQuestion; LabExerciseService.saveLabExerciseAttempt($scope.labExerciseAttempt) .then( function (result) { $rootScope.isLoading = false; $('#spinner').css('visibility', 'hidden'); //saved successfully.variable name is not correct but errorMessage represnts message $rootScope.errorMessage = result; $("#messageModal").modal('show'); }, function (error) { $rootScope.isLoading = false; $('#spinner').css('visibility', 'hidden'); console.log(' Error in saving lab exercise = ' + error.statusText); // alert(LoginMessageConstants.ERROR_IN_FECTHING_DETAILS); $rootScope.isVisibleLogin = true; $rootScope.errorMessage = error; $("#messageModal").modal('show'); } ) }; $scope.usersCorrectQuestData = []; $scope.CreateLabExerciseDataToSave = function () { $scope.LabExerciseAttemptedData = []; $scope.lb = []; //get user answers $scope.getUserAnswers(); //get correct response $scope.getCorrectResponse(); // $scope.correctResponseForSavingDatabaseArray = $scope.correctResponseForSavingDatabase.split(','); //get dragItems $scope.getDragItems(); //get score $scope.getScore(); $scope.userId = JSON.parse(localStorage.getItem('loggedInUserDetails')).Id; $scope.labExerciseIdentifier = $scope.labExercideIdentifier; $scope.LastQuestion = $scope.quiznumber; $scope.TotalQuestions = $scope.TotalNumberofQuiz; $scope.LabExerciseAttemptedData = { MaxScore: $scope.MaxScore, UserAnswer: $scope.commaSeperatedUserAnswers, QuestionNo: $scope.quiznumber, CorrectAnswer: JSON.stringify($scope.correctResponseForSavingDatabase), DragItems: $scope.DragItems, Score: $scope.Score, title: $scope.activityTitle } var thisQuestiondataInLabExerciseUserData = new jinqJs() .from($scope.LabExerciseUserData) .where('QuestionNo == ' + $scope.LabExerciseAttemptedData.QuestionNo) .select(); if (thisQuestiondataInLabExerciseUserData.length>0) { angular.forEach($scope.LabExerciseUserData, function (value, key) { if (value.QuestionNo == $scope.LabExerciseAttemptedData.QuestionNo) { } else { $scope.lb.push(value); } }) $scope.LabExerciseUserData = []; $scope.lb.push($scope.LabExerciseAttemptedData); angular.forEach($scope.lb,function(value1,key1){ $scope.LabExerciseUserData.push(value1); }) } else $scope.LabExerciseUserData.push($scope.LabExerciseAttemptedData); $scope.usersCorrectQuestData = []; //alert($scope.LabExerciseUserData); if ($scope.LabExerciseUserData.length > 0) { for(var i=0;i<=$scope.LabExerciseUserData.length-1;i++) { if ($scope.LabExerciseUserData[i].MaxScore == $scope.LabExerciseUserData[i].Score) { $scope.usersCorrectQuestData.push({ MaxScore: $scope.LabExerciseUserData[i].MaxScore, UserAnswer: $scope.LabExerciseUserData[i].UserAnswer, QuestionNo: $scope.LabExerciseUserData[i].QuestionNo, CorrectAnswer: JSON.stringify($scope.LabExerciseUserData[i].CorrectAnswer), DragItems: $scope.LabExerciseUserData[i].DragItems, Score: $scope.LabExerciseUserData[i].Score, title: $scope.LabExerciseUserData[i].title, CorrectStatus: 'Correct' }); } else { $scope.usersCorrectQuestData.push({ MaxScore: $scope.LabExerciseUserData[i].MaxScore, UserAnswer: $scope.LabExerciseUserData[i].UserAnswer, QuestionNo: $scope.LabExerciseUserData[i].QuestionNo, CorrectAnswer: JSON.stringify($scope.LabExerciseUserData[i].CorrectAnswer), DragItems: $scope.LabExerciseUserData[i].DragItems, Score: $scope.LabExerciseUserData[i].Score, title: $scope.LabExerciseUserData[i].title, CorrectStatus: 'Incorrect' }); } } } else { if ($scope.MaxScore == $scope.Score) { $scope.usersCorrectQuestData.push({ MaxScore: $scope.MaxScore, UserAnswer: $scope.commaSeperatedUserAnswers, QuestionNo: $scope.quiznumber, CorrectAnswer: JSON.stringify($scope.correctResponseForSavingDatabase), DragItems: $scope.DragItems, Score: $scope.Score, title: $scope.activityTitle, CorrectStatus: 'Correct' }); } else { $scope.usersCorrectQuestData.push({ MaxScore: $scope.MaxScore, UserAnswer: $scope.commaSeperatedUserAnswers, QuestionNo: $scope.quiznumber, CorrectAnswer: JSON.stringify($scope.correctResponseForSavingDatabase), DragItems: $scope.DragItems, Score: $scope.Score, title: $scope.activityTitle, CorrectStatus: 'Incorrect' }); } } // console.log($scope.usersCorrectQuestData); // console.log($scope.LabExerciseUserData); } $scope.reviewAttemptAnswer = function (evt) { $scope.isReviewBtnSelected = true; $("#reviewBtn").css("display", "none"); $("#resetBtn").css("display", "none"); $("#saveBtn").css("display", "none"); $("#submitResultHtml").css("display", "none"); $("#questionHtml").css("display", "block"); $("#reportBtn").css("display", "block"); $("#quizSubmitBtn").css("display", "none"); $scope.quiznumber = evt.target.id; // $scope.CreateLabExerciseDataToSave(); $scope.dragableId = ""; $scope.resetQuiz(); // $scope.GetQuizByTopic(); //$scope.ShowHideDiv(); } $scope.getUserAnswers = function () { var userAnswers = []; var blockBoxes = $("div[id*='blockbox']"); var blockBoxesInTextBlock = $("#textblock").children(); var blockBoxLength = blockBoxes.length - blockBoxesInTextBlock.length; var blockAnswers = $("div[id*='blockans']"); for (var i = 0; i < blockAnswers.length; i++) { var id = (blockAnswers[i].id).split('-')[1]; userAnswers[id.replace('T', '')] = blockAnswers[i].innerHTML; } $scope.commaSeperatedUserAnswers = ''; for (var i = 1; i <= blockBoxLength; i++) { var userAns = userAnswers[i]; if (userAns != undefined) { $scope.commaSeperatedUserAnswers += userAns + ','; } else { $scope.commaSeperatedUserAnswers += '' + ','; } } //remove last comma $scope.commaSeperatedUserAnswers = $scope.commaSeperatedUserAnswers.replace(/,$/, ''); } $scope.getCorrectResponse = function () { $scope.correctResponse = ''; $scope.correctResponseForSavingDatabase = ''; var cr = new jinqJs() .from($scope.LabExData.LabExercise[0].Questions) .where('Number == ' + $scope.quiznumber) .select(); for (var i = 0; i < cr[0].correctResponse.length; i++) { var blankBox = cr[0].correctResponse[i].OptionBox; var option; if (cr[0].correctResponse[i].Answer.indexOf('|') != -1) { var multipleanswer = cr[0].correctResponse[i].Answer.split('|'); option = multipleanswer[0]; } else option = cr[0].correctResponse[i].Answer; var options = new jinqJs() .from(cr[0].Options) .where('OptionNumber == ' + option) .select(); var optionText = options[0].OptionTitle; $scope.correctResponse += blankBox + ' ' + option + ','; $scope.correctResponseForSavingDatabase += parseInt(blankBox.replace('T', '')) - 1 + ':' + optionText + ','; } $scope.correctResponse = $scope.correctResponse.replace(/,$/, ''); $scope.correctResonseKeyValue = $scope.correctResponse.split(','); $scope.correctResponseForSavingDatabase = $scope.correctResponseForSavingDatabase.replace(/,$/, ''); } $scope.getDragItems = function () { var OptionBoxes = $("div[id*='block-']"); $scope.DragItems = ''; for (var i = 0; i < OptionBoxes.length; i++) { $scope.DragItems += OptionBoxes[i].id.replace('block-', '') + ',' + OptionBoxes[i].innerHTML + ';'; } $scope.DragItems = $scope.DragItems.replace(/;$/, ''); } $scope.getScore = function () { var abc = $scope.UserAttempt; $scope.Score = 0; angular.forEach($scope.UserAttempt, function (value, key) { var userOptedAnswer = value.BlankBoxName + ' ' + value.OptionName; for(var i=0;i<$scope.correctResonseKeyValue.length;i++) { if (userOptedAnswer == $scope.correctResonseKeyValue[i]) { $scope.Score += 1; } } }) } $scope.GetSavedLabExerciseFromDatabase = function () { var labExerciseInfo = { userId: 1, identifier: 'di' }; LabExerciseService.GetLabExercise(labExerciseInfo) .then( function (result) { if (result != undefined && result != AIAConstants.SAVED_LAB_EXERCISE_NOT_FOUND) { $scope.SavedLabExercise = result; $scope.ShowSavedLabExercise(); } }, function(error){ console.log(' Error in getting LabExercise = ' + error.statusText); $rootScope.errorMessage = AdminConstants.ERROR_IN_FECTHING_DETAILS; $("#messageModal").modal('show'); }) } $scope.ShowSavedLabExercise = function () { //from database var lastQuestion = $scope.quiznumber; var lastQuestionDetails; var lastQuestionAnswers; //if user opted this question, it will have entry in LabExerciseUserData var thisQuestiondataInLabExerciseUserData = new jinqJs() .from($scope.LabExerciseUserData) .where('QuestionNo == ' + $scope.quiznumber) .select(); //if this exists in LabExerciseUserData, show the new opted else show from database if (thisQuestiondataInLabExerciseUserData.length > 0){ lastQuestionDetails = thisQuestiondataInLabExerciseUserData; if (lastQuestionDetails != undefined && lastQuestionDetails.length > 0) lastQuestionAnswers = lastQuestionDetails[0].UserAnswer.split(','); } else{ lastQuestionDetails = new jinqJs() .from($scope.SavedLabExercise.labExercise) .where('QuestionNo == ' + lastQuestion) .select(); if (lastQuestionDetails != undefined && lastQuestionDetails.length>0) lastQuestionAnswers = lastQuestionDetails[0].UserAnswers.split(','); } if (lastQuestionDetails != undefined && lastQuestionDetails.length > 0) { $scope.QustionAnsKeyValue = []; for (var i = 0; i < lastQuestionAnswers.length; i++) { var num = i + 1; $scope.QustionAnsKeyValue.push({ blockbox: 'T' + num, text: lastQuestionAnswers[i] }); if (lastQuestionAnswers[i] != "") { var blocks = $("div[id*='block-']"); for (var j = 0; j < blocks.length; j++) { if ((blocks[j].innerHTML).toString() == lastQuestionAnswers[i]) { $('#' + blocks[j].id).css("display", "none"); }; } } } var labQuestionData = new jinqJs() .from($scope.LabExData.LabExercise[0].Questions) .where('Number == ' + lastQuestion) .select(); angular.forEach($scope.QustionAnsKeyValue, function (value, key) { var questionOptionBox = new jinqJs() .from(labQuestionData[0].OptionBox) .where('BoxName == ' + value.blockbox) .select(); if (value.text != "") { $scope.DraggedList.push({ "id": value.blockbox, "optionName": value.blockbox, "Value": value.text, "topcoord": questionOptionBox[0].topcoord, "leftcoord": questionOptionBox[0].leftcoord }); $rootScope.isLoading = false; $('#spinner').css('visibility', 'hidden'); } }) } $rootScope.isLoading = false; $('#spinner').css('visibility', 'hidden'); } }] ); AIA.directive('draggable', function () { return { link: function ($scope, element, attrs) { element[0].addEventListener('dragstart', $scope.handleDragStart, false); element[0].addEventListener('dragend', $scope.handleDragEnd, false); } } }); AIA.directive('droppable', function () { return { link: function ($scope, element, attrs) { element[0].addEventListener('drop', $scope.handleDrop, false); element[0].addEventListener('dragover', $scope.handleDragOver, false); } } }); AIA.directive('imageonload', function () { return { restrict: 'A', link: function (scope, element, attrs) { element.bind('load', function (e) { $('#imgdiv').css('width', this.naturalWidth + "px"); }); element.bind('error', function () { //alert('image could not be loaded'); }); } }; }); //angular.module('app') //.filter('to_trusted', ['$sce', function ($sce) { // return function (text) { // return $sce.trustAsHtml(text); // }; //}]);