diff --git a/sao/src/common.js b/sao/src/common.js index 709d1940a6..f6dff83cb5 100644 --- a/sao/src/common.js +++ b/sao/src/common.js @@ -3547,24 +3547,38 @@ Sao.common.ErrorDialog = Sao.class_(Sao.common.UniqueDialog, { class_: 'error-dialog', - size: 'lg', + size: 'md', build_dialog: function(title, details, prm) { var dialog = Sao.common.ConcurrencyDialog._super.build_dialog.call( this); dialog.add_title(Sao.i18n.gettext('Application Error')); - dialog.body.append(jQuery('
', { + const alert_ = jQuery('', { 'class': 'alert alert-danger', role: 'alert' - }).append(jQuery('') - .append(jQuery('') - .text(details))) - .append(jQuery('') - .append(jQuery('', { - 'class': 'btn btn-link', - href: Sao.config.bug_url, - target: '_blank', - rel: 'noreferrer noopener', - }).text(Sao.i18n.gettext('Report Bug'))))); + }).appendTo(dialog.body); + alert_.append(jQuery('') + .text(title) + .css('white-space', 'pre-wrap')); + alert_.append(jQuery('').append(jQuery('', { + 'class': 'btn btn-default', + role: 'button', + 'data-toggle': 'collapse', + 'data-target': '#error-detail', + 'aria-expanded': false, + 'aria-controls': '#error-detail', + }).text(Sao.i18n.gettext("Details")))); + alert_.append(jQuery('', { + 'class': 'collapse', + id: 'error-detail', + }).append(jQuery('', { + 'class': 'pre-scrollable', + }).text(details))); + jQuery('', { + 'class': 'btn btn-link', + href: Sao.config.bug_url, + target: '_blank', + rel: 'noreferrer noopener', + }).text(Sao.i18n.gettext('Report Bug')).appendTo(dialog.footer); jQuery('', { 'class': 'btn btn-primary', 'type': 'button', diff --git a/tryton/tryton/common/common.py b/tryton/tryton/common/common.py index a3c41c5f0a..6758f30057 100644 --- a/tryton/tryton/common/common.py +++ b/tryton/tryton/common/common.py @@ -844,7 +844,7 @@ class ErrorDialog(UniqueDialog): dialog = Gtk.MessageDialog( transient_for=parent, modal=True, destroy_with_parent=True, message_type=Gtk.MessageType.ERROR, buttons=Gtk.ButtonsType.NONE) - dialog.set_default_size(600, 400) + dialog.set_default_size(600, 200) dialog.set_position(Gtk.WindowPosition.CENTER) dialog.add_button(set_underline(_("Close")), Gtk.ResponseType.CANCEL) @@ -859,6 +859,7 @@ class ErrorDialog(UniqueDialog): scrolledwindow.set_policy( Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC) scrolledwindow.set_shadow_type(Gtk.ShadowType.NONE) + scrolledwindow.set_min_content_height(300) viewport = Gtk.Viewport() viewport.set_shadow_type(Gtk.ShadowType.NONE) @@ -870,8 +871,12 @@ class ErrorDialog(UniqueDialog): viewport.add(textview) scrolledwindow.add(viewport) + expander = Gtk.Expander() + expander.set_label(_("Details")) + expander.add(scrolledwindow) + expander.set_resize_toplevel(True) dialog.vbox.pack_start( - scrolledwindow, expand=True, fill=True, padding=0) + expander, expand=False, fill=True, padding=0) button_roundup = Gtk.LinkButton.new_with_label( CONFIG['bug.url'], _("Report Bug"))