From d3a7fecdaf7e8a8bd35713ff53cccca6e0dcbc9e Mon Sep 17 00:00:00 2001 From: Petr Vobornik Date: Aug 20 2014 08:42:57 +0000 Subject: webui: better error reporting On page: - styled to use proper line breaks - "centered" by .container class and not by huge padding Console: - proper line breaks - links in stack trace are clickable(Chrome) Reviewed-By: Endi Sukma Dewata --- diff --git a/install/ui/ipa.css b/install/ui/ipa.css index 2e70a1a..e02e282 100644 --- a/install/ui/ipa.css +++ b/install/ui/ipa.css @@ -189,7 +189,6 @@ div[name=settings].facet-group li a { /* --- Facet error --- */ .facet-error { - padding: 2em 15em; background-color: white; } @@ -199,7 +198,10 @@ div[name=settings].facet-group li a { .facet-error .error-details { margin-top: 2em; - font-family: monospace; +} + +.facet-error .error-details code { + white-space: pre; } /* ---- Search Facet ---- */ diff --git a/install/ui/src/freeipa/Application_controller.js b/install/ui/src/freeipa/Application_controller.js index bb9d684..094bd3d 100644 --- a/install/ui/src/freeipa/Application_controller.js +++ b/install/ui/src/freeipa/Application_controller.js @@ -247,26 +247,26 @@ define([ on_phase_error: function(error) { - window.console.error(error); error = error || {}; var name = error.name || 'Runtime error'; var error_container = $('
', { - 'class': 'facet-content facet-error' - }).appendTo($('.content').empty()); + 'class': 'container facet-content facet-error' + }).appendTo($('.app-container .content').empty()); error_container.append('

'+name+'

'); var details = $('
', { 'class': 'error-details' }).appendTo(error_container); details.append('

Web UI got in unrecoverable state during "'+error.phase+'" phase.

'); - + if (error.name) window.console.error(error.name); if (error.results) { - var msg = { - message: error.results.message, - stack: error.results.stack - }; - details.append('Technical details:'); - details.append('

'+JSON.stringify(msg)+'

'); + var msg = error.results.message; + var stack = error.results.stack.toString(); + window.console.error(msg); + window.console.error(stack); + details.append('

Technical details:

'); + details.append($('
', { text: error.results.message })); + details.append($('
').append($('', { text: stack }))); } },