Skip to content

Commit 867b692

Browse files
author
Jason White
committed
rounded out work on restart lesson and finished implementing showSource/showHints through UI, now that they come as metadata for a lesson
1 parent 4ff73d0 commit 867b692

File tree

3 files changed

+36
-24
lines changed

3 files changed

+36
-24
lines changed

src/main/webapp/WEB-INF/pages/main_new.jsp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -115,9 +115,9 @@
115115
<a ng-click="accordionMenu(item.id)" href=""><i class="fa {{item.class}}"></i><span>{{item.name}}</span></a><!-- expanded = !expanded-->
116116
<ul class="slideDown lessonsAndStages {{item.displayClass}}" id="{{item.id}}" isOpen=0>
117117
<li ng-repeat="lesson in item.children" class="{{lesson.selectedClass}}">
118-
<a ng-click="renderLesson(lesson.id,lesson.link)" id="{{lesson.id}}" class="{{lesson.selectedClass}}" title="link to {{lesson.name}}" href="">{{lesson.name}}</a><span class="{{lesson.completeClass}}"></span>
118+
<a ng-click="renderLesson(lesson.id,lesson.link,{showSource:lesson.showSource,showHints:lesson.showHints})" id="{{lesson.id}}" class="{{lesson.selectedClass}}" title="link to {{lesson.name}}" href="">{{lesson.name}}</a><span class="{{lesson.completeClass}}"></span>
119119
<span ng-repeat="stage in lesson.children">
120-
<a ng-click="renderLesson(lesson.id,stage.link)" class="selectedClass" id="{{stage.id}}" title="link to {{stage.name}}" href="">{{stage.name}}</a><span class="{{stage.completeClass}}"></span>
120+
<a ng-click="renderLesson(stage.id,stage.link,{showSource:stage.showSource,showHints:stage.showHints})" class="selectedClass" id="{{stage.id}}" title="link to {{stage.name}}" href="">{{stage.name}}</a><span class="{{stage.completeClass}}"></span>
121121
</span>
122122
</li>
123123
</ul>
@@ -135,11 +135,11 @@
135135
<div class="col-md-12" align="left">
136136
<div class="panel">
137137
<div class="panel-body">
138-
<button type="button" id="showSourceBtn" class="btn btn-primary btn-xs" ng-click="showLessonSource()">Java [Source]</button>
138+
<button type="button" id="showSourceBtn" ng-show="showSource" class="btn btn-primary btn-xs" ng-click="showLessonSource()">Java [Source]</button>
139139
<button type="button" id="showSolutionBtn" class="btn btn-primary btn-xs" ng-click="showLessonSolution()">Solution</button>
140140
<button type="button" id="showPlanBtn" class="btn btn-primary btn-xs" ng-click="showLessonPlan()">Lesson Plan</button>
141-
<button type="button" id="showHintsBtn" class="btn btn-primary btn-xs" ng-click="viewHints()">Hints</button>
142-
<button type="button" id="restartLessonBtn" class="btn btn-xs" ng-click="restartLesson()">Restart Lesson</button>
141+
<button type="button" id="showHintsBtn" ng-show="showHints" class="btn btn-primary btn-xs" ng-click="viewHints()">Hints</button>
142+
<button type="button" id="restartLessonBtn" class="btn btn-xs" ng-click="restartLesson()">Restart Lesson</button>
143143
</div>
144144
</div>
145145
<div class="lessonHelp" id="lesson_hint_row">
@@ -149,7 +149,7 @@
149149
<span class="glyphicon-class glyphicon glyphicon-circle-arrow-left" id="showPrevHintBtn" ng-click="viewPrevHint()"></span>
150150
<span class="glyphicon-class glyphicon glyphicon-circle-arrow-right" id="showNextHintBtn" ng-click="viewNextHint()"></span>
151151
<br/>
152-
<span bind-html-unsafe="curHint"></span>
152+
<span ng-show="showHints" bind-html-unsafe="curHint"></span>
153153
<!--<span id="curHintContainer"></span>-->
154154
</div>
155155
</div>

