[mapguide-commits] r7973 - in trunk/MgDev/Oem/fusionMG/templates/mapguide: aqua limegold maroon slate turquoiseyellow
svn_mapguide at osgeo.org
svn_mapguide at osgeo.org
Sat Feb 8 09:42:45 PST 2014
Author: jng
Date: 2014-02-08 09:42:45 -0800 (Sat, 08 Feb 2014)
New Revision: 7973
Modified:
trunk/MgDev/Oem/fusionMG/templates/mapguide/aqua/index.html
trunk/MgDev/Oem/fusionMG/templates/mapguide/limegold/index.html
trunk/MgDev/Oem/fusionMG/templates/mapguide/maroon/index.html
trunk/MgDev/Oem/fusionMG/templates/mapguide/slate/index.html
trunk/MgDev/Oem/fusionMG/templates/mapguide/turquoiseyellow/index.html
Log:
Merge robust error handling sandbox
Modified: trunk/MgDev/Oem/fusionMG/templates/mapguide/aqua/index.html
===================================================================
--- trunk/MgDev/Oem/fusionMG/templates/mapguide/aqua/index.html 2014-02-08 16:57:01 UTC (rev 7972)
+++ trunk/MgDev/Oem/fusionMG/templates/mapguide/aqua/index.html 2014-02-08 17:42:45 UTC (rev 7973)
@@ -82,20 +82,20 @@
});
main.addEvent('sizeChange', function(){
- if (dOverviewMap.domObj.getStyle('display') != 'none'){
- dOverviewMap.show();
- }
- if (dLegend.domObj.getStyle('display') != 'none'){
- dLegend.show();
- }
+ if (dOverviewMap.domObj.getStyle('display') != 'none'){
+ dOverviewMap.show();
+ }
+ if (dLegend.domObj.getStyle('display') != 'none'){
+ dLegend.show();
+ }
if (dTasks.domObj.getStyle('display') != 'none'){
- dTasks.show();
- }
+ dTasks.show();
+ }
if (dSelection.domObj.getStyle('display') != 'none'){
- dSelection.show();
- }
+ dSelection.show();
+ }
- });
+ });
main.resize();
Fusion.registerForEvent(Fusion.Event.FUSION_INITIALIZED, fusionInitialized);
@@ -103,69 +103,89 @@
Fusion.initialize();
}
+var showErrorDialog = function(msg) {
+ var errorDialog = new Jx.Dialog({
+ label: "Fusion Error",
+ image: "images/icons/error.png",
+ width: 800,
+ height: 400,
+ modal: true,
+ resize: true,
+ move: true,
+ content: msg
+ });
+ errorDialog.show();
+};
+
var fusionError = function(eventId, error) {
- var errorMessage = error.toString();
- var readableMessage = '';
+ if (error instanceof Fusion.DetailedError) {
+ //Case 1: Session Expiry
+ //
+ //
+ if (error.message.indexOf("MgSessionExpiredException") >= 0) {
+ var sessionId = Fusion.getQueryParam("Session");
+ var map = Fusion.getMapByIndice(0);
+ //Graceful reload is only possible if session id was not passed in as a query parameter
+ if (sessionId == "") {
+ map.message.error(OpenLayers.i18n('sessionExpired') + ' <a href="javascript:window.location.reload()">' + OpenLayers.i18n("reload") + '</a>');
+ } else {
+ map.message.error(OpenLayers.i18n('sessionExpired'));
+ }
+ return;
+ }
+
+ //Default Case: Show a formatted summary of the error
+ var fmtStack = "";
+ for (var i = 0; i < error.stack.length; i++) {
+ var stackFrame = error.stack[i];
+ fmtStack += " - " + (stackFrame.func != "" ? stackFrame.func : "?") + " at " + stackFrame.url + " (line: " + stackFrame.line + ")";
+ fmtStack += "\n";
+ }
+ var message = OpenLayers.i18n("detailedErrorTemplateHtml", {
+ name: error.name,
+ source: error.url,
+ message: error.message,
+ stacktrace: fmtStack
+ });
+ showErrorDialog(message);
+ console.log('Fusion Error: \n' + message);
+ } else {
+ var errorMessage = error.toString();
+ var readableMessage = '';
- //Case 1: For dealing with Function: convertXML (fusion.js)
- //******************************************
- // xml2json: function(callback, r, json) {
- // if (json) {
- // var o;
- // eval("o="+r.responseText);
- // callback(o);
- // } else {
- // if (r.status >= 400) {
- // Fusion.reportError(new Fusion.Error(Fusion.Error.FATAL,
- // 'xml2json: invalid XML document: ' + r.transport.responseText + " : " + r.request.url));
- // return;
- // }
- //******************************************
- var tagStart = '<h2>';
- var tagEnd = '</h2>';
- var indexStart = errorMessage.indexOf(tagStart);
- var indexEnd = errorMessage.indexOf(tagEnd, tagStart);
- if (indexStart != -1 && indexEnd != -1) {
- readableMessage = errorMessage.substring(indexStart + tagStart.length, indexEnd);
- readableMessage = readableMessage.replace(/\\n/g, '\n');
- readableMessage = readableMessage.replace(/\\t/g, '\t');
- readableMessage = readableMessage.replace(/\\'/g, '\'');
- }
+ //Case 1: For dealing with Function: convertXML (fusion.js)
+ //******************************************
+ // xml2json: function(callback, r, json) {
+ // if (json) {
+ // var o;
+ // eval("o="+r.responseText);
+ // callback(o);
+ // } else {
+ // if (r.status >= 400) {
+ // Fusion.reportError(new Fusion.Error(Fusion.Error.FATAL,
+ // 'xml2json: invalid XML document: ' + r.transport.responseText + " : " + r.request.url));
+ // return;
+ // }
+ //******************************************
+ var tagStart = '<h2>';
+ var tagEnd = '</h2>';
+ var indexStart = errorMessage.indexOf(tagStart);
+ var indexEnd = errorMessage.indexOf(tagEnd, tagStart);
+ if (indexStart != -1 && indexEnd != -1) {
+ readableMessage = errorMessage.substring(indexStart + tagStart.length, indexEnd);
+ readableMessage = readableMessage.replace(/\\n/g, '\n');
+ readableMessage = readableMessage.replace(/\\t/g, '\t');
+ readableMessage = readableMessage.replace(/\\'/g, '\'');
+ }
- //Case 2: For dealing with Function: ajaxException. (fusion.js)
- //******************************************
- // ajaxException: function(r, e) {
- // this.reportError(new Fusion.Error(Fusion.Error.WARNING,
- // OpenLayers.i18n('ajaxError', {'exception':e.message,
- // 'filename':e.fileName,
- // 'line':e.lineNumber,
- // 'response': r.transport.responseText
- // })));
- // },
- //******************************************
- if (readableMessage == '') {
- var ajaxCallback = 'WARNING: Exception occurred in AJAX callback.';
- var responseError = 'Response: ERROR: ';
- var indexAjaxCallback = errorMessage.indexOf(ajaxCallback);
- var indexResponseError = errorMessage.indexOf(responseError);
- if (indexAjaxCallback != -1 && indexResponseError != -1) {
- var indexReturn = errorMessage.indexOf('\n', indexResponseError);
- if (indexReturn != -1) {
- readableMessage = errorMessage.substring(indexResponseError + responseError.length, indexReturn);
- readableMessage = readableMessage.replace(/\\n/g, '\n');
- readableMessage = readableMessage.replace(/\\t/g, '\t');
- readableMessage = readableMessage.replace(/\\'/g, '\'');
- }
+ if (readableMessage != '') {
+ showErrorDialog(readableMessage);
}
+ else {
+ showErrorDialog('Fusion Error: \n' + errorMessage);
+ }
+ console.log('Fusion Error: \n' + errorMessage);
}
-
- if (readableMessage != '') {
- alert(readableMessage);
- }
- else {
- alert('Fusion Error: \n' + errorMessage);
- }
- console.log('Fusion Error: \n' + errorMessage);
}
var fusionInitialized = function() {
Modified: trunk/MgDev/Oem/fusionMG/templates/mapguide/limegold/index.html
===================================================================
--- trunk/MgDev/Oem/fusionMG/templates/mapguide/limegold/index.html 2014-02-08 16:57:01 UTC (rev 7972)
+++ trunk/MgDev/Oem/fusionMG/templates/mapguide/limegold/index.html 2014-02-08 17:42:45 UTC (rev 7973)
@@ -76,87 +76,107 @@
contentId: 'SelectionPanel'
});
- tabbox1.add(tab1, tab2, tab3);
+ tabbox1.add(tab1, tab2, tab3);
- var tabbox2 = new Jx.TabBox({parent: splitter2.elements[1]});
+ var tabbox2 = new Jx.TabBox({parent: splitter2.elements[1]});
- var tab4 = new Jx.Tab({
- label: OpenLayers.i18n('ovmapTitle'),
- contentId: 'OverviewMap'});
+ var tab4 = new Jx.Tab({
+ label: OpenLayers.i18n('ovmapTitle'),
+ contentId: 'OverviewMap'});
- tabbox2.add(tab4);
+ tabbox2.add(tab4);
- main.resize();
+ main.resize();
- Fusion.registerForEvent(Fusion.Event.FUSION_INITIALIZED, fusionInitialized);
- Fusion.registerForEvent(Fusion.Event.FUSION_ERROR, fusionError);
- Fusion.initialize();
+ Fusion.registerForEvent(Fusion.Event.FUSION_INITIALIZED, fusionInitialized);
+ Fusion.registerForEvent(Fusion.Event.FUSION_ERROR, fusionError);
+ Fusion.initialize();
}
+var showErrorDialog = function(msg) {
+ var errorDialog = new Jx.Dialog({
+ label: "Fusion Error",
+ image: "images/icons/error.png",
+ width: 800,
+ height: 400,
+ modal: true,
+ resize: true,
+ move: true,
+ content: msg
+ });
+ errorDialog.show();
+};
+
var fusionError = function(eventId, error) {
- var errorMessage = error.toString();
- var readableMessage = '';
+ if (error instanceof Fusion.DetailedError) {
+ //Case 1: Session Expiry
+ //
+ //
+ if (error.message.indexOf("MgSessionExpiredException") >= 0) {
+ var sessionId = Fusion.getQueryParam("Session");
+ var map = Fusion.getMapByIndice(0);
+ //Graceful reload is only possible if session id was not passed in as a query parameter
+ if (sessionId == "") {
+ map.message.error(OpenLayers.i18n('sessionExpired') + ' <a href="javascript:window.location.reload()">' + OpenLayers.i18n("reload") + '</a>');
+ } else {
+ map.message.error(OpenLayers.i18n('sessionExpired'));
+ }
+ return;
+ }
+
+ //Default Case: Show a formatted summary of the error
+ var fmtStack = "";
+ for (var i = 0; i < error.stack.length; i++) {
+ var stackFrame = error.stack[i];
+ fmtStack += " - " + (stackFrame.func != "" ? stackFrame.func : "?") + " at " + stackFrame.url + " (line: " + stackFrame.line + ")";
+ fmtStack += "\n";
+ }
+ var message = OpenLayers.i18n("detailedErrorTemplateHtml", {
+ name: error.name,
+ source: error.url,
+ message: error.message,
+ stacktrace: fmtStack
+ });
+ showErrorDialog(message);
+ console.log('Fusion Error: \n' + message);
+ } else {
+ var errorMessage = error.toString();
+ var readableMessage = '';
- //Case 1: For dealing with Function: convertXML (fusion.js)
- //******************************************
- // xml2json: function(callback, r, json) {
- // if (json) {
- // var o;
- // eval("o="+r.responseText);
- // callback(o);
- // } else {
- // if (r.status >= 400) {
- // Fusion.reportError(new Fusion.Error(Fusion.Error.FATAL,
- // 'xml2json: invalid XML document: ' + r.transport.responseText + " : " + r.request.url));
- // return;
- // }
- //******************************************
- var tagStart = '<h2>';
- var tagEnd = '</h2>';
- var indexStart = errorMessage.indexOf(tagStart);
- var indexEnd = errorMessage.indexOf(tagEnd, tagStart);
- if (indexStart != -1 && indexEnd != -1) {
- readableMessage = errorMessage.substring(indexStart + tagStart.length, indexEnd);
- readableMessage = readableMessage.replace(/\\n/g, '\n');
- readableMessage = readableMessage.replace(/\\t/g, '\t');
- readableMessage = readableMessage.replace(/\\'/g, '\'');
- }
+ //Case 1: For dealing with Function: convertXML (fusion.js)
+ //******************************************
+ // xml2json: function(callback, r, json) {
+ // if (json) {
+ // var o;
+ // eval("o="+r.responseText);
+ // callback(o);
+ // } else {
+ // if (r.status >= 400) {
+ // Fusion.reportError(new Fusion.Error(Fusion.Error.FATAL,
+ // 'xml2json: invalid XML document: ' + r.transport.responseText + " : " + r.request.url));
+ // return;
+ // }
+ //******************************************
+ var tagStart = '<h2>';
+ var tagEnd = '</h2>';
+ var indexStart = errorMessage.indexOf(tagStart);
+ var indexEnd = errorMessage.indexOf(tagEnd, tagStart);
+ if (indexStart != -1 && indexEnd != -1) {
+ readableMessage = errorMessage.substring(indexStart + tagStart.length, indexEnd);
+ readableMessage = readableMessage.replace(/\\n/g, '\n');
+ readableMessage = readableMessage.replace(/\\t/g, '\t');
+ readableMessage = readableMessage.replace(/\\'/g, '\'');
+ }
- //Case 2: For dealing with Function: ajaxException. (fusion.js)
- //******************************************
- // ajaxException: function(r, e) {
- // this.reportError(new Fusion.Error(Fusion.Error.WARNING,
- // OpenLayers.i18n('ajaxError', {'exception':e.message,
- // 'filename':e.fileName,
- // 'line':e.lineNumber,
- // 'response': r.transport.responseText
- // })));
- // },
- //******************************************
- if (readableMessage == '') {
- var ajaxCallback = 'WARNING: Exception occurred in AJAX callback.';
- var responseError = 'Response: ERROR: ';
- var indexAjaxCallback = errorMessage.indexOf(ajaxCallback);
- var indexResponseError = errorMessage.indexOf(responseError);
- if (indexAjaxCallback != -1 && indexResponseError != -1) {
- var indexReturn = errorMessage.indexOf('\n', indexResponseError);
- if (indexReturn != -1) {
- readableMessage = errorMessage.substring(indexResponseError + responseError.length, indexReturn);
- readableMessage = readableMessage.replace(/\\n/g, '\n');
- readableMessage = readableMessage.replace(/\\t/g, '\t');
- readableMessage = readableMessage.replace(/\\'/g, '\'');
- }
+ if (readableMessage != '') {
+ showErrorDialog(readableMessage);
}
+ else {
+ showErrorDialog('Fusion Error: \n' + errorMessage);
+ }
+ console.log('Fusion Error: \n' + errorMessage);
}
-
- if (readableMessage != '') {
- alert(readableMessage);
- }
- else {
- alert('Fusion Error: \n' + errorMessage);
- }
- console.log('Fusion Error: \n' + errorMessage);
}
var fusionInitialized = function() {
Modified: trunk/MgDev/Oem/fusionMG/templates/mapguide/maroon/index.html
===================================================================
--- trunk/MgDev/Oem/fusionMG/templates/mapguide/maroon/index.html 2014-02-08 16:57:01 UTC (rev 7972)
+++ trunk/MgDev/Oem/fusionMG/templates/mapguide/maroon/index.html 2014-02-08 17:42:45 UTC (rev 7973)
@@ -80,104 +80,124 @@
]
});
- /* create dynamic content */
- panel1 = new Jx.Panel({
- label: OpenLayers.i18n('legendTitle'),
- collapse: true,
- maximize: true,
- contentId: 'Legend'});
- panel1.content.id = 'Legend';
+ /* create dynamic content */
+ panel1 = new Jx.Panel({
+ label: OpenLayers.i18n('legendTitle'),
+ collapse: true,
+ maximize: true,
+ contentId: 'Legend'});
+ panel1.content.id = 'Legend';
- panel2 = new Jx.Panel({
- label: OpenLayers.i18n('selectionPanelTitle'),
- collapse: true,
- maximize: true,
- contentId: 'SelectionPanel'});
+ panel2 = new Jx.Panel({
+ label: OpenLayers.i18n('selectionPanelTitle'),
+ collapse: true,
+ maximize: true,
+ contentId: 'SelectionPanel'});
- panel3 = new Jx.Panel({
- label: OpenLayers.i18n('taskPaneTitle'),
- collapse: true,
- maximize: true,
- contentId: 'TaskPane'});
+ panel3 = new Jx.Panel({
+ label: OpenLayers.i18n('taskPaneTitle'),
+ collapse: true,
+ maximize: true,
+ contentId: 'TaskPane'});
- panel4 = new Jx.Panel({
- label: OpenLayers.i18n('ovmapTitle'),
- collapse: true,
- maximize: true,
- contentId: 'OverviewMap'});
+ panel4 = new Jx.Panel({
+ label: OpenLayers.i18n('ovmapTitle'),
+ collapse: true,
+ maximize: true,
+ contentId: 'OverviewMap'});
- panelman = new Jx.PanelSet({parent: splitter.elements[1], panels: [panel1, panel2, panel3, panel4]});
+ panelman = new Jx.PanelSet({parent: splitter.elements[1], panels: [panel1, panel2, panel3, panel4]});
- main.resize();
+ main.resize();
- Fusion.registerForEvent(Fusion.Event.FUSION_INITIALIZED, fusionInitialized);
- Fusion.registerForEvent(Fusion.Event.FUSION_ERROR, fusionError);
- Fusion.initialize();
+ Fusion.registerForEvent(Fusion.Event.FUSION_INITIALIZED, fusionInitialized);
+ Fusion.registerForEvent(Fusion.Event.FUSION_ERROR, fusionError);
+ Fusion.initialize();
}
+var showErrorDialog = function(msg) {
+ var errorDialog = new Jx.Dialog({
+ label: "Fusion Error",
+ image: "images/icons/error.png",
+ width: 800,
+ height: 400,
+ modal: true,
+ resize: true,
+ move: true,
+ content: msg
+ });
+ errorDialog.show();
+};
+
var fusionError = function(eventId, error) {
- var errorMessage = error.toString();
- var readableMessage = '';
+ if (error instanceof Fusion.DetailedError) {
+ //Case 1: Session Expiry
+ //
+ //
+ if (error.message.indexOf("MgSessionExpiredException") >= 0) {
+ var sessionId = Fusion.getQueryParam("Session");
+ var map = Fusion.getMapByIndice(0);
+ //Graceful reload is only possible if session id was not passed in as a query parameter
+ if (sessionId == "") {
+ map.message.error(OpenLayers.i18n('sessionExpired') + ' <a href="javascript:window.location.reload()">' + OpenLayers.i18n("reload") + '</a>');
+ } else {
+ map.message.error(OpenLayers.i18n('sessionExpired'));
+ }
+ return;
+ }
+
+ //Default Case: Show a formatted summary of the error
+ var fmtStack = "";
+ for (var i = 0; i < error.stack.length; i++) {
+ var stackFrame = error.stack[i];
+ fmtStack += " - " + (stackFrame.func != "" ? stackFrame.func : "?") + " at " + stackFrame.url + " (line: " + stackFrame.line + ")";
+ fmtStack += "\n";
+ }
+ var message = OpenLayers.i18n("detailedErrorTemplateHtml", {
+ name: error.name,
+ source: error.url,
+ message: error.message,
+ stacktrace: fmtStack
+ });
+ showErrorDialog(message);
+ console.log('Fusion Error: \n' + message);
+ } else {
+ var errorMessage = error.toString();
+ var readableMessage = '';
- //Case 1: For dealing with Function: convertXML (fusion.js)
- //******************************************
- // xml2json: function(callback, r, json) {
- // if (json) {
- // var o;
- // eval("o="+r.responseText);
- // callback(o);
- // } else {
- // if (r.status >= 400) {
- // Fusion.reportError(new Fusion.Error(Fusion.Error.FATAL,
- // 'xml2json: invalid XML document: ' + r.transport.responseText + " : " + r.request.url));
- // return;
- // }
- //******************************************
- var tagStart = '<h2>';
- var tagEnd = '</h2>';
- var indexStart = errorMessage.indexOf(tagStart);
- var indexEnd = errorMessage.indexOf(tagEnd, tagStart);
- if (indexStart != -1 && indexEnd != -1) {
- readableMessage = errorMessage.substring(indexStart + tagStart.length, indexEnd);
- readableMessage = readableMessage.replace(/\\n/g, '\n');
- readableMessage = readableMessage.replace(/\\t/g, '\t');
- readableMessage = readableMessage.replace(/\\'/g, '\'');
- }
+ //Case 1: For dealing with Function: convertXML (fusion.js)
+ //******************************************
+ // xml2json: function(callback, r, json) {
+ // if (json) {
+ // var o;
+ // eval("o="+r.responseText);
+ // callback(o);
+ // } else {
+ // if (r.status >= 400) {
+ // Fusion.reportError(new Fusion.Error(Fusion.Error.FATAL,
+ // 'xml2json: invalid XML document: ' + r.transport.responseText + " : " + r.request.url));
+ // return;
+ // }
+ //******************************************
+ var tagStart = '<h2>';
+ var tagEnd = '</h2>';
+ var indexStart = errorMessage.indexOf(tagStart);
+ var indexEnd = errorMessage.indexOf(tagEnd, tagStart);
+ if (indexStart != -1 && indexEnd != -1) {
+ readableMessage = errorMessage.substring(indexStart + tagStart.length, indexEnd);
+ readableMessage = readableMessage.replace(/\\n/g, '\n');
+ readableMessage = readableMessage.replace(/\\t/g, '\t');
+ readableMessage = readableMessage.replace(/\\'/g, '\'');
+ }
- //Case 2: For dealing with Function: ajaxException. (fusion.js)
- //******************************************
- // ajaxException: function(r, e) {
- // this.reportError(new Fusion.Error(Fusion.Error.WARNING,
- // OpenLayers.i18n('ajaxError', {'exception':e.message,
- // 'filename':e.fileName,
- // 'line':e.lineNumber,
- // 'response': r.transport.responseText
- // })));
- // },
- //******************************************
- if (readableMessage == '') {
- var ajaxCallback = 'WARNING: Exception occurred in AJAX callback.';
- var responseError = 'Response: ERROR: ';
- var indexAjaxCallback = errorMessage.indexOf(ajaxCallback);
- var indexResponseError = errorMessage.indexOf(responseError);
- if (indexAjaxCallback != -1 && indexResponseError != -1) {
- var indexReturn = errorMessage.indexOf('\n', indexResponseError);
- if (indexReturn != -1) {
- readableMessage = errorMessage.substring(indexResponseError + responseError.length, indexReturn);
- readableMessage = readableMessage.replace(/\\n/g, '\n');
- readableMessage = readableMessage.replace(/\\t/g, '\t');
- readableMessage = readableMessage.replace(/\\'/g, '\'');
- }
+ if (readableMessage != '') {
+ showErrorDialog(readableMessage);
}
+ else {
+ showErrorDialog('Fusion Error: \n' + errorMessage);
+ }
+ console.log('Fusion Error: \n' + errorMessage);
}
-
- if (readableMessage != '') {
- alert(readableMessage);
- }
- else {
- alert('Fusion Error: \n' + errorMessage);
- }
- console.log('Fusion Error: \n' + errorMessage);
}
var fusionInitialized = function() {
Modified: trunk/MgDev/Oem/fusionMG/templates/mapguide/slate/index.html
===================================================================
--- trunk/MgDev/Oem/fusionMG/templates/mapguide/slate/index.html 2014-02-08 16:57:01 UTC (rev 7972)
+++ trunk/MgDev/Oem/fusionMG/templates/mapguide/slate/index.html 2014-02-08 17:42:45 UTC (rev 7973)
@@ -98,69 +98,89 @@
dOverviewMap.open();
}
+var showErrorDialog = function(msg) {
+ var errorDialog = new Jx.Dialog({
+ label: "Fusion Error",
+ image: "images/icons/error.png",
+ width: 800,
+ height: 400,
+ modal: true,
+ resize: true,
+ move: true,
+ content: msg
+ });
+ errorDialog.show();
+};
+
var fusionError = function(eventId, error) {
- var errorMessage = error.toString();
- var readableMessage = '';
+ if (error instanceof Fusion.DetailedError) {
+ //Case 1: Session Expiry
+ //
+ //
+ if (error.message.indexOf("MgSessionExpiredException") >= 0) {
+ var sessionId = Fusion.getQueryParam("Session");
+ var map = Fusion.getMapByIndice(0);
+ //Graceful reload is only possible if session id was not passed in as a query parameter
+ if (sessionId == "") {
+ map.message.error(OpenLayers.i18n('sessionExpired') + ' <a href="javascript:window.location.reload()">' + OpenLayers.i18n("reload") + '</a>');
+ } else {
+ map.message.error(OpenLayers.i18n('sessionExpired'));
+ }
+ return;
+ }
+
+ //Default Case: Show a formatted summary of the error
+ var fmtStack = "";
+ for (var i = 0; i < error.stack.length; i++) {
+ var stackFrame = error.stack[i];
+ fmtStack += " - " + (stackFrame.func != "" ? stackFrame.func : "?") + " at " + stackFrame.url + " (line: " + stackFrame.line + ")";
+ fmtStack += "\n";
+ }
+ var message = OpenLayers.i18n("detailedErrorTemplateHtml", {
+ name: error.name,
+ source: error.url,
+ message: error.message,
+ stacktrace: fmtStack
+ });
+ showErrorDialog(message);
+ console.log('Fusion Error: \n' + message);
+ } else {
+ var errorMessage = error.toString();
+ var readableMessage = '';
- //Case 1: For dealing with Function: convertXML (fusion.js)
- //******************************************
- // xml2json: function(callback, r, json) {
- // if (json) {
- // var o;
- // eval("o="+r.responseText);
- // callback(o);
- // } else {
- // if (r.status >= 400) {
- // Fusion.reportError(new Fusion.Error(Fusion.Error.FATAL,
- // 'xml2json: invalid XML document: ' + r.transport.responseText + " : " + r.request.url));
- // return;
- // }
- //******************************************
- var tagStart = '<h2>';
- var tagEnd = '</h2>';
- var indexStart = errorMessage.indexOf(tagStart);
- var indexEnd = errorMessage.indexOf(tagEnd, tagStart);
- if (indexStart != -1 && indexEnd != -1) {
- readableMessage = errorMessage.substring(indexStart + tagStart.length, indexEnd);
- readableMessage = readableMessage.replace(/\\n/g, '\n');
- readableMessage = readableMessage.replace(/\\t/g, '\t');
- readableMessage = readableMessage.replace(/\\'/g, '\'');
- }
+ //Case 1: For dealing with Function: convertXML (fusion.js)
+ //******************************************
+ // xml2json: function(callback, r, json) {
+ // if (json) {
+ // var o;
+ // eval("o="+r.responseText);
+ // callback(o);
+ // } else {
+ // if (r.status >= 400) {
+ // Fusion.reportError(new Fusion.Error(Fusion.Error.FATAL,
+ // 'xml2json: invalid XML document: ' + r.transport.responseText + " : " + r.request.url));
+ // return;
+ // }
+ //******************************************
+ var tagStart = '<h2>';
+ var tagEnd = '</h2>';
+ var indexStart = errorMessage.indexOf(tagStart);
+ var indexEnd = errorMessage.indexOf(tagEnd, tagStart);
+ if (indexStart != -1 && indexEnd != -1) {
+ readableMessage = errorMessage.substring(indexStart + tagStart.length, indexEnd);
+ readableMessage = readableMessage.replace(/\\n/g, '\n');
+ readableMessage = readableMessage.replace(/\\t/g, '\t');
+ readableMessage = readableMessage.replace(/\\'/g, '\'');
+ }
- //Case 2: For dealing with Function: ajaxException. (fusion.js)
- //******************************************
- // ajaxException: function(r, e) {
- // this.reportError(new Fusion.Error(Fusion.Error.WARNING,
- // OpenLayers.i18n('ajaxError', {'exception':e.message,
- // 'filename':e.fileName,
- // 'line':e.lineNumber,
- // 'response': r.transport.responseText
- // })));
- // },
- //******************************************
- if (readableMessage == '') {
- var ajaxCallback = 'WARNING: Exception occurred in AJAX callback.';
- var responseError = 'Response: ERROR: ';
- var indexAjaxCallback = errorMessage.indexOf(ajaxCallback);
- var indexResponseError = errorMessage.indexOf(responseError);
- if (indexAjaxCallback != -1 && indexResponseError != -1) {
- var indexReturn = errorMessage.indexOf('\n', indexResponseError);
- if (indexReturn != -1) {
- readableMessage = errorMessage.substring(indexResponseError + responseError.length, indexReturn);
- readableMessage = readableMessage.replace(/\\n/g, '\n');
- readableMessage = readableMessage.replace(/\\t/g, '\t');
- readableMessage = readableMessage.replace(/\\'/g, '\'');
- }
+ if (readableMessage != '') {
+ showErrorDialog(readableMessage);
}
+ else {
+ showErrorDialog('Fusion Error: \n' + errorMessage);
+ }
+ console.log('Fusion Error: \n' + errorMessage);
}
-
- if (readableMessage != '') {
- alert(readableMessage);
- }
- else {
- alert('Fusion Error: \n' + errorMessage);
- }
- console.log('Fusion Error: \n' + errorMessage);
}
var fusionInitialized = function() {
Modified: trunk/MgDev/Oem/fusionMG/templates/mapguide/turquoiseyellow/index.html
===================================================================
--- trunk/MgDev/Oem/fusionMG/templates/mapguide/turquoiseyellow/index.html 2014-02-08 16:57:01 UTC (rev 7972)
+++ trunk/MgDev/Oem/fusionMG/templates/mapguide/turquoiseyellow/index.html 2014-02-08 17:42:45 UTC (rev 7973)
@@ -77,73 +77,91 @@
Fusion.registerForEvent(Fusion.Event.FUSION_INITIALIZED, fusionInitialized);
Fusion.registerForEvent(Fusion.Event.FUSION_ERROR, fusionError);
Fusion.initialize();
+}
+var showErrorDialog = function(msg) {
+ var errorDialog = new Jx.Dialog({
+ label: "Fusion Error",
+ image: "images/icons/error.png",
+ width: 800,
+ height: 400,
+ modal: true,
+ resize: true,
+ move: true,
+ content: msg
+ });
+ errorDialog.show();
+};
-}
-
var fusionError = function(eventId, error) {
- var errorMessage = error.toString();
- var readableMessage = '';
+ if (error instanceof Fusion.DetailedError) {
+ //Case 1: Session Expiry
+ //
+ //
+ if (error.message.indexOf("MgSessionExpiredException") >= 0) {
+ var sessionId = Fusion.getQueryParam("Session");
+ var map = Fusion.getMapByIndice(0);
+ //Graceful reload is only possible if session id was not passed in as a query parameter
+ if (sessionId == "") {
+ map.message.error(OpenLayers.i18n('sessionExpired') + ' <a href="javascript:window.location.reload()">' + OpenLayers.i18n("reload") + '</a>');
+ } else {
+ map.message.error(OpenLayers.i18n('sessionExpired'));
+ }
+ return;
+ }
+
+ //Default Case: Show a formatted summary of the error
+ var fmtStack = "";
+ for (var i = 0; i < error.stack.length; i++) {
+ var stackFrame = error.stack[i];
+ fmtStack += " - " + (stackFrame.func != "" ? stackFrame.func : "?") + " at " + stackFrame.url + " (line: " + stackFrame.line + ")";
+ fmtStack += "\n";
+ }
+ var message = OpenLayers.i18n("detailedErrorTemplateHtml", {
+ name: error.name,
+ source: error.url,
+ message: error.message,
+ stacktrace: fmtStack
+ });
+ showErrorDialog(message);
+ console.log('Fusion Error: \n' + message);
+ } else {
+ var errorMessage = error.toString();
+ var readableMessage = '';
- //Case 1: For dealing with Function: convertXML (fusion.js)
- //******************************************
- // xml2json: function(callback, r, json) {
- // if (json) {
- // var o;
- // eval("o="+r.responseText);
- // callback(o);
- // } else {
- // if (r.status >= 400) {
- // Fusion.reportError(new Fusion.Error(Fusion.Error.FATAL,
- // 'xml2json: invalid XML document: ' + r.transport.responseText + " : " + r.request.url));
- // return;
- // }
- //******************************************
- var tagStart = '<h2>';
- var tagEnd = '</h2>';
- var indexStart = errorMessage.indexOf(tagStart);
- var indexEnd = errorMessage.indexOf(tagEnd, tagStart);
- if (indexStart != -1 && indexEnd != -1) {
- readableMessage = errorMessage.substring(indexStart + tagStart.length, indexEnd);
- readableMessage = readableMessage.replace(/\\n/g, '\n');
- readableMessage = readableMessage.replace(/\\t/g, '\t');
- readableMessage = readableMessage.replace(/\\'/g, '\'');
- }
+ //Case 1: For dealing with Function: convertXML (fusion.js)
+ //******************************************
+ // xml2json: function(callback, r, json) {
+ // if (json) {
+ // var o;
+ // eval("o="+r.responseText);
+ // callback(o);
+ // } else {
+ // if (r.status >= 400) {
+ // Fusion.reportError(new Fusion.Error(Fusion.Error.FATAL,
+ // 'xml2json: invalid XML document: ' + r.transport.responseText + " : " + r.request.url));
+ // return;
+ // }
+ //******************************************
+ var tagStart = '<h2>';
+ var tagEnd = '</h2>';
+ var indexStart = errorMessage.indexOf(tagStart);
+ var indexEnd = errorMessage.indexOf(tagEnd, tagStart);
+ if (indexStart != -1 && indexEnd != -1) {
+ readableMessage = errorMessage.substring(indexStart + tagStart.length, indexEnd);
+ readableMessage = readableMessage.replace(/\\n/g, '\n');
+ readableMessage = readableMessage.replace(/\\t/g, '\t');
+ readableMessage = readableMessage.replace(/\\'/g, '\'');
+ }
- //Case 2: For dealing with Function: ajaxException. (fusion.js)
- //******************************************
- // ajaxException: function(r, e) {
- // this.reportError(new Fusion.Error(Fusion.Error.WARNING,
- // OpenLayers.i18n('ajaxError', {'exception':e.message,
- // 'filename':e.fileName,
- // 'line':e.lineNumber,
- // 'response': r.transport.responseText
- // })));
- // },
- //******************************************
- if (readableMessage == '') {
- var ajaxCallback = 'WARNING: Exception occurred in AJAX callback.';
- var responseError = 'Response: ERROR: ';
- var indexAjaxCallback = errorMessage.indexOf(ajaxCallback);
- var indexResponseError = errorMessage.indexOf(responseError);
- if (indexAjaxCallback != -1 && indexResponseError != -1) {
- var indexReturn = errorMessage.indexOf('\n', indexResponseError);
- if (indexReturn != -1) {
- readableMessage = errorMessage.substring(indexResponseError + responseError.length, indexReturn);
- readableMessage = readableMessage.replace(/\\n/g, '\n');
- readableMessage = readableMessage.replace(/\\t/g, '\t');
- readableMessage = readableMessage.replace(/\\'/g, '\'');
- }
+ if (readableMessage != '') {
+ showErrorDialog(readableMessage);
}
+ else {
+ showErrorDialog('Fusion Error: \n' + errorMessage);
+ }
+ console.log('Fusion Error: \n' + errorMessage);
}
-
- if (readableMessage != '') {
- alert(readableMessage);
- }
- else {
- alert('Fusion Error: \n' + errorMessage);
- }
- console.log('Fusion Error: \n' + errorMessage);
}
var fusionInitialized = function() {
More information about the mapguide-commits
mailing list