MDL-55244 js: build changes
There should be no changes to minified code
This commit is contained in:
admin/tool/capability/yui/build/moodle-tool_capability-search/moodle-tool_capability-search-debug.js
Vendored
+10
-10
@@ -24,7 +24,7 @@ SEARCH.prototype = {
|
||||
* @type Node
|
||||
* @protected
|
||||
*/
|
||||
form : null,
|
||||
form: null,
|
||||
/**
|
||||
* The capability select node.
|
||||
* @property select
|
||||
@@ -38,7 +38,7 @@ SEARCH.prototype = {
|
||||
* @type Object
|
||||
* @protected
|
||||
*/
|
||||
selectoptions : {},
|
||||
selectoptions: {},
|
||||
/**
|
||||
* The search input field.
|
||||
* @property input
|
||||
@@ -60,12 +60,12 @@ SEARCH.prototype = {
|
||||
* @type Node
|
||||
* @protected
|
||||
*/
|
||||
lastsearch : null,
|
||||
lastsearch: null,
|
||||
/**
|
||||
* Constructs the search manager.
|
||||
* @method initializer
|
||||
*/
|
||||
initializer : function() {
|
||||
initializer: function() {
|
||||
this.form = Y.one('#capability-overview-form');
|
||||
this.select = this.form.one('select[data-search=capability]');
|
||||
this.select.setStyle('minWidth', this.select.get('offsetWidth'));
|
||||
@@ -77,7 +77,7 @@ SEARCH.prototype = {
|
||||
this.lastsearch = this.form.one('input[name=search]');
|
||||
|
||||
var div = Y.Node.create('<div id="capabilitysearchui"></div>'),
|
||||
label = Y.Node.create('<label for="capabilitysearch">'+this.get('strsearch')+'</label>');
|
||||
label = Y.Node.create('<label for="capabilitysearch">' + this.get('strsearch') + '</label>');
|
||||
this.input = Y.Node.create('<input type="text" id="capabilitysearch" />');
|
||||
|
||||
div.append(label).append(this.input);
|
||||
@@ -101,7 +101,7 @@ SEARCH.prototype = {
|
||||
* Disables the submit button if there are no capabilities selected.
|
||||
* @method validate
|
||||
*/
|
||||
validate : function() {
|
||||
validate: function() {
|
||||
this.button.set('disabled', (this.select.get('value') === ''));
|
||||
},
|
||||
/**
|
||||
@@ -109,7 +109,7 @@ SEARCH.prototype = {
|
||||
* This method hides any capabilities that don't match the search term.
|
||||
* @method typed
|
||||
*/
|
||||
typed : function() {
|
||||
typed: function() {
|
||||
var search = this.input.get('value'),
|
||||
matching = 0,
|
||||
last = null,
|
||||
@@ -137,9 +137,9 @@ SEARCH.prototype = {
|
||||
}
|
||||
};
|
||||
Y.extend(SEARCH, Y.Base, SEARCH.prototype, {
|
||||
NAME : 'tool_capability-search',
|
||||
ATTRS : {
|
||||
strsearch : {}
|
||||
NAME: 'tool_capability-search',
|
||||
ATTRS: {
|
||||
strsearch: {}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
Vendored
+10
-10
@@ -24,7 +24,7 @@ SEARCH.prototype = {
|
||||
* @type Node
|
||||
* @protected
|
||||
*/
|
||||
form : null,
|
||||
form: null,
|
||||
/**
|
||||
* The capability select node.
|
||||
* @property select
|
||||
@@ -38,7 +38,7 @@ SEARCH.prototype = {
|
||||
* @type Object
|
||||
* @protected
|
||||
*/
|
||||
selectoptions : {},
|
||||
selectoptions: {},
|
||||
/**
|
||||
* The search input field.
|
||||
* @property input
|
||||
@@ -60,12 +60,12 @@ SEARCH.prototype = {
|
||||
* @type Node
|
||||
* @protected
|
||||
*/
|
||||
lastsearch : null,
|
||||
lastsearch: null,
|
||||
/**
|
||||
* Constructs the search manager.
|
||||
* @method initializer
|
||||
*/
|
||||
initializer : function() {
|
||||
initializer: function() {
|
||||
this.form = Y.one('#capability-overview-form');
|
||||
this.select = this.form.one('select[data-search=capability]');
|
||||
this.select.setStyle('minWidth', this.select.get('offsetWidth'));
|
||||
@@ -77,7 +77,7 @@ SEARCH.prototype = {
|
||||
this.lastsearch = this.form.one('input[name=search]');
|
||||
|
||||
var div = Y.Node.create('<div id="capabilitysearchui"></div>'),
|
||||
label = Y.Node.create('<label for="capabilitysearch">'+this.get('strsearch')+'</label>');
|
||||
label = Y.Node.create('<label for="capabilitysearch">' + this.get('strsearch') + '</label>');
|
||||
this.input = Y.Node.create('<input type="text" id="capabilitysearch" />');
|
||||
|
||||
div.append(label).append(this.input);
|
||||
@@ -101,7 +101,7 @@ SEARCH.prototype = {
|
||||
* Disables the submit button if there are no capabilities selected.
|
||||
* @method validate
|
||||
*/
|
||||
validate : function() {
|
||||
validate: function() {
|
||||
this.button.set('disabled', (this.select.get('value') === ''));
|
||||
},
|
||||
/**
|
||||
@@ -109,7 +109,7 @@ SEARCH.prototype = {
|
||||
* This method hides any capabilities that don't match the search term.
|
||||
* @method typed
|
||||
*/
|
||||
typed : function() {
|
||||
typed: function() {
|
||||
var search = this.input.get('value'),
|
||||
matching = 0,
|
||||
last = null,
|
||||
@@ -137,9 +137,9 @@ SEARCH.prototype = {
|
||||
}
|
||||
};
|
||||
Y.extend(SEARCH, Y.Base, SEARCH.prototype, {
|
||||
NAME : 'tool_capability-search',
|
||||
ATTRS : {
|
||||
strsearch : {}
|
||||
NAME: 'tool_capability-search',
|
||||
ATTRS: {
|
||||
strsearch: {}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
Vendored
+2
-2
@@ -48,9 +48,9 @@ Y.extend(DRAGREORDER, M.core.dragdrop, {
|
||||
Y.one('.' + args.parentNodeClass)
|
||||
.all('.' + args.dragHandleInsertClass)
|
||||
.each(
|
||||
function (node) {
|
||||
function(node) {
|
||||
node.insert(this.draghandle.cloneNode(true));
|
||||
} , this);
|
||||
}, this);
|
||||
},
|
||||
|
||||
drop_hit: function(e) {
|
||||
|
||||
+2
-2
@@ -48,9 +48,9 @@ Y.extend(DRAGREORDER, M.core.dragdrop, {
|
||||
Y.one('.' + args.parentNodeClass)
|
||||
.all('.' + args.dragHandleInsertClass)
|
||||
.each(
|
||||
function (node) {
|
||||
function(node) {
|
||||
node.insert(this.draghandle.cloneNode(true));
|
||||
} , this);
|
||||
}, this);
|
||||
},
|
||||
|
||||
drop_hit: function(e) {
|
||||
|
||||
+6
-6
@@ -47,8 +47,8 @@ M.availability_date.form.getNode = function(json) {
|
||||
|
||||
var url = M.cfg.wwwroot + '/availability/condition/date/ajax.php?action=fromtime' +
|
||||
'&time=' + json.t;
|
||||
Y.io(url, { on : {
|
||||
success : function(id, response) {
|
||||
Y.io(url, {on: {
|
||||
success: function(id, response) {
|
||||
var fields = Y.JSON.parse(response.responseText);
|
||||
for (var field in fields) {
|
||||
var select = node.one('select[name=x\\[' + field + '\\]]');
|
||||
@@ -56,7 +56,7 @@ M.availability_date.form.getNode = function(json) {
|
||||
select.set('disabled', false);
|
||||
}
|
||||
},
|
||||
failure : function() {
|
||||
failure: function() {
|
||||
window.alert(M.util.get_string('ajaxerror', 'availability_date'));
|
||||
}
|
||||
}});
|
||||
@@ -125,12 +125,12 @@ M.availability_date.form.updateTime = function(node) {
|
||||
'&day=' + node.one('select[name=x\\[day\\]]').get('value') +
|
||||
'&hour=' + node.one('select[name=x\\[hour\\]]').get('value') +
|
||||
'&minute=' + node.one('select[name=x\\[minute\\]]').get('value');
|
||||
Y.io(url, { on : {
|
||||
success : function(id, response) {
|
||||
Y.io(url, {on: {
|
||||
success: function(id, response) {
|
||||
node.setData('time', response.responseText);
|
||||
M.core_availability.form.update();
|
||||
},
|
||||
failure : function() {
|
||||
failure: function() {
|
||||
window.alert(M.util.get_string('ajaxerror', 'availability_date'));
|
||||
}
|
||||
}});
|
||||
|
||||
availability/condition/date/yui/build/moodle-availability_date-form/moodle-availability_date-form.js
Vendored
+6
-6
@@ -47,8 +47,8 @@ M.availability_date.form.getNode = function(json) {
|
||||
|
||||
var url = M.cfg.wwwroot + '/availability/condition/date/ajax.php?action=fromtime' +
|
||||
'&time=' + json.t;
|
||||
Y.io(url, { on : {
|
||||
success : function(id, response) {
|
||||
Y.io(url, {on: {
|
||||
success: function(id, response) {
|
||||
var fields = Y.JSON.parse(response.responseText);
|
||||
for (var field in fields) {
|
||||
var select = node.one('select[name=x\\[' + field + '\\]]');
|
||||
@@ -56,7 +56,7 @@ M.availability_date.form.getNode = function(json) {
|
||||
select.set('disabled', false);
|
||||
}
|
||||
},
|
||||
failure : function() {
|
||||
failure: function() {
|
||||
window.alert(M.util.get_string('ajaxerror', 'availability_date'));
|
||||
}
|
||||
}});
|
||||
@@ -125,12 +125,12 @@ M.availability_date.form.updateTime = function(node) {
|
||||
'&day=' + node.one('select[name=x\\[day\\]]').get('value') +
|
||||
'&hour=' + node.one('select[name=x\\[hour\\]]').get('value') +
|
||||
'&minute=' + node.one('select[name=x\\[minute\\]]').get('value');
|
||||
Y.io(url, { on : {
|
||||
success : function(id, response) {
|
||||
Y.io(url, {on: {
|
||||
success: function(id, response) {
|
||||
node.setData('time', response.responseText);
|
||||
M.core_availability.form.update();
|
||||
},
|
||||
failure : function() {
|
||||
failure: function() {
|
||||
window.alert(M.util.get_string('ajaxerror', 'availability_date'));
|
||||
}
|
||||
}});
|
||||
|
||||
+2
-2
@@ -151,8 +151,8 @@ M.availability_grade.form.fillErrors = function(errors, node) {
|
||||
}
|
||||
|
||||
// Check numeric values.
|
||||
if ((value.min !== undefined && typeof(value.min) === 'string') ||
|
||||
(value.max !== undefined && typeof(value.max) === 'string')) {
|
||||
if ((value.min !== undefined && typeof (value.min) === 'string') ||
|
||||
(value.max !== undefined && typeof (value.max) === 'string')) {
|
||||
errors.push('availability_grade:error_invalidnumber');
|
||||
} else if (value.min !== undefined && value.max !== undefined &&
|
||||
value.min >= value.max) {
|
||||
|
||||
+2
-2
@@ -151,8 +151,8 @@ M.availability_grade.form.fillErrors = function(errors, node) {
|
||||
}
|
||||
|
||||
// Check numeric values.
|
||||
if ((value.min !== undefined && typeof(value.min) === 'string') ||
|
||||
(value.max !== undefined && typeof(value.max) === 'string')) {
|
||||
if ((value.min !== undefined && typeof (value.min) === 'string') ||
|
||||
(value.max !== undefined && typeof (value.max) === 'string')) {
|
||||
errors.push('availability_grade:error_invalidnumber');
|
||||
} else if (value.min !== undefined && value.max !== undefined &&
|
||||
value.min >= value.max) {
|
||||
|
||||
Vendored
+47
-39
@@ -32,7 +32,7 @@ M.core_availability.form = {
|
||||
* @property plugins
|
||||
* @type Object
|
||||
*/
|
||||
plugins : {},
|
||||
plugins: {},
|
||||
|
||||
/**
|
||||
* Availability field (textarea).
|
||||
@@ -40,7 +40,7 @@ M.core_availability.form = {
|
||||
* @property field
|
||||
* @type Y.Node
|
||||
*/
|
||||
field : null,
|
||||
field: null,
|
||||
|
||||
/**
|
||||
* Main div that replaces the availability field.
|
||||
@@ -48,7 +48,7 @@ M.core_availability.form = {
|
||||
* @property mainDiv
|
||||
* @type Y.Node
|
||||
*/
|
||||
mainDiv : null,
|
||||
mainDiv: null,
|
||||
|
||||
/**
|
||||
* Object that represents the root of the tree.
|
||||
@@ -56,7 +56,7 @@ M.core_availability.form = {
|
||||
* @property rootList
|
||||
* @type M.core_availability.List
|
||||
*/
|
||||
rootList : null,
|
||||
rootList: null,
|
||||
|
||||
/**
|
||||
* Counter used when creating anything that needs an id.
|
||||
@@ -64,7 +64,7 @@ M.core_availability.form = {
|
||||
* @property idCounter
|
||||
* @type Number
|
||||
*/
|
||||
idCounter : 0,
|
||||
idCounter: 0,
|
||||
|
||||
/**
|
||||
* The 'Restrict by group' button if present.
|
||||
@@ -72,7 +72,7 @@ M.core_availability.form = {
|
||||
* @property restrictByGroup
|
||||
* @type Y.Node
|
||||
*/
|
||||
restrictByGroup : null,
|
||||
restrictByGroup: null,
|
||||
|
||||
/**
|
||||
* Called to initialise the system when the page loads. This method will
|
||||
@@ -80,9 +80,9 @@ M.core_availability.form = {
|
||||
*
|
||||
* @method init
|
||||
*/
|
||||
init : function(pluginParams) {
|
||||
init: function(pluginParams) {
|
||||
// Init all plugins.
|
||||
for(var plugin in pluginParams) {
|
||||
for (var plugin in pluginParams) {
|
||||
var params = pluginParams[plugin];
|
||||
var pluginClass = M[params[0]].form;
|
||||
pluginClass.init.apply(pluginClass, params);
|
||||
@@ -108,7 +108,7 @@ M.core_availability.form = {
|
||||
if (value !== '') {
|
||||
try {
|
||||
data = Y.JSON.parse(value);
|
||||
} catch(x) {
|
||||
} catch (x) {
|
||||
// If the JSON data is not valid, treat it as empty.
|
||||
this.field.set('value', '');
|
||||
}
|
||||
@@ -154,7 +154,7 @@ M.core_availability.form = {
|
||||
*
|
||||
* @method update
|
||||
*/
|
||||
update : function() {
|
||||
update: function() {
|
||||
// Convert tree to value.
|
||||
var jsValue = this.rootList.getValue();
|
||||
|
||||
@@ -176,7 +176,7 @@ M.core_availability.form = {
|
||||
* Updates the status of the 'restrict by group' button (enables or disables
|
||||
* it) based on current availability restrictions and group/grouping settings.
|
||||
*/
|
||||
updateRestrictByGroup : function() {
|
||||
updateRestrictByGroup: function() {
|
||||
if (!this.restrictByGroup) {
|
||||
return;
|
||||
}
|
||||
@@ -215,7 +215,7 @@ M.core_availability.form = {
|
||||
*
|
||||
* @param e Button click event
|
||||
*/
|
||||
addRestrictByGroup : function(e) {
|
||||
addRestrictByGroup: function(e) {
|
||||
// If you don't prevent default, it submits the form for some reason.
|
||||
e.preventDefault();
|
||||
|
||||
@@ -225,10 +225,10 @@ M.core_availability.form = {
|
||||
if (groupingid && Number(groupingid.get('value')) !== 0) {
|
||||
// Add a grouping restriction if one is specified.
|
||||
newChild = new M.core_availability.Item(
|
||||
{type : 'grouping', id : Number(groupingid.get('value'))}, true);
|
||||
{type: 'grouping', id: Number(groupingid.get('value'))}, true);
|
||||
} else {
|
||||
// Otherwise just add a group restriction.
|
||||
newChild = new M.core_availability.Item({type : 'group'}, true);
|
||||
newChild = new M.core_availability.Item({type: 'group'}, true);
|
||||
}
|
||||
|
||||
// Refresh HTML.
|
||||
@@ -253,7 +253,7 @@ M.core_availability.plugin = {
|
||||
* @property allowAdd
|
||||
* @type Boolean
|
||||
*/
|
||||
allowAdd : false,
|
||||
allowAdd: false,
|
||||
|
||||
/**
|
||||
* Called (from PHP) to initialise the plugin. Should usually not be
|
||||
@@ -262,7 +262,7 @@ M.core_availability.plugin = {
|
||||
* @method init
|
||||
* @param {String} component Component name e.g. 'availability_date'
|
||||
*/
|
||||
init : function(component, allowAdd, params) {
|
||||
init: function(component, allowAdd, params) {
|
||||
var name = component.replace(/^availability_/, '');
|
||||
this.allowAdd = allowAdd;
|
||||
M.core_availability.form.plugins[name] = this;
|
||||
@@ -278,7 +278,8 @@ M.core_availability.plugin = {
|
||||
* @method initInner
|
||||
* @protected
|
||||
*/
|
||||
initInner : function() {
|
||||
initInner: function() {
|
||||
// Can be overriden.
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -289,7 +290,7 @@ M.core_availability.plugin = {
|
||||
* @method getNode
|
||||
* @return {Y.Node} YUI node
|
||||
*/
|
||||
getNode : function() {
|
||||
getNode: function() {
|
||||
throw 'getNode not implemented';
|
||||
},
|
||||
|
||||
@@ -303,7 +304,7 @@ M.core_availability.plugin = {
|
||||
* @param {Object} value Value object (to be written to)
|
||||
* @param {Y.Node} node YUI node (same one returned from getNode)
|
||||
*/
|
||||
fillValue : function() {
|
||||
fillValue: function() {
|
||||
throw 'fillValue not implemented';
|
||||
},
|
||||
|
||||
@@ -320,7 +321,8 @@ M.core_availability.plugin = {
|
||||
* @param {Array} errors Array of errors (push new errors here)
|
||||
* @param {Y.Node} node YUI node (same one returned from getNode)
|
||||
*/
|
||||
fillErrors : function() {
|
||||
fillErrors: function() {
|
||||
// Can be overriden.
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -329,7 +331,7 @@ M.core_availability.plugin = {
|
||||
* The default implementation uses a simple algorithm to identify the
|
||||
* first focusable input/select and then focuses it.
|
||||
*/
|
||||
focusAfterAdd : function(node) {
|
||||
focusAfterAdd: function(node) {
|
||||
var target = node.one('input:not([disabled]),select:not([disabled])');
|
||||
target.focus();
|
||||
}
|
||||
@@ -411,7 +413,9 @@ M.core_availability.List = function(json, root, parentRoot) {
|
||||
// Create the button and add it.
|
||||
var button = Y.Node.create('<button type="button" class="btn btn-default">' +
|
||||
M.util.get_string('addrestriction', 'availability') + '</button>');
|
||||
button.on("click", function() { this.clickAdd(); }, this);
|
||||
button.on("click", function() {
|
||||
this.clickAdd();
|
||||
}, this);
|
||||
this.node.one('div.availability-button').appendChild(button);
|
||||
|
||||
if (json) {
|
||||
@@ -532,7 +536,7 @@ M.core_availability.List.prototype.isIndividualShowIcons = function() {
|
||||
*/
|
||||
M.core_availability.List.prototype.renumber = function(parentNumber) {
|
||||
// Update heading for list.
|
||||
var headingParams = { count: this.children.length };
|
||||
var headingParams = {count: this.children.length};
|
||||
var prefix;
|
||||
if (parentNumber === undefined) {
|
||||
headingParams.number = '';
|
||||
@@ -670,7 +674,7 @@ M.core_availability.List.prototype.clickAdd = function() {
|
||||
var cancel = content.one('button');
|
||||
|
||||
// Make a list of all the dialog options.
|
||||
var dialogRef = { dialog: null };
|
||||
var dialogRef = {dialog: null};
|
||||
var ul = content.one('ul');
|
||||
var li, id, button, label;
|
||||
for (var type in M.core_availability.form.plugins) {
|
||||
@@ -703,13 +707,13 @@ M.core_availability.List.prototype.clickAdd = function() {
|
||||
ul.appendChild(li);
|
||||
|
||||
var config = {
|
||||
headerContent : M.util.get_string('addrestriction', 'availability'),
|
||||
bodyContent : content,
|
||||
additionalBaseClass : 'availability-dialogue',
|
||||
draggable : true,
|
||||
modal : true,
|
||||
closeButton : false,
|
||||
width : '450px'
|
||||
headerContent: M.util.get_string('addrestriction', 'availability'),
|
||||
bodyContent: content,
|
||||
additionalBaseClass: 'availability-dialogue',
|
||||
draggable: true,
|
||||
modal: true,
|
||||
closeButton: false,
|
||||
width: '450px'
|
||||
};
|
||||
dialogRef.dialog = new M.core.dialogue(config);
|
||||
dialogRef.dialog.show();
|
||||
@@ -734,10 +738,10 @@ M.core_availability.List.prototype.getAddHandler = function(type, dialogRef) {
|
||||
var newItem;
|
||||
if (type) {
|
||||
// Create an Item object to represent the child.
|
||||
newItem = new M.core_availability.Item({ type: type, creating: true }, this.root);
|
||||
newItem = new M.core_availability.Item({type: type, creating: true}, this.root);
|
||||
} else {
|
||||
// Create a new List object to represent the child.
|
||||
newItem = new M.core_availability.List({ c: [], showc: true }, false, this.root);
|
||||
newItem = new M.core_availability.List({c: [], showc: true}, false, this.root);
|
||||
}
|
||||
// Add to list.
|
||||
this.addChild(newItem);
|
||||
@@ -899,7 +903,7 @@ M.core_availability.Item = function(json, root) {
|
||||
// hidden depending on the selected list operator.
|
||||
if (root) {
|
||||
var shown = true;
|
||||
if(json.showc !== undefined) {
|
||||
if (json.showc !== undefined) {
|
||||
shown = json.showc;
|
||||
}
|
||||
this.eyeIcon = new M.core_availability.EyeIcon(true, shown);
|
||||
@@ -927,7 +931,7 @@ M.core_availability.Item = function(json, root) {
|
||||
* @return {Object} JavaScript object containing value of this item
|
||||
*/
|
||||
M.core_availability.Item.prototype.getValue = function() {
|
||||
var value = { 'type' : this.pluginType };
|
||||
var value = {'type': this.pluginType};
|
||||
if (this.plugin) {
|
||||
this.plugin.fillValue(value, this.pluginNode);
|
||||
}
|
||||
@@ -968,7 +972,7 @@ M.core_availability.Item.prototype.fillErrors = function(errors) {
|
||||
*/
|
||||
M.core_availability.Item.prototype.renumber = function(number) {
|
||||
// Update heading for item.
|
||||
var headingParams = { number: number };
|
||||
var headingParams = {number: number};
|
||||
if (this.plugin) {
|
||||
headingParams.type = M.util.get_string('title', 'availability_' + this.pluginType);
|
||||
} else {
|
||||
@@ -1064,7 +1068,7 @@ M.core_availability.EyeIcon = function(individual, shown) {
|
||||
this.span.set('title', shownStr + ' \u2022 ' +
|
||||
M.util.get_string('hide_verb', 'availability'));
|
||||
};
|
||||
if(shown) {
|
||||
if (shown) {
|
||||
setShown.call(this);
|
||||
} else {
|
||||
setHidden.call(this);
|
||||
@@ -1082,7 +1086,9 @@ M.core_availability.EyeIcon = function(individual, shown) {
|
||||
};
|
||||
this.span.on('click', click, this);
|
||||
this.span.on('key', click, 'up:32', this);
|
||||
this.span.on('key', function(e) { e.preventDefault(); }, 'down:32', this);
|
||||
this.span.on('key', function(e) {
|
||||
e.preventDefault();
|
||||
}, 'down:32', this);
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -1134,7 +1140,9 @@ M.core_availability.DeleteIcon = function(toDelete) {
|
||||
};
|
||||
this.span.on('click', click, this);
|
||||
this.span.on('key', click, 'up:32', this);
|
||||
this.span.on('key', function(e) { e.preventDefault(); }, 'down:32', this);
|
||||
this.span.on('key', function(e) {
|
||||
e.preventDefault();
|
||||
}, 'down:32', this);
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
+47
-39
@@ -32,7 +32,7 @@ M.core_availability.form = {
|
||||
* @property plugins
|
||||
* @type Object
|
||||
*/
|
||||
plugins : {},
|
||||
plugins: {},
|
||||
|
||||
/**
|
||||
* Availability field (textarea).
|
||||
@@ -40,7 +40,7 @@ M.core_availability.form = {
|
||||
* @property field
|
||||
* @type Y.Node
|
||||
*/
|
||||
field : null,
|
||||
field: null,
|
||||
|
||||
/**
|
||||
* Main div that replaces the availability field.
|
||||
@@ -48,7 +48,7 @@ M.core_availability.form = {
|
||||
* @property mainDiv
|
||||
* @type Y.Node
|
||||
*/
|
||||
mainDiv : null,
|
||||
mainDiv: null,
|
||||
|
||||
/**
|
||||
* Object that represents the root of the tree.
|
||||
@@ -56,7 +56,7 @@ M.core_availability.form = {
|
||||
* @property rootList
|
||||
* @type M.core_availability.List
|
||||
*/
|
||||
rootList : null,
|
||||
rootList: null,
|
||||
|
||||
/**
|
||||
* Counter used when creating anything that needs an id.
|
||||
@@ -64,7 +64,7 @@ M.core_availability.form = {
|
||||
* @property idCounter
|
||||
* @type Number
|
||||
*/
|
||||
idCounter : 0,
|
||||
idCounter: 0,
|
||||
|
||||
/**
|
||||
* The 'Restrict by group' button if present.
|
||||
@@ -72,7 +72,7 @@ M.core_availability.form = {
|
||||
* @property restrictByGroup
|
||||
* @type Y.Node
|
||||
*/
|
||||
restrictByGroup : null,
|
||||
restrictByGroup: null,
|
||||
|
||||
/**
|
||||
* Called to initialise the system when the page loads. This method will
|
||||
@@ -80,9 +80,9 @@ M.core_availability.form = {
|
||||
*
|
||||
* @method init
|
||||
*/
|
||||
init : function(pluginParams) {
|
||||
init: function(pluginParams) {
|
||||
// Init all plugins.
|
||||
for(var plugin in pluginParams) {
|
||||
for (var plugin in pluginParams) {
|
||||
var params = pluginParams[plugin];
|
||||
var pluginClass = M[params[0]].form;
|
||||
pluginClass.init.apply(pluginClass, params);
|
||||
@@ -108,7 +108,7 @@ M.core_availability.form = {
|
||||
if (value !== '') {
|
||||
try {
|
||||
data = Y.JSON.parse(value);
|
||||
} catch(x) {
|
||||
} catch (x) {
|
||||
// If the JSON data is not valid, treat it as empty.
|
||||
this.field.set('value', '');
|
||||
}
|
||||
@@ -154,7 +154,7 @@ M.core_availability.form = {
|
||||
*
|
||||
* @method update
|
||||
*/
|
||||
update : function() {
|
||||
update: function() {
|
||||
// Convert tree to value.
|
||||
var jsValue = this.rootList.getValue();
|
||||
|
||||
@@ -176,7 +176,7 @@ M.core_availability.form = {
|
||||
* Updates the status of the 'restrict by group' button (enables or disables
|
||||
* it) based on current availability restrictions and group/grouping settings.
|
||||
*/
|
||||
updateRestrictByGroup : function() {
|
||||
updateRestrictByGroup: function() {
|
||||
if (!this.restrictByGroup) {
|
||||
return;
|
||||
}
|
||||
@@ -215,7 +215,7 @@ M.core_availability.form = {
|
||||
*
|
||||
* @param e Button click event
|
||||
*/
|
||||
addRestrictByGroup : function(e) {
|
||||
addRestrictByGroup: function(e) {
|
||||
// If you don't prevent default, it submits the form for some reason.
|
||||
e.preventDefault();
|
||||
|
||||
@@ -225,10 +225,10 @@ M.core_availability.form = {
|
||||
if (groupingid && Number(groupingid.get('value')) !== 0) {
|
||||
// Add a grouping restriction if one is specified.
|
||||
newChild = new M.core_availability.Item(
|
||||
{type : 'grouping', id : Number(groupingid.get('value'))}, true);
|
||||
{type: 'grouping', id: Number(groupingid.get('value'))}, true);
|
||||
} else {
|
||||
// Otherwise just add a group restriction.
|
||||
newChild = new M.core_availability.Item({type : 'group'}, true);
|
||||
newChild = new M.core_availability.Item({type: 'group'}, true);
|
||||
}
|
||||
|
||||
// Refresh HTML.
|
||||
@@ -253,7 +253,7 @@ M.core_availability.plugin = {
|
||||
* @property allowAdd
|
||||
* @type Boolean
|
||||
*/
|
||||
allowAdd : false,
|
||||
allowAdd: false,
|
||||
|
||||
/**
|
||||
* Called (from PHP) to initialise the plugin. Should usually not be
|
||||
@@ -262,7 +262,7 @@ M.core_availability.plugin = {
|
||||
* @method init
|
||||
* @param {String} component Component name e.g. 'availability_date'
|
||||
*/
|
||||
init : function(component, allowAdd, params) {
|
||||
init: function(component, allowAdd, params) {
|
||||
var name = component.replace(/^availability_/, '');
|
||||
this.allowAdd = allowAdd;
|
||||
M.core_availability.form.plugins[name] = this;
|
||||
@@ -278,7 +278,8 @@ M.core_availability.plugin = {
|
||||
* @method initInner
|
||||
* @protected
|
||||
*/
|
||||
initInner : function() {
|
||||
initInner: function() {
|
||||
// Can be overriden.
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -289,7 +290,7 @@ M.core_availability.plugin = {
|
||||
* @method getNode
|
||||
* @return {Y.Node} YUI node
|
||||
*/
|
||||
getNode : function() {
|
||||
getNode: function() {
|
||||
throw 'getNode not implemented';
|
||||
},
|
||||
|
||||
@@ -303,7 +304,7 @@ M.core_availability.plugin = {
|
||||
* @param {Object} value Value object (to be written to)
|
||||
* @param {Y.Node} node YUI node (same one returned from getNode)
|
||||
*/
|
||||
fillValue : function() {
|
||||
fillValue: function() {
|
||||
throw 'fillValue not implemented';
|
||||
},
|
||||
|
||||
@@ -320,7 +321,8 @@ M.core_availability.plugin = {
|
||||
* @param {Array} errors Array of errors (push new errors here)
|
||||
* @param {Y.Node} node YUI node (same one returned from getNode)
|
||||
*/
|
||||
fillErrors : function() {
|
||||
fillErrors: function() {
|
||||
// Can be overriden.
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -329,7 +331,7 @@ M.core_availability.plugin = {
|
||||
* The default implementation uses a simple algorithm to identify the
|
||||
* first focusable input/select and then focuses it.
|
||||
*/
|
||||
focusAfterAdd : function(node) {
|
||||
focusAfterAdd: function(node) {
|
||||
var target = node.one('input:not([disabled]),select:not([disabled])');
|
||||
target.focus();
|
||||
}
|
||||
@@ -411,7 +413,9 @@ M.core_availability.List = function(json, root, parentRoot) {
|
||||
// Create the button and add it.
|
||||
var button = Y.Node.create('<button type="button" class="btn btn-default">' +
|
||||
M.util.get_string('addrestriction', 'availability') + '</button>');
|
||||
button.on("click", function() { this.clickAdd(); }, this);
|
||||
button.on("click", function() {
|
||||
this.clickAdd();
|
||||
}, this);
|
||||
this.node.one('div.availability-button').appendChild(button);
|
||||
|
||||
if (json) {
|
||||
@@ -532,7 +536,7 @@ M.core_availability.List.prototype.isIndividualShowIcons = function() {
|
||||
*/
|
||||
M.core_availability.List.prototype.renumber = function(parentNumber) {
|
||||
// Update heading for list.
|
||||
var headingParams = { count: this.children.length };
|
||||
var headingParams = {count: this.children.length};
|
||||
var prefix;
|
||||
if (parentNumber === undefined) {
|
||||
headingParams.number = '';
|
||||
@@ -670,7 +674,7 @@ M.core_availability.List.prototype.clickAdd = function() {
|
||||
var cancel = content.one('button');
|
||||
|
||||
// Make a list of all the dialog options.
|
||||
var dialogRef = { dialog: null };
|
||||
var dialogRef = {dialog: null};
|
||||
var ul = content.one('ul');
|
||||
var li, id, button, label;
|
||||
for (var type in M.core_availability.form.plugins) {
|
||||
@@ -703,13 +707,13 @@ M.core_availability.List.prototype.clickAdd = function() {
|
||||
ul.appendChild(li);
|
||||
|
||||
var config = {
|
||||
headerContent : M.util.get_string('addrestriction', 'availability'),
|
||||
bodyContent : content,
|
||||
additionalBaseClass : 'availability-dialogue',
|
||||
draggable : true,
|
||||
modal : true,
|
||||
closeButton : false,
|
||||
width : '450px'
|
||||
headerContent: M.util.get_string('addrestriction', 'availability'),
|
||||
bodyContent: content,
|
||||
additionalBaseClass: 'availability-dialogue',
|
||||
draggable: true,
|
||||
modal: true,
|
||||
closeButton: false,
|
||||
width: '450px'
|
||||
};
|
||||
dialogRef.dialog = new M.core.dialogue(config);
|
||||
dialogRef.dialog.show();
|
||||
@@ -734,10 +738,10 @@ M.core_availability.List.prototype.getAddHandler = function(type, dialogRef) {
|
||||
var newItem;
|
||||
if (type) {
|
||||
// Create an Item object to represent the child.
|
||||
newItem = new M.core_availability.Item({ type: type, creating: true }, this.root);
|
||||
newItem = new M.core_availability.Item({type: type, creating: true}, this.root);
|
||||
} else {
|
||||
// Create a new List object to represent the child.
|
||||
newItem = new M.core_availability.List({ c: [], showc: true }, false, this.root);
|
||||
newItem = new M.core_availability.List({c: [], showc: true}, false, this.root);
|
||||
}
|
||||
// Add to list.
|
||||
this.addChild(newItem);
|
||||
@@ -899,7 +903,7 @@ M.core_availability.Item = function(json, root) {
|
||||
// hidden depending on the selected list operator.
|
||||
if (root) {
|
||||
var shown = true;
|
||||
if(json.showc !== undefined) {
|
||||
if (json.showc !== undefined) {
|
||||
shown = json.showc;
|
||||
}
|
||||
this.eyeIcon = new M.core_availability.EyeIcon(true, shown);
|
||||
@@ -927,7 +931,7 @@ M.core_availability.Item = function(json, root) {
|
||||
* @return {Object} JavaScript object containing value of this item
|
||||
*/
|
||||
M.core_availability.Item.prototype.getValue = function() {
|
||||
var value = { 'type' : this.pluginType };
|
||||
var value = {'type': this.pluginType};
|
||||
if (this.plugin) {
|
||||
this.plugin.fillValue(value, this.pluginNode);
|
||||
}
|
||||
@@ -968,7 +972,7 @@ M.core_availability.Item.prototype.fillErrors = function(errors) {
|
||||
*/
|
||||
M.core_availability.Item.prototype.renumber = function(number) {
|
||||
// Update heading for item.
|
||||
var headingParams = { number: number };
|
||||
var headingParams = {number: number};
|
||||
if (this.plugin) {
|
||||
headingParams.type = M.util.get_string('title', 'availability_' + this.pluginType);
|
||||
} else {
|
||||
@@ -1064,7 +1068,7 @@ M.core_availability.EyeIcon = function(individual, shown) {
|
||||
this.span.set('title', shownStr + ' \u2022 ' +
|
||||
M.util.get_string('hide_verb', 'availability'));
|
||||
};
|
||||
if(shown) {
|
||||
if (shown) {
|
||||
setShown.call(this);
|
||||
} else {
|
||||
setHidden.call(this);
|
||||
@@ -1082,7 +1086,9 @@ M.core_availability.EyeIcon = function(individual, shown) {
|
||||
};
|
||||
this.span.on('click', click, this);
|
||||
this.span.on('key', click, 'up:32', this);
|
||||
this.span.on('key', function(e) { e.preventDefault(); }, 'down:32', this);
|
||||
this.span.on('key', function(e) {
|
||||
e.preventDefault();
|
||||
}, 'down:32', this);
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -1134,7 +1140,9 @@ M.core_availability.DeleteIcon = function(toDelete) {
|
||||
};
|
||||
this.span.on('click', click, this);
|
||||
this.span.on('key', click, 'up:32', this);
|
||||
this.span.on('key', function(e) { e.preventDefault(); }, 'down:32', this);
|
||||
this.span.on('key', function(e) {
|
||||
e.preventDefault();
|
||||
}, 'down:32', this);
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
Vendored
+37
-14
@@ -93,11 +93,19 @@ M.core_backup.backupselectall = function(modnames) {
|
||||
|
||||
// Add select all/none for each module type.
|
||||
var initlinks = function(links, mod) {
|
||||
Y.one('#backup-all-mod_' + mod).on('click', function(e) { helper(e, true, '_included', mod); });
|
||||
Y.one('#backup-none-mod_' + mod).on('click', function(e) { helper(e, false, '_included', mod); });
|
||||
Y.one('#backup-all-mod_' + mod).on('click', function(e) {
|
||||
helper(e, true, '_included', mod);
|
||||
});
|
||||
Y.one('#backup-none-mod_' + mod).on('click', function(e) {
|
||||
helper(e, false, '_included', mod);
|
||||
});
|
||||
if (withuserdata) {
|
||||
Y.one('#backup-all-userdata-mod_' + mod).on('click', function(e) { helper(e, true, withuserdata, mod); });
|
||||
Y.one('#backup-none-userdata-mod_' + mod).on('click', function(e) { helper(e, false, withuserdata, mod); });
|
||||
Y.one('#backup-all-userdata-mod_' + mod).on('click', function(e) {
|
||||
helper(e, true, withuserdata, mod);
|
||||
});
|
||||
Y.one('#backup-none-userdata-mod_' + mod).on('click', function(e) {
|
||||
helper(e, false, withuserdata, mod);
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
@@ -135,33 +143,48 @@ M.core_backup.backupselectall = function(modnames) {
|
||||
modlist.currentlyshown = !modlist.currentlyshown;
|
||||
|
||||
// Either hide or show the links.
|
||||
var animcfg = { node: modlist, duration: 0.2 },
|
||||
var animcfg = {node: modlist, duration: 0.2},
|
||||
anim;
|
||||
if (modlist.currentlyshown) {
|
||||
// Animate reveal of the module links.
|
||||
modlist.show();
|
||||
animcfg.to = { maxHeight: modlist.get('clientHeight') + 'px' };
|
||||
animcfg.to = {maxHeight: modlist.get('clientHeight') + 'px'};
|
||||
modlist.setStyle('maxHeight', '0px');
|
||||
anim = new Y.Anim(animcfg);
|
||||
anim.on('end', function() { modlist.setStyle('maxHeight', 'none'); });
|
||||
anim.on('end', function() {
|
||||
modlist.setStyle('maxHeight', 'none');
|
||||
});
|
||||
anim.run();
|
||||
} else {
|
||||
// Animate hide of the module links.
|
||||
animcfg.to = { maxHeight: '0px' };
|
||||
animcfg.to = {maxHeight: '0px'};
|
||||
modlist.setStyle('maxHeight', modlist.get('clientHeight') + 'px');
|
||||
anim = new Y.Anim(animcfg);
|
||||
anim.on('end', function() { modlist.hide(); modlist.setStyle('maxHeight', 'none'); });
|
||||
anim.on('end', function() {
|
||||
modlist.hide();
|
||||
modlist.setStyle('maxHeight', 'none');
|
||||
});
|
||||
anim.run();
|
||||
}
|
||||
|
||||
};
|
||||
Y.one('#backup-bytype').on('click', function() { toggletypes(); });
|
||||
Y.one('#backup-bytype').on('click', function() {
|
||||
toggletypes();
|
||||
});
|
||||
|
||||
Y.one('#backup-all-included').on('click', function(e) { helper(e, true, '_included'); });
|
||||
Y.one('#backup-none-included').on('click', function(e) { helper(e, false, '_included'); });
|
||||
Y.one('#backup-all-included').on('click', function(e) {
|
||||
helper(e, true, '_included');
|
||||
});
|
||||
Y.one('#backup-none-included').on('click', function(e) {
|
||||
helper(e, false, '_included');
|
||||
});
|
||||
if (withuserdata) {
|
||||
Y.one('#backup-all-userdata').on('click', function(e) { helper(e, true, withuserdata); });
|
||||
Y.one('#backup-none-userdata').on('click', function(e) { helper(e, false, withuserdata); });
|
||||
Y.one('#backup-all-userdata').on('click', function(e) {
|
||||
helper(e, true, withuserdata);
|
||||
});
|
||||
Y.one('#backup-none-userdata').on('click', function(e) {
|
||||
helper(e, false, withuserdata);
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
+37
-14
@@ -93,11 +93,19 @@ M.core_backup.backupselectall = function(modnames) {
|
||||
|
||||
// Add select all/none for each module type.
|
||||
var initlinks = function(links, mod) {
|
||||
Y.one('#backup-all-mod_' + mod).on('click', function(e) { helper(e, true, '_included', mod); });
|
||||
Y.one('#backup-none-mod_' + mod).on('click', function(e) { helper(e, false, '_included', mod); });
|
||||
Y.one('#backup-all-mod_' + mod).on('click', function(e) {
|
||||
helper(e, true, '_included', mod);
|
||||
});
|
||||
Y.one('#backup-none-mod_' + mod).on('click', function(e) {
|
||||
helper(e, false, '_included', mod);
|
||||
});
|
||||
if (withuserdata) {
|
||||
Y.one('#backup-all-userdata-mod_' + mod).on('click', function(e) { helper(e, true, withuserdata, mod); });
|
||||
Y.one('#backup-none-userdata-mod_' + mod).on('click', function(e) { helper(e, false, withuserdata, mod); });
|
||||
Y.one('#backup-all-userdata-mod_' + mod).on('click', function(e) {
|
||||
helper(e, true, withuserdata, mod);
|
||||
});
|
||||
Y.one('#backup-none-userdata-mod_' + mod).on('click', function(e) {
|
||||
helper(e, false, withuserdata, mod);
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
@@ -135,33 +143,48 @@ M.core_backup.backupselectall = function(modnames) {
|
||||
modlist.currentlyshown = !modlist.currentlyshown;
|
||||
|
||||
// Either hide or show the links.
|
||||
var animcfg = { node: modlist, duration: 0.2 },
|
||||
var animcfg = {node: modlist, duration: 0.2},
|
||||
anim;
|
||||
if (modlist.currentlyshown) {
|
||||
// Animate reveal of the module links.
|
||||
modlist.show();
|
||||
animcfg.to = { maxHeight: modlist.get('clientHeight') + 'px' };
|
||||
animcfg.to = {maxHeight: modlist.get('clientHeight') + 'px'};
|
||||
modlist.setStyle('maxHeight', '0px');
|
||||
anim = new Y.Anim(animcfg);
|
||||
anim.on('end', function() { modlist.setStyle('maxHeight', 'none'); });
|
||||
anim.on('end', function() {
|
||||
modlist.setStyle('maxHeight', 'none');
|
||||
});
|
||||
anim.run();
|
||||
} else {
|
||||
// Animate hide of the module links.
|
||||
animcfg.to = { maxHeight: '0px' };
|
||||
animcfg.to = {maxHeight: '0px'};
|
||||
modlist.setStyle('maxHeight', modlist.get('clientHeight') + 'px');
|
||||
anim = new Y.Anim(animcfg);
|
||||
anim.on('end', function() { modlist.hide(); modlist.setStyle('maxHeight', 'none'); });
|
||||
anim.on('end', function() {
|
||||
modlist.hide();
|
||||
modlist.setStyle('maxHeight', 'none');
|
||||
});
|
||||
anim.run();
|
||||
}
|
||||
|
||||
};
|
||||
Y.one('#backup-bytype').on('click', function() { toggletypes(); });
|
||||
Y.one('#backup-bytype').on('click', function() {
|
||||
toggletypes();
|
||||
});
|
||||
|
||||
Y.one('#backup-all-included').on('click', function(e) { helper(e, true, '_included'); });
|
||||
Y.one('#backup-none-included').on('click', function(e) { helper(e, false, '_included'); });
|
||||
Y.one('#backup-all-included').on('click', function(e) {
|
||||
helper(e, true, '_included');
|
||||
});
|
||||
Y.one('#backup-none-included').on('click', function(e) {
|
||||
helper(e, false, '_included');
|
||||
});
|
||||
if (withuserdata) {
|
||||
Y.one('#backup-all-userdata').on('click', function(e) { helper(e, true, withuserdata); });
|
||||
Y.one('#backup-none-userdata').on('click', function(e) { helper(e, false, withuserdata); });
|
||||
Y.one('#backup-all-userdata').on('click', function(e) {
|
||||
helper(e, true, withuserdata);
|
||||
});
|
||||
Y.one('#backup-none-userdata').on('click', function(e) {
|
||||
helper(e, false, withuserdata);
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
+1
-1
@@ -64,7 +64,7 @@ M.core_backup.confirmcancel = {
|
||||
var confirm = new M.core.confirm(this.config);
|
||||
|
||||
// If the user clicks yes.
|
||||
confirm.on('complete-yes', function(){
|
||||
confirm.on('complete-yes', function() {
|
||||
// Detach the listeners for the confirm box so they don't fire again.
|
||||
new Y.EventHandle(M.core_backup.confirmcancel.listeners).detach();
|
||||
|
||||
|
||||
+1
-1
@@ -64,7 +64,7 @@ M.core_backup.confirmcancel = {
|
||||
var confirm = new M.core.confirm(this.config);
|
||||
|
||||
// If the user clicks yes.
|
||||
confirm.on('complete-yes', function(){
|
||||
confirm.on('complete-yes', function() {
|
||||
// Detach the listeners for the confirm box so they don't fire again.
|
||||
new Y.EventHandle(M.core_backup.confirmcancel.listeners).detach();
|
||||
|
||||
|
||||
+11
-11
@@ -21,7 +21,7 @@ var COURSEBASE = function() {
|
||||
*/
|
||||
Y.extend(COURSEBASE, Y.Base, {
|
||||
// Registered Modules
|
||||
registermodules : [],
|
||||
registermodules: [],
|
||||
|
||||
/**
|
||||
* Register a new Javascript Module
|
||||
@@ -30,7 +30,7 @@ Y.extend(COURSEBASE, Y.Base, {
|
||||
* @param {Object} The instantiated module to call functions on
|
||||
* @chainable
|
||||
*/
|
||||
register_module : function(object) {
|
||||
register_module: function(object) {
|
||||
this.registermodules.push(object);
|
||||
|
||||
return this;
|
||||
@@ -44,7 +44,7 @@ Y.extend(COURSEBASE, Y.Base, {
|
||||
* @param {mixed} args The argument supplied to the function
|
||||
* @chainable
|
||||
*/
|
||||
invoke_function : function(functionname, args) {
|
||||
invoke_function: function(functionname, args) {
|
||||
var module;
|
||||
for (module in this.registermodules) {
|
||||
if (functionname in this.registermodules[module]) {
|
||||
@@ -55,8 +55,8 @@ Y.extend(COURSEBASE, Y.Base, {
|
||||
return this;
|
||||
}
|
||||
}, {
|
||||
NAME : COURSEBASENAME,
|
||||
ATTRS : {}
|
||||
NAME: COURSEBASENAME,
|
||||
ATTRS: {}
|
||||
});
|
||||
|
||||
// Ensure that M.course exists and that coursebase is initialised correctly
|
||||
@@ -104,12 +104,12 @@ M.course.format.process_sections = M.course.format.process_sections || function(
|
||||
*/
|
||||
M.course.format.get_config = M.course.format.get_config || function() {
|
||||
return {
|
||||
container_node : null, // compulsory
|
||||
container_class : null, // compulsory
|
||||
section_wrapper_node : null, // optional
|
||||
section_wrapper_class : null, // optional
|
||||
section_node : null, // compulsory
|
||||
section_class : null // compulsory
|
||||
container_node: null, // compulsory
|
||||
container_class: null, // compulsory
|
||||
section_wrapper_node: null, // optional
|
||||
section_wrapper_class: null, // optional
|
||||
section_node: null, // compulsory
|
||||
section_class: null // compulsory
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ var COURSEBASE = function() {
|
||||
*/
|
||||
Y.extend(COURSEBASE, Y.Base, {
|
||||
// Registered Modules
|
||||
registermodules : [],
|
||||
registermodules: [],
|
||||
|
||||
/**
|
||||
* Register a new Javascript Module
|
||||
@@ -30,7 +30,7 @@ Y.extend(COURSEBASE, Y.Base, {
|
||||
* @param {Object} The instantiated module to call functions on
|
||||
* @chainable
|
||||
*/
|
||||
register_module : function(object) {
|
||||
register_module: function(object) {
|
||||
this.registermodules.push(object);
|
||||
|
||||
return this;
|
||||
@@ -44,7 +44,7 @@ Y.extend(COURSEBASE, Y.Base, {
|
||||
* @param {mixed} args The argument supplied to the function
|
||||
* @chainable
|
||||
*/
|
||||
invoke_function : function(functionname, args) {
|
||||
invoke_function: function(functionname, args) {
|
||||
var module;
|
||||
for (module in this.registermodules) {
|
||||
if (functionname in this.registermodules[module]) {
|
||||
@@ -55,8 +55,8 @@ Y.extend(COURSEBASE, Y.Base, {
|
||||
return this;
|
||||
}
|
||||
}, {
|
||||
NAME : COURSEBASENAME,
|
||||
ATTRS : {}
|
||||
NAME: COURSEBASENAME,
|
||||
ATTRS: {}
|
||||
});
|
||||
|
||||
// Ensure that M.course exists and that coursebase is initialised correctly
|
||||
@@ -104,12 +104,12 @@ M.course.format.process_sections = M.course.format.process_sections || function(
|
||||
*/
|
||||
M.course.format.get_config = M.course.format.get_config || function() {
|
||||
return {
|
||||
container_node : null, // compulsory
|
||||
container_class : null, // compulsory
|
||||
section_wrapper_node : null, // optional
|
||||
section_wrapper_class : null, // optional
|
||||
section_node : null, // compulsory
|
||||
section_class : null // compulsory
|
||||
container_node: null, // compulsory
|
||||
container_class: null, // compulsory
|
||||
section_wrapper_node: null, // optional
|
||||
section_wrapper_class: null, // optional
|
||||
section_node: null, // compulsory
|
||||
section_class: null // compulsory
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -45,7 +45,7 @@ Y.extend(DRAGSECTION, M.core.dragdrop, {
|
||||
|
||||
initializer: function() {
|
||||
// Set group for parent class
|
||||
this.groups = [ CSS.SECTIONDRAGGABLE ];
|
||||
this.groups = [CSS.SECTIONDRAGGABLE];
|
||||
this.samenodeclass = M.course.format.get_sectionwrapperclass();
|
||||
this.parentnodeclass = M.course.format.get_containerclass();
|
||||
|
||||
@@ -152,7 +152,7 @@ Y.extend(DRAGSECTION, M.core.dragdrop, {
|
||||
containernode.addClass(M.course.format.get_containerclass());
|
||||
var sectionnode = Y.Node.create('<' + M.course.format.get_sectionwrappernode() +
|
||||
'></' + M.course.format.get_sectionwrappernode() + '>');
|
||||
sectionnode.addClass( M.course.format.get_sectionwrapperclass());
|
||||
sectionnode.addClass(M.course.format.get_sectionwrapperclass());
|
||||
sectionnode.setStyle('margin', 0);
|
||||
sectionnode.setContent(drag.get('node').get('innerHTML'));
|
||||
containernode.appendChild(sectionnode);
|
||||
@@ -246,7 +246,9 @@ Y.extend(DRAGSECTION, M.core.dragdrop, {
|
||||
new M.core.ajaxException(responsetext);
|
||||
}
|
||||
M.course.format.process_sections(Y, sectionlist, responsetext, loopstart, loopend);
|
||||
} catch (e) {}
|
||||
} catch (e) {
|
||||
// Ignore.
|
||||
}
|
||||
|
||||
// Update all of the section IDs - first unset them, then set them
|
||||
// to avoid duplicates in the DOM.
|
||||
@@ -287,7 +289,7 @@ Y.extend(DRAGSECTION, M.core.dragdrop, {
|
||||
lightbox.hide();
|
||||
}
|
||||
},
|
||||
context:this
|
||||
context: this
|
||||
});
|
||||
}
|
||||
|
||||
@@ -497,7 +499,7 @@ Y.extend(DRAGRESOURCE, M.core.dragdrop, {
|
||||
// TODO: revert nodes location
|
||||
}
|
||||
},
|
||||
context:this
|
||||
context: this
|
||||
});
|
||||
}
|
||||
}, {
|
||||
|
||||
@@ -45,7 +45,7 @@ Y.extend(DRAGSECTION, M.core.dragdrop, {
|
||||
|
||||
initializer: function() {
|
||||
// Set group for parent class
|
||||
this.groups = [ CSS.SECTIONDRAGGABLE ];
|
||||
this.groups = [CSS.SECTIONDRAGGABLE];
|
||||
this.samenodeclass = M.course.format.get_sectionwrapperclass();
|
||||
this.parentnodeclass = M.course.format.get_containerclass();
|
||||
|
||||
@@ -152,7 +152,7 @@ Y.extend(DRAGSECTION, M.core.dragdrop, {
|
||||
containernode.addClass(M.course.format.get_containerclass());
|
||||
var sectionnode = Y.Node.create('<' + M.course.format.get_sectionwrappernode() +
|
||||
'></' + M.course.format.get_sectionwrappernode() + '>');
|
||||
sectionnode.addClass( M.course.format.get_sectionwrapperclass());
|
||||
sectionnode.addClass(M.course.format.get_sectionwrapperclass());
|
||||
sectionnode.setStyle('margin', 0);
|
||||
sectionnode.setContent(drag.get('node').get('innerHTML'));
|
||||
containernode.appendChild(sectionnode);
|
||||
@@ -244,7 +244,9 @@ Y.extend(DRAGSECTION, M.core.dragdrop, {
|
||||
new M.core.ajaxException(responsetext);
|
||||
}
|
||||
M.course.format.process_sections(Y, sectionlist, responsetext, loopstart, loopend);
|
||||
} catch (e) {}
|
||||
} catch (e) {
|
||||
// Ignore.
|
||||
}
|
||||
|
||||
// Update all of the section IDs - first unset them, then set them
|
||||
// to avoid duplicates in the DOM.
|
||||
@@ -283,7 +285,7 @@ Y.extend(DRAGSECTION, M.core.dragdrop, {
|
||||
lightbox.hide();
|
||||
}
|
||||
},
|
||||
context:this
|
||||
context: this
|
||||
});
|
||||
}
|
||||
|
||||
@@ -493,7 +495,7 @@ Y.extend(DRAGRESOURCE, M.core.dragdrop, {
|
||||
// TODO: revert nodes location
|
||||
}
|
||||
},
|
||||
context:this
|
||||
context: this
|
||||
});
|
||||
}
|
||||
}, {
|
||||
|
||||
+3
-3
@@ -5,10 +5,10 @@ var FORMATCHOOSER = function() {
|
||||
};
|
||||
|
||||
Y.extend(FORMATCHOOSER, Y.Base, {
|
||||
initializer : function(params) {
|
||||
initializer: function(params) {
|
||||
if (params && params.formid) {
|
||||
var updatebut = Y.one('#'+params.formid+' #id_updatecourseformat');
|
||||
var formatselect = Y.one('#'+params.formid+' #id_format');
|
||||
var updatebut = Y.one('#' + params.formid + ' #id_updatecourseformat');
|
||||
var formatselect = Y.one('#' + params.formid + ' #id_format');
|
||||
var ancestor = updatebut.ancestor('fieldset');
|
||||
var action = Y.one('form.mform').get('action');
|
||||
if (updatebut && formatselect) {
|
||||
|
||||
+3
-3
@@ -5,10 +5,10 @@ var FORMATCHOOSER = function() {
|
||||
};
|
||||
|
||||
Y.extend(FORMATCHOOSER, Y.Base, {
|
||||
initializer : function(params) {
|
||||
initializer: function(params) {
|
||||
if (params && params.formid) {
|
||||
var updatebut = Y.one('#'+params.formid+' #id_updatecourseformat');
|
||||
var formatselect = Y.one('#'+params.formid+' #id_format');
|
||||
var updatebut = Y.one('#' + params.formid + ' #id_updatecourseformat');
|
||||
var formatselect = Y.one('#' + params.formid + ' #id_format');
|
||||
var ancestor = updatebut.ancestor('fieldset');
|
||||
var action = Y.one('form.mform').get('action');
|
||||
if (updatebut && formatselect) {
|
||||
|
||||
+179
-179
File diff suppressed because it is too large
Load Diff
+157
-157
@@ -29,10 +29,10 @@ Console.ATTRS = {
|
||||
* @attribute element
|
||||
* @type Node
|
||||
*/
|
||||
element : {
|
||||
setter : function(node) {
|
||||
element: {
|
||||
setter: function(node) {
|
||||
if (typeof node === 'string') {
|
||||
node = Y.one('#'+node);
|
||||
node = Y.one('#' + node);
|
||||
}
|
||||
return node;
|
||||
}
|
||||
@@ -44,8 +44,8 @@ Console.ATTRS = {
|
||||
* @type Node
|
||||
* @default null
|
||||
*/
|
||||
categorylisting : {
|
||||
value : null
|
||||
categorylisting: {
|
||||
value: null
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -54,8 +54,8 @@ Console.ATTRS = {
|
||||
* @type Node
|
||||
* @default null
|
||||
*/
|
||||
courselisting : {
|
||||
value : null
|
||||
courselisting: {
|
||||
value: null
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -64,8 +64,8 @@ Console.ATTRS = {
|
||||
* @type Node|null
|
||||
* @default null
|
||||
*/
|
||||
coursedetails : {
|
||||
value : null
|
||||
coursedetails: {
|
||||
value: null
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -74,8 +74,8 @@ Console.ATTRS = {
|
||||
* @type Number
|
||||
* @default null
|
||||
*/
|
||||
activecategoryid : {
|
||||
value : null
|
||||
activecategoryid: {
|
||||
value: null
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -84,8 +84,8 @@ Console.ATTRS = {
|
||||
* @type Number
|
||||
* @default Null
|
||||
*/
|
||||
activecourseid : {
|
||||
value : null
|
||||
activecourseid: {
|
||||
value: null
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -94,8 +94,8 @@ Console.ATTRS = {
|
||||
* @type Array
|
||||
* @default []
|
||||
*/
|
||||
categories : {
|
||||
setter : function(item, name) {
|
||||
categories: {
|
||||
setter: function(item, name) {
|
||||
if (Y.Lang.isArray(item)) {
|
||||
return item;
|
||||
}
|
||||
@@ -103,7 +103,7 @@ Console.ATTRS = {
|
||||
items.push(item);
|
||||
return items;
|
||||
},
|
||||
value : []
|
||||
value: []
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -112,11 +112,11 @@ Console.ATTRS = {
|
||||
* @type Course[]
|
||||
* @default Array
|
||||
*/
|
||||
courses : {
|
||||
validator : function(val) {
|
||||
courses: {
|
||||
validator: function(val) {
|
||||
return Y.Lang.isArray(val);
|
||||
},
|
||||
value : []
|
||||
value: []
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -125,15 +125,15 @@ Console.ATTRS = {
|
||||
* @type Number
|
||||
* @default null
|
||||
*/
|
||||
page : {
|
||||
getter : function(value, name) {
|
||||
page: {
|
||||
getter: function(value, name) {
|
||||
if (value === null) {
|
||||
value = this.get('element').getData(name);
|
||||
this.set(name, value);
|
||||
}
|
||||
return value;
|
||||
},
|
||||
value : null
|
||||
value: null
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -142,15 +142,15 @@ Console.ATTRS = {
|
||||
* @type Number
|
||||
* @default null
|
||||
*/
|
||||
totalpages : {
|
||||
getter : function(value, name) {
|
||||
totalpages: {
|
||||
getter: function(value, name) {
|
||||
if (value === null) {
|
||||
value = this.get('element').getData(name);
|
||||
this.set(name, value);
|
||||
}
|
||||
return value;
|
||||
},
|
||||
value : null
|
||||
value: null
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -159,15 +159,15 @@ Console.ATTRS = {
|
||||
* @type Number
|
||||
* @default null
|
||||
*/
|
||||
totalcourses : {
|
||||
getter : function(value, name) {
|
||||
totalcourses: {
|
||||
getter: function(value, name) {
|
||||
if (value === null) {
|
||||
value = this.get('element').getData(name);
|
||||
this.set(name, value);
|
||||
}
|
||||
return value;
|
||||
},
|
||||
value : null
|
||||
value: null
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -176,14 +176,14 @@ Console.ATTRS = {
|
||||
* @type String
|
||||
* @default /course/ajax/management.php
|
||||
*/
|
||||
ajaxurl : {
|
||||
getter : function(value) {
|
||||
ajaxurl: {
|
||||
getter: function(value) {
|
||||
if (value === null) {
|
||||
value = M.cfg.wwwroot + '/course/ajax/management.php';
|
||||
}
|
||||
return value;
|
||||
},
|
||||
value : null
|
||||
value: null
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -192,8 +192,8 @@ Console.ATTRS = {
|
||||
* @type DragDrop
|
||||
* @default null
|
||||
*/
|
||||
dragdrop : {
|
||||
value : null
|
||||
dragdrop: {
|
||||
value: null
|
||||
}
|
||||
};
|
||||
Console.prototype = {
|
||||
@@ -204,13 +204,13 @@ Console.prototype = {
|
||||
* @private
|
||||
* @type {boolean}
|
||||
*/
|
||||
categoriesinit : false,
|
||||
categoriesinit: false,
|
||||
|
||||
/**
|
||||
* Initialises a new instance of the Console.
|
||||
* @method initializer
|
||||
*/
|
||||
initializer : function() {
|
||||
initializer: function() {
|
||||
this.set('element', 'coursecat-management');
|
||||
var element = this.get('element'),
|
||||
categorylisting = element.one('#category-listing'),
|
||||
@@ -238,7 +238,7 @@ Console.prototype = {
|
||||
|
||||
if (courselisting) {
|
||||
// No need for dragdrop if we don't have a course listing.
|
||||
this.set('dragdrop', new DragDrop({console:this}));
|
||||
this.set('dragdrop', new DragDrop({console: this}));
|
||||
}
|
||||
},
|
||||
|
||||
@@ -248,7 +248,7 @@ Console.prototype = {
|
||||
* @private
|
||||
* @return {boolean}
|
||||
*/
|
||||
initialiseCategories : function(listing) {
|
||||
initialiseCategories: function(listing) {
|
||||
var count = 0;
|
||||
if (!listing) {
|
||||
return false;
|
||||
@@ -268,10 +268,10 @@ Console.prototype = {
|
||||
menuresortcoursesby.setAttribute('disabled', true);
|
||||
}
|
||||
|
||||
listing.all('.listitem[data-id]').each(function(node){
|
||||
listing.all('.listitem[data-id]').each(function(node) {
|
||||
this.set('categories', new Category({
|
||||
node : node,
|
||||
console : this
|
||||
node: node,
|
||||
console: this
|
||||
}));
|
||||
count++;
|
||||
}, this);
|
||||
@@ -290,7 +290,7 @@ Console.prototype = {
|
||||
* @private
|
||||
* @return {boolean}
|
||||
*/
|
||||
initialiseCourses : function() {
|
||||
initialiseCourses: function() {
|
||||
var category = this.getCategoryById(this.get('activecategoryid')),
|
||||
listing = this.get('courselisting'),
|
||||
count = 0;
|
||||
@@ -304,11 +304,11 @@ Console.prototype = {
|
||||
menumovecoursesto.setAttribute('disabled', true);
|
||||
}
|
||||
|
||||
listing.all('.listitem[data-id]').each(function(node){
|
||||
listing.all('.listitem[data-id]').each(function(node) {
|
||||
this.registerCourse(new Course({
|
||||
node : node,
|
||||
console : this,
|
||||
category : category
|
||||
node: node,
|
||||
console: this,
|
||||
category: category
|
||||
}));
|
||||
count++;
|
||||
}, this);
|
||||
@@ -321,7 +321,7 @@ Console.prototype = {
|
||||
* @method registerCourse
|
||||
* @param {Course} course
|
||||
*/
|
||||
registerCourse : function(course) {
|
||||
registerCourse: function(course) {
|
||||
var courses = this.get('courses');
|
||||
courses.push(course);
|
||||
this.set('courses', courses);
|
||||
@@ -334,7 +334,7 @@ Console.prototype = {
|
||||
* @protected
|
||||
* @param {EventFacade} e
|
||||
*/
|
||||
handleCourseDelegation : function(e) {
|
||||
handleCourseDelegation: function(e) {
|
||||
var target = e.currentTarget,
|
||||
action = target.getData('action'),
|
||||
courseid = target.ancestor('.listitem').getData('id'),
|
||||
@@ -352,7 +352,7 @@ Console.prototype = {
|
||||
* @protected
|
||||
* @param {EventFacade} e
|
||||
*/
|
||||
handleCategoryDelegation : function(e) {
|
||||
handleCategoryDelegation: function(e) {
|
||||
var target = e.currentTarget,
|
||||
action = target.getData('action'),
|
||||
categoryid = target.ancestor('.listitem').getData('id'),
|
||||
@@ -370,7 +370,7 @@ Console.prototype = {
|
||||
* @param {Node} checkboxnode Checkbox node on which action happened.
|
||||
* @return bool
|
||||
*/
|
||||
isCourseSelected : function(checkboxnode) {
|
||||
isCourseSelected: function(checkboxnode) {
|
||||
var selected = false;
|
||||
|
||||
// If any course selected then show move to category select box.
|
||||
@@ -401,7 +401,7 @@ Console.prototype = {
|
||||
* @param {Node} checkboxnode Checkbox node on which action happened.
|
||||
* @return bool
|
||||
*/
|
||||
isCategorySelected : function(checkboxnode) {
|
||||
isCategorySelected: function(checkboxnode) {
|
||||
var selected = false;
|
||||
|
||||
// If any category selected then show move to category select box.
|
||||
@@ -432,7 +432,7 @@ Console.prototype = {
|
||||
* @protected
|
||||
* @param {EventFacade} e
|
||||
*/
|
||||
handleBulkSortByaction : function(e) {
|
||||
handleBulkSortByaction: function(e) {
|
||||
var sortcategoryby = this.get('categorylisting').one('#menuresortcategoriesby'),
|
||||
sortcourseby = this.get('categorylisting').one('#menuresortcoursesby'),
|
||||
sortbybutton = this.get('categorylisting').one('input[name="bulksort"]'),
|
||||
@@ -481,7 +481,7 @@ Console.prototype = {
|
||||
* @param {Number} id
|
||||
* @return {Category|Boolean} The category or false if it can't be found.
|
||||
*/
|
||||
getCategoryById : function(id) {
|
||||
getCategoryById: function(id) {
|
||||
var i,
|
||||
category,
|
||||
categories = this.get('categories'),
|
||||
@@ -503,7 +503,7 @@ Console.prototype = {
|
||||
* @param {Number} id
|
||||
* @return {Course|Boolean} The course or false if not found/
|
||||
*/
|
||||
getCourseById : function(id) {
|
||||
getCourseById: function(id) {
|
||||
var i,
|
||||
course,
|
||||
courses = this.get('courses'),
|
||||
@@ -524,7 +524,7 @@ Console.prototype = {
|
||||
* @method removeCourseById
|
||||
* @param {Number} id
|
||||
*/
|
||||
removeCourseById : function(id) {
|
||||
removeCourseById: function(id) {
|
||||
var courses = this.get('courses'),
|
||||
length = courses.length,
|
||||
course,
|
||||
@@ -547,7 +547,7 @@ Console.prototype = {
|
||||
* @param {Function} callback The function to call when all is done.
|
||||
* @param {Object} context The object to use as the context for the callback.
|
||||
*/
|
||||
performAjaxAction : function(action, args, callback, context) {
|
||||
performAjaxAction: function(action, args, callback, context) {
|
||||
var io = new Y.IO();
|
||||
args.action = action;
|
||||
args.ajax = '1';
|
||||
@@ -557,13 +557,13 @@ Console.prototype = {
|
||||
};
|
||||
}
|
||||
io.send(this.get('ajaxurl'), {
|
||||
method : 'POST',
|
||||
on : {
|
||||
complete : callback
|
||||
method: 'POST',
|
||||
on: {
|
||||
complete: callback
|
||||
},
|
||||
context : context,
|
||||
data : args,
|
||||
'arguments' : args
|
||||
context: context,
|
||||
data: args,
|
||||
'arguments': args
|
||||
});
|
||||
}
|
||||
};
|
||||
@@ -605,8 +605,8 @@ DragDrop.ATTRS = {
|
||||
* @type Console
|
||||
* @writeOnce
|
||||
*/
|
||||
console : {
|
||||
writeOnce : 'initOnly'
|
||||
console: {
|
||||
writeOnce: 'initOnly'
|
||||
}
|
||||
};
|
||||
DragDrop.prototype = {
|
||||
@@ -616,7 +616,7 @@ DragDrop.prototype = {
|
||||
* @protected
|
||||
* @default false
|
||||
*/
|
||||
goingup : false,
|
||||
goingup: false,
|
||||
|
||||
/**
|
||||
* The last Y position of the course being dragged
|
||||
@@ -624,7 +624,7 @@ DragDrop.prototype = {
|
||||
* @protected
|
||||
* @default null
|
||||
*/
|
||||
lasty : null,
|
||||
lasty: null,
|
||||
|
||||
/**
|
||||
* The sibling above the course being dragged currently (tracking its original position).
|
||||
@@ -633,13 +633,13 @@ DragDrop.prototype = {
|
||||
* @protected
|
||||
* @default false
|
||||
*/
|
||||
previoussibling : null,
|
||||
previoussibling: null,
|
||||
|
||||
/**
|
||||
* Initialises the DragDrop instance.
|
||||
* @method initializer
|
||||
*/
|
||||
initializer : function() {
|
||||
initializer: function() {
|
||||
var managementconsole = this.get('console'),
|
||||
container = managementconsole.get('element'),
|
||||
categorylisting = container.one('#category-listing'),
|
||||
@@ -654,7 +654,7 @@ DragDrop.prototype = {
|
||||
return false;
|
||||
}
|
||||
|
||||
courseul.all('> li').each(function(li){
|
||||
courseul.all('> li').each(function(li) {
|
||||
this.initCourseListing(li, contstraint);
|
||||
}, this);
|
||||
courseul.setData('dd', new Y.DD.Drop({
|
||||
@@ -662,7 +662,7 @@ DragDrop.prototype = {
|
||||
}));
|
||||
if (canmoveoutof && categoryul) {
|
||||
// Category UL may not be there if viewmode is just courses.
|
||||
categoryul.all('li > div').each(function(div){
|
||||
categoryul.all('li > div').each(function(div) {
|
||||
this.initCategoryListitem(div);
|
||||
}, this);
|
||||
}
|
||||
@@ -681,10 +681,10 @@ DragDrop.prototype = {
|
||||
* @method initCourseListing
|
||||
* @param Node
|
||||
*/
|
||||
initCourseListing : function(node, contstraint) {
|
||||
initCourseListing: function(node, contstraint) {
|
||||
node.setData('dd', new Y.DD.Drag({
|
||||
node : node,
|
||||
target : {
|
||||
node: node,
|
||||
target: {
|
||||
padding: '0 0 0 20'
|
||||
}
|
||||
}).addHandle(
|
||||
@@ -702,7 +702,7 @@ DragDrop.prototype = {
|
||||
* @method initCategoryListitem
|
||||
* @param Node
|
||||
*/
|
||||
initCategoryListitem : function(node) {
|
||||
initCategoryListitem: function(node) {
|
||||
node.setData('dd', new Y.DD.Drop({
|
||||
node: node
|
||||
}));
|
||||
@@ -714,7 +714,7 @@ DragDrop.prototype = {
|
||||
* @private
|
||||
* @param {EventFacade} e
|
||||
*/
|
||||
dragStart : function(e) {
|
||||
dragStart: function(e) {
|
||||
var drag = e.target,
|
||||
node = drag.get('node'),
|
||||
dragnode = drag.get('dragNode');
|
||||
@@ -729,7 +729,7 @@ DragDrop.prototype = {
|
||||
* @private
|
||||
* @param {EventFacade} e
|
||||
*/
|
||||
dragEnd : function(e) {
|
||||
dragEnd: function(e) {
|
||||
var drag = e.target,
|
||||
node = drag.get('node');
|
||||
node.removeClass('course-being-dragged');
|
||||
@@ -742,7 +742,7 @@ DragDrop.prototype = {
|
||||
* @private
|
||||
* @param {EventFacade} e
|
||||
*/
|
||||
dragDrag : function(e) {
|
||||
dragDrag: function(e) {
|
||||
var y = e.target.lastXY[1];
|
||||
if (y < this.lasty) {
|
||||
this.goingup = true;
|
||||
@@ -758,8 +758,8 @@ DragDrop.prototype = {
|
||||
* @private
|
||||
* @param {EventFacade} e
|
||||
*/
|
||||
dropOver : function(e) {
|
||||
//Get a reference to our drag and drop nodes
|
||||
dropOver: function(e) {
|
||||
// Get a reference to our drag and drop nodes
|
||||
var drag = e.drag.get('node'),
|
||||
drop = e.drop.get('node'),
|
||||
tag = drop.get('tagName').toLowerCase();
|
||||
@@ -783,7 +783,7 @@ DragDrop.prototype = {
|
||||
* @private
|
||||
* @param {EventFacade} e
|
||||
*/
|
||||
dropEnter : function(e) {
|
||||
dropEnter: function(e) {
|
||||
var drop = e.drop.get('node'),
|
||||
tag = drop.get('tagName').toLowerCase();
|
||||
if (tag === 'div') {
|
||||
@@ -797,7 +797,7 @@ DragDrop.prototype = {
|
||||
* @private
|
||||
* @param {EventFacade} e
|
||||
*/
|
||||
dropExit : function(e) {
|
||||
dropExit: function(e) {
|
||||
var drop = e.drop.get('node'),
|
||||
tag = drop.get('tagName').toLowerCase();
|
||||
if (tag === 'div') {
|
||||
@@ -811,7 +811,7 @@ DragDrop.prototype = {
|
||||
* @private
|
||||
* @param {EventFacade} e
|
||||
*/
|
||||
dropHit : function(e) {
|
||||
dropHit: function(e) {
|
||||
var drag = e.drag.get('node'),
|
||||
drop = e.drop.get('node'),
|
||||
iscategory = (drop.ancestor('.listitem-category') !== null),
|
||||
@@ -842,7 +842,7 @@ DragDrop.prototype = {
|
||||
course = managementconsole.getCourseById(courseid);
|
||||
previoussibling = drag.get('previousSibling');
|
||||
aftercourseid = (previoussibling) ? previoussibling.getData('id') || 0 : 0;
|
||||
previousid = (this.previoussibling) ? this.previoussibling.getData('id') : 0;
|
||||
previousid = (this.previoussibling) ? this.previoussibling.getData('id') : 0;
|
||||
if (aftercourseid !== previousid) {
|
||||
course.moveAfter(aftercourseid, previousid);
|
||||
}
|
||||
@@ -870,14 +870,14 @@ Item.ATTRS = {
|
||||
* @attribute node
|
||||
* @type Node
|
||||
*/
|
||||
node : {},
|
||||
node: {},
|
||||
|
||||
/**
|
||||
* The management console.
|
||||
* @attribute console
|
||||
* @type Console
|
||||
*/
|
||||
console : {},
|
||||
console: {},
|
||||
|
||||
/**
|
||||
* Describes the type of this item. Should be set by the extending class.
|
||||
@@ -885,8 +885,8 @@ Item.ATTRS = {
|
||||
* @type {String}
|
||||
* @default item
|
||||
*/
|
||||
itemname : {
|
||||
value : 'item'
|
||||
itemname: {
|
||||
value: 'item'
|
||||
}
|
||||
};
|
||||
Item.prototype = {
|
||||
@@ -897,7 +897,7 @@ Item.prototype = {
|
||||
* @type Timeout
|
||||
* @default null
|
||||
*/
|
||||
highlighttimeout : null,
|
||||
highlighttimeout: null,
|
||||
|
||||
/**
|
||||
* Checks and parses an AJAX response for an item.
|
||||
@@ -909,7 +909,7 @@ Item.prototype = {
|
||||
* @param {Object} args The arguments given to the request.
|
||||
* @return {Object|Boolean}
|
||||
*/
|
||||
checkAjaxResponse : function(transactionid, response, args) {
|
||||
checkAjaxResponse: function(transactionid, response, args) {
|
||||
if (response.status !== 200) {
|
||||
return false;
|
||||
}
|
||||
@@ -935,7 +935,7 @@ Item.prototype = {
|
||||
* @param {Object} args The arguments given to the request.
|
||||
* @return {Boolean}
|
||||
*/
|
||||
moveup : function(transactionid, response, args) {
|
||||
moveup: function(transactionid, response, args) {
|
||||
var node,
|
||||
nodeup,
|
||||
nodedown,
|
||||
@@ -1000,7 +1000,7 @@ Item.prototype = {
|
||||
* @param {Object} args The arguments given to the request.
|
||||
* @return {Boolean}
|
||||
*/
|
||||
movedown : function(transactionid, response, args) {
|
||||
movedown: function(transactionid, response, args) {
|
||||
var node,
|
||||
next,
|
||||
nodeup,
|
||||
@@ -1065,7 +1065,7 @@ Item.prototype = {
|
||||
* @param {Object} args The arguments given to the request.
|
||||
* @return {Boolean}
|
||||
*/
|
||||
show : function(transactionid, response, args) {
|
||||
show: function(transactionid, response, args) {
|
||||
var outcome = this.checkAjaxResponse(transactionid, response, args),
|
||||
hidebtn;
|
||||
if (outcome === false) {
|
||||
@@ -1084,7 +1084,7 @@ Item.prototype = {
|
||||
* Marks the item as visible
|
||||
* @method markVisible
|
||||
*/
|
||||
markVisible : function() {
|
||||
markVisible: function() {
|
||||
this.get('node').setAttribute('data-visible', '1');
|
||||
return true;
|
||||
},
|
||||
@@ -1098,7 +1098,7 @@ Item.prototype = {
|
||||
* @param {Object} args The arguments given to the request.
|
||||
* @return {Boolean}
|
||||
*/
|
||||
hide : function(transactionid, response, args) {
|
||||
hide: function(transactionid, response, args) {
|
||||
var outcome = this.checkAjaxResponse(transactionid, response, args),
|
||||
showbtn;
|
||||
if (outcome === false) {
|
||||
@@ -1116,7 +1116,7 @@ Item.prototype = {
|
||||
* Marks the item as hidden.
|
||||
* @method makeHidden
|
||||
*/
|
||||
markHidden : function() {
|
||||
markHidden: function() {
|
||||
this.get('node').setAttribute('data-visible', '0');
|
||||
return true;
|
||||
},
|
||||
@@ -1127,7 +1127,7 @@ Item.prototype = {
|
||||
* @method updated
|
||||
* @param {Boolean} moved True if this item was moved.
|
||||
*/
|
||||
updated : function(moved) {
|
||||
updated: function(moved) {
|
||||
if (moved) {
|
||||
this.highlight();
|
||||
}
|
||||
@@ -1138,14 +1138,14 @@ Item.prototype = {
|
||||
*
|
||||
* @method highlight
|
||||
*/
|
||||
highlight : function() {
|
||||
highlight: function() {
|
||||
var node = this.get('node');
|
||||
node.siblings('.highlight').removeClass('highlight');
|
||||
node.addClass('highlight');
|
||||
if (this.highlighttimeout) {
|
||||
window.clearTimeout(this.highlighttimeout);
|
||||
}
|
||||
this.highlighttimeout = window.setTimeout(function(){
|
||||
this.highlighttimeout = window.setTimeout(function() {
|
||||
node.removeClass('highlight');
|
||||
}, 2500);
|
||||
}
|
||||
@@ -1174,16 +1174,16 @@ Category.ATTRS = {
|
||||
* @writeOnce
|
||||
* @default null
|
||||
*/
|
||||
categoryid : {
|
||||
getter : function (value, name) {
|
||||
categoryid: {
|
||||
getter: function(value, name) {
|
||||
if (value === null) {
|
||||
value = this.get('node').getData('id');
|
||||
this.set(name, value);
|
||||
}
|
||||
return value;
|
||||
},
|
||||
value : null,
|
||||
writeOnce : true
|
||||
value: null,
|
||||
writeOnce: true
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -1192,8 +1192,8 @@ Category.ATTRS = {
|
||||
* @type Boolean
|
||||
* @default null
|
||||
*/
|
||||
selected : {
|
||||
getter : function(value, name) {
|
||||
selected: {
|
||||
getter: function(value, name) {
|
||||
if (value === null) {
|
||||
value = this.get('node').getData(name);
|
||||
if (value === null) {
|
||||
@@ -1203,7 +1203,7 @@ Category.ATTRS = {
|
||||
}
|
||||
return value;
|
||||
},
|
||||
value : null
|
||||
value: null
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -1212,11 +1212,11 @@ Category.ATTRS = {
|
||||
* @type Course[]
|
||||
* @default Array
|
||||
*/
|
||||
courses : {
|
||||
validator : function(val) {
|
||||
courses: {
|
||||
validator: function(val) {
|
||||
return Y.Lang.isArray(val);
|
||||
},
|
||||
value : []
|
||||
value: []
|
||||
}
|
||||
};
|
||||
Category.prototype = {
|
||||
@@ -1224,7 +1224,7 @@ Category.prototype = {
|
||||
* Initialises an instance of a Category.
|
||||
* @method initializer
|
||||
*/
|
||||
initializer : function() {
|
||||
initializer: function() {
|
||||
this.set('itemname', 'category');
|
||||
},
|
||||
|
||||
@@ -1233,7 +1233,7 @@ Category.prototype = {
|
||||
* @method getName
|
||||
* @return {String}
|
||||
*/
|
||||
getName : function() {
|
||||
getName: function() {
|
||||
return this.get('node').one('a.categoryname').get('innerHTML');
|
||||
},
|
||||
|
||||
@@ -1242,7 +1242,7 @@ Category.prototype = {
|
||||
* @method registerCourse
|
||||
* @param {Course} course
|
||||
*/
|
||||
registerCourse : function(course) {
|
||||
registerCourse: function(course) {
|
||||
var courses = this.get('courses');
|
||||
courses.push(course);
|
||||
this.set('courses', courses);
|
||||
@@ -1256,8 +1256,8 @@ Category.prototype = {
|
||||
* @param {EventFacade} e
|
||||
* @return {Boolean}
|
||||
*/
|
||||
handle : function(action, e) {
|
||||
var catarg = {categoryid : this.get('categoryid')},
|
||||
handle: function(action, e) {
|
||||
var catarg = {categoryid: this.get('categoryid')},
|
||||
selected = this.get('console').get('activecategoryid');
|
||||
if (selected && selected !== catarg.categoryid) {
|
||||
catarg.selectedcategory = selected;
|
||||
@@ -1314,42 +1314,42 @@ Category.prototype = {
|
||||
* Expands the category making its sub categories visible.
|
||||
* @method expand
|
||||
*/
|
||||
expand : function() {
|
||||
expand: function() {
|
||||
var node = this.get('node'),
|
||||
action = node.one('a[data-action=expand]'),
|
||||
ul = node.one('ul[role=group]');
|
||||
node.removeClass('collapsed').setAttribute('aria-expanded', 'true');
|
||||
action.setAttribute('data-action', 'collapse').setAttrs({
|
||||
title : M.util.get_string('collapsecategory', 'moodle', this.getName())
|
||||
title: M.util.get_string('collapsecategory', 'moodle', this.getName())
|
||||
}).one('img').setAttrs({
|
||||
src : M.util.image_url('t/switch_minus', 'moodle'),
|
||||
alt : M.util.get_string('collapse', 'moodle')
|
||||
src: M.util.image_url('t/switch_minus', 'moodle'),
|
||||
alt: M.util.get_string('collapse', 'moodle')
|
||||
});
|
||||
if (ul) {
|
||||
ul.setAttribute('aria-hidden', 'false');
|
||||
}
|
||||
this.get('console').performAjaxAction('expandcategory', {categoryid : this.get('categoryid')}, null, this);
|
||||
this.get('console').performAjaxAction('expandcategory', {categoryid: this.get('categoryid')}, null, this);
|
||||
},
|
||||
|
||||
/**
|
||||
* Collapses the category making its sub categories hidden.
|
||||
* @method collapse
|
||||
*/
|
||||
collapse : function() {
|
||||
collapse: function() {
|
||||
var node = this.get('node'),
|
||||
action = node.one('a[data-action=collapse]'),
|
||||
ul = node.one('ul[role=group]');
|
||||
node.addClass('collapsed').setAttribute('aria-expanded', 'false');
|
||||
action.setAttribute('data-action', 'expand').setAttrs({
|
||||
title : M.util.get_string('expandcategory', 'moodle', this.getName())
|
||||
title: M.util.get_string('expandcategory', 'moodle', this.getName())
|
||||
}).one('img').setAttrs({
|
||||
src : M.util.image_url('t/switch_plus', 'moodle'),
|
||||
alt : M.util.get_string('expand', 'moodle')
|
||||
src: M.util.image_url('t/switch_plus', 'moodle'),
|
||||
alt: M.util.get_string('expand', 'moodle')
|
||||
});
|
||||
if (ul) {
|
||||
ul.setAttribute('aria-hidden', 'true');
|
||||
}
|
||||
this.get('console').performAjaxAction('collapsecategory', {categoryid : this.get('categoryid')}, null, this);
|
||||
this.get('console').performAjaxAction('collapsecategory', {categoryid: this.get('categoryid')}, null, this);
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -1362,7 +1362,7 @@ Category.prototype = {
|
||||
* @param {Object} args The arguments given to the request.
|
||||
* @return {Boolean} Returns true on success - false otherwise.
|
||||
*/
|
||||
loadSubcategories : function(transactionid, response, args) {
|
||||
loadSubcategories: function(transactionid, response, args) {
|
||||
var outcome = this.checkAjaxResponse(transactionid, response, args),
|
||||
node = this.get('node'),
|
||||
managementconsole = this.get('console'),
|
||||
@@ -1390,24 +1390,24 @@ Category.prototype = {
|
||||
* @method moveCourseTo
|
||||
* @param {Course} course
|
||||
*/
|
||||
moveCourseTo : function(course) {
|
||||
moveCourseTo: function(course) {
|
||||
var self = this;
|
||||
Y.use('moodle-core-notification-confirm', function() {
|
||||
var confirm = new M.core.confirm({
|
||||
title : M.util.get_string('confirm', 'moodle'),
|
||||
question : M.util.get_string('confirmcoursemove', 'moodle', {
|
||||
course : course.getName(),
|
||||
category : self.getName()
|
||||
title: M.util.get_string('confirm', 'moodle'),
|
||||
question: M.util.get_string('confirmcoursemove', 'moodle', {
|
||||
course: course.getName(),
|
||||
category: self.getName()
|
||||
}),
|
||||
yesLabel : M.util.get_string('move', 'moodle'),
|
||||
noLabel : M.util.get_string('cancel', 'moodle')
|
||||
yesLabel: M.util.get_string('move', 'moodle'),
|
||||
noLabel: M.util.get_string('cancel', 'moodle')
|
||||
});
|
||||
confirm.on('complete-yes', function() {
|
||||
confirm.hide();
|
||||
confirm.destroy();
|
||||
this.get('console').performAjaxAction('movecourseintocategory', {
|
||||
categoryid : this.get('categoryid'),
|
||||
courseid : course.get('courseid')
|
||||
categoryid: this.get('categoryid'),
|
||||
courseid: course.get('courseid')
|
||||
}, this.completeMoveCourse, this);
|
||||
}, self);
|
||||
confirm.show();
|
||||
@@ -1423,7 +1423,7 @@ Category.prototype = {
|
||||
* @param {Object} args The arguments given to the request.
|
||||
* @return {Boolean}
|
||||
*/
|
||||
completeMoveCourse : function(transactionid, response, args) {
|
||||
completeMoveCourse: function(transactionid, response, args) {
|
||||
var outcome = this.checkAjaxResponse(transactionid, response, args),
|
||||
managementconsole = this.get('console'),
|
||||
category,
|
||||
@@ -1474,7 +1474,7 @@ Category.prototype = {
|
||||
* @param {Object} args The arguments given to the request.
|
||||
* @return {Boolean}
|
||||
*/
|
||||
show : function(transactionid, response, args) {
|
||||
show: function(transactionid, response, args) {
|
||||
var outcome = this.checkAjaxResponse(transactionid, response, args),
|
||||
hidebtn;
|
||||
if (outcome === false) {
|
||||
@@ -1504,7 +1504,7 @@ Category.prototype = {
|
||||
* @param {Object} args The arguments given to the request.
|
||||
* @return {Boolean}
|
||||
*/
|
||||
hide : function(transactionid, response, args) {
|
||||
hide: function(transactionid, response, args) {
|
||||
var outcome = this.checkAjaxResponse(transactionid, response, args),
|
||||
showbtn;
|
||||
if (outcome === false) {
|
||||
@@ -1530,7 +1530,7 @@ Category.prototype = {
|
||||
* @chainable
|
||||
* @param courses
|
||||
*/
|
||||
updateCourseVisiblity : function(courses) {
|
||||
updateCourseVisiblity: function(courses) {
|
||||
var managementconsole = this.get('console'),
|
||||
key,
|
||||
course;
|
||||
@@ -1558,7 +1558,7 @@ Category.prototype = {
|
||||
* @chainable
|
||||
* @param categories
|
||||
*/
|
||||
updateChildVisibility : function(categories) {
|
||||
updateChildVisibility: function(categories) {
|
||||
var managementconsole = this.get('console'),
|
||||
key,
|
||||
category;
|
||||
@@ -1603,7 +1603,7 @@ Course.ATTRS = {
|
||||
* @attribute courseid
|
||||
* @type Number
|
||||
*/
|
||||
courseid : {},
|
||||
courseid: {},
|
||||
|
||||
/**
|
||||
* True if this is the selected course.
|
||||
@@ -1611,17 +1611,17 @@ Course.ATTRS = {
|
||||
* @type Boolean
|
||||
* @default null
|
||||
*/
|
||||
selected : {
|
||||
getter : function(value, name) {
|
||||
selected: {
|
||||
getter: function(value, name) {
|
||||
if (value === null) {
|
||||
value = this.get('node').getData(name);
|
||||
this.set(name, value);
|
||||
}
|
||||
return value;
|
||||
},
|
||||
value : null
|
||||
value: null
|
||||
},
|
||||
node : {
|
||||
node: {
|
||||
|
||||
},
|
||||
/**
|
||||
@@ -1630,8 +1630,8 @@ Course.ATTRS = {
|
||||
* @type Console
|
||||
* @writeOnce
|
||||
*/
|
||||
console : {
|
||||
writeOnce : 'initOnly'
|
||||
console: {
|
||||
writeOnce: 'initOnly'
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -1640,8 +1640,8 @@ Course.ATTRS = {
|
||||
* @type Category
|
||||
* @writeOnce
|
||||
*/
|
||||
category : {
|
||||
writeOnce : 'initOnly'
|
||||
category: {
|
||||
writeOnce: 'initOnly'
|
||||
}
|
||||
};
|
||||
Course.prototype = {
|
||||
@@ -1649,7 +1649,7 @@ Course.prototype = {
|
||||
* Initialises the new course instance.
|
||||
* @method initializer
|
||||
*/
|
||||
initializer : function() {
|
||||
initializer: function() {
|
||||
var node = this.get('node'),
|
||||
category = this.get('category');
|
||||
this.set('courseid', node.getData('id'));
|
||||
@@ -1664,7 +1664,7 @@ Course.prototype = {
|
||||
* @method getName
|
||||
* @return {String}
|
||||
*/
|
||||
getName : function() {
|
||||
getName: function() {
|
||||
return this.get('node').one('a.coursename').get('innerHTML');
|
||||
},
|
||||
|
||||
@@ -1675,9 +1675,9 @@ Course.prototype = {
|
||||
* @param {EventFacade} e
|
||||
* @return {Boolean}
|
||||
*/
|
||||
handle : function(action, e) {
|
||||
handle: function(action, e) {
|
||||
var managementconsole = this.get('console'),
|
||||
args = {courseid : this.get('courseid')};
|
||||
args = {courseid: this.get('courseid')};
|
||||
switch (action) {
|
||||
case 'moveup':
|
||||
e.halt();
|
||||
@@ -1715,7 +1715,7 @@ Course.prototype = {
|
||||
* Removes this course.
|
||||
* @method remove
|
||||
*/
|
||||
remove : function() {
|
||||
remove: function() {
|
||||
this.get('console').removeCourseById(this.get('courseid'));
|
||||
this.get('node').remove();
|
||||
},
|
||||
@@ -1727,12 +1727,12 @@ Course.prototype = {
|
||||
* @param {Number} moveaftercourse The course to move after or 0 to put it at the top.
|
||||
* @param {Number} previousid the course it was previously after in case we need to revert.
|
||||
*/
|
||||
moveAfter : function(moveaftercourse, previousid) {
|
||||
moveAfter: function(moveaftercourse, previousid) {
|
||||
var managementconsole = this.get('console'),
|
||||
args = {
|
||||
courseid : this.get('courseid'),
|
||||
moveafter : moveaftercourse,
|
||||
previous : previousid
|
||||
courseid: this.get('courseid'),
|
||||
moveafter: moveaftercourse,
|
||||
previous: previousid
|
||||
};
|
||||
managementconsole.performAjaxAction('movecourseafter', args, this.moveAfterResponse, this);
|
||||
},
|
||||
@@ -1747,12 +1747,12 @@ Course.prototype = {
|
||||
* @param {Objects} args The arguments that were given with the request.
|
||||
* @return {Boolean}
|
||||
*/
|
||||
moveAfterResponse : function(transactionid, response, args) {
|
||||
moveAfterResponse: function(transactionid, response, args) {
|
||||
var outcome = this.checkAjaxResponse(transactionid, response, args),
|
||||
node = this.get('node'),
|
||||
previous;
|
||||
if (outcome === false) {
|
||||
previous = node.ancestor('ul').one('li[data-id='+args.previous+']');
|
||||
previous = node.ancestor('ul').one('li[data-id=' + args.previous + ']');
|
||||
if (previous) {
|
||||
// After the last previous.
|
||||
previous.insertAfter(node, 'after');
|
||||
|
||||
+14
-14
@@ -7,11 +7,11 @@ YUI.add('moodle-course-modchooser', function (Y, NAME) {
|
||||
*/
|
||||
|
||||
var CSS = {
|
||||
PAGECONTENT : 'body',
|
||||
PAGECONTENT: 'body',
|
||||
SECTION: null,
|
||||
SECTIONMODCHOOSER : 'span.section-modchooser-link',
|
||||
SITEMENU : 'div.block_site_main_menu',
|
||||
SITETOPIC : 'div.sitetopic'
|
||||
SECTIONMODCHOOSER: 'span.section-modchooser-link',
|
||||
SITEMENU: 'div.block_site_main_menu',
|
||||
SITETOPIC: 'div.sitetopic'
|
||||
};
|
||||
|
||||
var MODCHOOSERNAME = 'course-modchooser';
|
||||
@@ -36,14 +36,14 @@ Y.extend(MODCHOOSER, M.core.chooserdialogue, {
|
||||
* @type Number
|
||||
* @default null
|
||||
*/
|
||||
sectionid : null,
|
||||
sectionid: null,
|
||||
|
||||
/**
|
||||
* Set up the activity chooser.
|
||||
*
|
||||
* @method initializer
|
||||
*/
|
||||
initializer : function() {
|
||||
initializer: function() {
|
||||
var sectionclass = M.course.format.get_sectionwrapperclass();
|
||||
if (sectionclass) {
|
||||
CSS.SECTION = '.' + sectionclass;
|
||||
@@ -65,7 +65,7 @@ Y.extend(MODCHOOSER, M.core.chooserdialogue, {
|
||||
* @method setup_for_section
|
||||
* @param baseselector The selector to limit scope to
|
||||
*/
|
||||
setup_for_section : function(baseselector) {
|
||||
setup_for_section: function(baseselector) {
|
||||
if (!baseselector) {
|
||||
baseselector = CSS.PAGECONTENT;
|
||||
}
|
||||
@@ -96,7 +96,7 @@ Y.extend(MODCHOOSER, M.core.chooserdialogue, {
|
||||
* @private
|
||||
* @param baseselector The selector to limit scope to
|
||||
*/
|
||||
_setup_for_section : function(section) {
|
||||
_setup_for_section: function(section) {
|
||||
var chooserspan = section.one(CSS.SECTIONMODCHOOSER);
|
||||
if (!chooserspan) {
|
||||
return;
|
||||
@@ -114,7 +114,7 @@ Y.extend(MODCHOOSER, M.core.chooserdialogue, {
|
||||
* @method display_mod_chooser
|
||||
* @param {EventFacade} e Triggering Event
|
||||
*/
|
||||
display_mod_chooser : function (e) {
|
||||
display_mod_chooser: function(e) {
|
||||
// Set the section for this version of the dialogue
|
||||
if (e.target.ancestor(CSS.SITETOPIC)) {
|
||||
// The site topic has a sectionid of 1
|
||||
@@ -137,7 +137,7 @@ Y.extend(MODCHOOSER, M.core.chooserdialogue, {
|
||||
* @param {String} thisoption The selected option value
|
||||
* @private
|
||||
*/
|
||||
option_selected : function(thisoption) {
|
||||
option_selected: function(thisoption) {
|
||||
// Add the sectionid to the URL.
|
||||
this.hiddenRadioValue.setAttrs({
|
||||
name: 'jump',
|
||||
@@ -146,8 +146,8 @@ Y.extend(MODCHOOSER, M.core.chooserdialogue, {
|
||||
}
|
||||
},
|
||||
{
|
||||
NAME : MODCHOOSERNAME,
|
||||
ATTRS : {
|
||||
NAME: MODCHOOSERNAME,
|
||||
ATTRS: {
|
||||
/**
|
||||
* The maximum height (in pixels) of the activity chooser.
|
||||
*
|
||||
@@ -155,8 +155,8 @@ Y.extend(MODCHOOSER, M.core.chooserdialogue, {
|
||||
* @type Number
|
||||
* @default 800
|
||||
*/
|
||||
maxheight : {
|
||||
value : 800
|
||||
maxheight: {
|
||||
value: 800
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -7,11 +7,11 @@ YUI.add('moodle-course-modchooser', function (Y, NAME) {
|
||||
*/
|
||||
|
||||
var CSS = {
|
||||
PAGECONTENT : 'body',
|
||||
PAGECONTENT: 'body',
|
||||
SECTION: null,
|
||||
SECTIONMODCHOOSER : 'span.section-modchooser-link',
|
||||
SITEMENU : 'div.block_site_main_menu',
|
||||
SITETOPIC : 'div.sitetopic'
|
||||
SECTIONMODCHOOSER: 'span.section-modchooser-link',
|
||||
SITEMENU: 'div.block_site_main_menu',
|
||||
SITETOPIC: 'div.sitetopic'
|
||||
};
|
||||
|
||||
var MODCHOOSERNAME = 'course-modchooser';
|
||||
@@ -36,14 +36,14 @@ Y.extend(MODCHOOSER, M.core.chooserdialogue, {
|
||||
* @type Number
|
||||
* @default null
|
||||
*/
|
||||
sectionid : null,
|
||||
sectionid: null,
|
||||
|
||||
/**
|
||||
* Set up the activity chooser.
|
||||
*
|
||||
* @method initializer
|
||||
*/
|
||||
initializer : function() {
|
||||
initializer: function() {
|
||||
var sectionclass = M.course.format.get_sectionwrapperclass();
|
||||
if (sectionclass) {
|
||||
CSS.SECTION = '.' + sectionclass;
|
||||
@@ -65,7 +65,7 @@ Y.extend(MODCHOOSER, M.core.chooserdialogue, {
|
||||
* @method setup_for_section
|
||||
* @param baseselector The selector to limit scope to
|
||||
*/
|
||||
setup_for_section : function(baseselector) {
|
||||
setup_for_section: function(baseselector) {
|
||||
if (!baseselector) {
|
||||
baseselector = CSS.PAGECONTENT;
|
||||
}
|
||||
@@ -96,7 +96,7 @@ Y.extend(MODCHOOSER, M.core.chooserdialogue, {
|
||||
* @private
|
||||
* @param baseselector The selector to limit scope to
|
||||
*/
|
||||
_setup_for_section : function(section) {
|
||||
_setup_for_section: function(section) {
|
||||
var chooserspan = section.one(CSS.SECTIONMODCHOOSER);
|
||||
if (!chooserspan) {
|
||||
return;
|
||||
@@ -114,7 +114,7 @@ Y.extend(MODCHOOSER, M.core.chooserdialogue, {
|
||||
* @method display_mod_chooser
|
||||
* @param {EventFacade} e Triggering Event
|
||||
*/
|
||||
display_mod_chooser : function (e) {
|
||||
display_mod_chooser: function(e) {
|
||||
// Set the section for this version of the dialogue
|
||||
if (e.target.ancestor(CSS.SITETOPIC)) {
|
||||
// The site topic has a sectionid of 1
|
||||
@@ -137,7 +137,7 @@ Y.extend(MODCHOOSER, M.core.chooserdialogue, {
|
||||
* @param {String} thisoption The selected option value
|
||||
* @private
|
||||
*/
|
||||
option_selected : function(thisoption) {
|
||||
option_selected: function(thisoption) {
|
||||
// Add the sectionid to the URL.
|
||||
this.hiddenRadioValue.setAttrs({
|
||||
name: 'jump',
|
||||
@@ -146,8 +146,8 @@ Y.extend(MODCHOOSER, M.core.chooserdialogue, {
|
||||
}
|
||||
},
|
||||
{
|
||||
NAME : MODCHOOSERNAME,
|
||||
ATTRS : {
|
||||
NAME: MODCHOOSERNAME,
|
||||
ATTRS: {
|
||||
/**
|
||||
* The maximum height (in pixels) of the activity chooser.
|
||||
*
|
||||
@@ -155,8 +155,8 @@ Y.extend(MODCHOOSER, M.core.chooserdialogue, {
|
||||
* @type Number
|
||||
* @default 800
|
||||
*/
|
||||
maxheight : {
|
||||
value : 800
|
||||
maxheight: {
|
||||
value: 800
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
+54
-52
@@ -13,44 +13,44 @@ YUI.add('moodle-course-toolboxes', function (Y, NAME) {
|
||||
|
||||
// The CSS classes we use.
|
||||
var CSS = {
|
||||
ACTIVITYINSTANCE : 'activityinstance',
|
||||
AVAILABILITYINFODIV : 'div.availabilityinfo',
|
||||
CONTENTWITHOUTLINK : 'contentwithoutlink',
|
||||
CONDITIONALHIDDEN : 'conditionalhidden',
|
||||
DIMCLASS : 'dimmed',
|
||||
DIMMEDTEXT : 'dimmed_text',
|
||||
EDITINSTRUCTIONS : 'editinstructions',
|
||||
HIDE : 'hide',
|
||||
MODINDENTCOUNT : 'mod-indent-',
|
||||
MODINDENTHUGE : 'mod-indent-huge',
|
||||
MODULEIDPREFIX : 'module-',
|
||||
SECTIONHIDDENCLASS : 'hidden',
|
||||
SECTIONIDPREFIX : 'section-',
|
||||
SHOW : 'editing_show'
|
||||
ACTIVITYINSTANCE: 'activityinstance',
|
||||
AVAILABILITYINFODIV: 'div.availabilityinfo',
|
||||
CONTENTWITHOUTLINK: 'contentwithoutlink',
|
||||
CONDITIONALHIDDEN: 'conditionalhidden',
|
||||
DIMCLASS: 'dimmed',
|
||||
DIMMEDTEXT: 'dimmed_text',
|
||||
EDITINSTRUCTIONS: 'editinstructions',
|
||||
HIDE: 'hide',
|
||||
MODINDENTCOUNT: 'mod-indent-',
|
||||
MODINDENTHUGE: 'mod-indent-huge',
|
||||
MODULEIDPREFIX: 'module-',
|
||||
SECTIONHIDDENCLASS: 'hidden',
|
||||
SECTIONIDPREFIX: 'section-',
|
||||
SHOW: 'editing_show'
|
||||
},
|
||||
// The CSS selectors we use.
|
||||
SELECTOR = {
|
||||
ACTIONAREA: '.actions',
|
||||
ACTIONLINKTEXT : '.actionlinktext',
|
||||
ACTIVITYACTION : 'a.cm-edit-action[data-action]',
|
||||
ACTIVITYICON : 'img.activityicon',
|
||||
ACTIVITYINSTANCE : '.' + CSS.ACTIVITYINSTANCE,
|
||||
ACTIVITYLINK: '.' + CSS.ACTIVITYINSTANCE + ' > a, .'+ CSS.ACTIVITYINSTANCE +
|
||||
ACTIONLINKTEXT: '.actionlinktext',
|
||||
ACTIVITYACTION: 'a.cm-edit-action[data-action]',
|
||||
ACTIVITYICON: 'img.activityicon',
|
||||
ACTIVITYINSTANCE: '.' + CSS.ACTIVITYINSTANCE,
|
||||
ACTIVITYLINK: '.' + CSS.ACTIVITYINSTANCE + ' > a, .' + CSS.ACTIVITYINSTANCE +
|
||||
' > span[data-inplaceeditable] > a:not([data-inplaceeditablelink])',
|
||||
ACTIVITYLI : 'li.activity',
|
||||
COMMANDSPAN : '.commands',
|
||||
CONTENTAFTERLINK : 'div.contentafterlink',
|
||||
CONTENTWITHOUTLINK : 'div.contentwithoutlink',
|
||||
ACTIVITYLI: 'li.activity',
|
||||
COMMANDSPAN: '.commands',
|
||||
CONTENTAFTERLINK: 'div.contentafterlink',
|
||||
CONTENTWITHOUTLINK: 'div.contentwithoutlink',
|
||||
GROUPINGLABEL: '.' + CSS.ACTIVITYINSTANCE + ' .groupinglabel',
|
||||
HIDE : 'a.editing_hide',
|
||||
HIGHLIGHT : 'a.editing_highlight',
|
||||
INSTANCENAME : 'span.instancename',
|
||||
MODINDENTDIV : '.mod-indent',
|
||||
MODINDENTOUTER : '.mod-indent-outer',
|
||||
PAGECONTENT : 'body',
|
||||
SECTIONLI : 'li.section',
|
||||
SHOW : 'a.'+CSS.SHOW,
|
||||
SHOWHIDE : 'a.editing_showhide'
|
||||
HIDE: 'a.editing_hide',
|
||||
HIGHLIGHT: 'a.editing_highlight',
|
||||
INSTANCENAME: 'span.instancename',
|
||||
MODINDENTDIV: '.mod-indent',
|
||||
MODINDENTOUTER: '.mod-indent-outer',
|
||||
PAGECONTENT: 'body',
|
||||
SECTIONLI: 'li.section',
|
||||
SHOW: 'a.' + CSS.SHOW,
|
||||
SHOWHIDE: 'a.editing_showhide'
|
||||
},
|
||||
INDENTLIMITS = {
|
||||
MIN: 0,
|
||||
@@ -114,7 +114,9 @@ Y.extend(TOOLBOX, Y.Base, {
|
||||
if (responsetext.error) {
|
||||
new M.core.ajaxException(responsetext);
|
||||
}
|
||||
} catch (e) {}
|
||||
} catch (e) {
|
||||
// Ignore.
|
||||
}
|
||||
|
||||
// Run the callback if we have one.
|
||||
if (success_callback) {
|
||||
@@ -370,7 +372,7 @@ Y.extend(RESOURCETOOLBOX, TOOLBOX, {
|
||||
// Prevent the default button action
|
||||
ev.preventDefault();
|
||||
|
||||
var direction = (action === 'moveleft') ? -1: 1;
|
||||
var direction = (action === 'moveleft') ? -1 : 1;
|
||||
|
||||
// And we need to determine the current and new indent level
|
||||
var indentdiv = activity.one(SELECTOR.MODINDENTDIV),
|
||||
@@ -447,7 +449,7 @@ Y.extend(RESOURCETOOLBOX, TOOLBOX, {
|
||||
ev.preventDefault();
|
||||
|
||||
// Get the element we're working on
|
||||
var element = activity,
|
||||
var element = activity,
|
||||
// Create confirm string (different if element has or does not have name)
|
||||
confirmstring = '',
|
||||
plugindata = {
|
||||
@@ -580,7 +582,7 @@ Y.extend(RESOURCETOOLBOX, TOOLBOX, {
|
||||
SELECTOR.CONTENTWITHOUTLINK
|
||||
].join(', ')),
|
||||
availabilityinfo = activity.one(CSS.AVAILABILITYINFODIV),
|
||||
nextaction = (action === 'hide') ? 'show': 'hide',
|
||||
nextaction = (action === 'hide') ? 'show' : 'hide',
|
||||
buttontext = button.one('span'),
|
||||
newstring = M.util.get_string(nextaction, 'moodle'),
|
||||
buttonimg = button.one('img');
|
||||
@@ -598,7 +600,7 @@ Y.extend(RESOURCETOOLBOX, TOOLBOX, {
|
||||
buttonimg.setAttribute('alt', newstring);
|
||||
}
|
||||
|
||||
button.replaceClass('editing_'+action, 'editing_'+nextaction);
|
||||
button.replaceClass('editing_' + action, 'editing_' + nextaction);
|
||||
button.setData('action', nextaction);
|
||||
if (buttontext) {
|
||||
buttontext.set('text', newstring);
|
||||
@@ -629,7 +631,7 @@ Y.extend(RESOURCETOOLBOX, TOOLBOX, {
|
||||
if (availabilityinfo) {
|
||||
availabilityinfo.toggleClass(CSS.HIDE);
|
||||
}
|
||||
return (action === 'hide') ? 0: 1;
|
||||
return (action === 'hide') ? 0 : 1;
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -786,7 +788,7 @@ Y.extend(SECTIONTOOLBOX, TOOLBOX, {
|
||||
* @method initializer
|
||||
* @protected
|
||||
*/
|
||||
initializer : function() {
|
||||
initializer: function() {
|
||||
M.course.coursebase.register_module(this);
|
||||
|
||||
// Section Highlighting.
|
||||
@@ -796,7 +798,7 @@ Y.extend(SECTIONTOOLBOX, TOOLBOX, {
|
||||
Y.delegate('click', this.toggle_hide_section, SELECTOR.PAGECONTENT, SELECTOR.SECTIONLI + ' ' + SELECTOR.SHOWHIDE, this);
|
||||
},
|
||||
|
||||
toggle_hide_section : function(e) {
|
||||
toggle_hide_section: function(e) {
|
||||
// Prevent the default button action.
|
||||
e.preventDefault();
|
||||
|
||||
@@ -827,8 +829,8 @@ Y.extend(SECTIONTOOLBOX, TOOLBOX, {
|
||||
|
||||
var newstring = M.util.get_string(nextaction + 'fromothers', 'format_' + this.get('format'));
|
||||
hideicon.setAttrs({
|
||||
'alt' : newstring,
|
||||
'src' : M.util.image_url('i/' + nextaction)
|
||||
'alt': newstring,
|
||||
'src': M.util.image_url('i/' + nextaction)
|
||||
});
|
||||
button.set('title', newstring);
|
||||
if (buttontext) {
|
||||
@@ -837,10 +839,10 @@ Y.extend(SECTIONTOOLBOX, TOOLBOX, {
|
||||
|
||||
// Change the show/hide status
|
||||
var data = {
|
||||
'class' : 'section',
|
||||
'field' : 'visible',
|
||||
'id' : Y.Moodle.core_course.util.section.getId(section.ancestor(M.course.format.get_section_wrapper(Y), true)),
|
||||
'value' : value
|
||||
'class': 'section',
|
||||
'field': 'visible',
|
||||
'id': Y.Moodle.core_course.util.section.getId(section.ancestor(M.course.format.get_section_wrapper(Y), true)),
|
||||
'value': value
|
||||
};
|
||||
|
||||
var lightbox = M.util.add_lightbox(Y, section);
|
||||
@@ -872,7 +874,7 @@ Y.extend(SECTIONTOOLBOX, TOOLBOX, {
|
||||
* @method toggle_highlight
|
||||
* @param {EventFacade} e
|
||||
*/
|
||||
toggle_highlight : function(e) {
|
||||
toggle_highlight: function(e) {
|
||||
// Prevent the default button action.
|
||||
e.preventDefault();
|
||||
|
||||
@@ -923,17 +925,17 @@ Y.extend(SECTIONTOOLBOX, TOOLBOX, {
|
||||
|
||||
// Change the highlight status.
|
||||
var data = {
|
||||
'class' : 'course',
|
||||
'field' : 'marker',
|
||||
'value' : value
|
||||
'class': 'course',
|
||||
'field': 'marker',
|
||||
'value': value
|
||||
};
|
||||
var lightbox = M.util.add_lightbox(Y, section);
|
||||
lightbox.show();
|
||||
this.send_request(data, lightbox);
|
||||
}
|
||||
}, {
|
||||
NAME : 'course-section-toolbox',
|
||||
ATTRS : {
|
||||
NAME: 'course-section-toolbox',
|
||||
ATTRS: {
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -13,44 +13,44 @@ YUI.add('moodle-course-toolboxes', function (Y, NAME) {
|
||||
|
||||
// The CSS classes we use.
|
||||
var CSS = {
|
||||
ACTIVITYINSTANCE : 'activityinstance',
|
||||
AVAILABILITYINFODIV : 'div.availabilityinfo',
|
||||
CONTENTWITHOUTLINK : 'contentwithoutlink',
|
||||
CONDITIONALHIDDEN : 'conditionalhidden',
|
||||
DIMCLASS : 'dimmed',
|
||||
DIMMEDTEXT : 'dimmed_text',
|
||||
EDITINSTRUCTIONS : 'editinstructions',
|
||||
HIDE : 'hide',
|
||||
MODINDENTCOUNT : 'mod-indent-',
|
||||
MODINDENTHUGE : 'mod-indent-huge',
|
||||
MODULEIDPREFIX : 'module-',
|
||||
SECTIONHIDDENCLASS : 'hidden',
|
||||
SECTIONIDPREFIX : 'section-',
|
||||
SHOW : 'editing_show'
|
||||
ACTIVITYINSTANCE: 'activityinstance',
|
||||
AVAILABILITYINFODIV: 'div.availabilityinfo',
|
||||
CONTENTWITHOUTLINK: 'contentwithoutlink',
|
||||
CONDITIONALHIDDEN: 'conditionalhidden',
|
||||
DIMCLASS: 'dimmed',
|
||||
DIMMEDTEXT: 'dimmed_text',
|
||||
EDITINSTRUCTIONS: 'editinstructions',
|
||||
HIDE: 'hide',
|
||||
MODINDENTCOUNT: 'mod-indent-',
|
||||
MODINDENTHUGE: 'mod-indent-huge',
|
||||
MODULEIDPREFIX: 'module-',
|
||||
SECTIONHIDDENCLASS: 'hidden',
|
||||
SECTIONIDPREFIX: 'section-',
|
||||
SHOW: 'editing_show'
|
||||
},
|
||||
// The CSS selectors we use.
|
||||
SELECTOR = {
|
||||
ACTIONAREA: '.actions',
|
||||
ACTIONLINKTEXT : '.actionlinktext',
|
||||
ACTIVITYACTION : 'a.cm-edit-action[data-action]',
|
||||
ACTIVITYICON : 'img.activityicon',
|
||||
ACTIVITYINSTANCE : '.' + CSS.ACTIVITYINSTANCE,
|
||||
ACTIVITYLINK: '.' + CSS.ACTIVITYINSTANCE + ' > a, .'+ CSS.ACTIVITYINSTANCE +
|
||||
ACTIONLINKTEXT: '.actionlinktext',
|
||||
ACTIVITYACTION: 'a.cm-edit-action[data-action]',
|
||||
ACTIVITYICON: 'img.activityicon',
|
||||
ACTIVITYINSTANCE: '.' + CSS.ACTIVITYINSTANCE,
|
||||
ACTIVITYLINK: '.' + CSS.ACTIVITYINSTANCE + ' > a, .' + CSS.ACTIVITYINSTANCE +
|
||||
' > span[data-inplaceeditable] > a:not([data-inplaceeditablelink])',
|
||||
ACTIVITYLI : 'li.activity',
|
||||
COMMANDSPAN : '.commands',
|
||||
CONTENTAFTERLINK : 'div.contentafterlink',
|
||||
CONTENTWITHOUTLINK : 'div.contentwithoutlink',
|
||||
ACTIVITYLI: 'li.activity',
|
||||
COMMANDSPAN: '.commands',
|
||||
CONTENTAFTERLINK: 'div.contentafterlink',
|
||||
CONTENTWITHOUTLINK: 'div.contentwithoutlink',
|
||||
GROUPINGLABEL: '.' + CSS.ACTIVITYINSTANCE + ' .groupinglabel',
|
||||
HIDE : 'a.editing_hide',
|
||||
HIGHLIGHT : 'a.editing_highlight',
|
||||
INSTANCENAME : 'span.instancename',
|
||||
MODINDENTDIV : '.mod-indent',
|
||||
MODINDENTOUTER : '.mod-indent-outer',
|
||||
PAGECONTENT : 'body',
|
||||
SECTIONLI : 'li.section',
|
||||
SHOW : 'a.'+CSS.SHOW,
|
||||
SHOWHIDE : 'a.editing_showhide'
|
||||
HIDE: 'a.editing_hide',
|
||||
HIGHLIGHT: 'a.editing_highlight',
|
||||
INSTANCENAME: 'span.instancename',
|
||||
MODINDENTDIV: '.mod-indent',
|
||||
MODINDENTOUTER: '.mod-indent-outer',
|
||||
PAGECONTENT: 'body',
|
||||
SECTIONLI: 'li.section',
|
||||
SHOW: 'a.' + CSS.SHOW,
|
||||
SHOWHIDE: 'a.editing_showhide'
|
||||
},
|
||||
INDENTLIMITS = {
|
||||
MIN: 0,
|
||||
@@ -114,7 +114,9 @@ Y.extend(TOOLBOX, Y.Base, {
|
||||
if (responsetext.error) {
|
||||
new M.core.ajaxException(responsetext);
|
||||
}
|
||||
} catch (e) {}
|
||||
} catch (e) {
|
||||
// Ignore.
|
||||
}
|
||||
|
||||
// Run the callback if we have one.
|
||||
if (success_callback) {
|
||||
@@ -370,7 +372,7 @@ Y.extend(RESOURCETOOLBOX, TOOLBOX, {
|
||||
// Prevent the default button action
|
||||
ev.preventDefault();
|
||||
|
||||
var direction = (action === 'moveleft') ? -1: 1;
|
||||
var direction = (action === 'moveleft') ? -1 : 1;
|
||||
|
||||
// And we need to determine the current and new indent level
|
||||
var indentdiv = activity.one(SELECTOR.MODINDENTDIV),
|
||||
@@ -447,7 +449,7 @@ Y.extend(RESOURCETOOLBOX, TOOLBOX, {
|
||||
ev.preventDefault();
|
||||
|
||||
// Get the element we're working on
|
||||
var element = activity,
|
||||
var element = activity,
|
||||
// Create confirm string (different if element has or does not have name)
|
||||
confirmstring = '',
|
||||
plugindata = {
|
||||
@@ -580,7 +582,7 @@ Y.extend(RESOURCETOOLBOX, TOOLBOX, {
|
||||
SELECTOR.CONTENTWITHOUTLINK
|
||||
].join(', ')),
|
||||
availabilityinfo = activity.one(CSS.AVAILABILITYINFODIV),
|
||||
nextaction = (action === 'hide') ? 'show': 'hide',
|
||||
nextaction = (action === 'hide') ? 'show' : 'hide',
|
||||
buttontext = button.one('span'),
|
||||
newstring = M.util.get_string(nextaction, 'moodle'),
|
||||
buttonimg = button.one('img');
|
||||
@@ -598,7 +600,7 @@ Y.extend(RESOURCETOOLBOX, TOOLBOX, {
|
||||
buttonimg.setAttribute('alt', newstring);
|
||||
}
|
||||
|
||||
button.replaceClass('editing_'+action, 'editing_'+nextaction);
|
||||
button.replaceClass('editing_' + action, 'editing_' + nextaction);
|
||||
button.setData('action', nextaction);
|
||||
if (buttontext) {
|
||||
buttontext.set('text', newstring);
|
||||
@@ -629,7 +631,7 @@ Y.extend(RESOURCETOOLBOX, TOOLBOX, {
|
||||
if (availabilityinfo) {
|
||||
availabilityinfo.toggleClass(CSS.HIDE);
|
||||
}
|
||||
return (action === 'hide') ? 0: 1;
|
||||
return (action === 'hide') ? 0 : 1;
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -786,7 +788,7 @@ Y.extend(SECTIONTOOLBOX, TOOLBOX, {
|
||||
* @method initializer
|
||||
* @protected
|
||||
*/
|
||||
initializer : function() {
|
||||
initializer: function() {
|
||||
M.course.coursebase.register_module(this);
|
||||
|
||||
// Section Highlighting.
|
||||
@@ -796,7 +798,7 @@ Y.extend(SECTIONTOOLBOX, TOOLBOX, {
|
||||
Y.delegate('click', this.toggle_hide_section, SELECTOR.PAGECONTENT, SELECTOR.SECTIONLI + ' ' + SELECTOR.SHOWHIDE, this);
|
||||
},
|
||||
|
||||
toggle_hide_section : function(e) {
|
||||
toggle_hide_section: function(e) {
|
||||
// Prevent the default button action.
|
||||
e.preventDefault();
|
||||
|
||||
@@ -827,8 +829,8 @@ Y.extend(SECTIONTOOLBOX, TOOLBOX, {
|
||||
|
||||
var newstring = M.util.get_string(nextaction + 'fromothers', 'format_' + this.get('format'));
|
||||
hideicon.setAttrs({
|
||||
'alt' : newstring,
|
||||
'src' : M.util.image_url('i/' + nextaction)
|
||||
'alt': newstring,
|
||||
'src': M.util.image_url('i/' + nextaction)
|
||||
});
|
||||
button.set('title', newstring);
|
||||
if (buttontext) {
|
||||
@@ -837,10 +839,10 @@ Y.extend(SECTIONTOOLBOX, TOOLBOX, {
|
||||
|
||||
// Change the show/hide status
|
||||
var data = {
|
||||
'class' : 'section',
|
||||
'field' : 'visible',
|
||||
'id' : Y.Moodle.core_course.util.section.getId(section.ancestor(M.course.format.get_section_wrapper(Y), true)),
|
||||
'value' : value
|
||||
'class': 'section',
|
||||
'field': 'visible',
|
||||
'id': Y.Moodle.core_course.util.section.getId(section.ancestor(M.course.format.get_section_wrapper(Y), true)),
|
||||
'value': value
|
||||
};
|
||||
|
||||
var lightbox = M.util.add_lightbox(Y, section);
|
||||
@@ -872,7 +874,7 @@ Y.extend(SECTIONTOOLBOX, TOOLBOX, {
|
||||
* @method toggle_highlight
|
||||
* @param {EventFacade} e
|
||||
*/
|
||||
toggle_highlight : function(e) {
|
||||
toggle_highlight: function(e) {
|
||||
// Prevent the default button action.
|
||||
e.preventDefault();
|
||||
|
||||
@@ -923,17 +925,17 @@ Y.extend(SECTIONTOOLBOX, TOOLBOX, {
|
||||
|
||||
// Change the highlight status.
|
||||
var data = {
|
||||
'class' : 'course',
|
||||
'field' : 'marker',
|
||||
'value' : value
|
||||
'class': 'course',
|
||||
'field': 'marker',
|
||||
'value': value
|
||||
};
|
||||
var lightbox = M.util.add_lightbox(Y, section);
|
||||
lightbox.show();
|
||||
this.send_request(data, lightbox);
|
||||
}
|
||||
}, {
|
||||
NAME : 'course-section-toolbox',
|
||||
ATTRS : {
|
||||
NAME: 'course-section-toolbox',
|
||||
ATTRS: {
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ Y.namespace('Moodle.core_course.util.cm');
|
||||
*/
|
||||
Y.Moodle.core_course.util.cm = {
|
||||
CONSTANTS: {
|
||||
MODULEIDPREFIX : 'module-'
|
||||
MODULEIDPREFIX: 'module-'
|
||||
},
|
||||
SELECTORS: {
|
||||
COURSEMODULE: '.activity',
|
||||
|
||||
@@ -17,7 +17,7 @@ Y.namespace('Moodle.core_course.util.cm');
|
||||
*/
|
||||
Y.Moodle.core_course.util.cm = {
|
||||
CONSTANTS: {
|
||||
MODULEIDPREFIX : 'module-'
|
||||
MODULEIDPREFIX: 'module-'
|
||||
},
|
||||
SELECTORS: {
|
||||
COURSEMODULE: '.activity',
|
||||
|
||||
+1
-1
@@ -17,7 +17,7 @@ Y.namespace('Moodle.core_course.util.section');
|
||||
*/
|
||||
Y.Moodle.core_course.util.section = {
|
||||
CONSTANTS: {
|
||||
SECTIONIDPREFIX : 'section-'
|
||||
SECTIONIDPREFIX: 'section-'
|
||||
},
|
||||
|
||||
/**
|
||||
|
||||
@@ -17,7 +17,7 @@ Y.namespace('Moodle.core_course.util.section');
|
||||
*/
|
||||
Y.Moodle.core_course.util.section = {
|
||||
CONSTANTS: {
|
||||
SECTIONIDPREFIX : 'section-'
|
||||
SECTIONIDPREFIX: 'section-'
|
||||
},
|
||||
|
||||
/**
|
||||
|
||||
+53
-53
@@ -18,33 +18,33 @@ AUTOLINKER = function() {
|
||||
AUTOLINKER.superclass.constructor.apply(this, arguments);
|
||||
};
|
||||
Y.extend(AUTOLINKER, Y.Base, {
|
||||
overlay : null,
|
||||
overlay: null,
|
||||
alertpanels: {},
|
||||
initializer : function() {
|
||||
initializer: function() {
|
||||
var self = this;
|
||||
require(['core/event'], function(event) {
|
||||
Y.delegate('click', function(e){
|
||||
Y.delegate('click', function(e) {
|
||||
e.preventDefault();
|
||||
|
||||
//display a progress indicator
|
||||
// display a progress indicator
|
||||
var title = '',
|
||||
content = Y.Node.create('<div id="glossaryfilteroverlayprogress">' +
|
||||
'<img src="' + M.cfg.loadingicon + '" class="spinner" />' +
|
||||
'</div>'),
|
||||
o = new Y.Overlay({
|
||||
headerContent : title,
|
||||
bodyContent : content
|
||||
headerContent: title,
|
||||
bodyContent: content
|
||||
}),
|
||||
fullurl,
|
||||
cfg;
|
||||
self.overlay = o;
|
||||
o.render(Y.one(document.body));
|
||||
|
||||
//Switch over to the ajax url and fetch the glossary item
|
||||
fullurl = this.getAttribute('href').replace('showentry.php','showentry_ajax.php');
|
||||
// Switch over to the ajax url and fetch the glossary item
|
||||
fullurl = this.getAttribute('href').replace('showentry.php', 'showentry_ajax.php');
|
||||
cfg = {
|
||||
method: 'get',
|
||||
context : self,
|
||||
context: self,
|
||||
on: {
|
||||
success: function(id, o) {
|
||||
this.display_callback(o.responseText, event);
|
||||
@@ -54,7 +54,7 @@ Y.extend(AUTOLINKER, Y.Base, {
|
||||
if (M.cfg.developerdebug) {
|
||||
o.statusText += ' (' + fullurl + ')';
|
||||
}
|
||||
new M.core.exception({ message: debuginfo });
|
||||
new M.core.exception({message: debuginfo});
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -68,7 +68,7 @@ Y.extend(AUTOLINKER, Y.Base, {
|
||||
* @param {String} content - Content to display
|
||||
* @param {Object} event The amd event module used to fire events for jquery and yui.
|
||||
*/
|
||||
display_callback : function(content, event) {
|
||||
display_callback: function(content, event) {
|
||||
var data,
|
||||
key,
|
||||
alertpanel,
|
||||
@@ -77,13 +77,13 @@ Y.extend(AUTOLINKER, Y.Base, {
|
||||
position;
|
||||
try {
|
||||
data = Y.JSON.parse(content);
|
||||
if (data.success){
|
||||
this.overlay.hide(); //hide progress indicator
|
||||
if (data.success) {
|
||||
this.overlay.hide(); // hide progress indicator
|
||||
|
||||
for (key in data.entries) {
|
||||
definition = data.entries[key].definition + data.entries[key].attachments;
|
||||
alertpanel = new M.core.alert({title:data.entries[key].concept, draggable: true,
|
||||
message:definition, modal:false, yesLabel: M.util.get_string('ok', 'moodle')});
|
||||
alertpanel = new M.core.alert({title: data.entries[key].concept, draggable: true,
|
||||
message: definition, modal: false, yesLabel: M.util.get_string('ok', 'moodle')});
|
||||
// Notify the filters about the modified nodes.
|
||||
event.notifyFilterContentUpdated(alertpanel.get('boundingBox').getDOMNode());
|
||||
Y.Node.one('#id_yuialertconfirm-' + alertpanel.get('COUNT')).focus();
|
||||
@@ -93,7 +93,7 @@ Y.extend(AUTOLINKER, Y.Base, {
|
||||
alertpanel.on('complete', this._deletealertpanel, this, alertpanelid);
|
||||
|
||||
// We already have some windows opened, so set the right position...
|
||||
if (!Y.Object.isEmpty(this.alertpanels)){
|
||||
if (!Y.Object.isEmpty(this.alertpanels)) {
|
||||
position = this._getLatestWindowPosition();
|
||||
Y.Node.one(alertpanelid).setXY([position[0] + 10, position[1] + 10]);
|
||||
}
|
||||
@@ -105,63 +105,63 @@ Y.extend(AUTOLINKER, Y.Base, {
|
||||
} else if (data.error) {
|
||||
new M.core.ajaxException(data);
|
||||
}
|
||||
} catch(e) {
|
||||
} catch (e) {
|
||||
new M.core.exception(e);
|
||||
}
|
||||
return false;
|
||||
},
|
||||
_getLatestWindowPosition : function() {
|
||||
_getLatestWindowPosition: function() {
|
||||
var lastPosition = [0, 0];
|
||||
Y.Object.each(this.alertpanels, function(position) {
|
||||
if (position[0] > lastPosition[0]){
|
||||
if (position[0] > lastPosition[0]) {
|
||||
lastPosition = position;
|
||||
}
|
||||
});
|
||||
return lastPosition;
|
||||
},
|
||||
_deletealertpanel : function(ev, alertpanelid) {
|
||||
_deletealertpanel: function(ev, alertpanelid) {
|
||||
delete this.alertpanels[alertpanelid];
|
||||
}
|
||||
}, {
|
||||
NAME : AUTOLINKERNAME,
|
||||
ATTRS : {
|
||||
url : {
|
||||
validator : Y.Lang.isString,
|
||||
value : M.cfg.wwwroot+'/mod/glossary/showentry.php'
|
||||
NAME: AUTOLINKERNAME,
|
||||
ATTRS: {
|
||||
url: {
|
||||
validator: Y.Lang.isString,
|
||||
value: M.cfg.wwwroot + '/mod/glossary/showentry.php'
|
||||
},
|
||||
name : {
|
||||
validator : Y.Lang.isString,
|
||||
value : 'glossaryconcept'
|
||||
name: {
|
||||
validator: Y.Lang.isString,
|
||||
value: 'glossaryconcept'
|
||||
},
|
||||
options : {
|
||||
getter : function() {
|
||||
options: {
|
||||
getter: function() {
|
||||
return {
|
||||
width : this.get(WIDTH),
|
||||
height : this.get(HEIGHT),
|
||||
menubar : this.get(MENUBAR),
|
||||
location : this.get(LOCATION),
|
||||
scrollbars : this.get(SCROLLBARS),
|
||||
resizable : this.get(RESIZEABLE),
|
||||
toolbar : this.get(TOOLBAR),
|
||||
status : this.get(STATUS),
|
||||
directories : this.get(DIRECTORIES),
|
||||
fullscreen : this.get(FULLSCREEN),
|
||||
dependent : this.get(DEPENDENT)
|
||||
width: this.get(WIDTH),
|
||||
height: this.get(HEIGHT),
|
||||
menubar: this.get(MENUBAR),
|
||||
location: this.get(LOCATION),
|
||||
scrollbars: this.get(SCROLLBARS),
|
||||
resizable: this.get(RESIZEABLE),
|
||||
toolbar: this.get(TOOLBAR),
|
||||
status: this.get(STATUS),
|
||||
directories: this.get(DIRECTORIES),
|
||||
fullscreen: this.get(FULLSCREEN),
|
||||
dependent: this.get(DEPENDENT)
|
||||
};
|
||||
},
|
||||
readOnly : true
|
||||
readOnly: true
|
||||
},
|
||||
width : {value : 600},
|
||||
height : {value : 450},
|
||||
menubar : {value : false},
|
||||
location : {value : false},
|
||||
scrollbars : {value : true},
|
||||
resizable : {value : true},
|
||||
toolbar : {value : true},
|
||||
status : {value : true},
|
||||
directories : {value : false},
|
||||
fullscreen : {value : false},
|
||||
dependent : {value : true}
|
||||
width: {value: 600},
|
||||
height: {value: 450},
|
||||
menubar: {value: false},
|
||||
location: {value: false},
|
||||
scrollbars: {value: true},
|
||||
resizable: {value: true},
|
||||
toolbar: {value: true},
|
||||
status: {value: true},
|
||||
directories: {value: false},
|
||||
fullscreen: {value: false},
|
||||
dependent: {value: true}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
Vendored
+53
-53
@@ -18,33 +18,33 @@ AUTOLINKER = function() {
|
||||
AUTOLINKER.superclass.constructor.apply(this, arguments);
|
||||
};
|
||||
Y.extend(AUTOLINKER, Y.Base, {
|
||||
overlay : null,
|
||||
overlay: null,
|
||||
alertpanels: {},
|
||||
initializer : function() {
|
||||
initializer: function() {
|
||||
var self = this;
|
||||
require(['core/event'], function(event) {
|
||||
Y.delegate('click', function(e){
|
||||
Y.delegate('click', function(e) {
|
||||
e.preventDefault();
|
||||
|
||||
//display a progress indicator
|
||||
// display a progress indicator
|
||||
var title = '',
|
||||
content = Y.Node.create('<div id="glossaryfilteroverlayprogress">' +
|
||||
'<img src="' + M.cfg.loadingicon + '" class="spinner" />' +
|
||||
'</div>'),
|
||||
o = new Y.Overlay({
|
||||
headerContent : title,
|
||||
bodyContent : content
|
||||
headerContent: title,
|
||||
bodyContent: content
|
||||
}),
|
||||
fullurl,
|
||||
cfg;
|
||||
self.overlay = o;
|
||||
o.render(Y.one(document.body));
|
||||
|
||||
//Switch over to the ajax url and fetch the glossary item
|
||||
fullurl = this.getAttribute('href').replace('showentry.php','showentry_ajax.php');
|
||||
// Switch over to the ajax url and fetch the glossary item
|
||||
fullurl = this.getAttribute('href').replace('showentry.php', 'showentry_ajax.php');
|
||||
cfg = {
|
||||
method: 'get',
|
||||
context : self,
|
||||
context: self,
|
||||
on: {
|
||||
success: function(id, o) {
|
||||
this.display_callback(o.responseText, event);
|
||||
@@ -54,7 +54,7 @@ Y.extend(AUTOLINKER, Y.Base, {
|
||||
if (M.cfg.developerdebug) {
|
||||
o.statusText += ' (' + fullurl + ')';
|
||||
}
|
||||
new M.core.exception({ message: debuginfo });
|
||||
new M.core.exception({message: debuginfo});
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -68,7 +68,7 @@ Y.extend(AUTOLINKER, Y.Base, {
|
||||
* @param {String} content - Content to display
|
||||
* @param {Object} event The amd event module used to fire events for jquery and yui.
|
||||
*/
|
||||
display_callback : function(content, event) {
|
||||
display_callback: function(content, event) {
|
||||
var data,
|
||||
key,
|
||||
alertpanel,
|
||||
@@ -77,13 +77,13 @@ Y.extend(AUTOLINKER, Y.Base, {
|
||||
position;
|
||||
try {
|
||||
data = Y.JSON.parse(content);
|
||||
if (data.success){
|
||||
this.overlay.hide(); //hide progress indicator
|
||||
if (data.success) {
|
||||
this.overlay.hide(); // hide progress indicator
|
||||
|
||||
for (key in data.entries) {
|
||||
definition = data.entries[key].definition + data.entries[key].attachments;
|
||||
alertpanel = new M.core.alert({title:data.entries[key].concept, draggable: true,
|
||||
message:definition, modal:false, yesLabel: M.util.get_string('ok', 'moodle')});
|
||||
alertpanel = new M.core.alert({title: data.entries[key].concept, draggable: true,
|
||||
message: definition, modal: false, yesLabel: M.util.get_string('ok', 'moodle')});
|
||||
// Notify the filters about the modified nodes.
|
||||
event.notifyFilterContentUpdated(alertpanel.get('boundingBox').getDOMNode());
|
||||
Y.Node.one('#id_yuialertconfirm-' + alertpanel.get('COUNT')).focus();
|
||||
@@ -93,7 +93,7 @@ Y.extend(AUTOLINKER, Y.Base, {
|
||||
alertpanel.on('complete', this._deletealertpanel, this, alertpanelid);
|
||||
|
||||
// We already have some windows opened, so set the right position...
|
||||
if (!Y.Object.isEmpty(this.alertpanels)){
|
||||
if (!Y.Object.isEmpty(this.alertpanels)) {
|
||||
position = this._getLatestWindowPosition();
|
||||
Y.Node.one(alertpanelid).setXY([position[0] + 10, position[1] + 10]);
|
||||
}
|
||||
@@ -105,63 +105,63 @@ Y.extend(AUTOLINKER, Y.Base, {
|
||||
} else if (data.error) {
|
||||
new M.core.ajaxException(data);
|
||||
}
|
||||
} catch(e) {
|
||||
} catch (e) {
|
||||
new M.core.exception(e);
|
||||
}
|
||||
return false;
|
||||
},
|
||||
_getLatestWindowPosition : function() {
|
||||
_getLatestWindowPosition: function() {
|
||||
var lastPosition = [0, 0];
|
||||
Y.Object.each(this.alertpanels, function(position) {
|
||||
if (position[0] > lastPosition[0]){
|
||||
if (position[0] > lastPosition[0]) {
|
||||
lastPosition = position;
|
||||
}
|
||||
});
|
||||
return lastPosition;
|
||||
},
|
||||
_deletealertpanel : function(ev, alertpanelid) {
|
||||
_deletealertpanel: function(ev, alertpanelid) {
|
||||
delete this.alertpanels[alertpanelid];
|
||||
}
|
||||
}, {
|
||||
NAME : AUTOLINKERNAME,
|
||||
ATTRS : {
|
||||
url : {
|
||||
validator : Y.Lang.isString,
|
||||
value : M.cfg.wwwroot+'/mod/glossary/showentry.php'
|
||||
NAME: AUTOLINKERNAME,
|
||||
ATTRS: {
|
||||
url: {
|
||||
validator: Y.Lang.isString,
|
||||
value: M.cfg.wwwroot + '/mod/glossary/showentry.php'
|
||||
},
|
||||
name : {
|
||||
validator : Y.Lang.isString,
|
||||
value : 'glossaryconcept'
|
||||
name: {
|
||||
validator: Y.Lang.isString,
|
||||
value: 'glossaryconcept'
|
||||
},
|
||||
options : {
|
||||
getter : function() {
|
||||
options: {
|
||||
getter: function() {
|
||||
return {
|
||||
width : this.get(WIDTH),
|
||||
height : this.get(HEIGHT),
|
||||
menubar : this.get(MENUBAR),
|
||||
location : this.get(LOCATION),
|
||||
scrollbars : this.get(SCROLLBARS),
|
||||
resizable : this.get(RESIZEABLE),
|
||||
toolbar : this.get(TOOLBAR),
|
||||
status : this.get(STATUS),
|
||||
directories : this.get(DIRECTORIES),
|
||||
fullscreen : this.get(FULLSCREEN),
|
||||
dependent : this.get(DEPENDENT)
|
||||
width: this.get(WIDTH),
|
||||
height: this.get(HEIGHT),
|
||||
menubar: this.get(MENUBAR),
|
||||
location: this.get(LOCATION),
|
||||
scrollbars: this.get(SCROLLBARS),
|
||||
resizable: this.get(RESIZEABLE),
|
||||
toolbar: this.get(TOOLBAR),
|
||||
status: this.get(STATUS),
|
||||
directories: this.get(DIRECTORIES),
|
||||
fullscreen: this.get(FULLSCREEN),
|
||||
dependent: this.get(DEPENDENT)
|
||||
};
|
||||
},
|
||||
readOnly : true
|
||||
readOnly: true
|
||||
},
|
||||
width : {value : 600},
|
||||
height : {value : 450},
|
||||
menubar : {value : false},
|
||||
location : {value : false},
|
||||
scrollbars : {value : true},
|
||||
resizable : {value : true},
|
||||
toolbar : {value : true},
|
||||
status : {value : true},
|
||||
directories : {value : false},
|
||||
fullscreen : {value : false},
|
||||
dependent : {value : true}
|
||||
width: {value: 600},
|
||||
height: {value: 450},
|
||||
menubar: {value: false},
|
||||
location: {value: false},
|
||||
scrollbars: {value: true},
|
||||
resizable: {value: true},
|
||||
toolbar: {value: true},
|
||||
status: {value: true},
|
||||
directories: {value: false},
|
||||
fullscreen: {value: false},
|
||||
dependent: {value: true}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
+2
-2
@@ -77,7 +77,7 @@ M.filter_mathjaxloader = M.filter_mathjaxloader || {
|
||||
if (!this._configured) {
|
||||
var lang = this._lang;
|
||||
if (typeof window.MathJax !== "undefined") {
|
||||
window.MathJax.Hub.Queue(function () {
|
||||
window.MathJax.Hub.Queue(function() {
|
||||
window.MathJax.Localization.setLocale(lang);
|
||||
});
|
||||
window.MathJax.Hub.Configured();
|
||||
@@ -120,7 +120,7 @@ M.filter_mathjaxloader = M.filter_mathjaxloader || {
|
||||
// Set the process section delay to 0 when updating the formula.
|
||||
window.MathJax.Hub.processSectionDelay = 0;
|
||||
self._setLocale();
|
||||
event.nodes.each(function (node) {
|
||||
event.nodes.each(function(node) {
|
||||
node.all('.filter_mathjaxloader_equation').each(function(node) {
|
||||
window.MathJax.Hub.Queue(["Typeset", window.MathJax.Hub, node.getDOMNode()]);
|
||||
});
|
||||
|
||||
+2
-2
@@ -77,7 +77,7 @@ M.filter_mathjaxloader = M.filter_mathjaxloader || {
|
||||
if (!this._configured) {
|
||||
var lang = this._lang;
|
||||
if (typeof window.MathJax !== "undefined") {
|
||||
window.MathJax.Hub.Queue(function () {
|
||||
window.MathJax.Hub.Queue(function() {
|
||||
window.MathJax.Localization.setLocale(lang);
|
||||
});
|
||||
window.MathJax.Hub.Configured();
|
||||
@@ -120,7 +120,7 @@ M.filter_mathjaxloader = M.filter_mathjaxloader || {
|
||||
// Set the process section delay to 0 when updating the formula.
|
||||
window.MathJax.Hub.processSectionDelay = 0;
|
||||
self._setLocale();
|
||||
event.nodes.each(function (node) {
|
||||
event.nodes.each(function(node) {
|
||||
node.all('.filter_mathjaxloader_equation').each(function(node) {
|
||||
window.MathJax.Hub.Queue(["Typeset", window.MathJax.Hub, node.getDOMNode()]);
|
||||
});
|
||||
|
||||
+15
-15
@@ -182,7 +182,7 @@ CSS.FLOATING = 'floating';
|
||||
|
||||
function FloatingHeaders() {}
|
||||
|
||||
FloatingHeaders.ATTRS= {
|
||||
FloatingHeaders.ATTRS = {
|
||||
};
|
||||
|
||||
FloatingHeaders.prototype = {
|
||||
@@ -629,14 +629,14 @@ FloatingHeaders.prototype = {
|
||||
userColumn.each(function(node) {
|
||||
var height = node.getComputedStyle(HEIGHT);
|
||||
// Nasty hack to account for Internet Explorer
|
||||
if(Y.UA.ie !== 0) {
|
||||
if (Y.UA.ie !== 0) {
|
||||
var allHeight = node.get('offsetHeight');
|
||||
var marginHeight = parseInt(node.getComputedStyle('marginTop'),10) +
|
||||
parseInt(node.getComputedStyle('marginBottom'),10);
|
||||
var paddingHeight = parseInt(node.getComputedStyle('paddingTop'),10) +
|
||||
parseInt(node.getComputedStyle('paddingBottom'),10);
|
||||
var borderHeight = parseInt(node.getComputedStyle('borderTopWidth'),10) +
|
||||
parseInt(node.getComputedStyle('borderBottomWidth'),10);
|
||||
var marginHeight = parseInt(node.getComputedStyle('marginTop'), 10) +
|
||||
parseInt(node.getComputedStyle('marginBottom'), 10);
|
||||
var paddingHeight = parseInt(node.getComputedStyle('paddingTop'), 10) +
|
||||
parseInt(node.getComputedStyle('paddingBottom'), 10);
|
||||
var borderHeight = parseInt(node.getComputedStyle('borderTopWidth'), 10) +
|
||||
parseInt(node.getComputedStyle('borderBottomWidth'), 10);
|
||||
height = allHeight - marginHeight - paddingHeight - borderHeight;
|
||||
}
|
||||
// Create and configure the new container.
|
||||
@@ -1084,17 +1084,17 @@ FloatingHeaders.prototype = {
|
||||
this.userColumn.all('.cell').each(function(cell, idx) {
|
||||
var height = userCells.item(idx).getComputedStyle(HEIGHT);
|
||||
// Nasty hack to account for Internet Explorer
|
||||
if(Y.UA.ie !== 0) {
|
||||
if (Y.UA.ie !== 0) {
|
||||
var node = userCells.item(idx);
|
||||
var allHeight = node.getDOMNode ?
|
||||
node.getDOMNode().getBoundingClientRect().height :
|
||||
node.get('offsetHeight');
|
||||
var marginHeight = parseInt(node.getComputedStyle('marginTop'),10) +
|
||||
parseInt(node.getComputedStyle('marginBottom'),10);
|
||||
var paddingHeight = parseInt(node.getComputedStyle('paddingTop'),10) +
|
||||
parseInt(node.getComputedStyle('paddingBottom'),10);
|
||||
var borderHeight = parseInt(node.getComputedStyle('borderTopWidth'),10) +
|
||||
parseInt(node.getComputedStyle('borderBottomWidth'),10);
|
||||
var marginHeight = parseInt(node.getComputedStyle('marginTop'), 10) +
|
||||
parseInt(node.getComputedStyle('marginBottom'), 10);
|
||||
var paddingHeight = parseInt(node.getComputedStyle('paddingTop'), 10) +
|
||||
parseInt(node.getComputedStyle('paddingBottom'), 10);
|
||||
var borderHeight = parseInt(node.getComputedStyle('borderTopWidth'), 10) +
|
||||
parseInt(node.getComputedStyle('borderBottomWidth'), 10);
|
||||
height = allHeight - marginHeight - paddingHeight - borderHeight;
|
||||
}
|
||||
cell.setStyles({
|
||||
|
||||
+15
-15
@@ -182,7 +182,7 @@ CSS.FLOATING = 'floating';
|
||||
|
||||
function FloatingHeaders() {}
|
||||
|
||||
FloatingHeaders.ATTRS= {
|
||||
FloatingHeaders.ATTRS = {
|
||||
};
|
||||
|
||||
FloatingHeaders.prototype = {
|
||||
@@ -629,14 +629,14 @@ FloatingHeaders.prototype = {
|
||||
userColumn.each(function(node) {
|
||||
var height = node.getComputedStyle(HEIGHT);
|
||||
// Nasty hack to account for Internet Explorer
|
||||
if(Y.UA.ie !== 0) {
|
||||
if (Y.UA.ie !== 0) {
|
||||
var allHeight = node.get('offsetHeight');
|
||||
var marginHeight = parseInt(node.getComputedStyle('marginTop'),10) +
|
||||
parseInt(node.getComputedStyle('marginBottom'),10);
|
||||
var paddingHeight = parseInt(node.getComputedStyle('paddingTop'),10) +
|
||||
parseInt(node.getComputedStyle('paddingBottom'),10);
|
||||
var borderHeight = parseInt(node.getComputedStyle('borderTopWidth'),10) +
|
||||
parseInt(node.getComputedStyle('borderBottomWidth'),10);
|
||||
var marginHeight = parseInt(node.getComputedStyle('marginTop'), 10) +
|
||||
parseInt(node.getComputedStyle('marginBottom'), 10);
|
||||
var paddingHeight = parseInt(node.getComputedStyle('paddingTop'), 10) +
|
||||
parseInt(node.getComputedStyle('paddingBottom'), 10);
|
||||
var borderHeight = parseInt(node.getComputedStyle('borderTopWidth'), 10) +
|
||||
parseInt(node.getComputedStyle('borderBottomWidth'), 10);
|
||||
height = allHeight - marginHeight - paddingHeight - borderHeight;
|
||||
}
|
||||
// Create and configure the new container.
|
||||
@@ -1083,17 +1083,17 @@ FloatingHeaders.prototype = {
|
||||
this.userColumn.all('.cell').each(function(cell, idx) {
|
||||
var height = userCells.item(idx).getComputedStyle(HEIGHT);
|
||||
// Nasty hack to account for Internet Explorer
|
||||
if(Y.UA.ie !== 0) {
|
||||
if (Y.UA.ie !== 0) {
|
||||
var node = userCells.item(idx);
|
||||
var allHeight = node.getDOMNode ?
|
||||
node.getDOMNode().getBoundingClientRect().height :
|
||||
node.get('offsetHeight');
|
||||
var marginHeight = parseInt(node.getComputedStyle('marginTop'),10) +
|
||||
parseInt(node.getComputedStyle('marginBottom'),10);
|
||||
var paddingHeight = parseInt(node.getComputedStyle('paddingTop'),10) +
|
||||
parseInt(node.getComputedStyle('paddingBottom'),10);
|
||||
var borderHeight = parseInt(node.getComputedStyle('borderTopWidth'),10) +
|
||||
parseInt(node.getComputedStyle('borderBottomWidth'),10);
|
||||
var marginHeight = parseInt(node.getComputedStyle('marginTop'), 10) +
|
||||
parseInt(node.getComputedStyle('marginBottom'), 10);
|
||||
var paddingHeight = parseInt(node.getComputedStyle('paddingTop'), 10) +
|
||||
parseInt(node.getComputedStyle('paddingBottom'), 10);
|
||||
var borderHeight = parseInt(node.getComputedStyle('borderTopWidth'), 10) +
|
||||
parseInt(node.getComputedStyle('borderBottomWidth'), 10);
|
||||
height = allHeight - marginHeight - paddingHeight - borderHeight;
|
||||
}
|
||||
cell.setStyles({
|
||||
|
||||
+8
-8
@@ -260,7 +260,7 @@ Y.namespace('M.gradereport_history').UserSelector = Y.extend(USERSELECTOR, M.cor
|
||||
}
|
||||
var params;
|
||||
if (append) {
|
||||
this.set(USP.PAGE, this.get(USP.PAGE)+1);
|
||||
this.set(USP.PAGE, this.get(USP.PAGE) + 1);
|
||||
} else {
|
||||
this.set(USP.USERCOUNT, 0);
|
||||
this.set(USP.PAGE, 0);
|
||||
@@ -273,14 +273,14 @@ Y.namespace('M.gradereport_history').UserSelector = Y.extend(USERSELECTOR, M.cor
|
||||
params.perpage = this.get(USP.PERPAGE);
|
||||
|
||||
Y.io(M.cfg.wwwroot + this.get(USP.AJAXURL), {
|
||||
method:'POST',
|
||||
method: 'POST',
|
||||
data: window.build_querystring(params),
|
||||
on: {
|
||||
start: this.preSearch,
|
||||
complete: this.processSearchResults,
|
||||
end: this.postSearch
|
||||
},
|
||||
context:this,
|
||||
context: this,
|
||||
"arguments": { // Quoted because this is a reserved keyword.
|
||||
append: append
|
||||
}
|
||||
@@ -457,11 +457,11 @@ Y.namespace('M.gradereport_history').UserSelector = Y.extend(USERSELECTOR, M.cor
|
||||
bb.one(SELECTORS.RESULTSCOUNT).setHTML(M.util.get_string('foundnusers', COMPONENT, totalUsers));
|
||||
}
|
||||
|
||||
content = Y.Node.create('<div class="'+CSS.SEARCHRESULTS+'"></div>')
|
||||
content = Y.Node.create('<div class="' + CSS.SEARCHRESULTS + '"></div>')
|
||||
.append(users);
|
||||
if (result.response.totalusers > (this.get(USP.PAGE)+1)*this.get(USP.PERPAGE)) {
|
||||
fetchmore = Y.Node.create('<div class="'+CSS.MORERESULTS+'">' +
|
||||
'<a href="#" role="button">'+M.util.get_string('loadmoreusers', COMPONENT)+'</a></div>');
|
||||
if (result.response.totalusers > (this.get(USP.PAGE) + 1) * this.get(USP.PERPAGE)) {
|
||||
fetchmore = Y.Node.create('<div class="' + CSS.MORERESULTS + '">' +
|
||||
'<a href="#" role="button">' + M.util.get_string('loadmoreusers', COMPONENT) + '</a></div>');
|
||||
fetchmore.one('a').on('click', this.search, this, true);
|
||||
fetchmore.one('a').on('key', this.search, 'space', this, true);
|
||||
content.append(fetchmore);
|
||||
@@ -469,7 +469,7 @@ Y.namespace('M.gradereport_history').UserSelector = Y.extend(USERSELECTOR, M.cor
|
||||
}
|
||||
this.setContent(content);
|
||||
} else {
|
||||
if (totalUsers <= (this.get(USP.PAGE)+1)*this.get(USP.PERPAGE)) {
|
||||
if (totalUsers <= (this.get(USP.PAGE) + 1) * this.get(USP.PERPAGE)) {
|
||||
bb.one(SELECTORS.MORERESULTS).remove();
|
||||
}
|
||||
}
|
||||
|
||||
+8
-8
@@ -260,7 +260,7 @@ Y.namespace('M.gradereport_history').UserSelector = Y.extend(USERSELECTOR, M.cor
|
||||
}
|
||||
var params;
|
||||
if (append) {
|
||||
this.set(USP.PAGE, this.get(USP.PAGE)+1);
|
||||
this.set(USP.PAGE, this.get(USP.PAGE) + 1);
|
||||
} else {
|
||||
this.set(USP.USERCOUNT, 0);
|
||||
this.set(USP.PAGE, 0);
|
||||
@@ -273,14 +273,14 @@ Y.namespace('M.gradereport_history').UserSelector = Y.extend(USERSELECTOR, M.cor
|
||||
params.perpage = this.get(USP.PERPAGE);
|
||||
|
||||
Y.io(M.cfg.wwwroot + this.get(USP.AJAXURL), {
|
||||
method:'POST',
|
||||
method: 'POST',
|
||||
data: window.build_querystring(params),
|
||||
on: {
|
||||
start: this.preSearch,
|
||||
complete: this.processSearchResults,
|
||||
end: this.postSearch
|
||||
},
|
||||
context:this,
|
||||
context: this,
|
||||
"arguments": { // Quoted because this is a reserved keyword.
|
||||
append: append
|
||||
}
|
||||
@@ -457,11 +457,11 @@ Y.namespace('M.gradereport_history').UserSelector = Y.extend(USERSELECTOR, M.cor
|
||||
bb.one(SELECTORS.RESULTSCOUNT).setHTML(M.util.get_string('foundnusers', COMPONENT, totalUsers));
|
||||
}
|
||||
|
||||
content = Y.Node.create('<div class="'+CSS.SEARCHRESULTS+'"></div>')
|
||||
content = Y.Node.create('<div class="' + CSS.SEARCHRESULTS + '"></div>')
|
||||
.append(users);
|
||||
if (result.response.totalusers > (this.get(USP.PAGE)+1)*this.get(USP.PERPAGE)) {
|
||||
fetchmore = Y.Node.create('<div class="'+CSS.MORERESULTS+'">' +
|
||||
'<a href="#" role="button">'+M.util.get_string('loadmoreusers', COMPONENT)+'</a></div>');
|
||||
if (result.response.totalusers > (this.get(USP.PAGE) + 1) * this.get(USP.PERPAGE)) {
|
||||
fetchmore = Y.Node.create('<div class="' + CSS.MORERESULTS + '">' +
|
||||
'<a href="#" role="button">' + M.util.get_string('loadmoreusers', COMPONENT) + '</a></div>');
|
||||
fetchmore.one('a').on('click', this.search, this, true);
|
||||
fetchmore.one('a').on('key', this.search, 'space', this, true);
|
||||
content.append(fetchmore);
|
||||
@@ -469,7 +469,7 @@ Y.namespace('M.gradereport_history').UserSelector = Y.extend(USERSELECTOR, M.cor
|
||||
}
|
||||
this.setContent(content);
|
||||
} else {
|
||||
if (totalUsers <= (this.get(USP.PAGE)+1)*this.get(USP.PERPAGE)) {
|
||||
if (totalUsers <= (this.get(USP.PAGE) + 1) * this.get(USP.PERPAGE)) {
|
||||
bb.one(SELECTORS.MORERESULTS).remove();
|
||||
}
|
||||
}
|
||||
|
||||
+11
-10
@@ -109,7 +109,7 @@ Y.namespace('M.atto_accessibilitychecker').Button = Y.Base.create('button', Y.M.
|
||||
|
||||
// Images with no alt text or dodgy alt text.
|
||||
problemNodes = [];
|
||||
this.editor.all('img').each(function (img) {
|
||||
this.editor.all('img').each(function(img) {
|
||||
var alt = img.getAttribute('alt');
|
||||
if (typeof alt === 'undefined' || alt === '') {
|
||||
if (img.getAttribute('role') !== 'presentation') {
|
||||
@@ -120,7 +120,7 @@ Y.namespace('M.atto_accessibilitychecker').Button = Y.Base.create('button', Y.M.
|
||||
this._addWarnings(list, M.util.get_string('imagesmissingalt', COMPONENT), problemNodes, true);
|
||||
|
||||
problemNodes = [];
|
||||
this.editor.all('*').each(function (node) {
|
||||
this.editor.all('*').each(function(node) {
|
||||
var foreground,
|
||||
background,
|
||||
ratio,
|
||||
@@ -149,7 +149,8 @@ Y.namespace('M.atto_accessibilitychecker').Button = Y.Base.create('button', Y.M.
|
||||
' Luminance 2: ' + lum2);
|
||||
|
||||
// We only want the highest node with dodgy contrast reported.
|
||||
var i = 0, found = false;
|
||||
var i = 0;
|
||||
var found = false;
|
||||
for (i = 0; i < problemNodes.length; i++) {
|
||||
if (node.ancestors('*').indexOf(problemNodes[i]) !== -1) {
|
||||
// Do not add node - it already has a parent in the list.
|
||||
@@ -177,7 +178,7 @@ Y.namespace('M.atto_accessibilitychecker').Button = Y.Base.create('button', Y.M.
|
||||
|
||||
// Check for tables with no captions.
|
||||
problemNodes = [];
|
||||
this.editor.all('table').each(function (table) {
|
||||
this.editor.all('table').each(function(table) {
|
||||
var caption = table.one('caption');
|
||||
if (caption === null || caption.get('text').trim() === '') {
|
||||
problemNodes.push(table);
|
||||
@@ -187,7 +188,7 @@ Y.namespace('M.atto_accessibilitychecker').Button = Y.Base.create('button', Y.M.
|
||||
|
||||
// Check for tables with merged cells.
|
||||
problemNodes = [];
|
||||
this.editor.all('table').each(function (table) {
|
||||
this.editor.all('table').each(function(table) {
|
||||
var caption = table.one('[colspan],[rowspan]');
|
||||
if (caption !== null) {
|
||||
problemNodes.push(table);
|
||||
@@ -197,10 +198,10 @@ Y.namespace('M.atto_accessibilitychecker').Button = Y.Base.create('button', Y.M.
|
||||
|
||||
// Check for tables with no row/col headers
|
||||
problemNodes = [];
|
||||
this.editor.all('table').each(function (table) {
|
||||
this.editor.all('table').each(function(table) {
|
||||
if (table.one('tr').one('td')) {
|
||||
// First row has a non-header cell, so all rows must have at least one header.
|
||||
table.all('tr').some(function (row) {
|
||||
table.all('tr').some(function(row) {
|
||||
var header = row.one('th');
|
||||
if (!header || (header.get('text').trim() === '')) {
|
||||
problemNodes.push(table);
|
||||
@@ -211,7 +212,7 @@ Y.namespace('M.atto_accessibilitychecker').Button = Y.Base.create('button', Y.M.
|
||||
} else {
|
||||
// First row must have at least one header then.
|
||||
var hasHeader = false;
|
||||
table.one('tr').all('th').some(function (header) {
|
||||
table.one('tr').all('th').some(function(header) {
|
||||
hasHeader = true;
|
||||
if (header.get('text').trim() === '') {
|
||||
problemNodes.push(table);
|
||||
@@ -296,9 +297,9 @@ Y.namespace('M.atto_accessibilitychecker').Button = Y.Base.create('button', Y.M.
|
||||
var part1 = function(a) {
|
||||
a = parseInt(a, 10) / 255.0;
|
||||
if (a <= 0.03928) {
|
||||
a = a/12.92;
|
||||
a = a / 12.92;
|
||||
} else {
|
||||
a = Math.pow(((a + 0.055)/1.055), 2.4);
|
||||
a = Math.pow(((a + 0.055) / 1.055), 2.4);
|
||||
}
|
||||
return a;
|
||||
};
|
||||
|
||||
+11
-10
@@ -109,7 +109,7 @@ Y.namespace('M.atto_accessibilitychecker').Button = Y.Base.create('button', Y.M.
|
||||
|
||||
// Images with no alt text or dodgy alt text.
|
||||
problemNodes = [];
|
||||
this.editor.all('img').each(function (img) {
|
||||
this.editor.all('img').each(function(img) {
|
||||
var alt = img.getAttribute('alt');
|
||||
if (typeof alt === 'undefined' || alt === '') {
|
||||
if (img.getAttribute('role') !== 'presentation') {
|
||||
@@ -120,7 +120,7 @@ Y.namespace('M.atto_accessibilitychecker').Button = Y.Base.create('button', Y.M.
|
||||
this._addWarnings(list, M.util.get_string('imagesmissingalt', COMPONENT), problemNodes, true);
|
||||
|
||||
problemNodes = [];
|
||||
this.editor.all('*').each(function (node) {
|
||||
this.editor.all('*').each(function(node) {
|
||||
var foreground,
|
||||
background,
|
||||
ratio,
|
||||
@@ -144,7 +144,8 @@ Y.namespace('M.atto_accessibilitychecker').Button = Y.Base.create('button', Y.M.
|
||||
if (ratio <= 4.5) {
|
||||
|
||||
// We only want the highest node with dodgy contrast reported.
|
||||
var i = 0, found = false;
|
||||
var i = 0;
|
||||
var found = false;
|
||||
for (i = 0; i < problemNodes.length; i++) {
|
||||
if (node.ancestors('*').indexOf(problemNodes[i]) !== -1) {
|
||||
// Do not add node - it already has a parent in the list.
|
||||
@@ -172,7 +173,7 @@ Y.namespace('M.atto_accessibilitychecker').Button = Y.Base.create('button', Y.M.
|
||||
|
||||
// Check for tables with no captions.
|
||||
problemNodes = [];
|
||||
this.editor.all('table').each(function (table) {
|
||||
this.editor.all('table').each(function(table) {
|
||||
var caption = table.one('caption');
|
||||
if (caption === null || caption.get('text').trim() === '') {
|
||||
problemNodes.push(table);
|
||||
@@ -182,7 +183,7 @@ Y.namespace('M.atto_accessibilitychecker').Button = Y.Base.create('button', Y.M.
|
||||
|
||||
// Check for tables with merged cells.
|
||||
problemNodes = [];
|
||||
this.editor.all('table').each(function (table) {
|
||||
this.editor.all('table').each(function(table) {
|
||||
var caption = table.one('[colspan],[rowspan]');
|
||||
if (caption !== null) {
|
||||
problemNodes.push(table);
|
||||
@@ -192,10 +193,10 @@ Y.namespace('M.atto_accessibilitychecker').Button = Y.Base.create('button', Y.M.
|
||||
|
||||
// Check for tables with no row/col headers
|
||||
problemNodes = [];
|
||||
this.editor.all('table').each(function (table) {
|
||||
this.editor.all('table').each(function(table) {
|
||||
if (table.one('tr').one('td')) {
|
||||
// First row has a non-header cell, so all rows must have at least one header.
|
||||
table.all('tr').some(function (row) {
|
||||
table.all('tr').some(function(row) {
|
||||
var header = row.one('th');
|
||||
if (!header || (header.get('text').trim() === '')) {
|
||||
problemNodes.push(table);
|
||||
@@ -206,7 +207,7 @@ Y.namespace('M.atto_accessibilitychecker').Button = Y.Base.create('button', Y.M.
|
||||
} else {
|
||||
// First row must have at least one header then.
|
||||
var hasHeader = false;
|
||||
table.one('tr').all('th').some(function (header) {
|
||||
table.one('tr').all('th').some(function(header) {
|
||||
hasHeader = true;
|
||||
if (header.get('text').trim() === '') {
|
||||
problemNodes.push(table);
|
||||
@@ -291,9 +292,9 @@ Y.namespace('M.atto_accessibilitychecker').Button = Y.Base.create('button', Y.M.
|
||||
var part1 = function(a) {
|
||||
a = parseInt(a, 10) / 255.0;
|
||||
if (a <= 0.03928) {
|
||||
a = a/12.92;
|
||||
a = a / 12.92;
|
||||
} else {
|
||||
a = Math.pow(((a + 0.055)/1.055), 2.4);
|
||||
a = Math.pow(((a + 0.055) / 1.055), 2.4);
|
||||
}
|
||||
return a;
|
||||
};
|
||||
|
||||
+263
-263
@@ -45,277 +45,277 @@ var COMPONENTNAME = 'atto_charmap',
|
||||
* @type {Array}
|
||||
*/
|
||||
CHARMAP = [
|
||||
[' ', ' ', true, 'nobreakspace'],
|
||||
['&', '&', true, 'ampersand'],
|
||||
['"', '"', true, 'quotationmark'],
|
||||
['‽', '‽', true, 'interrobang'],
|
||||
[' ', ' ', true, 'nobreakspace'],
|
||||
['&', '&', true, 'ampersand'],
|
||||
['"', '"', true, 'quotationmark'],
|
||||
['‽', '‽', true, 'interrobang'],
|
||||
// Finance.
|
||||
['¢', '¢', true, 'centsign'],
|
||||
['€', '€', true, 'eurosign'],
|
||||
['£', '£', true, 'poundsign'],
|
||||
['¥', '¥', true, 'yensign'],
|
||||
['¢', '¢', true, 'centsign'],
|
||||
['€', '€', true, 'eurosign'],
|
||||
['£', '£', true, 'poundsign'],
|
||||
['¥', '¥', true, 'yensign'],
|
||||
// Signs.
|
||||
['©', '©', true, 'copyrightsign'],
|
||||
['®', '®', true, 'registeredsign'],
|
||||
['™', '™', true, 'trademarksign'],
|
||||
['‰', '‰', true, 'permillesign'],
|
||||
['µ', 'µ', true, 'microsign'],
|
||||
['·', '·', true, 'middledot'],
|
||||
['•', '•', true, 'bullet'],
|
||||
['…', '…', true, 'threedotleader'],
|
||||
['′', '′', true, 'minutesfeet'],
|
||||
['″', '″', true, 'secondsinches'],
|
||||
['§', '§', true, 'sectionsign'],
|
||||
['¶', '¶', true, 'paragraphsign'],
|
||||
['ß', 'ß', true, 'sharpsesszed'],
|
||||
['©', '©', true, 'copyrightsign'],
|
||||
['®', '®', true, 'registeredsign'],
|
||||
['™', '™', true, 'trademarksign'],
|
||||
['‰', '‰', true, 'permillesign'],
|
||||
['µ', 'µ', true, 'microsign'],
|
||||
['·', '·', true, 'middledot'],
|
||||
['•', '•', true, 'bullet'],
|
||||
['…', '…', true, 'threedotleader'],
|
||||
['′', '′', true, 'minutesfeet'],
|
||||
['″', '″', true, 'secondsinches'],
|
||||
['§', '§', true, 'sectionsign'],
|
||||
['¶', '¶', true, 'paragraphsign'],
|
||||
['ß', 'ß', true, 'sharpsesszed'],
|
||||
// Quotations.
|
||||
['‹', '‹', true, 'singleleftpointinganglequotationmark'],
|
||||
['›', '›', true, 'singlerightpointinganglequotationmark'],
|
||||
['«', '«', true, 'leftpointingguillemet'],
|
||||
['»', '»', true, 'rightpointingguillemet'],
|
||||
['‘', '‘', true, 'leftsinglequotationmark'],
|
||||
['’', '’', true, 'rightsinglequotationmark'],
|
||||
['“', '“', true, 'leftdoublequotationmark'],
|
||||
['”', '”', true, 'rightdoublequotationmark'],
|
||||
['‚', '‚', true, 'singlelow9quotationmark'],
|
||||
['„', '„', true, 'doublelow9quotationmark'],
|
||||
['<', '<', true, 'lessthansign'],
|
||||
['>', '>', true, 'greaterthansign'],
|
||||
['≤', '≤', true, 'lessthanorequalto'],
|
||||
['≥', '≥', true, 'greaterthanorequalto'],
|
||||
['–', '–', true, 'endash'],
|
||||
['—', '—', true, 'emdash'],
|
||||
['¯', '¯', true, 'macron'],
|
||||
['‾', '‾', true, 'overline'],
|
||||
['¤', '¤', true, 'currencysign'],
|
||||
['¦', '¦', true, 'brokenbar'],
|
||||
['¨', '¨', true, 'diaeresis'],
|
||||
['¡', '¡', true, 'invertedexclamationmark'],
|
||||
['¿', '¿', true, 'turnedquestionmark'],
|
||||
['ˆ', 'ˆ', true, 'circumflexaccent'],
|
||||
['˜', '˜', true, 'smalltilde'],
|
||||
['°', '°', true, 'degreesign'],
|
||||
['−', '−', true, 'minussign'],
|
||||
['±', '±', true, 'plusminussign'],
|
||||
['÷', '÷', true, 'divisionsign'],
|
||||
['⁄', '⁄', true, 'fractionslash'],
|
||||
['×', '×', true, 'multiplicationsign'],
|
||||
['¹', '¹', true, 'superscriptone'],
|
||||
['²', '²', true, 'superscripttwo'],
|
||||
['³', '³', true, 'superscriptthree'],
|
||||
['¼', '¼', true, 'fractiononequarter'],
|
||||
['½', '½', true, 'fractiononehalf'],
|
||||
['¾', '¾', true, 'fractionthreequarters'],
|
||||
['‹', '‹', true, 'singleleftpointinganglequotationmark'],
|
||||
['›', '›', true, 'singlerightpointinganglequotationmark'],
|
||||
['«', '«', true, 'leftpointingguillemet'],
|
||||
['»', '»', true, 'rightpointingguillemet'],
|
||||
['‘', '‘', true, 'leftsinglequotationmark'],
|
||||
['’', '’', true, 'rightsinglequotationmark'],
|
||||
['“', '“', true, 'leftdoublequotationmark'],
|
||||
['”', '”', true, 'rightdoublequotationmark'],
|
||||
['‚', '‚', true, 'singlelow9quotationmark'],
|
||||
['„', '„', true, 'doublelow9quotationmark'],
|
||||
['<', '<', true, 'lessthansign'],
|
||||
['>', '>', true, 'greaterthansign'],
|
||||
['≤', '≤', true, 'lessthanorequalto'],
|
||||
['≥', '≥', true, 'greaterthanorequalto'],
|
||||
['–', '–', true, 'endash'],
|
||||
['—', '—', true, 'emdash'],
|
||||
['¯', '¯', true, 'macron'],
|
||||
['‾', '‾', true, 'overline'],
|
||||
['¤', '¤', true, 'currencysign'],
|
||||
['¦', '¦', true, 'brokenbar'],
|
||||
['¨', '¨', true, 'diaeresis'],
|
||||
['¡', '¡', true, 'invertedexclamationmark'],
|
||||
['¿', '¿', true, 'turnedquestionmark'],
|
||||
['ˆ', 'ˆ', true, 'circumflexaccent'],
|
||||
['˜', '˜', true, 'smalltilde'],
|
||||
['°', '°', true, 'degreesign'],
|
||||
['−', '−', true, 'minussign'],
|
||||
['±', '±', true, 'plusminussign'],
|
||||
['÷', '÷', true, 'divisionsign'],
|
||||
['⁄', '⁄', true, 'fractionslash'],
|
||||
['×', '×', true, 'multiplicationsign'],
|
||||
['¹', '¹', true, 'superscriptone'],
|
||||
['²', '²', true, 'superscripttwo'],
|
||||
['³', '³', true, 'superscriptthree'],
|
||||
['¼', '¼', true, 'fractiononequarter'],
|
||||
['½', '½', true, 'fractiononehalf'],
|
||||
['¾', '¾', true, 'fractionthreequarters'],
|
||||
// Math / logical.
|
||||
['ƒ', 'ƒ', true, 'functionflorin'],
|
||||
['∫', '∫', true, 'integral'],
|
||||
['∑', '∑', true, 'narysumation'],
|
||||
['∞', '∞', true, 'infinity'],
|
||||
['√', '√', true, 'squareroot'],
|
||||
['∼', '∼', false,'similarto'],
|
||||
['≅', '≅', false,'approximatelyequalto'],
|
||||
['≈', '≈', true, 'almostequalto'],
|
||||
['≠', '≠', true, 'notequalto'],
|
||||
['≡', '≡', true, 'identicalto'],
|
||||
['∈', '∈', false,'elementof'],
|
||||
['∉', '∉', false,'notanelementof'],
|
||||
['∋', '∋', false,'containsasmember'],
|
||||
['∏', '∏', true, 'naryproduct'],
|
||||
['∧', '∧', false,'logicaland'],
|
||||
['∨', '∨', false,'logicalor'],
|
||||
['¬', '¬', true, 'notsign'],
|
||||
['∩', '∩', true, 'intersection'],
|
||||
['∪', '∪', false,'union'],
|
||||
['∂', '∂', true, 'partialdifferential'],
|
||||
['∀', '∀', false,'forall'],
|
||||
['∃', '∃', false,'thereexists'],
|
||||
['∅', '∅', false,'diameter'],
|
||||
['∇', '∇', false,'backwarddifference'],
|
||||
['∗', '∗', false,'asteriskoperator'],
|
||||
['∝', '∝', false,'proportionalto'],
|
||||
['∠', '∠', false,'angle'],
|
||||
['ƒ', 'ƒ', true, 'functionflorin'],
|
||||
['∫', '∫', true, 'integral'],
|
||||
['∑', '∑', true, 'narysumation'],
|
||||
['∞', '∞', true, 'infinity'],
|
||||
['√', '√', true, 'squareroot'],
|
||||
['∼', '∼', false, 'similarto'],
|
||||
['≅', '≅', false, 'approximatelyequalto'],
|
||||
['≈', '≈', true, 'almostequalto'],
|
||||
['≠', '≠', true, 'notequalto'],
|
||||
['≡', '≡', true, 'identicalto'],
|
||||
['∈', '∈', false, 'elementof'],
|
||||
['∉', '∉', false, 'notanelementof'],
|
||||
['∋', '∋', false, 'containsasmember'],
|
||||
['∏', '∏', true, 'naryproduct'],
|
||||
['∧', '∧', false, 'logicaland'],
|
||||
['∨', '∨', false, 'logicalor'],
|
||||
['¬', '¬', true, 'notsign'],
|
||||
['∩', '∩', true, 'intersection'],
|
||||
['∪', '∪', false, 'union'],
|
||||
['∂', '∂', true, 'partialdifferential'],
|
||||
['∀', '∀', false, 'forall'],
|
||||
['∃', '∃', false, 'thereexists'],
|
||||
['∅', '∅', false, 'diameter'],
|
||||
['∇', '∇', false, 'backwarddifference'],
|
||||
['∗', '∗', false, 'asteriskoperator'],
|
||||
['∝', '∝', false, 'proportionalto'],
|
||||
['∠', '∠', false, 'angle'],
|
||||
// Undefined.
|
||||
['´', '´', true, 'acuteaccent'],
|
||||
['¸', '¸', true, 'cedilla'],
|
||||
['ª', 'ª', true, 'feminineordinalindicator'],
|
||||
['º', 'º', true, 'masculineordinalindicator'],
|
||||
['†', '†', true, 'dagger'],
|
||||
['‡', '‡', true, 'doubledagger'],
|
||||
['´', '´', true, 'acuteaccent'],
|
||||
['¸', '¸', true, 'cedilla'],
|
||||
['ª', 'ª', true, 'feminineordinalindicator'],
|
||||
['º', 'º', true, 'masculineordinalindicator'],
|
||||
['†', '†', true, 'dagger'],
|
||||
['‡', '‡', true, 'doubledagger'],
|
||||
// Alphabetical special chars.
|
||||
['À', 'À', true, 'agrave_caps'],
|
||||
['Á', 'Á', true, 'aacute_caps'],
|
||||
['Â', 'Â', true, 'acircumflex_caps'],
|
||||
['Ã', 'Ã', true, 'atilde_caps'],
|
||||
['Ä', 'Ä', true, 'adiaeresis_caps'],
|
||||
['Å', 'Å', true, 'aringabove_caps'],
|
||||
['Ā', 'Ā', true, 'amacron_caps'],
|
||||
['Æ', 'Æ', true, 'ligatureae_caps'],
|
||||
['Ç', 'Ç', true, 'ccedilla_caps'],
|
||||
['È', 'È', true, 'egrave_caps'],
|
||||
['É', 'É', true, 'eacute_caps'],
|
||||
['Ê', 'Ê', true, 'ecircumflex_caps'],
|
||||
['Ë', 'Ë', true, 'ediaeresis_caps'],
|
||||
['Ē', 'Ē', true, 'emacron_caps'],
|
||||
['Ì', 'Ì', true, 'igrave_caps'],
|
||||
['Í', 'Í', true, 'iacute_caps'],
|
||||
['Î', 'Î', true, 'icircumflex_caps'],
|
||||
['Ï', 'Ï', true, 'idiaeresis_caps'],
|
||||
['Ī', 'Ī', true, 'imacron_caps'],
|
||||
['Ð', 'Ð', true, 'eth_caps'],
|
||||
['Ñ', 'Ñ', true, 'ntilde_caps'],
|
||||
['Ò', 'Ò', true, 'ograve_caps'],
|
||||
['Ó', 'Ó', true, 'oacute_caps'],
|
||||
['Ô', 'Ô', true, 'ocircumflex_caps'],
|
||||
['Õ', 'Õ', true, 'otilde_caps'],
|
||||
['Ö', 'Ö', true, 'odiaeresis_caps'],
|
||||
['Ø', 'Ø', true, 'oslash_caps'],
|
||||
['Ō', 'Ō', true, 'omacron_caps'],
|
||||
['Œ', 'Œ', true, 'ligatureoe_caps'],
|
||||
['Š', 'Š', true, 'scaron_caps'],
|
||||
['Ù', 'Ù', true, 'ugrave_caps'],
|
||||
['Ú', 'Ú', true, 'uacute_caps'],
|
||||
['Û', 'Û', true, 'ucircumflex_caps'],
|
||||
['Ü', 'Ü', true, 'udiaeresis_caps'],
|
||||
['Ū', 'Ū', true, 'umacron_caps'],
|
||||
['Ý', 'Ý', true, 'yacute_caps'],
|
||||
['Ÿ', 'Ÿ', true, 'ydiaeresis_caps'],
|
||||
['Þ', 'Þ', true, 'thorn_caps'],
|
||||
['à', 'à', true, 'agrave'],
|
||||
['á', 'á', true, 'aacute'],
|
||||
['â', 'â', true, 'acircumflex'],
|
||||
['ã', 'ã', true, 'atilde'],
|
||||
['ä', 'ä', true, 'adiaeresis'],
|
||||
['å', 'å', true, 'aringabove'],
|
||||
['ā', 'ā', true, 'amacron'],
|
||||
['æ', 'æ', true, 'ligatureae'],
|
||||
['ç', 'ç', true, 'ccedilla'],
|
||||
['è', 'è', true, 'egrave'],
|
||||
['é', 'é', true, 'eacute'],
|
||||
['ê', 'ê', true, 'ecircumflex'],
|
||||
['ë', 'ë', true, 'ediaeresis'],
|
||||
['ē', 'ē', true, 'emacron'],
|
||||
['ì', 'ì', true, 'igrave'],
|
||||
['í', 'í', true, 'iacute'],
|
||||
['î', 'î', true, 'icircumflex'],
|
||||
['ï', 'ï', true, 'idiaeresis'],
|
||||
['ī', 'ī', true, 'imacron'],
|
||||
['ð', 'ð', true, 'eth'],
|
||||
['ñ', 'ñ', true, 'ntilde'],
|
||||
['ò', 'ò', true, 'ograve'],
|
||||
['ó', 'ó', true, 'oacute'],
|
||||
['ô', 'ô', true, 'ocircumflex'],
|
||||
['õ', 'õ', true, 'otilde'],
|
||||
['ö', 'ö', true, 'odiaeresis'],
|
||||
['ø', 'ø', true, 'oslash'],
|
||||
['ō', 'ō', true, 'omacron'],
|
||||
['œ', 'œ', true, 'ligatureoe'],
|
||||
['š', 'š', true, 'scaron'],
|
||||
['ù', 'ù', true, 'ugrave'],
|
||||
['ú', 'ú', true, 'uacute'],
|
||||
['û', 'û', true, 'ucircumflex'],
|
||||
['ü', 'ü', true, 'udiaeresis'],
|
||||
['ū', 'ū', true, 'umacron'],
|
||||
['ý', 'ý', true, 'yacute'],
|
||||
['þ', 'þ', true, 'thorn'],
|
||||
['ÿ', 'ÿ', true, 'ydiaeresis'],
|
||||
['Α', 'Α', true, 'alpha_caps'],
|
||||
['Β', 'Β', true, 'beta_caps'],
|
||||
['Γ', 'Γ', true, 'gamma_caps'],
|
||||
['Δ', 'Δ', true, 'delta_caps'],
|
||||
['Ε', 'Ε', true, 'epsilon_caps'],
|
||||
['Ζ', 'Ζ', true, 'zeta_caps'],
|
||||
['Η', 'Η', true, 'eta_caps'],
|
||||
['Θ', 'Θ', true, 'theta_caps'],
|
||||
['Ι', 'Ι', true, 'iota_caps'],
|
||||
['Κ', 'Κ', true, 'kappa_caps'],
|
||||
['Λ', 'Λ', true, 'lambda_caps'],
|
||||
['Μ', 'Μ', true, 'mu_caps'],
|
||||
['Ν', 'Ν', true, 'nu_caps'],
|
||||
['Ξ', 'Ξ', true, 'xi_caps'],
|
||||
['Ο', 'Ο', true, 'omicron_caps'],
|
||||
['Π', 'Π', true, 'pi_caps'],
|
||||
['Ρ', 'Ρ', true, 'rho_caps'],
|
||||
['Σ', 'Σ', true, 'sigma_caps'],
|
||||
['Τ', 'Τ', true, 'tau_caps'],
|
||||
['Υ', 'Υ', true, 'upsilon_caps'],
|
||||
['Φ', 'Φ', true, 'phi_caps'],
|
||||
['Χ', 'Χ', true, 'chi_caps'],
|
||||
['Ψ', 'Ψ', true, 'psi_caps'],
|
||||
['Ω', 'Ω', true, 'omega_caps'],
|
||||
['α', 'α', true, 'alpha'],
|
||||
['β', 'β', true, 'beta'],
|
||||
['γ', 'γ', true, 'gamma'],
|
||||
['δ', 'δ', true, 'delta'],
|
||||
['ε', 'ε', true, 'epsilon'],
|
||||
['ζ', 'ζ', true, 'zeta'],
|
||||
['η', 'η', true, 'eta'],
|
||||
['θ', 'θ', true, 'theta'],
|
||||
['ι', 'ι', true, 'iota'],
|
||||
['κ', 'κ', true, 'kappa'],
|
||||
['λ', 'λ', true, 'lambda'],
|
||||
['μ', 'μ', true, 'mu'],
|
||||
['ν', 'ν', true, 'nu'],
|
||||
['ξ', 'ξ', true, 'xi'],
|
||||
['ο', 'ο', true, 'omicron'],
|
||||
['π', 'π', true, 'pi'],
|
||||
['ρ', 'ρ', true, 'rho'],
|
||||
['ς', 'ς', true, 'finalsigma'],
|
||||
['σ', 'σ', true, 'sigma'],
|
||||
['τ', 'τ', true, 'tau'],
|
||||
['υ', 'υ', true, 'upsilon'],
|
||||
['φ', 'φ', true, 'phi'],
|
||||
['χ', 'χ', true, 'chi'],
|
||||
['ψ', 'ψ', true, 'psi'],
|
||||
['ω', 'ω', true, 'omega'],
|
||||
['À', 'À', true, 'agrave_caps'],
|
||||
['Á', 'Á', true, 'aacute_caps'],
|
||||
['Â', 'Â', true, 'acircumflex_caps'],
|
||||
['Ã', 'Ã', true, 'atilde_caps'],
|
||||
['Ä', 'Ä', true, 'adiaeresis_caps'],
|
||||
['Å', 'Å', true, 'aringabove_caps'],
|
||||
['Ā', 'Ā', true, 'amacron_caps'],
|
||||
['Æ', 'Æ', true, 'ligatureae_caps'],
|
||||
['Ç', 'Ç', true, 'ccedilla_caps'],
|
||||
['È', 'È', true, 'egrave_caps'],
|
||||
['É', 'É', true, 'eacute_caps'],
|
||||
['Ê', 'Ê', true, 'ecircumflex_caps'],
|
||||
['Ë', 'Ë', true, 'ediaeresis_caps'],
|
||||
['Ē', 'Ē', true, 'emacron_caps'],
|
||||
['Ì', 'Ì', true, 'igrave_caps'],
|
||||
['Í', 'Í', true, 'iacute_caps'],
|
||||
['Î', 'Î', true, 'icircumflex_caps'],
|
||||
['Ï', 'Ï', true, 'idiaeresis_caps'],
|
||||
['Ī', 'Ī', true, 'imacron_caps'],
|
||||
['Ð', 'Ð', true, 'eth_caps'],
|
||||
['Ñ', 'Ñ', true, 'ntilde_caps'],
|
||||
['Ò', 'Ò', true, 'ograve_caps'],
|
||||
['Ó', 'Ó', true, 'oacute_caps'],
|
||||
['Ô', 'Ô', true, 'ocircumflex_caps'],
|
||||
['Õ', 'Õ', true, 'otilde_caps'],
|
||||
['Ö', 'Ö', true, 'odiaeresis_caps'],
|
||||
['Ø', 'Ø', true, 'oslash_caps'],
|
||||
['Ō', 'Ō', true, 'omacron_caps'],
|
||||
['Œ', 'Œ', true, 'ligatureoe_caps'],
|
||||
['Š', 'Š', true, 'scaron_caps'],
|
||||
['Ù', 'Ù', true, 'ugrave_caps'],
|
||||
['Ú', 'Ú', true, 'uacute_caps'],
|
||||
['Û', 'Û', true, 'ucircumflex_caps'],
|
||||
['Ü', 'Ü', true, 'udiaeresis_caps'],
|
||||
['Ū', 'Ū', true, 'umacron_caps'],
|
||||
['Ý', 'Ý', true, 'yacute_caps'],
|
||||
['Ÿ', 'Ÿ', true, 'ydiaeresis_caps'],
|
||||
['Þ', 'Þ', true, 'thorn_caps'],
|
||||
['à', 'à', true, 'agrave'],
|
||||
['á', 'á', true, 'aacute'],
|
||||
['â', 'â', true, 'acircumflex'],
|
||||
['ã', 'ã', true, 'atilde'],
|
||||
['ä', 'ä', true, 'adiaeresis'],
|
||||
['å', 'å', true, 'aringabove'],
|
||||
['ā', 'ā', true, 'amacron'],
|
||||
['æ', 'æ', true, 'ligatureae'],
|
||||
['ç', 'ç', true, 'ccedilla'],
|
||||
['è', 'è', true, 'egrave'],
|
||||
['é', 'é', true, 'eacute'],
|
||||
['ê', 'ê', true, 'ecircumflex'],
|
||||
['ë', 'ë', true, 'ediaeresis'],
|
||||
['ē', 'ē', true, 'emacron'],
|
||||
['ì', 'ì', true, 'igrave'],
|
||||
['í', 'í', true, 'iacute'],
|
||||
['î', 'î', true, 'icircumflex'],
|
||||
['ï', 'ï', true, 'idiaeresis'],
|
||||
['ī', 'ī', true, 'imacron'],
|
||||
['ð', 'ð', true, 'eth'],
|
||||
['ñ', 'ñ', true, 'ntilde'],
|
||||
['ò', 'ò', true, 'ograve'],
|
||||
['ó', 'ó', true, 'oacute'],
|
||||
['ô', 'ô', true, 'ocircumflex'],
|
||||
['õ', 'õ', true, 'otilde'],
|
||||
['ö', 'ö', true, 'odiaeresis'],
|
||||
['ø', 'ø', true, 'oslash'],
|
||||
['ō', 'ō', true, 'omacron'],
|
||||
['œ', 'œ', true, 'ligatureoe'],
|
||||
['š', 'š', true, 'scaron'],
|
||||
['ù', 'ù', true, 'ugrave'],
|
||||
['ú', 'ú', true, 'uacute'],
|
||||
['û', 'û', true, 'ucircumflex'],
|
||||
['ü', 'ü', true, 'udiaeresis'],
|
||||
['ū', 'ū', true, 'umacron'],
|
||||
['ý', 'ý', true, 'yacute'],
|
||||
['þ', 'þ', true, 'thorn'],
|
||||
['ÿ', 'ÿ', true, 'ydiaeresis'],
|
||||
['Α', 'Α', true, 'alpha_caps'],
|
||||
['Β', 'Β', true, 'beta_caps'],
|
||||
['Γ', 'Γ', true, 'gamma_caps'],
|
||||
['Δ', 'Δ', true, 'delta_caps'],
|
||||
['Ε', 'Ε', true, 'epsilon_caps'],
|
||||
['Ζ', 'Ζ', true, 'zeta_caps'],
|
||||
['Η', 'Η', true, 'eta_caps'],
|
||||
['Θ', 'Θ', true, 'theta_caps'],
|
||||
['Ι', 'Ι', true, 'iota_caps'],
|
||||
['Κ', 'Κ', true, 'kappa_caps'],
|
||||
['Λ', 'Λ', true, 'lambda_caps'],
|
||||
['Μ', 'Μ', true, 'mu_caps'],
|
||||
['Ν', 'Ν', true, 'nu_caps'],
|
||||
['Ξ', 'Ξ', true, 'xi_caps'],
|
||||
['Ο', 'Ο', true, 'omicron_caps'],
|
||||
['Π', 'Π', true, 'pi_caps'],
|
||||
['Ρ', 'Ρ', true, 'rho_caps'],
|
||||
['Σ', 'Σ', true, 'sigma_caps'],
|
||||
['Τ', 'Τ', true, 'tau_caps'],
|
||||
['Υ', 'Υ', true, 'upsilon_caps'],
|
||||
['Φ', 'Φ', true, 'phi_caps'],
|
||||
['Χ', 'Χ', true, 'chi_caps'],
|
||||
['Ψ', 'Ψ', true, 'psi_caps'],
|
||||
['Ω', 'Ω', true, 'omega_caps'],
|
||||
['α', 'α', true, 'alpha'],
|
||||
['β', 'β', true, 'beta'],
|
||||
['γ', 'γ', true, 'gamma'],
|
||||
['δ', 'δ', true, 'delta'],
|
||||
['ε', 'ε', true, 'epsilon'],
|
||||
['ζ', 'ζ', true, 'zeta'],
|
||||
['η', 'η', true, 'eta'],
|
||||
['θ', 'θ', true, 'theta'],
|
||||
['ι', 'ι', true, 'iota'],
|
||||
['κ', 'κ', true, 'kappa'],
|
||||
['λ', 'λ', true, 'lambda'],
|
||||
['μ', 'μ', true, 'mu'],
|
||||
['ν', 'ν', true, 'nu'],
|
||||
['ξ', 'ξ', true, 'xi'],
|
||||
['ο', 'ο', true, 'omicron'],
|
||||
['π', 'π', true, 'pi'],
|
||||
['ρ', 'ρ', true, 'rho'],
|
||||
['ς', 'ς', true, 'finalsigma'],
|
||||
['σ', 'σ', true, 'sigma'],
|
||||
['τ', 'τ', true, 'tau'],
|
||||
['υ', 'υ', true, 'upsilon'],
|
||||
['φ', 'φ', true, 'phi'],
|
||||
['χ', 'χ', true, 'chi'],
|
||||
['ψ', 'ψ', true, 'psi'],
|
||||
['ω', 'ω', true, 'omega'],
|
||||
// Symbols.
|
||||
['ℵ', 'ℵ', false,'alefsymbol'],
|
||||
['ϖ', 'ϖ', false,'pisymbol'],
|
||||
['ℜ', 'ℜ', false,'realpartsymbol'],
|
||||
['ϑ','ϑ', false,'thetasymbol'],
|
||||
['ϒ', 'ϒ', false,'upsilonhooksymbol'],
|
||||
['℘', '℘', false,'weierstrassp'],
|
||||
['ℑ', 'ℑ', false,'imaginarypart'],
|
||||
['ℵ', 'ℵ', false, 'alefsymbol'],
|
||||
['ϖ', 'ϖ', false, 'pisymbol'],
|
||||
['ℜ', 'ℜ', false, 'realpartsymbol'],
|
||||
['ϑ', 'ϑ', false, 'thetasymbol'],
|
||||
['ϒ', 'ϒ', false, 'upsilonhooksymbol'],
|
||||
['℘', '℘', false, 'weierstrassp'],
|
||||
['ℑ', 'ℑ', false, 'imaginarypart'],
|
||||
// Arrows.
|
||||
['←', '←', true, 'leftwardsarrow'],
|
||||
['↑', '↑', true, 'upwardsarrow'],
|
||||
['→', '→', true, 'rightwardsarrow'],
|
||||
['↓', '↓', true, 'downwardsarrow'],
|
||||
['↔', '↔', true, 'leftrightarrow'],
|
||||
['↵', '↵', false,'carriagereturn'],
|
||||
['⇐', '⇐', false,'leftwardsdoublearrow'],
|
||||
['⇑', '⇑', false,'upwardsdoublearrow'],
|
||||
['⇒', '⇒', false,'rightwardsdoublearrow'],
|
||||
['⇓', '⇓', false,'downwardsdoublearrow'],
|
||||
['⇔', '⇔', false,'leftrightdoublearrow'],
|
||||
['∴', '∴', false,'therefore'],
|
||||
['⊂', '⊂', false,'subsetof'],
|
||||
['⊃', '⊃', false,'supersetof'],
|
||||
['⊄', '⊄', false,'notasubsetof'],
|
||||
['⊆', '⊆', false,'subsetoforequalto'],
|
||||
['⊇', '⊇', false,'supersetoforequalto'],
|
||||
['⊕', '⊕', false,'circledplus'],
|
||||
['⊗', '⊗', false,'circledtimes'],
|
||||
['⊥', '⊥', false,'perpendicular'],
|
||||
['⋅', '⋅', false,'dotoperator'],
|
||||
['⌈', '⌈', false,'leftceiling'],
|
||||
['⌉', '⌉', false,'rightceiling'],
|
||||
['⌊', '⌊', false,'leftfloor'],
|
||||
['⌋', '⌋', false,'rightfloor'],
|
||||
['⟨', '〈', false,'leftpointinganglebracket'],
|
||||
['⟩', '〉', false,'rightpointinganglebracket'],
|
||||
['◊', '◊', true, 'lozenge'],
|
||||
['♠', '♠', true, 'blackspadesuit'],
|
||||
['♣', '♣', true, 'blackclubsuit'],
|
||||
['♥', '♥', true, 'blackheartsuit'],
|
||||
['♦', '♦', true, 'blackdiamondsuit'],
|
||||
[' ', ' ', false,'enspace'],
|
||||
[' ', ' ', false,'emspace'],
|
||||
[' ', ' ', false,'thinspace'],
|
||||
['‌', '‌', false,'zerowidthnonjoiner'],
|
||||
['‍', '‍', false,'zerowidthjoiner'],
|
||||
['‎', '‎', false,'lefttorightmark'],
|
||||
['‏', '‏', false,'righttoleftmark'],
|
||||
['­', '­', false,'softhyphen']
|
||||
['←', '←', true, 'leftwardsarrow'],
|
||||
['↑', '↑', true, 'upwardsarrow'],
|
||||
['→', '→', true, 'rightwardsarrow'],
|
||||
['↓', '↓', true, 'downwardsarrow'],
|
||||
['↔', '↔', true, 'leftrightarrow'],
|
||||
['↵', '↵', false, 'carriagereturn'],
|
||||
['⇐', '⇐', false, 'leftwardsdoublearrow'],
|
||||
['⇑', '⇑', false, 'upwardsdoublearrow'],
|
||||
['⇒', '⇒', false, 'rightwardsdoublearrow'],
|
||||
['⇓', '⇓', false, 'downwardsdoublearrow'],
|
||||
['⇔', '⇔', false, 'leftrightdoublearrow'],
|
||||
['∴', '∴', false, 'therefore'],
|
||||
['⊂', '⊂', false, 'subsetof'],
|
||||
['⊃', '⊃', false, 'supersetof'],
|
||||
['⊄', '⊄', false, 'notasubsetof'],
|
||||
['⊆', '⊆', false, 'subsetoforequalto'],
|
||||
['⊇', '⊇', false, 'supersetoforequalto'],
|
||||
['⊕', '⊕', false, 'circledplus'],
|
||||
['⊗', '⊗', false, 'circledtimes'],
|
||||
['⊥', '⊥', false, 'perpendicular'],
|
||||
['⋅', '⋅', false, 'dotoperator'],
|
||||
['⌈', '⌈', false, 'leftceiling'],
|
||||
['⌉', '⌉', false, 'rightceiling'],
|
||||
['⌊', '⌊', false, 'leftfloor'],
|
||||
['⌋', '⌋', false, 'rightfloor'],
|
||||
['⟨', '〈', false, 'leftpointinganglebracket'],
|
||||
['⟩', '〉', false, 'rightpointinganglebracket'],
|
||||
['◊', '◊', true, 'lozenge'],
|
||||
['♠', '♠', true, 'blackspadesuit'],
|
||||
['♣', '♣', true, 'blackclubsuit'],
|
||||
['♥', '♥', true, 'blackheartsuit'],
|
||||
['♦', '♦', true, 'blackdiamondsuit'],
|
||||
[' ', ' ', false, 'enspace'],
|
||||
[' ', ' ', false, 'emspace'],
|
||||
[' ', ' ', false, 'thinspace'],
|
||||
['‌', '‌', false, 'zerowidthnonjoiner'],
|
||||
['‍', '‍', false, 'zerowidthjoiner'],
|
||||
['‎', '‎', false, 'lefttorightmark'],
|
||||
['‏', '‏', false, 'righttoleftmark'],
|
||||
['­', '­', false, 'softhyphen']
|
||||
];
|
||||
|
||||
/**
|
||||
|
||||
Vendored
+263
-263
@@ -45,277 +45,277 @@ var COMPONENTNAME = 'atto_charmap',
|
||||
* @type {Array}
|
||||
*/
|
||||
CHARMAP = [
|
||||
[' ', ' ', true, 'nobreakspace'],
|
||||
['&', '&', true, 'ampersand'],
|
||||
['"', '"', true, 'quotationmark'],
|
||||
['‽', '‽', true, 'interrobang'],
|
||||
[' ', ' ', true, 'nobreakspace'],
|
||||
['&', '&', true, 'ampersand'],
|
||||
['"', '"', true, 'quotationmark'],
|
||||
['‽', '‽', true, 'interrobang'],
|
||||
// Finance.
|
||||
['¢', '¢', true, 'centsign'],
|
||||
['€', '€', true, 'eurosign'],
|
||||
['£', '£', true, 'poundsign'],
|
||||
['¥', '¥', true, 'yensign'],
|
||||
['¢', '¢', true, 'centsign'],
|
||||
['€', '€', true, 'eurosign'],
|
||||
['£', '£', true, 'poundsign'],
|
||||
['¥', '¥', true, 'yensign'],
|
||||
// Signs.
|
||||
['©', '©', true, 'copyrightsign'],
|
||||
['®', '®', true, 'registeredsign'],
|
||||
['™', '™', true, 'trademarksign'],
|
||||
['‰', '‰', true, 'permillesign'],
|
||||
['µ', 'µ', true, 'microsign'],
|
||||
['·', '·', true, 'middledot'],
|
||||
['•', '•', true, 'bullet'],
|
||||
['…', '…', true, 'threedotleader'],
|
||||
['′', '′', true, 'minutesfeet'],
|
||||
['″', '″', true, 'secondsinches'],
|
||||
['§', '§', true, 'sectionsign'],
|
||||
['¶', '¶', true, 'paragraphsign'],
|
||||
['ß', 'ß', true, 'sharpsesszed'],
|
||||
['©', '©', true, 'copyrightsign'],
|
||||
['®', '®', true, 'registeredsign'],
|
||||
['™', '™', true, 'trademarksign'],
|
||||
['‰', '‰', true, 'permillesign'],
|
||||
['µ', 'µ', true, 'microsign'],
|
||||
['·', '·', true, 'middledot'],
|
||||
['•', '•', true, 'bullet'],
|
||||
['…', '…', true, 'threedotleader'],
|
||||
['′', '′', true, 'minutesfeet'],
|
||||
['″', '″', true, 'secondsinches'],
|
||||
['§', '§', true, 'sectionsign'],
|
||||
['¶', '¶', true, 'paragraphsign'],
|
||||
['ß', 'ß', true, 'sharpsesszed'],
|
||||
// Quotations.
|
||||
['‹', '‹', true, 'singleleftpointinganglequotationmark'],
|
||||
['›', '›', true, 'singlerightpointinganglequotationmark'],
|
||||
['«', '«', true, 'leftpointingguillemet'],
|
||||
['»', '»', true, 'rightpointingguillemet'],
|
||||
['‘', '‘', true, 'leftsinglequotationmark'],
|
||||
['’', '’', true, 'rightsinglequotationmark'],
|
||||
['“', '“', true, 'leftdoublequotationmark'],
|
||||
['”', '”', true, 'rightdoublequotationmark'],
|
||||
['‚', '‚', true, 'singlelow9quotationmark'],
|
||||
['„', '„', true, 'doublelow9quotationmark'],
|
||||
['<', '<', true, 'lessthansign'],
|
||||
['>', '>', true, 'greaterthansign'],
|
||||
['≤', '≤', true, 'lessthanorequalto'],
|
||||
['≥', '≥', true, 'greaterthanorequalto'],
|
||||
['–', '–', true, 'endash'],
|
||||
['—', '—', true, 'emdash'],
|
||||
['¯', '¯', true, 'macron'],
|
||||
['‾', '‾', true, 'overline'],
|
||||
['¤', '¤', true, 'currencysign'],
|
||||
['¦', '¦', true, 'brokenbar'],
|
||||
['¨', '¨', true, 'diaeresis'],
|
||||
['¡', '¡', true, 'invertedexclamationmark'],
|
||||
['¿', '¿', true, 'turnedquestionmark'],
|
||||
['ˆ', 'ˆ', true, 'circumflexaccent'],
|
||||
['˜', '˜', true, 'smalltilde'],
|
||||
['°', '°', true, 'degreesign'],
|
||||
['−', '−', true, 'minussign'],
|
||||
['±', '±', true, 'plusminussign'],
|
||||
['÷', '÷', true, 'divisionsign'],
|
||||
['⁄', '⁄', true, 'fractionslash'],
|
||||
['×', '×', true, 'multiplicationsign'],
|
||||
['¹', '¹', true, 'superscriptone'],
|
||||
['²', '²', true, 'superscripttwo'],
|
||||
['³', '³', true, 'superscriptthree'],
|
||||
['¼', '¼', true, 'fractiononequarter'],
|
||||
['½', '½', true, 'fractiononehalf'],
|
||||
['¾', '¾', true, 'fractionthreequarters'],
|
||||
['‹', '‹', true, 'singleleftpointinganglequotationmark'],
|
||||
['›', '›', true, 'singlerightpointinganglequotationmark'],
|
||||
['«', '«', true, 'leftpointingguillemet'],
|
||||
['»', '»', true, 'rightpointingguillemet'],
|
||||
['‘', '‘', true, 'leftsinglequotationmark'],
|
||||
['’', '’', true, 'rightsinglequotationmark'],
|
||||
['“', '“', true, 'leftdoublequotationmark'],
|
||||
['”', '”', true, 'rightdoublequotationmark'],
|
||||
['‚', '‚', true, 'singlelow9quotationmark'],
|
||||
['„', '„', true, 'doublelow9quotationmark'],
|
||||
['<', '<', true, 'lessthansign'],
|
||||
['>', '>', true, 'greaterthansign'],
|
||||
['≤', '≤', true, 'lessthanorequalto'],
|
||||
['≥', '≥', true, 'greaterthanorequalto'],
|
||||
['–', '–', true, 'endash'],
|
||||
['—', '—', true, 'emdash'],
|
||||
['¯', '¯', true, 'macron'],
|
||||
['‾', '‾', true, 'overline'],
|
||||
['¤', '¤', true, 'currencysign'],
|
||||
['¦', '¦', true, 'brokenbar'],
|
||||
['¨', '¨', true, 'diaeresis'],
|
||||
['¡', '¡', true, 'invertedexclamationmark'],
|
||||
['¿', '¿', true, 'turnedquestionmark'],
|
||||
['ˆ', 'ˆ', true, 'circumflexaccent'],
|
||||
['˜', '˜', true, 'smalltilde'],
|
||||
['°', '°', true, 'degreesign'],
|
||||
['−', '−', true, 'minussign'],
|
||||
['±', '±', true, 'plusminussign'],
|
||||
['÷', '÷', true, 'divisionsign'],
|
||||
['⁄', '⁄', true, 'fractionslash'],
|
||||
['×', '×', true, 'multiplicationsign'],
|
||||
['¹', '¹', true, 'superscriptone'],
|
||||
['²', '²', true, 'superscripttwo'],
|
||||
['³', '³', true, 'superscriptthree'],
|
||||
['¼', '¼', true, 'fractiononequarter'],
|
||||
['½', '½', true, 'fractiononehalf'],
|
||||
['¾', '¾', true, 'fractionthreequarters'],
|
||||
// Math / logical.
|
||||
['ƒ', 'ƒ', true, 'functionflorin'],
|
||||
['∫', '∫', true, 'integral'],
|
||||
['∑', '∑', true, 'narysumation'],
|
||||
['∞', '∞', true, 'infinity'],
|
||||
['√', '√', true, 'squareroot'],
|
||||
['∼', '∼', false,'similarto'],
|
||||
['≅', '≅', false,'approximatelyequalto'],
|
||||
['≈', '≈', true, 'almostequalto'],
|
||||
['≠', '≠', true, 'notequalto'],
|
||||
['≡', '≡', true, 'identicalto'],
|
||||
['∈', '∈', false,'elementof'],
|
||||
['∉', '∉', false,'notanelementof'],
|
||||
['∋', '∋', false,'containsasmember'],
|
||||
['∏', '∏', true, 'naryproduct'],
|
||||
['∧', '∧', false,'logicaland'],
|
||||
['∨', '∨', false,'logicalor'],
|
||||
['¬', '¬', true, 'notsign'],
|
||||
['∩', '∩', true, 'intersection'],
|
||||
['∪', '∪', false,'union'],
|
||||
['∂', '∂', true, 'partialdifferential'],
|
||||
['∀', '∀', false,'forall'],
|
||||
['∃', '∃', false,'thereexists'],
|
||||
['∅', '∅', false,'diameter'],
|
||||
['∇', '∇', false,'backwarddifference'],
|
||||
['∗', '∗', false,'asteriskoperator'],
|
||||
['∝', '∝', false,'proportionalto'],
|
||||
['∠', '∠', false,'angle'],
|
||||
['ƒ', 'ƒ', true, 'functionflorin'],
|
||||
['∫', '∫', true, 'integral'],
|
||||
['∑', '∑', true, 'narysumation'],
|
||||
['∞', '∞', true, 'infinity'],
|
||||
['√', '√', true, 'squareroot'],
|
||||
['∼', '∼', false, 'similarto'],
|
||||
['≅', '≅', false, 'approximatelyequalto'],
|
||||
['≈', '≈', true, 'almostequalto'],
|
||||
['≠', '≠', true, 'notequalto'],
|
||||
['≡', '≡', true, 'identicalto'],
|
||||
['∈', '∈', false, 'elementof'],
|
||||
['∉', '∉', false, 'notanelementof'],
|
||||
['∋', '∋', false, 'containsasmember'],
|
||||
['∏', '∏', true, 'naryproduct'],
|
||||
['∧', '∧', false, 'logicaland'],
|
||||
['∨', '∨', false, 'logicalor'],
|
||||
['¬', '¬', true, 'notsign'],
|
||||
['∩', '∩', true, 'intersection'],
|
||||
['∪', '∪', false, 'union'],
|
||||
['∂', '∂', true, 'partialdifferential'],
|
||||
['∀', '∀', false, 'forall'],
|
||||
['∃', '∃', false, 'thereexists'],
|
||||
['∅', '∅', false, 'diameter'],
|
||||
['∇', '∇', false, 'backwarddifference'],
|
||||
['∗', '∗', false, 'asteriskoperator'],
|
||||
['∝', '∝', false, 'proportionalto'],
|
||||
['∠', '∠', false, 'angle'],
|
||||
// Undefined.
|
||||
['´', '´', true, 'acuteaccent'],
|
||||
['¸', '¸', true, 'cedilla'],
|
||||
['ª', 'ª', true, 'feminineordinalindicator'],
|
||||
['º', 'º', true, 'masculineordinalindicator'],
|
||||
['†', '†', true, 'dagger'],
|
||||
['‡', '‡', true, 'doubledagger'],
|
||||
['´', '´', true, 'acuteaccent'],
|
||||
['¸', '¸', true, 'cedilla'],
|
||||
['ª', 'ª', true, 'feminineordinalindicator'],
|
||||
['º', 'º', true, 'masculineordinalindicator'],
|
||||
['†', '†', true, 'dagger'],
|
||||
['‡', '‡', true, 'doubledagger'],
|
||||
// Alphabetical special chars.
|
||||
['À', 'À', true, 'agrave_caps'],
|
||||
['Á', 'Á', true, 'aacute_caps'],
|
||||
['Â', 'Â', true, 'acircumflex_caps'],
|
||||
['Ã', 'Ã', true, 'atilde_caps'],
|
||||
['Ä', 'Ä', true, 'adiaeresis_caps'],
|
||||
['Å', 'Å', true, 'aringabove_caps'],
|
||||
['Ā', 'Ā', true, 'amacron_caps'],
|
||||
['Æ', 'Æ', true, 'ligatureae_caps'],
|
||||
['Ç', 'Ç', true, 'ccedilla_caps'],
|
||||
['È', 'È', true, 'egrave_caps'],
|
||||
['É', 'É', true, 'eacute_caps'],
|
||||
['Ê', 'Ê', true, 'ecircumflex_caps'],
|
||||
['Ë', 'Ë', true, 'ediaeresis_caps'],
|
||||
['Ē', 'Ē', true, 'emacron_caps'],
|
||||
['Ì', 'Ì', true, 'igrave_caps'],
|
||||
['Í', 'Í', true, 'iacute_caps'],
|
||||
['Î', 'Î', true, 'icircumflex_caps'],
|
||||
['Ï', 'Ï', true, 'idiaeresis_caps'],
|
||||
['Ī', 'Ī', true, 'imacron_caps'],
|
||||
['Ð', 'Ð', true, 'eth_caps'],
|
||||
['Ñ', 'Ñ', true, 'ntilde_caps'],
|
||||
['Ò', 'Ò', true, 'ograve_caps'],
|
||||
['Ó', 'Ó', true, 'oacute_caps'],
|
||||
['Ô', 'Ô', true, 'ocircumflex_caps'],
|
||||
['Õ', 'Õ', true, 'otilde_caps'],
|
||||
['Ö', 'Ö', true, 'odiaeresis_caps'],
|
||||
['Ø', 'Ø', true, 'oslash_caps'],
|
||||
['Ō', 'Ō', true, 'omacron_caps'],
|
||||
['Œ', 'Œ', true, 'ligatureoe_caps'],
|
||||
['Š', 'Š', true, 'scaron_caps'],
|
||||
['Ù', 'Ù', true, 'ugrave_caps'],
|
||||
['Ú', 'Ú', true, 'uacute_caps'],
|
||||
['Û', 'Û', true, 'ucircumflex_caps'],
|
||||
['Ü', 'Ü', true, 'udiaeresis_caps'],
|
||||
['Ū', 'Ū', true, 'umacron_caps'],
|
||||
['Ý', 'Ý', true, 'yacute_caps'],
|
||||
['Ÿ', 'Ÿ', true, 'ydiaeresis_caps'],
|
||||
['Þ', 'Þ', true, 'thorn_caps'],
|
||||
['à', 'à', true, 'agrave'],
|
||||
['á', 'á', true, 'aacute'],
|
||||
['â', 'â', true, 'acircumflex'],
|
||||
['ã', 'ã', true, 'atilde'],
|
||||
['ä', 'ä', true, 'adiaeresis'],
|
||||
['å', 'å', true, 'aringabove'],
|
||||
['ā', 'ā', true, 'amacron'],
|
||||
['æ', 'æ', true, 'ligatureae'],
|
||||
['ç', 'ç', true, 'ccedilla'],
|
||||
['è', 'è', true, 'egrave'],
|
||||
['é', 'é', true, 'eacute'],
|
||||
['ê', 'ê', true, 'ecircumflex'],
|
||||
['ë', 'ë', true, 'ediaeresis'],
|
||||
['ē', 'ē', true, 'emacron'],
|
||||
['ì', 'ì', true, 'igrave'],
|
||||
['í', 'í', true, 'iacute'],
|
||||
['î', 'î', true, 'icircumflex'],
|
||||
['ï', 'ï', true, 'idiaeresis'],
|
||||
['ī', 'ī', true, 'imacron'],
|
||||
['ð', 'ð', true, 'eth'],
|
||||
['ñ', 'ñ', true, 'ntilde'],
|
||||
['ò', 'ò', true, 'ograve'],
|
||||
['ó', 'ó', true, 'oacute'],
|
||||
['ô', 'ô', true, 'ocircumflex'],
|
||||
['õ', 'õ', true, 'otilde'],
|
||||
['ö', 'ö', true, 'odiaeresis'],
|
||||
['ø', 'ø', true, 'oslash'],
|
||||
['ō', 'ō', true, 'omacron'],
|
||||
['œ', 'œ', true, 'ligatureoe'],
|
||||
['š', 'š', true, 'scaron'],
|
||||
['ù', 'ù', true, 'ugrave'],
|
||||
['ú', 'ú', true, 'uacute'],
|
||||
['û', 'û', true, 'ucircumflex'],
|
||||
['ü', 'ü', true, 'udiaeresis'],
|
||||
['ū', 'ū', true, 'umacron'],
|
||||
['ý', 'ý', true, 'yacute'],
|
||||
['þ', 'þ', true, 'thorn'],
|
||||
['ÿ', 'ÿ', true, 'ydiaeresis'],
|
||||
['Α', 'Α', true, 'alpha_caps'],
|
||||
['Β', 'Β', true, 'beta_caps'],
|
||||
['Γ', 'Γ', true, 'gamma_caps'],
|
||||
['Δ', 'Δ', true, 'delta_caps'],
|
||||
['Ε', 'Ε', true, 'epsilon_caps'],
|
||||
['Ζ', 'Ζ', true, 'zeta_caps'],
|
||||
['Η', 'Η', true, 'eta_caps'],
|
||||
['Θ', 'Θ', true, 'theta_caps'],
|
||||
['Ι', 'Ι', true, 'iota_caps'],
|
||||
['Κ', 'Κ', true, 'kappa_caps'],
|
||||
['Λ', 'Λ', true, 'lambda_caps'],
|
||||
['Μ', 'Μ', true, 'mu_caps'],
|
||||
['Ν', 'Ν', true, 'nu_caps'],
|
||||
['Ξ', 'Ξ', true, 'xi_caps'],
|
||||
['Ο', 'Ο', true, 'omicron_caps'],
|
||||
['Π', 'Π', true, 'pi_caps'],
|
||||
['Ρ', 'Ρ', true, 'rho_caps'],
|
||||
['Σ', 'Σ', true, 'sigma_caps'],
|
||||
['Τ', 'Τ', true, 'tau_caps'],
|
||||
['Υ', 'Υ', true, 'upsilon_caps'],
|
||||
['Φ', 'Φ', true, 'phi_caps'],
|
||||
['Χ', 'Χ', true, 'chi_caps'],
|
||||
['Ψ', 'Ψ', true, 'psi_caps'],
|
||||
['Ω', 'Ω', true, 'omega_caps'],
|
||||
['α', 'α', true, 'alpha'],
|
||||
['β', 'β', true, 'beta'],
|
||||
['γ', 'γ', true, 'gamma'],
|
||||
['δ', 'δ', true, 'delta'],
|
||||
['ε', 'ε', true, 'epsilon'],
|
||||
['ζ', 'ζ', true, 'zeta'],
|
||||
['η', 'η', true, 'eta'],
|
||||
['θ', 'θ', true, 'theta'],
|
||||
['ι', 'ι', true, 'iota'],
|
||||
['κ', 'κ', true, 'kappa'],
|
||||
['λ', 'λ', true, 'lambda'],
|
||||
['μ', 'μ', true, 'mu'],
|
||||
['ν', 'ν', true, 'nu'],
|
||||
['ξ', 'ξ', true, 'xi'],
|
||||
['ο', 'ο', true, 'omicron'],
|
||||
['π', 'π', true, 'pi'],
|
||||
['ρ', 'ρ', true, 'rho'],
|
||||
['ς', 'ς', true, 'finalsigma'],
|
||||
['σ', 'σ', true, 'sigma'],
|
||||
['τ', 'τ', true, 'tau'],
|
||||
['υ', 'υ', true, 'upsilon'],
|
||||
['φ', 'φ', true, 'phi'],
|
||||
['χ', 'χ', true, 'chi'],
|
||||
['ψ', 'ψ', true, 'psi'],
|
||||
['ω', 'ω', true, 'omega'],
|
||||
['À', 'À', true, 'agrave_caps'],
|
||||
['Á', 'Á', true, 'aacute_caps'],
|
||||
['Â', 'Â', true, 'acircumflex_caps'],
|
||||
['Ã', 'Ã', true, 'atilde_caps'],
|
||||
['Ä', 'Ä', true, 'adiaeresis_caps'],
|
||||
['Å', 'Å', true, 'aringabove_caps'],
|
||||
['Ā', 'Ā', true, 'amacron_caps'],
|
||||
['Æ', 'Æ', true, 'ligatureae_caps'],
|
||||
['Ç', 'Ç', true, 'ccedilla_caps'],
|
||||
['È', 'È', true, 'egrave_caps'],
|
||||
['É', 'É', true, 'eacute_caps'],
|
||||
['Ê', 'Ê', true, 'ecircumflex_caps'],
|
||||
['Ë', 'Ë', true, 'ediaeresis_caps'],
|
||||
['Ē', 'Ē', true, 'emacron_caps'],
|
||||
['Ì', 'Ì', true, 'igrave_caps'],
|
||||
['Í', 'Í', true, 'iacute_caps'],
|
||||
['Î', 'Î', true, 'icircumflex_caps'],
|
||||
['Ï', 'Ï', true, 'idiaeresis_caps'],
|
||||
['Ī', 'Ī', true, 'imacron_caps'],
|
||||
['Ð', 'Ð', true, 'eth_caps'],
|
||||
['Ñ', 'Ñ', true, 'ntilde_caps'],
|
||||
['Ò', 'Ò', true, 'ograve_caps'],
|
||||
['Ó', 'Ó', true, 'oacute_caps'],
|
||||
['Ô', 'Ô', true, 'ocircumflex_caps'],
|
||||
['Õ', 'Õ', true, 'otilde_caps'],
|
||||
['Ö', 'Ö', true, 'odiaeresis_caps'],
|
||||
['Ø', 'Ø', true, 'oslash_caps'],
|
||||
['Ō', 'Ō', true, 'omacron_caps'],
|
||||
['Œ', 'Œ', true, 'ligatureoe_caps'],
|
||||
['Š', 'Š', true, 'scaron_caps'],
|
||||
['Ù', 'Ù', true, 'ugrave_caps'],
|
||||
['Ú', 'Ú', true, 'uacute_caps'],
|
||||
['Û', 'Û', true, 'ucircumflex_caps'],
|
||||
['Ü', 'Ü', true, 'udiaeresis_caps'],
|
||||
['Ū', 'Ū', true, 'umacron_caps'],
|
||||
['Ý', 'Ý', true, 'yacute_caps'],
|
||||
['Ÿ', 'Ÿ', true, 'ydiaeresis_caps'],
|
||||
['Þ', 'Þ', true, 'thorn_caps'],
|
||||
['à', 'à', true, 'agrave'],
|
||||
['á', 'á', true, 'aacute'],
|
||||
['â', 'â', true, 'acircumflex'],
|
||||
['ã', 'ã', true, 'atilde'],
|
||||
['ä', 'ä', true, 'adiaeresis'],
|
||||
['å', 'å', true, 'aringabove'],
|
||||
['ā', 'ā', true, 'amacron'],
|
||||
['æ', 'æ', true, 'ligatureae'],
|
||||
['ç', 'ç', true, 'ccedilla'],
|
||||
['è', 'è', true, 'egrave'],
|
||||
['é', 'é', true, 'eacute'],
|
||||
['ê', 'ê', true, 'ecircumflex'],
|
||||
['ë', 'ë', true, 'ediaeresis'],
|
||||
['ē', 'ē', true, 'emacron'],
|
||||
['ì', 'ì', true, 'igrave'],
|
||||
['í', 'í', true, 'iacute'],
|
||||
['î', 'î', true, 'icircumflex'],
|
||||
['ï', 'ï', true, 'idiaeresis'],
|
||||
['ī', 'ī', true, 'imacron'],
|
||||
['ð', 'ð', true, 'eth'],
|
||||
['ñ', 'ñ', true, 'ntilde'],
|
||||
['ò', 'ò', true, 'ograve'],
|
||||
['ó', 'ó', true, 'oacute'],
|
||||
['ô', 'ô', true, 'ocircumflex'],
|
||||
['õ', 'õ', true, 'otilde'],
|
||||
['ö', 'ö', true, 'odiaeresis'],
|
||||
['ø', 'ø', true, 'oslash'],
|
||||
['ō', 'ō', true, 'omacron'],
|
||||
['œ', 'œ', true, 'ligatureoe'],
|
||||
['š', 'š', true, 'scaron'],
|
||||
['ù', 'ù', true, 'ugrave'],
|
||||
['ú', 'ú', true, 'uacute'],
|
||||
['û', 'û', true, 'ucircumflex'],
|
||||
['ü', 'ü', true, 'udiaeresis'],
|
||||
['ū', 'ū', true, 'umacron'],
|
||||
['ý', 'ý', true, 'yacute'],
|
||||
['þ', 'þ', true, 'thorn'],
|
||||
['ÿ', 'ÿ', true, 'ydiaeresis'],
|
||||
['Α', 'Α', true, 'alpha_caps'],
|
||||
['Β', 'Β', true, 'beta_caps'],
|
||||
['Γ', 'Γ', true, 'gamma_caps'],
|
||||
['Δ', 'Δ', true, 'delta_caps'],
|
||||
['Ε', 'Ε', true, 'epsilon_caps'],
|
||||
['Ζ', 'Ζ', true, 'zeta_caps'],
|
||||
['Η', 'Η', true, 'eta_caps'],
|
||||
['Θ', 'Θ', true, 'theta_caps'],
|
||||
['Ι', 'Ι', true, 'iota_caps'],
|
||||
['Κ', 'Κ', true, 'kappa_caps'],
|
||||
['Λ', 'Λ', true, 'lambda_caps'],
|
||||
['Μ', 'Μ', true, 'mu_caps'],
|
||||
['Ν', 'Ν', true, 'nu_caps'],
|
||||
['Ξ', 'Ξ', true, 'xi_caps'],
|
||||
['Ο', 'Ο', true, 'omicron_caps'],
|
||||
['Π', 'Π', true, 'pi_caps'],
|
||||
['Ρ', 'Ρ', true, 'rho_caps'],
|
||||
['Σ', 'Σ', true, 'sigma_caps'],
|
||||
['Τ', 'Τ', true, 'tau_caps'],
|
||||
['Υ', 'Υ', true, 'upsilon_caps'],
|
||||
['Φ', 'Φ', true, 'phi_caps'],
|
||||
['Χ', 'Χ', true, 'chi_caps'],
|
||||
['Ψ', 'Ψ', true, 'psi_caps'],
|
||||
['Ω', 'Ω', true, 'omega_caps'],
|
||||
['α', 'α', true, 'alpha'],
|
||||
['β', 'β', true, 'beta'],
|
||||
['γ', 'γ', true, 'gamma'],
|
||||
['δ', 'δ', true, 'delta'],
|
||||
['ε', 'ε', true, 'epsilon'],
|
||||
['ζ', 'ζ', true, 'zeta'],
|
||||
['η', 'η', true, 'eta'],
|
||||
['θ', 'θ', true, 'theta'],
|
||||
['ι', 'ι', true, 'iota'],
|
||||
['κ', 'κ', true, 'kappa'],
|
||||
['λ', 'λ', true, 'lambda'],
|
||||
['μ', 'μ', true, 'mu'],
|
||||
['ν', 'ν', true, 'nu'],
|
||||
['ξ', 'ξ', true, 'xi'],
|
||||
['ο', 'ο', true, 'omicron'],
|
||||
['π', 'π', true, 'pi'],
|
||||
['ρ', 'ρ', true, 'rho'],
|
||||
['ς', 'ς', true, 'finalsigma'],
|
||||
['σ', 'σ', true, 'sigma'],
|
||||
['τ', 'τ', true, 'tau'],
|
||||
['υ', 'υ', true, 'upsilon'],
|
||||
['φ', 'φ', true, 'phi'],
|
||||
['χ', 'χ', true, 'chi'],
|
||||
['ψ', 'ψ', true, 'psi'],
|
||||
['ω', 'ω', true, 'omega'],
|
||||
// Symbols.
|
||||
['ℵ', 'ℵ', false,'alefsymbol'],
|
||||
['ϖ', 'ϖ', false,'pisymbol'],
|
||||
['ℜ', 'ℜ', false,'realpartsymbol'],
|
||||
['ϑ','ϑ', false,'thetasymbol'],
|
||||
['ϒ', 'ϒ', false,'upsilonhooksymbol'],
|
||||
['℘', '℘', false,'weierstrassp'],
|
||||
['ℑ', 'ℑ', false,'imaginarypart'],
|
||||
['ℵ', 'ℵ', false, 'alefsymbol'],
|
||||
['ϖ', 'ϖ', false, 'pisymbol'],
|
||||
['ℜ', 'ℜ', false, 'realpartsymbol'],
|
||||
['ϑ', 'ϑ', false, 'thetasymbol'],
|
||||
['ϒ', 'ϒ', false, 'upsilonhooksymbol'],
|
||||
['℘', '℘', false, 'weierstrassp'],
|
||||
['ℑ', 'ℑ', false, 'imaginarypart'],
|
||||
// Arrows.
|
||||
['←', '←', true, 'leftwardsarrow'],
|
||||
['↑', '↑', true, 'upwardsarrow'],
|
||||
['→', '→', true, 'rightwardsarrow'],
|
||||
['↓', '↓', true, 'downwardsarrow'],
|
||||
['↔', '↔', true, 'leftrightarrow'],
|
||||
['↵', '↵', false,'carriagereturn'],
|
||||
['⇐', '⇐', false,'leftwardsdoublearrow'],
|
||||
['⇑', '⇑', false,'upwardsdoublearrow'],
|
||||
['⇒', '⇒', false,'rightwardsdoublearrow'],
|
||||
['⇓', '⇓', false,'downwardsdoublearrow'],
|
||||
['⇔', '⇔', false,'leftrightdoublearrow'],
|
||||
['∴', '∴', false,'therefore'],
|
||||
['⊂', '⊂', false,'subsetof'],
|
||||
['⊃', '⊃', false,'supersetof'],
|
||||
['⊄', '⊄', false,'notasubsetof'],
|
||||
['⊆', '⊆', false,'subsetoforequalto'],
|
||||
['⊇', '⊇', false,'supersetoforequalto'],
|
||||
['⊕', '⊕', false,'circledplus'],
|
||||
['⊗', '⊗', false,'circledtimes'],
|
||||
['⊥', '⊥', false,'perpendicular'],
|
||||
['⋅', '⋅', false,'dotoperator'],
|
||||
['⌈', '⌈', false,'leftceiling'],
|
||||
['⌉', '⌉', false,'rightceiling'],
|
||||
['⌊', '⌊', false,'leftfloor'],
|
||||
['⌋', '⌋', false,'rightfloor'],
|
||||
['⟨', '〈', false,'leftpointinganglebracket'],
|
||||
['⟩', '〉', false,'rightpointinganglebracket'],
|
||||
['◊', '◊', true, 'lozenge'],
|
||||
['♠', '♠', true, 'blackspadesuit'],
|
||||
['♣', '♣', true, 'blackclubsuit'],
|
||||
['♥', '♥', true, 'blackheartsuit'],
|
||||
['♦', '♦', true, 'blackdiamondsuit'],
|
||||
[' ', ' ', false,'enspace'],
|
||||
[' ', ' ', false,'emspace'],
|
||||
[' ', ' ', false,'thinspace'],
|
||||
['‌', '‌', false,'zerowidthnonjoiner'],
|
||||
['‍', '‍', false,'zerowidthjoiner'],
|
||||
['‎', '‎', false,'lefttorightmark'],
|
||||
['‏', '‏', false,'righttoleftmark'],
|
||||
['­', '­', false,'softhyphen']
|
||||
['←', '←', true, 'leftwardsarrow'],
|
||||
['↑', '↑', true, 'upwardsarrow'],
|
||||
['→', '→', true, 'rightwardsarrow'],
|
||||
['↓', '↓', true, 'downwardsarrow'],
|
||||
['↔', '↔', true, 'leftrightarrow'],
|
||||
['↵', '↵', false, 'carriagereturn'],
|
||||
['⇐', '⇐', false, 'leftwardsdoublearrow'],
|
||||
['⇑', '⇑', false, 'upwardsdoublearrow'],
|
||||
['⇒', '⇒', false, 'rightwardsdoublearrow'],
|
||||
['⇓', '⇓', false, 'downwardsdoublearrow'],
|
||||
['⇔', '⇔', false, 'leftrightdoublearrow'],
|
||||
['∴', '∴', false, 'therefore'],
|
||||
['⊂', '⊂', false, 'subsetof'],
|
||||
['⊃', '⊃', false, 'supersetof'],
|
||||
['⊄', '⊄', false, 'notasubsetof'],
|
||||
['⊆', '⊆', false, 'subsetoforequalto'],
|
||||
['⊇', '⊇', false, 'supersetoforequalto'],
|
||||
['⊕', '⊕', false, 'circledplus'],
|
||||
['⊗', '⊗', false, 'circledtimes'],
|
||||
['⊥', '⊥', false, 'perpendicular'],
|
||||
['⋅', '⋅', false, 'dotoperator'],
|
||||
['⌈', '⌈', false, 'leftceiling'],
|
||||
['⌉', '⌉', false, 'rightceiling'],
|
||||
['⌊', '⌊', false, 'leftfloor'],
|
||||
['⌋', '⌋', false, 'rightfloor'],
|
||||
['⟨', '〈', false, 'leftpointinganglebracket'],
|
||||
['⟩', '〉', false, 'rightpointinganglebracket'],
|
||||
['◊', '◊', true, 'lozenge'],
|
||||
['♠', '♠', true, 'blackspadesuit'],
|
||||
['♣', '♣', true, 'blackclubsuit'],
|
||||
['♥', '♥', true, 'blackheartsuit'],
|
||||
['♦', '♦', true, 'blackdiamondsuit'],
|
||||
[' ', ' ', false, 'enspace'],
|
||||
[' ', ' ', false, 'emspace'],
|
||||
[' ', ' ', false, 'thinspace'],
|
||||
['‌', '‌', false, 'zerowidthnonjoiner'],
|
||||
['‍', '‍', false, 'zerowidthjoiner'],
|
||||
['‎', '‎', false, 'lefttorightmark'],
|
||||
['‏', '‏', false, 'righttoleftmark'],
|
||||
['­', '­', false, 'softhyphen']
|
||||
];
|
||||
|
||||
/**
|
||||
|
||||
+2
-2
@@ -44,13 +44,13 @@ Y.namespace('M.atto_collapse').Button = Y.Base.create('button', Y.M.editor_atto.
|
||||
var toolbarGroupCount = Y.Object.size(this.get('host').get('plugins'));
|
||||
if (toolbarGroupCount <= 1 + parseInt(this.get(ATTRSHOWGROUPS), 10)) {
|
||||
Y.log("There are not enough groups to require toggling - not adding the button",
|
||||
'debug','moodle-atto_collapse');
|
||||
'debug', 'moodle-atto_collapse');
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.toolbar.all(GROUPS).size() > this.get(ATTRSHOWGROUPS)) {
|
||||
Y.log("The collapse plugin is shown after it's cut-off - not adding the button",
|
||||
'debug','moodle-atto_collapse');
|
||||
'debug', 'moodle-atto_collapse');
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
+6
-6
@@ -186,7 +186,7 @@ Y.namespace('M.atto_equation').Button = Y.Base.create('button', Y.M.editor_atto.
|
||||
}, this);
|
||||
|
||||
// We need to convert these to a non dom node based format.
|
||||
this.editor.all('tex').each(function (texNode) {
|
||||
this.editor.all('tex').each(function(texNode) {
|
||||
var replacement = Y.Node.create('<span>' +
|
||||
DELIMITERS.START + ' ' + texNode.get('text') + ' ' + DELIMITERS.END +
|
||||
'</span>');
|
||||
@@ -295,7 +295,7 @@ Y.namespace('M.atto_equation').Button = Y.Base.create('button', Y.M.editor_atto.
|
||||
return Y.Array.find(patternMatches, function(match) {
|
||||
// Check each occurrence of this match.
|
||||
var startIndex = 0;
|
||||
while(text.indexOf(match, startIndex) !== -1) {
|
||||
while (text.indexOf(match, startIndex) !== -1) {
|
||||
// Determine whether the cursor is in the current occurrence of this string.
|
||||
// Note: We do not support a selection exceeding the bounds of an equation.
|
||||
var startOuter = text.indexOf(match, startIndex),
|
||||
@@ -380,7 +380,7 @@ Y.namespace('M.atto_equation').Button = Y.Base.create('button', Y.M.editor_atto.
|
||||
selectedNode = Y.one(host.getSelectionParentNode());
|
||||
text = selectedNode.get('text');
|
||||
value = ' ' + value + ' ';
|
||||
newText = text.slice(0, this.sourceEquation.startInnerPosition) +
|
||||
newText = text.slice(0, this.sourceEquation.startInnerPosition) +
|
||||
value +
|
||||
text.slice(this.sourceEquation.endInnerPosition);
|
||||
|
||||
@@ -410,10 +410,10 @@ Y.namespace('M.atto_equation').Button = Y.Base.create('button', Y.M.editor_atto.
|
||||
*/
|
||||
_throttle: function(fn, delay) {
|
||||
var timer = null;
|
||||
return function () {
|
||||
return function() {
|
||||
var context = this, args = arguments;
|
||||
clearTimeout(timer);
|
||||
timer = setTimeout(function () {
|
||||
timer = setTimeout(function() {
|
||||
fn.apply(context, args);
|
||||
}, delay);
|
||||
};
|
||||
@@ -455,7 +455,7 @@ Y.namespace('M.atto_equation').Button = Y.Base.create('button', Y.M.editor_atto.
|
||||
// Now match to the end of the line.
|
||||
while (isChar.test(equation.charAt(currentPos)) &&
|
||||
currentPos < equation.length &&
|
||||
isChar.test(equation.charAt(currentPos-1))) {
|
||||
isChar.test(equation.charAt(currentPos - 1))) {
|
||||
currentPos += 1;
|
||||
}
|
||||
}
|
||||
|
||||
+6
-6
@@ -186,7 +186,7 @@ Y.namespace('M.atto_equation').Button = Y.Base.create('button', Y.M.editor_atto.
|
||||
}, this);
|
||||
|
||||
// We need to convert these to a non dom node based format.
|
||||
this.editor.all('tex').each(function (texNode) {
|
||||
this.editor.all('tex').each(function(texNode) {
|
||||
var replacement = Y.Node.create('<span>' +
|
||||
DELIMITERS.START + ' ' + texNode.get('text') + ' ' + DELIMITERS.END +
|
||||
'</span>');
|
||||
@@ -295,7 +295,7 @@ Y.namespace('M.atto_equation').Button = Y.Base.create('button', Y.M.editor_atto.
|
||||
return Y.Array.find(patternMatches, function(match) {
|
||||
// Check each occurrence of this match.
|
||||
var startIndex = 0;
|
||||
while(text.indexOf(match, startIndex) !== -1) {
|
||||
while (text.indexOf(match, startIndex) !== -1) {
|
||||
// Determine whether the cursor is in the current occurrence of this string.
|
||||
// Note: We do not support a selection exceeding the bounds of an equation.
|
||||
var startOuter = text.indexOf(match, startIndex),
|
||||
@@ -380,7 +380,7 @@ Y.namespace('M.atto_equation').Button = Y.Base.create('button', Y.M.editor_atto.
|
||||
selectedNode = Y.one(host.getSelectionParentNode());
|
||||
text = selectedNode.get('text');
|
||||
value = ' ' + value + ' ';
|
||||
newText = text.slice(0, this.sourceEquation.startInnerPosition) +
|
||||
newText = text.slice(0, this.sourceEquation.startInnerPosition) +
|
||||
value +
|
||||
text.slice(this.sourceEquation.endInnerPosition);
|
||||
|
||||
@@ -410,10 +410,10 @@ Y.namespace('M.atto_equation').Button = Y.Base.create('button', Y.M.editor_atto.
|
||||
*/
|
||||
_throttle: function(fn, delay) {
|
||||
var timer = null;
|
||||
return function () {
|
||||
return function() {
|
||||
var context = this, args = arguments;
|
||||
clearTimeout(timer);
|
||||
timer = setTimeout(function () {
|
||||
timer = setTimeout(function() {
|
||||
fn.apply(context, args);
|
||||
}, delay);
|
||||
};
|
||||
@@ -455,7 +455,7 @@ Y.namespace('M.atto_equation').Button = Y.Base.create('button', Y.M.editor_atto.
|
||||
// Now match to the end of the line.
|
||||
while (isChar.test(equation.charAt(currentPos)) &&
|
||||
currentPos < equation.length &&
|
||||
isChar.test(equation.charAt(currentPos-1))) {
|
||||
isChar.test(equation.charAt(currentPos - 1))) {
|
||||
currentPos += 1;
|
||||
}
|
||||
}
|
||||
|
||||
Vendored
+11
-6
@@ -221,8 +221,12 @@ Y.namespace('M.atto_image').Button = Y.Base.create('button', Y.M.editor_atto.Edi
|
||||
this.editor.on('drop', this._handleDragDrop, this);
|
||||
|
||||
// e.preventDefault needed to stop the default event from clobbering the desired behaviour in some browsers.
|
||||
this.editor.on('dragover', function(e){e.preventDefault();}, this);
|
||||
this.editor.on('dragenter', function(e){e.preventDefault();}, this);
|
||||
this.editor.on('dragover', function(e) {
|
||||
e.preventDefault();
|
||||
}, this);
|
||||
this.editor.on('dragenter', function(e) {
|
||||
e.preventDefault();
|
||||
}, this);
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -395,7 +399,8 @@ Y.namespace('M.atto_image').Button = Y.Base.create('button', Y.M.editor_atto.Edi
|
||||
* @private
|
||||
*/
|
||||
_loadPreviewImage: function(url) {
|
||||
var image = new Image(), self = this;
|
||||
var image = new Image();
|
||||
var self = this;
|
||||
|
||||
image.onerror = function() {
|
||||
var preview = self._form.one('.' + CSS.IMAGEPREVIEW);
|
||||
@@ -444,8 +449,8 @@ Y.namespace('M.atto_image').Button = Y.Base.create('button', Y.M.editor_atto.Edi
|
||||
this.height = 1;
|
||||
}
|
||||
// This is the same as comparing to 3 decimal places.
|
||||
widthRatio = Math.round(1000*parseInt(currentwidth, 10) / this.width);
|
||||
heightRatio = Math.round(1000*parseInt(currentheight, 10) / this.height);
|
||||
widthRatio = Math.round(1000 * parseInt(currentwidth, 10) / this.width);
|
||||
heightRatio = Math.round(1000 * parseInt(currentheight, 10) / this.height);
|
||||
input.set('checked', widthRatio === heightRatio);
|
||||
}
|
||||
|
||||
@@ -703,7 +708,7 @@ Y.namespace('M.atto_image').Button = Y.Base.create('button', Y.M.editor_atto.Edi
|
||||
_getSelectedImageProperties: function() {
|
||||
var properties = {
|
||||
src: null,
|
||||
alt :null,
|
||||
alt: null,
|
||||
width: null,
|
||||
height: null,
|
||||
align: '',
|
||||
|
||||
Vendored
+11
-6
@@ -221,8 +221,12 @@ Y.namespace('M.atto_image').Button = Y.Base.create('button', Y.M.editor_atto.Edi
|
||||
this.editor.on('drop', this._handleDragDrop, this);
|
||||
|
||||
// e.preventDefault needed to stop the default event from clobbering the desired behaviour in some browsers.
|
||||
this.editor.on('dragover', function(e){e.preventDefault();}, this);
|
||||
this.editor.on('dragenter', function(e){e.preventDefault();}, this);
|
||||
this.editor.on('dragover', function(e) {
|
||||
e.preventDefault();
|
||||
}, this);
|
||||
this.editor.on('dragenter', function(e) {
|
||||
e.preventDefault();
|
||||
}, this);
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -395,7 +399,8 @@ Y.namespace('M.atto_image').Button = Y.Base.create('button', Y.M.editor_atto.Edi
|
||||
* @private
|
||||
*/
|
||||
_loadPreviewImage: function(url) {
|
||||
var image = new Image(), self = this;
|
||||
var image = new Image();
|
||||
var self = this;
|
||||
|
||||
image.onerror = function() {
|
||||
var preview = self._form.one('.' + CSS.IMAGEPREVIEW);
|
||||
@@ -444,8 +449,8 @@ Y.namespace('M.atto_image').Button = Y.Base.create('button', Y.M.editor_atto.Edi
|
||||
this.height = 1;
|
||||
}
|
||||
// This is the same as comparing to 3 decimal places.
|
||||
widthRatio = Math.round(1000*parseInt(currentwidth, 10) / this.width);
|
||||
heightRatio = Math.round(1000*parseInt(currentheight, 10) / this.height);
|
||||
widthRatio = Math.round(1000 * parseInt(currentwidth, 10) / this.width);
|
||||
heightRatio = Math.round(1000 * parseInt(currentheight, 10) / this.height);
|
||||
input.set('checked', widthRatio === heightRatio);
|
||||
}
|
||||
|
||||
@@ -703,7 +708,7 @@ Y.namespace('M.atto_image').Button = Y.Base.create('button', Y.M.editor_atto.Edi
|
||||
_getSelectedImageProperties: function() {
|
||||
var properties = {
|
||||
src: null,
|
||||
alt :null,
|
||||
alt: null,
|
||||
width: null,
|
||||
height: null,
|
||||
align: '',
|
||||
|
||||
+4
-2
@@ -158,7 +158,8 @@ Y.namespace('M.atto_indent').Button = Y.Base.create('button', Y.M.editor_atto.Ed
|
||||
.setStyle(margindir, '30px')
|
||||
.addClass('editor-indent');
|
||||
// We use childNodes here because we are interested in both type 1 and 3 child nodes.
|
||||
var children = blockquote.getDOMNode().childNodes, child;
|
||||
var children = blockquote.getDOMNode().childNodes;
|
||||
var child;
|
||||
child = children[0];
|
||||
while (typeof child !== "undefined") {
|
||||
clone.append(child);
|
||||
@@ -184,7 +185,8 @@ Y.namespace('M.atto_indent').Button = Y.Base.create('button', Y.M.editor_atto.Ed
|
||||
.getAttrs())
|
||||
.removeClass('editor-indent');
|
||||
// We use childNodes here because we are interested in both type 1 and 3 child nodes.
|
||||
var children = indent.getDOMNode().childNodes, child;
|
||||
var children = indent.getDOMNode().childNodes;
|
||||
var child;
|
||||
child = children[0];
|
||||
while (typeof child !== "undefined") {
|
||||
clone.append(child);
|
||||
|
||||
Vendored
+4
-2
@@ -158,7 +158,8 @@ Y.namespace('M.atto_indent').Button = Y.Base.create('button', Y.M.editor_atto.Ed
|
||||
.setStyle(margindir, '30px')
|
||||
.addClass('editor-indent');
|
||||
// We use childNodes here because we are interested in both type 1 and 3 child nodes.
|
||||
var children = blockquote.getDOMNode().childNodes, child;
|
||||
var children = blockquote.getDOMNode().childNodes;
|
||||
var child;
|
||||
child = children[0];
|
||||
while (typeof child !== "undefined") {
|
||||
clone.append(child);
|
||||
@@ -184,7 +185,8 @@ Y.namespace('M.atto_indent').Button = Y.Base.create('button', Y.M.editor_atto.Ed
|
||||
.getAttrs())
|
||||
.removeClass('editor-indent');
|
||||
// We use childNodes here because we are interested in both type 1 and 3 child nodes.
|
||||
var children = indent.getDOMNode().childNodes, child;
|
||||
var children = indent.getDOMNode().childNodes;
|
||||
var child;
|
||||
child = children[0];
|
||||
while (typeof child !== "undefined") {
|
||||
clone.append(child);
|
||||
|
||||
Vendored
+15
-15
@@ -106,7 +106,7 @@ var COMPONENT = 'atto_table',
|
||||
'style="background-color:transparent;color:transparent">' +
|
||||
|
||||
'<input id="{{../elementid}}_atto_table_bordercolour_-1"' +
|
||||
'type="radio" name="borderColour" value="none" checked="checked"'+
|
||||
'type="radio" name="borderColour" value="none" checked="checked"' +
|
||||
'title="{{get_string "themedefault" component}}"></input>' +
|
||||
|
||||
'{{get_string "themedefault" component}}' +
|
||||
@@ -133,7 +133,7 @@ var COMPONENT = 'atto_table',
|
||||
'style="background-color:transparent;color:transparent">' +
|
||||
|
||||
'<input id="{{../elementid}}_atto_table_backgroundcolour_-1"' +
|
||||
'type="radio" name="backgroundColour" value="none" checked="checked"'+
|
||||
'type="radio" name="backgroundColour" value="none" checked="checked"' +
|
||||
'title="{{get_string "themedefault" component}}"></input>' +
|
||||
|
||||
'{{get_string "themedefault" component}}' +
|
||||
@@ -141,7 +141,7 @@ var COMPONENT = 'atto_table',
|
||||
|
||||
'{{#each availableColours}}' +
|
||||
'<label for="{{../elementid}}_atto_table_backgroundcolour_{{@index}}"' +
|
||||
'style="background-color:{{this}};color:{{this}}">'+
|
||||
'style="background-color:{{this}};color:{{this}}">' +
|
||||
|
||||
'<input id="{{../elementid}}_atto_table_backgroundcolour_{{@index}}"' +
|
||||
'type="radio" name="backgroundColour" value="' + '{{this}}' + '" title="{{this}}">' +
|
||||
@@ -372,10 +372,10 @@ Y.namespace('M.atto_table').Button = Y.Base.create('button', Y.M.editor_atto.Edi
|
||||
_updateAvailableSettings: function() {
|
||||
var tableForm = this._content,
|
||||
enableBorders = tableForm.one('[name="borders"]'),
|
||||
borderStyle = tableForm.one('[name="borderstyles"]'),
|
||||
borderSize = tableForm.one('[name="bordersize"]'),
|
||||
borderColour = tableForm.all('[name="borderColour"]'),
|
||||
disabledValue = 'removeAttribute';
|
||||
borderStyle = tableForm.one('[name="borderstyles"]'),
|
||||
borderSize = tableForm.one('[name="bordersize"]'),
|
||||
borderColour = tableForm.all('[name="borderColour"]'),
|
||||
disabledValue = 'removeAttribute';
|
||||
|
||||
if (!enableBorders) {
|
||||
return;
|
||||
@@ -412,7 +412,7 @@ Y.namespace('M.atto_table').Button = Y.Base.create('button', Y.M.editor_atto.Edi
|
||||
var targetcell = null,
|
||||
host = this.get('host');
|
||||
|
||||
host.getSelectedNodes().some(function (node) {
|
||||
host.getSelectedNodes().some(function(node) {
|
||||
if (node.ancestor('td, th, caption', true, this._stopAtContentEditableFilter)) {
|
||||
targetcell = node;
|
||||
|
||||
@@ -516,7 +516,7 @@ Y.namespace('M.atto_table').Button = Y.Base.create('button', Y.M.editor_atto.Edi
|
||||
|
||||
// Add the row headers.
|
||||
if (headers.get('value') === 'rows' || headers.get('value') === 'both') {
|
||||
table.all('tr').each(function (row) {
|
||||
table.all('tr').each(function(row) {
|
||||
var cells = row.all('th, td'),
|
||||
firstCell = cells.shift(),
|
||||
newCell;
|
||||
@@ -530,7 +530,7 @@ Y.namespace('M.atto_table').Button = Y.Base.create('button', Y.M.editor_atto.Edi
|
||||
}
|
||||
|
||||
// Now make sure all other cells in the row are td.
|
||||
cells.each(function (cell) {
|
||||
cells.each(function(cell) {
|
||||
if (cell.get('tagName') === 'TH') {
|
||||
newCell = this._changeNodeType(cell, 'td');
|
||||
newCell.removeAttribute('scope');
|
||||
@@ -545,7 +545,7 @@ Y.namespace('M.atto_table').Button = Y.Base.create('button', Y.M.editor_atto.Edi
|
||||
firstRow = rows.shift(),
|
||||
newCell;
|
||||
|
||||
firstRow.all('td, th').each(function (cell) {
|
||||
firstRow.all('td, th').each(function(cell) {
|
||||
if (cell.get('tagName') === 'TD') {
|
||||
// Cell is a td but should be a th - change it.
|
||||
newCell = this._changeNodeType(cell, 'th');
|
||||
@@ -687,8 +687,8 @@ Y.namespace('M.atto_table').Button = Y.Base.create('button', Y.M.editor_atto.Edi
|
||||
rows.each(function(row) {
|
||||
var cells = row.all('td, th'),
|
||||
cell = cells.item(columnindex),
|
||||
cellprev = cells.item(columnindex-1),
|
||||
cellnext = cells.item(columnindex+1);
|
||||
cellprev = cells.item(columnindex - 1),
|
||||
cellnext = cells.item(columnindex + 1);
|
||||
currentcells.push(cell);
|
||||
if (cellprev) {
|
||||
prevcells.push(cellprev);
|
||||
@@ -1050,7 +1050,7 @@ Y.namespace('M.atto_table').Button = Y.Base.create('button', Y.M.editor_atto.Edi
|
||||
var cells = this._findColumnCells();
|
||||
|
||||
// Check we have some tds in this column, and one exists to the right.
|
||||
if ( (cells.next.size() > 0) &&
|
||||
if ((cells.next.size() > 0) &&
|
||||
(cells.current.size() === cells.next.size()) &&
|
||||
(cells.current.filter('td').size() > 0)) {
|
||||
var i = 0;
|
||||
@@ -1331,7 +1331,7 @@ Y.namespace('M.atto_table').Button = Y.Base.create('button', Y.M.editor_atto.Edi
|
||||
return;
|
||||
}
|
||||
var newrow = firstrow.cloneNode(true);
|
||||
newrow.all('th, td').each(function (tablecell) {
|
||||
newrow.all('th, td').each(function(tablecell) {
|
||||
if (tablecell.get('tagName') === 'TH') {
|
||||
if (tablecell.getAttribute('scope') !== 'row') {
|
||||
var newcell = Y.Node.create('<td></td>');
|
||||
|
||||
Vendored
+15
-15
@@ -106,7 +106,7 @@ var COMPONENT = 'atto_table',
|
||||
'style="background-color:transparent;color:transparent">' +
|
||||
|
||||
'<input id="{{../elementid}}_atto_table_bordercolour_-1"' +
|
||||
'type="radio" name="borderColour" value="none" checked="checked"'+
|
||||
'type="radio" name="borderColour" value="none" checked="checked"' +
|
||||
'title="{{get_string "themedefault" component}}"></input>' +
|
||||
|
||||
'{{get_string "themedefault" component}}' +
|
||||
@@ -133,7 +133,7 @@ var COMPONENT = 'atto_table',
|
||||
'style="background-color:transparent;color:transparent">' +
|
||||
|
||||
'<input id="{{../elementid}}_atto_table_backgroundcolour_-1"' +
|
||||
'type="radio" name="backgroundColour" value="none" checked="checked"'+
|
||||
'type="radio" name="backgroundColour" value="none" checked="checked"' +
|
||||
'title="{{get_string "themedefault" component}}"></input>' +
|
||||
|
||||
'{{get_string "themedefault" component}}' +
|
||||
@@ -141,7 +141,7 @@ var COMPONENT = 'atto_table',
|
||||
|
||||
'{{#each availableColours}}' +
|
||||
'<label for="{{../elementid}}_atto_table_backgroundcolour_{{@index}}"' +
|
||||
'style="background-color:{{this}};color:{{this}}">'+
|
||||
'style="background-color:{{this}};color:{{this}}">' +
|
||||
|
||||
'<input id="{{../elementid}}_atto_table_backgroundcolour_{{@index}}"' +
|
||||
'type="radio" name="backgroundColour" value="' + '{{this}}' + '" title="{{this}}">' +
|
||||
@@ -372,10 +372,10 @@ Y.namespace('M.atto_table').Button = Y.Base.create('button', Y.M.editor_atto.Edi
|
||||
_updateAvailableSettings: function() {
|
||||
var tableForm = this._content,
|
||||
enableBorders = tableForm.one('[name="borders"]'),
|
||||
borderStyle = tableForm.one('[name="borderstyles"]'),
|
||||
borderSize = tableForm.one('[name="bordersize"]'),
|
||||
borderColour = tableForm.all('[name="borderColour"]'),
|
||||
disabledValue = 'removeAttribute';
|
||||
borderStyle = tableForm.one('[name="borderstyles"]'),
|
||||
borderSize = tableForm.one('[name="bordersize"]'),
|
||||
borderColour = tableForm.all('[name="borderColour"]'),
|
||||
disabledValue = 'removeAttribute';
|
||||
|
||||
if (!enableBorders) {
|
||||
return;
|
||||
@@ -412,7 +412,7 @@ Y.namespace('M.atto_table').Button = Y.Base.create('button', Y.M.editor_atto.Edi
|
||||
var targetcell = null,
|
||||
host = this.get('host');
|
||||
|
||||
host.getSelectedNodes().some(function (node) {
|
||||
host.getSelectedNodes().some(function(node) {
|
||||
if (node.ancestor('td, th, caption', true, this._stopAtContentEditableFilter)) {
|
||||
targetcell = node;
|
||||
|
||||
@@ -516,7 +516,7 @@ Y.namespace('M.atto_table').Button = Y.Base.create('button', Y.M.editor_atto.Edi
|
||||
|
||||
// Add the row headers.
|
||||
if (headers.get('value') === 'rows' || headers.get('value') === 'both') {
|
||||
table.all('tr').each(function (row) {
|
||||
table.all('tr').each(function(row) {
|
||||
var cells = row.all('th, td'),
|
||||
firstCell = cells.shift(),
|
||||
newCell;
|
||||
@@ -530,7 +530,7 @@ Y.namespace('M.atto_table').Button = Y.Base.create('button', Y.M.editor_atto.Edi
|
||||
}
|
||||
|
||||
// Now make sure all other cells in the row are td.
|
||||
cells.each(function (cell) {
|
||||
cells.each(function(cell) {
|
||||
if (cell.get('tagName') === 'TH') {
|
||||
newCell = this._changeNodeType(cell, 'td');
|
||||
newCell.removeAttribute('scope');
|
||||
@@ -545,7 +545,7 @@ Y.namespace('M.atto_table').Button = Y.Base.create('button', Y.M.editor_atto.Edi
|
||||
firstRow = rows.shift(),
|
||||
newCell;
|
||||
|
||||
firstRow.all('td, th').each(function (cell) {
|
||||
firstRow.all('td, th').each(function(cell) {
|
||||
if (cell.get('tagName') === 'TD') {
|
||||
// Cell is a td but should be a th - change it.
|
||||
newCell = this._changeNodeType(cell, 'th');
|
||||
@@ -687,8 +687,8 @@ Y.namespace('M.atto_table').Button = Y.Base.create('button', Y.M.editor_atto.Edi
|
||||
rows.each(function(row) {
|
||||
var cells = row.all('td, th'),
|
||||
cell = cells.item(columnindex),
|
||||
cellprev = cells.item(columnindex-1),
|
||||
cellnext = cells.item(columnindex+1);
|
||||
cellprev = cells.item(columnindex - 1),
|
||||
cellnext = cells.item(columnindex + 1);
|
||||
currentcells.push(cell);
|
||||
if (cellprev) {
|
||||
prevcells.push(cellprev);
|
||||
@@ -1050,7 +1050,7 @@ Y.namespace('M.atto_table').Button = Y.Base.create('button', Y.M.editor_atto.Edi
|
||||
var cells = this._findColumnCells();
|
||||
|
||||
// Check we have some tds in this column, and one exists to the right.
|
||||
if ( (cells.next.size() > 0) &&
|
||||
if ((cells.next.size() > 0) &&
|
||||
(cells.current.size() === cells.next.size()) &&
|
||||
(cells.current.filter('td').size() > 0)) {
|
||||
var i = 0;
|
||||
@@ -1331,7 +1331,7 @@ Y.namespace('M.atto_table').Button = Y.Base.create('button', Y.M.editor_atto.Edi
|
||||
return;
|
||||
}
|
||||
var newrow = firstrow.cloneNode(true);
|
||||
newrow.all('th, td').each(function (tablecell) {
|
||||
newrow.all('th, td').each(function(tablecell) {
|
||||
if (tablecell.get('tagName') === 'TH') {
|
||||
if (tablecell.getAttribute('scope') !== 'row') {
|
||||
var newcell = Y.Node.create('<td></td>');
|
||||
|
||||
+23
-22
@@ -69,7 +69,7 @@ Y.extend(Editor, Y.Base, {
|
||||
* @property BLOCK_TAGS
|
||||
* @type {Array}
|
||||
*/
|
||||
BLOCK_TAGS : [
|
||||
BLOCK_TAGS: [
|
||||
'address',
|
||||
'article',
|
||||
'aside',
|
||||
@@ -503,7 +503,7 @@ var LOGNAME_NOTIFY = 'moodle-editor_atto-editor-notify',
|
||||
|
||||
function EditorNotify() {}
|
||||
|
||||
EditorNotify.ATTRS= {
|
||||
EditorNotify.ATTRS = {
|
||||
};
|
||||
|
||||
EditorNotify.prototype = {
|
||||
@@ -643,7 +643,7 @@ Y.Base.mix(Y.M.editor_atto.Editor, [EditorNotify]);
|
||||
|
||||
function EditorTextArea() {}
|
||||
|
||||
EditorTextArea.ATTRS= {
|
||||
EditorTextArea.ATTRS = {
|
||||
};
|
||||
|
||||
EditorTextArea.prototype = {
|
||||
@@ -695,7 +695,7 @@ EditorTextArea.prototype = {
|
||||
* @method updateOriginal
|
||||
* @chainable
|
||||
*/
|
||||
updateOriginal : function() {
|
||||
updateOriginal: function() {
|
||||
// Get the previous and current value to compare them.
|
||||
var oldValue = this.textarea.get('value'),
|
||||
newValue = this.getCleanHTML();
|
||||
@@ -755,7 +755,7 @@ var SUCCESS_MESSAGE_TIMEOUT = 5000,
|
||||
|
||||
function EditorAutosave() {}
|
||||
|
||||
EditorAutosave.ATTRS= {
|
||||
EditorAutosave.ATTRS = {
|
||||
/**
|
||||
* Enable/Disable auto save for this instance.
|
||||
*
|
||||
@@ -1271,7 +1271,7 @@ Y.Base.mix(Y.M.editor_atto.Editor, [EditorAutosaveIo]);
|
||||
|
||||
function EditorClean() {}
|
||||
|
||||
EditorClean.ATTRS= {
|
||||
EditorClean.ATTRS = {
|
||||
};
|
||||
|
||||
EditorClean.prototype = {
|
||||
@@ -1531,9 +1531,9 @@ EditorClean.prototype = {
|
||||
// Get all class attributes so we can work on them.
|
||||
{regex: /(<[^>]*?class\s*?=\s*?")([^>"]*)(")/gi, replace: function(match, group1, group2, group3) {
|
||||
// Remove MSO classes.
|
||||
group2 = group2.replace(/(?:^|[\s])[\s]*MSO[_a-zA-Z0-9\-]*/gi,"");
|
||||
group2 = group2.replace(/(?:^|[\s])[\s]*MSO[_a-zA-Z0-9\-]*/gi, "");
|
||||
// Remove Apple- classes.
|
||||
group2 = group2.replace(/(?:^|[\s])[\s]*Apple-[_a-zA-Z0-9\-]*/gi,"");
|
||||
group2 = group2.replace(/(?:^|[\s])[\s]*Apple-[_a-zA-Z0-9\-]*/gi, "");
|
||||
return group1 + group2 + group3;
|
||||
}},
|
||||
// Remove OLE_LINK# anchors that may litter the code.
|
||||
@@ -1668,7 +1668,7 @@ Y.Base.mix(Y.M.editor_atto.Editor, [EditorClean]);
|
||||
|
||||
function EditorCommand() {}
|
||||
|
||||
EditorCommand.ATTRS= {
|
||||
EditorCommand.ATTRS = {
|
||||
};
|
||||
|
||||
EditorCommand.prototype = {
|
||||
@@ -1750,7 +1750,8 @@ EditorCommand.prototype = {
|
||||
clone.setAttribute('class', node.getAttribute('class'));
|
||||
}
|
||||
// We use childNodes here because we are interested in both type 1 and 3 child nodes.
|
||||
var children = node.getDOMNode().childNodes, child;
|
||||
var children = node.getDOMNode().childNodes;
|
||||
var child;
|
||||
child = children[0];
|
||||
while (typeof child !== "undefined") {
|
||||
clone.append(child);
|
||||
@@ -1844,7 +1845,7 @@ Y.Base.mix(Y.M.editor_atto.Editor, [EditorCommand]);
|
||||
|
||||
function EditorToolbar() {}
|
||||
|
||||
EditorToolbar.ATTRS= {
|
||||
EditorToolbar.ATTRS = {
|
||||
};
|
||||
|
||||
EditorToolbar.prototype = {
|
||||
@@ -1919,7 +1920,7 @@ Y.Base.mix(Y.M.editor_atto.Editor, [EditorToolbar]);
|
||||
|
||||
function EditorToolbarNav() {}
|
||||
|
||||
EditorToolbarNav.ATTRS= {
|
||||
EditorToolbarNav.ATTRS = {
|
||||
};
|
||||
|
||||
EditorToolbarNav.prototype = {
|
||||
@@ -2128,7 +2129,7 @@ Y.Base.mix(Y.M.editor_atto.Editor, [EditorToolbarNav]);
|
||||
|
||||
function EditorSelection() {}
|
||||
|
||||
EditorSelection.ATTRS= {
|
||||
EditorSelection.ATTRS = {
|
||||
};
|
||||
|
||||
EditorSelection.prototype = {
|
||||
@@ -2351,7 +2352,7 @@ EditorSelection.prototype = {
|
||||
return false;
|
||||
}
|
||||
|
||||
selectednodes.each(function(node){
|
||||
selectednodes.each(function(node) {
|
||||
// Check each node, if it doesn't match the tags AND is not within the specified tags then fail this thing.
|
||||
if (requireall) {
|
||||
// Check for at least one failure.
|
||||
@@ -2549,7 +2550,7 @@ Y.Base.mix(Y.M.editor_atto.Editor, [EditorSelection]);
|
||||
|
||||
function EditorStyling() {}
|
||||
|
||||
EditorStyling.ATTRS= {
|
||||
EditorStyling.ATTRS = {
|
||||
};
|
||||
|
||||
EditorStyling.prototype = {
|
||||
@@ -2626,7 +2627,7 @@ EditorStyling.prototype = {
|
||||
|
||||
cssApplier.applyToSelection();
|
||||
|
||||
this.editor.all('.' + classname).each(function (node) {
|
||||
this.editor.all('.' + classname).each(function(node) {
|
||||
node.removeClass(classname).setStyles(styles);
|
||||
}, this);
|
||||
|
||||
@@ -2665,7 +2666,7 @@ EditorStyling.prototype = {
|
||||
// move the boundary to the table cell.
|
||||
// This is because we might have a table in a div, and we select some text in a cell,
|
||||
// want to limit the change in style to the table cell, not the entire table (via the outer div).
|
||||
cell = selectionparentnode.ancestor(function (node) {
|
||||
cell = selectionparentnode.ancestor(function(node) {
|
||||
var tagname = node.get('tagName');
|
||||
if (tagname) {
|
||||
tagname = tagname.toLowerCase();
|
||||
@@ -2683,7 +2684,7 @@ EditorStyling.prototype = {
|
||||
nearestblock = selectionparentnode.ancestor(this.BLOCK_TAGS.join(', '), true);
|
||||
if (nearestblock) {
|
||||
// Check that the block is contained by the boundary.
|
||||
match = nearestblock.ancestor(function (node) {
|
||||
match = nearestblock.ancestor(function(node) {
|
||||
return node === boundary;
|
||||
}, false);
|
||||
|
||||
@@ -2696,7 +2697,7 @@ EditorStyling.prototype = {
|
||||
if (!nearestblock) {
|
||||
// There is no block node in the content, wrap the content in a p and use that.
|
||||
newcontent = Y.Node.create('<p></p>');
|
||||
boundary.get('childNodes').each(function (child) {
|
||||
boundary.get('childNodes').each(function(child) {
|
||||
newcontent.append(child.remove());
|
||||
});
|
||||
boundary.append(newcontent);
|
||||
@@ -2711,7 +2712,7 @@ EditorStyling.prototype = {
|
||||
// Copy all attributes.
|
||||
replacement.setAttrs(nearestblock.getAttrs());
|
||||
// Copy all children.
|
||||
nearestblock.get('childNodes').each(function (child) {
|
||||
nearestblock.get('childNodes').each(function(child) {
|
||||
child.remove();
|
||||
replacement.append(child);
|
||||
});
|
||||
@@ -2767,7 +2768,7 @@ Y.Base.mix(Y.M.editor_atto.Editor, [EditorStyling]);
|
||||
|
||||
function EditorFilepicker() {}
|
||||
|
||||
EditorFilepicker.ATTRS= {
|
||||
EditorFilepicker.ATTRS = {
|
||||
/**
|
||||
* The options for the filepicker.
|
||||
*
|
||||
@@ -2804,7 +2805,7 @@ EditorFilepicker.prototype = {
|
||||
*/
|
||||
showFilepicker: function(type, callback, context) {
|
||||
var self = this;
|
||||
Y.use('core_filepicker', function (Y) {
|
||||
Y.use('core_filepicker', function(Y) {
|
||||
var options = Y.clone(self.get('filepickeroptions')[type], true);
|
||||
options.formcallback = callback;
|
||||
if (context) {
|
||||
|
||||
+23
-22
@@ -69,7 +69,7 @@ Y.extend(Editor, Y.Base, {
|
||||
* @property BLOCK_TAGS
|
||||
* @type {Array}
|
||||
*/
|
||||
BLOCK_TAGS : [
|
||||
BLOCK_TAGS: [
|
||||
'address',
|
||||
'article',
|
||||
'aside',
|
||||
@@ -500,7 +500,7 @@ var LOGNAME_NOTIFY = 'moodle-editor_atto-editor-notify',
|
||||
|
||||
function EditorNotify() {}
|
||||
|
||||
EditorNotify.ATTRS= {
|
||||
EditorNotify.ATTRS = {
|
||||
};
|
||||
|
||||
EditorNotify.prototype = {
|
||||
@@ -638,7 +638,7 @@ Y.Base.mix(Y.M.editor_atto.Editor, [EditorNotify]);
|
||||
|
||||
function EditorTextArea() {}
|
||||
|
||||
EditorTextArea.ATTRS= {
|
||||
EditorTextArea.ATTRS = {
|
||||
};
|
||||
|
||||
EditorTextArea.prototype = {
|
||||
@@ -690,7 +690,7 @@ EditorTextArea.prototype = {
|
||||
* @method updateOriginal
|
||||
* @chainable
|
||||
*/
|
||||
updateOriginal : function() {
|
||||
updateOriginal: function() {
|
||||
// Get the previous and current value to compare them.
|
||||
var oldValue = this.textarea.get('value'),
|
||||
newValue = this.getCleanHTML();
|
||||
@@ -750,7 +750,7 @@ var SUCCESS_MESSAGE_TIMEOUT = 5000,
|
||||
|
||||
function EditorAutosave() {}
|
||||
|
||||
EditorAutosave.ATTRS= {
|
||||
EditorAutosave.ATTRS = {
|
||||
/**
|
||||
* Enable/Disable auto save for this instance.
|
||||
*
|
||||
@@ -1260,7 +1260,7 @@ Y.Base.mix(Y.M.editor_atto.Editor, [EditorAutosaveIo]);
|
||||
|
||||
function EditorClean() {}
|
||||
|
||||
EditorClean.ATTRS= {
|
||||
EditorClean.ATTRS = {
|
||||
};
|
||||
|
||||
EditorClean.prototype = {
|
||||
@@ -1519,9 +1519,9 @@ EditorClean.prototype = {
|
||||
// Get all class attributes so we can work on them.
|
||||
{regex: /(<[^>]*?class\s*?=\s*?")([^>"]*)(")/gi, replace: function(match, group1, group2, group3) {
|
||||
// Remove MSO classes.
|
||||
group2 = group2.replace(/(?:^|[\s])[\s]*MSO[_a-zA-Z0-9\-]*/gi,"");
|
||||
group2 = group2.replace(/(?:^|[\s])[\s]*MSO[_a-zA-Z0-9\-]*/gi, "");
|
||||
// Remove Apple- classes.
|
||||
group2 = group2.replace(/(?:^|[\s])[\s]*Apple-[_a-zA-Z0-9\-]*/gi,"");
|
||||
group2 = group2.replace(/(?:^|[\s])[\s]*Apple-[_a-zA-Z0-9\-]*/gi, "");
|
||||
return group1 + group2 + group3;
|
||||
}},
|
||||
// Remove OLE_LINK# anchors that may litter the code.
|
||||
@@ -1656,7 +1656,7 @@ Y.Base.mix(Y.M.editor_atto.Editor, [EditorClean]);
|
||||
|
||||
function EditorCommand() {}
|
||||
|
||||
EditorCommand.ATTRS= {
|
||||
EditorCommand.ATTRS = {
|
||||
};
|
||||
|
||||
EditorCommand.prototype = {
|
||||
@@ -1738,7 +1738,8 @@ EditorCommand.prototype = {
|
||||
clone.setAttribute('class', node.getAttribute('class'));
|
||||
}
|
||||
// We use childNodes here because we are interested in both type 1 and 3 child nodes.
|
||||
var children = node.getDOMNode().childNodes, child;
|
||||
var children = node.getDOMNode().childNodes;
|
||||
var child;
|
||||
child = children[0];
|
||||
while (typeof child !== "undefined") {
|
||||
clone.append(child);
|
||||
@@ -1832,7 +1833,7 @@ Y.Base.mix(Y.M.editor_atto.Editor, [EditorCommand]);
|
||||
|
||||
function EditorToolbar() {}
|
||||
|
||||
EditorToolbar.ATTRS= {
|
||||
EditorToolbar.ATTRS = {
|
||||
};
|
||||
|
||||
EditorToolbar.prototype = {
|
||||
@@ -1907,7 +1908,7 @@ Y.Base.mix(Y.M.editor_atto.Editor, [EditorToolbar]);
|
||||
|
||||
function EditorToolbarNav() {}
|
||||
|
||||
EditorToolbarNav.ATTRS= {
|
||||
EditorToolbarNav.ATTRS = {
|
||||
};
|
||||
|
||||
EditorToolbarNav.prototype = {
|
||||
@@ -2114,7 +2115,7 @@ Y.Base.mix(Y.M.editor_atto.Editor, [EditorToolbarNav]);
|
||||
|
||||
function EditorSelection() {}
|
||||
|
||||
EditorSelection.ATTRS= {
|
||||
EditorSelection.ATTRS = {
|
||||
};
|
||||
|
||||
EditorSelection.prototype = {
|
||||
@@ -2337,7 +2338,7 @@ EditorSelection.prototype = {
|
||||
return false;
|
||||
}
|
||||
|
||||
selectednodes.each(function(node){
|
||||
selectednodes.each(function(node) {
|
||||
// Check each node, if it doesn't match the tags AND is not within the specified tags then fail this thing.
|
||||
if (requireall) {
|
||||
// Check for at least one failure.
|
||||
@@ -2535,7 +2536,7 @@ Y.Base.mix(Y.M.editor_atto.Editor, [EditorSelection]);
|
||||
|
||||
function EditorStyling() {}
|
||||
|
||||
EditorStyling.ATTRS= {
|
||||
EditorStyling.ATTRS = {
|
||||
};
|
||||
|
||||
EditorStyling.prototype = {
|
||||
@@ -2612,7 +2613,7 @@ EditorStyling.prototype = {
|
||||
|
||||
cssApplier.applyToSelection();
|
||||
|
||||
this.editor.all('.' + classname).each(function (node) {
|
||||
this.editor.all('.' + classname).each(function(node) {
|
||||
node.removeClass(classname).setStyles(styles);
|
||||
}, this);
|
||||
|
||||
@@ -2651,7 +2652,7 @@ EditorStyling.prototype = {
|
||||
// move the boundary to the table cell.
|
||||
// This is because we might have a table in a div, and we select some text in a cell,
|
||||
// want to limit the change in style to the table cell, not the entire table (via the outer div).
|
||||
cell = selectionparentnode.ancestor(function (node) {
|
||||
cell = selectionparentnode.ancestor(function(node) {
|
||||
var tagname = node.get('tagName');
|
||||
if (tagname) {
|
||||
tagname = tagname.toLowerCase();
|
||||
@@ -2669,7 +2670,7 @@ EditorStyling.prototype = {
|
||||
nearestblock = selectionparentnode.ancestor(this.BLOCK_TAGS.join(', '), true);
|
||||
if (nearestblock) {
|
||||
// Check that the block is contained by the boundary.
|
||||
match = nearestblock.ancestor(function (node) {
|
||||
match = nearestblock.ancestor(function(node) {
|
||||
return node === boundary;
|
||||
}, false);
|
||||
|
||||
@@ -2682,7 +2683,7 @@ EditorStyling.prototype = {
|
||||
if (!nearestblock) {
|
||||
// There is no block node in the content, wrap the content in a p and use that.
|
||||
newcontent = Y.Node.create('<p></p>');
|
||||
boundary.get('childNodes').each(function (child) {
|
||||
boundary.get('childNodes').each(function(child) {
|
||||
newcontent.append(child.remove());
|
||||
});
|
||||
boundary.append(newcontent);
|
||||
@@ -2697,7 +2698,7 @@ EditorStyling.prototype = {
|
||||
// Copy all attributes.
|
||||
replacement.setAttrs(nearestblock.getAttrs());
|
||||
// Copy all children.
|
||||
nearestblock.get('childNodes').each(function (child) {
|
||||
nearestblock.get('childNodes').each(function(child) {
|
||||
child.remove();
|
||||
replacement.append(child);
|
||||
});
|
||||
@@ -2753,7 +2754,7 @@ Y.Base.mix(Y.M.editor_atto.Editor, [EditorStyling]);
|
||||
|
||||
function EditorFilepicker() {}
|
||||
|
||||
EditorFilepicker.ATTRS= {
|
||||
EditorFilepicker.ATTRS = {
|
||||
/**
|
||||
* The options for the filepicker.
|
||||
*
|
||||
@@ -2790,7 +2791,7 @@ EditorFilepicker.prototype = {
|
||||
*/
|
||||
showFilepicker: function(type, callback, context) {
|
||||
var self = this;
|
||||
Y.use('core_filepicker', function (Y) {
|
||||
Y.use('core_filepicker', function(Y) {
|
||||
var options = Y.clone(self.get('filepickeroptions')[type], true);
|
||||
options.formcallback = callback;
|
||||
if (context) {
|
||||
|
||||
+3
-3
@@ -183,7 +183,7 @@ var MENUTEMPLATE = '' +
|
||||
'tabindex="-1" ' +
|
||||
'type="button" ' +
|
||||
'title="{{title}}">' +
|
||||
'<img class="icon" aria-hidden="true" role="presentation" width="16" height="16" '+
|
||||
'<img class="icon" aria-hidden="true" role="presentation" width="16" height="16" ' +
|
||||
'style="background-color:{{config.menuColor}};" src="{{config.iconurl}}" />' +
|
||||
'<img class="icon" aria-hidden="true" role="presentation" width="16" height="16" ' +
|
||||
'src="{{image_url "t/expanded" "moodle"}}"/>' +
|
||||
@@ -198,7 +198,7 @@ var DISABLED = 'disabled',
|
||||
|
||||
function EditorPluginButtons() {}
|
||||
|
||||
EditorPluginButtons.ATTRS= {
|
||||
EditorPluginButtons.ATTRS = {
|
||||
};
|
||||
|
||||
EditorPluginButtons.prototype = {
|
||||
@@ -1103,7 +1103,7 @@ Y.Base.mix(Y.M.editor_atto.EditorPlugin, [EditorPluginButtons]);
|
||||
|
||||
function EditorPluginDialogue() {}
|
||||
|
||||
EditorPluginDialogue.ATTRS= {
|
||||
EditorPluginDialogue.ATTRS = {
|
||||
};
|
||||
|
||||
EditorPluginDialogue.prototype = {
|
||||
|
||||
+3
-3
@@ -183,7 +183,7 @@ var MENUTEMPLATE = '' +
|
||||
'tabindex="-1" ' +
|
||||
'type="button" ' +
|
||||
'title="{{title}}">' +
|
||||
'<img class="icon" aria-hidden="true" role="presentation" width="16" height="16" '+
|
||||
'<img class="icon" aria-hidden="true" role="presentation" width="16" height="16" ' +
|
||||
'style="background-color:{{config.menuColor}};" src="{{config.iconurl}}" />' +
|
||||
'<img class="icon" aria-hidden="true" role="presentation" width="16" height="16" ' +
|
||||
'src="{{image_url "t/expanded" "moodle"}}"/>' +
|
||||
@@ -198,7 +198,7 @@ var DISABLED = 'disabled',
|
||||
|
||||
function EditorPluginButtons() {}
|
||||
|
||||
EditorPluginButtons.ATTRS= {
|
||||
EditorPluginButtons.ATTRS = {
|
||||
};
|
||||
|
||||
EditorPluginButtons.prototype = {
|
||||
@@ -1099,7 +1099,7 @@ Y.Base.mix(Y.M.editor_atto.EditorPlugin, [EditorPluginButtons]);
|
||||
|
||||
function EditorPluginDialogue() {}
|
||||
|
||||
EditorPluginDialogue.ATTRS= {
|
||||
EditorPluginDialogue.ATTRS = {
|
||||
};
|
||||
|
||||
EditorPluginDialogue.prototype = {
|
||||
|
||||
+7
-5
@@ -23,7 +23,7 @@ Y.mix(Y.Node.prototype, {
|
||||
if (this.get('nodeName').toLowerCase() !== 'select') {
|
||||
return false;
|
||||
}
|
||||
return this.all('option').item(this.optionSize()-1).get('value');
|
||||
return this.all('option').item(this.optionSize() - 1).get('value');
|
||||
},
|
||||
/**
|
||||
* Gets the number of options in the select box
|
||||
@@ -78,7 +78,9 @@ M.form.dateselector = {
|
||||
Y.one('#dateselector-calendar-panel').setStyle('zIndex', null);
|
||||
this.panel.on('heightChange', this.fix_position, this);
|
||||
|
||||
Y.one('#dateselector-calendar-panel').on('click', function(e){e.halt();});
|
||||
Y.one('#dateselector-calendar-panel').on('click', function(e) {
|
||||
e.halt();
|
||||
});
|
||||
Y.one(document.body).on('click', this.document_click, this);
|
||||
|
||||
this.calendar = new MOODLECALENDAR({
|
||||
@@ -94,7 +96,7 @@ M.form.dateselector = {
|
||||
config.wed,
|
||||
config.thu,
|
||||
config.fri,
|
||||
config.sat ]
|
||||
config.sat]
|
||||
});
|
||||
},
|
||||
cancel_any_timeout: function() {
|
||||
@@ -202,7 +204,7 @@ CALENDAR.prototype = {
|
||||
closepopup: true,
|
||||
initializer: function() {
|
||||
var controls = this.get('node').all('select');
|
||||
controls.each(function(node){
|
||||
controls.each(function(node) {
|
||||
if (node.get('name').match(/\[year\]/)) {
|
||||
this.yearselect = node;
|
||||
} else if (node.get('name').match(/\[month\]/)) {
|
||||
@@ -348,7 +350,7 @@ CALENDAR.prototype = {
|
||||
Y.extend(CALENDAR, Y.Base, CALENDAR.prototype, {
|
||||
NAME: 'Date Selector',
|
||||
ATTRS: {
|
||||
firstdayofweek : {
|
||||
firstdayofweek: {
|
||||
validator: Y.Lang.isString
|
||||
},
|
||||
node: {
|
||||
|
||||
@@ -23,7 +23,7 @@ Y.mix(Y.Node.prototype, {
|
||||
if (this.get('nodeName').toLowerCase() !== 'select') {
|
||||
return false;
|
||||
}
|
||||
return this.all('option').item(this.optionSize()-1).get('value');
|
||||
return this.all('option').item(this.optionSize() - 1).get('value');
|
||||
},
|
||||
/**
|
||||
* Gets the number of options in the select box
|
||||
@@ -78,7 +78,9 @@ M.form.dateselector = {
|
||||
Y.one('#dateselector-calendar-panel').setStyle('zIndex', null);
|
||||
this.panel.on('heightChange', this.fix_position, this);
|
||||
|
||||
Y.one('#dateselector-calendar-panel').on('click', function(e){e.halt();});
|
||||
Y.one('#dateselector-calendar-panel').on('click', function(e) {
|
||||
e.halt();
|
||||
});
|
||||
Y.one(document.body).on('click', this.document_click, this);
|
||||
|
||||
this.calendar = new MOODLECALENDAR({
|
||||
@@ -94,7 +96,7 @@ M.form.dateselector = {
|
||||
config.wed,
|
||||
config.thu,
|
||||
config.fri,
|
||||
config.sat ]
|
||||
config.sat]
|
||||
});
|
||||
},
|
||||
cancel_any_timeout: function() {
|
||||
@@ -202,7 +204,7 @@ CALENDAR.prototype = {
|
||||
closepopup: true,
|
||||
initializer: function() {
|
||||
var controls = this.get('node').all('select');
|
||||
controls.each(function(node){
|
||||
controls.each(function(node) {
|
||||
if (node.get('name').match(/\[year\]/)) {
|
||||
this.yearselect = node;
|
||||
} else if (node.get('name').match(/\[month\]/)) {
|
||||
@@ -348,7 +350,7 @@ CALENDAR.prototype = {
|
||||
Y.extend(CALENDAR, Y.Base, CALENDAR.prototype, {
|
||||
NAME: 'Date Selector',
|
||||
ATTRS: {
|
||||
firstdayofweek : {
|
||||
firstdayofweek: {
|
||||
validator: Y.Lang.isString
|
||||
},
|
||||
node: {
|
||||
|
||||
+10
-8
@@ -6,28 +6,30 @@ var PASSWORDUNMASK = function() {
|
||||
|
||||
Y.extend(PASSWORDUNMASK, Y.Base, {
|
||||
// Initialize checkbox if id is passed.
|
||||
initializer : function(params) {
|
||||
initializer: function(params) {
|
||||
if (params && params.formid) {
|
||||
this.add_checkbox(params.formid, params.checkboxlabel, params.checkboxname);
|
||||
}
|
||||
},
|
||||
|
||||
// Create checkbox for unmasking password.
|
||||
add_checkbox : function(elementid, checkboxlabel, checkboxname) {
|
||||
var node = Y.one('#'+elementid);
|
||||
add_checkbox: function(elementid, checkboxlabel, checkboxname) {
|
||||
var node = Y.one('#' + elementid);
|
||||
|
||||
// Retaining unmask div from previous implementation.
|
||||
var unmaskdiv = Y.Node.create('<div id="'+elementid+'unmaskdiv" class="unmask"></div>');
|
||||
var unmaskdiv = Y.Node.create('<div id="' + elementid + 'unmaskdiv" class="unmask"></div>');
|
||||
|
||||
// Add checkbox for unmasking to unmaskdiv.
|
||||
var unmaskchb = Y.Node.create('<input id="'+elementid+'unmask" type="checkbox" name="'+
|
||||
checkboxname+'unmask">');
|
||||
var unmaskchb = Y.Node.create('<input id="' + elementid + 'unmask" type="checkbox" name="' +
|
||||
checkboxname + 'unmask">');
|
||||
unmaskdiv.appendChild(unmaskchb);
|
||||
// Attach event using static javascript function for unmasking password.
|
||||
unmaskchb.on('click', function() {window.unmaskPassword(elementid);});
|
||||
unmaskchb.on('click', function() {
|
||||
window.unmaskPassword(elementid);
|
||||
});
|
||||
|
||||
// Add label for checkbox to unmaskdiv.
|
||||
var unmasklabel = Y.Node.create('<label for="'+elementid+'unmask">'+checkboxlabel+'</label>');
|
||||
var unmasklabel = Y.Node.create('<label for="' + elementid + 'unmask">' + checkboxlabel + '</label>');
|
||||
unmaskdiv.appendChild(unmasklabel);
|
||||
|
||||
// Insert unmask div in the same div as password input.
|
||||
|
||||
+10
-8
@@ -6,28 +6,30 @@ var PASSWORDUNMASK = function() {
|
||||
|
||||
Y.extend(PASSWORDUNMASK, Y.Base, {
|
||||
// Initialize checkbox if id is passed.
|
||||
initializer : function(params) {
|
||||
initializer: function(params) {
|
||||
if (params && params.formid) {
|
||||
this.add_checkbox(params.formid, params.checkboxlabel, params.checkboxname);
|
||||
}
|
||||
},
|
||||
|
||||
// Create checkbox for unmasking password.
|
||||
add_checkbox : function(elementid, checkboxlabel, checkboxname) {
|
||||
var node = Y.one('#'+elementid);
|
||||
add_checkbox: function(elementid, checkboxlabel, checkboxname) {
|
||||
var node = Y.one('#' + elementid);
|
||||
|
||||
// Retaining unmask div from previous implementation.
|
||||
var unmaskdiv = Y.Node.create('<div id="'+elementid+'unmaskdiv" class="unmask"></div>');
|
||||
var unmaskdiv = Y.Node.create('<div id="' + elementid + 'unmaskdiv" class="unmask"></div>');
|
||||
|
||||
// Add checkbox for unmasking to unmaskdiv.
|
||||
var unmaskchb = Y.Node.create('<input id="'+elementid+'unmask" type="checkbox" name="'+
|
||||
checkboxname+'unmask">');
|
||||
var unmaskchb = Y.Node.create('<input id="' + elementid + 'unmask" type="checkbox" name="' +
|
||||
checkboxname + 'unmask">');
|
||||
unmaskdiv.appendChild(unmaskchb);
|
||||
// Attach event using static javascript function for unmasking password.
|
||||
unmaskchb.on('click', function() {window.unmaskPassword(elementid);});
|
||||
unmaskchb.on('click', function() {
|
||||
window.unmaskPassword(elementid);
|
||||
});
|
||||
|
||||
// Add label for checkbox to unmaskdiv.
|
||||
var unmasklabel = Y.Node.create('<label for="'+elementid+'unmask">'+checkboxlabel+'</label>');
|
||||
var unmasklabel = Y.Node.create('<label for="' + elementid + 'unmask">' + checkboxlabel + '</label>');
|
||||
unmaskdiv.appendChild(unmasklabel);
|
||||
|
||||
// Insert unmask div in the same div as password input.
|
||||
|
||||
@@ -62,7 +62,7 @@ Y.extend(SHORTFORMS, Y.Base, {
|
||||
* @protected
|
||||
*/
|
||||
initializer: function() {
|
||||
var form = Y.one('#'+this.get('formid')),
|
||||
var form = Y.one('#' + this.get('formid')),
|
||||
fieldlist,
|
||||
btn,
|
||||
link,
|
||||
@@ -156,13 +156,13 @@ Y.extend(SHORTFORMS, Y.Base, {
|
||||
headerlink.setAttribute('aria-expanded', 'true');
|
||||
}
|
||||
}
|
||||
var statuselement = this.form.one('input[name=mform_isexpanded_'+fieldset.get('id')+']');
|
||||
var statuselement = this.form.one('input[name=mform_isexpanded_' + fieldset.get('id') + ']');
|
||||
if (!statuselement) {
|
||||
Y.log("M.form.shortforms::switch_state was called on an fieldset without a status field: '" +
|
||||
fieldset.get('id') + "'", 'debug', 'moodle-form-shortforms');
|
||||
return this;
|
||||
}
|
||||
statuselement.set('value', collapsed ? 0: 1);
|
||||
statuselement.set('value', collapsed ? 0 : 1);
|
||||
|
||||
return this;
|
||||
},
|
||||
|
||||
@@ -62,7 +62,7 @@ Y.extend(SHORTFORMS, Y.Base, {
|
||||
* @protected
|
||||
*/
|
||||
initializer: function() {
|
||||
var form = Y.one('#'+this.get('formid')),
|
||||
var form = Y.one('#' + this.get('formid')),
|
||||
fieldlist,
|
||||
btn,
|
||||
link,
|
||||
@@ -155,11 +155,11 @@ Y.extend(SHORTFORMS, Y.Base, {
|
||||
headerlink.setAttribute('aria-expanded', 'true');
|
||||
}
|
||||
}
|
||||
var statuselement = this.form.one('input[name=mform_isexpanded_'+fieldset.get('id')+']');
|
||||
var statuselement = this.form.one('input[name=mform_isexpanded_' + fieldset.get('id') + ']');
|
||||
if (!statuselement) {
|
||||
return this;
|
||||
}
|
||||
statuselement.set('value', collapsed ? 0: 1);
|
||||
statuselement.set('value', collapsed ? 0 : 1);
|
||||
|
||||
return this;
|
||||
},
|
||||
|
||||
+1
-1
@@ -55,7 +55,7 @@ Y.extend(SHOWADVANCED, Y.Base, {
|
||||
* @protected
|
||||
*/
|
||||
initializer: function() {
|
||||
var form = Y.one('#'+this.get('formid')),
|
||||
var form = Y.one('#' + this.get('formid')),
|
||||
fieldlist = form.all(SELECTORS.FIELDSETCONTAINSADVANCED);
|
||||
|
||||
// Look through fieldset divs that contain advanced elements.
|
||||
|
||||
@@ -55,7 +55,7 @@ Y.extend(SHOWADVANCED, Y.Base, {
|
||||
* @protected
|
||||
*/
|
||||
initializer: function() {
|
||||
var form = Y.one('#'+this.get('formid')),
|
||||
var form = Y.one('#' + this.get('formid')),
|
||||
fieldlist = form.all(SELECTORS.FIELDSETCONTAINSADVANCED);
|
||||
|
||||
// Look through fieldset divs that contain advanced elements.
|
||||
|
||||
@@ -8,17 +8,17 @@ YUI.add('moodle-core-actionmenu', function (Y, NAME) {
|
||||
|
||||
var BODY = Y.one(Y.config.doc.body),
|
||||
CSS = {
|
||||
MENUSHOWN : 'action-menu-shown'
|
||||
MENUSHOWN: 'action-menu-shown'
|
||||
},
|
||||
SELECTOR = {
|
||||
CAN_RECEIVE_FOCUS_SELECTOR: 'input:not([type="hidden"]), a[href], button, textarea, select, [tabindex]',
|
||||
MENU : '.moodle-actionmenu[data-enhance=moodle-core-actionmenu]',
|
||||
MENU: '.moodle-actionmenu[data-enhance=moodle-core-actionmenu]',
|
||||
MENUBAR: '[role="menubar"]',
|
||||
MENUITEM: '[role="menuitem"]',
|
||||
MENUCONTENT : '.menu[data-rel=menu-content]',
|
||||
MENUCONTENT: '.menu[data-rel=menu-content]',
|
||||
MENUCONTENTCHILD: 'li a',
|
||||
MENUCHILD: '.menu li a',
|
||||
TOGGLE : '.toggle-display',
|
||||
TOGGLE: '.toggle-display',
|
||||
KEEPOPEN: '[data-keepopen="1"]',
|
||||
MENUBARITEMS: [
|
||||
'[role="menubar"] > [role="menuitem"]',
|
||||
@@ -31,10 +31,10 @@ var BODY = Y.one(Y.config.doc.body),
|
||||
},
|
||||
ACTIONMENU,
|
||||
ALIGN = {
|
||||
TL : 'tl',
|
||||
TR : 'tr',
|
||||
BL : 'bl',
|
||||
BR : 'br'
|
||||
TL: 'tl',
|
||||
TR: 'tr',
|
||||
BL: 'bl',
|
||||
BR: 'br'
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -58,7 +58,7 @@ ACTIONMENU.prototype = {
|
||||
* @type M.core.dialogue
|
||||
* @protected
|
||||
*/
|
||||
dialogue : null,
|
||||
dialogue: null,
|
||||
|
||||
/**
|
||||
* An array of events attached during the display of the dialogue.
|
||||
@@ -66,7 +66,7 @@ ACTIONMENU.prototype = {
|
||||
* @type Object
|
||||
* @protected
|
||||
*/
|
||||
events : [],
|
||||
events: [],
|
||||
|
||||
/**
|
||||
* The node that owns the currently displayed menu.
|
||||
@@ -75,7 +75,7 @@ ACTIONMENU.prototype = {
|
||||
* @type Node
|
||||
* @default null
|
||||
*/
|
||||
owner : null,
|
||||
owner: null,
|
||||
|
||||
/**
|
||||
* The menu button that toggles this open.
|
||||
@@ -118,7 +118,7 @@ ACTIONMENU.prototype = {
|
||||
*
|
||||
* @method initializer
|
||||
*/
|
||||
initializer : function() {
|
||||
initializer: function() {
|
||||
Y.log('Initialising the action menu manager', 'debug', ACTIONMENU.NAME);
|
||||
Y.all(SELECTOR.MENU).each(this.enhance, this);
|
||||
BODY.delegate('key', this.moveMenuItem, 'down:37,39', SELECTOR.MENUBARITEMS.join(','), this);
|
||||
@@ -140,7 +140,7 @@ ACTIONMENU.prototype = {
|
||||
* @param {Node} menu
|
||||
* @return boolean
|
||||
*/
|
||||
enhance : function(menu) {
|
||||
enhance: function(menu) {
|
||||
var menucontent = menu.one(SELECTOR.MENUCONTENT),
|
||||
align;
|
||||
if (!menucontent) {
|
||||
@@ -149,8 +149,8 @@ ACTIONMENU.prototype = {
|
||||
align = menucontent.getData('align') || this.get('align').join('-');
|
||||
menu.one(SELECTOR.TOGGLE).set('aria-haspopup', true);
|
||||
menucontent.set('aria-hidden', true);
|
||||
if (!menucontent.hasClass('align-'+align)) {
|
||||
menucontent.addClass('align-'+align);
|
||||
if (!menucontent.hasClass('align-' + align)) {
|
||||
menucontent.addClass('align-' + align);
|
||||
}
|
||||
if (menucontent.hasChildNodes()) {
|
||||
menu.setAttribute('data-enhanced', '1');
|
||||
@@ -250,7 +250,7 @@ ACTIONMENU.prototype = {
|
||||
* @param {EventFacade} e
|
||||
* @method hideMenu
|
||||
*/
|
||||
hideMenu : function(e) {
|
||||
hideMenu: function(e) {
|
||||
if (this.dialogue) {
|
||||
Y.log('Hiding an action menu', 'debug', ACTIONMENU.NAME);
|
||||
this.dialogue.removeClass('show');
|
||||
@@ -292,7 +292,7 @@ ACTIONMENU.prototype = {
|
||||
* @method toggleMenu
|
||||
* @param {EventFacade} e
|
||||
*/
|
||||
toggleMenu : function(e) {
|
||||
toggleMenu: function(e) {
|
||||
var menu = e.target.ancestor(SELECTOR.MENU),
|
||||
menuvisible = (menu.hasClass('show'));
|
||||
|
||||
@@ -420,7 +420,7 @@ ACTIONMENU.prototype = {
|
||||
* @method hideIfOutside
|
||||
* @param {EventFacade} e
|
||||
*/
|
||||
hideIfOutside : function(e) {
|
||||
hideIfOutside: function(e) {
|
||||
if (!e.target.ancestor(SELECTOR.MENUCONTENT, true)) {
|
||||
this.hideMenu(e);
|
||||
}
|
||||
@@ -434,7 +434,7 @@ ACTIONMENU.prototype = {
|
||||
* @param {Node} menu
|
||||
* @return M.core.dialogue
|
||||
*/
|
||||
showMenu : function(e, menu) {
|
||||
showMenu: function(e, menu) {
|
||||
Y.log('Displaying an action menu', 'debug', ACTIONMENU.NAME);
|
||||
var ownerselector = menu.getData('owner'),
|
||||
menucontent = menu.one(SELECTOR.MENUCONTENT);
|
||||
@@ -452,7 +452,7 @@ ACTIONMENU.prototype = {
|
||||
this.menuChildren = this.dialogue.all(SELECTOR.MENUCHILD);
|
||||
if (this.menuChildren) {
|
||||
this.firstMenuChild = this.menuChildren.item(0);
|
||||
this.lastMenuChild = this.menuChildren.item(this.menuChildren.size() - 1);
|
||||
this.lastMenuChild = this.menuChildren.item(this.menuChildren.size() - 1);
|
||||
|
||||
this.firstMenuChild.focus();
|
||||
}
|
||||
@@ -489,7 +489,7 @@ ACTIONMENU.prototype = {
|
||||
* @method constrain
|
||||
* @param {Node} node
|
||||
*/
|
||||
constrain : function(node) {
|
||||
constrain: function(node) {
|
||||
var selector = node.getData('constraint'),
|
||||
nx = node.getX(),
|
||||
ny = node.getY(),
|
||||
@@ -575,10 +575,10 @@ ACTIONMENU.prototype = {
|
||||
};
|
||||
|
||||
Y.extend(ACTIONMENU, Y.Base, ACTIONMENU.prototype, {
|
||||
NAME : 'moodle-core-actionmenu',
|
||||
ATTRS : {
|
||||
align : {
|
||||
value : [
|
||||
NAME: 'moodle-core-actionmenu',
|
||||
ATTRS: {
|
||||
align: {
|
||||
value: [
|
||||
ALIGN.TR, // The dialogue.
|
||||
ALIGN.BR // The button
|
||||
]
|
||||
|
||||
+25
-25
@@ -8,17 +8,17 @@ YUI.add('moodle-core-actionmenu', function (Y, NAME) {
|
||||
|
||||
var BODY = Y.one(Y.config.doc.body),
|
||||
CSS = {
|
||||
MENUSHOWN : 'action-menu-shown'
|
||||
MENUSHOWN: 'action-menu-shown'
|
||||
},
|
||||
SELECTOR = {
|
||||
CAN_RECEIVE_FOCUS_SELECTOR: 'input:not([type="hidden"]), a[href], button, textarea, select, [tabindex]',
|
||||
MENU : '.moodle-actionmenu[data-enhance=moodle-core-actionmenu]',
|
||||
MENU: '.moodle-actionmenu[data-enhance=moodle-core-actionmenu]',
|
||||
MENUBAR: '[role="menubar"]',
|
||||
MENUITEM: '[role="menuitem"]',
|
||||
MENUCONTENT : '.menu[data-rel=menu-content]',
|
||||
MENUCONTENT: '.menu[data-rel=menu-content]',
|
||||
MENUCONTENTCHILD: 'li a',
|
||||
MENUCHILD: '.menu li a',
|
||||
TOGGLE : '.toggle-display',
|
||||
TOGGLE: '.toggle-display',
|
||||
KEEPOPEN: '[data-keepopen="1"]',
|
||||
MENUBARITEMS: [
|
||||
'[role="menubar"] > [role="menuitem"]',
|
||||
@@ -31,10 +31,10 @@ var BODY = Y.one(Y.config.doc.body),
|
||||
},
|
||||
ACTIONMENU,
|
||||
ALIGN = {
|
||||
TL : 'tl',
|
||||
TR : 'tr',
|
||||
BL : 'bl',
|
||||
BR : 'br'
|
||||
TL: 'tl',
|
||||
TR: 'tr',
|
||||
BL: 'bl',
|
||||
BR: 'br'
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -58,7 +58,7 @@ ACTIONMENU.prototype = {
|
||||
* @type M.core.dialogue
|
||||
* @protected
|
||||
*/
|
||||
dialogue : null,
|
||||
dialogue: null,
|
||||
|
||||
/**
|
||||
* An array of events attached during the display of the dialogue.
|
||||
@@ -66,7 +66,7 @@ ACTIONMENU.prototype = {
|
||||
* @type Object
|
||||
* @protected
|
||||
*/
|
||||
events : [],
|
||||
events: [],
|
||||
|
||||
/**
|
||||
* The node that owns the currently displayed menu.
|
||||
@@ -75,7 +75,7 @@ ACTIONMENU.prototype = {
|
||||
* @type Node
|
||||
* @default null
|
||||
*/
|
||||
owner : null,
|
||||
owner: null,
|
||||
|
||||
/**
|
||||
* The menu button that toggles this open.
|
||||
@@ -118,7 +118,7 @@ ACTIONMENU.prototype = {
|
||||
*
|
||||
* @method initializer
|
||||
*/
|
||||
initializer : function() {
|
||||
initializer: function() {
|
||||
Y.all(SELECTOR.MENU).each(this.enhance, this);
|
||||
BODY.delegate('key', this.moveMenuItem, 'down:37,39', SELECTOR.MENUBARITEMS.join(','), this);
|
||||
|
||||
@@ -139,7 +139,7 @@ ACTIONMENU.prototype = {
|
||||
* @param {Node} menu
|
||||
* @return boolean
|
||||
*/
|
||||
enhance : function(menu) {
|
||||
enhance: function(menu) {
|
||||
var menucontent = menu.one(SELECTOR.MENUCONTENT),
|
||||
align;
|
||||
if (!menucontent) {
|
||||
@@ -148,8 +148,8 @@ ACTIONMENU.prototype = {
|
||||
align = menucontent.getData('align') || this.get('align').join('-');
|
||||
menu.one(SELECTOR.TOGGLE).set('aria-haspopup', true);
|
||||
menucontent.set('aria-hidden', true);
|
||||
if (!menucontent.hasClass('align-'+align)) {
|
||||
menucontent.addClass('align-'+align);
|
||||
if (!menucontent.hasClass('align-' + align)) {
|
||||
menucontent.addClass('align-' + align);
|
||||
}
|
||||
if (menucontent.hasChildNodes()) {
|
||||
menu.setAttribute('data-enhanced', '1');
|
||||
@@ -249,7 +249,7 @@ ACTIONMENU.prototype = {
|
||||
* @param {EventFacade} e
|
||||
* @method hideMenu
|
||||
*/
|
||||
hideMenu : function(e) {
|
||||
hideMenu: function(e) {
|
||||
if (this.dialogue) {
|
||||
this.dialogue.removeClass('show');
|
||||
this.dialogue.one(SELECTOR.MENUCONTENT).set('aria-hidden', true);
|
||||
@@ -290,7 +290,7 @@ ACTIONMENU.prototype = {
|
||||
* @method toggleMenu
|
||||
* @param {EventFacade} e
|
||||
*/
|
||||
toggleMenu : function(e) {
|
||||
toggleMenu: function(e) {
|
||||
var menu = e.target.ancestor(SELECTOR.MENU),
|
||||
menuvisible = (menu.hasClass('show'));
|
||||
|
||||
@@ -417,7 +417,7 @@ ACTIONMENU.prototype = {
|
||||
* @method hideIfOutside
|
||||
* @param {EventFacade} e
|
||||
*/
|
||||
hideIfOutside : function(e) {
|
||||
hideIfOutside: function(e) {
|
||||
if (!e.target.ancestor(SELECTOR.MENUCONTENT, true)) {
|
||||
this.hideMenu(e);
|
||||
}
|
||||
@@ -431,7 +431,7 @@ ACTIONMENU.prototype = {
|
||||
* @param {Node} menu
|
||||
* @return M.core.dialogue
|
||||
*/
|
||||
showMenu : function(e, menu) {
|
||||
showMenu: function(e, menu) {
|
||||
var ownerselector = menu.getData('owner'),
|
||||
menucontent = menu.one(SELECTOR.MENUCONTENT);
|
||||
this.owner = (ownerselector) ? menu.ancestor(ownerselector) : null;
|
||||
@@ -448,7 +448,7 @@ ACTIONMENU.prototype = {
|
||||
this.menuChildren = this.dialogue.all(SELECTOR.MENUCHILD);
|
||||
if (this.menuChildren) {
|
||||
this.firstMenuChild = this.menuChildren.item(0);
|
||||
this.lastMenuChild = this.menuChildren.item(this.menuChildren.size() - 1);
|
||||
this.lastMenuChild = this.menuChildren.item(this.menuChildren.size() - 1);
|
||||
|
||||
this.firstMenuChild.focus();
|
||||
}
|
||||
@@ -485,7 +485,7 @@ ACTIONMENU.prototype = {
|
||||
* @method constrain
|
||||
* @param {Node} node
|
||||
*/
|
||||
constrain : function(node) {
|
||||
constrain: function(node) {
|
||||
var selector = node.getData('constraint'),
|
||||
nx = node.getX(),
|
||||
ny = node.getY(),
|
||||
@@ -570,10 +570,10 @@ ACTIONMENU.prototype = {
|
||||
};
|
||||
|
||||
Y.extend(ACTIONMENU, Y.Base, ACTIONMENU.prototype, {
|
||||
NAME : 'moodle-core-actionmenu',
|
||||
ATTRS : {
|
||||
align : {
|
||||
value : [
|
||||
NAME: 'moodle-core-actionmenu',
|
||||
ATTRS: {
|
||||
align: {
|
||||
value: [
|
||||
ALIGN.TR, // The dialogue.
|
||||
ALIGN.BR // The button
|
||||
]
|
||||
|
||||
+163
-159
@@ -10,22 +10,22 @@ YUI.add('moodle-core-blocks', function (Y, NAME) {
|
||||
|
||||
var AJAXURL = '/lib/ajax/blocks.php',
|
||||
CSS = {
|
||||
BLOCK : 'block',
|
||||
BLOCKREGION : 'block-region',
|
||||
BLOCKADMINBLOCK : 'block_adminblock',
|
||||
EDITINGMOVE : 'editing_move',
|
||||
HEADER : 'header',
|
||||
LIGHTBOX : 'lightbox',
|
||||
REGIONCONTENT : 'region-content',
|
||||
SKIPBLOCK : 'skip-block',
|
||||
SKIPBLOCKTO : 'skip-block-to',
|
||||
MYINDEX : 'page-my-index',
|
||||
REGIONMAIN : 'region-main',
|
||||
BLOCKSMOVING : 'blocks-moving'
|
||||
BLOCK: 'block',
|
||||
BLOCKREGION: 'block-region',
|
||||
BLOCKADMINBLOCK: 'block_adminblock',
|
||||
EDITINGMOVE: 'editing_move',
|
||||
HEADER: 'header',
|
||||
LIGHTBOX: 'lightbox',
|
||||
REGIONCONTENT: 'region-content',
|
||||
SKIPBLOCK: 'skip-block',
|
||||
SKIPBLOCKTO: 'skip-block-to',
|
||||
MYINDEX: 'page-my-index',
|
||||
REGIONMAIN: 'region-main',
|
||||
BLOCKSMOVING: 'blocks-moving'
|
||||
};
|
||||
|
||||
var SELECTOR = {
|
||||
DRAGHANDLE : '.' + CSS.HEADER + ' .commands .moodle-core-dragdrop-draghandle'
|
||||
DRAGHANDLE: '.' + CSS.HEADER + ' .commands .moodle-core-dragdrop-draghandle'
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -42,17 +42,17 @@ var DRAGBLOCK = function() {
|
||||
DRAGBLOCK.superclass.constructor.apply(this, arguments);
|
||||
};
|
||||
Y.extend(DRAGBLOCK, M.core.dragdrop, {
|
||||
skipnodetop : null,
|
||||
skipnodebottom : null,
|
||||
dragsourceregion : null,
|
||||
initializer : function() {
|
||||
skipnodetop: null,
|
||||
skipnodebottom: null,
|
||||
dragsourceregion: null,
|
||||
initializer: function() {
|
||||
// Set group for parent class
|
||||
this.groups = ['block'];
|
||||
this.samenodeclass = CSS.BLOCK;
|
||||
this.parentnodeclass = CSS.REGIONCONTENT;
|
||||
|
||||
// Add relevant classes and ID to 'content' block region on Dashboard page.
|
||||
var myhomecontent = Y.Node.all('body#'+CSS.MYINDEX+' #'+CSS.REGIONMAIN+' > .'+CSS.REGIONCONTENT);
|
||||
var myhomecontent = Y.Node.all('body#' + CSS.MYINDEX + ' #' + CSS.REGIONMAIN + ' > .' + CSS.REGIONCONTENT);
|
||||
if (myhomecontent.size() > 0) {
|
||||
var contentregion = myhomecontent.item(0);
|
||||
contentregion.addClass(CSS.BLOCKREGION);
|
||||
@@ -62,7 +62,7 @@ Y.extend(DRAGBLOCK, M.core.dragdrop, {
|
||||
|
||||
// Initialise blocks dragging
|
||||
// Find all block regions on the page
|
||||
var blockregionlist = Y.Node.all('div.'+CSS.BLOCKREGION);
|
||||
var blockregionlist = Y.Node.all('div.' + CSS.BLOCKREGION);
|
||||
|
||||
if (blockregionlist.size() === 0) {
|
||||
return false;
|
||||
@@ -81,12 +81,12 @@ Y.extend(DRAGBLOCK, M.core.dragdrop, {
|
||||
|
||||
if (pre.size() === 0 && post.size() === 1) {
|
||||
// pre block is missing, instert it before post
|
||||
blockregion.setAttrs({id : 'region-pre'});
|
||||
blockregion.setAttrs({id: 'region-pre'});
|
||||
post.item(0).insert(blockregion, 'before');
|
||||
blockregionlist.unshift(blockregion);
|
||||
} else if (post.size() === 0 && pre.size() === 1) {
|
||||
// post block is missing, instert it after pre
|
||||
blockregion.setAttrs({id : 'region-post'});
|
||||
blockregion.setAttrs({id: 'region-post'});
|
||||
pre.item(0).insert(blockregion, 'after');
|
||||
blockregionlist.push(blockregion);
|
||||
}
|
||||
@@ -98,7 +98,7 @@ Y.extend(DRAGBLOCK, M.core.dragdrop, {
|
||||
// The region-post (the right one)
|
||||
// is very narrow, so add extra padding on the left to drop block on it.
|
||||
new Y.DD.Drop({
|
||||
node: blockregionnode.one('div.'+CSS.REGIONCONTENT),
|
||||
node: blockregionnode.one('div.' + CSS.REGIONCONTENT),
|
||||
groups: this.groups,
|
||||
padding: '40 240 40 240'
|
||||
});
|
||||
@@ -106,7 +106,7 @@ Y.extend(DRAGBLOCK, M.core.dragdrop, {
|
||||
// Make each div element in the list of blocks draggable
|
||||
var del = new Y.DD.Delegate({
|
||||
container: blockregionnode,
|
||||
nodes: '.'+CSS.BLOCK,
|
||||
nodes: '.' + CSS.BLOCK,
|
||||
target: true,
|
||||
handles: [SELECTOR.DRAGHANDLE],
|
||||
invalid: '.block-hider-hide, .block-hider-show, .moveto',
|
||||
@@ -118,9 +118,9 @@ Y.extend(DRAGBLOCK, M.core.dragdrop, {
|
||||
});
|
||||
del.dd.plug(Y.Plugin.DDWinScroll);
|
||||
|
||||
var blocklist = blockregionnode.all('.'+CSS.BLOCK);
|
||||
var blocklist = blockregionnode.all('.' + CSS.BLOCK);
|
||||
blocklist.each(function(blocknode) {
|
||||
var move = blocknode.one('a.'+CSS.EDITINGMOVE);
|
||||
var move = blocknode.one('a.' + CSS.EDITINGMOVE);
|
||||
if (move) {
|
||||
move.replace(this.get_drag_handle(move.getAttribute('title'), '', 'iconsmall', true));
|
||||
blocknode.one(SELECTOR.DRAGHANDLE).setStyle('cursor', 'move');
|
||||
@@ -129,12 +129,12 @@ Y.extend(DRAGBLOCK, M.core.dragdrop, {
|
||||
}, this);
|
||||
},
|
||||
|
||||
get_block_id : function(node) {
|
||||
get_block_id: function(node) {
|
||||
return Number(node.get('id').replace(/inst/i, ''));
|
||||
},
|
||||
|
||||
get_block_region : function(node) {
|
||||
var region = node.ancestor('div.'+CSS.BLOCKREGION).get('id').replace(/region-/i, '');
|
||||
get_block_region: function(node) {
|
||||
var region = node.ancestor('div.' + CSS.BLOCKREGION).get('id').replace(/region-/i, '');
|
||||
if (Y.Array.indexOf(this.get('regions'), region) === -1) {
|
||||
// Must be standard side-X
|
||||
if (window.right_to_left()) {
|
||||
@@ -150,17 +150,17 @@ Y.extend(DRAGBLOCK, M.core.dragdrop, {
|
||||
return region;
|
||||
},
|
||||
|
||||
get_region_id : function(node) {
|
||||
get_region_id: function(node) {
|
||||
return node.get('id').replace(/region-/i, '');
|
||||
},
|
||||
|
||||
drag_start : function(e) {
|
||||
drag_start: function(e) {
|
||||
// Get our drag object
|
||||
var drag = e.target;
|
||||
|
||||
// Store the parent node of original drag node (block)
|
||||
// we will need it later for show/hide empty regions
|
||||
this.dragsourceregion = drag.get('node').ancestor('div.'+CSS.BLOCKREGION);
|
||||
this.dragsourceregion = drag.get('node').ancestor('div.' + CSS.BLOCKREGION);
|
||||
|
||||
// Determine skipnodes and store them
|
||||
if (drag.get('node').previous() && drag.get('node').previous().hasClass(CSS.SKIPBLOCK)) {
|
||||
@@ -174,7 +174,7 @@ Y.extend(DRAGBLOCK, M.core.dragdrop, {
|
||||
Y.one('body').addClass(CSS.BLOCKSMOVING);
|
||||
},
|
||||
|
||||
drop_over : function(e) {
|
||||
drop_over: function(e) {
|
||||
// Get a reference to our drag and drop nodes
|
||||
var drag = e.drag.get('node');
|
||||
var drop = e.drop.get('node');
|
||||
@@ -182,8 +182,8 @@ Y.extend(DRAGBLOCK, M.core.dragdrop, {
|
||||
// We need to fix the case when parent drop over event has determined
|
||||
// 'goingup' and appended the drag node after admin-block.
|
||||
if (drop.hasClass(this.parentnodeclass) &&
|
||||
drop.one('.'+CSS.BLOCKADMINBLOCK) &&
|
||||
drop.one('.'+CSS.BLOCKADMINBLOCK).next('.'+CSS.BLOCK)) {
|
||||
drop.one('.' + CSS.BLOCKADMINBLOCK) &&
|
||||
drop.one('.' + CSS.BLOCKADMINBLOCK).next('.' + CSS.BLOCK)) {
|
||||
drop.prepend(drag);
|
||||
}
|
||||
|
||||
@@ -204,22 +204,22 @@ Y.extend(DRAGBLOCK, M.core.dragdrop, {
|
||||
var documentbody = Y.one('body');
|
||||
// Moving block towards hidden region-content, display it
|
||||
var regionname = this.get_region_id(this.dragsourceregion);
|
||||
if (documentbody.hasClass('side-'+regionname+'-only')) {
|
||||
documentbody.removeClass('side-'+regionname+'-only');
|
||||
if (documentbody.hasClass('side-' + regionname + '-only')) {
|
||||
documentbody.removeClass('side-' + regionname + '-only');
|
||||
}
|
||||
|
||||
// Moving from empty region-content towards the opposite one,
|
||||
// hide empty one (only for region-pre, region-post areas at the moment).
|
||||
regionname = this.get_region_id(drop.ancestor('div.'+CSS.BLOCKREGION));
|
||||
if (this.dragsourceregion.all('.'+CSS.BLOCK).size() === 0 &&
|
||||
regionname = this.get_region_id(drop.ancestor('div.' + CSS.BLOCKREGION));
|
||||
if (this.dragsourceregion.all('.' + CSS.BLOCK).size() === 0 &&
|
||||
this.dragsourceregion.get('id').match(/(region-pre|region-post)/i)) {
|
||||
if (!documentbody.hasClass('side-'+regionname+'-only')) {
|
||||
documentbody.addClass('side-'+regionname+'-only');
|
||||
if (!documentbody.hasClass('side-' + regionname + '-only')) {
|
||||
documentbody.addClass('side-' + regionname + '-only');
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
drag_end : function() {
|
||||
drag_end: function() {
|
||||
// clear variables
|
||||
this.skipnodetop = null;
|
||||
this.skipnodebottom = null;
|
||||
@@ -228,14 +228,14 @@ Y.extend(DRAGBLOCK, M.core.dragdrop, {
|
||||
Y.one('body').removeClass(CSS.BLOCKSMOVING);
|
||||
},
|
||||
|
||||
drag_dropmiss : function(e) {
|
||||
drag_dropmiss: function(e) {
|
||||
// Missed the target, but we assume the user intended to drop it
|
||||
// on the last last ghost node location, e.drag and e.drop should be
|
||||
// prepared by global_drag_dropmiss parent so simulate drop_hit(e).
|
||||
this.drop_hit(e);
|
||||
},
|
||||
|
||||
drop_hit : function(e) {
|
||||
drop_hit: function(e) {
|
||||
var drag = e.drag;
|
||||
// Get a reference to our drag node
|
||||
var dragnode = drag.get('node');
|
||||
@@ -259,31 +259,31 @@ Y.extend(DRAGBLOCK, M.core.dragdrop, {
|
||||
|
||||
// Prepare request parameters
|
||||
var params = {
|
||||
sesskey : M.cfg.sesskey,
|
||||
courseid : this.get('courseid'),
|
||||
pagelayout : this.get('pagelayout'),
|
||||
pagetype : this.get('pagetype'),
|
||||
subpage : this.get('subpage'),
|
||||
contextid : this.get('contextid'),
|
||||
action : 'move',
|
||||
bui_moveid : this.get_block_id(dragnode),
|
||||
bui_newregion : this.get_block_region(dropnode)
|
||||
sesskey: M.cfg.sesskey,
|
||||
courseid: this.get('courseid'),
|
||||
pagelayout: this.get('pagelayout'),
|
||||
pagetype: this.get('pagetype'),
|
||||
subpage: this.get('subpage'),
|
||||
contextid: this.get('contextid'),
|
||||
action: 'move',
|
||||
bui_moveid: this.get_block_id(dragnode),
|
||||
bui_newregion: this.get_block_region(dropnode)
|
||||
};
|
||||
|
||||
if (this.get('cmid')) {
|
||||
params.cmid = this.get('cmid');
|
||||
}
|
||||
|
||||
if (dragnode.next('.'+this.samenodeclass) && !dragnode.next('.'+this.samenodeclass).hasClass(CSS.BLOCKADMINBLOCK)) {
|
||||
params.bui_beforeid = this.get_block_id(dragnode.next('.'+this.samenodeclass));
|
||||
if (dragnode.next('.' + this.samenodeclass) && !dragnode.next('.' + this.samenodeclass).hasClass(CSS.BLOCKADMINBLOCK)) {
|
||||
params.bui_beforeid = this.get_block_id(dragnode.next('.' + this.samenodeclass));
|
||||
}
|
||||
|
||||
// Do AJAX request
|
||||
Y.io(M.cfg.wwwroot+AJAXURL, {
|
||||
Y.io(M.cfg.wwwroot + AJAXURL, {
|
||||
method: 'POST',
|
||||
data: params,
|
||||
on: {
|
||||
start : function() {
|
||||
start: function() {
|
||||
lightbox.show();
|
||||
},
|
||||
success: function(tid, response) {
|
||||
@@ -295,39 +295,41 @@ Y.extend(DRAGBLOCK, M.core.dragdrop, {
|
||||
if (responsetext.error) {
|
||||
new M.core.ajaxException(responsetext);
|
||||
}
|
||||
} catch (e) {}
|
||||
} catch (e) {
|
||||
// Ignore.
|
||||
}
|
||||
},
|
||||
failure: function(tid, response) {
|
||||
this.ajax_failure(response);
|
||||
lightbox.hide();
|
||||
}
|
||||
},
|
||||
context:this
|
||||
context: this
|
||||
});
|
||||
}
|
||||
}, {
|
||||
NAME : 'core-blocks-dragdrop',
|
||||
ATTRS : {
|
||||
courseid : {
|
||||
value : null
|
||||
NAME: 'core-blocks-dragdrop',
|
||||
ATTRS: {
|
||||
courseid: {
|
||||
value: null
|
||||
},
|
||||
cmid : {
|
||||
value : null
|
||||
cmid: {
|
||||
value: null
|
||||
},
|
||||
contextid : {
|
||||
value : null
|
||||
contextid: {
|
||||
value: null
|
||||
},
|
||||
pagelayout : {
|
||||
value : null
|
||||
pagelayout: {
|
||||
value: null
|
||||
},
|
||||
pagetype : {
|
||||
value : null
|
||||
pagetype: {
|
||||
value: null
|
||||
},
|
||||
subpage : {
|
||||
value : null
|
||||
subpage: {
|
||||
value: null
|
||||
},
|
||||
regions : {
|
||||
value : null
|
||||
regions: {
|
||||
value: null
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -419,7 +421,7 @@ MANAGER.prototype = {
|
||||
* @type Node
|
||||
* @default null
|
||||
*/
|
||||
skipnodetop : null,
|
||||
skipnodetop: null,
|
||||
|
||||
/**
|
||||
* The skip block link from below the block being dragged while a drag is in progress.
|
||||
@@ -429,7 +431,7 @@ MANAGER.prototype = {
|
||||
* @type Node
|
||||
* @default null
|
||||
*/
|
||||
skipnodebottom : null,
|
||||
skipnodebottom: null,
|
||||
|
||||
/**
|
||||
* An associative object of regions and the
|
||||
@@ -438,13 +440,13 @@ MANAGER.prototype = {
|
||||
* @type {BLOCKREGION} [regionname]* Each item uses the region name as the key with the value being
|
||||
* an instance of the BLOCKREGION class.
|
||||
*/
|
||||
regionobjects : {},
|
||||
regionobjects: {},
|
||||
|
||||
/**
|
||||
* Called during the initialisation process of the object.
|
||||
* @method initializer
|
||||
*/
|
||||
initializer : function() {
|
||||
initializer: function() {
|
||||
Y.log('Initialising drag and drop for blocks.', 'info');
|
||||
var regionnames = this.get('regions'),
|
||||
i = 0,
|
||||
@@ -458,7 +460,7 @@ MANAGER.prototype = {
|
||||
this.parentnodeclass = CSS.BLOCKREGION;
|
||||
|
||||
// Add relevant classes and ID to 'content' block region on Dashboard page.
|
||||
var myhomecontent = Y.Node.all('body#'+CSS.MYINDEX+' #'+CSS.REGIONMAIN+' > .'+CSS.REGIONCONTENT);
|
||||
var myhomecontent = Y.Node.all('body#' + CSS.MYINDEX + ' #' + CSS.REGIONMAIN + ' > .' + CSS.REGIONCONTENT);
|
||||
if (myhomecontent.size() > 0) {
|
||||
var contentregion = myhomecontent.item(0);
|
||||
contentregion.addClass(CSS.BLOCKREGION);
|
||||
@@ -469,9 +471,9 @@ MANAGER.prototype = {
|
||||
for (i in regionnames) {
|
||||
regionname = regionnames[i];
|
||||
region = new BLOCKREGION({
|
||||
manager : this,
|
||||
region : regionname,
|
||||
node : Y.one('#block-region-'+regionname)
|
||||
manager: this,
|
||||
region: regionname,
|
||||
node: Y.one('#block-region-' + regionname)
|
||||
});
|
||||
this.regionobjects[regionname] = region;
|
||||
|
||||
@@ -487,7 +489,7 @@ MANAGER.prototype = {
|
||||
// Make each div element in the list of blocks draggable
|
||||
dragdelegation = new Y.DD.Delegate({
|
||||
container: region.get_droptarget(),
|
||||
nodes: '.'+CSS.BLOCK,
|
||||
nodes: '.' + CSS.BLOCK,
|
||||
target: true,
|
||||
handles: [SELECTOR.DRAGHANDLE],
|
||||
invalid: '.block-hider-hide, .block-hider-show, .moveto, .block_fake',
|
||||
@@ -514,7 +516,7 @@ MANAGER.prototype = {
|
||||
* @param {Node} node
|
||||
* @return {int} The blocks ID in the database.
|
||||
*/
|
||||
get_block_id : function(node) {
|
||||
get_block_id: function(node) {
|
||||
return Number(node.get('id').replace(/inst/i, ''));
|
||||
},
|
||||
|
||||
@@ -524,7 +526,7 @@ MANAGER.prototype = {
|
||||
* @param {Y.Node} node
|
||||
* @return {string} The region name.
|
||||
*/
|
||||
get_block_region : function(node) {
|
||||
get_block_region: function(node) {
|
||||
if (!node.test('[data-blockregion]')) {
|
||||
node = node.ancestor('[data-blockregion]');
|
||||
}
|
||||
@@ -537,7 +539,7 @@ MANAGER.prototype = {
|
||||
* @param {Y.Node} node
|
||||
* @return {BLOCKREGION}
|
||||
*/
|
||||
get_region_object : function(node) {
|
||||
get_region_object: function(node) {
|
||||
return this.regionobjects[this.get_block_region(node)];
|
||||
},
|
||||
|
||||
@@ -546,7 +548,7 @@ MANAGER.prototype = {
|
||||
*
|
||||
* @method enable_all_regions
|
||||
*/
|
||||
enable_all_regions : function() {
|
||||
enable_all_regions: function() {
|
||||
var groups = Y.DD.DDM.activeDrag.get('groups');
|
||||
|
||||
// As we're called by Y.DD.DDM, we can't be certain that the call
|
||||
@@ -569,7 +571,7 @@ MANAGER.prototype = {
|
||||
* Disables enabled regions if they contain no blocks.
|
||||
* @method disable_regions_if_required
|
||||
*/
|
||||
disable_regions_if_required : function() {
|
||||
disable_regions_if_required: function() {
|
||||
var i = 0;
|
||||
for (i in this.regionobjects) {
|
||||
this.regionobjects[i].disable_if_required();
|
||||
@@ -581,7 +583,7 @@ MANAGER.prototype = {
|
||||
* @method drag_start
|
||||
* @param {Event} e
|
||||
*/
|
||||
drag_start : function(e) {
|
||||
drag_start: function(e) {
|
||||
// Get our drag object
|
||||
var drag = e.target;
|
||||
|
||||
@@ -602,7 +604,7 @@ MANAGER.prototype = {
|
||||
* @method drop_over
|
||||
* @param {Event} e
|
||||
*/
|
||||
drop_over : function(e) {
|
||||
drop_over: function(e) {
|
||||
// Get a reference to our drag and drop nodes
|
||||
var drag = e.drag.get('node');
|
||||
var drop = e.drop.get('node');
|
||||
@@ -610,8 +612,8 @@ MANAGER.prototype = {
|
||||
// We need to fix the case when parent drop over event has determined
|
||||
// 'goingup' and appended the drag node after admin-block.
|
||||
if (drop.hasClass(CSS.REGIONCONTENT) &&
|
||||
drop.one('.'+CSS.BLOCKADMINBLOCK) &&
|
||||
drop.one('.'+CSS.BLOCKADMINBLOCK).next('.'+CSS.BLOCK)) {
|
||||
drop.one('.' + CSS.BLOCKADMINBLOCK) &&
|
||||
drop.one('.' + CSS.BLOCKADMINBLOCK).next('.' + CSS.BLOCK)) {
|
||||
drop.prepend(drag);
|
||||
}
|
||||
},
|
||||
@@ -620,7 +622,7 @@ MANAGER.prototype = {
|
||||
* Called by M.core.dragdrop.global_drop_end when a drop has been completed.
|
||||
* @method drop_end
|
||||
*/
|
||||
drop_end : function() {
|
||||
drop_end: function() {
|
||||
// Clear variables.
|
||||
this.skipnodetop = null;
|
||||
this.skipnodebottom = null;
|
||||
@@ -634,7 +636,7 @@ MANAGER.prototype = {
|
||||
* @method drag_dropmiss
|
||||
* @param {Event} e
|
||||
*/
|
||||
drag_dropmiss : function(e) {
|
||||
drag_dropmiss: function(e) {
|
||||
// Missed the target, but we assume the user intended to drop it
|
||||
// on the last ghost node location, e.drag and e.drop should be
|
||||
// prepared by global_drag_dropmiss parent so simulate drop_hit(e).
|
||||
@@ -646,7 +648,7 @@ MANAGER.prototype = {
|
||||
* @method drop_hit
|
||||
* @param {Event} e
|
||||
*/
|
||||
drop_hit : function(e) {
|
||||
drop_hit: function(e) {
|
||||
// Get a reference to our drag node
|
||||
var dragnode = e.drag.get('node');
|
||||
var dropnode = e.drop.get('node');
|
||||
@@ -669,31 +671,31 @@ MANAGER.prototype = {
|
||||
|
||||
// Prepare request parameters
|
||||
var params = {
|
||||
sesskey : M.cfg.sesskey,
|
||||
courseid : this.get('courseid'),
|
||||
pagelayout : this.get('pagelayout'),
|
||||
pagetype : this.get('pagetype'),
|
||||
subpage : this.get('subpage'),
|
||||
contextid : this.get('contextid'),
|
||||
action : 'move',
|
||||
bui_moveid : this.get_block_id(dragnode),
|
||||
bui_newregion : this.get_block_region(dropnode)
|
||||
sesskey: M.cfg.sesskey,
|
||||
courseid: this.get('courseid'),
|
||||
pagelayout: this.get('pagelayout'),
|
||||
pagetype: this.get('pagetype'),
|
||||
subpage: this.get('subpage'),
|
||||
contextid: this.get('contextid'),
|
||||
action: 'move',
|
||||
bui_moveid: this.get_block_id(dragnode),
|
||||
bui_newregion: this.get_block_region(dropnode)
|
||||
};
|
||||
|
||||
if (this.get('cmid')) {
|
||||
params.cmid = this.get('cmid');
|
||||
}
|
||||
|
||||
if (dragnode.next('.'+CSS.BLOCK) && !dragnode.next('.'+CSS.BLOCK).hasClass(CSS.BLOCKADMINBLOCK)) {
|
||||
params.bui_beforeid = this.get_block_id(dragnode.next('.'+CSS.BLOCK));
|
||||
if (dragnode.next('.' + CSS.BLOCK) && !dragnode.next('.' + CSS.BLOCK).hasClass(CSS.BLOCKADMINBLOCK)) {
|
||||
params.bui_beforeid = this.get_block_id(dragnode.next('.' + CSS.BLOCK));
|
||||
}
|
||||
|
||||
// Do AJAX request
|
||||
Y.io(M.cfg.wwwroot+AJAXURL, {
|
||||
Y.io(M.cfg.wwwroot + AJAXURL, {
|
||||
method: 'POST',
|
||||
data: params,
|
||||
on: {
|
||||
start : function() {
|
||||
start: function() {
|
||||
lightbox.show();
|
||||
},
|
||||
success: function(tid, response) {
|
||||
@@ -705,31 +707,33 @@ MANAGER.prototype = {
|
||||
if (responsetext.error) {
|
||||
new M.core.ajaxException(responsetext);
|
||||
}
|
||||
} catch (e) {}
|
||||
} catch (e) {
|
||||
// Ignore.
|
||||
}
|
||||
},
|
||||
failure: function(tid, response) {
|
||||
this.ajax_failure(response);
|
||||
lightbox.hide();
|
||||
},
|
||||
complete : function() {
|
||||
complete: function() {
|
||||
this.disable_regions_if_required();
|
||||
}
|
||||
},
|
||||
context:this
|
||||
context: this
|
||||
});
|
||||
}
|
||||
};
|
||||
Y.extend(MANAGER, M.core.dragdrop, MANAGER.prototype, {
|
||||
NAME : 'core-blocks-dragdrop-manager',
|
||||
ATTRS : {
|
||||
NAME: 'core-blocks-dragdrop-manager',
|
||||
ATTRS: {
|
||||
/**
|
||||
* The Course ID if there is one.
|
||||
* @attribute courseid
|
||||
* @type int|null
|
||||
* @default null
|
||||
*/
|
||||
courseid : {
|
||||
value : null
|
||||
courseid: {
|
||||
value: null
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -738,8 +742,8 @@ Y.extend(MANAGER, M.core.dragdrop, MANAGER.prototype, {
|
||||
* @type int|null
|
||||
* @default null
|
||||
*/
|
||||
cmid : {
|
||||
value : null
|
||||
cmid: {
|
||||
value: null
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -748,8 +752,8 @@ Y.extend(MANAGER, M.core.dragdrop, MANAGER.prototype, {
|
||||
* @type int|null
|
||||
* @default null
|
||||
*/
|
||||
contextid : {
|
||||
value : null
|
||||
contextid: {
|
||||
value: null
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -758,8 +762,8 @@ Y.extend(MANAGER, M.core.dragdrop, MANAGER.prototype, {
|
||||
* @type string|null
|
||||
* @default null
|
||||
*/
|
||||
pagelayout : {
|
||||
value : null
|
||||
pagelayout: {
|
||||
value: null
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -768,8 +772,8 @@ Y.extend(MANAGER, M.core.dragdrop, MANAGER.prototype, {
|
||||
* @type string|null
|
||||
* @default null
|
||||
*/
|
||||
pagetype : {
|
||||
value : null
|
||||
pagetype: {
|
||||
value: null
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -778,8 +782,8 @@ Y.extend(MANAGER, M.core.dragdrop, MANAGER.prototype, {
|
||||
* @type string|null
|
||||
* @default null
|
||||
*/
|
||||
subpage : {
|
||||
value : null
|
||||
subpage: {
|
||||
value: null
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -788,8 +792,8 @@ Y.extend(MANAGER, M.core.dragdrop, MANAGER.prototype, {
|
||||
* @type array|null
|
||||
* @default Array[]
|
||||
*/
|
||||
regions : {
|
||||
value : []
|
||||
regions: {
|
||||
value: []
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -819,15 +823,15 @@ BLOCKREGION.prototype = {
|
||||
* Called during the initialisation process of the object.
|
||||
* @method initializer
|
||||
*/
|
||||
initializer : function() {
|
||||
initializer: function() {
|
||||
var node = this.get('node');
|
||||
Y.log('Block region `'+this.get('region')+'` initialising', 'info');
|
||||
Y.log('Block region `' + this.get('region') + '` initialising', 'info');
|
||||
if (!node) {
|
||||
Y.log('block region known about but no HTML structure found for it. Guessing structure.', 'warn');
|
||||
node = this.create_and_add_node();
|
||||
}
|
||||
var body = Y.one('body'),
|
||||
hasblocks = node.all('.'+CSS.BLOCK).size() > 0,
|
||||
hasblocks = node.all('.' + CSS.BLOCK).size() > 0,
|
||||
hasregionclass = this.get_has_region_class();
|
||||
this.set('hasblocks', hasblocks);
|
||||
if (!body.hasClass(hasregionclass)) {
|
||||
@@ -842,10 +846,10 @@ BLOCKREGION.prototype = {
|
||||
* @method create_and_add_node
|
||||
* @return Node The newly created Node
|
||||
*/
|
||||
create_and_add_node : function() {
|
||||
create_and_add_node: function() {
|
||||
var c = Y.Node.create,
|
||||
region = this.get('region'),
|
||||
node = c('<div id="block-region-'+region+'" data-droptarget="1"></div>')
|
||||
node = c('<div id="block-region-' + region + '" data-droptarget="1"></div>')
|
||||
.addClass(CSS.BLOCKREGION)
|
||||
.setData('blockregion', region),
|
||||
regions = this.get('manager').get('regions'),
|
||||
@@ -866,13 +870,13 @@ BLOCKREGION.prototype = {
|
||||
|
||||
if (haspre !== false && haspost !== false) {
|
||||
if (region === haspre) {
|
||||
post = Y.one('#block-region-'+haspost);
|
||||
post = Y.one('#block-region-' + haspost);
|
||||
if (post) {
|
||||
post.insert(node, 'before');
|
||||
added = true;
|
||||
}
|
||||
} else {
|
||||
pre = Y.one('#block-region-'+haspre);
|
||||
pre = Y.one('#block-region-' + haspre);
|
||||
if (pre) {
|
||||
pre.insert(node, 'after');
|
||||
added = true;
|
||||
@@ -892,9 +896,9 @@ BLOCKREGION.prototype = {
|
||||
* @param M.core.dragdrop the block manager
|
||||
* @method change_block_move_icons
|
||||
*/
|
||||
change_block_move_icons : function(manager) {
|
||||
change_block_move_icons: function(manager) {
|
||||
var handle, icon;
|
||||
this.get('node').all('.'+CSS.BLOCK+' a.'+CSS.EDITINGMOVE).each(function(moveicon){
|
||||
this.get('node').all('.' + CSS.BLOCK + ' a.' + CSS.EDITINGMOVE).each(function(moveicon) {
|
||||
moveicon.setStyle('cursor', 'move');
|
||||
handle = manager.get_drag_handle(moveicon.getAttribute('title'), '', 'icon', true);
|
||||
icon = handle.one('img');
|
||||
@@ -909,8 +913,8 @@ BLOCKREGION.prototype = {
|
||||
* @method get_has_region_class
|
||||
* @return String
|
||||
*/
|
||||
get_has_region_class : function() {
|
||||
return 'has-region-'+this.get('region');
|
||||
get_has_region_class: function() {
|
||||
return 'has-region-' + this.get('region');
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -918,8 +922,8 @@ BLOCKREGION.prototype = {
|
||||
* @method get_empty_region_class
|
||||
* @return String
|
||||
*/
|
||||
get_empty_region_class : function() {
|
||||
return 'empty-region-'+this.get('region');
|
||||
get_empty_region_class: function() {
|
||||
return 'empty-region-' + this.get('region');
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -927,8 +931,8 @@ BLOCKREGION.prototype = {
|
||||
* @method get_used_region_class
|
||||
* @return String
|
||||
*/
|
||||
get_used_region_class : function() {
|
||||
return 'used-region-'+this.get('region');
|
||||
get_used_region_class: function() {
|
||||
return 'used-region-' + this.get('region');
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -936,7 +940,7 @@ BLOCKREGION.prototype = {
|
||||
* @method get_droptarget
|
||||
* @return Node
|
||||
*/
|
||||
get_droptarget : function() {
|
||||
get_droptarget: function() {
|
||||
var node = this.get('node');
|
||||
if (node.test('[data-droptarget="1"]')) {
|
||||
return node;
|
||||
@@ -949,7 +953,7 @@ BLOCKREGION.prototype = {
|
||||
* This is done even if it is empty.
|
||||
* @method enable
|
||||
*/
|
||||
enable : function() {
|
||||
enable: function() {
|
||||
Y.one('body').addClass(this.get_used_region_class()).removeClass(this.get_empty_region_class());
|
||||
},
|
||||
|
||||
@@ -957,15 +961,15 @@ BLOCKREGION.prototype = {
|
||||
* Disables the region if it contains no blocks, essentially hiding it from the user.
|
||||
* @method disable_if_required
|
||||
*/
|
||||
disable_if_required : function() {
|
||||
if (this.get('node').all('.'+CSS.BLOCK).size() === 0) {
|
||||
disable_if_required: function() {
|
||||
if (this.get('node').all('.' + CSS.BLOCK).size() === 0) {
|
||||
Y.one('body').addClass(this.get_empty_region_class()).removeClass(this.get_used_region_class());
|
||||
}
|
||||
}
|
||||
};
|
||||
Y.extend(BLOCKREGION, Y.Base, BLOCKREGION.prototype, {
|
||||
NAME : 'core-blocks-dragdrop-blockregion',
|
||||
ATTRS : {
|
||||
NAME: 'core-blocks-dragdrop-blockregion',
|
||||
ATTRS: {
|
||||
|
||||
/**
|
||||
* The drag and drop manager that created this block region instance.
|
||||
@@ -973,10 +977,10 @@ Y.extend(BLOCKREGION, Y.Base, BLOCKREGION.prototype, {
|
||||
* @type M.core.blockdraganddrop.Manager
|
||||
* @writeOnce
|
||||
*/
|
||||
manager : {
|
||||
manager: {
|
||||
// Can only be set during initialisation and must be set then.
|
||||
writeOnce : 'initOnly',
|
||||
validator : function (value) {
|
||||
writeOnce: 'initOnly',
|
||||
validator: function(value) {
|
||||
return Y.Lang.isObject(value) && value instanceof MANAGER;
|
||||
}
|
||||
},
|
||||
@@ -987,10 +991,10 @@ Y.extend(BLOCKREGION, Y.Base, BLOCKREGION.prototype, {
|
||||
* @type String
|
||||
* @writeOnce
|
||||
*/
|
||||
region : {
|
||||
region: {
|
||||
// Can only be set during initialisation and must be set then.
|
||||
writeOnce : 'initOnly',
|
||||
validator : function (value) {
|
||||
writeOnce: 'initOnly',
|
||||
validator: function(value) {
|
||||
return Y.Lang.isString(value);
|
||||
}
|
||||
},
|
||||
@@ -1000,8 +1004,8 @@ Y.extend(BLOCKREGION, Y.Base, BLOCKREGION.prototype, {
|
||||
* @attribute region
|
||||
* @type Y.Node
|
||||
*/
|
||||
node : {
|
||||
validator : function (value) {
|
||||
node: {
|
||||
validator: function(value) {
|
||||
return Y.Lang.isObject(value) || Y.Lang.isNull(value);
|
||||
}
|
||||
},
|
||||
@@ -1012,9 +1016,9 @@ Y.extend(BLOCKREGION, Y.Base, BLOCKREGION.prototype, {
|
||||
* @type Boolean
|
||||
* @default false
|
||||
*/
|
||||
hasblocks : {
|
||||
value : false,
|
||||
validator : function (value) {
|
||||
hasblocks: {
|
||||
value: false,
|
||||
validator: function(value) {
|
||||
return Y.Lang.isBoolean(value);
|
||||
}
|
||||
}
|
||||
|
||||
+162
-158
@@ -10,22 +10,22 @@ YUI.add('moodle-core-blocks', function (Y, NAME) {
|
||||
|
||||
var AJAXURL = '/lib/ajax/blocks.php',
|
||||
CSS = {
|
||||
BLOCK : 'block',
|
||||
BLOCKREGION : 'block-region',
|
||||
BLOCKADMINBLOCK : 'block_adminblock',
|
||||
EDITINGMOVE : 'editing_move',
|
||||
HEADER : 'header',
|
||||
LIGHTBOX : 'lightbox',
|
||||
REGIONCONTENT : 'region-content',
|
||||
SKIPBLOCK : 'skip-block',
|
||||
SKIPBLOCKTO : 'skip-block-to',
|
||||
MYINDEX : 'page-my-index',
|
||||
REGIONMAIN : 'region-main',
|
||||
BLOCKSMOVING : 'blocks-moving'
|
||||
BLOCK: 'block',
|
||||
BLOCKREGION: 'block-region',
|
||||
BLOCKADMINBLOCK: 'block_adminblock',
|
||||
EDITINGMOVE: 'editing_move',
|
||||
HEADER: 'header',
|
||||
LIGHTBOX: 'lightbox',
|
||||
REGIONCONTENT: 'region-content',
|
||||
SKIPBLOCK: 'skip-block',
|
||||
SKIPBLOCKTO: 'skip-block-to',
|
||||
MYINDEX: 'page-my-index',
|
||||
REGIONMAIN: 'region-main',
|
||||
BLOCKSMOVING: 'blocks-moving'
|
||||
};
|
||||
|
||||
var SELECTOR = {
|
||||
DRAGHANDLE : '.' + CSS.HEADER + ' .commands .moodle-core-dragdrop-draghandle'
|
||||
DRAGHANDLE: '.' + CSS.HEADER + ' .commands .moodle-core-dragdrop-draghandle'
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -42,17 +42,17 @@ var DRAGBLOCK = function() {
|
||||
DRAGBLOCK.superclass.constructor.apply(this, arguments);
|
||||
};
|
||||
Y.extend(DRAGBLOCK, M.core.dragdrop, {
|
||||
skipnodetop : null,
|
||||
skipnodebottom : null,
|
||||
dragsourceregion : null,
|
||||
initializer : function() {
|
||||
skipnodetop: null,
|
||||
skipnodebottom: null,
|
||||
dragsourceregion: null,
|
||||
initializer: function() {
|
||||
// Set group for parent class
|
||||
this.groups = ['block'];
|
||||
this.samenodeclass = CSS.BLOCK;
|
||||
this.parentnodeclass = CSS.REGIONCONTENT;
|
||||
|
||||
// Add relevant classes and ID to 'content' block region on Dashboard page.
|
||||
var myhomecontent = Y.Node.all('body#'+CSS.MYINDEX+' #'+CSS.REGIONMAIN+' > .'+CSS.REGIONCONTENT);
|
||||
var myhomecontent = Y.Node.all('body#' + CSS.MYINDEX + ' #' + CSS.REGIONMAIN + ' > .' + CSS.REGIONCONTENT);
|
||||
if (myhomecontent.size() > 0) {
|
||||
var contentregion = myhomecontent.item(0);
|
||||
contentregion.addClass(CSS.BLOCKREGION);
|
||||
@@ -62,7 +62,7 @@ Y.extend(DRAGBLOCK, M.core.dragdrop, {
|
||||
|
||||
// Initialise blocks dragging
|
||||
// Find all block regions on the page
|
||||
var blockregionlist = Y.Node.all('div.'+CSS.BLOCKREGION);
|
||||
var blockregionlist = Y.Node.all('div.' + CSS.BLOCKREGION);
|
||||
|
||||
if (blockregionlist.size() === 0) {
|
||||
return false;
|
||||
@@ -81,12 +81,12 @@ Y.extend(DRAGBLOCK, M.core.dragdrop, {
|
||||
|
||||
if (pre.size() === 0 && post.size() === 1) {
|
||||
// pre block is missing, instert it before post
|
||||
blockregion.setAttrs({id : 'region-pre'});
|
||||
blockregion.setAttrs({id: 'region-pre'});
|
||||
post.item(0).insert(blockregion, 'before');
|
||||
blockregionlist.unshift(blockregion);
|
||||
} else if (post.size() === 0 && pre.size() === 1) {
|
||||
// post block is missing, instert it after pre
|
||||
blockregion.setAttrs({id : 'region-post'});
|
||||
blockregion.setAttrs({id: 'region-post'});
|
||||
pre.item(0).insert(blockregion, 'after');
|
||||
blockregionlist.push(blockregion);
|
||||
}
|
||||
@@ -98,7 +98,7 @@ Y.extend(DRAGBLOCK, M.core.dragdrop, {
|
||||
// The region-post (the right one)
|
||||
// is very narrow, so add extra padding on the left to drop block on it.
|
||||
new Y.DD.Drop({
|
||||
node: blockregionnode.one('div.'+CSS.REGIONCONTENT),
|
||||
node: blockregionnode.one('div.' + CSS.REGIONCONTENT),
|
||||
groups: this.groups,
|
||||
padding: '40 240 40 240'
|
||||
});
|
||||
@@ -106,7 +106,7 @@ Y.extend(DRAGBLOCK, M.core.dragdrop, {
|
||||
// Make each div element in the list of blocks draggable
|
||||
var del = new Y.DD.Delegate({
|
||||
container: blockregionnode,
|
||||
nodes: '.'+CSS.BLOCK,
|
||||
nodes: '.' + CSS.BLOCK,
|
||||
target: true,
|
||||
handles: [SELECTOR.DRAGHANDLE],
|
||||
invalid: '.block-hider-hide, .block-hider-show, .moveto',
|
||||
@@ -118,9 +118,9 @@ Y.extend(DRAGBLOCK, M.core.dragdrop, {
|
||||
});
|
||||
del.dd.plug(Y.Plugin.DDWinScroll);
|
||||
|
||||
var blocklist = blockregionnode.all('.'+CSS.BLOCK);
|
||||
var blocklist = blockregionnode.all('.' + CSS.BLOCK);
|
||||
blocklist.each(function(blocknode) {
|
||||
var move = blocknode.one('a.'+CSS.EDITINGMOVE);
|
||||
var move = blocknode.one('a.' + CSS.EDITINGMOVE);
|
||||
if (move) {
|
||||
move.replace(this.get_drag_handle(move.getAttribute('title'), '', 'iconsmall', true));
|
||||
blocknode.one(SELECTOR.DRAGHANDLE).setStyle('cursor', 'move');
|
||||
@@ -129,12 +129,12 @@ Y.extend(DRAGBLOCK, M.core.dragdrop, {
|
||||
}, this);
|
||||
},
|
||||
|
||||
get_block_id : function(node) {
|
||||
get_block_id: function(node) {
|
||||
return Number(node.get('id').replace(/inst/i, ''));
|
||||
},
|
||||
|
||||
get_block_region : function(node) {
|
||||
var region = node.ancestor('div.'+CSS.BLOCKREGION).get('id').replace(/region-/i, '');
|
||||
get_block_region: function(node) {
|
||||
var region = node.ancestor('div.' + CSS.BLOCKREGION).get('id').replace(/region-/i, '');
|
||||
if (Y.Array.indexOf(this.get('regions'), region) === -1) {
|
||||
// Must be standard side-X
|
||||
if (window.right_to_left()) {
|
||||
@@ -150,17 +150,17 @@ Y.extend(DRAGBLOCK, M.core.dragdrop, {
|
||||
return region;
|
||||
},
|
||||
|
||||
get_region_id : function(node) {
|
||||
get_region_id: function(node) {
|
||||
return node.get('id').replace(/region-/i, '');
|
||||
},
|
||||
|
||||
drag_start : function(e) {
|
||||
drag_start: function(e) {
|
||||
// Get our drag object
|
||||
var drag = e.target;
|
||||
|
||||
// Store the parent node of original drag node (block)
|
||||
// we will need it later for show/hide empty regions
|
||||
this.dragsourceregion = drag.get('node').ancestor('div.'+CSS.BLOCKREGION);
|
||||
this.dragsourceregion = drag.get('node').ancestor('div.' + CSS.BLOCKREGION);
|
||||
|
||||
// Determine skipnodes and store them
|
||||
if (drag.get('node').previous() && drag.get('node').previous().hasClass(CSS.SKIPBLOCK)) {
|
||||
@@ -174,7 +174,7 @@ Y.extend(DRAGBLOCK, M.core.dragdrop, {
|
||||
Y.one('body').addClass(CSS.BLOCKSMOVING);
|
||||
},
|
||||
|
||||
drop_over : function(e) {
|
||||
drop_over: function(e) {
|
||||
// Get a reference to our drag and drop nodes
|
||||
var drag = e.drag.get('node');
|
||||
var drop = e.drop.get('node');
|
||||
@@ -182,8 +182,8 @@ Y.extend(DRAGBLOCK, M.core.dragdrop, {
|
||||
// We need to fix the case when parent drop over event has determined
|
||||
// 'goingup' and appended the drag node after admin-block.
|
||||
if (drop.hasClass(this.parentnodeclass) &&
|
||||
drop.one('.'+CSS.BLOCKADMINBLOCK) &&
|
||||
drop.one('.'+CSS.BLOCKADMINBLOCK).next('.'+CSS.BLOCK)) {
|
||||
drop.one('.' + CSS.BLOCKADMINBLOCK) &&
|
||||
drop.one('.' + CSS.BLOCKADMINBLOCK).next('.' + CSS.BLOCK)) {
|
||||
drop.prepend(drag);
|
||||
}
|
||||
|
||||
@@ -204,22 +204,22 @@ Y.extend(DRAGBLOCK, M.core.dragdrop, {
|
||||
var documentbody = Y.one('body');
|
||||
// Moving block towards hidden region-content, display it
|
||||
var regionname = this.get_region_id(this.dragsourceregion);
|
||||
if (documentbody.hasClass('side-'+regionname+'-only')) {
|
||||
documentbody.removeClass('side-'+regionname+'-only');
|
||||
if (documentbody.hasClass('side-' + regionname + '-only')) {
|
||||
documentbody.removeClass('side-' + regionname + '-only');
|
||||
}
|
||||
|
||||
// Moving from empty region-content towards the opposite one,
|
||||
// hide empty one (only for region-pre, region-post areas at the moment).
|
||||
regionname = this.get_region_id(drop.ancestor('div.'+CSS.BLOCKREGION));
|
||||
if (this.dragsourceregion.all('.'+CSS.BLOCK).size() === 0 &&
|
||||
regionname = this.get_region_id(drop.ancestor('div.' + CSS.BLOCKREGION));
|
||||
if (this.dragsourceregion.all('.' + CSS.BLOCK).size() === 0 &&
|
||||
this.dragsourceregion.get('id').match(/(region-pre|region-post)/i)) {
|
||||
if (!documentbody.hasClass('side-'+regionname+'-only')) {
|
||||
documentbody.addClass('side-'+regionname+'-only');
|
||||
if (!documentbody.hasClass('side-' + regionname + '-only')) {
|
||||
documentbody.addClass('side-' + regionname + '-only');
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
drag_end : function() {
|
||||
drag_end: function() {
|
||||
// clear variables
|
||||
this.skipnodetop = null;
|
||||
this.skipnodebottom = null;
|
||||
@@ -228,14 +228,14 @@ Y.extend(DRAGBLOCK, M.core.dragdrop, {
|
||||
Y.one('body').removeClass(CSS.BLOCKSMOVING);
|
||||
},
|
||||
|
||||
drag_dropmiss : function(e) {
|
||||
drag_dropmiss: function(e) {
|
||||
// Missed the target, but we assume the user intended to drop it
|
||||
// on the last last ghost node location, e.drag and e.drop should be
|
||||
// prepared by global_drag_dropmiss parent so simulate drop_hit(e).
|
||||
this.drop_hit(e);
|
||||
},
|
||||
|
||||
drop_hit : function(e) {
|
||||
drop_hit: function(e) {
|
||||
var drag = e.drag;
|
||||
// Get a reference to our drag node
|
||||
var dragnode = drag.get('node');
|
||||
@@ -259,31 +259,31 @@ Y.extend(DRAGBLOCK, M.core.dragdrop, {
|
||||
|
||||
// Prepare request parameters
|
||||
var params = {
|
||||
sesskey : M.cfg.sesskey,
|
||||
courseid : this.get('courseid'),
|
||||
pagelayout : this.get('pagelayout'),
|
||||
pagetype : this.get('pagetype'),
|
||||
subpage : this.get('subpage'),
|
||||
contextid : this.get('contextid'),
|
||||
action : 'move',
|
||||
bui_moveid : this.get_block_id(dragnode),
|
||||
bui_newregion : this.get_block_region(dropnode)
|
||||
sesskey: M.cfg.sesskey,
|
||||
courseid: this.get('courseid'),
|
||||
pagelayout: this.get('pagelayout'),
|
||||
pagetype: this.get('pagetype'),
|
||||
subpage: this.get('subpage'),
|
||||
contextid: this.get('contextid'),
|
||||
action: 'move',
|
||||
bui_moveid: this.get_block_id(dragnode),
|
||||
bui_newregion: this.get_block_region(dropnode)
|
||||
};
|
||||
|
||||
if (this.get('cmid')) {
|
||||
params.cmid = this.get('cmid');
|
||||
}
|
||||
|
||||
if (dragnode.next('.'+this.samenodeclass) && !dragnode.next('.'+this.samenodeclass).hasClass(CSS.BLOCKADMINBLOCK)) {
|
||||
params.bui_beforeid = this.get_block_id(dragnode.next('.'+this.samenodeclass));
|
||||
if (dragnode.next('.' + this.samenodeclass) && !dragnode.next('.' + this.samenodeclass).hasClass(CSS.BLOCKADMINBLOCK)) {
|
||||
params.bui_beforeid = this.get_block_id(dragnode.next('.' + this.samenodeclass));
|
||||
}
|
||||
|
||||
// Do AJAX request
|
||||
Y.io(M.cfg.wwwroot+AJAXURL, {
|
||||
Y.io(M.cfg.wwwroot + AJAXURL, {
|
||||
method: 'POST',
|
||||
data: params,
|
||||
on: {
|
||||
start : function() {
|
||||
start: function() {
|
||||
lightbox.show();
|
||||
},
|
||||
success: function(tid, response) {
|
||||
@@ -295,39 +295,41 @@ Y.extend(DRAGBLOCK, M.core.dragdrop, {
|
||||
if (responsetext.error) {
|
||||
new M.core.ajaxException(responsetext);
|
||||
}
|
||||
} catch (e) {}
|
||||
} catch (e) {
|
||||
// Ignore.
|
||||
}
|
||||
},
|
||||
failure: function(tid, response) {
|
||||
this.ajax_failure(response);
|
||||
lightbox.hide();
|
||||
}
|
||||
},
|
||||
context:this
|
||||
context: this
|
||||
});
|
||||
}
|
||||
}, {
|
||||
NAME : 'core-blocks-dragdrop',
|
||||
ATTRS : {
|
||||
courseid : {
|
||||
value : null
|
||||
NAME: 'core-blocks-dragdrop',
|
||||
ATTRS: {
|
||||
courseid: {
|
||||
value: null
|
||||
},
|
||||
cmid : {
|
||||
value : null
|
||||
cmid: {
|
||||
value: null
|
||||
},
|
||||
contextid : {
|
||||
value : null
|
||||
contextid: {
|
||||
value: null
|
||||
},
|
||||
pagelayout : {
|
||||
value : null
|
||||
pagelayout: {
|
||||
value: null
|
||||
},
|
||||
pagetype : {
|
||||
value : null
|
||||
pagetype: {
|
||||
value: null
|
||||
},
|
||||
subpage : {
|
||||
value : null
|
||||
subpage: {
|
||||
value: null
|
||||
},
|
||||
regions : {
|
||||
value : null
|
||||
regions: {
|
||||
value: null
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -416,7 +418,7 @@ MANAGER.prototype = {
|
||||
* @type Node
|
||||
* @default null
|
||||
*/
|
||||
skipnodetop : null,
|
||||
skipnodetop: null,
|
||||
|
||||
/**
|
||||
* The skip block link from below the block being dragged while a drag is in progress.
|
||||
@@ -426,7 +428,7 @@ MANAGER.prototype = {
|
||||
* @type Node
|
||||
* @default null
|
||||
*/
|
||||
skipnodebottom : null,
|
||||
skipnodebottom: null,
|
||||
|
||||
/**
|
||||
* An associative object of regions and the
|
||||
@@ -435,13 +437,13 @@ MANAGER.prototype = {
|
||||
* @type {BLOCKREGION} [regionname]* Each item uses the region name as the key with the value being
|
||||
* an instance of the BLOCKREGION class.
|
||||
*/
|
||||
regionobjects : {},
|
||||
regionobjects: {},
|
||||
|
||||
/**
|
||||
* Called during the initialisation process of the object.
|
||||
* @method initializer
|
||||
*/
|
||||
initializer : function() {
|
||||
initializer: function() {
|
||||
var regionnames = this.get('regions'),
|
||||
i = 0,
|
||||
region,
|
||||
@@ -454,7 +456,7 @@ MANAGER.prototype = {
|
||||
this.parentnodeclass = CSS.BLOCKREGION;
|
||||
|
||||
// Add relevant classes and ID to 'content' block region on Dashboard page.
|
||||
var myhomecontent = Y.Node.all('body#'+CSS.MYINDEX+' #'+CSS.REGIONMAIN+' > .'+CSS.REGIONCONTENT);
|
||||
var myhomecontent = Y.Node.all('body#' + CSS.MYINDEX + ' #' + CSS.REGIONMAIN + ' > .' + CSS.REGIONCONTENT);
|
||||
if (myhomecontent.size() > 0) {
|
||||
var contentregion = myhomecontent.item(0);
|
||||
contentregion.addClass(CSS.BLOCKREGION);
|
||||
@@ -465,9 +467,9 @@ MANAGER.prototype = {
|
||||
for (i in regionnames) {
|
||||
regionname = regionnames[i];
|
||||
region = new BLOCKREGION({
|
||||
manager : this,
|
||||
region : regionname,
|
||||
node : Y.one('#block-region-'+regionname)
|
||||
manager: this,
|
||||
region: regionname,
|
||||
node: Y.one('#block-region-' + regionname)
|
||||
});
|
||||
this.regionobjects[regionname] = region;
|
||||
|
||||
@@ -483,7 +485,7 @@ MANAGER.prototype = {
|
||||
// Make each div element in the list of blocks draggable
|
||||
dragdelegation = new Y.DD.Delegate({
|
||||
container: region.get_droptarget(),
|
||||
nodes: '.'+CSS.BLOCK,
|
||||
nodes: '.' + CSS.BLOCK,
|
||||
target: true,
|
||||
handles: [SELECTOR.DRAGHANDLE],
|
||||
invalid: '.block-hider-hide, .block-hider-show, .moveto, .block_fake',
|
||||
@@ -509,7 +511,7 @@ MANAGER.prototype = {
|
||||
* @param {Node} node
|
||||
* @return {int} The blocks ID in the database.
|
||||
*/
|
||||
get_block_id : function(node) {
|
||||
get_block_id: function(node) {
|
||||
return Number(node.get('id').replace(/inst/i, ''));
|
||||
},
|
||||
|
||||
@@ -519,7 +521,7 @@ MANAGER.prototype = {
|
||||
* @param {Y.Node} node
|
||||
* @return {string} The region name.
|
||||
*/
|
||||
get_block_region : function(node) {
|
||||
get_block_region: function(node) {
|
||||
if (!node.test('[data-blockregion]')) {
|
||||
node = node.ancestor('[data-blockregion]');
|
||||
}
|
||||
@@ -532,7 +534,7 @@ MANAGER.prototype = {
|
||||
* @param {Y.Node} node
|
||||
* @return {BLOCKREGION}
|
||||
*/
|
||||
get_region_object : function(node) {
|
||||
get_region_object: function(node) {
|
||||
return this.regionobjects[this.get_block_region(node)];
|
||||
},
|
||||
|
||||
@@ -541,7 +543,7 @@ MANAGER.prototype = {
|
||||
*
|
||||
* @method enable_all_regions
|
||||
*/
|
||||
enable_all_regions : function() {
|
||||
enable_all_regions: function() {
|
||||
var groups = Y.DD.DDM.activeDrag.get('groups');
|
||||
|
||||
// As we're called by Y.DD.DDM, we can't be certain that the call
|
||||
@@ -564,7 +566,7 @@ MANAGER.prototype = {
|
||||
* Disables enabled regions if they contain no blocks.
|
||||
* @method disable_regions_if_required
|
||||
*/
|
||||
disable_regions_if_required : function() {
|
||||
disable_regions_if_required: function() {
|
||||
var i = 0;
|
||||
for (i in this.regionobjects) {
|
||||
this.regionobjects[i].disable_if_required();
|
||||
@@ -576,7 +578,7 @@ MANAGER.prototype = {
|
||||
* @method drag_start
|
||||
* @param {Event} e
|
||||
*/
|
||||
drag_start : function(e) {
|
||||
drag_start: function(e) {
|
||||
// Get our drag object
|
||||
var drag = e.target;
|
||||
|
||||
@@ -597,7 +599,7 @@ MANAGER.prototype = {
|
||||
* @method drop_over
|
||||
* @param {Event} e
|
||||
*/
|
||||
drop_over : function(e) {
|
||||
drop_over: function(e) {
|
||||
// Get a reference to our drag and drop nodes
|
||||
var drag = e.drag.get('node');
|
||||
var drop = e.drop.get('node');
|
||||
@@ -605,8 +607,8 @@ MANAGER.prototype = {
|
||||
// We need to fix the case when parent drop over event has determined
|
||||
// 'goingup' and appended the drag node after admin-block.
|
||||
if (drop.hasClass(CSS.REGIONCONTENT) &&
|
||||
drop.one('.'+CSS.BLOCKADMINBLOCK) &&
|
||||
drop.one('.'+CSS.BLOCKADMINBLOCK).next('.'+CSS.BLOCK)) {
|
||||
drop.one('.' + CSS.BLOCKADMINBLOCK) &&
|
||||
drop.one('.' + CSS.BLOCKADMINBLOCK).next('.' + CSS.BLOCK)) {
|
||||
drop.prepend(drag);
|
||||
}
|
||||
},
|
||||
@@ -615,7 +617,7 @@ MANAGER.prototype = {
|
||||
* Called by M.core.dragdrop.global_drop_end when a drop has been completed.
|
||||
* @method drop_end
|
||||
*/
|
||||
drop_end : function() {
|
||||
drop_end: function() {
|
||||
// Clear variables.
|
||||
this.skipnodetop = null;
|
||||
this.skipnodebottom = null;
|
||||
@@ -629,7 +631,7 @@ MANAGER.prototype = {
|
||||
* @method drag_dropmiss
|
||||
* @param {Event} e
|
||||
*/
|
||||
drag_dropmiss : function(e) {
|
||||
drag_dropmiss: function(e) {
|
||||
// Missed the target, but we assume the user intended to drop it
|
||||
// on the last ghost node location, e.drag and e.drop should be
|
||||
// prepared by global_drag_dropmiss parent so simulate drop_hit(e).
|
||||
@@ -641,7 +643,7 @@ MANAGER.prototype = {
|
||||
* @method drop_hit
|
||||
* @param {Event} e
|
||||
*/
|
||||
drop_hit : function(e) {
|
||||
drop_hit: function(e) {
|
||||
// Get a reference to our drag node
|
||||
var dragnode = e.drag.get('node');
|
||||
var dropnode = e.drop.get('node');
|
||||
@@ -664,31 +666,31 @@ MANAGER.prototype = {
|
||||
|
||||
// Prepare request parameters
|
||||
var params = {
|
||||
sesskey : M.cfg.sesskey,
|
||||
courseid : this.get('courseid'),
|
||||
pagelayout : this.get('pagelayout'),
|
||||
pagetype : this.get('pagetype'),
|
||||
subpage : this.get('subpage'),
|
||||
contextid : this.get('contextid'),
|
||||
action : 'move',
|
||||
bui_moveid : this.get_block_id(dragnode),
|
||||
bui_newregion : this.get_block_region(dropnode)
|
||||
sesskey: M.cfg.sesskey,
|
||||
courseid: this.get('courseid'),
|
||||
pagelayout: this.get('pagelayout'),
|
||||
pagetype: this.get('pagetype'),
|
||||
subpage: this.get('subpage'),
|
||||
contextid: this.get('contextid'),
|
||||
action: 'move',
|
||||
bui_moveid: this.get_block_id(dragnode),
|
||||
bui_newregion: this.get_block_region(dropnode)
|
||||
};
|
||||
|
||||
if (this.get('cmid')) {
|
||||
params.cmid = this.get('cmid');
|
||||
}
|
||||
|
||||
if (dragnode.next('.'+CSS.BLOCK) && !dragnode.next('.'+CSS.BLOCK).hasClass(CSS.BLOCKADMINBLOCK)) {
|
||||
params.bui_beforeid = this.get_block_id(dragnode.next('.'+CSS.BLOCK));
|
||||
if (dragnode.next('.' + CSS.BLOCK) && !dragnode.next('.' + CSS.BLOCK).hasClass(CSS.BLOCKADMINBLOCK)) {
|
||||
params.bui_beforeid = this.get_block_id(dragnode.next('.' + CSS.BLOCK));
|
||||
}
|
||||
|
||||
// Do AJAX request
|
||||
Y.io(M.cfg.wwwroot+AJAXURL, {
|
||||
Y.io(M.cfg.wwwroot + AJAXURL, {
|
||||
method: 'POST',
|
||||
data: params,
|
||||
on: {
|
||||
start : function() {
|
||||
start: function() {
|
||||
lightbox.show();
|
||||
},
|
||||
success: function(tid, response) {
|
||||
@@ -700,31 +702,33 @@ MANAGER.prototype = {
|
||||
if (responsetext.error) {
|
||||
new M.core.ajaxException(responsetext);
|
||||
}
|
||||
} catch (e) {}
|
||||
} catch (e) {
|
||||
// Ignore.
|
||||
}
|
||||
},
|
||||
failure: function(tid, response) {
|
||||
this.ajax_failure(response);
|
||||
lightbox.hide();
|
||||
},
|
||||
complete : function() {
|
||||
complete: function() {
|
||||
this.disable_regions_if_required();
|
||||
}
|
||||
},
|
||||
context:this
|
||||
context: this
|
||||
});
|
||||
}
|
||||
};
|
||||
Y.extend(MANAGER, M.core.dragdrop, MANAGER.prototype, {
|
||||
NAME : 'core-blocks-dragdrop-manager',
|
||||
ATTRS : {
|
||||
NAME: 'core-blocks-dragdrop-manager',
|
||||
ATTRS: {
|
||||
/**
|
||||
* The Course ID if there is one.
|
||||
* @attribute courseid
|
||||
* @type int|null
|
||||
* @default null
|
||||
*/
|
||||
courseid : {
|
||||
value : null
|
||||
courseid: {
|
||||
value: null
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -733,8 +737,8 @@ Y.extend(MANAGER, M.core.dragdrop, MANAGER.prototype, {
|
||||
* @type int|null
|
||||
* @default null
|
||||
*/
|
||||
cmid : {
|
||||
value : null
|
||||
cmid: {
|
||||
value: null
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -743,8 +747,8 @@ Y.extend(MANAGER, M.core.dragdrop, MANAGER.prototype, {
|
||||
* @type int|null
|
||||
* @default null
|
||||
*/
|
||||
contextid : {
|
||||
value : null
|
||||
contextid: {
|
||||
value: null
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -753,8 +757,8 @@ Y.extend(MANAGER, M.core.dragdrop, MANAGER.prototype, {
|
||||
* @type string|null
|
||||
* @default null
|
||||
*/
|
||||
pagelayout : {
|
||||
value : null
|
||||
pagelayout: {
|
||||
value: null
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -763,8 +767,8 @@ Y.extend(MANAGER, M.core.dragdrop, MANAGER.prototype, {
|
||||
* @type string|null
|
||||
* @default null
|
||||
*/
|
||||
pagetype : {
|
||||
value : null
|
||||
pagetype: {
|
||||
value: null
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -773,8 +777,8 @@ Y.extend(MANAGER, M.core.dragdrop, MANAGER.prototype, {
|
||||
* @type string|null
|
||||
* @default null
|
||||
*/
|
||||
subpage : {
|
||||
value : null
|
||||
subpage: {
|
||||
value: null
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -783,8 +787,8 @@ Y.extend(MANAGER, M.core.dragdrop, MANAGER.prototype, {
|
||||
* @type array|null
|
||||
* @default Array[]
|
||||
*/
|
||||
regions : {
|
||||
value : []
|
||||
regions: {
|
||||
value: []
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -814,13 +818,13 @@ BLOCKREGION.prototype = {
|
||||
* Called during the initialisation process of the object.
|
||||
* @method initializer
|
||||
*/
|
||||
initializer : function() {
|
||||
initializer: function() {
|
||||
var node = this.get('node');
|
||||
if (!node) {
|
||||
node = this.create_and_add_node();
|
||||
}
|
||||
var body = Y.one('body'),
|
||||
hasblocks = node.all('.'+CSS.BLOCK).size() > 0,
|
||||
hasblocks = node.all('.' + CSS.BLOCK).size() > 0,
|
||||
hasregionclass = this.get_has_region_class();
|
||||
this.set('hasblocks', hasblocks);
|
||||
if (!body.hasClass(hasregionclass)) {
|
||||
@@ -835,10 +839,10 @@ BLOCKREGION.prototype = {
|
||||
* @method create_and_add_node
|
||||
* @return Node The newly created Node
|
||||
*/
|
||||
create_and_add_node : function() {
|
||||
create_and_add_node: function() {
|
||||
var c = Y.Node.create,
|
||||
region = this.get('region'),
|
||||
node = c('<div id="block-region-'+region+'" data-droptarget="1"></div>')
|
||||
node = c('<div id="block-region-' + region + '" data-droptarget="1"></div>')
|
||||
.addClass(CSS.BLOCKREGION)
|
||||
.setData('blockregion', region),
|
||||
regions = this.get('manager').get('regions'),
|
||||
@@ -859,13 +863,13 @@ BLOCKREGION.prototype = {
|
||||
|
||||
if (haspre !== false && haspost !== false) {
|
||||
if (region === haspre) {
|
||||
post = Y.one('#block-region-'+haspost);
|
||||
post = Y.one('#block-region-' + haspost);
|
||||
if (post) {
|
||||
post.insert(node, 'before');
|
||||
added = true;
|
||||
}
|
||||
} else {
|
||||
pre = Y.one('#block-region-'+haspre);
|
||||
pre = Y.one('#block-region-' + haspre);
|
||||
if (pre) {
|
||||
pre.insert(node, 'after');
|
||||
added = true;
|
||||
@@ -885,9 +889,9 @@ BLOCKREGION.prototype = {
|
||||
* @param M.core.dragdrop the block manager
|
||||
* @method change_block_move_icons
|
||||
*/
|
||||
change_block_move_icons : function(manager) {
|
||||
change_block_move_icons: function(manager) {
|
||||
var handle, icon;
|
||||
this.get('node').all('.'+CSS.BLOCK+' a.'+CSS.EDITINGMOVE).each(function(moveicon){
|
||||
this.get('node').all('.' + CSS.BLOCK + ' a.' + CSS.EDITINGMOVE).each(function(moveicon) {
|
||||
moveicon.setStyle('cursor', 'move');
|
||||
handle = manager.get_drag_handle(moveicon.getAttribute('title'), '', 'icon', true);
|
||||
icon = handle.one('img');
|
||||
@@ -902,8 +906,8 @@ BLOCKREGION.prototype = {
|
||||
* @method get_has_region_class
|
||||
* @return String
|
||||
*/
|
||||
get_has_region_class : function() {
|
||||
return 'has-region-'+this.get('region');
|
||||
get_has_region_class: function() {
|
||||
return 'has-region-' + this.get('region');
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -911,8 +915,8 @@ BLOCKREGION.prototype = {
|
||||
* @method get_empty_region_class
|
||||
* @return String
|
||||
*/
|
||||
get_empty_region_class : function() {
|
||||
return 'empty-region-'+this.get('region');
|
||||
get_empty_region_class: function() {
|
||||
return 'empty-region-' + this.get('region');
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -920,8 +924,8 @@ BLOCKREGION.prototype = {
|
||||
* @method get_used_region_class
|
||||
* @return String
|
||||
*/
|
||||
get_used_region_class : function() {
|
||||
return 'used-region-'+this.get('region');
|
||||
get_used_region_class: function() {
|
||||
return 'used-region-' + this.get('region');
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -929,7 +933,7 @@ BLOCKREGION.prototype = {
|
||||
* @method get_droptarget
|
||||
* @return Node
|
||||
*/
|
||||
get_droptarget : function() {
|
||||
get_droptarget: function() {
|
||||
var node = this.get('node');
|
||||
if (node.test('[data-droptarget="1"]')) {
|
||||
return node;
|
||||
@@ -942,7 +946,7 @@ BLOCKREGION.prototype = {
|
||||
* This is done even if it is empty.
|
||||
* @method enable
|
||||
*/
|
||||
enable : function() {
|
||||
enable: function() {
|
||||
Y.one('body').addClass(this.get_used_region_class()).removeClass(this.get_empty_region_class());
|
||||
},
|
||||
|
||||
@@ -950,15 +954,15 @@ BLOCKREGION.prototype = {
|
||||
* Disables the region if it contains no blocks, essentially hiding it from the user.
|
||||
* @method disable_if_required
|
||||
*/
|
||||
disable_if_required : function() {
|
||||
if (this.get('node').all('.'+CSS.BLOCK).size() === 0) {
|
||||
disable_if_required: function() {
|
||||
if (this.get('node').all('.' + CSS.BLOCK).size() === 0) {
|
||||
Y.one('body').addClass(this.get_empty_region_class()).removeClass(this.get_used_region_class());
|
||||
}
|
||||
}
|
||||
};
|
||||
Y.extend(BLOCKREGION, Y.Base, BLOCKREGION.prototype, {
|
||||
NAME : 'core-blocks-dragdrop-blockregion',
|
||||
ATTRS : {
|
||||
NAME: 'core-blocks-dragdrop-blockregion',
|
||||
ATTRS: {
|
||||
|
||||
/**
|
||||
* The drag and drop manager that created this block region instance.
|
||||
@@ -966,10 +970,10 @@ Y.extend(BLOCKREGION, Y.Base, BLOCKREGION.prototype, {
|
||||
* @type M.core.blockdraganddrop.Manager
|
||||
* @writeOnce
|
||||
*/
|
||||
manager : {
|
||||
manager: {
|
||||
// Can only be set during initialisation and must be set then.
|
||||
writeOnce : 'initOnly',
|
||||
validator : function (value) {
|
||||
writeOnce: 'initOnly',
|
||||
validator: function(value) {
|
||||
return Y.Lang.isObject(value) && value instanceof MANAGER;
|
||||
}
|
||||
},
|
||||
@@ -980,10 +984,10 @@ Y.extend(BLOCKREGION, Y.Base, BLOCKREGION.prototype, {
|
||||
* @type String
|
||||
* @writeOnce
|
||||
*/
|
||||
region : {
|
||||
region: {
|
||||
// Can only be set during initialisation and must be set then.
|
||||
writeOnce : 'initOnly',
|
||||
validator : function (value) {
|
||||
writeOnce: 'initOnly',
|
||||
validator: function(value) {
|
||||
return Y.Lang.isString(value);
|
||||
}
|
||||
},
|
||||
@@ -993,8 +997,8 @@ Y.extend(BLOCKREGION, Y.Base, BLOCKREGION.prototype, {
|
||||
* @attribute region
|
||||
* @type Y.Node
|
||||
*/
|
||||
node : {
|
||||
validator : function (value) {
|
||||
node: {
|
||||
validator: function(value) {
|
||||
return Y.Lang.isObject(value) || Y.Lang.isNull(value);
|
||||
}
|
||||
},
|
||||
@@ -1005,9 +1009,9 @@ Y.extend(BLOCKREGION, Y.Base, BLOCKREGION.prototype, {
|
||||
* @type Boolean
|
||||
* @default false
|
||||
*/
|
||||
hasblocks : {
|
||||
value : false,
|
||||
validator : function (value) {
|
||||
hasblocks: {
|
||||
value: false,
|
||||
validator: function(value) {
|
||||
return Y.Lang.isBoolean(value);
|
||||
}
|
||||
}
|
||||
|
||||
+35
-35
@@ -21,28 +21,28 @@ Y.extend(CHOOSERDIALOGUE, Y.Base, {
|
||||
panel: null,
|
||||
|
||||
// The submit button - we disable this until an element is set
|
||||
submitbutton : null,
|
||||
submitbutton: null,
|
||||
|
||||
// The chooserdialogue container
|
||||
container : null,
|
||||
container: null,
|
||||
|
||||
// Any event listeners we may need to cancel later
|
||||
listenevents : [],
|
||||
listenevents: [],
|
||||
|
||||
bodycontent : null,
|
||||
headercontent : null,
|
||||
instanceconfig : null,
|
||||
bodycontent: null,
|
||||
headercontent: null,
|
||||
instanceconfig: null,
|
||||
|
||||
// The hidden field storing the disabled element values for submission.
|
||||
hiddenRadioValue: null,
|
||||
|
||||
setup_chooser_dialogue : function(bodycontent, headercontent, config) {
|
||||
setup_chooser_dialogue: function(bodycontent, headercontent, config) {
|
||||
this.bodycontent = bodycontent;
|
||||
this.headercontent = headercontent;
|
||||
this.instanceconfig = config;
|
||||
},
|
||||
|
||||
prepare_chooser : function () {
|
||||
prepare_chooser: function() {
|
||||
if (this.panel) {
|
||||
return;
|
||||
}
|
||||
@@ -53,17 +53,17 @@ Y.extend(CHOOSERDIALOGUE, Y.Base, {
|
||||
// Set Default options
|
||||
var paramkey,
|
||||
params = {
|
||||
bodyContent : this.bodycontent.get('innerHTML'),
|
||||
headerContent : this.headercontent.get('innerHTML'),
|
||||
width : '540px',
|
||||
draggable : true,
|
||||
visible : false, // Hide by default
|
||||
zindex : 100, // Display in front of other items
|
||||
bodyContent: this.bodycontent.get('innerHTML'),
|
||||
headerContent: this.headercontent.get('innerHTML'),
|
||||
width: '540px',
|
||||
draggable: true,
|
||||
visible: false, // Hide by default
|
||||
zindex: 100, // Display in front of other items
|
||||
modal: true, // This dialogue should be modal.
|
||||
shim : true,
|
||||
closeButtonTitle : this.get('closeButtonTitle'),
|
||||
shim: true,
|
||||
closeButtonTitle: this.get('closeButtonTitle'),
|
||||
focusOnPreviousTargetAfterHide: true,
|
||||
render : false,
|
||||
render: false,
|
||||
extraClasses: this._getClassNames()
|
||||
};
|
||||
|
||||
@@ -102,7 +102,7 @@ Y.extend(CHOOSERDIALOGUE, Y.Base, {
|
||||
* @method display_chooser
|
||||
* @param {EventFacade} e Triggering Event
|
||||
*/
|
||||
display_chooser : function (e) {
|
||||
display_chooser: function(e) {
|
||||
var bb, dialogue, thisevent;
|
||||
this.prepare_chooser();
|
||||
|
||||
@@ -192,7 +192,7 @@ Y.extend(CHOOSERDIALOGUE, Y.Base, {
|
||||
*
|
||||
* @method cancel_listenevents
|
||||
*/
|
||||
cancel_listenevents : function () {
|
||||
cancel_listenevents: function() {
|
||||
// Detach all listen events to prevent duplicate triggers
|
||||
var thisevent;
|
||||
while (this.listenevents.length) {
|
||||
@@ -210,7 +210,7 @@ Y.extend(CHOOSERDIALOGUE, Y.Base, {
|
||||
* @method center_dialogue
|
||||
* @param Node {dialogue} Y.Node The dialogue
|
||||
*/
|
||||
center_dialogue : function(dialogue) {
|
||||
center_dialogue: function(dialogue) {
|
||||
var bb = this.panel.get('boundingBox'),
|
||||
winheight = bb.get('winHeight'),
|
||||
newheight, totalheight;
|
||||
@@ -267,19 +267,19 @@ Y.extend(CHOOSERDIALOGUE, Y.Base, {
|
||||
this.panel.centerDialogue();
|
||||
},
|
||||
|
||||
handle_key_press : function(e) {
|
||||
handle_key_press: function(e) {
|
||||
if (e.keyCode === 27) {
|
||||
this.cancel_popup(e);
|
||||
}
|
||||
},
|
||||
|
||||
cancel_popup : function (e) {
|
||||
cancel_popup: function(e) {
|
||||
// Prevent normal form submission before hiding
|
||||
e.preventDefault();
|
||||
this.hide();
|
||||
},
|
||||
|
||||
hide : function() {
|
||||
hide: function() {
|
||||
// Cancel all listen events
|
||||
this.cancel_listenevents();
|
||||
|
||||
@@ -287,7 +287,7 @@ Y.extend(CHOOSERDIALOGUE, Y.Base, {
|
||||
this.panel.hide();
|
||||
},
|
||||
|
||||
check_options : function() {
|
||||
check_options: function() {
|
||||
// Check which options are set, and change the parent class
|
||||
// to show/hide help as required
|
||||
this.options.each(function(thisoption) {
|
||||
@@ -309,7 +309,7 @@ Y.extend(CHOOSERDIALOGUE, Y.Base, {
|
||||
}, this);
|
||||
},
|
||||
|
||||
option_selected : function(e) {
|
||||
option_selected: function(e) {
|
||||
// Set a hidden input field with the value and name of the radio button. When we submit the form, we
|
||||
// disable the radios to prevent duplicate submission. This has the result however that the value is never
|
||||
// submitted so we set this value to a hidden field instead
|
||||
@@ -352,8 +352,8 @@ Y.extend(CHOOSERDIALOGUE, Y.Base, {
|
||||
}
|
||||
},
|
||||
{
|
||||
NAME : 'moodle-core-chooserdialogue',
|
||||
ATTRS : {
|
||||
NAME: 'moodle-core-chooserdialogue',
|
||||
ATTRS: {
|
||||
/**
|
||||
* The minimum height (in pixels) before resizing is prevented and scroll
|
||||
* locking disabled.
|
||||
@@ -362,8 +362,8 @@ Y.extend(CHOOSERDIALOGUE, Y.Base, {
|
||||
* @type Number
|
||||
* @default 300
|
||||
*/
|
||||
minheight : {
|
||||
value : 300
|
||||
minheight: {
|
||||
value: 300
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -374,7 +374,7 @@ Y.extend(CHOOSERDIALOGUE, Y.Base, {
|
||||
* @default 400
|
||||
*/
|
||||
baseheight: {
|
||||
value : 400
|
||||
value: 400
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -384,8 +384,8 @@ Y.extend(CHOOSERDIALOGUE, Y.Base, {
|
||||
* @type Number
|
||||
* @default 300
|
||||
*/
|
||||
maxheight : {
|
||||
value : 660
|
||||
maxheight: {
|
||||
value: 660
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -395,9 +395,9 @@ Y.extend(CHOOSERDIALOGUE, Y.Base, {
|
||||
* @type String
|
||||
* @default 'Close'
|
||||
*/
|
||||
closeButtonTitle : {
|
||||
validator : Y.Lang.isString,
|
||||
value : 'Close'
|
||||
closeButtonTitle: {
|
||||
validator: Y.Lang.isString,
|
||||
value: 'Close'
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -21,28 +21,28 @@ Y.extend(CHOOSERDIALOGUE, Y.Base, {
|
||||
panel: null,
|
||||
|
||||
// The submit button - we disable this until an element is set
|
||||
submitbutton : null,
|
||||
submitbutton: null,
|
||||
|
||||
// The chooserdialogue container
|
||||
container : null,
|
||||
container: null,
|
||||
|
||||
// Any event listeners we may need to cancel later
|
||||
listenevents : [],
|
||||
listenevents: [],
|
||||
|
||||
bodycontent : null,
|
||||
headercontent : null,
|
||||
instanceconfig : null,
|
||||
bodycontent: null,
|
||||
headercontent: null,
|
||||
instanceconfig: null,
|
||||
|
||||
// The hidden field storing the disabled element values for submission.
|
||||
hiddenRadioValue: null,
|
||||
|
||||
setup_chooser_dialogue : function(bodycontent, headercontent, config) {
|
||||
setup_chooser_dialogue: function(bodycontent, headercontent, config) {
|
||||
this.bodycontent = bodycontent;
|
||||
this.headercontent = headercontent;
|
||||
this.instanceconfig = config;
|
||||
},
|
||||
|
||||
prepare_chooser : function () {
|
||||
prepare_chooser: function() {
|
||||
if (this.panel) {
|
||||
return;
|
||||
}
|
||||
@@ -53,17 +53,17 @@ Y.extend(CHOOSERDIALOGUE, Y.Base, {
|
||||
// Set Default options
|
||||
var paramkey,
|
||||
params = {
|
||||
bodyContent : this.bodycontent.get('innerHTML'),
|
||||
headerContent : this.headercontent.get('innerHTML'),
|
||||
width : '540px',
|
||||
draggable : true,
|
||||
visible : false, // Hide by default
|
||||
zindex : 100, // Display in front of other items
|
||||
bodyContent: this.bodycontent.get('innerHTML'),
|
||||
headerContent: this.headercontent.get('innerHTML'),
|
||||
width: '540px',
|
||||
draggable: true,
|
||||
visible: false, // Hide by default
|
||||
zindex: 100, // Display in front of other items
|
||||
modal: true, // This dialogue should be modal.
|
||||
shim : true,
|
||||
closeButtonTitle : this.get('closeButtonTitle'),
|
||||
shim: true,
|
||||
closeButtonTitle: this.get('closeButtonTitle'),
|
||||
focusOnPreviousTargetAfterHide: true,
|
||||
render : false,
|
||||
render: false,
|
||||
extraClasses: this._getClassNames()
|
||||
};
|
||||
|
||||
@@ -102,7 +102,7 @@ Y.extend(CHOOSERDIALOGUE, Y.Base, {
|
||||
* @method display_chooser
|
||||
* @param {EventFacade} e Triggering Event
|
||||
*/
|
||||
display_chooser : function (e) {
|
||||
display_chooser: function(e) {
|
||||
var bb, dialogue, thisevent;
|
||||
this.prepare_chooser();
|
||||
|
||||
@@ -192,7 +192,7 @@ Y.extend(CHOOSERDIALOGUE, Y.Base, {
|
||||
*
|
||||
* @method cancel_listenevents
|
||||
*/
|
||||
cancel_listenevents : function () {
|
||||
cancel_listenevents: function() {
|
||||
// Detach all listen events to prevent duplicate triggers
|
||||
var thisevent;
|
||||
while (this.listenevents.length) {
|
||||
@@ -210,7 +210,7 @@ Y.extend(CHOOSERDIALOGUE, Y.Base, {
|
||||
* @method center_dialogue
|
||||
* @param Node {dialogue} Y.Node The dialogue
|
||||
*/
|
||||
center_dialogue : function(dialogue) {
|
||||
center_dialogue: function(dialogue) {
|
||||
var bb = this.panel.get('boundingBox'),
|
||||
winheight = bb.get('winHeight'),
|
||||
newheight, totalheight;
|
||||
@@ -267,19 +267,19 @@ Y.extend(CHOOSERDIALOGUE, Y.Base, {
|
||||
this.panel.centerDialogue();
|
||||
},
|
||||
|
||||
handle_key_press : function(e) {
|
||||
handle_key_press: function(e) {
|
||||
if (e.keyCode === 27) {
|
||||
this.cancel_popup(e);
|
||||
}
|
||||
},
|
||||
|
||||
cancel_popup : function (e) {
|
||||
cancel_popup: function(e) {
|
||||
// Prevent normal form submission before hiding
|
||||
e.preventDefault();
|
||||
this.hide();
|
||||
},
|
||||
|
||||
hide : function() {
|
||||
hide: function() {
|
||||
// Cancel all listen events
|
||||
this.cancel_listenevents();
|
||||
|
||||
@@ -287,7 +287,7 @@ Y.extend(CHOOSERDIALOGUE, Y.Base, {
|
||||
this.panel.hide();
|
||||
},
|
||||
|
||||
check_options : function() {
|
||||
check_options: function() {
|
||||
// Check which options are set, and change the parent class
|
||||
// to show/hide help as required
|
||||
this.options.each(function(thisoption) {
|
||||
@@ -309,7 +309,7 @@ Y.extend(CHOOSERDIALOGUE, Y.Base, {
|
||||
}, this);
|
||||
},
|
||||
|
||||
option_selected : function(e) {
|
||||
option_selected: function(e) {
|
||||
// Set a hidden input field with the value and name of the radio button. When we submit the form, we
|
||||
// disable the radios to prevent duplicate submission. This has the result however that the value is never
|
||||
// submitted so we set this value to a hidden field instead
|
||||
@@ -352,8 +352,8 @@ Y.extend(CHOOSERDIALOGUE, Y.Base, {
|
||||
}
|
||||
},
|
||||
{
|
||||
NAME : 'moodle-core-chooserdialogue',
|
||||
ATTRS : {
|
||||
NAME: 'moodle-core-chooserdialogue',
|
||||
ATTRS: {
|
||||
/**
|
||||
* The minimum height (in pixels) before resizing is prevented and scroll
|
||||
* locking disabled.
|
||||
@@ -362,8 +362,8 @@ Y.extend(CHOOSERDIALOGUE, Y.Base, {
|
||||
* @type Number
|
||||
* @default 300
|
||||
*/
|
||||
minheight : {
|
||||
value : 300
|
||||
minheight: {
|
||||
value: 300
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -374,7 +374,7 @@ Y.extend(CHOOSERDIALOGUE, Y.Base, {
|
||||
* @default 400
|
||||
*/
|
||||
baseheight: {
|
||||
value : 400
|
||||
value: 400
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -384,8 +384,8 @@ Y.extend(CHOOSERDIALOGUE, Y.Base, {
|
||||
* @type Number
|
||||
* @default 300
|
||||
*/
|
||||
maxheight : {
|
||||
value : 660
|
||||
maxheight: {
|
||||
value: 660
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -395,9 +395,9 @@ Y.extend(CHOOSERDIALOGUE, Y.Base, {
|
||||
* @type String
|
||||
* @default 'Close'
|
||||
*/
|
||||
closeButtonTitle : {
|
||||
validator : Y.Lang.isString,
|
||||
value : 'Close'
|
||||
closeButtonTitle: {
|
||||
validator: Y.Lang.isString,
|
||||
value: 'Close'
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -83,10 +83,10 @@ M.core.dock.loader.initLoader = function() {
|
||||
callback;
|
||||
dockedblocks.each(function() {
|
||||
var id = parseInt(this.getData('instanceid'), 10);
|
||||
Y.log('Dock loader watching block with instance id: '+id, 'debug', LOADERNAME);
|
||||
Y.log('Dock loader watching block with instance id: ' + id, 'debug', LOADERNAME);
|
||||
M.core.dock.ensureMoveToIconExists(this);
|
||||
});
|
||||
if (dockedblocks.some(function(node){return node.hasClass('dock_on_load');})) {
|
||||
if (dockedblocks.some(function(node) { return node.hasClass('dock_on_load'); })) {
|
||||
Y.log('Loading dock module', 'debug', LOADERNAME);
|
||||
Y.use('moodle-core-dock', function() {
|
||||
M.core.dock.init();
|
||||
@@ -104,8 +104,8 @@ M.core.dock.loader.initLoader = function() {
|
||||
}
|
||||
block.addClass('dock_on_load');
|
||||
Y.log('Loading dock module', 'debug', LOADERNAME);
|
||||
Y.use('moodle-core-dock', function(){
|
||||
M.util.set_user_preference('docked_block_instance_'+instanceid, 1);
|
||||
Y.use('moodle-core-dock', function() {
|
||||
M.util.set_user_preference('docked_block_instance_' + instanceid, 1);
|
||||
M.core.dock.init();
|
||||
});
|
||||
};
|
||||
|
||||
@@ -84,7 +84,7 @@ M.core.dock.loader.initLoader = function() {
|
||||
var id = parseInt(this.getData('instanceid'), 10);
|
||||
M.core.dock.ensureMoveToIconExists(this);
|
||||
});
|
||||
if (dockedblocks.some(function(node){return node.hasClass('dock_on_load');})) {
|
||||
if (dockedblocks.some(function(node) { return node.hasClass('dock_on_load'); })) {
|
||||
Y.use('moodle-core-dock', function() {
|
||||
M.core.dock.init();
|
||||
});
|
||||
@@ -100,8 +100,8 @@ M.core.dock.loader.initLoader = function() {
|
||||
}
|
||||
}
|
||||
block.addClass('dock_on_load');
|
||||
Y.use('moodle-core-dock', function(){
|
||||
M.util.set_user_preference('docked_block_instance_'+instanceid, 1);
|
||||
Y.use('moodle-core-dock', function() {
|
||||
M.util.set_user_preference('docked_block_instance_' + instanceid, 1);
|
||||
M.core.dock.init();
|
||||
});
|
||||
};
|
||||
|
||||
+302
-301
File diff suppressed because it is too large
Load Diff
+293
-292
File diff suppressed because it is too large
Load Diff
@@ -1,5 +1,6 @@
|
||||
YUI.add('moodle-core-dragdrop', function (Y, NAME) {
|
||||
|
||||
/* eslint-disable no-empty-function */
|
||||
/**
|
||||
* The core drag and drop module for Moodle which extends the YUI drag and
|
||||
* drop functionality with additional features.
|
||||
@@ -71,7 +72,7 @@ Y.extend(DRAGDROP, Y.Base, {
|
||||
* @type Object
|
||||
* @default null
|
||||
*/
|
||||
samenodelabel : null,
|
||||
samenodelabel: null,
|
||||
|
||||
/**
|
||||
* The label to use with keyboard drag/drop to describe items of the parent Node.
|
||||
@@ -80,7 +81,7 @@ Y.extend(DRAGDROP, Y.Base, {
|
||||
* @type Object
|
||||
* @default null
|
||||
*/
|
||||
parentnodelabel : null,
|
||||
parentnodelabel: null,
|
||||
|
||||
/**
|
||||
* The groups for this instance.
|
||||
@@ -142,7 +143,7 @@ Y.extend(DRAGDROP, Y.Base, {
|
||||
|
||||
// Make the accessible drag/drop respond to a single click.
|
||||
this.listeners.push(Y.one(Y.config.doc.body).delegate('click', this.global_keydown,
|
||||
'.' + MOVEICON.cssclass , this));
|
||||
'.' + MOVEICON.cssclass, this));
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -195,17 +196,17 @@ Y.extend(DRAGDROP, Y.Base, {
|
||||
},
|
||||
|
||||
lock_drag_handle: function(drag, classname) {
|
||||
drag.removeHandle('.'+classname);
|
||||
drag.removeHandle('.' + classname);
|
||||
},
|
||||
|
||||
unlock_drag_handle: function(drag, classname) {
|
||||
drag.addHandle('.'+classname);
|
||||
drag.addHandle('.' + classname);
|
||||
drag.get('activeHandle').focus();
|
||||
},
|
||||
|
||||
ajax_failure: function(response) {
|
||||
var e = {
|
||||
name: response.status+' '+response.statusText,
|
||||
name: response.status + ' ' + response.statusText,
|
||||
message: response.responseText
|
||||
};
|
||||
return new M.core.exception(e);
|
||||
@@ -249,7 +250,7 @@ Y.extend(DRAGDROP, Y.Base, {
|
||||
if (!this.in_group(drag)) {
|
||||
return;
|
||||
}
|
||||
//Put our general styles back
|
||||
// Put our general styles back
|
||||
drag.get('node').setAttribute('style', this.originalstyle);
|
||||
this.drag_end(e);
|
||||
},
|
||||
@@ -363,7 +364,7 @@ Y.extend(DRAGDROP, Y.Base, {
|
||||
var nodes = n.all('h2, h3, h4, h5, span:not(.actions):not(.menu-action-text), p, div.no-overflow, div.dimmed_text');
|
||||
var text = '';
|
||||
|
||||
nodes.each(function () {
|
||||
nodes.each(function() {
|
||||
if (text === '') {
|
||||
if (Y.Lang.trim(this.get('text')) !== '') {
|
||||
text = this.get('text');
|
||||
@@ -397,15 +398,14 @@ Y.extend(DRAGDROP, Y.Base, {
|
||||
// Build the list of drop targets.
|
||||
var droplist = Y.Node.create('<ul></ul>');
|
||||
droplist.addClass('dragdrop-keyboard-drag');
|
||||
var listitem,
|
||||
listlink,
|
||||
listitemtext;
|
||||
var listitem, listlink, listitemtext;
|
||||
|
||||
// Search for possible drop targets.
|
||||
var droptargets = Y.all('.' + this.samenodeclass + ', .' + this.parentnodeclass);
|
||||
|
||||
droptargets.each(function (node) {
|
||||
var validdrop = false, labelroot = node;
|
||||
droptargets.each(function(node) {
|
||||
var validdrop = false;
|
||||
var labelroot = node;
|
||||
if (node.drop && node.drop.inGroup(this.groups) && node.drop.get('node') !== dragcontainer) {
|
||||
// This is a drag and drop target with the same class as the grabbed node.
|
||||
validdrop = true;
|
||||
@@ -603,7 +603,7 @@ Y.extend(DRAGDROP, Y.Base, {
|
||||
return;
|
||||
}
|
||||
|
||||
if (e.keyCode === 27 ) {
|
||||
if (e.keyCode === 27) {
|
||||
// Escape to cancel from anywhere.
|
||||
this.global_cancel_keyboard_drag();
|
||||
e.preventDefault();
|
||||
@@ -622,7 +622,8 @@ Y.extend(DRAGDROP, Y.Base, {
|
||||
|
||||
// Check the drag groups to see if we are the handler for this node.
|
||||
draggroups = draghandle.getAttribute('data-draggroups').split(' ');
|
||||
var i, j, validgroup = false;
|
||||
var i, j;
|
||||
var validgroup = false;
|
||||
|
||||
for (i = 0; i < draggroups.length; i++) {
|
||||
for (j = 0; j < this.groups.length; j++) {
|
||||
|
||||
+16
-15
@@ -1,5 +1,6 @@
|
||||
YUI.add('moodle-core-dragdrop', function (Y, NAME) {
|
||||
|
||||
/* eslint-disable no-empty-function */
|
||||
/**
|
||||
* The core drag and drop module for Moodle which extends the YUI drag and
|
||||
* drop functionality with additional features.
|
||||
@@ -71,7 +72,7 @@ Y.extend(DRAGDROP, Y.Base, {
|
||||
* @type Object
|
||||
* @default null
|
||||
*/
|
||||
samenodelabel : null,
|
||||
samenodelabel: null,
|
||||
|
||||
/**
|
||||
* The label to use with keyboard drag/drop to describe items of the parent Node.
|
||||
@@ -80,7 +81,7 @@ Y.extend(DRAGDROP, Y.Base, {
|
||||
* @type Object
|
||||
* @default null
|
||||
*/
|
||||
parentnodelabel : null,
|
||||
parentnodelabel: null,
|
||||
|
||||
/**
|
||||
* The groups for this instance.
|
||||
@@ -142,7 +143,7 @@ Y.extend(DRAGDROP, Y.Base, {
|
||||
|
||||
// Make the accessible drag/drop respond to a single click.
|
||||
this.listeners.push(Y.one(Y.config.doc.body).delegate('click', this.global_keydown,
|
||||
'.' + MOVEICON.cssclass , this));
|
||||
'.' + MOVEICON.cssclass, this));
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -195,17 +196,17 @@ Y.extend(DRAGDROP, Y.Base, {
|
||||
},
|
||||
|
||||
lock_drag_handle: function(drag, classname) {
|
||||
drag.removeHandle('.'+classname);
|
||||
drag.removeHandle('.' + classname);
|
||||
},
|
||||
|
||||
unlock_drag_handle: function(drag, classname) {
|
||||
drag.addHandle('.'+classname);
|
||||
drag.addHandle('.' + classname);
|
||||
drag.get('activeHandle').focus();
|
||||
},
|
||||
|
||||
ajax_failure: function(response) {
|
||||
var e = {
|
||||
name: response.status+' '+response.statusText,
|
||||
name: response.status + ' ' + response.statusText,
|
||||
message: response.responseText
|
||||
};
|
||||
return new M.core.exception(e);
|
||||
@@ -249,7 +250,7 @@ Y.extend(DRAGDROP, Y.Base, {
|
||||
if (!this.in_group(drag)) {
|
||||
return;
|
||||
}
|
||||
//Put our general styles back
|
||||
// Put our general styles back
|
||||
drag.get('node').setAttribute('style', this.originalstyle);
|
||||
this.drag_end(e);
|
||||
},
|
||||
@@ -363,7 +364,7 @@ Y.extend(DRAGDROP, Y.Base, {
|
||||
var nodes = n.all('h2, h3, h4, h5, span:not(.actions):not(.menu-action-text), p, div.no-overflow, div.dimmed_text');
|
||||
var text = '';
|
||||
|
||||
nodes.each(function () {
|
||||
nodes.each(function() {
|
||||
if (text === '') {
|
||||
if (Y.Lang.trim(this.get('text')) !== '') {
|
||||
text = this.get('text');
|
||||
@@ -397,15 +398,14 @@ Y.extend(DRAGDROP, Y.Base, {
|
||||
// Build the list of drop targets.
|
||||
var droplist = Y.Node.create('<ul></ul>');
|
||||
droplist.addClass('dragdrop-keyboard-drag');
|
||||
var listitem,
|
||||
listlink,
|
||||
listitemtext;
|
||||
var listitem, listlink, listitemtext;
|
||||
|
||||
// Search for possible drop targets.
|
||||
var droptargets = Y.all('.' + this.samenodeclass + ', .' + this.parentnodeclass);
|
||||
|
||||
droptargets.each(function (node) {
|
||||
var validdrop = false, labelroot = node;
|
||||
droptargets.each(function(node) {
|
||||
var validdrop = false;
|
||||
var labelroot = node;
|
||||
if (node.drop && node.drop.inGroup(this.groups) && node.drop.get('node') !== dragcontainer) {
|
||||
// This is a drag and drop target with the same class as the grabbed node.
|
||||
validdrop = true;
|
||||
@@ -603,7 +603,7 @@ Y.extend(DRAGDROP, Y.Base, {
|
||||
return;
|
||||
}
|
||||
|
||||
if (e.keyCode === 27 ) {
|
||||
if (e.keyCode === 27) {
|
||||
// Escape to cancel from anywhere.
|
||||
this.global_cancel_keyboard_drag();
|
||||
e.preventDefault();
|
||||
@@ -622,7 +622,8 @@ Y.extend(DRAGDROP, Y.Base, {
|
||||
|
||||
// Check the drag groups to see if we are the handler for this node.
|
||||
draggroups = draghandle.getAttribute('data-draggroups').split(' ');
|
||||
var i, j, validgroup = false;
|
||||
var i, j;
|
||||
var validgroup = false;
|
||||
|
||||
for (i = 0; i < draggroups.length; i++) {
|
||||
for (j = 0; j < this.groups.length; j++) {
|
||||
|
||||
+13
-13
@@ -7,7 +7,7 @@ var CSS,
|
||||
|
||||
// The CSS selectors we use
|
||||
CSS = {
|
||||
AUTOSUBMIT : 'autosubmit'
|
||||
AUTOSUBMIT: 'autosubmit'
|
||||
};
|
||||
|
||||
FORMAUTOSUBMIT = function() {
|
||||
@@ -19,7 +19,7 @@ Y.extend(FORMAUTOSUBMIT, Y.Base, {
|
||||
/*
|
||||
* Initialize the module
|
||||
*/
|
||||
initializer : function() {
|
||||
initializer: function() {
|
||||
// Set up local variables
|
||||
var applyto,
|
||||
thisselect;
|
||||
@@ -59,7 +59,7 @@ Y.extend(FORMAUTOSUBMIT, Y.Base, {
|
||||
/*
|
||||
* Check whether the select element was changed
|
||||
*/
|
||||
check_changed : function(e) {
|
||||
check_changed: function(e) {
|
||||
var select,
|
||||
nothing,
|
||||
startindex,
|
||||
@@ -81,7 +81,7 @@ Y.extend(FORMAUTOSUBMIT, Y.Base, {
|
||||
}
|
||||
|
||||
// Check whether the field has changed, and is not the 'nothing' value
|
||||
if ((nothing===false || select.get('value') !== nothing)
|
||||
if ((nothing === false || select.get('value') !== nothing)
|
||||
&& startindex !== select.get('selectedIndex') && currentindex !== previousindex) {
|
||||
return select;
|
||||
}
|
||||
@@ -91,7 +91,7 @@ Y.extend(FORMAUTOSUBMIT, Y.Base, {
|
||||
/*
|
||||
* Process any changes
|
||||
*/
|
||||
process_changes : function(e) {
|
||||
process_changes: function(e) {
|
||||
var select = this.check_changed(e),
|
||||
form;
|
||||
if (select) {
|
||||
@@ -101,16 +101,16 @@ Y.extend(FORMAUTOSUBMIT, Y.Base, {
|
||||
}
|
||||
},
|
||||
{
|
||||
NAME : FORMAUTOSUBMITNAME,
|
||||
ATTRS : {
|
||||
selectid : {
|
||||
'value' : ''
|
||||
NAME: FORMAUTOSUBMITNAME,
|
||||
ATTRS: {
|
||||
selectid: {
|
||||
'value': ''
|
||||
},
|
||||
nothing : {
|
||||
'value' : ''
|
||||
nothing: {
|
||||
'value': ''
|
||||
},
|
||||
ignorechangeevent : {
|
||||
'value' : false
|
||||
ignorechangeevent: {
|
||||
'value': false
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -7,7 +7,7 @@ var CSS,
|
||||
|
||||
// The CSS selectors we use
|
||||
CSS = {
|
||||
AUTOSUBMIT : 'autosubmit'
|
||||
AUTOSUBMIT: 'autosubmit'
|
||||
};
|
||||
|
||||
FORMAUTOSUBMIT = function() {
|
||||
@@ -19,7 +19,7 @@ Y.extend(FORMAUTOSUBMIT, Y.Base, {
|
||||
/*
|
||||
* Initialize the module
|
||||
*/
|
||||
initializer : function() {
|
||||
initializer: function() {
|
||||
// Set up local variables
|
||||
var applyto,
|
||||
thisselect;
|
||||
@@ -58,7 +58,7 @@ Y.extend(FORMAUTOSUBMIT, Y.Base, {
|
||||
/*
|
||||
* Check whether the select element was changed
|
||||
*/
|
||||
check_changed : function(e) {
|
||||
check_changed: function(e) {
|
||||
var select,
|
||||
nothing,
|
||||
startindex,
|
||||
@@ -80,7 +80,7 @@ Y.extend(FORMAUTOSUBMIT, Y.Base, {
|
||||
}
|
||||
|
||||
// Check whether the field has changed, and is not the 'nothing' value
|
||||
if ((nothing===false || select.get('value') !== nothing)
|
||||
if ((nothing === false || select.get('value') !== nothing)
|
||||
&& startindex !== select.get('selectedIndex') && currentindex !== previousindex) {
|
||||
return select;
|
||||
}
|
||||
@@ -90,7 +90,7 @@ Y.extend(FORMAUTOSUBMIT, Y.Base, {
|
||||
/*
|
||||
* Process any changes
|
||||
*/
|
||||
process_changes : function(e) {
|
||||
process_changes: function(e) {
|
||||
var select = this.check_changed(e),
|
||||
form;
|
||||
if (select) {
|
||||
@@ -100,16 +100,16 @@ Y.extend(FORMAUTOSUBMIT, Y.Base, {
|
||||
}
|
||||
},
|
||||
{
|
||||
NAME : FORMAUTOSUBMITNAME,
|
||||
ATTRS : {
|
||||
selectid : {
|
||||
'value' : ''
|
||||
NAME: FORMAUTOSUBMITNAME,
|
||||
ATTRS: {
|
||||
selectid: {
|
||||
'value': ''
|
||||
},
|
||||
nothing : {
|
||||
'value' : ''
|
||||
nothing: {
|
||||
'value': ''
|
||||
},
|
||||
ignorechangeevent : {
|
||||
'value' : false
|
||||
ignorechangeevent: {
|
||||
'value': false
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
+9
-9
@@ -22,14 +22,14 @@ var FORMCHANGECHECKERNAME = 'core-formchangechecker',
|
||||
Y.extend(FORMCHANGECHECKER, Y.Base, {
|
||||
|
||||
// The delegated listeners we need to detach after the initial value has been stored once
|
||||
initialvaluelisteners : [],
|
||||
initialvaluelisteners: [],
|
||||
|
||||
/**
|
||||
* Initialize the module
|
||||
*
|
||||
* @method initializer
|
||||
*/
|
||||
initializer : function() {
|
||||
initializer: function() {
|
||||
var formid = 'form#' + this.get('formid'),
|
||||
currentform = Y.one(formid);
|
||||
|
||||
@@ -66,7 +66,7 @@ Y.extend(FORMCHANGECHECKER, Y.Base, {
|
||||
* @method store_initial_value
|
||||
* @param {EventFacade} e
|
||||
*/
|
||||
store_initial_value : function(e) {
|
||||
store_initial_value: function(e) {
|
||||
var thisevent;
|
||||
if (e.target.hasClass('ignoredirty')) {
|
||||
// Don't warn on elements with the ignoredirty class
|
||||
@@ -85,16 +85,16 @@ Y.extend(FORMCHANGECHECKER, Y.Base, {
|
||||
// Make a note of the current element so that it can be interrogated and
|
||||
// compared in the get_form_dirty_state function
|
||||
M.core_formchangechecker.stateinformation.focused_element = {
|
||||
element : e.target,
|
||||
initial_value : e.target.get('value')
|
||||
element: e.target,
|
||||
initial_value: e.target.get('value')
|
||||
};
|
||||
}
|
||||
},
|
||||
{
|
||||
NAME : FORMCHANGECHECKERNAME,
|
||||
ATTRS : {
|
||||
formid : {
|
||||
'value' : ''
|
||||
NAME: FORMCHANGECHECKERNAME,
|
||||
ATTRS: {
|
||||
formid: {
|
||||
'value': ''
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+9
-9
@@ -22,14 +22,14 @@ var FORMCHANGECHECKERNAME = 'core-formchangechecker',
|
||||
Y.extend(FORMCHANGECHECKER, Y.Base, {
|
||||
|
||||
// The delegated listeners we need to detach after the initial value has been stored once
|
||||
initialvaluelisteners : [],
|
||||
initialvaluelisteners: [],
|
||||
|
||||
/**
|
||||
* Initialize the module
|
||||
*
|
||||
* @method initializer
|
||||
*/
|
||||
initializer : function() {
|
||||
initializer: function() {
|
||||
var formid = 'form#' + this.get('formid'),
|
||||
currentform = Y.one(formid);
|
||||
|
||||
@@ -66,7 +66,7 @@ Y.extend(FORMCHANGECHECKER, Y.Base, {
|
||||
* @method store_initial_value
|
||||
* @param {EventFacade} e
|
||||
*/
|
||||
store_initial_value : function(e) {
|
||||
store_initial_value: function(e) {
|
||||
var thisevent;
|
||||
if (e.target.hasClass('ignoredirty')) {
|
||||
// Don't warn on elements with the ignoredirty class
|
||||
@@ -85,16 +85,16 @@ Y.extend(FORMCHANGECHECKER, Y.Base, {
|
||||
// Make a note of the current element so that it can be interrogated and
|
||||
// compared in the get_form_dirty_state function
|
||||
M.core_formchangechecker.stateinformation.focused_element = {
|
||||
element : e.target,
|
||||
initial_value : e.target.get('value')
|
||||
element: e.target,
|
||||
initial_value: e.target.get('value')
|
||||
};
|
||||
}
|
||||
},
|
||||
{
|
||||
NAME : FORMCHANGECHECKERNAME,
|
||||
ATTRS : {
|
||||
formid : {
|
||||
'value' : ''
|
||||
NAME: FORMCHANGECHECKERNAME,
|
||||
ATTRS: {
|
||||
formid: {
|
||||
'value': ''
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+12
-12
@@ -60,27 +60,27 @@ Y.extend(Confirmation, Y.Base, {
|
||||
var selectedLangCodes = [];
|
||||
var selectedLangNames = [];
|
||||
|
||||
Y.all(SELECTORS.UNINSTALLSELECT).each(function(option){
|
||||
if (option.get('selected')){
|
||||
Y.all(SELECTORS.UNINSTALLSELECT).each(function(option) {
|
||||
if (option.get('selected')) {
|
||||
selectedLangCodes.push(option.getAttribute('value'));
|
||||
selectedLangNames.push(option.get('text'));
|
||||
}
|
||||
});
|
||||
// Nothing was selected, show warning.
|
||||
if (selectedLangCodes.length === 0){
|
||||
new M.core.alert({ message: M.util.get_string('selectlangs', 'tool_langimport') }).show();
|
||||
if (selectedLangCodes.length === 0) {
|
||||
new M.core.alert({message: M.util.get_string('selectlangs', 'tool_langimport')}).show();
|
||||
return;
|
||||
} else if (selectedLangCodes.indexOf('en')> -1) { // Don't uninstall english.
|
||||
Y.one(SELECTORS.ENGLISHOPTION).set('selected',false);
|
||||
new M.core.alert({ message: M.util.get_string('noenglishuninstall', 'tool_langimport') }).show();
|
||||
} else if (selectedLangCodes.indexOf('en') > -1) { // Don't uninstall english.
|
||||
Y.one(SELECTORS.ENGLISHOPTION).set('selected', false);
|
||||
new M.core.alert({message: M.util.get_string('noenglishuninstall', 'tool_langimport')}).show();
|
||||
return;
|
||||
}
|
||||
var confirmationConfig = {
|
||||
modal: true,
|
||||
visible : false,
|
||||
centered : true,
|
||||
title : M.util.get_string('uninstall','tool_langimport'),
|
||||
question : M.util.get_string('uninstallconfirm','tool_langimport', selectedLangNames.join(", "))
|
||||
visible: false,
|
||||
centered: true,
|
||||
title: M.util.get_string('uninstall', 'tool_langimport'),
|
||||
question: M.util.get_string('uninstallconfirm', 'tool_langimport', selectedLangNames.join(", "))
|
||||
};
|
||||
new M.core.confirm(confirmationConfig)
|
||||
.show()
|
||||
@@ -95,7 +95,7 @@ Y.extend(Confirmation, Y.Base, {
|
||||
* @param {EventFacade} e
|
||||
* @param {Array} langCodes array of lang codes to be uninstalled
|
||||
*/
|
||||
_uninstall : function(e, langCodes) {
|
||||
_uninstall: function(e, langCodes) {
|
||||
Y.config.win.location.href = this.get('uninstallUrl') + '?mode=4' +
|
||||
'&sesskey=' + M.cfg.sesskey +
|
||||
'&confirmtouninstall=' + langCodes.join('-');
|
||||
|
||||
+12
-12
@@ -60,27 +60,27 @@ Y.extend(Confirmation, Y.Base, {
|
||||
var selectedLangCodes = [];
|
||||
var selectedLangNames = [];
|
||||
|
||||
Y.all(SELECTORS.UNINSTALLSELECT).each(function(option){
|
||||
if (option.get('selected')){
|
||||
Y.all(SELECTORS.UNINSTALLSELECT).each(function(option) {
|
||||
if (option.get('selected')) {
|
||||
selectedLangCodes.push(option.getAttribute('value'));
|
||||
selectedLangNames.push(option.get('text'));
|
||||
}
|
||||
});
|
||||
// Nothing was selected, show warning.
|
||||
if (selectedLangCodes.length === 0){
|
||||
new M.core.alert({ message: M.util.get_string('selectlangs', 'tool_langimport') }).show();
|
||||
if (selectedLangCodes.length === 0) {
|
||||
new M.core.alert({message: M.util.get_string('selectlangs', 'tool_langimport')}).show();
|
||||
return;
|
||||
} else if (selectedLangCodes.indexOf('en')> -1) { // Don't uninstall english.
|
||||
Y.one(SELECTORS.ENGLISHOPTION).set('selected',false);
|
||||
new M.core.alert({ message: M.util.get_string('noenglishuninstall', 'tool_langimport') }).show();
|
||||
} else if (selectedLangCodes.indexOf('en') > -1) { // Don't uninstall english.
|
||||
Y.one(SELECTORS.ENGLISHOPTION).set('selected', false);
|
||||
new M.core.alert({message: M.util.get_string('noenglishuninstall', 'tool_langimport')}).show();
|
||||
return;
|
||||
}
|
||||
var confirmationConfig = {
|
||||
modal: true,
|
||||
visible : false,
|
||||
centered : true,
|
||||
title : M.util.get_string('uninstall','tool_langimport'),
|
||||
question : M.util.get_string('uninstallconfirm','tool_langimport', selectedLangNames.join(", "))
|
||||
visible: false,
|
||||
centered: true,
|
||||
title: M.util.get_string('uninstall', 'tool_langimport'),
|
||||
question: M.util.get_string('uninstallconfirm', 'tool_langimport', selectedLangNames.join(", "))
|
||||
};
|
||||
new M.core.confirm(confirmationConfig)
|
||||
.show()
|
||||
@@ -95,7 +95,7 @@ Y.extend(Confirmation, Y.Base, {
|
||||
* @param {EventFacade} e
|
||||
* @param {Array} langCodes array of lang codes to be uninstalled
|
||||
*/
|
||||
_uninstall : function(e, langCodes) {
|
||||
_uninstall: function(e, langCodes) {
|
||||
Y.config.win.location.href = this.get('uninstallUrl') + '?mode=4' +
|
||||
'&sesskey=' + M.cfg.sesskey +
|
||||
'&confirmtouninstall=' + langCodes.join('-');
|
||||
|
||||
lib/yui/build/moodle-core-notification-ajaxexception/moodle-core-notification-ajaxexception-debug.js
Vendored
+38
-34
@@ -16,14 +16,14 @@ CONFIRMNO = 'noLabel',
|
||||
TITLE = 'title',
|
||||
QUESTION = 'question',
|
||||
CSS = {
|
||||
BASE : 'moodle-dialogue-base',
|
||||
WRAP : 'moodle-dialogue-wrap',
|
||||
HEADER : 'moodle-dialogue-hd',
|
||||
BODY : 'moodle-dialogue-bd',
|
||||
CONTENT : 'moodle-dialogue-content',
|
||||
FOOTER : 'moodle-dialogue-ft',
|
||||
HIDDEN : 'hidden',
|
||||
LIGHTBOX : 'moodle-dialogue-lightbox'
|
||||
BASE: 'moodle-dialogue-base',
|
||||
WRAP: 'moodle-dialogue-wrap',
|
||||
HEADER: 'moodle-dialogue-hd',
|
||||
BODY: 'moodle-dialogue-bd',
|
||||
CONTENT: 'moodle-dialogue-content',
|
||||
FOOTER: 'moodle-dialogue-ft',
|
||||
HIDDEN: 'hidden',
|
||||
LIGHTBOX: 'moodle-dialogue-lightbox'
|
||||
};
|
||||
|
||||
// Set up the namespace once.
|
||||
@@ -55,47 +55,51 @@ AJAXEXCEPTION = function(config) {
|
||||
AJAXEXCEPTION.superclass.constructor.apply(this, [config]);
|
||||
};
|
||||
Y.extend(AJAXEXCEPTION, M.core.notification.info, {
|
||||
_keypress : null,
|
||||
initializer : function(config) {
|
||||
_keypress: null,
|
||||
initializer: function(config) {
|
||||
var content,
|
||||
self = this,
|
||||
delay = this.get('hideTimeoutDelay');
|
||||
this.get(BASE).addClass('moodle-dialogue-exception');
|
||||
this.setStdModContent(Y.WidgetStdMod.HEADER,
|
||||
'<h1 id="moodle-dialogue-'+this.get('COUNT')+'-header-text">' + Y.Escape.html(config.name) + '</h1>',
|
||||
'<h1 id="moodle-dialogue-' + this.get('COUNT') + '-header-text">' + Y.Escape.html(config.name) + '</h1>',
|
||||
Y.WidgetStdMod.REPLACE);
|
||||
content = Y.Node.create('<div class="moodle-ajaxexception"></div>')
|
||||
.append(Y.Node.create('<div class="moodle-exception-message">'+Y.Escape.html(this.get('error'))+'</div>'))
|
||||
.append(Y.Node.create('<div class="moodle-exception-message">' + Y.Escape.html(this.get('error')) + '</div>'))
|
||||
.append(Y.Node.create('<div class="moodle-exception-param hidden param-debuginfo"><label>URL:</label> ' +
|
||||
this.get('reproductionlink')+'</div>'))
|
||||
this.get('reproductionlink') + '</div>'))
|
||||
.append(Y.Node.create('<div class="moodle-exception-param hidden param-debuginfo"><label>Debug info:</label> ' +
|
||||
Y.Escape.html(this.get('debuginfo'))+'</div>'))
|
||||
Y.Escape.html(this.get('debuginfo')) + '</div>'))
|
||||
.append(Y.Node.create('<div class="moodle-exception-param hidden param-stacktrace">' +
|
||||
'<label>Stack trace:</label> <pre>' +
|
||||
Y.Escape.html(this.get('stacktrace'))+'</pre></div>'));
|
||||
Y.Escape.html(this.get('stacktrace')) + '</pre></div>'));
|
||||
if (M.cfg.developerdebug) {
|
||||
content.all('.moodle-exception-param').removeClass('hidden');
|
||||
}
|
||||
this.setStdModContent(Y.WidgetStdMod.BODY, content, Y.WidgetStdMod.REPLACE);
|
||||
|
||||
if (delay) {
|
||||
this._hideTimeout = setTimeout(function(){self.hide();}, delay);
|
||||
this._hideTimeout = setTimeout(function() {
|
||||
self.hide();
|
||||
}, delay);
|
||||
}
|
||||
this.after('visibleChange', this.visibilityChanged, this);
|
||||
this._keypress = Y.on('key', this.hide, window, 'down:13, 27', this);
|
||||
this.centerDialogue();
|
||||
},
|
||||
visibilityChanged : function(e) {
|
||||
visibilityChanged: function(e) {
|
||||
if (e.attrName === 'visible' && e.prevVal && !e.newVal) {
|
||||
var self = this;
|
||||
this._keypress.detach();
|
||||
setTimeout(function(){self.destroy();}, 1000);
|
||||
setTimeout(function() {
|
||||
self.destroy();
|
||||
}, 1000);
|
||||
}
|
||||
}
|
||||
}, {
|
||||
NAME : AJAXEXCEPTION_NAME,
|
||||
CSS_PREFIX : DIALOGUE_PREFIX,
|
||||
ATTRS : {
|
||||
NAME: AJAXEXCEPTION_NAME,
|
||||
CSS_PREFIX: DIALOGUE_PREFIX,
|
||||
ATTRS: {
|
||||
|
||||
/**
|
||||
* The error message given in the exception.
|
||||
@@ -105,8 +109,8 @@ Y.extend(AJAXEXCEPTION, M.core.notification.info, {
|
||||
* @default 'Unknown error'
|
||||
* @optional
|
||||
*/
|
||||
error : {
|
||||
validator : Y.Lang.isString,
|
||||
error: {
|
||||
validator: Y.Lang.isString,
|
||||
value: M.util.get_string('unknownerror', 'moodle')
|
||||
},
|
||||
|
||||
@@ -118,8 +122,8 @@ Y.extend(AJAXEXCEPTION, M.core.notification.info, {
|
||||
* @default null
|
||||
* @optional
|
||||
*/
|
||||
debuginfo : {
|
||||
value : null
|
||||
debuginfo: {
|
||||
value: null
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -130,8 +134,8 @@ Y.extend(AJAXEXCEPTION, M.core.notification.info, {
|
||||
* @default null
|
||||
* @optional
|
||||
*/
|
||||
stacktrace : {
|
||||
value : null
|
||||
stacktrace: {
|
||||
value: null
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -142,15 +146,15 @@ Y.extend(AJAXEXCEPTION, M.core.notification.info, {
|
||||
* @default null
|
||||
* @optional
|
||||
*/
|
||||
reproductionlink : {
|
||||
setter : function(link) {
|
||||
reproductionlink: {
|
||||
setter: function(link) {
|
||||
if (link !== null) {
|
||||
link = Y.Escape.html(link);
|
||||
link = '<a href="'+link+'">'+link.replace(M.cfg.wwwroot, '')+'</a>';
|
||||
link = '<a href="' + link + '">' + link.replace(M.cfg.wwwroot, '') + '</a>';
|
||||
}
|
||||
return link;
|
||||
},
|
||||
value : null
|
||||
value: null
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -161,9 +165,9 @@ Y.extend(AJAXEXCEPTION, M.core.notification.info, {
|
||||
* @default null
|
||||
* @optional
|
||||
*/
|
||||
hideTimeoutDelay : {
|
||||
validator : Y.Lang.isNumber,
|
||||
value : null
|
||||
hideTimeoutDelay: {
|
||||
validator: Y.Lang.isNumber,
|
||||
value: null
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
Vendored
+38
-34
@@ -16,14 +16,14 @@ CONFIRMNO = 'noLabel',
|
||||
TITLE = 'title',
|
||||
QUESTION = 'question',
|
||||
CSS = {
|
||||
BASE : 'moodle-dialogue-base',
|
||||
WRAP : 'moodle-dialogue-wrap',
|
||||
HEADER : 'moodle-dialogue-hd',
|
||||
BODY : 'moodle-dialogue-bd',
|
||||
CONTENT : 'moodle-dialogue-content',
|
||||
FOOTER : 'moodle-dialogue-ft',
|
||||
HIDDEN : 'hidden',
|
||||
LIGHTBOX : 'moodle-dialogue-lightbox'
|
||||
BASE: 'moodle-dialogue-base',
|
||||
WRAP: 'moodle-dialogue-wrap',
|
||||
HEADER: 'moodle-dialogue-hd',
|
||||
BODY: 'moodle-dialogue-bd',
|
||||
CONTENT: 'moodle-dialogue-content',
|
||||
FOOTER: 'moodle-dialogue-ft',
|
||||
HIDDEN: 'hidden',
|
||||
LIGHTBOX: 'moodle-dialogue-lightbox'
|
||||
};
|
||||
|
||||
// Set up the namespace once.
|
||||
@@ -55,47 +55,51 @@ AJAXEXCEPTION = function(config) {
|
||||
AJAXEXCEPTION.superclass.constructor.apply(this, [config]);
|
||||
};
|
||||
Y.extend(AJAXEXCEPTION, M.core.notification.info, {
|
||||
_keypress : null,
|
||||
initializer : function(config) {
|
||||
_keypress: null,
|
||||
initializer: function(config) {
|
||||
var content,
|
||||
self = this,
|
||||
delay = this.get('hideTimeoutDelay');
|
||||
this.get(BASE).addClass('moodle-dialogue-exception');
|
||||
this.setStdModContent(Y.WidgetStdMod.HEADER,
|
||||
'<h1 id="moodle-dialogue-'+this.get('COUNT')+'-header-text">' + Y.Escape.html(config.name) + '</h1>',
|
||||
'<h1 id="moodle-dialogue-' + this.get('COUNT') + '-header-text">' + Y.Escape.html(config.name) + '</h1>',
|
||||
Y.WidgetStdMod.REPLACE);
|
||||
content = Y.Node.create('<div class="moodle-ajaxexception"></div>')
|
||||
.append(Y.Node.create('<div class="moodle-exception-message">'+Y.Escape.html(this.get('error'))+'</div>'))
|
||||
.append(Y.Node.create('<div class="moodle-exception-message">' + Y.Escape.html(this.get('error')) + '</div>'))
|
||||
.append(Y.Node.create('<div class="moodle-exception-param hidden param-debuginfo"><label>URL:</label> ' +
|
||||
this.get('reproductionlink')+'</div>'))
|
||||
this.get('reproductionlink') + '</div>'))
|
||||
.append(Y.Node.create('<div class="moodle-exception-param hidden param-debuginfo"><label>Debug info:</label> ' +
|
||||
Y.Escape.html(this.get('debuginfo'))+'</div>'))
|
||||
Y.Escape.html(this.get('debuginfo')) + '</div>'))
|
||||
.append(Y.Node.create('<div class="moodle-exception-param hidden param-stacktrace">' +
|
||||
'<label>Stack trace:</label> <pre>' +
|
||||
Y.Escape.html(this.get('stacktrace'))+'</pre></div>'));
|
||||
Y.Escape.html(this.get('stacktrace')) + '</pre></div>'));
|
||||
if (M.cfg.developerdebug) {
|
||||
content.all('.moodle-exception-param').removeClass('hidden');
|
||||
}
|
||||
this.setStdModContent(Y.WidgetStdMod.BODY, content, Y.WidgetStdMod.REPLACE);
|
||||
|
||||
if (delay) {
|
||||
this._hideTimeout = setTimeout(function(){self.hide();}, delay);
|
||||
this._hideTimeout = setTimeout(function() {
|
||||
self.hide();
|
||||
}, delay);
|
||||
}
|
||||
this.after('visibleChange', this.visibilityChanged, this);
|
||||
this._keypress = Y.on('key', this.hide, window, 'down:13, 27', this);
|
||||
this.centerDialogue();
|
||||
},
|
||||
visibilityChanged : function(e) {
|
||||
visibilityChanged: function(e) {
|
||||
if (e.attrName === 'visible' && e.prevVal && !e.newVal) {
|
||||
var self = this;
|
||||
this._keypress.detach();
|
||||
setTimeout(function(){self.destroy();}, 1000);
|
||||
setTimeout(function() {
|
||||
self.destroy();
|
||||
}, 1000);
|
||||
}
|
||||
}
|
||||
}, {
|
||||
NAME : AJAXEXCEPTION_NAME,
|
||||
CSS_PREFIX : DIALOGUE_PREFIX,
|
||||
ATTRS : {
|
||||
NAME: AJAXEXCEPTION_NAME,
|
||||
CSS_PREFIX: DIALOGUE_PREFIX,
|
||||
ATTRS: {
|
||||
|
||||
/**
|
||||
* The error message given in the exception.
|
||||
@@ -105,8 +109,8 @@ Y.extend(AJAXEXCEPTION, M.core.notification.info, {
|
||||
* @default 'Unknown error'
|
||||
* @optional
|
||||
*/
|
||||
error : {
|
||||
validator : Y.Lang.isString,
|
||||
error: {
|
||||
validator: Y.Lang.isString,
|
||||
value: M.util.get_string('unknownerror', 'moodle')
|
||||
},
|
||||
|
||||
@@ -118,8 +122,8 @@ Y.extend(AJAXEXCEPTION, M.core.notification.info, {
|
||||
* @default null
|
||||
* @optional
|
||||
*/
|
||||
debuginfo : {
|
||||
value : null
|
||||
debuginfo: {
|
||||
value: null
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -130,8 +134,8 @@ Y.extend(AJAXEXCEPTION, M.core.notification.info, {
|
||||
* @default null
|
||||
* @optional
|
||||
*/
|
||||
stacktrace : {
|
||||
value : null
|
||||
stacktrace: {
|
||||
value: null
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -142,15 +146,15 @@ Y.extend(AJAXEXCEPTION, M.core.notification.info, {
|
||||
* @default null
|
||||
* @optional
|
||||
*/
|
||||
reproductionlink : {
|
||||
setter : function(link) {
|
||||
reproductionlink: {
|
||||
setter: function(link) {
|
||||
if (link !== null) {
|
||||
link = Y.Escape.html(link);
|
||||
link = '<a href="'+link+'">'+link.replace(M.cfg.wwwroot, '')+'</a>';
|
||||
link = '<a href="' + link + '">' + link.replace(M.cfg.wwwroot, '') + '</a>';
|
||||
}
|
||||
return link;
|
||||
},
|
||||
value : null
|
||||
value: null
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -161,9 +165,9 @@ Y.extend(AJAXEXCEPTION, M.core.notification.info, {
|
||||
* @default null
|
||||
* @optional
|
||||
*/
|
||||
hideTimeoutDelay : {
|
||||
validator : Y.Lang.isNumber,
|
||||
value : null
|
||||
hideTimeoutDelay: {
|
||||
validator: Y.Lang.isNumber,
|
||||
value: null
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
+12
-11
@@ -16,14 +16,14 @@ CONFIRMNO = 'noLabel',
|
||||
TITLE = 'title',
|
||||
QUESTION = 'question',
|
||||
CSS = {
|
||||
BASE : 'moodle-dialogue-base',
|
||||
WRAP : 'moodle-dialogue-wrap',
|
||||
HEADER : 'moodle-dialogue-hd',
|
||||
BODY : 'moodle-dialogue-bd',
|
||||
CONTENT : 'moodle-dialogue-content',
|
||||
FOOTER : 'moodle-dialogue-ft',
|
||||
HIDDEN : 'hidden',
|
||||
LIGHTBOX : 'moodle-dialogue-lightbox'
|
||||
BASE: 'moodle-dialogue-base',
|
||||
WRAP: 'moodle-dialogue-wrap',
|
||||
HEADER: 'moodle-dialogue-hd',
|
||||
BODY: 'moodle-dialogue-bd',
|
||||
CONTENT: 'moodle-dialogue-content',
|
||||
FOOTER: 'moodle-dialogue-ft',
|
||||
HIDDEN: 'hidden',
|
||||
LIGHTBOX: 'moodle-dialogue-lightbox'
|
||||
};
|
||||
|
||||
// Set up the namespace once.
|
||||
@@ -65,15 +65,16 @@ Y.extend(ALERT, M.core.notification.info, {
|
||||
this._closeEvents = [];
|
||||
this.publish('complete');
|
||||
var yes = Y.Node.create('<input type="button" id="id_yuialertconfirm-' + this.get('COUNT') + '"' +
|
||||
'value="'+this.get(CONFIRMYES)+'" />'),
|
||||
'value="' + this.get(CONFIRMYES) + '" />'),
|
||||
content = Y.Node.create('<div class="confirmation-dialogue"></div>')
|
||||
.append(Y.Node.create('<div class="confirmation-message">'+this.get('message')+'</div>'))
|
||||
.append(Y.Node.create('<div class="confirmation-message">' + this.get('message') + '</div>'))
|
||||
.append(Y.Node.create('<div class="confirmation-buttons"></div>')
|
||||
.append(yes));
|
||||
this.get(BASE).addClass('moodle-dialogue-confirm');
|
||||
this.setStdModContent(Y.WidgetStdMod.BODY, content, Y.WidgetStdMod.REPLACE);
|
||||
this.setStdModContent(Y.WidgetStdMod.HEADER,
|
||||
'<h1 id="moodle-dialogue-'+this.get('COUNT')+'-header-text">' + this.get(TITLE) + '</h1>', Y.WidgetStdMod.REPLACE);
|
||||
'<h1 id="moodle-dialogue-' + this.get('COUNT') + '-header-text">' + this.get(TITLE) + '</h1>',
|
||||
Y.WidgetStdMod.REPLACE);
|
||||
|
||||
this._closeEvents.push(
|
||||
Y.on('key', this.submit, window, 'down:13', this),
|
||||
|
||||
+12
-11
@@ -16,14 +16,14 @@ CONFIRMNO = 'noLabel',
|
||||
TITLE = 'title',
|
||||
QUESTION = 'question',
|
||||
CSS = {
|
||||
BASE : 'moodle-dialogue-base',
|
||||
WRAP : 'moodle-dialogue-wrap',
|
||||
HEADER : 'moodle-dialogue-hd',
|
||||
BODY : 'moodle-dialogue-bd',
|
||||
CONTENT : 'moodle-dialogue-content',
|
||||
FOOTER : 'moodle-dialogue-ft',
|
||||
HIDDEN : 'hidden',
|
||||
LIGHTBOX : 'moodle-dialogue-lightbox'
|
||||
BASE: 'moodle-dialogue-base',
|
||||
WRAP: 'moodle-dialogue-wrap',
|
||||
HEADER: 'moodle-dialogue-hd',
|
||||
BODY: 'moodle-dialogue-bd',
|
||||
CONTENT: 'moodle-dialogue-content',
|
||||
FOOTER: 'moodle-dialogue-ft',
|
||||
HIDDEN: 'hidden',
|
||||
LIGHTBOX: 'moodle-dialogue-lightbox'
|
||||
};
|
||||
|
||||
// Set up the namespace once.
|
||||
@@ -65,15 +65,16 @@ Y.extend(ALERT, M.core.notification.info, {
|
||||
this._closeEvents = [];
|
||||
this.publish('complete');
|
||||
var yes = Y.Node.create('<input type="button" id="id_yuialertconfirm-' + this.get('COUNT') + '"' +
|
||||
'value="'+this.get(CONFIRMYES)+'" />'),
|
||||
'value="' + this.get(CONFIRMYES) + '" />'),
|
||||
content = Y.Node.create('<div class="confirmation-dialogue"></div>')
|
||||
.append(Y.Node.create('<div class="confirmation-message">'+this.get('message')+'</div>'))
|
||||
.append(Y.Node.create('<div class="confirmation-message">' + this.get('message') + '</div>'))
|
||||
.append(Y.Node.create('<div class="confirmation-buttons"></div>')
|
||||
.append(yes));
|
||||
this.get(BASE).addClass('moodle-dialogue-confirm');
|
||||
this.setStdModContent(Y.WidgetStdMod.BODY, content, Y.WidgetStdMod.REPLACE);
|
||||
this.setStdModContent(Y.WidgetStdMod.HEADER,
|
||||
'<h1 id="moodle-dialogue-'+this.get('COUNT')+'-header-text">' + this.get(TITLE) + '</h1>', Y.WidgetStdMod.REPLACE);
|
||||
'<h1 id="moodle-dialogue-' + this.get('COUNT') + '-header-text">' + this.get(TITLE) + '</h1>',
|
||||
Y.WidgetStdMod.REPLACE);
|
||||
|
||||
this._closeEvents.push(
|
||||
Y.on('key', this.submit, window, 'down:13', this),
|
||||
|
||||
+12
-11
@@ -16,14 +16,14 @@ CONFIRMNO = 'noLabel',
|
||||
TITLE = 'title',
|
||||
QUESTION = 'question',
|
||||
CSS = {
|
||||
BASE : 'moodle-dialogue-base',
|
||||
WRAP : 'moodle-dialogue-wrap',
|
||||
HEADER : 'moodle-dialogue-hd',
|
||||
BODY : 'moodle-dialogue-bd',
|
||||
CONTENT : 'moodle-dialogue-content',
|
||||
FOOTER : 'moodle-dialogue-ft',
|
||||
HIDDEN : 'hidden',
|
||||
LIGHTBOX : 'moodle-dialogue-lightbox'
|
||||
BASE: 'moodle-dialogue-base',
|
||||
WRAP: 'moodle-dialogue-wrap',
|
||||
HEADER: 'moodle-dialogue-hd',
|
||||
BODY: 'moodle-dialogue-bd',
|
||||
CONTENT: 'moodle-dialogue-content',
|
||||
FOOTER: 'moodle-dialogue-ft',
|
||||
HIDDEN: 'hidden',
|
||||
LIGHTBOX: 'moodle-dialogue-lightbox'
|
||||
};
|
||||
|
||||
// Set up the namespace once.
|
||||
@@ -94,9 +94,9 @@ Y.extend(CONFIRM, M.core.notification.info, {
|
||||
this.publish('complete-yes');
|
||||
this.publish('complete-no');
|
||||
this._yesButton = Y.Node.create('<input type="button" id="id_yuiconfirmyes-' +
|
||||
this.get('COUNT') + '" value="'+this.get(CONFIRMYES)+'" />');
|
||||
this.get('COUNT') + '" value="' + this.get(CONFIRMYES) + '" />');
|
||||
this._noButton = Y.Node.create('<input type="button" id="id_yuiconfirmno-' +
|
||||
this.get('COUNT') + '" value="'+this.get(CONFIRMNO)+'" />');
|
||||
this.get('COUNT') + '" value="' + this.get(CONFIRMNO) + '" />');
|
||||
this._question = Y.Node.create('<div class="confirmation-message">' + this.get(QUESTION) + '</div>');
|
||||
var content = Y.Node.create('<div class="confirmation-dialogue"></div>')
|
||||
.append(this._question)
|
||||
@@ -106,7 +106,8 @@ Y.extend(CONFIRM, M.core.notification.info, {
|
||||
this.get(BASE).addClass('moodle-dialogue-confirm');
|
||||
this.setStdModContent(Y.WidgetStdMod.BODY, content, Y.WidgetStdMod.REPLACE);
|
||||
this.setStdModContent(Y.WidgetStdMod.HEADER,
|
||||
'<h1 id="moodle-dialogue-'+this.get('COUNT')+'-header-text">' + this.get(TITLE) + '</h1>', Y.WidgetStdMod.REPLACE);
|
||||
'<h1 id="moodle-dialogue-' + this.get('COUNT') + '-header-text">' + this.get(TITLE) + '</h1>',
|
||||
Y.WidgetStdMod.REPLACE);
|
||||
|
||||
this._closeEvents.push(
|
||||
Y.on('key', this.submit, window, 'down:27', this, false),
|
||||
|
||||
+12
-11
@@ -16,14 +16,14 @@ CONFIRMNO = 'noLabel',
|
||||
TITLE = 'title',
|
||||
QUESTION = 'question',
|
||||
CSS = {
|
||||
BASE : 'moodle-dialogue-base',
|
||||
WRAP : 'moodle-dialogue-wrap',
|
||||
HEADER : 'moodle-dialogue-hd',
|
||||
BODY : 'moodle-dialogue-bd',
|
||||
CONTENT : 'moodle-dialogue-content',
|
||||
FOOTER : 'moodle-dialogue-ft',
|
||||
HIDDEN : 'hidden',
|
||||
LIGHTBOX : 'moodle-dialogue-lightbox'
|
||||
BASE: 'moodle-dialogue-base',
|
||||
WRAP: 'moodle-dialogue-wrap',
|
||||
HEADER: 'moodle-dialogue-hd',
|
||||
BODY: 'moodle-dialogue-bd',
|
||||
CONTENT: 'moodle-dialogue-content',
|
||||
FOOTER: 'moodle-dialogue-ft',
|
||||
HIDDEN: 'hidden',
|
||||
LIGHTBOX: 'moodle-dialogue-lightbox'
|
||||
};
|
||||
|
||||
// Set up the namespace once.
|
||||
@@ -94,9 +94,9 @@ Y.extend(CONFIRM, M.core.notification.info, {
|
||||
this.publish('complete-yes');
|
||||
this.publish('complete-no');
|
||||
this._yesButton = Y.Node.create('<input type="button" id="id_yuiconfirmyes-' +
|
||||
this.get('COUNT') + '" value="'+this.get(CONFIRMYES)+'" />');
|
||||
this.get('COUNT') + '" value="' + this.get(CONFIRMYES) + '" />');
|
||||
this._noButton = Y.Node.create('<input type="button" id="id_yuiconfirmno-' +
|
||||
this.get('COUNT') + '" value="'+this.get(CONFIRMNO)+'" />');
|
||||
this.get('COUNT') + '" value="' + this.get(CONFIRMNO) + '" />');
|
||||
this._question = Y.Node.create('<div class="confirmation-message">' + this.get(QUESTION) + '</div>');
|
||||
var content = Y.Node.create('<div class="confirmation-dialogue"></div>')
|
||||
.append(this._question)
|
||||
@@ -106,7 +106,8 @@ Y.extend(CONFIRM, M.core.notification.info, {
|
||||
this.get(BASE).addClass('moodle-dialogue-confirm');
|
||||
this.setStdModContent(Y.WidgetStdMod.BODY, content, Y.WidgetStdMod.REPLACE);
|
||||
this.setStdModContent(Y.WidgetStdMod.HEADER,
|
||||
'<h1 id="moodle-dialogue-'+this.get('COUNT')+'-header-text">' + this.get(TITLE) + '</h1>', Y.WidgetStdMod.REPLACE);
|
||||
'<h1 id="moodle-dialogue-' + this.get('COUNT') + '-header-text">' + this.get(TITLE) + '</h1>',
|
||||
Y.WidgetStdMod.REPLACE);
|
||||
|
||||
this._closeEvents.push(
|
||||
Y.on('key', this.submit, window, 'down:27', this, false),
|
||||
|
||||
+65
-65
@@ -16,14 +16,14 @@ CONFIRMNO = 'noLabel',
|
||||
TITLE = 'title',
|
||||
QUESTION = 'question',
|
||||
CSS = {
|
||||
BASE : 'moodle-dialogue-base',
|
||||
WRAP : 'moodle-dialogue-wrap',
|
||||
HEADER : 'moodle-dialogue-hd',
|
||||
BODY : 'moodle-dialogue-bd',
|
||||
CONTENT : 'moodle-dialogue-content',
|
||||
FOOTER : 'moodle-dialogue-ft',
|
||||
HIDDEN : 'hidden',
|
||||
LIGHTBOX : 'moodle-dialogue-lightbox'
|
||||
BASE: 'moodle-dialogue-base',
|
||||
WRAP: 'moodle-dialogue-wrap',
|
||||
HEADER: 'moodle-dialogue-hd',
|
||||
BODY: 'moodle-dialogue-bd',
|
||||
CONTENT: 'moodle-dialogue-content',
|
||||
FOOTER: 'moodle-dialogue-ft',
|
||||
HIDDEN: 'hidden',
|
||||
LIGHTBOX: 'moodle-dialogue-lightbox'
|
||||
};
|
||||
|
||||
// Set up the namespace once.
|
||||
@@ -41,7 +41,7 @@ var DIALOGUE_NAME = 'Moodle dialogue',
|
||||
DIALOGUE,
|
||||
DIALOGUE_FULLSCREEN_CLASS = DIALOGUE_PREFIX + '-fullscreen',
|
||||
DIALOGUE_HIDDEN_CLASS = DIALOGUE_PREFIX + '-hidden',
|
||||
DIALOGUE_SELECTOR =' [role=dialog]',
|
||||
DIALOGUE_SELECTOR = ' [role=dialog]',
|
||||
MENUBAR_SELECTOR = '[role=menubar]',
|
||||
DOT = '.',
|
||||
HAS_ZINDEX = 'moodle-has-zindex',
|
||||
@@ -60,19 +60,19 @@ DIALOGUE = function(c) {
|
||||
config.COUNT = Y.stamp(this);
|
||||
var id = 'moodle-dialogue-' + config.COUNT;
|
||||
config.notificationBase =
|
||||
Y.Node.create('<div class="'+CSS.BASE+'">')
|
||||
Y.Node.create('<div class="' + CSS.BASE + '">')
|
||||
.append(Y.Node.create('<div id="' + id + '" role="dialog" ' +
|
||||
'aria-labelledby="' + id + '-header-text" class="' + CSS.WRAP + '"></div>')
|
||||
.append(Y.Node.create('<div id="' + id + '-header-text" class="'+CSS.HEADER+' yui3-widget-hd"></div>'))
|
||||
.append(Y.Node.create('<div class="'+CSS.BODY+' yui3-widget-bd"></div>'))
|
||||
.append(Y.Node.create('<div class="'+CSS.FOOTER+' yui3-widget-ft"></div>')));
|
||||
.append(Y.Node.create('<div id="' + id + '-header-text" class="' + CSS.HEADER + ' yui3-widget-hd"></div>'))
|
||||
.append(Y.Node.create('<div class="' + CSS.BODY + ' yui3-widget-bd"></div>'))
|
||||
.append(Y.Node.create('<div class="' + CSS.FOOTER + ' yui3-widget-ft"></div>')));
|
||||
Y.one(document.body).append(config.notificationBase);
|
||||
|
||||
if (config.additionalBaseClass) {
|
||||
config.notificationBase.addClass(config.additionalBaseClass);
|
||||
}
|
||||
|
||||
config.srcNode = '#'+id;
|
||||
config.srcNode = '#' + id;
|
||||
|
||||
// closeButton param to keep the stable versions API.
|
||||
if (config.closeButton === false) {
|
||||
@@ -82,7 +82,7 @@ DIALOGUE = function(c) {
|
||||
{
|
||||
section: Y.WidgetStdMod.HEADER,
|
||||
classNames: 'closebutton',
|
||||
action: function () {
|
||||
action: function() {
|
||||
this.hide();
|
||||
}
|
||||
}
|
||||
@@ -97,10 +97,10 @@ DIALOGUE = function(c) {
|
||||
};
|
||||
Y.extend(DIALOGUE, Y.Panel, {
|
||||
// Window resize event listener.
|
||||
_resizeevent : null,
|
||||
_resizeevent: null,
|
||||
// Orientation change event listener.
|
||||
_orientationevent : null,
|
||||
_calculatedzindex : false,
|
||||
_orientationevent: null,
|
||||
_calculatedzindex: false,
|
||||
|
||||
/**
|
||||
* The original position of the dialogue before it was reposition to
|
||||
@@ -127,7 +127,7 @@ Y.extend(DIALOGUE, Y.Panel, {
|
||||
*
|
||||
* @method initializer
|
||||
*/
|
||||
initializer : function() {
|
||||
initializer: function() {
|
||||
var bb;
|
||||
|
||||
// Initialise the element cache.
|
||||
@@ -182,7 +182,7 @@ Y.extend(DIALOGUE, Y.Panel, {
|
||||
}, this);
|
||||
|
||||
// Remove the dialogue from the DOM when it is destroyed.
|
||||
this.after('destroyedChange', function(){
|
||||
this.after('destroyedChange', function() {
|
||||
this.get(BASE).remove(true);
|
||||
}, this);
|
||||
},
|
||||
@@ -193,7 +193,7 @@ Y.extend(DIALOGUE, Y.Panel, {
|
||||
*
|
||||
* @method applyZIndex
|
||||
*/
|
||||
applyZIndex : function() {
|
||||
applyZIndex: function() {
|
||||
var highestzindex = 1,
|
||||
zindexvalue = 1,
|
||||
bb = this.get('boundingBox'),
|
||||
@@ -204,7 +204,7 @@ Y.extend(DIALOGUE, Y.Panel, {
|
||||
bb.setStyle('zIndex', zindex);
|
||||
} else {
|
||||
// Determine the correct zindex by looking at all existing dialogs and menubars in the page.
|
||||
Y.all(DIALOGUE_SELECTOR + ', ' + MENUBAR_SELECTOR + ', ' + DOT + HAS_ZINDEX).each(function (node) {
|
||||
Y.all(DIALOGUE_SELECTOR + ', ' + MENUBAR_SELECTOR + ', ' + DOT + HAS_ZINDEX).each(function(node) {
|
||||
var zindex = this.findZIndex(node);
|
||||
if (zindex > highestzindex) {
|
||||
highestzindex = zindex;
|
||||
@@ -240,7 +240,7 @@ Y.extend(DIALOGUE, Y.Panel, {
|
||||
* @param {Node} node The Node to apply the zIndex to.
|
||||
* @return {Number} Either the zIndex, or 0 if one was not found.
|
||||
*/
|
||||
findZIndex : function(node) {
|
||||
findZIndex: function(node) {
|
||||
// In most cases the zindex is set on the parent of the dialog.
|
||||
var zindex = node.getStyle('zIndex') || node.ancestor().getStyle('zIndex');
|
||||
if (zindex) {
|
||||
@@ -255,7 +255,7 @@ Y.extend(DIALOGUE, Y.Panel, {
|
||||
* @method visibilityChanged
|
||||
* @param {EventFacade} e
|
||||
*/
|
||||
visibilityChanged : function(e) {
|
||||
visibilityChanged: function(e) {
|
||||
var titlebar, bb;
|
||||
if (e.attrName === 'visible') {
|
||||
this.get('maskNode').addClass(CSS.LIGHTBOX);
|
||||
@@ -286,7 +286,7 @@ Y.extend(DIALOGUE, Y.Panel, {
|
||||
if (!this.shouldResizeFullscreen()) {
|
||||
if (this.get('draggable')) {
|
||||
titlebar = '#' + this.get('id') + ' .' + CSS.HEADER;
|
||||
this.plug(Y.Plugin.Drag, {handles : [titlebar]});
|
||||
this.plug(Y.Plugin.Drag, {handles: [titlebar]});
|
||||
Y.one(titlebar).setStyle('cursor', 'move');
|
||||
}
|
||||
}
|
||||
@@ -310,7 +310,7 @@ Y.extend(DIALOGUE, Y.Panel, {
|
||||
*
|
||||
* @method makeResponsive
|
||||
*/
|
||||
makeResponsive : function() {
|
||||
makeResponsive: function() {
|
||||
var bb = this.get('boundingBox');
|
||||
|
||||
if (this.shouldResizeFullscreen()) {
|
||||
@@ -320,18 +320,18 @@ Y.extend(DIALOGUE, Y.Panel, {
|
||||
// Size and position the fullscreen dialog.
|
||||
|
||||
bb.addClass(DIALOGUE_FULLSCREEN_CLASS);
|
||||
bb.setStyles({'left' : null,
|
||||
'top' : null,
|
||||
'width' : null,
|
||||
'height' : null,
|
||||
'right' : null,
|
||||
'bottom' : null});
|
||||
bb.setStyles({'left': null,
|
||||
'top': null,
|
||||
'width': null,
|
||||
'height': null,
|
||||
'right': null,
|
||||
'bottom': null});
|
||||
} else {
|
||||
if (this.get('responsive')) {
|
||||
// We must reset any of the fullscreen changes.
|
||||
bb.removeClass(DIALOGUE_FULLSCREEN_CLASS)
|
||||
.setStyles({'width' : this.get('width'),
|
||||
'height' : this.get('height')});
|
||||
.setStyles({'width': this.get('width'),
|
||||
'height': this.get('height')});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -345,7 +345,7 @@ Y.extend(DIALOGUE, Y.Panel, {
|
||||
*
|
||||
* @method centerDialogue
|
||||
*/
|
||||
centerDialogue : function() {
|
||||
centerDialogue: function() {
|
||||
var bb = this.get('boundingBox'),
|
||||
hidden = bb.hasClass(DIALOGUE_HIDDEN_CLASS),
|
||||
x,
|
||||
@@ -358,9 +358,9 @@ Y.extend(DIALOGUE, Y.Panel, {
|
||||
if (hidden) {
|
||||
bb.setStyle('top', '-1000px').removeClass(DIALOGUE_HIDDEN_CLASS);
|
||||
}
|
||||
x = Math.max(Math.round((bb.get('winWidth') - bb.get('offsetWidth'))/2), 15);
|
||||
y = Math.max(Math.round((bb.get('winHeight') - bb.get('offsetHeight'))/2), 15) + Y.one(window).get('scrollTop');
|
||||
bb.setStyles({ 'left' : x, 'top' : y});
|
||||
x = Math.max(Math.round((bb.get('winWidth') - bb.get('offsetWidth')) / 2), 15);
|
||||
y = Math.max(Math.round((bb.get('winHeight') - bb.get('offsetHeight')) / 2), 15) + Y.one(window).get('scrollTop');
|
||||
bb.setStyles({'left': x, 'top': y});
|
||||
|
||||
if (hidden) {
|
||||
bb.addClass(DIALOGUE_HIDDEN_CLASS);
|
||||
@@ -376,7 +376,7 @@ Y.extend(DIALOGUE, Y.Panel, {
|
||||
* @method shouldResizeFullscreen
|
||||
* @return {Boolean}
|
||||
*/
|
||||
shouldResizeFullscreen : function() {
|
||||
shouldResizeFullscreen: function() {
|
||||
return (window === window.parent) && this.get('responsive') &&
|
||||
Math.floor(Y.one(document.body).get('winWidth')) < this.get('responsiveWidth');
|
||||
},
|
||||
@@ -434,9 +434,9 @@ Y.extend(DIALOGUE, Y.Panel, {
|
||||
*
|
||||
* @method keyDelegation
|
||||
*/
|
||||
keyDelegation : function() {
|
||||
keyDelegation: function() {
|
||||
var bb = this.get('boundingBox');
|
||||
bb.delegate('key', function(e){
|
||||
bb.delegate('key', function(e) {
|
||||
var target = e.target;
|
||||
var direction = 'forward';
|
||||
if (e.shiftKey) {
|
||||
@@ -456,7 +456,7 @@ Y.extend(DIALOGUE, Y.Panel, {
|
||||
* @param {string} direction tab key for forward and tab+shift for backward
|
||||
* @return {Boolean} The result of the focus action.
|
||||
*/
|
||||
trapFocus : function(target, direction) {
|
||||
trapFocus: function(target, direction) {
|
||||
var bb = this.get('boundingBox'),
|
||||
firstitem = bb.one(CAN_RECEIVE_FOCUS_SELECTOR),
|
||||
lastitem = bb.all(CAN_RECEIVE_FOCUS_SELECTOR).pop();
|
||||
@@ -533,10 +533,10 @@ Y.extend(DIALOGUE, Y.Panel, {
|
||||
this._hiddenSiblings = [];
|
||||
}
|
||||
}, {
|
||||
NAME : DIALOGUE_NAME,
|
||||
CSS_PREFIX : DIALOGUE_PREFIX,
|
||||
ATTRS : {
|
||||
notificationBase : {
|
||||
NAME: DIALOGUE_NAME,
|
||||
CSS_PREFIX: DIALOGUE_PREFIX,
|
||||
ATTRS: {
|
||||
notificationBase: {
|
||||
|
||||
},
|
||||
|
||||
@@ -569,9 +569,9 @@ Y.extend(DIALOGUE, Y.Panel, {
|
||||
* @type Boolean
|
||||
* @default true
|
||||
*/
|
||||
closeButton : {
|
||||
validator : Y.Lang.isBoolean,
|
||||
value : true
|
||||
closeButton: {
|
||||
validator: Y.Lang.isBoolean,
|
||||
value: true
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -581,8 +581,8 @@ Y.extend(DIALOGUE, Y.Panel, {
|
||||
* @type String
|
||||
* @default 'Close'
|
||||
*/
|
||||
closeButtonTitle : {
|
||||
validator : Y.Lang.isString,
|
||||
closeButtonTitle: {
|
||||
validator: Y.Lang.isString,
|
||||
value: M.util.get_string('closebuttontitle', 'moodle')
|
||||
},
|
||||
|
||||
@@ -593,9 +593,9 @@ Y.extend(DIALOGUE, Y.Panel, {
|
||||
* @type Boolean
|
||||
* @default true
|
||||
*/
|
||||
center : {
|
||||
validator : Y.Lang.isBoolean,
|
||||
value : true
|
||||
center: {
|
||||
validator: Y.Lang.isBoolean,
|
||||
value: true
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -605,9 +605,9 @@ Y.extend(DIALOGUE, Y.Panel, {
|
||||
* @type Boolean
|
||||
* @default false
|
||||
*/
|
||||
draggable : {
|
||||
validator : Y.Lang.isBoolean,
|
||||
value : false
|
||||
draggable: {
|
||||
validator: Y.Lang.isBoolean,
|
||||
value: false
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -628,9 +628,9 @@ Y.extend(DIALOGUE, Y.Panel, {
|
||||
* @type Boolean
|
||||
* @default true
|
||||
*/
|
||||
responsive : {
|
||||
validator : Y.Lang.isBoolean,
|
||||
value : true
|
||||
responsive: {
|
||||
validator: Y.Lang.isBoolean,
|
||||
value: true
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -640,8 +640,8 @@ Y.extend(DIALOGUE, Y.Panel, {
|
||||
* @type Number
|
||||
* @default 768
|
||||
*/
|
||||
responsiveWidth : {
|
||||
value : 768
|
||||
responsiveWidth: {
|
||||
value: 768
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -727,9 +727,9 @@ Y.Base.modifyAttrs(DIALOGUE, {
|
||||
* @type Boolean
|
||||
* @default true
|
||||
*/
|
||||
render : {
|
||||
value : true,
|
||||
writeOnce : true
|
||||
render: {
|
||||
value: true,
|
||||
writeOnce: true
|
||||
},
|
||||
|
||||
/**
|
||||
|
||||
+65
-65
@@ -16,14 +16,14 @@ CONFIRMNO = 'noLabel',
|
||||
TITLE = 'title',
|
||||
QUESTION = 'question',
|
||||
CSS = {
|
||||
BASE : 'moodle-dialogue-base',
|
||||
WRAP : 'moodle-dialogue-wrap',
|
||||
HEADER : 'moodle-dialogue-hd',
|
||||
BODY : 'moodle-dialogue-bd',
|
||||
CONTENT : 'moodle-dialogue-content',
|
||||
FOOTER : 'moodle-dialogue-ft',
|
||||
HIDDEN : 'hidden',
|
||||
LIGHTBOX : 'moodle-dialogue-lightbox'
|
||||
BASE: 'moodle-dialogue-base',
|
||||
WRAP: 'moodle-dialogue-wrap',
|
||||
HEADER: 'moodle-dialogue-hd',
|
||||
BODY: 'moodle-dialogue-bd',
|
||||
CONTENT: 'moodle-dialogue-content',
|
||||
FOOTER: 'moodle-dialogue-ft',
|
||||
HIDDEN: 'hidden',
|
||||
LIGHTBOX: 'moodle-dialogue-lightbox'
|
||||
};
|
||||
|
||||
// Set up the namespace once.
|
||||
@@ -41,7 +41,7 @@ var DIALOGUE_NAME = 'Moodle dialogue',
|
||||
DIALOGUE,
|
||||
DIALOGUE_FULLSCREEN_CLASS = DIALOGUE_PREFIX + '-fullscreen',
|
||||
DIALOGUE_HIDDEN_CLASS = DIALOGUE_PREFIX + '-hidden',
|
||||
DIALOGUE_SELECTOR =' [role=dialog]',
|
||||
DIALOGUE_SELECTOR = ' [role=dialog]',
|
||||
MENUBAR_SELECTOR = '[role=menubar]',
|
||||
DOT = '.',
|
||||
HAS_ZINDEX = 'moodle-has-zindex',
|
||||
@@ -60,19 +60,19 @@ DIALOGUE = function(c) {
|
||||
config.COUNT = Y.stamp(this);
|
||||
var id = 'moodle-dialogue-' + config.COUNT;
|
||||
config.notificationBase =
|
||||
Y.Node.create('<div class="'+CSS.BASE+'">')
|
||||
Y.Node.create('<div class="' + CSS.BASE + '">')
|
||||
.append(Y.Node.create('<div id="' + id + '" role="dialog" ' +
|
||||
'aria-labelledby="' + id + '-header-text" class="' + CSS.WRAP + '"></div>')
|
||||
.append(Y.Node.create('<div id="' + id + '-header-text" class="'+CSS.HEADER+' yui3-widget-hd"></div>'))
|
||||
.append(Y.Node.create('<div class="'+CSS.BODY+' yui3-widget-bd"></div>'))
|
||||
.append(Y.Node.create('<div class="'+CSS.FOOTER+' yui3-widget-ft"></div>')));
|
||||
.append(Y.Node.create('<div id="' + id + '-header-text" class="' + CSS.HEADER + ' yui3-widget-hd"></div>'))
|
||||
.append(Y.Node.create('<div class="' + CSS.BODY + ' yui3-widget-bd"></div>'))
|
||||
.append(Y.Node.create('<div class="' + CSS.FOOTER + ' yui3-widget-ft"></div>')));
|
||||
Y.one(document.body).append(config.notificationBase);
|
||||
|
||||
if (config.additionalBaseClass) {
|
||||
config.notificationBase.addClass(config.additionalBaseClass);
|
||||
}
|
||||
|
||||
config.srcNode = '#'+id;
|
||||
config.srcNode = '#' + id;
|
||||
|
||||
// closeButton param to keep the stable versions API.
|
||||
if (config.closeButton === false) {
|
||||
@@ -82,7 +82,7 @@ DIALOGUE = function(c) {
|
||||
{
|
||||
section: Y.WidgetStdMod.HEADER,
|
||||
classNames: 'closebutton',
|
||||
action: function () {
|
||||
action: function() {
|
||||
this.hide();
|
||||
}
|
||||
}
|
||||
@@ -97,10 +97,10 @@ DIALOGUE = function(c) {
|
||||
};
|
||||
Y.extend(DIALOGUE, Y.Panel, {
|
||||
// Window resize event listener.
|
||||
_resizeevent : null,
|
||||
_resizeevent: null,
|
||||
// Orientation change event listener.
|
||||
_orientationevent : null,
|
||||
_calculatedzindex : false,
|
||||
_orientationevent: null,
|
||||
_calculatedzindex: false,
|
||||
|
||||
/**
|
||||
* The original position of the dialogue before it was reposition to
|
||||
@@ -127,7 +127,7 @@ Y.extend(DIALOGUE, Y.Panel, {
|
||||
*
|
||||
* @method initializer
|
||||
*/
|
||||
initializer : function() {
|
||||
initializer: function() {
|
||||
var bb;
|
||||
|
||||
// Initialise the element cache.
|
||||
@@ -182,7 +182,7 @@ Y.extend(DIALOGUE, Y.Panel, {
|
||||
}, this);
|
||||
|
||||
// Remove the dialogue from the DOM when it is destroyed.
|
||||
this.after('destroyedChange', function(){
|
||||
this.after('destroyedChange', function() {
|
||||
this.get(BASE).remove(true);
|
||||
}, this);
|
||||
},
|
||||
@@ -193,7 +193,7 @@ Y.extend(DIALOGUE, Y.Panel, {
|
||||
*
|
||||
* @method applyZIndex
|
||||
*/
|
||||
applyZIndex : function() {
|
||||
applyZIndex: function() {
|
||||
var highestzindex = 1,
|
||||
zindexvalue = 1,
|
||||
bb = this.get('boundingBox'),
|
||||
@@ -204,7 +204,7 @@ Y.extend(DIALOGUE, Y.Panel, {
|
||||
bb.setStyle('zIndex', zindex);
|
||||
} else {
|
||||
// Determine the correct zindex by looking at all existing dialogs and menubars in the page.
|
||||
Y.all(DIALOGUE_SELECTOR + ', ' + MENUBAR_SELECTOR + ', ' + DOT + HAS_ZINDEX).each(function (node) {
|
||||
Y.all(DIALOGUE_SELECTOR + ', ' + MENUBAR_SELECTOR + ', ' + DOT + HAS_ZINDEX).each(function(node) {
|
||||
var zindex = this.findZIndex(node);
|
||||
if (zindex > highestzindex) {
|
||||
highestzindex = zindex;
|
||||
@@ -240,7 +240,7 @@ Y.extend(DIALOGUE, Y.Panel, {
|
||||
* @param {Node} node The Node to apply the zIndex to.
|
||||
* @return {Number} Either the zIndex, or 0 if one was not found.
|
||||
*/
|
||||
findZIndex : function(node) {
|
||||
findZIndex: function(node) {
|
||||
// In most cases the zindex is set on the parent of the dialog.
|
||||
var zindex = node.getStyle('zIndex') || node.ancestor().getStyle('zIndex');
|
||||
if (zindex) {
|
||||
@@ -255,7 +255,7 @@ Y.extend(DIALOGUE, Y.Panel, {
|
||||
* @method visibilityChanged
|
||||
* @param {EventFacade} e
|
||||
*/
|
||||
visibilityChanged : function(e) {
|
||||
visibilityChanged: function(e) {
|
||||
var titlebar, bb;
|
||||
if (e.attrName === 'visible') {
|
||||
this.get('maskNode').addClass(CSS.LIGHTBOX);
|
||||
@@ -286,7 +286,7 @@ Y.extend(DIALOGUE, Y.Panel, {
|
||||
if (!this.shouldResizeFullscreen()) {
|
||||
if (this.get('draggable')) {
|
||||
titlebar = '#' + this.get('id') + ' .' + CSS.HEADER;
|
||||
this.plug(Y.Plugin.Drag, {handles : [titlebar]});
|
||||
this.plug(Y.Plugin.Drag, {handles: [titlebar]});
|
||||
Y.one(titlebar).setStyle('cursor', 'move');
|
||||
}
|
||||
}
|
||||
@@ -310,7 +310,7 @@ Y.extend(DIALOGUE, Y.Panel, {
|
||||
*
|
||||
* @method makeResponsive
|
||||
*/
|
||||
makeResponsive : function() {
|
||||
makeResponsive: function() {
|
||||
var bb = this.get('boundingBox');
|
||||
|
||||
if (this.shouldResizeFullscreen()) {
|
||||
@@ -320,18 +320,18 @@ Y.extend(DIALOGUE, Y.Panel, {
|
||||
// Size and position the fullscreen dialog.
|
||||
|
||||
bb.addClass(DIALOGUE_FULLSCREEN_CLASS);
|
||||
bb.setStyles({'left' : null,
|
||||
'top' : null,
|
||||
'width' : null,
|
||||
'height' : null,
|
||||
'right' : null,
|
||||
'bottom' : null});
|
||||
bb.setStyles({'left': null,
|
||||
'top': null,
|
||||
'width': null,
|
||||
'height': null,
|
||||
'right': null,
|
||||
'bottom': null});
|
||||
} else {
|
||||
if (this.get('responsive')) {
|
||||
// We must reset any of the fullscreen changes.
|
||||
bb.removeClass(DIALOGUE_FULLSCREEN_CLASS)
|
||||
.setStyles({'width' : this.get('width'),
|
||||
'height' : this.get('height')});
|
||||
.setStyles({'width': this.get('width'),
|
||||
'height': this.get('height')});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -345,7 +345,7 @@ Y.extend(DIALOGUE, Y.Panel, {
|
||||
*
|
||||
* @method centerDialogue
|
||||
*/
|
||||
centerDialogue : function() {
|
||||
centerDialogue: function() {
|
||||
var bb = this.get('boundingBox'),
|
||||
hidden = bb.hasClass(DIALOGUE_HIDDEN_CLASS),
|
||||
x,
|
||||
@@ -358,9 +358,9 @@ Y.extend(DIALOGUE, Y.Panel, {
|
||||
if (hidden) {
|
||||
bb.setStyle('top', '-1000px').removeClass(DIALOGUE_HIDDEN_CLASS);
|
||||
}
|
||||
x = Math.max(Math.round((bb.get('winWidth') - bb.get('offsetWidth'))/2), 15);
|
||||
y = Math.max(Math.round((bb.get('winHeight') - bb.get('offsetHeight'))/2), 15) + Y.one(window).get('scrollTop');
|
||||
bb.setStyles({ 'left' : x, 'top' : y});
|
||||
x = Math.max(Math.round((bb.get('winWidth') - bb.get('offsetWidth')) / 2), 15);
|
||||
y = Math.max(Math.round((bb.get('winHeight') - bb.get('offsetHeight')) / 2), 15) + Y.one(window).get('scrollTop');
|
||||
bb.setStyles({'left': x, 'top': y});
|
||||
|
||||
if (hidden) {
|
||||
bb.addClass(DIALOGUE_HIDDEN_CLASS);
|
||||
@@ -376,7 +376,7 @@ Y.extend(DIALOGUE, Y.Panel, {
|
||||
* @method shouldResizeFullscreen
|
||||
* @return {Boolean}
|
||||
*/
|
||||
shouldResizeFullscreen : function() {
|
||||
shouldResizeFullscreen: function() {
|
||||
return (window === window.parent) && this.get('responsive') &&
|
||||
Math.floor(Y.one(document.body).get('winWidth')) < this.get('responsiveWidth');
|
||||
},
|
||||
@@ -434,9 +434,9 @@ Y.extend(DIALOGUE, Y.Panel, {
|
||||
*
|
||||
* @method keyDelegation
|
||||
*/
|
||||
keyDelegation : function() {
|
||||
keyDelegation: function() {
|
||||
var bb = this.get('boundingBox');
|
||||
bb.delegate('key', function(e){
|
||||
bb.delegate('key', function(e) {
|
||||
var target = e.target;
|
||||
var direction = 'forward';
|
||||
if (e.shiftKey) {
|
||||
@@ -456,7 +456,7 @@ Y.extend(DIALOGUE, Y.Panel, {
|
||||
* @param {string} direction tab key for forward and tab+shift for backward
|
||||
* @return {Boolean} The result of the focus action.
|
||||
*/
|
||||
trapFocus : function(target, direction) {
|
||||
trapFocus: function(target, direction) {
|
||||
var bb = this.get('boundingBox'),
|
||||
firstitem = bb.one(CAN_RECEIVE_FOCUS_SELECTOR),
|
||||
lastitem = bb.all(CAN_RECEIVE_FOCUS_SELECTOR).pop();
|
||||
@@ -533,10 +533,10 @@ Y.extend(DIALOGUE, Y.Panel, {
|
||||
this._hiddenSiblings = [];
|
||||
}
|
||||
}, {
|
||||
NAME : DIALOGUE_NAME,
|
||||
CSS_PREFIX : DIALOGUE_PREFIX,
|
||||
ATTRS : {
|
||||
notificationBase : {
|
||||
NAME: DIALOGUE_NAME,
|
||||
CSS_PREFIX: DIALOGUE_PREFIX,
|
||||
ATTRS: {
|
||||
notificationBase: {
|
||||
|
||||
},
|
||||
|
||||
@@ -566,9 +566,9 @@ Y.extend(DIALOGUE, Y.Panel, {
|
||||
* @type Boolean
|
||||
* @default true
|
||||
*/
|
||||
closeButton : {
|
||||
validator : Y.Lang.isBoolean,
|
||||
value : true
|
||||
closeButton: {
|
||||
validator: Y.Lang.isBoolean,
|
||||
value: true
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -578,8 +578,8 @@ Y.extend(DIALOGUE, Y.Panel, {
|
||||
* @type String
|
||||
* @default 'Close'
|
||||
*/
|
||||
closeButtonTitle : {
|
||||
validator : Y.Lang.isString,
|
||||
closeButtonTitle: {
|
||||
validator: Y.Lang.isString,
|
||||
value: M.util.get_string('closebuttontitle', 'moodle')
|
||||
},
|
||||
|
||||
@@ -590,9 +590,9 @@ Y.extend(DIALOGUE, Y.Panel, {
|
||||
* @type Boolean
|
||||
* @default true
|
||||
*/
|
||||
center : {
|
||||
validator : Y.Lang.isBoolean,
|
||||
value : true
|
||||
center: {
|
||||
validator: Y.Lang.isBoolean,
|
||||
value: true
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -602,9 +602,9 @@ Y.extend(DIALOGUE, Y.Panel, {
|
||||
* @type Boolean
|
||||
* @default false
|
||||
*/
|
||||
draggable : {
|
||||
validator : Y.Lang.isBoolean,
|
||||
value : false
|
||||
draggable: {
|
||||
validator: Y.Lang.isBoolean,
|
||||
value: false
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -625,9 +625,9 @@ Y.extend(DIALOGUE, Y.Panel, {
|
||||
* @type Boolean
|
||||
* @default true
|
||||
*/
|
||||
responsive : {
|
||||
validator : Y.Lang.isBoolean,
|
||||
value : true
|
||||
responsive: {
|
||||
validator: Y.Lang.isBoolean,
|
||||
value: true
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -637,8 +637,8 @@ Y.extend(DIALOGUE, Y.Panel, {
|
||||
* @type Number
|
||||
* @default 768
|
||||
*/
|
||||
responsiveWidth : {
|
||||
value : 768
|
||||
responsiveWidth: {
|
||||
value: 768
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -724,9 +724,9 @@ Y.Base.modifyAttrs(DIALOGUE, {
|
||||
* @type Boolean
|
||||
* @default true
|
||||
*/
|
||||
render : {
|
||||
value : true,
|
||||
writeOnce : true
|
||||
render: {
|
||||
value: true,
|
||||
writeOnce: true
|
||||
},
|
||||
|
||||
/**
|
||||
|
||||
Vendored
+42
-38
@@ -16,14 +16,14 @@ CONFIRMNO = 'noLabel',
|
||||
TITLE = 'title',
|
||||
QUESTION = 'question',
|
||||
CSS = {
|
||||
BASE : 'moodle-dialogue-base',
|
||||
WRAP : 'moodle-dialogue-wrap',
|
||||
HEADER : 'moodle-dialogue-hd',
|
||||
BODY : 'moodle-dialogue-bd',
|
||||
CONTENT : 'moodle-dialogue-content',
|
||||
FOOTER : 'moodle-dialogue-ft',
|
||||
HIDDEN : 'hidden',
|
||||
LIGHTBOX : 'moodle-dialogue-lightbox'
|
||||
BASE: 'moodle-dialogue-base',
|
||||
WRAP: 'moodle-dialogue-wrap',
|
||||
HEADER: 'moodle-dialogue-hd',
|
||||
BODY: 'moodle-dialogue-bd',
|
||||
CONTENT: 'moodle-dialogue-content',
|
||||
FOOTER: 'moodle-dialogue-ft',
|
||||
HIDDEN: 'hidden',
|
||||
LIGHTBOX: 'moodle-dialogue-lightbox'
|
||||
};
|
||||
|
||||
// Set up the namespace once.
|
||||
@@ -51,7 +51,7 @@ var EXCEPTION_NAME = 'Moodle exception',
|
||||
*/
|
||||
EXCEPTION = function(c) {
|
||||
var config = Y.mix({}, c);
|
||||
config.width = config.width || (M.cfg.developerdebug)?Math.floor(Y.one(document.body).get('winWidth')/3)+'px':null;
|
||||
config.width = config.width || (M.cfg.developerdebug) ? Math.floor(Y.one(document.body).get('winWidth') / 3) + 'px' : null;
|
||||
config.closeButton = true;
|
||||
|
||||
// We need to whitelist some properties which are part of the exception
|
||||
@@ -70,50 +70,54 @@ EXCEPTION = function(c) {
|
||||
EXCEPTION.superclass.constructor.apply(this, [config]);
|
||||
};
|
||||
Y.extend(EXCEPTION, M.core.notification.info, {
|
||||
_hideTimeout : null,
|
||||
_keypress : null,
|
||||
initializer : function(config) {
|
||||
_hideTimeout: null,
|
||||
_keypress: null,
|
||||
initializer: function(config) {
|
||||
var content,
|
||||
self = this,
|
||||
delay = this.get('hideTimeoutDelay');
|
||||
this.get(BASE).addClass('moodle-dialogue-exception');
|
||||
this.setStdModContent(Y.WidgetStdMod.HEADER,
|
||||
'<h1 id="moodle-dialogue-'+config.COUNT+'-header-text">' + Y.Escape.html(config.name) + '</h1>',
|
||||
'<h1 id="moodle-dialogue-' + config.COUNT + '-header-text">' + Y.Escape.html(config.name) + '</h1>',
|
||||
Y.WidgetStdMod.REPLACE);
|
||||
content = Y.Node.create('<div class="moodle-exception"></div>')
|
||||
.append(Y.Node.create('<div class="moodle-exception-message">'+Y.Escape.html(this.get('message'))+'</div>'))
|
||||
.append(Y.Node.create('<div class="moodle-exception-message">' + Y.Escape.html(this.get('message')) + '</div>'))
|
||||
.append(Y.Node.create('<div class="moodle-exception-param hidden param-filename"><label>File:</label> ' +
|
||||
Y.Escape.html(this.get('fileName'))+'</div>'))
|
||||
Y.Escape.html(this.get('fileName')) + '</div>'))
|
||||
.append(Y.Node.create('<div class="moodle-exception-param hidden param-linenumber"><label>Line:</label> ' +
|
||||
Y.Escape.html(this.get('lineNumber'))+'</div>'))
|
||||
Y.Escape.html(this.get('lineNumber')) + '</div>'))
|
||||
.append(Y.Node.create('<div class="moodle-exception-param hidden param-stacktrace">' +
|
||||
'<label>Stack trace:</label> <pre>' +
|
||||
this.get('stack')+'</pre></div>'));
|
||||
this.get('stack') + '</pre></div>'));
|
||||
if (M.cfg.developerdebug) {
|
||||
content.all('.moodle-exception-param').removeClass('hidden');
|
||||
}
|
||||
this.setStdModContent(Y.WidgetStdMod.BODY, content, Y.WidgetStdMod.REPLACE);
|
||||
|
||||
if (delay) {
|
||||
this._hideTimeout = setTimeout(function(){self.hide();}, delay);
|
||||
this._hideTimeout = setTimeout(function() {
|
||||
self.hide();
|
||||
}, delay);
|
||||
}
|
||||
this.after('visibleChange', this.visibilityChanged, this);
|
||||
this._keypress = Y.on('key', this.hide, window, 'down:13,27', this);
|
||||
this.centerDialogue();
|
||||
},
|
||||
visibilityChanged : function(e) {
|
||||
visibilityChanged: function(e) {
|
||||
if (e.attrName === 'visible' && e.prevVal && !e.newVal) {
|
||||
if (this._keypress) {
|
||||
this._keypress.detach();
|
||||
}
|
||||
var self = this;
|
||||
setTimeout(function(){self.destroy();}, 1000);
|
||||
setTimeout(function() {
|
||||
self.destroy();
|
||||
}, 1000);
|
||||
}
|
||||
}
|
||||
}, {
|
||||
NAME : EXCEPTION_NAME,
|
||||
CSS_PREFIX : DIALOGUE_PREFIX,
|
||||
ATTRS : {
|
||||
NAME: EXCEPTION_NAME,
|
||||
CSS_PREFIX: DIALOGUE_PREFIX,
|
||||
ATTRS: {
|
||||
/**
|
||||
* The message of the alert.
|
||||
*
|
||||
@@ -121,8 +125,8 @@ Y.extend(EXCEPTION, M.core.notification.info, {
|
||||
* @type String
|
||||
* @default ''
|
||||
*/
|
||||
message : {
|
||||
value : ''
|
||||
message: {
|
||||
value: ''
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -132,8 +136,8 @@ Y.extend(EXCEPTION, M.core.notification.info, {
|
||||
* @type String
|
||||
* @default ''
|
||||
*/
|
||||
name : {
|
||||
value : ''
|
||||
name: {
|
||||
value: ''
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -143,8 +147,8 @@ Y.extend(EXCEPTION, M.core.notification.info, {
|
||||
* @type String
|
||||
* @default ''
|
||||
*/
|
||||
fileName : {
|
||||
value : ''
|
||||
fileName: {
|
||||
value: ''
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -154,8 +158,8 @@ Y.extend(EXCEPTION, M.core.notification.info, {
|
||||
* @type String
|
||||
* @default ''
|
||||
*/
|
||||
lineNumber : {
|
||||
value : ''
|
||||
lineNumber: {
|
||||
value: ''
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -165,10 +169,10 @@ Y.extend(EXCEPTION, M.core.notification.info, {
|
||||
* @type String
|
||||
* @default ''
|
||||
*/
|
||||
stack : {
|
||||
setter : function(str) {
|
||||
stack: {
|
||||
setter: function(str) {
|
||||
var lines = Y.Escape.html(str).split("\n"),
|
||||
pattern = new RegExp('^(.+)@('+M.cfg.wwwroot+')?(.{0,75}).*:(\\d+)$'),
|
||||
pattern = new RegExp('^(.+)@(' + M.cfg.wwwroot + ')?(.{0,75}).*:(\\d+)$'),
|
||||
i;
|
||||
for (i in lines) {
|
||||
lines[i] = lines[i].replace(pattern,
|
||||
@@ -178,7 +182,7 @@ Y.extend(EXCEPTION, M.core.notification.info, {
|
||||
}
|
||||
return lines.join('');
|
||||
},
|
||||
value : ''
|
||||
value: ''
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -189,9 +193,9 @@ Y.extend(EXCEPTION, M.core.notification.info, {
|
||||
* @default null
|
||||
* @optional
|
||||
*/
|
||||
hideTimeoutDelay : {
|
||||
validator : Y.Lang.isNumber,
|
||||
value : null
|
||||
hideTimeoutDelay: {
|
||||
validator: Y.Lang.isNumber,
|
||||
value: null
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
+42
-38
@@ -16,14 +16,14 @@ CONFIRMNO = 'noLabel',
|
||||
TITLE = 'title',
|
||||
QUESTION = 'question',
|
||||
CSS = {
|
||||
BASE : 'moodle-dialogue-base',
|
||||
WRAP : 'moodle-dialogue-wrap',
|
||||
HEADER : 'moodle-dialogue-hd',
|
||||
BODY : 'moodle-dialogue-bd',
|
||||
CONTENT : 'moodle-dialogue-content',
|
||||
FOOTER : 'moodle-dialogue-ft',
|
||||
HIDDEN : 'hidden',
|
||||
LIGHTBOX : 'moodle-dialogue-lightbox'
|
||||
BASE: 'moodle-dialogue-base',
|
||||
WRAP: 'moodle-dialogue-wrap',
|
||||
HEADER: 'moodle-dialogue-hd',
|
||||
BODY: 'moodle-dialogue-bd',
|
||||
CONTENT: 'moodle-dialogue-content',
|
||||
FOOTER: 'moodle-dialogue-ft',
|
||||
HIDDEN: 'hidden',
|
||||
LIGHTBOX: 'moodle-dialogue-lightbox'
|
||||
};
|
||||
|
||||
// Set up the namespace once.
|
||||
@@ -51,7 +51,7 @@ var EXCEPTION_NAME = 'Moodle exception',
|
||||
*/
|
||||
EXCEPTION = function(c) {
|
||||
var config = Y.mix({}, c);
|
||||
config.width = config.width || (M.cfg.developerdebug)?Math.floor(Y.one(document.body).get('winWidth')/3)+'px':null;
|
||||
config.width = config.width || (M.cfg.developerdebug) ? Math.floor(Y.one(document.body).get('winWidth') / 3) + 'px' : null;
|
||||
config.closeButton = true;
|
||||
|
||||
// We need to whitelist some properties which are part of the exception
|
||||
@@ -70,50 +70,54 @@ EXCEPTION = function(c) {
|
||||
EXCEPTION.superclass.constructor.apply(this, [config]);
|
||||
};
|
||||
Y.extend(EXCEPTION, M.core.notification.info, {
|
||||
_hideTimeout : null,
|
||||
_keypress : null,
|
||||
initializer : function(config) {
|
||||
_hideTimeout: null,
|
||||
_keypress: null,
|
||||
initializer: function(config) {
|
||||
var content,
|
||||
self = this,
|
||||
delay = this.get('hideTimeoutDelay');
|
||||
this.get(BASE).addClass('moodle-dialogue-exception');
|
||||
this.setStdModContent(Y.WidgetStdMod.HEADER,
|
||||
'<h1 id="moodle-dialogue-'+config.COUNT+'-header-text">' + Y.Escape.html(config.name) + '</h1>',
|
||||
'<h1 id="moodle-dialogue-' + config.COUNT + '-header-text">' + Y.Escape.html(config.name) + '</h1>',
|
||||
Y.WidgetStdMod.REPLACE);
|
||||
content = Y.Node.create('<div class="moodle-exception"></div>')
|
||||
.append(Y.Node.create('<div class="moodle-exception-message">'+Y.Escape.html(this.get('message'))+'</div>'))
|
||||
.append(Y.Node.create('<div class="moodle-exception-message">' + Y.Escape.html(this.get('message')) + '</div>'))
|
||||
.append(Y.Node.create('<div class="moodle-exception-param hidden param-filename"><label>File:</label> ' +
|
||||
Y.Escape.html(this.get('fileName'))+'</div>'))
|
||||
Y.Escape.html(this.get('fileName')) + '</div>'))
|
||||
.append(Y.Node.create('<div class="moodle-exception-param hidden param-linenumber"><label>Line:</label> ' +
|
||||
Y.Escape.html(this.get('lineNumber'))+'</div>'))
|
||||
Y.Escape.html(this.get('lineNumber')) + '</div>'))
|
||||
.append(Y.Node.create('<div class="moodle-exception-param hidden param-stacktrace">' +
|
||||
'<label>Stack trace:</label> <pre>' +
|
||||
this.get('stack')+'</pre></div>'));
|
||||
this.get('stack') + '</pre></div>'));
|
||||
if (M.cfg.developerdebug) {
|
||||
content.all('.moodle-exception-param').removeClass('hidden');
|
||||
}
|
||||
this.setStdModContent(Y.WidgetStdMod.BODY, content, Y.WidgetStdMod.REPLACE);
|
||||
|
||||
if (delay) {
|
||||
this._hideTimeout = setTimeout(function(){self.hide();}, delay);
|
||||
this._hideTimeout = setTimeout(function() {
|
||||
self.hide();
|
||||
}, delay);
|
||||
}
|
||||
this.after('visibleChange', this.visibilityChanged, this);
|
||||
this._keypress = Y.on('key', this.hide, window, 'down:13,27', this);
|
||||
this.centerDialogue();
|
||||
},
|
||||
visibilityChanged : function(e) {
|
||||
visibilityChanged: function(e) {
|
||||
if (e.attrName === 'visible' && e.prevVal && !e.newVal) {
|
||||
if (this._keypress) {
|
||||
this._keypress.detach();
|
||||
}
|
||||
var self = this;
|
||||
setTimeout(function(){self.destroy();}, 1000);
|
||||
setTimeout(function() {
|
||||
self.destroy();
|
||||
}, 1000);
|
||||
}
|
||||
}
|
||||
}, {
|
||||
NAME : EXCEPTION_NAME,
|
||||
CSS_PREFIX : DIALOGUE_PREFIX,
|
||||
ATTRS : {
|
||||
NAME: EXCEPTION_NAME,
|
||||
CSS_PREFIX: DIALOGUE_PREFIX,
|
||||
ATTRS: {
|
||||
/**
|
||||
* The message of the alert.
|
||||
*
|
||||
@@ -121,8 +125,8 @@ Y.extend(EXCEPTION, M.core.notification.info, {
|
||||
* @type String
|
||||
* @default ''
|
||||
*/
|
||||
message : {
|
||||
value : ''
|
||||
message: {
|
||||
value: ''
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -132,8 +136,8 @@ Y.extend(EXCEPTION, M.core.notification.info, {
|
||||
* @type String
|
||||
* @default ''
|
||||
*/
|
||||
name : {
|
||||
value : ''
|
||||
name: {
|
||||
value: ''
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -143,8 +147,8 @@ Y.extend(EXCEPTION, M.core.notification.info, {
|
||||
* @type String
|
||||
* @default ''
|
||||
*/
|
||||
fileName : {
|
||||
value : ''
|
||||
fileName: {
|
||||
value: ''
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -154,8 +158,8 @@ Y.extend(EXCEPTION, M.core.notification.info, {
|
||||
* @type String
|
||||
* @default ''
|
||||
*/
|
||||
lineNumber : {
|
||||
value : ''
|
||||
lineNumber: {
|
||||
value: ''
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -165,10 +169,10 @@ Y.extend(EXCEPTION, M.core.notification.info, {
|
||||
* @type String
|
||||
* @default ''
|
||||
*/
|
||||
stack : {
|
||||
setter : function(str) {
|
||||
stack: {
|
||||
setter: function(str) {
|
||||
var lines = Y.Escape.html(str).split("\n"),
|
||||
pattern = new RegExp('^(.+)@('+M.cfg.wwwroot+')?(.{0,75}).*:(\\d+)$'),
|
||||
pattern = new RegExp('^(.+)@(' + M.cfg.wwwroot + ')?(.{0,75}).*:(\\d+)$'),
|
||||
i;
|
||||
for (i in lines) {
|
||||
lines[i] = lines[i].replace(pattern,
|
||||
@@ -178,7 +182,7 @@ Y.extend(EXCEPTION, M.core.notification.info, {
|
||||
}
|
||||
return lines.join('');
|
||||
},
|
||||
value : ''
|
||||
value: ''
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -189,9 +193,9 @@ Y.extend(EXCEPTION, M.core.notification.info, {
|
||||
* @default null
|
||||
* @optional
|
||||
*/
|
||||
hideTimeoutDelay : {
|
||||
validator : Y.Lang.isNumber,
|
||||
value : null
|
||||
hideTimeoutDelay: {
|
||||
validator: Y.Lang.isNumber,
|
||||
value: null
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
+32
-30
@@ -8,12 +8,12 @@ YUI.add('moodle-message_airnotifier-toolboxes', function (Y, NAME) {
|
||||
|
||||
// The CSS selectors we use.
|
||||
var CSS = {
|
||||
AIRNOTIFIERCONTENT : 'fieldset#messageprocessor_airnotifier',
|
||||
HIDEDEVICE : 'a.hidedevice',
|
||||
DEVICELI : 'li.airnotifierdevice',
|
||||
DIMCLASS : 'dimmed',
|
||||
DIMMEDTEXT : 'dimmed_text',
|
||||
DEVICEIDPREFIX : 'deviceid-'
|
||||
AIRNOTIFIERCONTENT: 'fieldset#messageprocessor_airnotifier',
|
||||
HIDEDEVICE: 'a.hidedevice',
|
||||
DEVICELI: 'li.airnotifierdevice',
|
||||
DIMCLASS: 'dimmed',
|
||||
DIMMEDTEXT: 'dimmed_text',
|
||||
DEVICEIDPREFIX: 'deviceid-'
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -36,7 +36,7 @@ Y.extend(TOOLBOX, Y.Base, {
|
||||
* @param callback The callback to apply
|
||||
* @param cursor An optional cursor style to apply
|
||||
*/
|
||||
replace_button : function(toolboxtarget, selector, callback, cursor) {
|
||||
replace_button: function(toolboxtarget, selector, callback, cursor) {
|
||||
if (!cursor) {
|
||||
// Set the default cursor type to pointer to match the anchor.
|
||||
cursor = 'pointer';
|
||||
@@ -53,7 +53,7 @@ Y.extend(TOOLBOX, Y.Base, {
|
||||
* Toggle the visibility and availability for the specified
|
||||
* device show/hide button
|
||||
*/
|
||||
toggle_hide_device_ui : function(button) {
|
||||
toggle_hide_device_ui: function(button) {
|
||||
|
||||
var element = button.ancestor(CSS.DEVICELI);
|
||||
var hideicon = button.one('img');
|
||||
@@ -72,9 +72,9 @@ Y.extend(TOOLBOX, Y.Base, {
|
||||
// We need to toggle dimming on the description too element.all(CSS.CONTENTAFTERLINK).toggleClass(CSS.DIMMEDTEXT);.
|
||||
var newstring = M.util.get_string(status, 'moodle');
|
||||
hideicon.setAttrs({
|
||||
'alt' : newstring,
|
||||
'title' : newstring,
|
||||
'src' : M.util.image_url('t/' + status)
|
||||
'alt': newstring,
|
||||
'title': newstring,
|
||||
'src': M.util.image_url('t/' + status)
|
||||
});
|
||||
button.set('title', newstring);
|
||||
button.set('className', 'editing_' + status);
|
||||
@@ -87,7 +87,7 @@ Y.extend(TOOLBOX, Y.Base, {
|
||||
* @param callbacksuccess Call back on success
|
||||
* @return response responseText field from responce
|
||||
*/
|
||||
send_request : function(data, statusspinner, callbacksuccess) {
|
||||
send_request: function(data, statusspinner, callbacksuccess) {
|
||||
// Default data structure
|
||||
if (!data) {
|
||||
data = {};
|
||||
@@ -123,12 +123,14 @@ Y.extend(TOOLBOX, Y.Base, {
|
||||
} else if (responsetext.success) {
|
||||
callbacksuccess();
|
||||
}
|
||||
} catch (e) {}
|
||||
} catch (e) {
|
||||
// Ignore.
|
||||
}
|
||||
if (statusspinner) {
|
||||
statusspinner.hide();
|
||||
}
|
||||
},
|
||||
failure : function(tid, response) {
|
||||
failure: function(tid, response) {
|
||||
if (statusspinner) {
|
||||
statusspinner.hide();
|
||||
}
|
||||
@@ -151,18 +153,18 @@ Y.extend(TOOLBOX, Y.Base, {
|
||||
* @param element The <li> element to determine a module-id number for
|
||||
* @return string The module ID
|
||||
*/
|
||||
get_element_id : function(element) {
|
||||
get_element_id: function(element) {
|
||||
return element.get('id').replace(CSS.DEVICEIDPREFIX, '');
|
||||
}
|
||||
},
|
||||
{
|
||||
NAME : 'device-toolbox',
|
||||
ATTRS : {
|
||||
ajaxurl : {
|
||||
'value' : 0
|
||||
NAME: 'device-toolbox',
|
||||
ATTRS: {
|
||||
ajaxurl: {
|
||||
'value': 0
|
||||
},
|
||||
config : {
|
||||
'value' : 0
|
||||
config: {
|
||||
'value': 0
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -179,7 +181,7 @@ Y.extend(DEVICETOOLBOX, TOOLBOX, {
|
||||
*
|
||||
* Updates all span.commands with relevant handlers and other required changes
|
||||
*/
|
||||
initializer : function() {
|
||||
initializer: function() {
|
||||
this.setup_for_device();
|
||||
},
|
||||
/**
|
||||
@@ -189,19 +191,19 @@ Y.extend(DEVICETOOLBOX, TOOLBOX, {
|
||||
* @param baseselector The selector to limit scope to
|
||||
* @return void
|
||||
*/
|
||||
setup_for_device : function(baseselector) {
|
||||
setup_for_device: function(baseselector) {
|
||||
if (!baseselector) {
|
||||
baseselector = CSS.AIRNOTIFIERCONTENT;
|
||||
}
|
||||
|
||||
Y.all(baseselector).each(this._setup_for_device, this);
|
||||
},
|
||||
_setup_for_device : function(toolboxtarget) {
|
||||
_setup_for_device: function(toolboxtarget) {
|
||||
|
||||
// Show/Hide.
|
||||
this.replace_button(toolboxtarget, CSS.HIDEDEVICE, this.toggle_hide_device);
|
||||
},
|
||||
toggle_hide_device : function(e) {
|
||||
toggle_hide_device: function(e) {
|
||||
// Prevent the default button action.
|
||||
e.preventDefault();
|
||||
|
||||
@@ -220,9 +222,9 @@ Y.extend(DEVICETOOLBOX, TOOLBOX, {
|
||||
|
||||
// Send the request.
|
||||
var data = {
|
||||
'field' : 'enable',
|
||||
'enable' : value,
|
||||
'id' : this.get_element_id(element)
|
||||
'field': 'enable',
|
||||
'enable': value,
|
||||
'id': this.get_element_id(element)
|
||||
};
|
||||
var spinner = M.util.add_spinner(Y, element);
|
||||
|
||||
@@ -233,8 +235,8 @@ Y.extend(DEVICETOOLBOX, TOOLBOX, {
|
||||
this.send_request(data, spinner, callback);
|
||||
}
|
||||
}, {
|
||||
NAME : 'message-device-toolbox',
|
||||
ATTRS : {
|
||||
NAME: 'message-device-toolbox',
|
||||
ATTRS: {
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
+32
-30
@@ -8,12 +8,12 @@ YUI.add('moodle-message_airnotifier-toolboxes', function (Y, NAME) {
|
||||
|
||||
// The CSS selectors we use.
|
||||
var CSS = {
|
||||
AIRNOTIFIERCONTENT : 'fieldset#messageprocessor_airnotifier',
|
||||
HIDEDEVICE : 'a.hidedevice',
|
||||
DEVICELI : 'li.airnotifierdevice',
|
||||
DIMCLASS : 'dimmed',
|
||||
DIMMEDTEXT : 'dimmed_text',
|
||||
DEVICEIDPREFIX : 'deviceid-'
|
||||
AIRNOTIFIERCONTENT: 'fieldset#messageprocessor_airnotifier',
|
||||
HIDEDEVICE: 'a.hidedevice',
|
||||
DEVICELI: 'li.airnotifierdevice',
|
||||
DIMCLASS: 'dimmed',
|
||||
DIMMEDTEXT: 'dimmed_text',
|
||||
DEVICEIDPREFIX: 'deviceid-'
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -36,7 +36,7 @@ Y.extend(TOOLBOX, Y.Base, {
|
||||
* @param callback The callback to apply
|
||||
* @param cursor An optional cursor style to apply
|
||||
*/
|
||||
replace_button : function(toolboxtarget, selector, callback, cursor) {
|
||||
replace_button: function(toolboxtarget, selector, callback, cursor) {
|
||||
if (!cursor) {
|
||||
// Set the default cursor type to pointer to match the anchor.
|
||||
cursor = 'pointer';
|
||||
@@ -53,7 +53,7 @@ Y.extend(TOOLBOX, Y.Base, {
|
||||
* Toggle the visibility and availability for the specified
|
||||
* device show/hide button
|
||||
*/
|
||||
toggle_hide_device_ui : function(button) {
|
||||
toggle_hide_device_ui: function(button) {
|
||||
|
||||
var element = button.ancestor(CSS.DEVICELI);
|
||||
var hideicon = button.one('img');
|
||||
@@ -72,9 +72,9 @@ Y.extend(TOOLBOX, Y.Base, {
|
||||
// We need to toggle dimming on the description too element.all(CSS.CONTENTAFTERLINK).toggleClass(CSS.DIMMEDTEXT);.
|
||||
var newstring = M.util.get_string(status, 'moodle');
|
||||
hideicon.setAttrs({
|
||||
'alt' : newstring,
|
||||
'title' : newstring,
|
||||
'src' : M.util.image_url('t/' + status)
|
||||
'alt': newstring,
|
||||
'title': newstring,
|
||||
'src': M.util.image_url('t/' + status)
|
||||
});
|
||||
button.set('title', newstring);
|
||||
button.set('className', 'editing_' + status);
|
||||
@@ -87,7 +87,7 @@ Y.extend(TOOLBOX, Y.Base, {
|
||||
* @param callbacksuccess Call back on success
|
||||
* @return response responseText field from responce
|
||||
*/
|
||||
send_request : function(data, statusspinner, callbacksuccess) {
|
||||
send_request: function(data, statusspinner, callbacksuccess) {
|
||||
// Default data structure
|
||||
if (!data) {
|
||||
data = {};
|
||||
@@ -123,12 +123,14 @@ Y.extend(TOOLBOX, Y.Base, {
|
||||
} else if (responsetext.success) {
|
||||
callbacksuccess();
|
||||
}
|
||||
} catch (e) {}
|
||||
} catch (e) {
|
||||
// Ignore.
|
||||
}
|
||||
if (statusspinner) {
|
||||
statusspinner.hide();
|
||||
}
|
||||
},
|
||||
failure : function(tid, response) {
|
||||
failure: function(tid, response) {
|
||||
if (statusspinner) {
|
||||
statusspinner.hide();
|
||||
}
|
||||
@@ -151,18 +153,18 @@ Y.extend(TOOLBOX, Y.Base, {
|
||||
* @param element The <li> element to determine a module-id number for
|
||||
* @return string The module ID
|
||||
*/
|
||||
get_element_id : function(element) {
|
||||
get_element_id: function(element) {
|
||||
return element.get('id').replace(CSS.DEVICEIDPREFIX, '');
|
||||
}
|
||||
},
|
||||
{
|
||||
NAME : 'device-toolbox',
|
||||
ATTRS : {
|
||||
ajaxurl : {
|
||||
'value' : 0
|
||||
NAME: 'device-toolbox',
|
||||
ATTRS: {
|
||||
ajaxurl: {
|
||||
'value': 0
|
||||
},
|
||||
config : {
|
||||
'value' : 0
|
||||
config: {
|
||||
'value': 0
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -179,7 +181,7 @@ Y.extend(DEVICETOOLBOX, TOOLBOX, {
|
||||
*
|
||||
* Updates all span.commands with relevant handlers and other required changes
|
||||
*/
|
||||
initializer : function() {
|
||||
initializer: function() {
|
||||
this.setup_for_device();
|
||||
},
|
||||
/**
|
||||
@@ -189,19 +191,19 @@ Y.extend(DEVICETOOLBOX, TOOLBOX, {
|
||||
* @param baseselector The selector to limit scope to
|
||||
* @return void
|
||||
*/
|
||||
setup_for_device : function(baseselector) {
|
||||
setup_for_device: function(baseselector) {
|
||||
if (!baseselector) {
|
||||
baseselector = CSS.AIRNOTIFIERCONTENT;
|
||||
}
|
||||
|
||||
Y.all(baseselector).each(this._setup_for_device, this);
|
||||
},
|
||||
_setup_for_device : function(toolboxtarget) {
|
||||
_setup_for_device: function(toolboxtarget) {
|
||||
|
||||
// Show/Hide.
|
||||
this.replace_button(toolboxtarget, CSS.HIDEDEVICE, this.toggle_hide_device);
|
||||
},
|
||||
toggle_hide_device : function(e) {
|
||||
toggle_hide_device: function(e) {
|
||||
// Prevent the default button action.
|
||||
e.preventDefault();
|
||||
|
||||
@@ -220,9 +222,9 @@ Y.extend(DEVICETOOLBOX, TOOLBOX, {
|
||||
|
||||
// Send the request.
|
||||
var data = {
|
||||
'field' : 'enable',
|
||||
'enable' : value,
|
||||
'id' : this.get_element_id(element)
|
||||
'field': 'enable',
|
||||
'enable': value,
|
||||
'id': this.get_element_id(element)
|
||||
};
|
||||
var spinner = M.util.add_spinner(Y, element);
|
||||
|
||||
@@ -233,8 +235,8 @@ Y.extend(DEVICETOOLBOX, TOOLBOX, {
|
||||
this.send_request(data, spinner, callback);
|
||||
}
|
||||
}, {
|
||||
NAME : 'message-device-toolbox',
|
||||
ATTRS : {
|
||||
NAME: 'message-device-toolbox',
|
||||
ATTRS: {
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
+5
-5
@@ -411,10 +411,10 @@ Y.namespace('M.core_message.messenger').sendMessage = Y.extend(SENDMSGDIALOG, M.
|
||||
|
||||
Y.use('moodle-core-notification-confirm', function() {
|
||||
var confirm = new M.core.confirm({
|
||||
title : M.util.get_string('confirm', 'moodle'),
|
||||
question : M.util.get_string('changesmadereallygoaway', 'moodle'),
|
||||
yesLabel : M.util.get_string('confirm', 'moodle'),
|
||||
noLabel : M.util.get_string('cancel', 'moodle')
|
||||
title: M.util.get_string('confirm', 'moodle'),
|
||||
question: M.util.get_string('changesmadereallygoaway', 'moodle'),
|
||||
yesLabel: M.util.get_string('confirm', 'moodle'),
|
||||
noLabel: M.util.get_string('cancel', 'moodle')
|
||||
});
|
||||
confirm.on('complete-yes', function() {
|
||||
M.core_formchangechecker.reset_form_dirty_state();
|
||||
@@ -617,7 +617,7 @@ Y.Base.modifyAttrs(Y.namespace('M.core_message.messenger.sendMessage'), {
|
||||
* @default false
|
||||
*/
|
||||
center: {
|
||||
value : true
|
||||
value: true
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
+5
-5
@@ -411,10 +411,10 @@ Y.namespace('M.core_message.messenger').sendMessage = Y.extend(SENDMSGDIALOG, M.
|
||||
|
||||
Y.use('moodle-core-notification-confirm', function() {
|
||||
var confirm = new M.core.confirm({
|
||||
title : M.util.get_string('confirm', 'moodle'),
|
||||
question : M.util.get_string('changesmadereallygoaway', 'moodle'),
|
||||
yesLabel : M.util.get_string('confirm', 'moodle'),
|
||||
noLabel : M.util.get_string('cancel', 'moodle')
|
||||
title: M.util.get_string('confirm', 'moodle'),
|
||||
question: M.util.get_string('changesmadereallygoaway', 'moodle'),
|
||||
yesLabel: M.util.get_string('confirm', 'moodle'),
|
||||
noLabel: M.util.get_string('cancel', 'moodle')
|
||||
});
|
||||
confirm.on('complete-yes', function() {
|
||||
M.core_formchangechecker.reset_form_dirty_state();
|
||||
@@ -617,7 +617,7 @@ Y.Base.modifyAttrs(Y.namespace('M.core_message.messenger.sendMessage'), {
|
||||
* @default false
|
||||
*/
|
||||
center: {
|
||||
value : true
|
||||
value: true
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
+293
-281
File diff suppressed because it is too large
Load Diff
+293
-281
File diff suppressed because it is too large
Load Diff
+1
-1
@@ -31,7 +31,7 @@ var CSS = {
|
||||
|
||||
// Loop through all the children of this container and turn
|
||||
// every odd node to a link to open/close the following panel.
|
||||
this.get('children').each(function () {
|
||||
this.get('children').each(function() {
|
||||
if (link) {
|
||||
COUNT++;
|
||||
// First convert the link to an anchor.
|
||||
|
||||
+1
-1
@@ -31,7 +31,7 @@ var CSS = {
|
||||
|
||||
// Loop through all the children of this container and turn
|
||||
// every odd node to a link to open/close the following panel.
|
||||
this.get('children').each(function () {
|
||||
this.get('children').each(function() {
|
||||
if (link) {
|
||||
COUNT++;
|
||||
// First convert the link to an anchor.
|
||||
|
||||
+4
-4
@@ -201,7 +201,7 @@ M.mod_quiz.autosave = {
|
||||
this.delay = delay * 1000;
|
||||
|
||||
this.form.delegate('valuechange', this.value_changed, this.SELECTORS.VALUE_CHANGE_ELEMENTS, this);
|
||||
this.form.delegate('change', this.value_changed, this.SELECTORS.CHANGE_ELEMENTS, this);
|
||||
this.form.delegate('change', this.value_changed, this.SELECTORS.CHANGE_ELEMENTS, this);
|
||||
this.form.on('submit', this.stop_autosaving, this);
|
||||
|
||||
this.init_tinymce(this.TINYMCE_DETECTION_REPEATS);
|
||||
@@ -212,7 +212,7 @@ M.mod_quiz.autosave = {
|
||||
|
||||
save_hidden_field_values: function() {
|
||||
this.form.all(this.SELECTORS.HIDDEN_INPUTS).each(function(hidden) {
|
||||
var name = hidden.get('name');
|
||||
var name = hidden.get('name');
|
||||
if (!name) {
|
||||
return;
|
||||
}
|
||||
@@ -227,7 +227,7 @@ M.mod_quiz.autosave = {
|
||||
|
||||
detect_hidden_field_changes: function() {
|
||||
this.form.all(this.SELECTORS.HIDDEN_INPUTS).each(function(hidden) {
|
||||
var name = hidden.get('name'),
|
||||
var name = hidden.get('name'),
|
||||
value = hidden.get('value');
|
||||
if (!name) {
|
||||
return;
|
||||
@@ -388,7 +388,7 @@ M.mod_quiz.autosave = {
|
||||
|
||||
is_time_nearly_over: function() {
|
||||
return M.mod_quiz.timer && M.mod_quiz.timer.endtime &&
|
||||
(new Date().getTime() + 2*this.delay) > M.mod_quiz.timer.endtime;
|
||||
(new Date().getTime() + 2 * this.delay) > M.mod_quiz.timer.endtime;
|
||||
},
|
||||
|
||||
stop_autosaving: function() {
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user