details:   /erp/devel/pi/rev/166b5bfd652e
changeset: 10860:166b5bfd652e
user:      Martin Taal <martin.taal <at> openbravo.com>
date:      Thu Feb 24 10:33:10 2011 +0100
summary:   Solve undefined js error

details:   /erp/devel/pi/rev/804521660761
changeset: 10861:804521660761
user:      Martin Taal <martin.taal <at> openbravo.com>
date:      Thu Feb 24 10:33:27 2011 +0100
summary:   Solve show of db id in selector has link

details:   /erp/devel/pi/rev/25524a2a7c47
changeset: 10862:25524a2a7c47
user:      Martin Taal <martin.taal <at> openbravo.com>
date:      Thu Feb 24 10:33:49 2011 +0100
summary:   Solve duplicate width attribute

details:   /erp/devel/pi/rev/be5823345242
changeset: 10863:be5823345242
user:      Martin Taal <martin.taal <at> openbravo.com>
date:      Thu Feb 24 10:34:11 2011 +0100
summary:   Set width attribute as field property

diffstat:

 
modules/org.openbravo.client.application/src/org/openbravo/client/application/templates/ob-view-field.js.ftl
                |    1 -
 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-view-grid.js
                            |    4 +-
 
modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/reference/FKSearchUIDefinition.java
                     |  131 +++++----
 
modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/reference/UIDefinition.java
                             |    2 +-
 
modules/org.openbravo.userinterface.selector/src/org/openbravo/userinterface/selector/reference/FKSelectorUIDefinition.java
 |   13 +-
 
modules/org.openbravo.userinterface.selector/web/org.openbravo.userinterface.selector/js/ob-selector-item.js
                |   10 +-
 6 files changed, 89 insertions(+), 72 deletions(-)

diffs (255 lines):

diff -r 9bbe067ee20c -r be5823345242 
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
      Thu Feb 24 09:31:30 2011 +0100
+++ 
b/modules/org.openbravo.client.application/src/org/openbravo/client/application/templates/ob-view-field.js.ftl
      Thu Feb 24 10:34:11 2011 +0100
@@ -29,7 +29,6 @@
         rowSpan: ${fieldDefinition.rowSpan},
         startRow: ${fieldDefinition.startRow?string},
         endRow: ${fieldDefinition.endRow?string},
-        width: '*',
         <#if fieldDefinition.standardField>
         columnName: '${fieldDefinition.columnName?string}',
         inpColumnName: '${fieldDefinition.inpColumnName?string}',
diff -r 9bbe067ee20c -r be5823345242 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-view-grid.js
--- 
a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-view-grid.js
  Thu Feb 24 09:31:30 2011 +0100
+++ 
b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-view-grid.js
  Thu Feb 24 10:34:11 2011 +0100
@@ -1195,7 +1195,7 @@
       me.Super('discardEdits', localArguments);
       
       // remove the record if new
