details: /erp/devel/pi/rev/1dff818c6bbe
changeset: 9207:1dff818c6bbe
user: Martin Taal <martin.taal <at> openbravo.com>
date: Thu Dec 16 14:01:14 2010 +0100
summary: First implementation of on change call to FIC
details: /erp/devel/pi/rev/838075395d42
changeset: 9208:838075395d42
user: Martin Taal <martin.taal <at> openbravo.com>
date: Thu Dec 16 14:01:21 2010 +0100
summary: First implementation of on change call to FIC
diffstat:
modules/org.openbravo.client.application/src/org/openbravo/client/application/window/FormInitializationComponent.java
| 28 +++-
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-standard-view.js
| 59 +++++----
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-utilities.js
| 6 +-
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-view-form.js
| 41 ++++++
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-view-grid.js
| 1 -
5 files changed, 96 insertions(+), 39 deletions(-)
diffs (244 lines):
diff -r f240c7d5a07d -r 838075395d42
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
Thu Dec 16 13:11:51 2010 +0100
+++
b/modules/org.openbravo.client.application/src/org/openbravo/client/application/window/FormInitializationComponent.java
Thu Dec 16 14:01:21 2010 +0100
@@ -171,7 +171,11 @@
} else if (mode.equals("CHANGE") || (mode.equals("SETSESSION"))) {
// On CHANGE and SETSESSION mode, the values are read from the
request
JSONObject jsCol = new JSONObject();
- jsCol.put("value", jsContent.get("inp" +
Sqlc.TransformaNombreColumna(col)));
+ String colName = "inp" + Sqlc.TransformaNombreColumna(col);
+ if (!jsContent.has(colName)) {
+ continue;
+ }
+ jsCol.put("value", jsContent.get(colName));
value = jsCol.toString();
}
JSONObject jsonobject = new JSONObject(value);
@@ -306,23 +310,29 @@
finalObject.put("auxiliaryInputValues", jsonAuxiliaryInputValues);
if (mode.equals("NEW") || mode.equals("EDIT")) {
- JSONArray colsWithValidation = new JSONArray();
+ List<String> changeEventCols = new ArrayList<String>();
// We also include information related to validation dependencies
for (Field field : fields) {
String column = field.getColumn().getDBColumnName();
+ // also call on change for every column with a callout
+ if (field.getColumn().getCallout() != null) {
+ final String columnName = "inp"
+ +
Sqlc.TransformaNombreColumna(field.getColumn().getDBColumnName());
+ if (!changeEventCols.contains(columnName)) {
+ changeEventCols.add(columnName);
+ }
+ }
if (columnsInValidation.get(column) != null
&& columnsInValidation.get(column).size() > 0) {
- JSONObject colWithValidation = new JSONObject();
- colWithValidation.put("name", "inp" +
Sqlc.TransformaNombreColumna(column));
- JSONArray colsInValidation = new JSONArray();
for (String colInVal : columnsInValidation.get(column)) {
- colsInValidation.put("inp" +
Sqlc.TransformaNombreColumna(colInVal));
+ final String columnName = "inp" +
Sqlc.TransformaNombreColumna(colInVal);
+ if (!changeEventCols.contains(columnName)) {
+ changeEventCols.add(columnName);
+ }
}
- colWithValidation.put("colsInValidation", colsInValidation);
- colsWithValidation.put(colWithValidation);
}
}
- finalObject.put("colsWithValidation", colsWithValidation);
+ finalObject.put("dynamicCols", new JSONArray(changeEventCols));
}
System.out.println(finalObject.toString(1));
System.out.println(System.currentTimeMillis() - iniTime);
diff -r f240c7d5a07d -r 838075395d42
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
Thu Dec 16 13:11:51 2010 +0100
+++
b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-standard-view.js
Thu Dec 16 14:01:21 2010 +0100
@@ -931,42 +931,49 @@
}
},
- getContextInfo: function(record, allProperties, sessionProperties){
+ getContextInfo: function(allProperties, sessionProperties){
+ // different modes:
+ // 1) showing grid with one record selected
+ // 2) showing form with aux inputs
+ var record;
+ if (this.viewGrid.isVisible()) {
+ record = this.viewGrid.getSelectedRecord()
+ } else {
+ record = this.viewForm.getValues();
+ }
var properties = this.propertyToColumns;
for (var i=0; i<properties.length; i++){
var value = record[properties[i].property];
- if (typeof value === 'boolean'){
- value = value?'Y':'N';
+ allProperties[properties[i].column] = value;
+ if (properties[i].sessionProperty){
+ sessionProperties[properties[i].column] = value;
}
- var param = {};
- param[properties[i].column] = value;
- isc.addProperties(allProperties, param);
- if (properties[i].sessionProperty){
- isc.addProperties(sessionProperties, param);
- }
+ }
+
+ if (this.viewForm.isVisible()) {
+ isc.addProperties(allProperties, this.viewForm.auxInputs);
+ isc.addProperties(sessionProperties, this.viewForm.auxInputs);
+ }
+
+ if (this.parentView) {
+ this.parentView.getContextInfo(allProperties, sessionProperties);
}
},
setContextInfo: function (sessionProperties, callbackFunction) {
- var requestParameters = {}, data ={};
- requestParameters._action =
'org.openbravo.client.kernel.SetContextInfoActionHandler';
- isc.addProperties(data, sessionProperties);
- isc.addProperties(data, {_windowId: this.windowId});
-
- var rpcRequest = {};
- rpcRequest.actionURL = OB.Application.contextUrl +
'org.openbravo.client.kernel';
- rpcRequest.callback = callbackFunction;
- rpcRequest.httpMethod = 'POST';
- rpcRequest.data = isc.JSON.encode(data);
- rpcRequest.contentType = 'application/json;charset=UTF-8';
- rpcRequest.useSimpleHttp = true;
- rpcRequest.evalResult = false;
- rpcRequest.params = requestParameters;
- isc.RPCManager.sendRequest(rpcRequest);
- }
-
+ var allProperties = {};
+ if (!sessionProperties) {
+ sessionProperties = {};
+ this.getContextInfo(allProperties, sessionProperties);
+ }
+
OB.RemoteCallManager.call('org.openbravo.client.application.window.FormInitializationComponent',
+ sessionProperties, {
+ MODE: 'SETSESSION',
+ TAB_ID: this.view.tabId
+ }, callbackFunction);
+ }
});
// = OBStandardViewTabSet =
diff -r f240c7d5a07d -r 838075395d42
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-utilities.js
---
a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-utilities.js
Thu Dec 16 13:11:51 2010 +0100
+++
b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-utilities.js
Thu Dec 16 14:01:21 2010 +0100
@@ -807,7 +807,7 @@
var allProperties = {}, sessionProperties={};
var theView = button.parentElement.parentElement.view;
- theView.getContextInfo(theView.viewGrid.getSelectedRecord(),
allProperties, sessionProperties);
+ theView.getContextInfo(allProperties, sessionProperties);
for (param in allProperties){
@@ -837,8 +837,8 @@
return;
}
-
- var params =
button.parentElement.parentElement.view.getContextInfo(theView.viewGrid.getSelectedRecord());
+ var allProperties = {}, sessionProperties = {};
+ var params = theView.getContextInfo(allProperties, sessionProperties);
for (param in params){
diff -r f240c7d5a07d -r 838075395d42
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
Thu Dec 16 13:11:51 2010 +0100
+++
b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-view-form.js
Thu Dec 16 14:01:21 2010 +0100
@@ -30,6 +30,8 @@
// and the grid and other related components.
view: null,
numCols: 4,
+ auxInputs: {},
+ dynamicCols: [],
fieldsByInpColumnName: null,
fieldsByColumnName: null,
@@ -102,6 +104,7 @@
return;
}
var columnValues = data.columnValues, calloutMessages =
data.calloutMessages, auxInputs = data.auxiliaryInputValues, prop, value;
+ var dynamicCols = data.dynamicCols;
if (columnValues) {
for (prop in columnValues) {
if (columnValues.hasOwnProperty(prop)) {
@@ -113,12 +116,17 @@
// show messages...
}
if (auxInputs) {
+ this.auxInputs = {};
for (prop in auxInputs) {
if (auxInputs.hasOwnProperty(prop)) {
this.setValue(prop, auxInputs[prop].value);
+ auxInputs[prop] = auxInputs[prop].value;
}
}
}
+ if (dynamicCols) {
+ this.dynamicCols = dynamicCols;
+ }
},
processColumnValue: function(columnName, columnValue){
@@ -150,5 +158,38 @@
} else {
this.clearValue(field.name);
}
+ },
+
+ itemChanged: function(item, newValue) {
+ var ret = this.Super("itemChanged", arguments);
+ var i;
+ for (i = 0; i < this.dynamicCols.length; i++) {
+ if (this.dynamicCols[i] === item.inpColumnName) {
+ this.doChangeFICCall(item);
+ return;
+ }
+ }
+ return ret;
+ },
+
+ doChangeFICCall: function(item) {
+ var parentId = null, me = this;
+ if (this.view.parentProperty) {
+ parentId = this.getValue(this.view.parentProperty);
+ }
+
+ var allProperties = {}, sessionProperties = {};
+ this.view.getContextInfo(allProperties, sessionProperties);
+
+ // collect the context information
+
OB.RemoteCallManager.call('org.openbravo.client.application.window.FormInitializationComponent',
allProperties, {
+ MODE: 'CHANGE',
+ PARENT_ID: parentId,
+ TAB_ID: this.view.tabId,
+ ROW_ID: this.getValue(OB.Constants.ID),
+ CHANGED_COLUMN: item.inpColumnName
+ }, function(response, data, request){
+ me.processInitialValues(response, data, request);
+ });
}
});
diff -r f240c7d5a07d -r 838075395d42
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 Dec 16 13:11:51 2010 +0100
+++
b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-view-grid.js
Thu Dec 16 14:01:21 2010 +0100
@@ -866,7 +866,6 @@
},
doOpen: function(){
- this.grid.view.getContextInfo(this.record);
this.grid.view.editRecord(this.record);
},
------------------------------------------------------------------------------
Lotusphere 2011
Register now for Lotusphere 2011 and learn how
to connect the dots, take your collaborative environment
to the next level, and enter the era of Social Business.
http://p.sf.net/sfu/lotusphere-d2d
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits