Skip to content
Snippets Groups Projects
Commit 5c34dce0 authored by Sascha Herzinger's avatar Sascha Herzinger
Browse files

fixed an issue where the dialog was only opened once

parent 6d99db6e
No related branches found
No related tags found
2 merge requests!630WIP: Resolve "The privileges of a new user are not saved in some cases",!589Feature error reporting
......@@ -293,73 +293,75 @@ GuiConnector.prototype.alert = function (error, redirectIfSecurityError) {
} else {
var self = returnThisOrSingleton(this);
logger.error(error);
if (self._errorDialog === undefined) {
var errorData = self.getErrorMessageForError(error);
var message = errorData.message;
var stacktrace = {
value: errorData.stack,
tooltip: 'The error stacktrace. The sequence of events that triggered this particular error.'
};
self._errorDialog = document.createElement('div');
self._errorDialog.innerHTML = '<span class="ui-icon ui-icon-info" style="float: right;" title="The error message. This might not be human readable. If this issue persists you should should contact your administrator."></span>' +
'<span>' + message + '</span>';
self.gatherReportData().then(function (data) {
self._errorDialog.innerHTML += '<p class="report-dialog-warning">If you agree to submit the following information to the Minerva maintainers please uncheck all boxes that might contain sensitive data.</p>';
self._errorDialogData = document.createElement('div');
self._errorDialog.appendChild(self._errorDialogData);
self._errorDialogData.innerHTML += '<textarea class="report-comment" placeholder="Add comment..."></textarea>';
Object.keys(data).forEach(function (key) {
self._errorDialogData.innerHTML += '<label>' +
data[key].value +
'<input class="report-check" type="checkbox" data-key="' + key + '" data-value="' + data[key].value + '"/>' +
'<span class="ui-icon ui-icon-info" title="' + data[key].tooltip + '"></span>' +
'</label>';
});
if (typeof stacktrace.value !== 'undefined') {
self._errorDialogData.innerHTML += '<div id="report-stacktrace">' +
'<h3>Stacktrace<span class="ui-icon ui-icon-info" title="' + stacktrace.tooltip + '"></span></h3>' +
'<div><p>' + stacktrace.value + '</p></div>' +
'</div>';
$('#report-stacktrace')
.accordion({active: false, collapsible: true});
}
$('.report-check')
.checkboxradio()
.prop('checked', true)
.button('refresh');
$(self._errorDialogData)
.controlgroup({direction: 'vertical'});
$(self._errorDialog)
.tooltip();
var errorData = self.getErrorMessageForError(error);
var message = errorData.message;
var stacktrace = {
value: errorData.stack,
tooltip: 'The error stacktrace. The sequence of events that triggered this particular error.'
};
self._errorDialog = document.createElement('div');
self._errorDialog.innerHTML = '<span class="ui-icon ui-icon-info" style="float: right;" title="The error message. This might not be human readable. If this issue persists you should should contact your administrator."></span>' +
'<span>' + message + '</span>';
self.gatherReportData().then(function (data) {
self._errorDialog.innerHTML += '<p class="report-dialog-warning">If you agree to submit the following information to the Minerva maintainers please uncheck all boxes that might contain sensitive data.</p>';
self._errorDialogData = document.createElement('div');
self._errorDialog.appendChild(self._errorDialogData);
self._errorDialogData.innerHTML += '<textarea id="report-comment" placeholder="Add comment..."></textarea>';
Object.keys(data).forEach(function (key) {
self._errorDialogData.innerHTML += '<label>' +
data[key].value +
'<input class="report-check" type="checkbox" data-key="' + key + '" data-value="' + data[key].value + '"/>' +
'<span class="ui-icon ui-icon-info" title="' + data[key].tooltip + '"></span>' +
'</label>';
});
document.body.appendChild(self._errorDialog);
$(self._errorDialog).dialog({
classes: {'ui-dialog': 'report-dialog'},
title: 'An error occurred!',
resizable: true,
height: 'auto',
width: '500px',
modal: true,
buttons: {
'Submit': function () {
var report = {stacktrace: stacktrace.value};
$('.report-check').each(function () {
var check = $(this);
if (check.is(':checked')) {
report[check.attr('data-key')] = check.attr('data-value');
}
});
ServerConnector.submitErrorToMinervaNet(report);
$(this).dialog('close');
},
'Cancel': function () {
$(this).dialog('close');
}
if (typeof stacktrace.value !== 'undefined') {
self._errorDialogData.innerHTML += '<div id="report-stacktrace">' +
'<h3>Stacktrace<span class="ui-icon ui-icon-info" title="' + stacktrace.tooltip + '"></span></h3>' +
'<div><p>' + stacktrace.value + '</p></div>' +
'</div>';
$('#report-stacktrace')
.accordion({active: false, collapsible: true});
}
$('.report-check')
.checkboxradio()
.prop('checked', true)
.button('refresh');
$(self._errorDialogData)
.controlgroup({direction: 'vertical'});
$(self._errorDialog)
.tooltip();
});
document.body.appendChild(self._errorDialog);
$(self._errorDialog).dialog({
classes: {'ui-dialog': 'report-dialog'},
title: 'An error occurred!',
resizable: true,
height: 'auto',
width: '500px',
modal: true,
buttons: {
'Submit': function () {
var report = {
stacktrace: stacktrace.value,
comment: $('#report-comment').val()
};
$('.report-check').each(function () {
var check = $(this);
if (check.is(':checked')) {
report[check.attr('data-key')] = check.attr('data-value');
}
});
ServerConnector.submitErrorToMinervaNet(report);
$(this).dialog('destroy').remove();
},
'Cancel': function () {
$(this).dialog('destroy').remove();
}
}).dialog("open");
}
}
}).dialog("open");
}
};
/**
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment