Commit 3320ecf4 by Matjaz Gregoric

Move unenroll messages into separate data attributes.

Having the messeges embedded into onclick attributes was fragile because
it could break if the translated string contained special characters
such as single quotes.

Rather than trying to escape the special characters inside the onclick handler,
move the translatable strings into separate h-escaped data attributes and interpolate
the values in the (already existing) jQuery click handler rather than in the
inline onclick handler.

This makes the javascript code more consistent as well as fixes the problem
where the popup would break if translation included single quotes.
parent 1037e6b5
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
*/ */
var edx = edx || {}; var edx = edx || {};
(function($, gettext, Logger, accessibleModal) { (function($, gettext, Logger, accessibleModal, interpolate) {
'use strict'; 'use strict';
edx.dashboard = edx.dashboard || {}; edx.dashboard = edx.dashboard || {};
...@@ -126,9 +126,18 @@ ...@@ -126,9 +126,18 @@
}); });
$(".action-unenroll").click(function(event) { $(".action-unenroll").click(function(event) {
$("#unenroll_course_id").val( $(event.target).data("course-id") ); var element = $(event.target);
$("#unenroll_course_number").text( $(event.target).data("course-number") ); var track_info = element.data("track-info");
$("#unenroll_course_name").text( $(event.target).data("course-name") ); var course_number = element.data("course-number");
var course_name = element.data("course-name");
var cert_name_long = element.data("cert-name-long");
$('#track-info').html(interpolate(track_info, {
course_number: "<span id='unenroll_course_number'>" + course_number + "</span>",
course_name: "<span id='unenroll_course_name'>" + course_name + "</span>",
cert_name_long: "<span id='unenroll_cert_name'>" + cert_name_long + "</span>"
}, true));
$('#refund-info').html( element.data("refund-info") );
$("#unenroll_course_id").val( element.data("course-id") );
}); });
$('#unenroll_form').on('ajax:complete', function(event, xhr) { $('#unenroll_form').on('ajax:complete', function(event, xhr) {
...@@ -195,4 +204,4 @@ ...@@ -195,4 +204,4 @@
}); });
}; };
})(jQuery, gettext, Logger, accessible_modal); })(jQuery, gettext, Logger, accessible_modal, interpolate); // jshint undef:false
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