-      if (record._new) {
+      if (record && record._new) {
         me.data.handleUpdate('remove', [{
           id: record.id
         }]);
@@ -1206,7 +1206,7 @@
       }
       
       this.view.standardWindow.cleanUpAutoSaveProperties();
-      
+       
       // update after removing the error msg
       this.view.updateTabTitle();
       this.view.toolBar.updateButtonState(true);
diff -r 9bbe067ee20c -r be5823345242 
modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/reference/FKSearchUIDefinition.java
--- 
a/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/reference/FKSearchUIDefinition.java
   Thu Feb 24 09:31:30 2011 +0100
+++ 
b/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/reference/FKSearchUIDefinition.java
   Thu Feb 24 10:34:11 2011 +0100
@@ -18,6 +18,11 @@
  */
 package org.openbravo.client.kernel.reference;
 
+import java.util.ArrayList;
+import java.util.List;
+
+import org.codehaus.jettison.json.JSONArray;
+import org.codehaus.jettison.json.JSONException;
 import org.codehaus.jettison.json.JSONObject;
 import org.openbravo.base.exception.OBException;
 import org.openbravo.base.model.Property;
@@ -65,80 +70,76 @@
 
   @Override
   public String getFieldProperties(Field field) {
+    final String superJsonStr = super.getFieldProperties(field);
     if (field == null) {
-      return "";
+      return superJsonStr;
     }
-    final StringBuilder props = new StringBuilder();
-    final Property prop = 
KernelUtils.getInstance().getPropertyFromColumn(field.getColumn());
-    final Reference reference = OBDal.getInstance().get(Reference.class,
-        prop.getDomainType().getReference().getId());
-    ModelImplementation modelImplementation = null;
-    for (ModelImplementation localModelImplementation : 
reference.getADModelImplementationList()) {
-      if (localModelImplementation.isActive()) {
-        modelImplementation = localModelImplementation;
-        break;
-      }
-    }
-    if (modelImplementation == null) {
-      // TODO: warn
-      return props.toString();
-    }
-    ModelImplementationMapping modelImplementationMapping = null;
-    for (ModelImplementationMapping localModelImplementationMapping : 
modelImplementation
-        .getADModelImplementationMappingList()) {
-      if (localModelImplementationMapping.isActive()) {
-        if (modelImplementationMapping == null) {
-          modelImplementationMapping = localModelImplementationMapping;
-        } else if (localModelImplementationMapping.isDefault()) {
-          modelImplementationMapping = localModelImplementationMapping;
+    try {
+      final JSONObject json = new JSONObject(
+          superJsonStr != null && superJsonStr.startsWith("{") ? superJsonStr 
: "{}");
+      final Property prop = 
KernelUtils.getInstance().getPropertyFromColumn(field.getColumn());
+      final Reference reference = OBDal.getInstance().get(Reference.class,
+          prop.getDomainType().getReference().getId());
+      ModelImplementation modelImplementation = null;
+      for (ModelImplementation localModelImplementation : 
reference.getADModelImplementationList()) {
+        if (localModelImplementation.isActive()) {
+          modelImplementation = localModelImplementation;
           break;
         }
       }
-    }
-    if (modelImplementationMapping == null) {
-      // TODO: warn
-      return getJsonObjectString(props.toString());
-    }
-    props.append("searchUrl: '" + modelImplementationMapping.getMappingName() 
+ "'");
-
-    Selector selector = null;
-    for (Selector localSelector : reference.getADSelectorList()) {
-      if (localSelector.isActive()) {
-        selector = localSelector;
-        break;
+      if (modelImplementation == null) {
+        return superJsonStr;
       }
-    }
-    if (selector == null) {
-      // TODO: warn
-      return getJsonObjectString(props.toString());
-    }
-    final StringBuilder inFields = new StringBuilder();
-    final StringBuilder outFields = new StringBuilder();
-    for (SelectorColumn selectorColumn : selector.getADSelectorColumnList()) {
-      if (selectorColumn.isActive()) {
-        String columnName = selectorColumn.getDBColumnName()
-            + (selectorColumn.getSuffix() != null ? selectorColumn.getSuffix() 
: "");
-        columnName = "inp" + Sqlc.TransformaNombreColumna(columnName);
-        if (selectorColumn.getColumnType().equals("I")) {
-          if (inFields.length() > 0) {
-            inFields.append(",");
+      ModelImplementationMapping modelImplementationMapping = null;
+      for (ModelImplementationMapping localModelImplementationMapping : 
modelImplementation
+          .getADModelImplementationMappingList()) {
+        if (localModelImplementationMapping.isActive()) {
+          if (modelImplementationMapping == null) {
+            modelImplementationMapping = localModelImplementationMapping;
+          } else if (localModelImplementationMapping.isDefault()) {
+            modelImplementationMapping = localModelImplementationMapping;
+            break;
           }
-          inFields.append("'" + columnName + "'");
-        } else {
-          if (outFields.length() > 0) {
-            outFields.append(",");
-          }
-          outFields.append("'" + columnName + "'");
         }
       }
+      if (modelImplementationMapping == null) {
+        // TODO: warn
+        return superJsonStr;
+      }
+
+      json.put("searchUrl", modelImplementationMapping.getMappingName());
+
+      Selector selector = null;
+      for (Selector localSelector : reference.getADSelectorList()) {
+        if (localSelector.isActive()) {
+          selector = localSelector;
+          break;
+        }
+      }
+      if (selector == null) {
+        // TODO: warn
+        return superJsonStr;
+      }
+      final List<String> inFields = new ArrayList<String>();
+      final List<String> outFields = new ArrayList<String>();
+      for (SelectorColumn selectorColumn : selector.getADSelectorColumnList()) 
{
+        if (selectorColumn.isActive()) {
+          String columnName = selectorColumn.getDBColumnName()
+              + (selectorColumn.getSuffix() != null ? 
selectorColumn.getSuffix() : "");
+          columnName = "inp" + Sqlc.TransformaNombreColumna(columnName);
+          if (selectorColumn.getColumnType().equals("I")) {
+            inFields.add(columnName);
+          } else {
+            outFields.add(columnName);
+          }
+        }
+      }
+      json.put("inFields", new JSONArray(inFields));
+      json.put("outFields", new JSONArray(outFields));
+
+      return json.toString();
+    } catch (JSONException e) {
+      throw new OBException("Exception when generating field properties for " 
+ field, e);
     }
-    props.append(", inFields: [" + inFields.toString() + "]");
-    props.append(", outFields: [" + outFields.toString() + "]");
-
-    return getJsonObjectString(props.toString());
-  }
-
-  private String getJsonObjectString(String value) {
-    return "{" + value.trim() + "}";
   }
 }
diff -r 9bbe067ee20c -r be5823345242 
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
   Thu Feb 24 09:31:30 2011 +0100
+++ 
b/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/reference/UIDefinition.java
   Thu Feb 24 10:34:11 2011 +0100
@@ -123,7 +123,7 @@
    * @return a JSONObject string which is used to initialize the formitem.
    */
   public String getFieldProperties(Field field) {
-    return "";
+    return "{width: '*'}";
   }
 
   /**
diff -r 9bbe067ee20c -r be5823345242 
modules/org.openbravo.userinterface.selector/src/org/openbravo/userinterface/selector/reference/FKSelectorUIDefinition.java
--- 
a/modules/org.openbravo.userinterface.selector/src/org/openbravo/userinterface/selector/reference/FKSelectorUIDefinition.java
       Thu Feb 24 09:31:30 2011 +0100
+++ 
b/modules/org.openbravo.userinterface.selector/src/org/openbravo/userinterface/selector/reference/FKSelectorUIDefinition.java
       Thu Feb 24 10:34:11 2011 +0100
@@ -73,6 +73,9 @@
   }
 
   public String getFieldProperties(Field field) {
+    if (field == null) {
+      return super.getFieldProperties(field);
+    }
     final Selector selector = getSelector(field);
     final String tableName = field.getColumn().getTable().getDBTableName();
     final String columnName = field.getColumn().getDBColumnName();
@@ -88,7 +91,15 @@
     parameters.put(SelectorConstants.PARAM_TARGET_PROPERTY_NAME, 
property.getName());
     selectorComponent.setId(selector.getId());
     selectorComponent.setParameters(parameters);
-    return selectorComponent.generate();
+
+    // append the super fields
+    final String selectorFields = selectorComponent.generate();
+    final String superJsonStr = super.getFieldProperties(field);
+    if (superJsonStr.trim().startsWith("{")) {
+      return selectorFields + ","
+          + superJsonStr.trim().substring(1, superJsonStr.trim().length() - 1);
+    }
+    return selectorFields;
   }
 
   private Selector getSelector(Field field) {
diff -r 9bbe067ee20c -r be5823345242 
modules/org.openbravo.userinterface.selector/web/org.openbravo.userinterface.selector/js/ob-selector-item.js
--- 
a/modules/org.openbravo.userinterface.selector/web/org.openbravo.userinterface.selector/js/ob-selector-item.js
      Thu Feb 24 09:31:30 2011 +0100
+++ 
b/modules/org.openbravo.userinterface.selector/web/org.openbravo.userinterface.selector/js/ob-selector-item.js
      Thu Feb 24 10:34:11 2011 +0100
@@ -491,12 +491,18 @@
   },
   
   setValueFromRecord: function(record){
+    // note this.displayfield already contains the prefix of the property name
     if (!record) {
       this.setValue(null);
-      this.form.setValue(this.name + '.' + this.displayField, null);
+      this.form.setValue(this.displayField, null);
     } else {
       this.setValue(record[this.gridValueField]);
-      this.form.setValue(this.name + '.' + this.displayField, 
record[this.gridDisplayField]);
+      this.form.setValue(this.displayField, record[this.gridDisplayField]);
+      if (!this.valueMap) {
+        this.valueMap = {};
+      }
+      this.valueMap[record[this.gridValueField]] = 
record[this.gridDisplayField];
+      this.updateValueMap();    
     }
     this.handleOutFields(record);
     if (this.form && this.form.handleItemChange) {

------------------------------------------------------------------------------
Free Software Download: Index, Search & Analyze Logs and other IT data in 
Real-Time with Splunk. Collect, index and harness all the fast moving IT data 
generated by your applications, servers and devices whether physical, virtual
or in the cloud. Deliver compliance at lower cost and gain new business 
insights. http://p.sf.net/sfu/splunk-dev2dev 
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to