/// AIA.controller("LabExercController", ["$scope", "$rootScope", "pages", "$log", '$http', 'DataService', '$filter', '$location', '$document', '$sce',"$compile","$location", function ($scope, $rootScope, pages, log, $http, DataService, $filter, $location, $document, $sce, $compile, $location) { $scope.$sce = $sce; $scope.LabExerciseName; $scope.LabExerciseQuiz = null; $scope.TotalNumberofQuiz = "0"; $scope.quiznumber = 1; $scope.activityTitle = ""; $scope.Title = ""; $scope.Imagepath = ""; $scope.DraggedList = []; $scope.dragableId = ""; $scope.blReviewAttempt = false; $scope.$on('$viewContentLoaded', function (event) { if ($rootScope.refreshcheck == null) { $location.path('/'); } // 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.showTabButton = 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.showTabButton = 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; if (title != null) { $scope.LabExerciseQuiz = title; $scope.LabExerciseName = title.Topic; $location.url("/lab-exercises-detail?labexercise=" + (title.Slug || "")); } } $scope.GetQuizByTopic = function () { if ($rootScope.refreshcheck == null) { $location.path('/'); } var keywords = $location.search(); $scope.LabExerciseName = keywords.labexercise; $scope.LabExerciseModules = null; $scope.LabExerciseBoxes = null; var labExerciseModulePath = '~/../content/data/json/le/' + $scope.LabExerciseName + '.json'; DataService.getAnotherJson(labExerciseModulePath).then( function (result) { //debugger; // alert(JSON.stringify(result.LabExercise)); $.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) { if (result.LabExercise[index].Questions[index1].ImagePath == "") { $("#imgblock").css("display", "none"); $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"); $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); } }); //$scope.quiznumber++; } }); //$scope.ShowHideDiv(); }, function (error) { console.log(error.statusText) } ) } $scope.nextQuiz = function () { if ($scope.quiznumber == $scope.TotalNumberofQuiz) return; else $scope.quiznumber++; $scope.resetQuiz(); $scope.ShowHideDiv(); } $scope.prevQuiz = function () { if ($scope.quiznumber == 1) return; else $scope.quiznumber--; $scope.resetQuiz(); $scope.ShowHideDiv(); } $scope.handleDragStart = function (e) { this.style.opacity = '0.4'; e.dataTransfer.setData('text/plain', this.innerHTML); $scope.dragableId = $(this).attr("Id"); }; $scope.handleDragEnd = function (e) { this.style.opacity = '1.0'; }; $scope.handleDrop = function (e) { e.preventDefault(); e.stopPropagation(); var x = $("#droppable").offset(); //alert(x.left + "," + $("#droppable").clientWidth + "," + x.top); var id = $(this).attr("id"); var keywords = $location.search(); 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) { 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 { 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.DraggedList.push({ "id": id.split('-')[1], "optionName": id.split('-')[1], "Value": dataText, "topcoord": Options[inx].topcoord, "leftcoord": Options[inx].leftcoord }); //$('#' + $scope.dragableId).remove(); $('#' + $scope.dragableId).css("display", "none"); $('#blockans-' + Options[inx].OptionNumber).css("background-color", "transparent !important"); //$('#' + id).remove(); } }); } }); } }); }, function (error) { console.log(error.statusText) } ) } $scope.$apply(); //alert($("#divoptions").css("display") + "," + $("#divoptions").html()); //if ($("#divoptions").css("display") == "block" && $("#divoptions").html()=="") //{ // $("#divoptions").html("



") //} }; $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.resetQuiz = function () { $scope.DraggedList = []; $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"); } }; }] ); 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); // }; //}]);