summaryrefslogtreecommitdiffstats
path: root/install/ui/ipa.js
diff options
context:
space:
mode:
Diffstat (limited to 'install/ui/ipa.js')
-rw-r--r--install/ui/ipa.js50
1 files changed, 27 insertions, 23 deletions
diff --git a/install/ui/ipa.js b/install/ui/ipa.js
index cbe009b9..732923b6 100644
--- a/install/ui/ipa.js
+++ b/install/ui/ipa.js
@@ -52,10 +52,6 @@ var IPA = ( function () {
that.entities_by_name = {};
- that.error_dialog = $('<div/>', {
- id: 'error_dialog'
- });
-
that.layout = $.bbq.getState('layout');
that.layouts_dir = 'layouts';
@@ -356,6 +352,25 @@ IPA.cmd = function (name, args, options, win_callback, fail_callback, objname, c
function dialog_open(xhr, text_status, error_thrown) {
var that = this;
+ IPA.error_dialog = $('<div/>', {
+ id: 'error_dialog'
+ });
+
+ if (error_thrown.url) {
+ $('<p/>', {
+ text: 'URL: '+error_thrown.url
+ }).appendTo(IPA.error_dialog);
+ }
+ $('<p/>', {
+ html: error_thrown.message
+ }).appendTo(IPA.error_dialog);
+
+ function close() {
+ IPA.error_dialog.dialog('destroy');
+ IPA.error_dialog.remove();
+ IPA.error_dialog = null;
+ }
+
var buttons = {};
/**
@@ -365,14 +380,14 @@ IPA.cmd = function (name, args, options, win_callback, fail_callback, objname, c
*/
var label = IPA.messages.buttons ? IPA.messages.buttons.retry : 'Retry';
buttons[label] = function() {
- IPA.error_dialog.dialog('close');
+ close();
IPA.cmd(name, args, options, win_callback, fail_callback,
objname, command_name);
};
label = IPA.messages.buttons ? IPA.messages.buttons.cancel : 'Cancel';
buttons[label] = function() {
- IPA.error_dialog.dialog('close');
+ close();
if (fail_callback) {
fail_callback.call(that, xhr, text_status, error_thrown);
}
@@ -382,17 +397,13 @@ IPA.cmd = function (name, args, options, win_callback, fail_callback, objname, c
modal: true,
title: error_thrown.title,
width: 400,
- buttons: buttons
+ buttons: buttons,
+ close: function() {
+ close();
+ }
});
}
- function ajax_error_handler(xhr, text_status, error_thrown) {
- IPA.error_dialog.empty();
- IPA.error_dialog.append('<p>'+error_thrown.message+'</p>');
-
- dialog_open.call(this, xhr, text_status, error_thrown);
- }
-
function error_handler(xhr, text_status, error_thrown) {
hide_activity_icon();
if (!error_thrown) {
@@ -419,14 +430,6 @@ IPA.cmd = function (name, args, options, win_callback, fail_callback, objname, c
if (!error_thrown.title) {
error_thrown.title = 'AJAX Error: '+error_thrown.name;
}
- ajax_error_handler.call(this, xhr, text_status, error_thrown);
- }
-
- function http_error_handler(xhr, text_status, error_thrown) {
- IPA.error_dialog.empty();
- IPA.error_dialog.append('<p>URL: '+this.url+'</p>');
- IPA.error_dialog.append('<p>'+error_thrown.message+'</p>');
-
dialog_open.call(this, xhr, text_status, error_thrown);
}
@@ -435,9 +438,10 @@ IPA.cmd = function (name, args, options, win_callback, fail_callback, objname, c
if (!data) {
var error_thrown = {
title: 'HTTP Error '+xhr.status,
+ url: this.url,
message: data ? xhr.statusText : "No response"
};
- http_error_handler.call(this, xhr, text_status, error_thrown);
+ dialog_open.call(this, xhr, text_status, error_thrown);
} else if (data.error) {
error_handler.call(this, xhr, text_status, /* error_thrown */ {