src/main/webapp/js/goatConstants.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,11 @@ var goatConstants = {
2424
menuService: 'service/lessonmenu.mvc',
2525
lessonTitleService: 'service/lessontitle.mvc',
2626
restartLessonService: 'service/restartlesson.mvc',
27-
// literals
27+
28+
// literal messages
2829
notFound: 'Could not find',
29-
noHints: 'There are no hints defined.'
30+
noHints: 'There are no hints defined.',
31+
noSourcePulled: 'No source was retrieved for this lesson'
3032

3133
};
3234

src/main/webapp/js/goatControllers.js

Lines changed: 26 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -64,9 +64,7 @@ var goatMenu = function($scope, $http, $modal, $log, $templateCache) {
6464
);
6565
};
6666

67-
$scope.renderLesson = function(id,url) {
68-
//console.log(url + ' was passed in');
69-
// use jquery to render lesson content to div
67+
$scope.renderLesson = function(id,url,showControls) {//TODO convert to single object parameter
7068
$scope.hintIndex = 0;
7169
var curScope = $scope;
7270
$('.lessonHelp').hide();
@@ -89,7 +87,7 @@ var goatMenu = function($scope, $http, $modal, $log, $templateCache) {
8987
goat.utils.ajaxifyAttackHref();
9088
$('#leftside-navigation').height($('#main-content').height()+15)//TODO: get ride of fixed value (15)here
9189
//notifies goatLesson Controller of the less change
92-
$scope.$emit('lessonUpdate',{params:curScope.parameters});
90+
$scope.$emit('lessonUpdate',{params:curScope.parameters,'showControls':showControls});
9391
}
9492
)
9593
$scope.renderMenu();
@@ -123,6 +121,8 @@ var goatLesson = function($scope,$http,$log) {
123121

124122
$scope.$on('lessonUpdate',function(params){
125123
$scope.parameters = arguments[1].params;
124+
$scope.showHints = (arguments[1].showControls && arguments[1].showControls.showHints);
125+
$scope.showSource = (arguments[1].showControls && arguments[1].showControls.showSource);
126126
curScope = $scope; //TODO .. update below, this curScope is probably not needed
127127
goat.data.loadCookies($http).then(
128128
function(resp) {
@@ -131,22 +131,32 @@ var goatLesson = function($scope,$http,$log) {
131131
);
132132
//hints
133133
curScope.hintIndex = 0;
134-
goat.data.loadHints($http).then(
135-
function(resp) {
136-
curScope.hints = resp.data;
137-
if (curScope.hints.length > 0 && curScope.hints[0].hint.indexOf(goatConstants.noHints) === -1) {
138-
goat.utils.displayButton('showHintsBtn', true);
139-
} else {
140-
goat.utils.displayButton('showHintsBtn', false);
134+
if ($scope.showHints) {
135+
goat.data.loadHints($http).then(
136+
function(resp) {
137+
curScope.hints = resp.data;
138+
if (curScope.hints.length > 0 && curScope.hints[0].hint.indexOf(goatConstants.noHints) === -1) {
139+
goat.utils.displayButton('showHintsBtn', true);
140+
} else {
141+
goat.utils.displayButton('showHintsBtn', false);
142+
}
141143
}
142-
}
143-
);
144+
);
145+
} else {
146+
$scope.hints = null;
147+
goat.utils.displayButton('showHintsBtn', false);
148+
}
144149
//source
145-
goat.data.loadSource($http).then(
150+
if ($scope.showSource) {
151+
goat.data.loadSource($http).then(
146152
function(resp) {
147153
curScope.source = resp.data;
148154
}
149-
);
155+
);
156+
} else {
157+
$scope.source = goatConstants.noSourcePulled;
158+
}
159+
150160
//plan
151161
goat.data.loadPlan($http).then(
152162
function(resp) {
@@ -239,7 +249,7 @@ var goatLesson = function($scope,$http,$log) {
239249
$scope.restartLesson = function () {
240250
goat.data.loadRestart($http).then(
241251
function(resp) {
242-
angular.element($('#leftside-navigation')).scope().renderLesson(null,resp.data);
252+
angular.element($('#leftside-navigation')).scope().renderLesson(null,resp.data,{showSource:$scope.showSource,showHints:$scope.showHints});
243253
}
244254
)
245255
}

0 commit comments

Comments
 (0)