details: /erp/devel/pi/rev/869bca3eeb6f
changeset: 11842:869bca3eeb6f
user: Asier Lostalé <asier.lostale <at> openbravo.com>
date: Tue May 03 12:03:56 2011 +0200
summary: related to issue 16957: Include audit fields in form view
details: /erp/devel/pi/rev/006c8a125770
changeset: 11843:006c8a125770
user: Asier Lostalé <asier.lostale <at> openbravo.com>
date: Tue May 03 16:40:19 2011 +0200
summary: fixed issue 16957: Include audit fields in grid view
diffstat:
modules/org.openbravo.client.application/src/org/openbravo/client/application/templates/ob-view-field.js.ftl
| 6 +-
modules/org.openbravo.client.application/src/org/openbravo/client/application/templates/ob-view-grid.js.ftl
| 29 +
modules/org.openbravo.client.application/src/org/openbravo/client/application/window/OBViewFormComponent.java
| 202 ++++++++++
modules/org.openbravo.client.application/src/org/openbravo/client/application/window/OBViewGridComponent.java
| 113 +++++
modules/org.openbravo.client.application/src/org/openbravo/client/application/window/OBViewUtil.java
| 7 +
5 files changed, 352 insertions(+), 5 deletions(-)
diffs (truncated from 501 to 300 lines):
diff -r 7cc821175253 -r 006c8a125770
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 16:22:35 2011 +0200
+++
b/modules/org.openbravo.client.application/src/org/openbravo/client/application/templates/ob-view-field.js.ftl
Tue May 03 16:40:19 2011 +0200
@@ -62,11 +62,7 @@
</#if>
</#if>
<#if fieldDefinition.type = "OBSectionItem" || fieldDefinition.type =
"OBNoteSectionItem" || fieldDefinition.type = "OBLinkedItemSectionItem" >
- <#if fieldDefinition.type = "OBNoteSectionItem">
- sectionExpanded: false,
- <#else>
- sectionExpanded: true,
- </#if>
+ sectionExpanded: ${fieldDefinition.expanded?string},
defaultValue: '${fieldDefinition.label?js_string}',
itemIds: [
<#list fieldDefinition.children as childField>
diff -r 7cc821175253 -r 006c8a125770
modules/org.openbravo.client.application/src/org/openbravo/client/application/templates/ob-view-grid.js.ftl
---
a/modules/org.openbravo.client.application/src/org/openbravo/client/application/templates/ob-view-grid.js.ftl
Tue May 03 16:22:35 2011 +0200
+++
b/modules/org.openbravo.client.application/src/org/openbravo/client/application/templates/ob-view-grid.js.ftl
Tue May 03 16:40:19 2011 +0200
@@ -66,6 +66,35 @@
}
<#if field_has_next>,</#if>
</#list>
+ <#list data.auditFields as field>
+ ,
+ {
+ autoExpand: false, type: '${field.type}',
+ editorProperties: {
+ width: '*'
+ , columnName: '${field.columnName?js_string}'
+ , targetEntity: '${field.targetEntity?js_string}'
+ , disabled: true
+ , updatable: false
+ }
+ , showHover: false,
+ width: isc.OBGrid.getDefaultColumnWidth(30),
+ name: '${field.columnName?js_string}',
+ canExport: true,
+ canHide: true,
+ editorType: '${field.editorType?js_string}',
+ filterEditorType: '${field.filterEditorType?js_string}',
+ ${field.displayFieldJS}
+ filterOnKeypress: true, canFilter:true, required: false
+ , title: '${field.title?js_string}'
+ , prompt: '${field.title?js_string}'
+ , escapeHTML: true
+ , showIf: 'false'
+ , columnName: '${field.columnName?js_string}'
+ , inpColumnName: ''
+ , targetEntity: '${field.targetEntity?js_string}'
+ }
+ </#list>
],
autoExpandFieldNames:[
<#list data.autoExpandFields as field>
diff -r 7cc821175253 -r 006c8a125770
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 16:22:35 2011 +0200
+++
b/modules/org.openbravo.client.application/src/org/openbravo/client/application/window/OBViewFormComponent.java
Tue May 03 16:40:19 2011 +0200
@@ -38,6 +38,7 @@
import org.openbravo.client.kernel.reference.UIDefinitionController;
import org.openbravo.dal.service.OBDal;
import org.openbravo.data.Sqlc;
+import org.openbravo.model.ad.ui.Element;
import org.openbravo.model.ad.ui.Field;
import org.openbravo.model.ad.ui.FieldGroup;
import org.openbravo.model.ad.ui.Tab;
@@ -58,6 +59,9 @@
private static final long ONE_COLUMN_MAX_LENGTH = 60;
private static final String TEXT_AD_REFERENCE_ID = "14";
+ // Audit fields
+ private static final String AUDIT_GROUP_ID = "1000100001";
+
private Tab tab;
private List<String> statusBarFields = null;
@@ -124,6 +128,44 @@
}
}
+ // Processing audit fields: if there's field for audit, don't put it in
the "more info" section
+ boolean hasCreatedField = false, hasCreatedByField = false,
hasUpdatedField = false, hasUpdatedByField = false;
+ for (Field f : adFields) {
+ String dbColName = f.getColumn().getDBColumnName().toLowerCase();
+ if (!dbColName.startsWith("created") &&
!dbColName.startsWith("updated")) {
+ continue;
+ }
+ if (f.isActive() && f.getColumn().isActive() && (f.isDisplayed() ||
f.isShownInStatusBar())) {
+ if ("created".equals(dbColName)) {
+ hasCreatedField = true;
+ } else if ("createdby".equals(dbColName)) {
+ hasCreatedByField = true;
+ } else if ("updated".equals(dbColName)) {
+ hasUpdatedField = true;
+ } else if ("updatedby".equals(dbColName)) {
+ hasUpdatedByField = true;
+ }
+ }
+ }
+ List<OBViewFieldDefinition> auditFields = new
ArrayList<OBViewFieldDefinition>();
+
+ if (!hasCreatedField) {
+ OBViewFieldAudit audit = new OBViewFieldAudit("creationDate",
OBViewUtil.createdElement);
+ auditFields.add(audit);
+ }
+ if (!hasCreatedByField) {
+ OBViewFieldAudit audit = new OBViewFieldAudit("createdBy",
OBViewUtil.createdByElement);
+ auditFields.add(audit);
+ }
+ if (!hasUpdatedField) {
+ OBViewFieldAudit audit = new OBViewFieldAudit("updated",
OBViewUtil.updatedElement);
+ auditFields.add(audit);
+ }
+ if (!hasUpdatedByField) {
+ OBViewFieldAudit audit = new OBViewFieldAudit("updatedBy",
OBViewUtil.updatedByElement);
+ auditFields.add(audit);
+ }
+
OBViewFieldGroup currentFieldGroup = null;
FieldGroup currentADFieldGroup = null;
int colNum = 1;
@@ -169,6 +211,7 @@
final OBViewFieldGroup viewFieldGroup = new OBViewFieldGroup();
fields.add(viewFieldGroup);
viewFieldGroup.setFieldGroup(field.getFieldGroup());
+
currentFieldGroup = viewFieldGroup;
currentADFieldGroup = field.getFieldGroup();
colNum = 1;
@@ -186,6 +229,16 @@
}
}
+ // Add audit info
+ if (!auditFields.isEmpty()) {
+ final OBViewFieldGroup viewFieldGroup = new OBViewFieldGroup();
+ viewFieldGroup.setExpanded(false);
+ fields.add(viewFieldGroup);
+ viewFieldGroup.setFieldGroup(OBDal.getInstance().get(FieldGroup.class,
AUDIT_GROUP_ID));
+ viewFieldGroup.addChildren(auditFields);
+ fields.addAll(auditFields);
+ }
+
// add the notes part
final OBViewFieldDefinition notesCanvasFieldDefinition = new
NotesCanvasField();
final NotesField notesField = new NotesField();
@@ -249,6 +302,134 @@
public String getReadOnlyIf();
}
+ public class OBViewFieldAudit implements OBViewFieldDefinition {
+ private String name;
+ private String refType;
+ private String refEntity;
+ private Element element;
+
+ public OBViewFieldAudit(String type, Element element) {
+ name = type;
+ this.element = element;
+
+ if (type.endsWith("By")) {
+ // User search
+ refType = "30";
+ refEntity = "User";
+ } else {
+ // Date time
+ refType = "16";
+ refEntity = "";
+ }
+ }
+
+ @Override
+ public String getLabel() {
+ return OBViewUtil.getLabel(element, element.getADElementTrlList());
+ }
+
+ @Override
+ public String getName() {
+ return name;
+ }
+
+ @Override
+ public String getType() {
+ return "_id_" + refType;
+ }
+
+ @Override
+ public boolean getStandardField() {
+ return true;
+ }
+
+ @Override
+ public String getFieldProperties() {
+ return "'width': '*', ";
+ }
+
+ @Override
+ public String getInpColumnName() {
+ return "";
+ }
+
+ @Override
+ public String getReferencedKeyColumnName() {
+ return "";
+ }
+
+ @Override
+ public String getTargetEntity() {
+ return refEntity;
+ }
+
+ @Override
+ public boolean getStartRow() {
+ return false;
+ }
+
+ @Override
+ public boolean getEndRow() {
+ return false;
+ }
+
+ @Override
+ public long getColSpan() {
+ return 1;
+ }
+
+ @Override
+ public long getRowSpan() {
+ return 1;
+ }
+
+ @Override
+ public boolean isReadOnly() {
+ return true;
+ }
+
+ @Override
+ public boolean isUpdatable() {
+ return false;
+ }
+
+ @Override
+ public boolean isParentProperty() {
+ return false;
+ }
+
+ @Override
+ public boolean getRedrawOnChange() {
+ return false;
+ }
+
+ @Override
+ public String getShowIf() {
+ return "";
+ }
+
+ @Override
+ public String getReadOnlyIf() {
+ return "";
+ }
+
+ public boolean isRequired() {
+ return false;
+ }
+
+ public String getColumnName() {
+ return "";
+ }
+
+ public boolean isFirstFocusedField() {
+ return false;
+ }
+
+ public boolean isSearchField() {
+ return !refEntity.isEmpty();
+ }
+ }
+
public class OBViewField implements OBViewFieldDefinition {
private Field field;
private Property property;
@@ -530,6 +711,7 @@
}
public class OBViewFieldGroup extends DefaultVirtualField {
+ private boolean expanded = true;
private FieldGroup fieldGroup;
private String label;
private List<OBViewFieldDefinition> children = new
ArrayList<OBViewFieldDefinition>();
@@ -558,6 +740,10 @@
children.add(viewFieldDefinition);
}
+ public void addChildren(List<OBViewFieldDefinition> viewFieldDefinitions) {
+ children.addAll(viewFieldDefinitions);
+ }
+
public List<OBViewFieldDefinition> getChildren() {
return children;
}
------------------------------------------------------------------------------
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