MDL-65509 javascript: Make core dialogues translatable

This commit is contained in:
Shamim Rezaie 2019-05-07 19:32:44 +08:00
parent 383aec8a01
commit dc468ac523
10 changed files with 65 additions and 35 deletions

View File

@ -31,11 +31,13 @@ $string['cannotinitpage'] = 'Cannot fully initialize page: invalid {$a->name} id
$string['cannotsetuptable'] = '{$a} tables could NOT be set up successfully!';
$string['codingerror'] = 'Coding error detected, it must be fixed by a programmer: {$a}';
$string['configmoodle'] = 'Moodle has not been configured yet. You need to edit config.php first.';
$string['debuginfo'] = 'Debug info';
$string['erroroccur'] = 'An error has occurred during this process';
$string['invalidarraysize'] = 'Incorrect size of arrays in params of {$a}';
$string['invalideventdata'] = 'Incorrect event data submitted: {$a}';
$string['invalidparameter'] = 'Invalid parameter value detected';
$string['invalidresponse'] = 'Invalid response value detected';
$string['line'] = 'Line';
$string['missingconfigversion'] = 'Config table does not contain version, can not continue, sorry.';
$string['modulenotexist'] = '{$a} module doesn\'t exist';
$string['morethanonerecordinfetch'] = 'Found more than one record in fetch() !';
@ -51,5 +53,6 @@ $string['phpvaroff'] = 'The PHP server variable \'{$a->name}\' should be Off - {
$string['phpvaron'] = 'The PHP server variable \'{$a->name}\' is not turned On - {$a->link}';
$string['sessionmissing'] = '{$a} object missing from session';
$string['sqlrelyonobsoletetable'] = 'This SQL relies on obsolete table(s): {$a}! Your code must be fixed by a developer.';
$string['stacktrace'] = 'Stack trace';
$string['withoutversion'] = 'Main version.php file is missing, not readable or broken.';
$string['xmlizeunavailable'] = 'xmlize functions are not available';

View File

@ -1638,7 +1638,16 @@ class page_requirements_manager {
'areyousure',
'closebuttontitle',
'unknownerror',
'error',
'file',
'url',
), 'moodle');
$this->strings_for_js(array(
'debuginfo',
'line',
'stacktrace',
), 'debug');
$this->string_for_js('labelsep', 'langconfig');
if (!empty($this->stringsforjs)) {
$strings = array();
foreach ($this->stringsforjs as $component=>$v) {

View File

@ -50,7 +50,7 @@ var AJAXEXCEPTION_NAME = 'Moodle AJAX exception',
* @extends M.core.dialogue
*/
AJAXEXCEPTION = function(config) {
config.name = config.name || 'Error';
config.name = config.name || M.util.get_string('error', 'moodle');
config.closeButton = true;
AJAXEXCEPTION.superclass.constructor.apply(this, [config]);
};
@ -59,19 +59,22 @@ Y.extend(AJAXEXCEPTION, M.core.notification.info, {
initializer: function(config) {
var content,
self = this,
delay = this.get('hideTimeoutDelay');
delay = this.get('hideTimeoutDelay'),
labelsep = M.util.get_string('labelsep', 'langconfig');
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>',
Y.WidgetStdMod.REPLACE);
content = Y.Node.create('<div class="moodle-ajaxexception" data-rel="fatalerror"></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> ' +
.append(Y.Node.create('<div class="moodle-exception-param hidden param-debuginfo"><label>' +
M.util.get_string('url', 'moodle') + labelsep + '</label> ' +
this.get('reproductionlink') + '</div>'))
.append(Y.Node.create('<div class="moodle-exception-param hidden param-debuginfo"><label>Debug info:</label> ' +
.append(Y.Node.create('<div class="moodle-exception-param hidden param-debuginfo"><label>' +
M.util.get_string('debuginfo', 'debug') + labelsep + '</label> ' +
Y.Escape.html(this.get('debuginfo')) + '</div>'))
.append(Y.Node.create('<div class="moodle-exception-param hidden param-stacktrace">' +
'<label>Stack trace:</label> <pre>' +
.append(Y.Node.create('<div class="moodle-exception-param hidden param-stacktrace"><label>' +
M.util.get_string('stacktrace', 'debug') + labelsep + '</label> <pre>' +
Y.Escape.html(this.get('stacktrace')) + '</pre></div>'));
if (M.cfg.developerdebug) {
content.all('.moodle-exception-param').removeClass('hidden');

View File

@ -1 +1 @@
YUI.add("moodle-core-notification-ajaxexception",function(e,t){var n,r,i,s,o,u,a;n="moodle-dialogue",r="notificationBase",i="yesLabel",s="noLabel",o="title",u="question",a={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"},M.core=M.core||{};var f="Moodle AJAX exception",l;l=function(e){e.name=e.name||"Error",e.closeButton=!0,l.superclass.constructor.apply(this,[e])},e.extend(l,M.core.notification.info,{_keypress:null,initializer:function(t){var n,i=this,s=this.get("hideTimeoutDelay");this.get(r).addClass("moodle-dialogue-exception"),this.setStdModContent(e.WidgetStdMod.HEADER,'<h1 id="moodle-dialogue-'+this.get("COUNT")+'-header-text">'+e.Escape.html(t.name)+"</h1>",e.WidgetStdMod.REPLACE),n=e.Node.create('<div class="moodle-ajaxexception" data-rel="fatalerror"></div>').append(e.Node.create('<div class="moodle-exception-message">'+e.Escape.html(this.get("error"))+"</div>")).append(e.Node.create('<div class="moodle-exception-param hidden param-debuginfo"><label>URL:</label> '+this.get("reproductionlink")+"</div>")).append(e.Node.create('<div class="moodle-exception-param hidden param-debuginfo"><label>Debug info:</label> '+e.Escape.html(this.get("debuginfo"))+"</div>")).append(e.Node.create('<div class="moodle-exception-param hidden param-stacktrace"><label>Stack trace:</label> <pre>'+e.Escape.html(this.get("stacktrace"))+"</pre></div>")),M.cfg.developerdebug&&n.all(".moodle-exception-param").removeClass("hidden"),this.setStdModContent(e.WidgetStdMod.BODY,n,e.WidgetStdMod.REPLACE),s&&(this._hideTimeout=setTimeout(function(){i.hide()},s)),this.after("visibleChange",this.visibilityChanged,this),this._keypress=e.on("key",this.hide,window,"down:13, 27",this),this.centerDialogue()},visibilityChanged:function(e){if(e.attrName==="visible"&&e.prevVal&&!e.newVal){var t=this;this._keypress.detach(),setTimeout(function(){t.destroy()},1e3)}}},{NAME:f,CSS_PREFIX:n,ATTRS:{error:{validator:e.Lang.isString,value:M.util.get_string("unknownerror","moodle")},debuginfo:{value:null},stacktrace:{value:null},reproductionlink:{setter:function(t){return t!==null&&(t=e.Escape.html(t),t='<a href="'+t+'">'+t.replace(M.cfg.wwwroot,"")+"</a>"),t},value:null},hideTimeoutDelay:{validator:e.Lang.isNumber,value:null}}}),M.core.ajaxException=l},"@VERSION@",{requires:["moodle-core-notification-dialogue"]});
YUI.add("moodle-core-notification-ajaxexception",function(e,t){var n,r,i,s,o,u,a;n="moodle-dialogue",r="notificationBase",i="yesLabel",s="noLabel",o="title",u="question",a={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"},M.core=M.core||{};var f="Moodle AJAX exception",l;l=function(e){e.name=e.name||M.util.get_string("error","moodle"),e.closeButton=!0,l.superclass.constructor.apply(this,[e])},e.extend(l,M.core.notification.info,{_keypress:null,initializer:function(t){var n,i=this,s=this.get("hideTimeoutDelay"),o=M.util.get_string("labelsep","langconfig");this.get(r).addClass("moodle-dialogue-exception"),this.setStdModContent(e.WidgetStdMod.HEADER,'<h1 id="moodle-dialogue-'+this.get("COUNT")+'-header-text">'+e.Escape.html(t.name)+"</h1>",e.WidgetStdMod.REPLACE),n=e.Node.create('<div class="moodle-ajaxexception" data-rel="fatalerror"></div>').append(e.Node.create('<div class="moodle-exception-message">'+e.Escape.html(this.get("error"))+"</div>")).append(e.Node.create('<div class="moodle-exception-param hidden param-debuginfo"><label>'+M.util.get_string("url","moodle")+o+"</label> "+this.get("reproductionlink")+"</div>")).append(e.Node.create('<div class="moodle-exception-param hidden param-debuginfo"><label>'+M.util.get_string("debuginfo","debug")+o+"</label> "+e.Escape.html(this.get("debuginfo"))+"</div>")).append(e.Node.create('<div class="moodle-exception-param hidden param-stacktrace"><label>'+M.util.get_string("stacktrace","debug")+o+"</label> <pre>"+e.Escape.html(this.get("stacktrace"))+"</pre></div>")),M.cfg.developerdebug&&n.all(".moodle-exception-param").removeClass("hidden"),this.setStdModContent(e.WidgetStdMod.BODY,n,e.WidgetStdMod.REPLACE),s&&(this._hideTimeout=setTimeout(function(){i.hide()},s)),this.after("visibleChange",this.visibilityChanged,this),this._keypress=e.on("key",this.hide,window,"down:13, 27",this),this.centerDialogue()},visibilityChanged:function(e){if(e.attrName==="visible"&&e.prevVal&&!e.newVal){var t=this;this._keypress.detach(),setTimeout(function(){t.destroy()},1e3)}}},{NAME:f,CSS_PREFIX:n,ATTRS:{error:{validator:e.Lang.isString,value:M.util.get_string("unknownerror","moodle")},debuginfo:{value:null},stacktrace:{value:null},reproductionlink:{setter:function(t){return t!==null&&(t=e.Escape.html(t),t='<a href="'+t+'">'+t.replace(M.cfg.wwwroot,"")+"</a>"),t},value:null},hideTimeoutDelay:{validator:e.Lang.isNumber,value:null}}}),M.core.ajaxException=l},"@VERSION@",{requires:["moodle-core-notification-dialogue"]});

View File

@ -50,7 +50,7 @@ var AJAXEXCEPTION_NAME = 'Moodle AJAX exception',
* @extends M.core.dialogue
*/
AJAXEXCEPTION = function(config) {
config.name = config.name || 'Error';
config.name = config.name || M.util.get_string('error', 'moodle');
config.closeButton = true;
AJAXEXCEPTION.superclass.constructor.apply(this, [config]);
};
@ -59,19 +59,22 @@ Y.extend(AJAXEXCEPTION, M.core.notification.info, {
initializer: function(config) {
var content,
self = this,
delay = this.get('hideTimeoutDelay');
delay = this.get('hideTimeoutDelay'),
labelsep = M.util.get_string('labelsep', 'langconfig');
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>',
Y.WidgetStdMod.REPLACE);
content = Y.Node.create('<div class="moodle-ajaxexception" data-rel="fatalerror"></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> ' +
.append(Y.Node.create('<div class="moodle-exception-param hidden param-debuginfo"><label>' +
M.util.get_string('url', 'moodle') + labelsep + '</label> ' +
this.get('reproductionlink') + '</div>'))
.append(Y.Node.create('<div class="moodle-exception-param hidden param-debuginfo"><label>Debug info:</label> ' +
.append(Y.Node.create('<div class="moodle-exception-param hidden param-debuginfo"><label>' +
M.util.get_string('debuginfo', 'debug') + labelsep + '</label> ' +
Y.Escape.html(this.get('debuginfo')) + '</div>'))
.append(Y.Node.create('<div class="moodle-exception-param hidden param-stacktrace">' +
'<label>Stack trace:</label> <pre>' +
.append(Y.Node.create('<div class="moodle-exception-param hidden param-stacktrace"><label>' +
M.util.get_string('stacktrace', 'debug') + labelsep + '</label> <pre>' +
Y.Escape.html(this.get('stacktrace')) + '</pre></div>'));
if (M.cfg.developerdebug) {
content.all('.moodle-exception-param').removeClass('hidden');

View File

@ -75,19 +75,22 @@ Y.extend(EXCEPTION, M.core.notification.info, {
initializer: function(config) {
var content,
self = this,
delay = this.get('hideTimeoutDelay');
delay = this.get('hideTimeoutDelay'),
labelsep = M.util.get_string('labelsep', 'langconfig');
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>',
Y.WidgetStdMod.REPLACE);
content = Y.Node.create('<div class="moodle-exception" data-rel="fatalerror"></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> ' +
.append(Y.Node.create('<div class="moodle-exception-param hidden param-filename"><label>' +
M.util.get_string('file', 'moodle') + labelsep + '</label> ' +
Y.Escape.html(this.get('fileName')) + '</div>'))
.append(Y.Node.create('<div class="moodle-exception-param hidden param-linenumber"><label>Line:</label> ' +
.append(Y.Node.create('<div class="moodle-exception-param hidden param-linenumber"><label>' +
M.util.get_string('line', 'debug') + labelsep + '</label> ' +
Y.Escape.html(this.get('lineNumber')) + '</div>'))
.append(Y.Node.create('<div class="moodle-exception-param hidden param-stacktrace">' +
'<label>Stack trace:</label> <pre>' +
.append(Y.Node.create('<div class="moodle-exception-param hidden param-stacktrace"><label>' +
M.util.get_string('stacktrace', 'debug') + labelsep + '</label> <pre>' +
this.get('stack') + '</pre></div>'));
if (M.cfg.developerdebug) {
content.all('.moodle-exception-param').removeClass('hidden');

View File

@ -1 +1 @@
YUI.add("moodle-core-notification-exception",function(e,t){var n,r,i,s,o,u,a;n="moodle-dialogue",r="notificationBase",i="yesLabel",s="noLabel",o="title",u="question",a={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"},M.core=M.core||{};var f="Moodle exception",l;l=function(t){var n=e.mix({},t);n.width=n.width||M.cfg.developerdebug?Math.floor(e.one(document.body).get("winWidth")/3)+"px":null,n.closeButton=!0;var r=["message","name","fileName","lineNumber","stack"];e.Array.each(r,function(e){n[e]=t[e]}),l.superclass.constructor.apply(this,[n])},e.extend(l,M.core.notification.info,{_hideTimeout:null,_keypress:null,initializer:function(t){var n,i=this,s=this.get("hideTimeoutDelay");this.get(r).addClass("moodle-dialogue-exception"),this.setStdModContent(e.WidgetStdMod.HEADER,'<h1 id="moodle-dialogue-'+t.COUNT+'-header-text">'+e.Escape.html(t.name)+"</h1>",e.WidgetStdMod.REPLACE),n=e.Node.create('<div class="moodle-exception" data-rel="fatalerror"></div>').append(e.Node.create('<div class="moodle-exception-message">'+e.Escape.html(this.get("message"))+"</div>")).append(e.Node.create('<div class="moodle-exception-param hidden param-filename"><label>File:</label> '+e.Escape.html(this.get("fileName"))+"</div>")).append(e.Node.create('<div class="moodle-exception-param hidden param-linenumber"><label>Line:</label> '+e.Escape.html(this.get("lineNumber"))+"</div>")).append(e.Node.create('<div class="moodle-exception-param hidden param-stacktrace"><label>Stack trace:</label> <pre>'+this.get("stack")+"</pre></div>")),M.cfg.developerdebug&&n.all(".moodle-exception-param").removeClass("hidden"),this.setStdModContent(e.WidgetStdMod.BODY,n,e.WidgetStdMod.REPLACE),s&&(this._hideTimeout=setTimeout(function(){i.hide()},s)),this.after("visibleChange",this.visibilityChanged,this),this._keypress=e.on("key",this.hide,window,"down:13,27",this),this.centerDialogue()},visibilityChanged:function(e){if(e.attrName==="visible"&&e.prevVal&&!e.newVal){this._keypress&&this._keypress.detach();var t=this;setTimeout(function(){t.destroy()},1e3)}}},{NAME:f,CSS_PREFIX:n,ATTRS:{message:{value:""},name:{value:""},fileName:{value:""},lineNumber:{value:""},stack:{setter:function(t){var n=e.Escape.html(t).split("\n"),r=new RegExp("^(.+)@("+M.cfg.wwwroot+")?(.{0,75}).*:(\\d+)$"),i;for(i in n)n[i]=n[i].replace(r,"<div class='stacktrace-line'>ln: $4</div><div class='stacktrace-file'>$3</div><div class='stacktrace-call'>$1</div>");return n.join("\n")},value:""},hideTimeoutDelay:{validator:e.Lang.isNumber,value:null}}}),M.core.exception=l},"@VERSION@",{requires:["moodle-core-notification-dialogue"]});
YUI.add("moodle-core-notification-exception",function(e,t){var n,r,i,s,o,u,a;n="moodle-dialogue",r="notificationBase",i="yesLabel",s="noLabel",o="title",u="question",a={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"},M.core=M.core||{};var f="Moodle exception",l;l=function(t){var n=e.mix({},t);n.width=n.width||M.cfg.developerdebug?Math.floor(e.one(document.body).get("winWidth")/3)+"px":null,n.closeButton=!0;var r=["message","name","fileName","lineNumber","stack"];e.Array.each(r,function(e){n[e]=t[e]}),l.superclass.constructor.apply(this,[n])},e.extend(l,M.core.notification.info,{_hideTimeout:null,_keypress:null,initializer:function(t){var n,i=this,s=this.get("hideTimeoutDelay"),o=M.util.get_string("labelsep","langconfig");this.get(r).addClass("moodle-dialogue-exception"),this.setStdModContent(e.WidgetStdMod.HEADER,'<h1 id="moodle-dialogue-'+t.COUNT+'-header-text">'+e.Escape.html(t.name)+"</h1>",e.WidgetStdMod.REPLACE),n=e.Node.create('<div class="moodle-exception" data-rel="fatalerror"></div>').append(e.Node.create('<div class="moodle-exception-message">'+e.Escape.html(this.get("message"))+"</div>")).append(e.Node.create('<div class="moodle-exception-param hidden param-filename"><label>'+M.util.get_string("file","moodle")+o+"</label> "+e.Escape.html(this.get("fileName"))+"</div>")).append(e.Node.create('<div class="moodle-exception-param hidden param-linenumber"><label>'+M.util.get_string("line","debug")+o+"</label> "+e.Escape.html(this.get("lineNumber"))+"</div>")).append(e.Node.create('<div class="moodle-exception-param hidden param-stacktrace"><label>'+M.util.get_string("stacktrace","debug")+o+"</label> <pre>"+this.get("stack")+"</pre></div>")),M.cfg.developerdebug&&n.all(".moodle-exception-param").removeClass("hidden"),this.setStdModContent(e.WidgetStdMod.BODY,n,e.WidgetStdMod.REPLACE),s&&(this._hideTimeout=setTimeout(function(){i.hide()},s)),this.after("visibleChange",this.visibilityChanged,this),this._keypress=e.on("key",this.hide,window,"down:13,27",this),this.centerDialogue()},visibilityChanged:function(e){if(e.attrName==="visible"&&e.prevVal&&!e.newVal){this._keypress&&this._keypress.detach();var t=this;setTimeout(function(){t.destroy()},1e3)}}},{NAME:f,CSS_PREFIX:n,ATTRS:{message:{value:""},name:{value:""},fileName:{value:""},lineNumber:{value:""},stack:{setter:function(t){var n=e.Escape.html(t).split("\n"),r=new RegExp("^(.+)@("+M.cfg.wwwroot+")?(.{0,75}).*:(\\d+)$"),i;for(i in n)n[i]=n[i].replace(r,"<div class='stacktrace-line'>ln: $4</div><div class='stacktrace-file'>$3</div><div class='stacktrace-call'>$1</div>");return n.join("\n")},value:""},hideTimeoutDelay:{validator:e.Lang.isNumber,value:null}}}),M.core.exception=l},"@VERSION@",{requires:["moodle-core-notification-dialogue"]});

View File

@ -75,19 +75,22 @@ Y.extend(EXCEPTION, M.core.notification.info, {
initializer: function(config) {
var content,
self = this,
delay = this.get('hideTimeoutDelay');
delay = this.get('hideTimeoutDelay'),
labelsep = M.util.get_string('labelsep', 'langconfig');
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>',
Y.WidgetStdMod.REPLACE);
content = Y.Node.create('<div class="moodle-exception" data-rel="fatalerror"></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> ' +
.append(Y.Node.create('<div class="moodle-exception-param hidden param-filename"><label>' +
M.util.get_string('file', 'moodle') + labelsep + '</label> ' +
Y.Escape.html(this.get('fileName')) + '</div>'))
.append(Y.Node.create('<div class="moodle-exception-param hidden param-linenumber"><label>Line:</label> ' +
.append(Y.Node.create('<div class="moodle-exception-param hidden param-linenumber"><label>' +
M.util.get_string('line', 'debug') + labelsep + '</label> ' +
Y.Escape.html(this.get('lineNumber')) + '</div>'))
.append(Y.Node.create('<div class="moodle-exception-param hidden param-stacktrace">' +
'<label>Stack trace:</label> <pre>' +
.append(Y.Node.create('<div class="moodle-exception-param hidden param-stacktrace"><label>' +
M.util.get_string('stacktrace', 'debug') + labelsep + '</label> <pre>' +
this.get('stack') + '</pre></div>'));
if (M.cfg.developerdebug) {
content.all('.moodle-exception-param').removeClass('hidden');

View File

@ -20,7 +20,7 @@ var AJAXEXCEPTION_NAME = 'Moodle AJAX exception',
* @extends M.core.dialogue
*/
AJAXEXCEPTION = function(config) {
config.name = config.name || 'Error';
config.name = config.name || M.util.get_string('error', 'moodle');
config.closeButton = true;
AJAXEXCEPTION.superclass.constructor.apply(this, [config]);
};
@ -29,19 +29,22 @@ Y.extend(AJAXEXCEPTION, M.core.notification.info, {
initializer: function(config) {
var content,
self = this,
delay = this.get('hideTimeoutDelay');
delay = this.get('hideTimeoutDelay'),
labelsep = M.util.get_string('labelsep', 'langconfig');
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>',
Y.WidgetStdMod.REPLACE);
content = Y.Node.create('<div class="moodle-ajaxexception" data-rel="fatalerror"></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> ' +
.append(Y.Node.create('<div class="moodle-exception-param hidden param-debuginfo"><label>' +
M.util.get_string('url', 'moodle') + labelsep + '</label> ' +
this.get('reproductionlink') + '</div>'))
.append(Y.Node.create('<div class="moodle-exception-param hidden param-debuginfo"><label>Debug info:</label> ' +
.append(Y.Node.create('<div class="moodle-exception-param hidden param-debuginfo"><label>' +
M.util.get_string('debuginfo', 'debug') + labelsep + '</label> ' +
Y.Escape.html(this.get('debuginfo')) + '</div>'))
.append(Y.Node.create('<div class="moodle-exception-param hidden param-stacktrace">' +
'<label>Stack trace:</label> <pre>' +
.append(Y.Node.create('<div class="moodle-exception-param hidden param-stacktrace"><label>' +
M.util.get_string('stacktrace', 'debug') + labelsep + '</label> <pre>' +
Y.Escape.html(this.get('stacktrace')) + '</pre></div>'));
if (M.cfg.developerdebug) {
content.all('.moodle-exception-param').removeClass('hidden');

View File

@ -45,19 +45,22 @@ Y.extend(EXCEPTION, M.core.notification.info, {
initializer: function(config) {
var content,
self = this,
delay = this.get('hideTimeoutDelay');
delay = this.get('hideTimeoutDelay'),
labelsep = M.util.get_string('labelsep', 'langconfig');
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>',
Y.WidgetStdMod.REPLACE);
content = Y.Node.create('<div class="moodle-exception" data-rel="fatalerror"></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> ' +
.append(Y.Node.create('<div class="moodle-exception-param hidden param-filename"><label>' +
M.util.get_string('file', 'moodle') + labelsep + '</label> ' +
Y.Escape.html(this.get('fileName')) + '</div>'))
.append(Y.Node.create('<div class="moodle-exception-param hidden param-linenumber"><label>Line:</label> ' +
.append(Y.Node.create('<div class="moodle-exception-param hidden param-linenumber"><label>' +
M.util.get_string('line', 'debug') + labelsep + '</label> ' +
Y.Escape.html(this.get('lineNumber')) + '</div>'))
.append(Y.Node.create('<div class="moodle-exception-param hidden param-stacktrace">' +
'<label>Stack trace:</label> <pre>' +
.append(Y.Node.create('<div class="moodle-exception-param hidden param-stacktrace"><label>' +
M.util.get_string('stacktrace', 'debug') + labelsep + '</label> <pre>' +
this.get('stack') + '</pre></div>'));
if (M.cfg.developerdebug) {
content.all('.moodle-exception-param').removeClass('hidden');