diff options
Diffstat (limited to 'assets/javascript/core')
-rw-r--r-- | assets/javascript/core/exercise.js | 50 | ||||
-rw-r--r-- | assets/javascript/core/keyboard.js | 31 | ||||
-rw-r--r-- | assets/javascript/core/navigation.js | 17 | ||||
-rw-r--r-- | assets/javascript/core/progress.js | 66 | ||||
-rw-r--r-- | assets/javascript/core/sidebar.js | 42 | ||||
-rw-r--r-- | assets/javascript/core/state.js | 14 |
6 files changed, 0 insertions, 220 deletions
diff --git a/assets/javascript/core/exercise.js b/assets/javascript/core/exercise.js deleted file mode 100644 index 4163730..0000000 --- a/assets/javascript/core/exercise.js +++ /dev/null @@ -1,50 +0,0 @@ -define([ - "jQuery", - "utils/execute", - "utils/analytic", - "core/state" -], function($, execute, analytic, state){ - // Bind an exercise - var prepareExercise = function($exercise) { - var codeSolution = $exercise.find(".code-solution").text(); - var codeValidation = $exercise.find(".code-validation").text(); - - var editor = ace.edit($exercise.find(".editor").get(0)); - editor.setTheme("ace/theme/tomorrow"); - editor.getSession().setUseWorker(false); - editor.getSession().setMode("ace/mode/javascript"); - - // Submit: test code - $exercise.find(".action-submit").click(function(e) { - e.preventDefault(); - - analytic.track("exercise.submit"); - - execute(editor.getValue(), codeValidation, function(err, result) { - $exercise.toggleClass("return-error", err != null); - $exercise.toggleClass("return-success", err == null); - if (err) $exercise.find(".alert-danger").text(err.message || err); - }); - }); - - // Set solution - $exercise.find(".action-solution").click(function(e) { - e.preventDefault(); - - editor.setValue(codeSolution); - editor.gotoLine(0); - }); - }; - - // Prepare all exercise - var init = function() { - state().$book.find("section.exercise").each(function() { - prepareExercise($(this)); - }); - }; - - return { - init: init, - prepare: prepareExercise - }; -});
\ No newline at end of file diff --git a/assets/javascript/core/keyboard.js b/assets/javascript/core/keyboard.js deleted file mode 100644 index 05e939e..0000000 --- a/assets/javascript/core/keyboard.js +++ /dev/null @@ -1,31 +0,0 @@ -define([ - "jQuery", - "Mousetrap", - "core/navigation", - "core/sidebar" -], function($, Mousetrap, navigation, sidebar){ - // Bind keyboard shortcuts - var init = function() { - // Next - Mousetrap.bind(['right'], function(e) { - navigation.goNext(); - return false; - }); - - // Prev - Mousetrap.bind(['left'], function(e) { - navigation.goPrev(); - return false; - }); - - // Toggle Summary - Mousetrap.bind(['s'], function(e) { - sidebar.toggle(); - return false; - }); - }; - - return { - init: init - }; -});
\ No newline at end of file diff --git a/assets/javascript/core/navigation.js b/assets/javascript/core/navigation.js deleted file mode 100644 index bb3547c..0000000 --- a/assets/javascript/core/navigation.js +++ /dev/null @@ -1,17 +0,0 @@ -define([ - "jQuery" -], function($) { - var goNext = function() { - var url = $("link[rel='next']").attr("href"); - if (url) location.href = url; - }; - var goPrev = function() { - var url = $("link[rel='prev']").attr("href"); - if (url) location.href = url; - }; - - return { - goNext: goNext, - goPrev: goPrev - }; -});
\ No newline at end of file diff --git a/assets/javascript/core/progress.js b/assets/javascript/core/progress.js deleted file mode 100644 index 755f111..0000000 --- a/assets/javascript/core/progress.js +++ /dev/null @@ -1,66 +0,0 @@ -define([ - "lodash", - "jQuery", - "utils/storage", - "core/state" -], function(_, $, storage, state) { - // Get current level - var getCurrentLevel = function() { - return state().level; - }; - - // Return all levels - var getLevels = function() { - var levels = $(".book-summary li[data-level]"); - return _.map(levels, function(level) { - return $(level).data("level").toString(); - }); - }; - - // Return a map chapter -> number (timestamp) - var getProgress = function() { - // Current level - var progress = storage.get("progress", {}); - - // Levels - var levels = getLevels(); - - _.each(levels, function(level) { - progress[level] = progress[level] || 0; - }); - - return progress; - }; - - // Change value of progress for a level - var markProgress = function(level, state) { - if (state == null) state = true; - - var progress = getProgress(); - progress[level] = state? Date.now() : 0; - - storage.set("progress", progress); - }; - - // Show progress - var showProgress = function() { - // Update progress - var progress = getProgress(); - var $summary = $(".book-summary"); - - _.each(progress, function(value, level) { - $summary.find("li[data-level='"+level+"']").toggleClass("done", value > 0); - }); - - // Mark current progress - markProgress(getCurrentLevel(), true); - }; - - return { - 'current': getCurrentLevel, - 'levels': getLevels, - 'get': getProgress, - 'mark': markProgress, - 'show': showProgress - }; -});
\ No newline at end of file diff --git a/assets/javascript/core/sidebar.js b/assets/javascript/core/sidebar.js deleted file mode 100644 index 717c2b7..0000000 --- a/assets/javascript/core/sidebar.js +++ /dev/null @@ -1,42 +0,0 @@ -define([ - "utils/storage", - "utils/platform", - "core/state" -], function(storage, platform, state) { - - // Toggle sidebar with or withour animation - var toggleSidebar = function(_state, animation) { - if (-state != null && isOpen() == _state) return; - if (animation == null) animation = true; - - var $book = state().$book; - $book.toggleClass("without-animation", !animation); - $book.toggleClass("with-summary", _state); - - storage.set("sidebar", isOpen()); - }; - - // Return true if sidebar is open - var isOpen = function() { - return state().$book.hasClass("with-summary"); - }; - - // Prepare sidebar: state and toggle button - var init = function() { - var $book = state().$book; - - // Toggle summary - $book.find(".book-header .toggle-summary").click(function(e) { - e.preventDefault(); - toggleSidebar(); - }); - - // Init last state if not mobile and not homepage - toggleSidebar(platform.isMobile ? false : storage.get("sidebar", true), false); - }; - - return { - init: init, - toggle: toggleSidebar - } -});
\ No newline at end of file diff --git a/assets/javascript/core/state.js b/assets/javascript/core/state.js deleted file mode 100644 index fc67d7b..0000000 --- a/assets/javascript/core/state.js +++ /dev/null @@ -1,14 +0,0 @@ -define([ - "jQuery" -], function() { - return function() { - var $book = $(".book"); - - return { - '$book': $book, - - 'githubId': $book.data("github"), - 'level': $book.data("level") - }; - }; -});
\ No newline at end of file |