Skip to content

Commit 1df7b3b

Browse files
committedJun 1, 2017
Added renderMap functionality.
1 parent f2408da commit 1df7b3b

File tree

6 files changed

+97
-8
lines changed

6 files changed

+97
-8
lines changed
 

Diff for: ‎challenges.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"name":"Python Beginner Challenges","last_edit":1496278825778,"challenges":[[],[{"id":"592f1cc969cf862d8a7bb7f2","title":"Input Edit","repl":"https://repl.it/student_embed/assignment/136137/d860e0ad34862a709895f54706dcf9af","completed":false,"chapter":1,"lesson":3}],[],[],[{"id":"592893767a194ee412ae2e1f","title":"Addition Edit","repl":"https://repl.it/student_embed/assignment/136137/d860e0ad34862a709895f54706dcf9af","completed":false,"chapter":4,"lesson":1},{"id":"592895b87a194ee412ae2e20","title":"Subtraction","repl":"https://repl.it/student_embed/assignment/136137/d860e0ad34862a709895f54706dcf9af","completed":false,"chapter":4,"lesson":2},{"id":"592895ef7a194ee412ae2e21","title":"Multiplication","repl":"https://repl.it/student_embed/assignment/136137/d860e0ad34862a709895f54706dcf9af","completed":false,"chapter":4,"lesson":3},{"id":"5928961e7a194ee412ae2e22","title":"Float Division","repl":"https://repl.it/student_embed/assignment/136137/d860e0ad34862a709895f54706dcf9af","completed":false,"chapter":4,"lesson":4},{"id":"592896397a194ee412ae2e23","title":"Integer Division","repl":"https://repl.it/student_embed/assignment/136137/d860e0ad34862a709895f54706dcf9af","completed":false,"chapter":4,"lesson":5},{"id":"5928965a7a194ee412ae2e24","title":"Exponents","repl":"https://repl.it/student_embed/assignment/136137/d860e0ad34862a709895f54706dcf9af","completed":false,"chapter":4,"lesson":6},{"id":"592896717a194ee412ae2e25","title":"Remainder","repl":"https://repl.it/student_embed/assignment/136137/d860e0ad34862a709895f54706dcf9af","completed":false,"chapter":4,"lesson":7},{"id":"592898c97a194ee412ae2e26","title":"Divmod","repl":"https://repl.it/student_embed/assignment/136137/d860e0ad34862a709895f54706dcf9af","completed":false,"chapter":4,"lesson":8},{"id":"592898dc7a194ee412ae2e27","title":"Square Root","repl":"https://repl.it/student_embed/assignment/136137/d860e0ad34862a709895f54706dcf9af","completed":false,"chapter":4,"lesson":9},{"id":"592899f67a194ee412ae2e28","title":"Sum","repl":"https://repl.it/student_embed/assignment/136137/d860e0ad34862a709895f54706dcf9af","completed":false,"chapter":4,"lesson":10},{"id":"59289a1a7a194ee412ae2e29","title":"Rounding","repl":"https://repl.it/student_embed/assignment/136137/d860e0ad34862a709895f54706dcf9af","completed":false,"chapter":4,"lesson":11},{"id":"59289a2f7a194ee412ae2e2a","title":"Absolute Value","repl":"https://repl.it/student_embed/assignment/136137/d860e0ad34862a709895f54706dcf9af","completed":false,"chapter":4,"lesson":12},{"id":"59289a477a194ee412ae2e2b","title":"Min Value","repl":"https://repl.it/student_embed/assignment/136137/d860e0ad34862a709895f54706dcf9af","completed":false,"chapter":4,"lesson":13},{"id":"59289a5a7a194ee412ae2e2c","title":"Max Value","repl":"https://repl.it/student_embed/assignment/136137/d860e0ad34862a709895f54706dcf9af","completed":false,"chapter":4,"lesson":14}],[]]}
1+
{"name":"Python Beginner Challenges","last_edit":1496291556934,"chapters":["Introduction","Input","Dummy","Dummy 2","Math"],"challenges":[[],[],[],[],[{"id":"592893767a194ee412ae2e1f","title":"Addition","repl":"https://repl.it/student_embed/assignment/136137/d860e0ad34862a709895f54706dcf9af","completed":false,"chapter":4,"lesson":1},{"id":"592895b87a194ee412ae2e20","title":"Subtraction","repl":"https://repl.it/student_embed/assignment/136137/d860e0ad34862a709895f54706dcf9af","completed":false,"chapter":4,"lesson":2},{"id":"592895ef7a194ee412ae2e21","title":"Multiplication","repl":"https://repl.it/student_embed/assignment/136137/d860e0ad34862a709895f54706dcf9af","completed":false,"chapter":4,"lesson":3},{"id":"5928961e7a194ee412ae2e22","title":"Float Division","repl":"https://repl.it/student_embed/assignment/136137/d860e0ad34862a709895f54706dcf9af","completed":false,"chapter":4,"lesson":4},{"id":"592896397a194ee412ae2e23","title":"Integer Division","repl":"https://repl.it/student_embed/assignment/136137/d860e0ad34862a709895f54706dcf9af","completed":false,"chapter":4,"lesson":5},{"id":"5928965a7a194ee412ae2e24","title":"Exponents","repl":"https://repl.it/student_embed/assignment/136137/d860e0ad34862a709895f54706dcf9af","completed":false,"chapter":4,"lesson":6},{"id":"592896717a194ee412ae2e25","title":"Remainder","repl":"https://repl.it/student_embed/assignment/136137/d860e0ad34862a709895f54706dcf9af","completed":false,"chapter":4,"lesson":7},{"id":"592898c97a194ee412ae2e26","title":"Divmod","repl":"https://repl.it/student_embed/assignment/136137/d860e0ad34862a709895f54706dcf9af","completed":false,"chapter":4,"lesson":8},{"id":"592898dc7a194ee412ae2e27","title":"Square Root","repl":"https://repl.it/student_embed/assignment/136137/d860e0ad34862a709895f54706dcf9af","completed":false,"chapter":4,"lesson":9},{"id":"592899f67a194ee412ae2e28","title":"Sum","repl":"https://repl.it/student_embed/assignment/136137/d860e0ad34862a709895f54706dcf9af","completed":false,"chapter":4,"lesson":10},{"id":"59289a1a7a194ee412ae2e29","title":"Rounding","repl":"https://repl.it/student_embed/assignment/136137/d860e0ad34862a709895f54706dcf9af","completed":false,"chapter":4,"lesson":11},{"id":"59289a2f7a194ee412ae2e2a","title":"Absolute Value","repl":"https://repl.it/student_embed/assignment/136137/d860e0ad34862a709895f54706dcf9af","completed":false,"chapter":4,"lesson":12},{"id":"59289a477a194ee412ae2e2b","title":"Min Value","repl":"https://repl.it/student_embed/assignment/136137/d860e0ad34862a709895f54706dcf9af","completed":false,"chapter":4,"lesson":13},{"id":"59289a5a7a194ee412ae2e2c","title":"Max Value","repl":"https://repl.it/student_embed/assignment/136137/d860e0ad34862a709895f54706dcf9af","completed":false,"chapter":4,"lesson":14}],[]]}

