details:   /erp/devel/pi/rev/fb0ec3d5e010
changeset: 11904:fb0ec3d5e010
user:      Iván Perdomo <ivan.perdomo <at> openbravo.com>
date:      Tue May 03 19:43:03 2011 +0200
summary:   Issue 16955: Reset width value when non visible

details:   /erp/devel/pi/rev/4ec6d821e3a1
changeset: 11905:4ec6d821e3a1
user:      Iván Perdomo <ivan.perdomo <at> openbravo.com>
date:      Tue May 03 19:46:55 2011 +0200
summary:   Fixes issue 16955: Ability to add non visible fields to status bar
- When a field is not visible but shown in status bar a HiddenItem is used
- The OBViewFormComponent is not filtering anymore by display = true
- If a section has all its fields non displayed, the visibility is set to
        false
- Fixes some JSLint warnings based on new version

diffstat:

 
modules/org.openbravo.client.application/src/org/openbravo/client/application/templates/ob-view-field.js.ftl
  |  12 ++-
 
modules/org.openbravo.client.application/src/org/openbravo/client/application/window/OBViewFormComponent.java
 |  32 +++++++-
 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-view-form.js
              |  39 ++++++---
 
modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/reference/UIDefinition.java
               |   3 +
 4 files changed, 66 insertions(+), 20 deletions(-)

diffs (286 lines):

diff -r 870e06068e41 -r 4ec6d821e3a1 
modules/org.openbravo.client.application/src/org/openbravo/client/application/templates/ob-view-field.js.ftl
--- 
a/modules/org.openbravo.client.application/src/org/openbravo/client/application/templates/ob-view-field.js.ftl
      Tue May 03 17:42:44 2011 +0200
+++ 
b/modules/org.openbravo.client.application/src/org/openbravo/client/application/templates/ob-view-field.js.ftl
      Tue May 03 19:46:55 2011 +0200
@@ -34,15 +34,18 @@
         inpColumnName: '${fieldDefinition.inpColumnName?string}',
         referencedKeyColumnName: 
'${fieldDefinition.referencedKeyColumnName?string}',
         targetEntity: '${fieldDefinition.targetEntity?string}',
+        <#if !fieldDefinition.displayed>
+        editorType: 'HiddenItem',
+        </#if>
         required: ${fieldDefinition.required?string},
-          <#if fieldDefinition.redrawOnChange?string = "true" >
+          <#if fieldDefinition.redrawOnChange?string = "true" && 
fieldDefinition.displayed>
           redrawOnChange: true,
           changed: function(form, item, value) {
             this.Super('changed', arguments);
             form.onFieldChanged(form, item, value);
           },
           </#if>
-          <#if fieldDefinition.showIf != "">
+          <#if fieldDefinition.showIf != "" && fieldDefinition.displayed>
           showIf: function(item, value, form, values) {            
             var context = form.view.getContextInfo(false, true, true),
                 currentValues = values || form.view.getCurrentValues();
@@ -62,6 +65,9 @@
           </#if>
         </#if>
         <#if fieldDefinition.type = "OBSectionItem" || fieldDefinition.type = 
"OBNoteSectionItem" || fieldDefinition.type = "OBLinkedItemSectionItem" >
+        <#if !fieldDefinition.displayed>
+        visible: false,
+        </#if>
         sectionExpanded: ${fieldDefinition.expanded?string},
         defaultValue: '${fieldDefinition.label?js_string}',
         itemIds: [
@@ -71,6 +77,6 @@
         ],
         </#if>
         ${fieldDefinition.fieldProperties}
-        dummy: "dummy"
+        dummy: ''
     }
 </#macro>
\ No newline at end of file
diff -r 870e06068e41 -r 4ec6d821e3a1 
modules/org.openbravo.client.application/src/org/openbravo/client/application/window/OBViewFormComponent.java
--- 
a/modules/org.openbravo.client.application/src/org/openbravo/client/application/window/OBViewFormComponent.java
     Tue May 03 17:42:44 2011 +0200
+++ 
b/modules/org.openbravo.client.application/src/org/openbravo/client/application/window/OBViewFormComponent.java
     Tue May 03 19:46:55 2011 +0200
