diff --git a/src/main/webapp/WEB-INF/pages/main_new.jsp b/src/main/webapp/WEB-INF/pages/main_new.jsp index 8dc410429..2ace0878d 100644 --- a/src/main/webapp/WEB-INF/pages/main_new.jsp +++ b/src/main/webapp/WEB-INF/pages/main_new.jsp @@ -27,6 +27,7 @@ + @@ -40,7 +41,7 @@ - + @@ -114,9 +115,9 @@ {{item.name}} diff --git a/src/main/webapp/css/main.css b/src/main/webapp/css/main.css index bcdd383f2..0f47351d2 100644 --- a/src/main/webapp/css/main.css +++ b/src/main/webapp/css/main.css @@ -801,6 +801,22 @@ fieldset[disabled] .btn-warning.active { max-width: 200px; font-size: x-small; } +/* MENU */ +.sidebar ul span.lessonComplete { + float: right; + margin-left: -5px; + /*margin-right: 5px;*/ + padding-top: 15px; +} + +#leftside-navigation ul li.selected { + background-color: #555; +} + +#leftside-navigation ul li.selected a.selected { + color:white; +} + /* HINTS */ #hintsViewTop{ diff --git a/src/main/webapp/js/goatConstants.js b/src/main/webapp/js/goatConstants.js index 2baf06034..1876292ec 100644 --- a/src/main/webapp/js/goatConstants.js +++ b/src/main/webapp/js/goatConstants.js @@ -2,6 +2,8 @@ var goatConstants = { CATEGORYCLASS:'fa-angle-right pull-right', + lessonCompleteClass:'glyphicon glyphicon-check lessonComplete', + selectedMenuClass:'selected', menuPrefix : [ { name:'LESSONS', diff --git a/src/main/webapp/js/goatControllers.js b/src/main/webapp/js/goatControllers.js index f3b37e554..5ef2cedb1 100644 --- a/src/main/webapp/js/goatControllers.js +++ b/src/main/webapp/js/goatControllers.js @@ -11,12 +11,31 @@ var goatMenu = function($scope, $http, $modal, $log, $templateCache) { goat.data.loadMenu($http).then( //$http({method: 'GET', url: goatConstants.lessonService}) function(menuData) { var menuItems = goat.utils.addMenuClasses(goatConstants.menuPrefix.concat(menuData.data)); + //top-tier 'categories' for (var i=0;i> id + menuItems[i].children[j].children[k].id = menuItems[i].children[j].children[k].name.replace(/\s|\(|\)/g,''); + if (menuItems[i].children[j].children[k].complete) { + menuItems[i].children[j].children[k].completeClass= goatConstants.lessonCompleteClass; + } else { + menuItems[i].children[j].children[k].completeClass= '' + } + } + } + } } } - $scope.menuTopics = menuItems; }, function(error) { @@ -26,13 +45,20 @@ var goatMenu = function($scope, $http, $modal, $log, $templateCache) { ); }; - $scope.renderLesson = function(url) { + $scope.renderLesson = function(id,url) { //console.log(url + ' was passed in'); // use jquery to render lesson content to div $scope.hintIndex = 0; var curScope = $scope; $('.lessonHelp').hide(); + // clean up menus, mark selected + $('ul li.selected').removeClass(goatConstants.selectedMenuClass) + $('ul li.selected a.selected').removeClass(goatConstants.selectedMenuClass) + $('#'+id).addClass(goatConstants.selectedMenuClass); + $('#'+id).parent().addClass(goatConstants.selectedMenuClass); + // curScope.parameters = goat.utils.scrapeParams(url); + // lesson content goat.data.loadLessonContent($http,url).then( function(reply) { goat.data.loadLessonTitle($http).then( @@ -41,6 +67,8 @@ var goatMenu = function($scope, $http, $modal, $log, $templateCache) { } ); $("#lesson_content").html(reply.data); + //hook forms + goat.utils.makeFormsAjax(); $('#leftside-navigation').height($('#main-content').height()+15) $scope.$emit('lessonUpdate',{params:curScope.parameters}); } @@ -56,35 +84,16 @@ var goatMenu = function($scope, $http, $modal, $log, $templateCache) { if ($scope.expandMe) { $('ul#'+id).slideDown(300).attr('isOpen',1); } - console.log('accordion for ' + id); } $scope.renderMenu(); - //can be augmented later to 'resume' for a given user ... currently kluged to start at fixed lesson + // runs on first loadcan be augmented later to ' + // resume' for a given user ... currently kluged to start at fixed lesson var url = 'attack?Screen=32&menu=5'; - angular.element($('#leftside-navigation')).scope().renderLesson(url); + angular.element($('#leftside-navigation')).scope().renderLesson(null,url); } -/*goatMenu.animation('.slideDown', function() { - var NgHideClassName = 'ng-hide'; - return { - beforeAddClass: function(element, className, done) { - if (className === NgHideClassName) { - $(element).slideUp(done); - } - }, - removeClass: function(element, className, done) { - if (className === NgHideClassName) { - $(element).hide().slideDown(done); - } - } - }; - - -});*/ - /* lesson controller */ var goatLesson = function($scope,$http,$log) { - //hook forms $('#hintsView').hide(); // adjust menu to lessonContent size if necssary