Skip to content

Commit ead24ef

Browse files
committed
Refactoring loadLesson to loadLessonIfChanged and smaller loadLesson
1 parent 463bb86 commit ead24ef

3 files changed

Lines changed: 28 additions & 19 deletions

File tree

src/frontend/accordion.js

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,17 +42,20 @@ var scrollDownUntilTutorialVisible = function() {
4242

4343
var appendTutorialToAccordion = function(tmptitle, lessons, index) {
4444
var title = tmptitle.clone();
45-
title.wrapInner("<a href='#' class='" + cssClasses.titleHref + "' tutorialid=" + index + "/>")
45+
title.wrapInner("<a href='#' class='" + cssClasses.titleHref +
46+
"' tutorialid=" + index + "/>")
4647
.addClass(cssClasses.title)
4748
.prepend(
48-
'<i class="' + cssClasses.titleSymbolClass + '">' + cssClasses.titleSymbolActive + '</i>')
49+
'<i class="' + cssClasses.titleSymbolClass + '">' +
50+
cssClasses.titleSymbolActive + '</i>')
4951
.hover(function() {
5052
$(this).toggleClass(cssClasses.titleHover);
5153
})
5254
.click(function() {
5355
$(this).toggleClass(cssClasses.titleToggleClass)
5456
.find("> .titleSymbol").toggleText(
55-
cssClasses.titleSymbolActive + " " + cssClasses.titleSymbolInactive).end()
57+
cssClasses.titleSymbolActive + " " +
58+
cssClasses.titleSymbolInactive).end()
5659
.next().slideToggle(scrollDownUntilTutorialVisible);
5760
return false;
5861
})
@@ -61,7 +64,8 @@ var appendTutorialToAccordion = function(tmptitle, lessons, index) {
6164
var content = '<ul>';
6265
for (var j = 0; j < lessons.length; j++) {
6366
content = content +
64-
'<li class="' + cssClasses.innerListItem + '"><a href="#" class="' + cssClasses.submenuHref + '" tutorialid=' + index +
67+
'<li class="' + cssClasses.innerListItem + '"><a href="#" class="' +
68+
cssClasses.submenuHref + '" tutorialid=' + index +
6569
' lessonid=' + j + '> ' + lessons[j].title + '</a></li>';
6670
}
6771
content += '</ul>';
@@ -108,7 +112,8 @@ var addExpandLoadTutorialInstructionsButton = function() {
108112
expandButton.click(function() {
109113
var title = $("#loadTutorialMenu");
110114
var instructions = $("#loadTutorialInstructions");
111-
expandButton.toggleText(cssClasses.titleSymbolInactive + " " + cssClasses.titleSymbolActive);
115+
expandButton.toggleText(cssClasses.titleSymbolInactive + " " +
116+
cssClasses.titleSymbolActive);
112117
title.toggleClass(
113118
cssClasses.titleToggleClass);
114119
instructions.slideToggle(scrollDownUntilTutorialVisible);

src/frontend/fetchTutorials.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ module.exports = function(callback) {
1010
console.log("Obtaining list of tutorials successful: " + tutorialPaths);
1111
callback(0, tutorialPaths);
1212
}).catch(function(error) {
13-
console.log("There was an error obtaining the list of " +
13+
console.log("There was an error obtaining the list of " +
1414
"tutorial files: " + error);
15-
});
15+
});
1616
};

src/frontend/tutorials.js

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,6 @@ var firstLoadFlag = true; // true until we show tutorial for the first time. Nee
1010
var accordion = require('./accordion')();
1111

1212
var loadLesson = function(tutorialid, lessonid) {
13-
console.log(tutorialNr + "==" + tutorialid + " or " + lessonNr + "==" +
14-
lessonid);
15-
var changedLesson = (tutorialNr !== tutorialid || lessonNr !==
16-
lessonid || firstLoadFlag);
17-
firstLoadFlag = false;
1813
if (tutorialid >= 0 && tutorialid < tutorials.length) {
1914
tutorialNr = tutorialid;
2015
}
@@ -23,11 +18,20 @@ var loadLesson = function(tutorialid, lessonid) {
2318
}
2419
var lessonContent = tutorials[tutorialNr].lessons[lessonNr]
2520
.html;
21+
var title = tutorials[tutorialNr].title.text();
22+
$("#lesson").html(lessonContent).prepend("<h3>" + title + "</h3>");
23+
$("#lesson").scrollTop(0); // scroll to the top of a new lesson
24+
MathJax.Hub.Queue(["Typeset", MathJax.Hub, "#lesson"]);
25+
};
26+
27+
var loadLessonIfChanged = function(tutorialid, lessonid) {
28+
console.log(tutorialNr + "==" + tutorialid + " or " + lessonNr + "==" +
29+
lessonid);
30+
var changedLesson = (tutorialNr !== tutorialid || lessonNr !==
31+
lessonid || firstLoadFlag);
32+
firstLoadFlag = false;
2633
if (changedLesson) {
27-
var title = tutorials[tutorialNr].title.text();
28-
$("#lesson").html(lessonContent).prepend("<h3>" + title + "</h3>");
29-
$("#lesson").scrollTop(0); // scroll to the top of a new lesson
30-
MathJax.Hub.Queue(["Typeset", MathJax.Hub, "#lesson"]);
34+
loadLesson(tutorialid, lessonid);
3135
}
3236
};
3337

@@ -44,14 +48,14 @@ var showLesson = function(e) {
4448
lessonId = $(this).attr('lessonid');
4549
lessonIdNr = parseInt(lessonId.match(/\d/g), 10);
4650
}
47-
loadLesson(tutorialIdNr, lessonIdNr);
51+
loadLessonIfChanged(tutorialIdNr, lessonIdNr);
4852
document.getElementById("lessonTabTitle").click();
4953
return false;
5054
};
5155

5256
var switchLesson = function(incr) {
5357
// console.log("Current lessonNr " + lessonNr);
54-
loadLesson(tutorialNr, lessonNr + incr);
58+
loadLessonIfChanged(tutorialNr, lessonNr + incr);
5559
};
5660

5761
var populateTutorialElement = function(theHtml) {
@@ -80,7 +84,7 @@ var makeTutorialsList = function(i, tutorialNames) {
8084
} else {
8185
accordion.makeAccordion(tutorials);
8286
$(".menuTitle").on("click", {lessonIdNr: "0"}, showLesson);
83-
loadLesson(tutorialNr, lessonNr);
87+
loadLessonIfChanged(tutorialNr, lessonNr);
8488
}
8589
};
8690

0 commit comments

Comments
 (0)