From b7cb6ffc3f81bb8c6d37d187bb41e5e7118ab09e Mon Sep 17 00:00:00 2001 From: Timotej Lazar Date: Thu, 25 Feb 2016 15:52:32 +0100 Subject: Add a screen to view own solutions --- js/codeq/solutions.js | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 js/codeq/solutions.js (limited to 'js/codeq/solutions.js') diff --git a/js/codeq/solutions.js b/js/codeq/solutions.js new file mode 100644 index 0000000..399c934 --- /dev/null +++ b/js/codeq/solutions.js @@ -0,0 +1,49 @@ +/* CodeQ: an online programming tutor. + Copyright (C) 2016 UL FRI + +This program is free software: you can redistribute it and/or modify it under +the terms of the GNU Affero General Public License as published by the Free +Software Foundation, either version 3 of the License, or (at your option) any +later version. + +This program is distributed in the hope that it will be useful, but WITHOUT +ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more +details. + +You should have received a copy of the GNU Affero General Public License +along with this program. If not, see . */ + +(function(){ + "use strict"; + var jqScreen = $('#screen_solutions'), + jqSolutions = jqScreen.find('.solutions'), + jqBtnGoBack = jqScreen.find('.btnGoBack'); + + // Register with the state machine + codeq.globalStateMachine.register('solutions', { + 'jqScreen': jqScreen, + 'isModal': true, + + 'enter': function (problem_ids) { + jqBtnGoBack.on('click', function () { + history.back(); + }); + codeq.comms.getSolutions(problem_ids) + .then(function (solutions) { + var i; + solutions = solutions.data; + for (i = 0; i < solutions.length; i++) { + jqSolutions.append('
' + solutions[i].trim() + '
'); + } + }) + .done(); + jqScreen.css('display', ''); + }, + 'exit' : function(){ + jqBtnGoBack.off('click'); + jqSolutions.empty(); + jqScreen.css('display', 'none'); + } + }); +})(); -- cgit v1.2.1