On 07/08/2011 12:40 PM, Endi Sukma Dewata wrote:
On 7/8/2011 10:06 AM, Adam Young wrote:


Some issues:

1. The new code in IPA.widget.test_dirty() seems to be redundant.

    if ((that.values.length === 0) &&
        (values.length === 1) &&
        values[0] === ""){
        return false;
    }

It's already covered by a similar code above it.

Not quite.  This happens when the widget defaults a blank field to [""].

2. The commented code in details.js:167 can be removed (and 158 too).
Done

3. Instead of returning empty array, the details_tests.js:173 should return the overridden method's return value.

    return widget.widget_save();

Just keeps the test from breaking.  Not really checking anything
From 1cb42ebf0791653b341fdda974634d90c6ba6df9 Mon Sep 17 00:00:00 2001
From: Adam Young <ayo...@redhat.com>
Date: Fri, 8 Jul 2011 10:15:16 -0400
Subject: [PATCH] clear errors on reset

https://fedorahosted.org/freeipa/ticket/1446
---
 install/ui/details.js            |    2 +-
 install/ui/test/details_tests.js |    1 +
 install/ui/widget.js             |   16 +++++++++++++++-
 3 files changed, 17 insertions(+), 2 deletions(-)

diff --git a/install/ui/details.js b/install/ui/details.js
index 6a2def7fb5447aba59998876bb6257f2415900c5..85aa9be0b0ae4da3c22964b0ceb380c6ac551404 100644
--- a/install/ui/details.js
+++ b/install/ui/details.js
@@ -164,7 +164,7 @@ IPA.details_section = function(spec) {
         var fields = that.fields.values;
         for (var i=0; i<fields.length; i++) {
             var field = fields[i];
-            var span = $('span[name='+field.name+']', this.container).first();
+//            var span = $('span[name='+field.name+']', this.container).first();
             field.reset();
         }
     };
diff --git a/install/ui/test/details_tests.js b/install/ui/test/details_tests.js
index 71e6bf98eb585b9d5a179842f68fc257dda5aa08..375b8ed1ef977fa7d4f299dfd4842e9a2426a2c6 100644
--- a/install/ui/test/details_tests.js
+++ b/install/ui/test/details_tests.js
@@ -171,6 +171,7 @@ test("Testing details lifecycle: create, setup, load.", function(){
         widget.save = function() {
             save_called = true;
             widget.widget_save();
+            return [];
         };
         return widget;
     }
diff --git a/install/ui/widget.js b/install/ui/widget.js
index 0ec9a968bf5415d3f21fd2d0a2d8cb01eec64797..b2a325f448566b0823744e647cb670ec1c4c7527 100644
--- a/install/ui/widget.js
+++ b/install/ui/widget.js
@@ -140,6 +140,12 @@ IPA.widget = function(spec) {
         that.valid = true;
 
         var values = that.save();
+        if (!values){
+            return;
+        }
+        if (values.length ===0 ){
+            return;
+        }
         var value = values[0];
         if (!value) {
             return;
@@ -202,6 +208,12 @@ IPA.widget = function(spec) {
             return true;
         }
 
+        if ((that.values.length === 0) &&
+            (values.length === 1) &&
+            values[0] === ""){
+            return false;
+        }
+
         if (values.length != that.values.length) {
             return true;
         }
@@ -264,6 +276,7 @@ IPA.widget = function(spec) {
 
     that.reset = function() {
         that.update();
+        that.validate();
         that.set_dirty(false);
     };
 
@@ -1704,11 +1717,12 @@ IPA.entity_select_widget = function(spec) {
 
     that.reset = function() {
         that.entity_filter.val(that.values[0]);
-        that.set_dirty(false);
         populate_select(that.values[0]);
         if (editable){
             that.edit_box.val(that.values[0]);
         }
+        that.validate();
+        that.set_dirty(false);
     };
 
     that.load = function(record) {
-- 
1.7.5.2

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

Reply via email to