MDL-53172 javascript: Fix coding style violations
This commit is contained in:
committed by
Marina Glancy
parent
38cf8b6661
commit
490934a4ed
+1
-1
@@ -1 +1 @@
|
||||
define(["jquery","core/ajax","core/templates","core/notification","core/str","core/config","core/url"],function(a,b,c,d,e,f,g){return a("body").on("click keypress","[data-inplaceeditable] [data-inplaceeditablelink]",function(h){if("keypress"!==h.type||13===h.keyCode){h.stopImmediatePropagation(),h.preventDefault();var i=a(this),j=i.closest("[data-inplaceeditable]"),k=function(b){b.addClass("updating");var c=b.find("img.spinner");c.length?c.show():(c=a("<img/>").attr("src",g.imageUrl("i/loading_small")).addClass("spinner").addClass("iconsmall"),b.append(c))},l=function(a){a.removeClass("updating"),a.find("img.spinner").hide()},m=function(e,f){k(e);var g=b.call([{methodname:"core_update_inplace_editable",args:{itemid:e.attr("data-itemid"),component:e.attr("data-component"),itemtype:e.attr("data-itemtype"),value:f}}],!0);a.when.apply(a,g).done(function(b){var d=e.attr("data-value");c.render("core/inplace_editable",b).done(function(f,g){var h=a(f);c.replaceNode(e,h,g),h.find("[data-inplaceeditablelink]").focus(),h.trigger({type:"updated",ajaxreturn:b,oldvalue:d})})}).fail(function(b){var c=a.Event("updatefailed",{exception:b,newvalue:f});l(e),e.trigger(c),c.isDefaultPrevented()||d.exception(b)})},n=function(a){a.find("input").off(),a.find("select").off(),a.html(a.attr("data-oldcontent")),a.removeAttr("data-oldcontent"),a.removeClass("inplaceeditingon"),a.find("[data-inplaceeditablelink]").focus()},o=function(){a("span.inplaceeditable.inplaceeditingon").each(function(){n(a(this))})},p=function(b,c){for(var d=b,e=0;c>e;e++)d+=String(Math.floor(10*Math.random()));return 0===a("#"+d).length?d:p(b,c)},q=function(b){e.get_string("edittitleinstructions").done(function(c){var d=a('<span class="editinstructions">'+c+"</span>").attr("id",p("id_editinstructions_",20)),e=a('<input type="text"/>').attr("id",p("id_inplacevalue_",20)).attr("value",b.attr("data-value")).attr("aria-describedby",d.attr("id")),g=a('<label class="accesshide">'+j.attr("data-editlabel")+"</label>").attr("for",e.attr("id"));b.html("").append(d).append(g).append(e),e.focus(),e.select(),e.on("keyup keypress focusout",function(a){if(!f.behatsiterunning||"focusout"!==a.type){if("keypress"===a.type&&13===a.keyCode){var c=e.val();n(b),m(b,c)}("keyup"===a.type&&27===a.keyCode||"focusout"===a.type)&&n(b)}})})},r=function(a,b){n(a),m(a,b)},s=function(b,c){var d=a("<select></select>").attr("id",p("id_inplacevalue_",20)),e=a('<label class="accesshide">'+j.attr("data-editlabel")+"</label>").attr("for",d.attr("id"));for(var g in c)d.append(a("<option>").attr("value",g).html(c[g]));d.val(b.attr("data-value")),b.html("").append(e).append(d),d.focus(),d.select(),d.on("keyup change focusout",function(a){if(!f.behatsiterunning||"focusout"!==a.type){if("change"===a.type){var c=d.val();n(b),m(b,c)}("keyup"===a.type&&27===a.keyCode||"focusout"===a.type)&&n(b)}})},t=function(b){b.addClass("inplaceeditingon"),b.attr("data-oldcontent",b.html());var c=b.attr("data-type"),d=b.attr("data-options");"toggle"===c?r(b,d):"select"===c?s(b,a.parseJSON(d)):q(b)};o(),t(j)}}),{}});
|
||||
define(["jquery","core/ajax","core/templates","core/notification","core/str","core/config","core/url"],function(a,b,c,d,e,f,g){return a("body").on("click keypress","[data-inplaceeditable] [data-inplaceeditablelink]",function(h){if("keypress"!==h.type||13===h.keyCode){h.stopImmediatePropagation(),h.preventDefault();var i=a(this),j=i.closest("[data-inplaceeditable]"),k=function(b){b.addClass("updating");var c=b.find("img.spinner");c.length?c.show():(c=a("<img/>").attr("src",g.imageUrl("i/loading_small")).addClass("spinner").addClass("smallicon"),b.append(c))},l=function(a){a.removeClass("updating"),a.find("img.spinner").hide()},m=function(e,f){k(e),b.call([{methodname:"core_update_inplace_editable",args:{itemid:e.attr("data-itemid"),component:e.attr("data-component"),itemtype:e.attr("data-itemtype"),value:f},done:function(b){var d=e.attr("data-value");c.render("core/inplace_editable",b).done(function(f,g){var h=a(f);c.replaceNode(e,h,g),h.find("[data-inplaceeditablelink]").focus(),h.trigger({type:"updated",ajaxreturn:b,oldvalue:d})})},fail:function(b){var c=a.Event("updatefailed",{exception:b,newvalue:f});l(e),e.trigger(c),c.isDefaultPrevented()||d.exception(b)}}],!0)},n=function(a){a.find("input").off(),a.find("select").off(),a.html(a.attr("data-oldcontent")),a.removeAttr("data-oldcontent"),a.removeClass("inplaceeditingon"),a.find("[data-inplaceeditablelink]").focus()},o=function(){a("span.inplaceeditable.inplaceeditingon").each(function(){n(a(this))})},p=function(b,c){var d,e=b;for(d=0;c>d;d++)e+=String(Math.floor(10*Math.random()));return 0===a("#"+e).length?e:p(b,c)},q=function(b){e.get_string("edittitleinstructions").done(function(c){var d=a('<span class="editinstructions">'+c+"</span>").attr("id",p("id_editinstructions_",20)),e=a('<input type="text"/>').attr("id",p("id_inplacevalue_",20)).attr("value",b.attr("data-value")).attr("aria-describedby",d.attr("id")),g=a('<label class="accesshide">'+j.attr("data-editlabel")+"</label>").attr("for",e.attr("id"));b.html("").append(d).append(g).append(e),e.focus(),e.select(),e.on("keyup keypress focusout",function(a){if(!f.behatsiterunning||"focusout"!==a.type){if("keypress"===a.type&&13===a.keyCode){var c=e.val();n(b),m(b,c)}("keyup"===a.type&&27===a.keyCode||"focusout"===a.type)&&n(b)}})})},r=function(a,b){n(a),m(a,b)},s=function(b,c){var d,e=a("<select></select>").attr("id",p("id_inplacevalue_",20)),g=a('<label class="accesshide">'+j.attr("data-editlabel")+"</label>").attr("for",e.attr("id"));for(d in c)e.append(a("<option>").attr("value",d).html(c[d]));e.val(b.attr("data-value")),b.html("").append(g).append(e),e.focus(),e.select(),e.on("keyup change focusout",function(a){if(!f.behatsiterunning||"focusout"!==a.type){if("change"===a.type){var c=e.val();n(b),m(b,c)}("keyup"===a.type&&27===a.keyCode||"focusout"===a.type)&&n(b)}})},t=function(b){b.addClass("inplaceeditingon"),b.attr("data-oldcontent",b.html());var c=b.attr("data-type"),d=b.attr("data-options");"toggle"===c?r(b,d):"select"===c?s(b,a.parseJSON(d)):q(b)};o(),t(j)}}),{}});
|
||||
@@ -40,53 +40,60 @@ define(['jquery', 'core/ajax', 'core/templates', 'core/notification', 'core/str'
|
||||
var target = $(this),
|
||||
mainelement = target.closest('[data-inplaceeditable]');
|
||||
|
||||
var add_spinner = function(element) {
|
||||
var addSpinner = function(element) {
|
||||
element.addClass('updating');
|
||||
var spinner = element.find('img.spinner');
|
||||
if (spinner.length) {
|
||||
spinner.show();
|
||||
} else {
|
||||
spinner = $('<img/>').attr('src', url.imageUrl('i/loading_small')).
|
||||
addClass('spinner').addClass('iconsmall');
|
||||
spinner = $('<img/>')
|
||||
.attr('src', url.imageUrl('i/loading_small'))
|
||||
.addClass('spinner').addClass('smallicon')
|
||||
;
|
||||
element.append(spinner);
|
||||
}
|
||||
};
|
||||
|
||||
var remove_spinner = function(element) {
|
||||
var removeSpinner = function(element) {
|
||||
element.removeClass('updating');
|
||||
element.find('img.spinner').hide();
|
||||
};
|
||||
|
||||
var update_value = function(mainelement, value) {
|
||||
add_spinner(mainelement);
|
||||
var promises = ajax.call([{
|
||||
methodname: 'core_update_inplace_editable',
|
||||
args: { itemid : mainelement.attr('data-itemid'),
|
||||
component : mainelement.attr('data-component') ,
|
||||
itemtype : mainelement.attr('data-itemtype') ,
|
||||
value : value }
|
||||
}], true);
|
||||
|
||||
$.when.apply($, promises)
|
||||
.done( function(data) {
|
||||
var oldvalue = mainelement.attr('data-value');
|
||||
templates.render('core/inplace_editable', data).done(function(html, js) {
|
||||
var newelement = $(html);
|
||||
templates.replaceNode(mainelement, newelement, js);
|
||||
newelement.find('[data-inplaceeditablelink]').focus();
|
||||
newelement.trigger({type: 'updated', ajaxreturn: data, oldvalue: oldvalue});
|
||||
});
|
||||
}).fail(function(ex) {
|
||||
var e = $.Event('updatefailed', { exception: ex, newvalue: value });
|
||||
remove_spinner(mainelement);
|
||||
mainelement.trigger(e);
|
||||
if (!e.isDefaultPrevented()) {
|
||||
notification.exception(ex);
|
||||
var updateValue = function(mainelement, value) {
|
||||
addSpinner(mainelement);
|
||||
ajax
|
||||
.call([{
|
||||
methodname: 'core_update_inplace_editable',
|
||||
args: {
|
||||
itemid: mainelement.attr('data-itemid'),
|
||||
component: mainelement.attr('data-component'),
|
||||
itemtype: mainelement.attr('data-itemtype'),
|
||||
value: value
|
||||
},
|
||||
done: function(data) {
|
||||
var oldvalue = mainelement.attr('data-value');
|
||||
templates.render('core/inplace_editable', data).done(function(html, js) {
|
||||
var newelement = $(html);
|
||||
templates.replaceNode(mainelement, newelement, js);
|
||||
newelement.find('[data-inplaceeditablelink]').focus();
|
||||
newelement.trigger({type: 'updated', ajaxreturn: data, oldvalue: oldvalue});
|
||||
});
|
||||
},
|
||||
fail: function(ex) {
|
||||
var e = $.Event('updatefailed', {
|
||||
exception: ex,
|
||||
newvalue: value
|
||||
});
|
||||
removeSpinner(mainelement);
|
||||
mainelement.trigger(e);
|
||||
if (!e.isDefaultPrevented()) {
|
||||
notification.exception(ex);
|
||||
}
|
||||
}
|
||||
});
|
||||
}], true);
|
||||
};
|
||||
|
||||
var turn_editing_off = function(el) {
|
||||
var turnEditingOff = function(el) {
|
||||
el.find('input').off();
|
||||
el.find('select').off();
|
||||
el.html(el.attr('data-oldcontent'));
|
||||
@@ -95,30 +102,31 @@ define(['jquery', 'core/ajax', 'core/templates', 'core/notification', 'core/str'
|
||||
el.find('[data-inplaceeditablelink]').focus();
|
||||
};
|
||||
|
||||
var turn_editing_off_everywhere = function() {
|
||||
var turnEditingOffEverywhere = function() {
|
||||
$('span.inplaceeditable.inplaceeditingon').each(function() {
|
||||
turn_editing_off($( this));
|
||||
turnEditingOff($(this));
|
||||
});
|
||||
};
|
||||
|
||||
var unique_id = function(prefix, idlength) {
|
||||
var uniqid = prefix;
|
||||
for (var i = 0; i < idlength; i++) {
|
||||
var uniqueId = function(prefix, idlength) {
|
||||
var uniqid = prefix,
|
||||
i;
|
||||
for (i = 0; i < idlength; i++) {
|
||||
uniqid += String(Math.floor(Math.random() * 10));
|
||||
}
|
||||
// Make sure this ID is not already taken by an existing element.
|
||||
if ($("#" + uniqid).length === 0) {
|
||||
return uniqid;
|
||||
}
|
||||
return unique_id(prefix, idlength);
|
||||
return uniqueId(prefix, idlength);
|
||||
};
|
||||
|
||||
var turn_editing_on_text = function(el) {
|
||||
var turnEditingOnText = function(el) {
|
||||
str.get_string('edittitleinstructions').done(function(s) {
|
||||
var instr = $('<span class="editinstructions">' + s + '</span>').
|
||||
attr('id', unique_id('id_editinstructions_', 20)),
|
||||
attr('id', uniqueId('id_editinstructions_', 20)),
|
||||
inputelement = $('<input type="text"/>').
|
||||
attr('id', unique_id('id_inplacevalue_', 20)).
|
||||
attr('id', uniqueId('id_inplacevalue_', 20)).
|
||||
attr('value', el.attr('data-value')).
|
||||
attr('aria-describedby', instr.attr('id')),
|
||||
lbl = $('<label class="accesshide">' + mainelement.attr('data-editlabel') + '</label>').
|
||||
@@ -136,32 +144,38 @@ define(['jquery', 'core/ajax', 'core/templates', 'core/notification', 'core/str'
|
||||
// We need 'keypress' event for Enter because keyup/keydown would catch Enter that was
|
||||
// pressed in other fields.
|
||||
var val = inputelement.val();
|
||||
turn_editing_off(el);
|
||||
update_value(el, val);
|
||||
turnEditingOff(el);
|
||||
updateValue(el, val);
|
||||
}
|
||||
if ((e.type === 'keyup' && e.keyCode === 27) || e.type === 'focusout') {
|
||||
// We need 'keyup' event for Escape because keypress does not work with Escape.
|
||||
turn_editing_off(el);
|
||||
turnEditingOff(el);
|
||||
}
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
var turn_editing_on_toggle = function(el, newvalue) {
|
||||
turn_editing_off(el);
|
||||
update_value(el, newvalue);
|
||||
var turnEditingOnToggle = function(el, newvalue) {
|
||||
turnEditingOff(el);
|
||||
updateValue(el, newvalue);
|
||||
};
|
||||
|
||||
var turn_editing_on_select = function(el, options) {
|
||||
var inputelement = $('<select></select>').
|
||||
attr('id', unique_id('id_inplacevalue_', 20)),
|
||||
lbl = $('<label class="accesshide">' + mainelement.attr('data-editlabel') + '</label>').
|
||||
attr('for', inputelement.attr('id'));
|
||||
for (var i in options) {
|
||||
inputelement.append($('<option>').attr('value', i).html(options[i]));
|
||||
var turnEditingOnSelect = function(el, options) {
|
||||
var i,
|
||||
inputelement = $('<select></select>')
|
||||
.attr('id', uniqueId('id_inplacevalue_', 20)),
|
||||
lbl = $('<label class="accesshide">' + mainelement.attr('data-editlabel') + '</label>')
|
||||
.attr('for', inputelement.attr('id'));
|
||||
for (i in options) {
|
||||
inputelement
|
||||
.append($('<option>')
|
||||
.attr('value', i)
|
||||
.html(options[i]));
|
||||
}
|
||||
inputelement.val(el.attr('data-value'));
|
||||
el.html('').append(lbl).append(inputelement);
|
||||
el.html('')
|
||||
.append(lbl)
|
||||
.append(inputelement);
|
||||
|
||||
inputelement.focus();
|
||||
inputelement.select();
|
||||
@@ -172,17 +186,17 @@ define(['jquery', 'core/ajax', 'core/templates', 'core/notification', 'core/str'
|
||||
}
|
||||
if (e.type === 'change') {
|
||||
var val = inputelement.val();
|
||||
turn_editing_off(el);
|
||||
update_value(el, val);
|
||||
turnEditingOff(el);
|
||||
updateValue(el, val);
|
||||
}
|
||||
if ((e.type === 'keyup' && e.keyCode === 27) || e.type === 'focusout') {
|
||||
// We need 'keyup' event for Escape because keypress does not work with Escape.
|
||||
turn_editing_off(el);
|
||||
turnEditingOff(el);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
var turn_editing_on = function(el) {
|
||||
var turnEditingOn = function(el) {
|
||||
el.addClass('inplaceeditingon');
|
||||
el.attr('data-oldcontent', el.html());
|
||||
|
||||
@@ -190,17 +204,17 @@ define(['jquery', 'core/ajax', 'core/templates', 'core/notification', 'core/str'
|
||||
var options = el.attr('data-options');
|
||||
|
||||
if (type === 'toggle') {
|
||||
turn_editing_on_toggle(el, options);
|
||||
turnEditingOnToggle(el, options);
|
||||
} else if (type === 'select') {
|
||||
turn_editing_on_select(el, $.parseJSON(options));
|
||||
turnEditingOnSelect(el, $.parseJSON(options));
|
||||
} else {
|
||||
turn_editing_on_text(el);
|
||||
turnEditingOnText(el);
|
||||
}
|
||||
};
|
||||
|
||||
// Turn editing on for the current element and register handler for Enter/Esc keys.
|
||||
turn_editing_off_everywhere();
|
||||
turn_editing_on(mainelement);
|
||||
turnEditingOffEverywhere();
|
||||
turnEditingOn(mainelement);
|
||||
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user