mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
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.
This commit is contained in:
committed by
Adam Young
parent
528145d5df
commit
de3cc334ed
@@ -321,7 +321,7 @@ function ipa_association_facet(spec) {
|
||||
function refresh_on_error(xhr, text_status, error_thrown) {
|
||||
var search_results = $('.search-results', container).empty();
|
||||
search_results.append('<p>Error: '+error_thrown.name+'</p>');
|
||||
search_results.append('<p>URL: '+this.url+'</p>');
|
||||
search_results.append('<p>'+error_thrown.title+'</p>');
|
||||
search_results.append('<p>'+error_thrown.message+'</p>');
|
||||
}
|
||||
|
||||
|
||||
@@ -335,7 +335,7 @@ function ipa_details_load(container, pkey, on_win, on_fail)
|
||||
|
||||
var details = $('.details', container).empty();
|
||||
details.append('<p>Error: '+error_thrown.name+'</p>');
|
||||
details.append('<p>URL: '+this.url+'</p>');
|
||||
details.append('<p>'+error_thrown.title+'</p>');
|
||||
details.append('<p>'+error_thrown.message+'</p>');
|
||||
}
|
||||
|
||||
|
||||
@@ -109,35 +109,7 @@ 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) {
|
||||
if (!data) {
|
||||
var error_thrown = {
|
||||
name: 'HTTP Error '+xhr.status,
|
||||
message: data ? xhr.statusText : "No response"
|
||||
};
|
||||
ipa_error_handler.call(this, xhr, text_status, error_thrown);
|
||||
|
||||
} else if (data.error) {
|
||||
var error_thrown = {
|
||||
name: 'IPA Error '+data.error.code,
|
||||
message: data.error.message
|
||||
};
|
||||
ipa_error_handler.call(this, xhr, text_status, error_thrown);
|
||||
|
||||
} else if (win_callback) {
|
||||
win_callback.call(this, data, text_status, xhr);
|
||||
}
|
||||
}
|
||||
|
||||
function ipa_error_handler(xhr, text_status, error_thrown) {
|
||||
IPA.error_dialog.empty();
|
||||
IPA.error_dialog.attr('title', 'Error: '+error_thrown.name);
|
||||
|
||||
IPA.error_dialog.append('<p>URL: '+this.url+'</p>');
|
||||
if (error_thrown.message) {
|
||||
IPA.error_dialog.append('<p>'+error_thrown.message+'</p>');
|
||||
}
|
||||
|
||||
function dialog_open(xhr, text_status, error_thrown) {
|
||||
var that = this;
|
||||
|
||||
IPA.error_dialog.dialog({
|
||||
@@ -156,6 +128,60 @@ function ipa_cmd(name, args, options, win_callback, fail_callback, objname)
|
||||
});
|
||||
}
|
||||
|
||||
function success_handler(data, text_status, xhr) {
|
||||
if (!data) {
|
||||
var error_thrown = {
|
||||
title: 'HTTP Error '+xhr.status,
|
||||
message: data ? xhr.statusText : "No response"
|
||||
};
|
||||
http_error_handler.call(this, xhr, text_status, error_thrown);
|
||||
|
||||
} else if (data.error) {
|
||||
var error_thrown = {
|
||||
title: 'IPA Error '+data.error.code,
|
||||
message: data.error.message
|
||||
};
|
||||
ipa_error_handler.call(this, xhr, text_status, error_thrown);
|
||||
|
||||
} else if (win_callback) {
|
||||
win_callback.call(this, data, text_status, xhr);
|
||||
}
|
||||
}
|
||||
|
||||
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_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 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++;
|
||||
|
||||
var method_name = name;
|
||||
@@ -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);
|
||||
|
||||
@@ -296,7 +296,7 @@ function search_load(container, criteria, on_win, on_fail)
|
||||
|
||||
var search_results = $('.search-results', container);
|
||||
search_results.append('<p>Error: '+error_thrown.name+'</p>');
|
||||
search_results.append('<p>URL: '+this.url+'</p>');
|
||||
search_results.append('<p>'+error_thrown.title+'</p>');
|
||||
search_results.append('<p>'+error_thrown.message+'</p>');
|
||||
}
|
||||
|
||||
|
||||
@@ -94,7 +94,7 @@ $(function() {
|
||||
function init_on_error(xhr, text_status, error_thrown) {
|
||||
var navigation = $('#navigation').empty();
|
||||
navigation.append('<p>Error: '+error_thrown.name+'</p>');
|
||||
navigation.append('<p>URL: '+this.url+'</p>');
|
||||
navigation.append('<p>'+error_thrown.title+'</p>');
|
||||
navigation.append('<p>'+error_thrown.message+'</p>');
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user