Merge pull request #4857 from edx/christina/stud-2093

Add bok choy tests for bad HTML module content.
This commit is contained in:
Christina Roberts
2014-08-21 09:48:24 -04:00
6 changed files with 211 additions and 105 deletions

View File

@@ -1,22 +1,23 @@
define(["jquery", "underscore", "js/views/xblock", "js/utils/module", "gettext", "js/views/feedback_notification",
"jquery.ui"], // The container view uses sortable, which is provided by jquery.ui.
function ($, _, XBlockView, ModuleUtils, gettext, NotificationView) {
var reorderableClass = '.reorderable-container',
sortableInitializedClass = '.ui-sortable',
studioXBlockWrapperClass = '.studio-xblock-wrapper';
var studioXBlockWrapperClass = '.studio-xblock-wrapper';
var ContainerView = XBlockView.extend({
// Store the request token of the first xblock on the page (which we know was rendered by Studio when
// the page was generated). Use that request token to filter out user-defined HTML in any
// child xblocks within the page.
requestToken: "",
xblockReady: function () {
XBlockView.prototype.xblockReady.call(this);
var reorderableContainer = this.$(reorderableClass),
alreadySortable = this.$(sortableInitializedClass),
newParent,
oldParent,
self = this;
var reorderableClass, reorderableContainer,
newParent, oldParent, self = this;
alreadySortable.sortable("destroy");
this.requestToken = this.$('div.xblock').first().data('request-token');
reorderableClass = this.makeRequestSpecificSelector('.reorderable-container');
reorderableContainer = this.$(reorderableClass);
reorderableContainer.sortable({
handle: '.drag-handle',
@@ -123,7 +124,12 @@ define(["jquery", "underscore", "js/views/xblock", "js/utils/module", "gettext",
},
refresh: function() {
var sortableInitializedClass = this.makeRequestSpecificSelector('.reorderable-container.ui-sortable');
this.$(sortableInitializedClass).sortable('refresh');
},
makeRequestSpecificSelector: function(selector) {
return 'div.xblock[data-request-token="' + this.requestToken + '"] > ' + selector;
}
});