Commit c1f4e987 by Piotr Mitros

Add submit button

parent c8fd0f85
......@@ -82,7 +82,7 @@ class RateXBlock(XBlock):
help="A list of user votes"
)
user_feedback = String(default = "", scope=Scope.user_state,
user_freeform = String(default = "", scope=Scope.user_state,
help = "Feedback")
def resource_string(self, path):
......@@ -165,8 +165,7 @@ class RateXBlock(XBlock):
self.prompts[0]['likert'] = data.get('likert')
return {'result': 'success'}
@XBlock.json_handler
def vote(self, data, suffix=''):
def vote(self, data):
"""
Handle voting
"""
......@@ -178,21 +177,23 @@ class RateXBlock(XBlock):
if self.user_vote != -1:
self.vote_aggregate[self.user_vote] -= 1
tracker.emit('edx.ratexblock.likert_rate',
{'old_vote' : self.user_vote,
'new_vote' : data['vote']})
self.user_vote = data['vote']
self.vote_aggregate[self.user_vote] += 1
return {"success": True}
@XBlock.json_handler
def feedback(self, data, suffix=''):
tracker.emit('edx.ratexblock.freeform_feedback',
{'old_feedback' : self.user_feedback,
'new_feedback' : data['feedback']})
self.user_feedback = data['feedback']
if 'freeform' in data:
tracker.emit('edx.ratexblock.freeform_feedback',
{'old_freeform' : self.user_freeform,
'new_freeform' : data['freeform']})
self.user_freeform = data['freeform']
if 'vote' in data:
tracker.emit('edx.ratexblock.likert_rate',
{'old_vote' : self.user_vote,
'new_vote' : data['vote']})
self.vote(data)
return {"success": True}
# TO-DO: change this to create the scenarios you'd like to see in the
# workbench while developing your XBlock.
......
......@@ -66,3 +66,6 @@
font-weight:bold;
}
.rate_block .rate_submit_feedback {
width:100%;
}
<div class="rate_block">
<div class="rate_header">{freeform_prompt}</div>
<div class="rate_freeform_input">
<textarea class="rate_freeform_area" rows="4" cols="30">{self.user_feedback}</textarea>
<textarea class="rate_freeform_area" rows="4" cols="30">{self.user_freeform}</textarea>
<div class="rate_thank_you">Thank you!</div>
</div>
<div class="rate_likert_header">{likert_prompt}</div>
<div class="rate_likert_scale"> <form action="">{scale}</form></div>
<button type="submit" class="rate_submit_feedback"> Submit Feedback </button>
</div>
......@@ -13,30 +13,43 @@ if (typeof Logger === 'undefined') {
function RateXBlock(runtime, element) {
var vote_handler = runtime.handlerUrl(element, 'vote');
var feedback_handler = runtime.handlerUrl(element, 'feedback');
$(".rate_submit_feedback", element).click(function(eventObject) {
freeform = $(".rate_freeform_area", element).val();
vote = parseInt($(".rate_radio:checked").attr("id").split("_")[1]);
feedback = {"freeform": freeform,
"vote": vote}
Logger.log("edx.ratexblock.submit", feedback)
$.ajax({
type: "POST",
url: feedback_handler,
data: JSON.stringify(feedback),
success: function() {$('.rate_thank_you', element).css('visibility','visible')}
});
});
$('.rate_radio', element).change(function(eventObject) {
target_id = eventObject.target.id;
vote = parseInt(target_id.split('_')[1]);
$.ajax({
/*$.ajax({
type: "POST",
url: vote_handler,
url: feedback_handler,
data: JSON.stringify({"vote": vote}),
});
});*/
Logger.log("edx.ratexblock.likert_rate", {"vote":vote})
});
$('.rate_freeform_area', element).change(function(eventObject) {
$('.rate_thank_you', element).css('visibility','hidden');
var feedback_freeform = eventObject.currentTarget.value;
Logger.log("edx.ratexblock.freeform_feedback", {"feedback":feedback_freeform})
$.ajax({
var freeform = eventObject.currentTarget.value;
Logger.log("edx.ratexblock.freeform_feedback", {"freeform":freeform})
/*$.ajax({
type: "POST",
url: feedback_handler,
data: JSON.stringify({"feedback": feedback_freeform}),
data: JSON.stringify({"freeform": freeform}),
success: function() {$('.rate_thank_you', element).css('visibility','visible')},
});
});*/
});
}
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