Pass DOM element, not jQuery object to XBlock initialisation.
The function initializeXBlock() expects a DOM element, and is passed one in most cases. However, when adding a new XBlock component in Studio, the function is passed a jQuery object, which ends up being forwarded to the actual initialisation function of the XBlock.
This commit is contained in:
@@ -43,7 +43,7 @@ define(["jquery", "underscore", "common/js/components/utils/view_utils", "js/vie
|
||||
fragmentsRendered.always(function() {
|
||||
xblockElement = self.$('.xblock').first();
|
||||
try {
|
||||
xblock = XBlock.initializeBlock(xblockElement);
|
||||
xblock = XBlock.initializeBlock(xblockElement.get(0));
|
||||
self.xblock = xblock;
|
||||
self.xblockReady(xblock);
|
||||
if (successCallback) {
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
'use strict';
|
||||
|
||||
function VisibilityEditorView(runtime, element) {
|
||||
var $element = $(element);
|
||||
this.getGroupAccess = function() {
|
||||
var groupAccess = {},
|
||||
checkboxValues,
|
||||
@@ -15,12 +16,12 @@
|
||||
// defined by VerificationPartitionScheme on the backend!
|
||||
ALLOW_GROUP_ID = 1;
|
||||
|
||||
if (element.find('.visibility-level-all').prop('checked')) {
|
||||
if ($element.find('.visibility-level-all').prop('checked')) {
|
||||
return {};
|
||||
}
|
||||
|
||||
// Cohort partitions (user is allowed to select more than one)
|
||||
element.find('.field-visibility-content-group input:checked').each(function(index, input) {
|
||||
$element.find('.field-visibility-content-group input:checked').each(function(index, input) {
|
||||
checkboxValues = $(input).val().split("-");
|
||||
partitionId = parseInt(checkboxValues[0], 10);
|
||||
groupId = parseInt(checkboxValues[1], 10);
|
||||
@@ -33,7 +34,7 @@
|
||||
});
|
||||
|
||||
// Verification partitions (user can select exactly one)
|
||||
if (element.find('#verification-access-checkbox').prop('checked')) {
|
||||
if ($element.find('#verification-access-checkbox').prop('checked')) {
|
||||
partitionId = parseInt($('#verification-access-dropdown').val(), 10);
|
||||
groupAccess[partitionId] = [ALLOW_GROUP_ID];
|
||||
}
|
||||
@@ -42,19 +43,19 @@
|
||||
};
|
||||
|
||||
// When selecting "all students and staff", uncheck the specific groups
|
||||
element.find('.field-visibility-level input').change(function(event) {
|
||||
$element.find('.field-visibility-level input').change(function(event) {
|
||||
if ($(event.target).hasClass('visibility-level-all')) {
|
||||
element.find('.field-visibility-content-group input, .field-visibility-verification input')
|
||||
$element.find('.field-visibility-content-group input, .field-visibility-verification input')
|
||||
.prop('checked', false);
|
||||
}
|
||||
});
|
||||
|
||||
// When selecting a specific group, deselect "all students and staff" and
|
||||
// select "specific content groups" instead.`
|
||||
element.find('.field-visibility-content-group input, .field-visibility-verification input')
|
||||
$element.find('.field-visibility-content-group input, .field-visibility-verification input')
|
||||
.change(function() {
|
||||
element.find('.visibility-level-all').prop('checked', false);
|
||||
element.find('.visibility-level-specific').prop('checked', true);
|
||||
$element.find('.visibility-level-all').prop('checked', false);
|
||||
$element.find('.visibility-level-specific').prop('checked', true);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@ class @HTMLEditingDescriptor
|
||||
CUSTOM_FONTS + STANDARD_FONTS
|
||||
|
||||
constructor: (element) ->
|
||||
@element = element
|
||||
@element = $(element)
|
||||
@base_asset_url = @element.find("#editor-tab").data('base-asset-url')
|
||||
@editor_choice = @element.find("#editor-tab").data('editor')
|
||||
if @base_asset_url == undefined
|
||||
|
||||
@@ -13,7 +13,7 @@ class @MarkdownEditingDescriptor extends XModule.Descriptor
|
||||
@explanationTemplate: "[explanation]\n#{gettext 'Short explanation'}\n[explanation]\n"
|
||||
|
||||
constructor: (element) ->
|
||||
@element = element
|
||||
@element = $(element)
|
||||
|
||||
if $(".markdown-box", @element).length != 0
|
||||
@markdown_editor = CodeMirror.fromTextArea($(".markdown-box", element)[0], {
|
||||
|
||||
@@ -2,7 +2,7 @@ class @TabsEditingDescriptor
|
||||
@isInactiveClass : "is-inactive"
|
||||
|
||||
constructor: (element) ->
|
||||
@element = element;
|
||||
@element = $(element)
|
||||
###
|
||||
Not tested on syncing of multiple editors of same type in tabs
|
||||
(Like many CodeMirrors).
|
||||
|
||||
@@ -69,7 +69,7 @@
|
||||
} else {
|
||||
block = {};
|
||||
}
|
||||
block.element = element;
|
||||
block.element = $element;
|
||||
block.name = $element.data('name');
|
||||
block.type = $element.data('block-type');
|
||||
$element.trigger('xblock-initialized');
|
||||
|
||||
Reference in New Issue
Block a user