@@ -171,7 +171,8 @@
     int colNum = 1;
     for (Field field : adFields) {
 
-      if (field.getColumn() == null || !field.isDisplayed() || 
!field.isActive()) {
+      if (field.getColumn() == null || !field.isActive()
+          || (!field.isDisplayed() && !field.isShownInStatusBar())) {
         continue;
       }
 
@@ -194,7 +195,6 @@
       viewField.setShowIf(displayLogicMap.get(field) != null ? 
displayLogicMap.get(field) : "");
       viewField.setReadOnlyIf(readOnlyLogicMap.get(field) != null ? 
readOnlyLogicMap.get(field)
           : "");
-
       // Positioning some fields in odd-columns
       if (colNum % 2 == 0 && (field.isStartinoddcolumn() || 
viewField.getColSpan() == 2)) {
         final OBViewFieldSpacer spacer = new OBViewFieldSpacer();
@@ -300,6 +300,8 @@
     public String getShowIf();
 
     public String getReadOnlyIf();
+
+    public boolean isDisplayed();
   }
 
   public class OBViewFieldAudit implements OBViewFieldDefinition {
@@ -428,6 +430,10 @@
     public boolean isSearchField() {
       return !refEntity.isEmpty();
     }
+
+    public boolean isDisplayed() {
+      return true;
+    }
   }
 
   public class OBViewField implements OBViewFieldDefinition {
@@ -474,6 +480,9 @@
     }
 
     public String getType() {
+      if (field.isDisplayed() != null && !field.isDisplayed()) {
+        return "text";
+      }
       return getUIDefinition().getName();
     }
 
@@ -632,6 +641,10 @@
     public String getReadOnlyIf() {
       return readOnlyIf;
     }
+
+    public boolean isDisplayed() {
+      return field.isDisplayed() != null && field.isDisplayed();
+    }
   }
 
   public class DefaultVirtualField implements OBViewFieldDefinition {
@@ -708,6 +721,9 @@
       return "";
     }
 
+    public boolean isDisplayed() {
+      return true;
+    }
   }
 
   public class OBViewFieldGroup extends DefaultVirtualField {
@@ -764,6 +780,14 @@
       this.expanded = expanded;
     }
 
+    public boolean isDisplayed() {
+      for (OBViewFieldDefinition child : children) {
+        if (child.isDisplayed()) {
+          return true;
+        }
+      }
+      return false;
+    }
   }
 
   public class LinkedItemsField extends DefaultVirtualField {
@@ -977,6 +1001,10 @@
       return "";
     }
 
+    public boolean isDisplayed() {
+      return true;
+    }
+
   }
 
   public static class FormFieldComparator implements Comparator<Field> {
diff -r 870e06068e41 -r 4ec6d821e3a1 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-view-form.js
--- 
a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-view-form.js
  Tue May 03 17:42:44 2011 +0200
+++ 
b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-view-form.js
  Tue May 03 19:46:55 2011 +0200
@@ -104,7 +104,7 @@
   },
 
   getStatusBarFields: function() {
-    var statusBarFields = [[],[]], i, item, value;
+    var statusBarFields = [[],[]], i, item, value, tmpValue;
     for(i = 0; i < this.statusBarFields.length; i++) {
       item = this.getItem(this.statusBarFields[i]);
       value = item.getDisplayValue();
@@ -118,6 +118,13 @@
           }
         }
 
+        if(item.editorType === 'HiddenItem') {
+          tmpValue = this.getValue(item.name + '._identifier');
+          if(typeof tmpValue !== 'undefined') {
+            value = tmpValue;
+          }
+        }
+
         statusBarFields[0].push(item.getTitle());
         statusBarFields[1].push(value);
       }
