diff options
author | Endi S. Dewata <edewata@redhat.com> | 2010-10-28 09:50:34 -0500 |
---|---|---|
committer | Adam Young <ayoung@redhat.com> | 2010-10-28 13:11:51 -0400 |
commit | de3cc334eddff26a743e537f10055e5d6398ffa5 (patch) | |
tree | 2797686cf46ee9cef146351eb4aabb64a98bb87c /install/static/ipa.js | |
parent | 528145d5df30d4b344cd0edafa8e8adba0b817b1 (diff) | |
download | freeipa.git-de3cc334eddff26a743e537f10055e5d6398ffa5.tar.gz freeipa.git-de3cc334eddff26a743e537f10055e5d6398ffa5.tar.xz freeipa.git-de3cc334eddff26a743e537f10055e5d6398ffa5.zip |
Dialog boxes for AJAX, HTTP, and IPA errors.
The ipa_cmd() has been modified to identity the type of the error
it has received and display the error using the right dialog box.
The dialog box can be customized further to display the appropriate
amount of information for each type of error.
Diffstat (limited to 'install/static/ipa.js')
-rw-r--r-- | install/static/ipa.js | 78 |
1 files changed, 52 insertions, 26 deletions
diff --git a/install/static/ipa.js b/install/static/ipa.js index 9da69305..d1558ee7 100644 --- a/install/static/ipa.js +++ b/install/static/ipa.js @@ -109,17 +109,36 @@ var IPA = function() { * objname - name of an IPA object (optional) */ function ipa_cmd(name, args, options, win_callback, fail_callback, objname) { - function ipa_success_handler(data, text_status, xhr) { + function dialog_open(xhr, text_status, error_thrown) { + var that = this; + + IPA.error_dialog.dialog({ + modal: true, + width: 400, + buttons: { + 'Retry': function() { + IPA.error_dialog.dialog('close'); + ipa_cmd(name, args, options, win_callback, fail_callback, objname); + }, + 'Cancel': function() { + IPA.error_dialog.dialog('close'); + fail_callback.call(that, xhr, text_status, error_thrown); + } + } + }); + } + + function success_handler(data, text_status, xhr) { if (!data) { var error_thrown = { - name: 'HTTP Error '+xhr.status, + title: 'HTTP Error '+xhr.status, message: data ? xhr.statusText : "No response" }; - ipa_error_handler.call(this, xhr, text_status, error_thrown); + http_error_handler.call(this, xhr, text_status, error_thrown); } else if (data.error) { var error_thrown = { - name: 'IPA Error '+data.error.code, + title: 'IPA Error '+data.error.code, message: data.error.message }; ipa_error_handler.call(this, xhr, text_status, error_thrown); @@ -129,31 +148,38 @@ function ipa_cmd(name, args, options, win_callback, fail_callback, objname) } } - function ipa_error_handler(xhr, text_status, error_thrown) { + function error_handler(xhr, text_status, error_thrown) { + error_thrown.title = 'AJAX Error: '+error_thrown.name; + ajax_error_handler.call(this, xhr, text_status, error_thrown); + } + + function ajax_error_handler(xhr, text_status, error_thrown) { IPA.error_dialog.empty(); - IPA.error_dialog.attr('title', 'Error: '+error_thrown.name); + IPA.error_dialog.attr('title', error_thrown.title); IPA.error_dialog.append('<p>URL: '+this.url+'</p>'); - if (error_thrown.message) { - IPA.error_dialog.append('<p>'+error_thrown.message+'</p>'); - } + IPA.error_dialog.append('<p>'+error_thrown.message+'</p>'); - var that = this; + dialog_open.call(this, xhr, text_status, error_thrown); + } - IPA.error_dialog.dialog({ - modal: true, - width: 400, - buttons: { - 'Retry': function() { - IPA.error_dialog.dialog('close'); - ipa_cmd(name, args, options, win_callback, fail_callback, objname); - }, - 'Cancel': function() { - IPA.error_dialog.dialog('close'); - fail_callback.call(that, xhr, text_status, error_thrown); - } - } - }); + function http_error_handler(xhr, text_status, error_thrown) { + IPA.error_dialog.empty(); + IPA.error_dialog.attr('title', error_thrown.title); + + 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); + } + + function ipa_error_handler(xhr, text_status, error_thrown) { + IPA.error_dialog.empty(); + IPA.error_dialog.attr('title', error_thrown.title); + + IPA.error_dialog.append('<p>'+error_thrown.message+'</p>'); + + dialog_open.call(this, xhr, text_status, error_thrown); } var id = ipa_jsonrpc_id++; @@ -180,8 +206,8 @@ function ipa_cmd(name, args, options, win_callback, fail_callback, objname) var request = { url: url, data: JSON.stringify(data), - success: ipa_success_handler, - error: ipa_error_handler + success: success_handler, + error: error_handler }; $.ajax(request); |