ID range adder dialog was not properly addressed in field binding refactoring.

The usage of reset caused some weird loops.

https://fedorahosted.org/freeipa/ticket/4326
--
Petr Vobornik
From 9e9e72dc795156811662b5130ad58084a898974c Mon Sep 17 00:00:00 2001
From: Petr Vobornik <[email protected]>
Date: Thu, 24 Apr 2014 16:37:38 +0200
Subject: [PATCH] webui: regression - enable fields on idrange type change
 (add)

ID range adder was not properly addressed in field binding refactoring.

The usage of reset caused some weird loops.

https://fedorahosted.org/freeipa/ticket/4326
---
 install/ui/src/freeipa/idrange.js | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/install/ui/src/freeipa/idrange.js b/install/ui/src/freeipa/idrange.js
index d92ba7359ad6af74f2e7df1ce72d93188f8660c5..c7dc5c6832a484060a18197ba567cfd0f7e6b42c 100644
--- a/install/ui/src/freeipa/idrange.js
+++ b/install/ui/src/freeipa/idrange.js
@@ -19,6 +19,7 @@
  */
 
 define([
+        'dojo/on',
         './ipa',
         './jquery',
         './phases',
@@ -27,7 +28,7 @@ define([
         './search',
         './association',
         './entity'],
-            function(IPA, $, phases, reg) {
+            function(on, IPA, $, phases, reg) {
 
 var exp = IPA.idrange = {};
 
@@ -171,7 +172,7 @@ IPA.idrange_adder_policy = function(spec) {
     }
 
     function disable(field) {
-        field.reset();
+        field.set_value(['']); // avoid usage of reset() to break event handler loop
         field.set_required(false);
         field.set_enabled(false);
     }
@@ -195,9 +196,9 @@ IPA.idrange_adder_policy = function(spec) {
             require(secondarybaserid_f);
         }
 
-        type_f.widget.value_changed.attach(that.on_input_change);
-        baserid_f.widget.value_changed.attach(that.on_input_change);
-        secondarybaserid_f.widget.value_changed.attach(that.on_input_change);
+        on(type_f, 'value-change', that.on_input_change);
+        on(baserid_f, 'value-change', that.on_input_change);
+        on(secondarybaserid_f, 'value-change', that.on_input_change);
     };
 
     that.on_input_change = function() {
@@ -206,9 +207,9 @@ IPA.idrange_adder_policy = function(spec) {
         var secondarybaserid_f = that.container.fields.get_field('ipasecondarybaserid');
         var trusteddomainsid_f = that.container.fields.get_field('ipanttrusteddomainsid');
 
-        var type_v = type_f.save()[0];
-        var baserid_v = baserid_f.save()[0] || '';
-        var secondarybaserid_v = secondarybaserid_f.save()[0] || '';
+        var type_v = type_f.get_value()[0];
+        var baserid_v = baserid_f.get_value()[0] || '';
+        var secondarybaserid_v = secondarybaserid_f.get_value()[0] || '';
 
         var is_ad_range = (type_v === 'ipa-ad-trust' || type_v === 'ipa-ad-trust-posix');
 
-- 
1.9.0

_______________________________________________
Freeipa-devel mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/freeipa-devel

Reply via email to