@@ -289,7 +296,7 @@
   },
   
   resetFocusItem: function() {
-    var items = this.getItems(), length = items.length, item;
+    var items = this.getItems(), length = items.length, item, i;
     
     var errorFld = this.getFirstErrorItem();
     if (errorFld) {
@@ -325,7 +332,7 @@
     }
 
     if (items) {
-      for (var i = 0; i < length; i++) {
+      for (i = 0; i < length; i++) {
         item = items[i];
         if (item.getCanFocus() && !item.isDisabled()) {
           this.setFocusInItem(item);
@@ -345,7 +352,7 @@
   
   setFindNewFocusItem: function() {
     var focusItem = this.getFocusItem(), item, items = this.getItems(),
-        length = items.length;
+        length = items.length, i;
     
     // used when double clicking a specific cell in a record
     if (this.forceFocusedField) {
@@ -372,7 +379,7 @@
     }
 
     if (items) {
-      for (var i = 0; i < length; i++) {
+      for (i = 0; i < length; i++) {
         item = items[i];
         if (item.getCanFocus() && !item.isDisabled()) {
           this.setFocusInItem(item, true);
@@ -382,10 +389,11 @@
     }    
   },
   
-  getFieldFromInpColumnName: function(inpColumnName){
+  getFieldFromInpColumnName: function(inpColumnName) {
+    var i;
     if (!this.fieldsByInpColumnName) {
       var localResult = [], fields = this.getFields();
-      for (var i = 0; i < fields.length; i++) {
+      for (i = 0; i < fields.length; i++) {
         if (fields[i].inpColumnName) {
           localResult[fields[i].inpColumnName.toLowerCase()] = fields[i];
         }
@@ -395,10 +403,11 @@
     return this.fieldsByInpColumnName[inpColumnName.toLowerCase()];
   },
   
-  getFieldFromColumnName: function(columnName){
+  getFieldFromColumnName: function(columnName) {
+    var i;
     if (!this.fieldsByColumnName) {
       var localResult = [], fields = this.getFields();
-      for (var i = 0; i < fields.length; i++) {
+      for (i = 0; i < fields.length; i++) {
         if (fields[i].columnName) {
           localResult[fields[i].columnName.toLowerCase()] = fields[i];
         }
@@ -579,7 +588,7 @@
         section.visible = false;
         for(j = 0; j < section.itemIds.length; j++) {
           item = this.getItem(section.itemIds[j]);
-          if(item && item.visible) {
+          if(item && item.visible && item.editorType !== 'HiddenItem') {
             section.visible = true;
             break;
           }
@@ -627,7 +636,7 @@
   },
   
   setDisabled: function(state) {
-    var previousAllItemsDisabled = this.allItemsDisabled;
+    var previousAllItemsDisabled = this.allItemsDisabled, i;
     this.allItemsDisabled = state;
 
     if (previousAllItemsDisabled !== this.allItemsDisabled) {
@@ -640,7 +649,7 @@
           this.redraw();
           this.view.viewGrid.refreshEditRow();
           // reset the canfocus
-          for (var i = 0; i < this.getFields().length; i++) {
+          for (i = 0; i < this.getFields().length; i++) {
             delete this.getFields()[i].canFocus;
           }
           if (this.view.isActiveView()) {
@@ -1120,11 +1129,11 @@
   },
   
   handleFieldErrors: function(errors){
-    var msg = OB.I18N.getLabel('OBUIAPP_ErrorInFields');
-    var additionalMsg = '';
+    var msg = OB.I18N.getLabel('OBUIAPP_ErrorInFields'),
+        additionalMsg = '', err;
     if (errors) {
       this.setErrors(errors, true);
-      for (var err in errors) {
+      for (err in errors) {
         if (errors.hasOwnProperty(err)) {
           var fld = this.getField(err); 
           if (!fld || !fld.visible) {
diff -r 870e06068e41 -r 4ec6d821e3a1 
modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/reference/UIDefinition.java
--- 
a/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/reference/UIDefinition.java
   Tue May 03 17:42:44 2011 +0200
+++ 
b/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/reference/UIDefinition.java
   Tue May 03 19:46:55 2011 +0200
@@ -126,6 +126,9 @@
    * @return a JSONObject string which is used to initialize the formitem.
    */
   public String getFieldProperties(Field field) {
+    if (field.isDisplayed() != null && !field.isDisplayed()) {
+      return "{width: ''}"; // Not displayed fields use HiddenItem
+    }
     return "{width: '*'}";
   }
 

------------------------------------------------------------------------------
WhatsUp Gold - Download Free Network Management Software
The most intuitive, comprehensive, and cost-effective network 
management toolset available today.  Delivers lowest initial 
acquisition cost and overall TCO of any competing solution.
http://p.sf.net/sfu/whatsupgold-sd
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to