Re: [Freeipa-devel] [PATCH] 238 Fixed error after login on IE

2011-08-09 Thread Petr Vobornik

On 08/08/2011 08:34 PM, Endi Sukma Dewata wrote:

The IE does not resend the request body during negotiation, so after
after a successful authentication the server could not find the JSON
request to parse.

The Web UI has been modified to detect this error and resend the
initialization request.

Ticket #1540



___
Freeipa-devel mailing list
Freeipa-devel@redhat.com
https://www.redhat.com/mailman/listinfo/freeipa-devel

Code looks good.

But, I didn't test it in IE9, because I don't have one nor Windows vm 
(will try to get one).


Modifications in error handling are OK.

If it really works in IE I would consider it ACKed.

--
Petr Vobornik

___
Freeipa-devel mailing list
Freeipa-devel@redhat.com
https://www.redhat.com/mailman/listinfo/freeipa-devel


Re: [Freeipa-devel] [PATCH] 238 Fixed error after login on IE

2011-08-09 Thread Endi Sukma Dewata

On 8/9/2011 6:06 AM, Petr Vobornik wrote:

Code looks good.

But, I didn't test it in IE9, because I don't have one nor Windows vm
(will try to get one).

Modifications in error handling are OK.

If it really works in IE I would consider it ACKed.


Since we don't officially support IE, as long as it still works in 
Firefox it should be fine. I've verified that it works on IE9 so I 
pushed this to master.


--
Endi S. Dewata

___
Freeipa-devel mailing list
Freeipa-devel@redhat.com
https://www.redhat.com/mailman/listinfo/freeipa-devel


[Freeipa-devel] [PATCH] 238 Fixed error after login on IE

2011-08-08 Thread Endi Sukma Dewata

The IE does not resend the request body during negotiation, so after
after a successful authentication the server could not find the JSON
request to parse.

The Web UI has been modified to detect this error and resend the
initialization request.

Ticket #1540

--
Endi S. Dewata
From dbe61f4469252dc834696c3e56d9381353d40aac Mon Sep 17 00:00:00 2001
From: Endi S. Dewata edew...@redhat.com
Date: Wed, 3 Aug 2011 15:26:54 -0500
Subject: [PATCH] Fixed error after login on IE

The IE does not resend the request body during negotiation, so after
after a successful authentication the server could not find the JSON
request to parse.

The Web UI has been modified to detect this error and resend the
initialization request.

Ticket #1540
---
 install/ui/host.js |3 +-
 install/ui/ipa.js  |   74 ++-
 2 files changed, 63 insertions(+), 14 deletions(-)

diff --git a/install/ui/host.js b/install/ui/host.js
index 743196b08fdcfd9d7c91d92a5f9eba6048b498b2..3ffcba34be0ea571b4349e7deaa6a3cd0234f00a 100644
--- a/install/ui/host.js
+++ b/install/ui/host.js
@@ -138,6 +138,7 @@ IPA.host_adder_dialog = function(spec)
 
 that.on_error = function(xhr, text_status, error_thrown)
 {
+var ajax = this;
 var command = that.command;
 var data = error_thrown.data;
 var dialog = null;
@@ -152,7 +153,7 @@ IPA.host_adder_dialog = function(spec)
 fqdn: that.get_field('fqdn').save()
 }
 };
-command.on_success(data, text_status, xhr);
+command.on_success.call(ajax, data, text_status, xhr);
 }
 });
 } else {
diff --git a/install/ui/ipa.js b/install/ui/ipa.js
index d53ee7b126a7d5e103013675620dc973aa9f8a0a..8a3dd4e7d596914687e412aefdda27d7d699261d 100644
--- a/install/ui/ipa.js
+++ b/install/ui/ipa.js
@@ -70,8 +70,35 @@ var IPA = ( function () {
 
 var batch = IPA.batch_command({
 name: 'ipa_init',
+retry: false,
 on_success: on_success,
-on_error: on_error
+on_error: function(xhr, text_status, error_thrown) {
+
+// On IE the request is missing after authentication,
+// so the request needs to be resent.
+if (error_thrown.name == 'IPA Error 909') {
+batch.execute();
+
+} else {
+var ajax = this;
+
+var dialog = IPA.error_dialog({
+xhr: xhr,
+text_status: text_status,
+error_thrown: error_thrown,
+command: batch
+});
+
+dialog.on_cancel = function() {
+dialog.close();
+if (on_error) {
+on_error.call(ajax, xhr, text_status, error_thrown);
+}
+};
+
+dialog.open();
+}
+}
 });
 
 batch.add_command(IPA.command({
@@ -243,12 +270,23 @@ IPA.command = function(spec) {
 that.execute = function() {
 
 function dialog_open(xhr, text_status, error_thrown) {
+
+var ajax = this;
+
 var dialog = IPA.error_dialog({
 xhr: xhr,
 text_status: text_status,
 error_thrown: error_thrown,
 command: that
 });
+
+dialog.on_cancel = function() {
+dialog.close();
+if (that.on_error) {
+that.on_error.call(ajax, xhr, text_status, error_thrown);
+}
+};
+
 dialog.open();
 }
 
@@ -399,6 +437,7 @@ IPA.batch_command = function (spec) {
 method: that.method,
 args: that.args,
 options: that.options,
+retry: that.retry,
 on_success: function(data, text_status, xhr) {
 
 for (var i=0; ithat.commands.length; i++) {
@@ -406,8 +445,10 @@ IPA.batch_command = function (spec) {
 var result = data.result.results[i];
 
 if (!result) {
-if (command.on_error) command.on_error(
-xhr, text_status,
+if (command.on_error) command.on_error.call(
+this,
+xhr,
+text_status,
 {
 name: 'Internal Error '+xhr.status,
 message: result ? xhr.statusText : Internal error
@@ -415,7 +456,8 @@ IPA.batch_command = function (spec) {
 );
 
 } else if (result.error) {
-if (command.on_error) command.on_error(
+if