details: /erp/devel/pi/rev/a8a9ffdb50d5
changeset: 9851:a8a9ffdb50d5
user: Iván Perdomo <ivan.perdomo <at> openbravo.com>
date: Mon Jan 17 11:15:59 2011 +0100
summary: [form] Reimplemented display logic
diffstat:
modules/org.openbravo.client.application/src/org/openbravo/client/application/DynamicExpressionParser.java
| 17 ++++---
modules/org.openbravo.client.application/src/org/openbravo/client/application/templates/ob-view-field.js.ftl
| 16 ++++---
modules/org.openbravo.client.application/src/org/openbravo/client/application/window/FormInitializationComponent.java
| 21 ++++++++++
modules/org.openbravo.client.application/src/org/openbravo/client/application/window/OBViewFormComponent.java
| 2 +-
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-standard-view.js
| 1 +
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-view-form.js
| 14 +++++-
6 files changed, 52 insertions(+), 19 deletions(-)
diffs (212 lines):
diff -r 821f5f52d8f4 -r a8a9ffdb50d5
modules/org.openbravo.client.application/src/org/openbravo/client/application/DynamicExpressionParser.java
---
a/modules/org.openbravo.client.application/src/org/openbravo/client/application/DynamicExpressionParser.java
Mon Jan 17 11:07:30 2011 +0100
+++
b/modules/org.openbravo.client.application/src/org/openbravo/client/application/DynamicExpressionParser.java
Mon Jan 17 11:15:59 2011 +0100
@@ -26,14 +26,11 @@
import org.hibernate.criterion.Expression;
import org.openbravo.client.kernel.KernelUtils;
-import org.openbravo.client.kernel.RequestContext;
import org.openbravo.dal.service.OBCriteria;
import org.openbravo.dal.service.OBDal;
-import org.openbravo.erpCommon.utility.Utility;
import org.openbravo.model.ad.ui.AuxiliaryInput;
import org.openbravo.model.ad.ui.Field;
import org.openbravo.model.ad.ui.Tab;
-import org.openbravo.service.db.DalConnectionProvider;
/**
* Parses a dynamic expressions and extracts information, e.g. The expression
is using a field or an
@@ -53,8 +50,8 @@
private static final String[][] UNIONS = { { "|", " || " }, { "&", " && " }
};
+ private static final String TOKEN_PREFIX = "context.";
private static Map<String, String> exprToJSMap;
-
static {
exprToJSMap = new HashMap<String, String>();
exprToJSMap.put("'Y'", "true");
@@ -62,6 +59,7 @@
private List<Field> fieldsInExpression = new ArrayList<Field>();
private List<AuxiliaryInput> auxInputsInExpression = new
ArrayList<AuxiliaryInput>();
+ private List<String> sessionAttributesInExpression = new ArrayList<String>();
private String code;
private Tab tab;
@@ -121,6 +119,10 @@
return fieldsInExpression;
}
+ public List<String> getSessionAttributes() {
+ return sessionAttributesInExpression;
+ }
+
/*
* This method was partially copied from WadUtility.
*/
@@ -165,12 +167,11 @@
auxInputsInExpression.add(auxIn);
// prevents jslint warning but will only work if auxIn does
// not contain illegal js names..
- return "form.auxInputs." + auxIn.getName() + "";
+ return TOKEN_PREFIX + auxIn.getName();
}
}
- return "'"
- + Utility.getContext(new DalConnectionProvider(false),
RequestContext.get()
- .getVariablesSecureApp(), token, tab.getWindow().getId()) + "'";
+ sessionAttributesInExpression.add(token);
+ return TOKEN_PREFIX + token;
}
/*
diff -r 821f5f52d8f4 -r a8a9ffdb50d5
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
Mon Jan 17 11:07:30 2011 +0100
+++
b/modules/org.openbravo.client.application/src/org/openbravo/client/application/templates/ob-view-field.js.ftl
Mon Jan 17 11:15:59 2011 +0100
@@ -4,14 +4,14 @@
* Version 1.1 (the "License"), being the Mozilla Public License
* Version 1.1 with a permitted attribution clause; you may not use this
* file except in compliance with the License. You may obtain a copy of
- * the License at http://www.openbravo.com/legal/license.html
+ * the License at http://www.openbravo.com/legal/license.html
* Software distributed under the License is distributed on an "AS IS"
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
* License for the specific language governing rights and limitations
* under the License.
* The Original Code is Openbravo ERP.
* The Initial Developer of the Original Code is Openbravo SLU
- * All portions are Copyright (C) 2010 Openbravo SLU
+ * All portions are Copyright (C) 2010-2011 Openbravo SLU
* All Rights Reserved.
* Contributor(s): ______________________________________.
************************************************************************
@@ -35,12 +35,14 @@
referencedKeyColumnName:
'${fieldDefinition.referencedKeyColumnName?string}',
targetEntity: '${fieldDefinition.targetEntity?string}',
required: ${fieldDefinition.required?string},
- redrawOnChange: ${fieldDefinition.redrawOnChange?string},
+ <#if fieldDefinition.redrawOnChange?string = "true" >
+ redrawOnChange: ${fieldDefinition.redrawOnChange?string},
+ </#if>
<#if fieldDefinition.showIf != "">
- showIf: function(item, value, form) {
- // debug console.log('%o', form);
- return form.auxInputs && (${fieldDefinition.showIf});
- },
+ showIf: function(item, value, form, values) {
+ var context = form.view.getContextInfo(false, true);
+ return context && (${fieldDefinition.showIf});
+ },
</#if>
<#if fieldDefinition.searchField>
displayField: '${fieldDefinition.name?js_string}._identifier',
diff -r 821f5f52d8f4 -r a8a9ffdb50d5
modules/org.openbravo.client.application/src/org/openbravo/client/application/window/FormInitializationComponent.java
---
a/modules/org.openbravo.client.application/src/org/openbravo/client/application/window/FormInitializationComponent.java
Mon Jan 17 11:07:30 2011 +0100
+++
b/modules/org.openbravo.client.application/src/org/openbravo/client/application/window/FormInitializationComponent.java
Mon Jan 17 11:15:59 2011 +0100
@@ -43,6 +43,7 @@
import org.openbravo.base.model.Property;
import org.openbravo.base.structure.BaseOBObject;
import org.openbravo.base.structure.ClientEnabled;
+import org.openbravo.client.application.DynamicExpressionParser;
import
org.openbravo.client.application.window.servlet.CalloutHttpServletResponse;
import org.openbravo.client.application.window.servlet.CalloutServletConfig;
import org.openbravo.client.kernel.BaseActionHandler;
@@ -317,6 +318,7 @@
jsonAuxiliaryInputValues.put(auxIn.getName(), columnValues.get("inp"
+ Sqlc.TransformaNombreColumna(auxIn.getName())));
}
+
finalObject.put("auxiliaryInputValues", jsonAuxiliaryInputValues);
if (mode.equals("NEW") || mode.equals("EDIT")) {
@@ -330,6 +332,25 @@
changeEventCols.add(columnName);
}
}
+
+ // Adding session attributes in a dynamic expression
+ // This session attributes could be a preference
+ if (field.getDisplayLogic() != null && field.isDisplayed() &&
field.isActive()) {
+ final DynamicExpressionParser parser = new
DynamicExpressionParser(field
+ .getDisplayLogic(), tab);
+
+ if (parser.getSessionAttributes().size() > 0) {
+ final JSONObject sessionAttributes = new JSONObject();
+ for (String attrName : parser.getSessionAttributes()) {
+ final String attrValue = Utility.getContext(new
DalConnectionProvider(false),
+ RequestContext.get().getVariablesSecureApp(), attrName,
tab.getWindow()
+ .getId());
+ sessionAttributes.put(attrName, attrValue);
+ }
+ finalObject.put("sessionAttributes", sessionAttributes);
+ }
+ }
+
}
finalObject.put("dynamicCols", new JSONArray(changeEventCols));
}
diff -r 821f5f52d8f4 -r a8a9ffdb50d5
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
Mon Jan 17 11:07:30 2011 +0100
+++
b/modules/org.openbravo.client.application/src/org/openbravo/client/application/window/OBViewFormComponent.java
Mon Jan 17 11:15:59 2011 +0100
@@ -11,7 +11,7 @@
* under the License.
* The Original Code is Openbravo ERP.
* The Initial Developer of the Original Code is Openbravo SLU
- * All portions are Copyright (C) 2010 Openbravo SLU
+ * All portions are Copyright (C) 2010-2011 Openbravo SLU
* All Rights Reserved.
* Contributor(s): ______________________________________.
************************************************************************
diff -r 821f5f52d8f4 -r a8a9ffdb50d5
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-standard-view.js
---
a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-standard-view.js
Mon Jan 17 11:07:30 2011 +0100
+++
b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-standard-view.js
Mon Jan 17 11:15:59 2011 +0100
@@ -1321,6 +1321,7 @@
if (this.isShowingForm) {
isc.addProperties(contextInfo, this.viewForm.auxInputs);
isc.addProperties(contextInfo, this.viewForm.hiddenInputs);
+ isc.addProperties(contextInfo, this.viewForm.sessionAttributes);
}
if (this.parentView) {
diff -r 821f5f52d8f4 -r a8a9ffdb50d5
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
Mon Jan 17 11:07:30 2011 +0100
+++
b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-view-form.js
Mon Jan 17 11:15:59 2011 +0100
@@ -31,6 +31,7 @@
view: null,
auxInputs: {},
hiddenInputs: {},
+ sessionAttributes: {},
dynamicCols: [],
width: '100%',
@@ -212,8 +213,10 @@
if (!data) {
return;
}
- var columnValues = data.columnValues, calloutMessages =
data.calloutMessages, auxInputs = data.auxiliaryInputValues, prop, value;
- var dynamicCols = data.dynamicCols;
+ var columnValues = data.columnValues, calloutMessages =
data.calloutMessages,
+ auxInputs = data.auxiliaryInputValues, prop, value,
+ dynamicCols = data.dynamicCols,
+ sessionAttributes = data.sessionAttributes;
if (columnValues) {
for (prop in columnValues) {
if (columnValues.hasOwnProperty(prop)) {
@@ -231,10 +234,15 @@
for (prop in auxInputs) {
if (auxInputs.hasOwnProperty(prop)) {
this.setValue(prop, auxInputs[prop].value);
- auxInputs[prop] = auxInputs[prop].value;
+ this.auxInputs[prop] = auxInputs[prop].value;
}
}
}
+
+ if(sessionAttributes) {
+ this.sessionAttributes = sessionAttributes;
+ }
+
if (dynamicCols) {
this.dynamicCols = dynamicCols;
}
------------------------------------------------------------------------------
Protect Your Site and Customers from Malware Attacks
Learn about various malware tactics and how to avoid them. Understand
malware threats, the impact they can have on your business, and how you
can protect your company and customers by using code signing.
http://p.sf.net/sfu/oracle-sfdevnl
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits