details:   https://code.openbravo.com/erp/devel/pi/rev/51ea214b67be
changeset: 19113:51ea214b67be
user:      Augusto Mauch <augusto.mauch <at> openbravo.com>
date:      Wed Dec 26 18:26:12 2012 +0100
summary:   Fixes issue 19595: Display logic can be applied to status bar fields

diffstat:

 
modules/org.openbravo.client.application/src/org/openbravo/client/application/templates/ob-view-field.js.ftl
 |   2 +-
 
modules/org.openbravo.client.application/src/org/openbravo/client/application/window/OBViewFieldHandler.java
 |  13 +++++++++-
 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/ob-view-form.js
        |   8 ++++++
 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/main/ob-standard-view.js
    |   8 ++++-
 src-db/database/sourcedata/AD_FIELD.xml                                        
                              |   2 +-
 5 files changed, 28 insertions(+), 5 deletions(-)

diffs (104 lines):

diff -r 62df562c95c7 -r 51ea214b67be 
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
      Wed Dec 26 16:44:06 2012 +0100
+++ 
b/modules/org.openbravo.client.application/src/org/openbravo/client/application/templates/ob-view-field.js.ftl
      Wed Dec 26 18:26:12 2012 +0100
@@ -89,7 +89,7 @@
         <#if field.redrawOnChange && field.displayed>
             redrawOnChange: true,
         </#if>
-        <#if field.showIf != "" && field.displayed>
+        <#if field.showIf != "" && (field.displayed || field.statusBarField)>
             showIf: function(item, value, form, currentValues, context) {
                 return (${field.showIf});          
             },          
diff -r 62df562c95c7 -r 51ea214b67be 
modules/org.openbravo.client.application/src/org/openbravo/client/application/window/OBViewFieldHandler.java
--- 
a/modules/org.openbravo.client.application/src/org/openbravo/client/application/window/OBViewFieldHandler.java
      Wed Dec 26 16:44:06 2012 +0100
+++ 
b/modules/org.openbravo.client.application/src/org/openbravo/client/application/window/OBViewFieldHandler.java
      Wed Dec 26 18:26:12 2012 +0100
@@ -405,7 +405,14 @@
       viewField.setField(field);
       viewField.setProperty(property);
       viewField.setRedrawOnChange(false);
-      viewField.setShowIf("");
+
+      String jsExpression = null;
+      if (field.getDisplayLogic() != null && 
!field.getDisplayLogic().isEmpty()) {
+        final DynamicExpressionParser parser = new 
DynamicExpressionParser(field.getDisplayLogic(),
+            tab, field);
+        jsExpression = parser.getJSExpression();
+      }
+      viewField.setShowIf(jsExpression != null ? jsExpression : "");
       viewField.setReadOnlyIf("");
 
       viewFields.add(viewField);
@@ -1321,6 +1328,10 @@
       }
     }
 
+    public boolean isStatusBarField() {
+      return field.isShownInStatusBar();
+    }
+
     public boolean isShowInitiallyInGrid() {
       return field.isShowInGridView();
     }
diff -r 62df562c95c7 -r 51ea214b67be 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/ob-view-form.js
--- 
a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/ob-view-form.js
     Wed Dec 26 16:44:06 2012 +0100
+++ 
b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/ob-view-form.js
     Wed Dec 26 18:26:12 2012 +0100
@@ -112,6 +112,9 @@
 
     for (i = 0; i < length; i++) {
       item = this.getItem(this.statusBarFields[i]);
+      if (item.showIf && item.showIf(item, item.getValue(), this, 
this.getValues()) === false) {
+        continue;
+      }
       title = item.getTitle();
       sourceWindowId = this.view.standardWindow.windowId;
       refColumnName = item.refColumnName;
@@ -1189,6 +1192,11 @@
     if (item._hasChanged) {
       this.itemChangeActions(item);
 
+      if (!this.isNew) {
+        this.view.statusBar.mode = "EDIT";
+        this.view.statusBar.setContentLabel(this.view.statusBar.editIcon, 
'OBUIAPP_Editing', this.getStatusBarFields());
+      }
+
       this.onFieldChanged(item.form, item, item.getValue());
 
       if (this.view) {
diff -r 62df562c95c7 -r 51ea214b67be 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/main/ob-standard-view.js
--- 
a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/main/ob-standard-view.js
 Wed Dec 26 16:44:06 2012 +0100
+++ 
b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/main/ob-standard-view.js
 Wed Dec 26 18:26:12 2012 +0100
@@ -2127,6 +2127,11 @@
       fld.alwaysTakeSpace = false;
     }
 
+
+    if (this.statusBarFields.contains(fld.name)) {
+      fld.statusBarField = true;
+    }
+
     if (!fld.width) {
       fld.width = '*';
     }
@@ -2148,8 +2153,7 @@
         } catch (_exception) {
           isc.warn(_exception + ' ' + _exception.message + ' ' + 
_exception.stack);
         }
-
-        return !this.hiddenInForm && context && originalShowIfValue;
+        return !(this.hiddenInForm && !this.statusBarField) && context && 
originalShowIfValue;
       };
     }
     if (fld.type === 'OBAuditSectionItem') {
diff -r 62df562c95c7 -r 51ea214b67be src-db/database/sourcedata/AD_FIELD.xml
--- a/src-db/database/sourcedata/AD_FIELD.xml   Wed Dec 26 16:44:06 2012 +0100
+++ b/src-db/database/sourcedata/AD_FIELD.xml   Wed Dec 26 18:26:12 2012 +0100
@@ -773,7 +773,7 @@
 <!--133-->  <AD_COLUMN_ID><![CDATA[177]]></AD_COLUMN_ID>
 <!--133-->  <IGNOREINWAD><![CDATA[N]]></IGNOREINWAD>
 <!--133-->  <ISDISPLAYED><![CDATA[Y]]></ISDISPLAYED>
-<!--133-->  <DISPLAYLOGIC><![CDATA[@IsDisplayed@='Y']]></DISPLAYLOGIC>
+<!--133-->  <DISPLAYLOGIC><![CDATA[@IsDisplayed@='Y' | 
@isShownInStatusBar@='Y']]></DISPLAYLOGIC>
 <!--133-->  <DISPLAYLENGTH><![CDATA[60]]></DISPLAYLENGTH>
 <!--133-->  <ISREADONLY><![CDATA[N]]></ISREADONLY>
 <!--133-->  <SEQNO><![CDATA[90]]></SEQNO>

------------------------------------------------------------------------------
LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
Remotely access PCs and mobile devices and provide instant support
Improve your efficiency, and focus on delivering more value-add services
Discover what IT Professionals Know. Rescue delivers
http://p.sf.net/sfu/logmein_12329d2d
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to