Diff for: ‎challenges/4.1.Addition/lesson_settings.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"lesson_title": "Addition Edit",
2+
"lesson_title": "Addition",
33
"chapter_number": 4,
44
"lesson_number": 1,
55
"id":"592893767a194ee412ae2e1f",

Diff for: ‎generate-challenge-json.js

+18
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,26 @@ dir_list.forEach((dir) => {
5353
"lesson": lesson_number
5454
};
5555

56+
// attempt to autofill 'missing' challenges
57+
//
58+
// const blank_lesson_obj = {
59+
// "id": null,
60+
// "title": "NA",
61+
// "repl": default_repl,
62+
// "completed": false,
63+
// "chapter": null,
64+
// "lesson": null
65+
// }
66+
5667
if (!challenges_id_list.includes(id)) {
5768
let chapter = challenges_list[chapter_number];
69+
// if ( lesson_number !== 1 && chapter.length < lesson_number ) {
70+
// for (let i = 1; i < lesson_number; i++ ) {
71+
// blank_lesson_obj.chapter = chapter_number;
72+
// blank_lesson_obj.lesson = i;
73+
// chapter.push(blank_lesson_obj);
74+
// }
75+
// }
5876
let a = chapter.slice(0, lesson_number);
5977
let b = chapter.slice(lesson_number + 1, chapter.length);
6078
a.push(lesson_obj);

Diff for: ‎index.html

+1-6
Original file line numberDiff line numberDiff line change
@@ -71,15 +71,10 @@
7171

7272
<div id="map" class="map">
7373
<a href="javascript:void(0)" class="close-map" onclick="toggleMap()">&times;</a>
74-
<div class="challenge-list">
75-
<a href="#" onclick="loadChallengeFromMap('a')">Addition</a>
76-
<a href="#" onclick="loadChallengeFromMap('b')">Subtraction</a>
77-
<a href="#" onclick="loadChallengeFromMap('c')">Dummy 1</a>
78-
<a href="#" onclick="loadChallengeFromMap('d')">Dummy 2</a>
79-
</div>
8074
</div>
8175

8276
<script src="load-challenges.js"></script>
77+
<script src="renderMap.js"></script>
8378
<script src="map.js"></script>
8479
</body>
8580
</html>

Diff for: ‎renderMap.js

+58
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
/*global $*/
2+
function createLesson(title, id) {
3+
const linkNode = document.createElement("a");
4+
linkNode.classList.add("lesson-link");
5+
linkNode.appendChild(document.createTextNode(title));
6+
linkNode.setAttribute("href", "");
7+
linkNode.setAttribute("onclick", `loadChallengeFromMap('${id}')`);
8+
const listNode = document.createElement("li");
9+
listNode.classList.add("lesson-list-element");
10+
11+
listNode.appendChild(linkNode);
12+
13+
return listNode;
14+
}
15+
function createChapter(title, lessonList) {
16+
const chapterNode = document.createElement("div");
17+
chapterNode.classList.add("chapter");
18+
19+
const titleSpanNode = document.createElement("span");
20+
titleSpanNode.classList.add("chapter-title");
21+
titleSpanNode.appendChild(document.createTextNode(title));
22+
23+
chapterNode.appendChild(titleSpanNode);
24+
25+
const lessonListNode = document.createElement("ul");
26+
lessonListNode.classList.add("lesson-list");
27+
28+
lessonList.forEach((lesson) => {
29+
lessonListNode.appendChild(createLesson(lesson.title, lesson.id));
30+
});
31+
32+
chapterNode.appendChild(lessonListNode);
33+
34+
return chapterNode;
35+
}
36+
function renderMap() {
37+
const map = document.getElementById("map");
38+
39+
const challengeList = document.createElement("div");
40+
challengeList.classList.add("challenge-list");
41+
42+
43+
$.getJSON("./challenges.json")
44+
.done(({chapters, challenges}) => {
45+
challenges.forEach((lessons, i) => {
46+
const title = chapters[i];
47+
challengeList.appendChild(createChapter(title, lessons));
48+
});
49+
})
50+
.fail((jqxhr, textStatus, error ) => {
51+
console.log(`Req failed: ${textStatus}, ${error}`);
52+
});
53+
54+
map.appendChild(challengeList);
55+
56+
}
57+
58+
renderMap();

Diff for: ‎stylesheet.css

+18
Original file line numberDiff line numberDiff line change
@@ -215,3 +215,21 @@ h2 {
215215
.challenge-list {
216216
border-top: 2px solid #006400;
217217
}
218+
219+
.chapter {
220+
display: flex;
221+
flex-direction: column;
222+
align-items: flex-start;
223+
justify-content: flex-start;
224+
}
225+
.chapter-title {
226+
color: #006400;
227+
font-size: 1.5rem;
228+
padding-left: 10px;
229+
}
230+
.lesson-list {
231+
list-style: none;
232+
align-self: left;
233+
padding-left: 5px;
234+
margin-top: 0;
235+
}

0 commit comments

Comments
 (0)
Please sign in to comment.