Commit 0f7db9e5 by Alexander Kryklia

Merge branch 'feature/alex/poll-merged' of github.com:MITx/mitx into feature/alex/poll-merged

parents f5dc0afa 653154f1
...@@ -214,13 +214,8 @@ section.poll_question { ...@@ -214,13 +214,8 @@ section.poll_question {
text-shadow: rgb(7, 103, 148) 0px 1px 0px; text-shadow: rgb(7, 103, 148) 0px 1px 0px;
} }
.graph_answer { .button.reset-button {
display: none;
clear: both; clear: both;
width: 400px; float: right;
height: 400px;
margin-top: 30px;
margin-left: auto;
margin-right: auto;
} }
} }
class @Conditional class @Conditional
constructor: (element, callerElId) -> constructor: (element, callerElId, reset) ->
@el = $(element).find('.conditional-wrapper') @el = $(element).find('.conditional-wrapper')
@callerElId = callerElId @callerElId = callerElId
if @el.data('passed') is true if reset is true
return @el.data('passed', null)
else if @el.data('passed') is false
@passed = false
else
@passed = null @passed = null
else
if @el.data('passed') is true
return
else if @el.data('passed') is false
@passed = false
else
@passed = null
if callerElId isnt undefined and @passed isnt null if callerElId isnt undefined and @passed isnt null
dependencies = @el.data('depends') dependencies = @el.data('depends')
......
...@@ -50,7 +50,10 @@ PollMain.prototype = { ...@@ -50,7 +50,10 @@ PollMain.prototype = {
_this.ajax_url + '/' + answer, {}, _this.ajax_url + '/' + answer, {},
function (response) { function (response) {
_this.showAnswerGraph(response.poll_answers, response.total); _this.showAnswerGraph(response.poll_answers, response.total);
_this.resetButton.show(); _this.resetButton.show();
// Initialize Conditional constructors.
if (_this.wrapperSectionEl !== null) { if (_this.wrapperSectionEl !== null) {
$(_this.wrapperSectionEl).find('.xmodule_ConditionalModule').each(function (index, value) { $(_this.wrapperSectionEl).find('.xmodule_ConditionalModule').each(function (index, value) {
new window.Conditional(value, _this.id.replace(/^poll_/, '')); new window.Conditional(value, _this.id.replace(/^poll_/, ''));
...@@ -65,20 +68,25 @@ PollMain.prototype = { ...@@ -65,20 +68,25 @@ PollMain.prototype = {
'submitReset': function () { 'submitReset': function () {
var _this; var _this;
_this = this; _this = this;
// Send the data to the server as an AJAX request. Attach a callback that will // Send the data to the server as an AJAX request. Attach a callback that will
// be fired on server's response. // be fired on server's response.
$.postWithPrefix( $.postWithPrefix(
_this.ajax_url + '/' + 'reset', {}, this.ajax_url + '/' + 'reset_poll',
{},
function (response) { function (response) {
_this.questionAnswered = false; _this.questionAnswered = false;
$(_this.questionEl).find('.button').removeClass('answered'); _this.questionEl.find('.button.answered').removeClass('answered');
_this.graphAnswerEl.hide(); _this.questionEl.find('.stats').hide();
$(_this.questionEl).find('.stats').hide();
_this.resetButton.hide(); _this.resetButton.hide();
// Initialize Conditional constructors. We will specify the third parameter as 'true'
// notifying the constructor that this is a reset operation.
if (_this.wrapperSectionEl !== null) { if (_this.wrapperSectionEl !== null) {
$(_this.wrapperSectionEl).find('.xmodule_ConditionalModule').each(function (index, value) { $(_this.wrapperSectionEl).find('.xmodule_ConditionalModule').each(function (index, value) {
new window.Conditional(value, _this.id.replace(/^poll_/, '')); new window.Conditional(value, _this.id.replace(/^poll_/, ''), true);
}); });
} }
} }
...@@ -179,19 +187,20 @@ PollMain.prototype = { ...@@ -179,19 +187,20 @@ PollMain.prototype = {
} }
}); });
this.graphAnswerEl = $('<div class="graph_answer"></div>'); if (this.jsonConfig.reset === "True"){
this.graphAnswerEl.hide(); this.resetButton = $('<div class="button reset-button">Reset</div>');
this.graphAnswerEl.appendTo(this.questionEl);
if (_this.jsonConfig.reset === "True") if (this.questionAnswered === false) {
{ this.resetButton.hide();
_this.resetButton = $('<div class="button reset-button">Reset</div>');
_this.resetButton.appendTo(_this.questionEl);
_this.resetButton.hide();
_this.resetButton.on('click', function () {
_this.submitReset();
});
} }
this.resetButton.appendTo(this.questionEl);
this.resetButton.on('click', function () {
_this.submitReset();
});
}
// If it turns out that the user already answered the question, show the answers graph. // If it turns out that the user already answered the question, show the answers graph.
if (this.questionAnswered === true) { if (this.questionAnswered === true) {
this.showAnswerGraph(this.jsonConfig.poll_answers, this.jsonConfig.total); this.showAnswerGraph(this.jsonConfig.poll_answers, this.jsonConfig.total);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment