details:   https://code.openbravo.com/erp/devel/pi/rev/bf144c0701db
changeset: 13897:bf144c0701db
user:      Martin Taal <martin.taal <at> openbravo.com>
date:      Fri Sep 30 13:11:44 2011 +0200
summary:   Only prevent filtering if length of text > 4000 and not when >=2000

details:   https://code.openbravo.com/erp/devel/pi/rev/511718c69478
changeset: 13898:511718c69478
user:      Martin Taal <martin.taal <at> openbravo.com>
date:      Fri Sep 30 13:12:37 2011 +0200
summary:   Related to issue 18587: Changes/improvement saved and named views
Changed styling of hover over pull down menu

details:   https://code.openbravo.com/erp/devel/pi/rev/d064a9711b5c
changeset: 13899:d064a9711b5c
user:      Martin Taal <martin.taal <at> openbravo.com>
date:      Fri Sep 30 13:13:09 2011 +0200
summary:   Related to issue 18587: Changes/improvement saved and named views
Shortened hover texts

details:   https://code.openbravo.com/erp/devel/pi/rev/5483e06909d7
changeset: 13900:5483e06909d7
user:      Martin Taal <martin.taal <at> openbravo.com>
date:      Fri Sep 30 13:13:35 2011 +0200
summary:   Related to issue 18587: Changes/improvement saved and named views
Prevent NPE

details:   https://code.openbravo.com/erp/devel/pi/rev/b8baeaa8bccd
changeset: 13901:b8baeaa8bccd
user:      Martin Taal <martin.taal <at> openbravo.com>
date:      Fri Sep 30 13:14:58 2011 +0200
summary:   Related to issue 18587: Changes/improvement saved and named views
Solve hide of filter criteria in specific case when saved view with filter is 
the default

details:   https://code.openbravo.com/erp/devel/pi/rev/31d2fe047710
changeset: 13902:31d2fe047710
user:      Martin Taal <martin.taal <at> openbravo.com>
date:      Fri Sep 30 13:15:34 2011 +0200
summary:   Related to issue 18587: Changes/improvement saved and named views
Prevent starred wrench icon

details:   https://code.openbravo.com/erp/devel/pi/rev/229973b433bd
changeset: 13903:229973b433bd
user:      Martin Taal <martin.taal <at> openbravo.com>
date:      Fri Sep 30 13:17:17 2011 +0200
summary:   Related to issue 18587: Changes/improvement saved and named views
Also save expanded/collapsed state of a section

details:   https://code.openbravo.com/erp/devel/pi/rev/f0f7d260a671
changeset: 13904:f0f7d260a671
user:      Martin Taal <martin.taal <at> openbravo.com>
date:      Fri Sep 30 13:19:02 2011 +0200
summary:   Related to issue 18587: Changes/improvement saved and named views
Only disable button if preference set, no views available and user is not an 
admin

details:   https://code.openbravo.com/erp/devel/pi/rev/515bf7b7dcc6
changeset: 13905:515bf7b7dcc6
user:      Martin Taal <martin.taal <at> openbravo.com>
date:      Fri Sep 30 13:20:05 2011 +0200
summary:   Related to issue 18587: Changes/improvement saved and named views
Save also expanded/collapsed state

details:   https://code.openbravo.com/erp/devel/pi/rev/804dae13b1c7
changeset: 13906:804dae13b1c7
user:      Martin Taal <martin.taal <at> openbravo.com>
date:      Fri Sep 30 13:20:27 2011 +0200
summary:   Fixes issue 18587: Changes/improvement saved and named views

diffstat:

 
modules/org.openbravo.client.application/src-db/database/sourcedata/AD_MESSAGE.xml
                                                                                
          |   4 +-
 
modules/org.openbravo.client.application/src/org/openbravo/client/application/personalization/PersonalizationActionHandler.java
                                             |   5 +-
 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/grid/ob-view-grid.js
                                                                       |   4 +-
 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/main/ob-standard-view.js
                                                                   |   4 +-
 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/main/ob-standard-window.js
                                                                 |   4 +-
 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/personalization/ob-manage-views-popups.js
                                                  |   4 +-
 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/personalization/ob-manage-views-toolbar.js
                                                 |  41 +++++++--
 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/personalization/ob-personalization-treegrid.js
                                             |  44 +++++++++-
 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/personalization/ob-personalization.js
                                                      |  10 +-
 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/personalization/ob-personalize-form-toolbar-button.js
                                      |   9 --
 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/personalization/ob-personalize-form.js
                                                     |  24 ++--
 
modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/ob-personalization-styles.css
 |  13 ++
 
modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/reference/TextUIDefinition.java
                                                                         |   2 
+-
 13 files changed, 124 insertions(+), 44 deletions(-)

diffs (truncated from 424 to 300 lines):

diff -r 32831d5765d1 -r 804dae13b1c7 
modules/org.openbravo.client.application/src-db/database/sourcedata/AD_MESSAGE.xml
--- 
a/modules/org.openbravo.client.application/src-db/database/sourcedata/AD_MESSAGE.xml
        Fri Sep 30 12:31:24 2011 +0200
+++ 
b/modules/org.openbravo.client.application/src-db/database/sourcedata/AD_MESSAGE.xml
        Fri Sep 30 13:20:27 2011 +0200
@@ -2636,7 +2636,7 @@
 <!--FF8081813157C86B01315A092B6C0062-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--FF8081813157C86B01315A092B6C0062-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--FF8081813157C86B01315A092B6C0062-->  
<VALUE><![CDATA[OBUIAPP_Personalization_Toolbar_Button]]></VALUE>
-<!--FF8081813157C86B01315A092B6C0062-->  <MSGTEXT><![CDATA[Personalize the 
layout of this tab.]]></MSGTEXT>
+<!--FF8081813157C86B01315A092B6C0062-->  <MSGTEXT><![CDATA[Form 
Personalization]]></MSGTEXT>
 <!--FF8081813157C86B01315A092B6C0062-->  <MSGTYPE><![CDATA[I]]></MSGTYPE>
 <!--FF8081813157C86B01315A092B6C0062-->  
<AD_MODULE_ID><![CDATA[9BA0836A3CD74EE4AB48753A47211BCC]]></AD_MODULE_ID>
 <!--FF8081813157C86B01315A092B6C0062--></AD_MESSAGE>
@@ -3043,7 +3043,7 @@
 <!--FF8081813216F38A01321742648D0013-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--FF8081813216F38A01321742648D0013-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--FF8081813216F38A01321742648D0013-->  
<VALUE><![CDATA[OBUIAPP_ManageViews_Toolbar_Button]]></VALUE>
-<!--FF8081813216F38A01321742648D0013-->  <MSGTEXT><![CDATA[Save 
view]]></MSGTEXT>
+<!--FF8081813216F38A01321742648D0013-->  <MSGTEXT><![CDATA[Save 
View]]></MSGTEXT>
 <!--FF8081813216F38A01321742648D0013-->  <MSGTYPE><![CDATA[I]]></MSGTYPE>
 <!--FF8081813216F38A01321742648D0013-->  
<AD_MODULE_ID><![CDATA[9BA0836A3CD74EE4AB48753A47211BCC]]></AD_MODULE_ID>
 <!--FF8081813216F38A01321742648D0013--></AD_MESSAGE>
diff -r 32831d5765d1 -r 804dae13b1c7 
modules/org.openbravo.client.application/src/org/openbravo/client/application/personalization/PersonalizationActionHandler.java
--- 
a/modules/org.openbravo.client.application/src/org/openbravo/client/application/personalization/PersonalizationActionHandler.java
   Fri Sep 30 12:31:24 2011 +0200
+++ 
b/modules/org.openbravo.client.application/src/org/openbravo/client/application/personalization/PersonalizationActionHandler.java
   Fri Sep 30 13:20:27 2011 +0200
@@ -84,7 +84,10 @@
         final String persId = (String) parameters.get(PERSONALIZATIONID);
         final UIPersonalization uiPersonalization = OBDal.getInstance().get(
             UIPersonalization.class, persId);
-        OBDal.getInstance().remove(uiPersonalization);
+        if (uiPersonalization != null) {
+          // is null if already removed
+          OBDal.getInstance().remove(uiPersonalization);
+        }
         return new JSONObject().put("result", "success");
       } else if (action.equals(ACTION_STORE)) {
         final UIPersonalization uiPersonalization = personalizationHandler
diff -r 32831d5765d1 -r 804dae13b1c7 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/grid/ob-view-grid.js
--- 
a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/grid/ob-view-grid.js
     Fri Sep 30 12:31:24 2011 +0200
+++ 
b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/grid/ob-view-grid.js
     Fri Sep 30 13:20:27 2011 +0200
@@ -444,6 +444,8 @@
       return;
     }
     
+    this.Super('setViewState', arguments);
+
     if (localState.noFilterClause) {
       this.filterClause = null;
       this.view.messageBar.hide();
@@ -460,8 +462,6 @@
         }
       }
     }
-    
-    this.Super('setViewState', arguments);
   },
  
   setView: function(view){
diff -r 32831d5765d1 -r 804dae13b1c7 
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
 Fri Sep 30 12:31:24 2011 +0200
+++ 
b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/main/ob-standard-view.js
 Fri Sep 30 13:20:27 2011 +0200
@@ -1798,12 +1798,12 @@
     }, null, callback, this);
   },
   
-  getFormPersonalization: function() {
+  getFormPersonalization: function(checkSavedView) {
     if (!this.standardWindow) {
       // happens during the initialization
       return null;
     }
-    return this.standardWindow.getFormPersonalization(this);
+    return this.standardWindow.getFormPersonalization(this, checkSavedView);
   },
   
   // TODO: consider caching the prepared fields on
diff -r 32831d5765d1 -r 804dae13b1c7 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/main/ob-standard-window.js
--- 
a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/main/ob-standard-window.js
       Fri Sep 30 12:31:24 2011 +0200
+++ 
b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/main/ob-standard-window.js
       Fri Sep 30 13:20:27 2011 +0200
@@ -183,12 +183,12 @@
     this.getClass().personalization.forms[view.tabId] = formPersonalization;
    },
    
-  getFormPersonalization: function(view) {
+  getFormPersonalization: function(view, checkSavedView) {
     var formPersonalization, i, persView;
     if (!this.getClass().personalization || 
!this.getClass().personalization.forms) {
       // no form personalization on form level
       // check window level
-      if (this.getClass().personalization && 
this.getClass().personalization.views 
+      if (checkSavedView && this.getClass().personalization && 
this.getClass().personalization.views 
           && this.selectedPersonalizationId) {
         for (i = 0; i < this.getClass().personalization.views.length; i++) {
           persView = this.getClass().personalization.views[i];
diff -r 32831d5765d1 -r 804dae13b1c7 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/personalization/ob-manage-views-popups.js
--- 
a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/personalization/ob-manage-views-popups.js
        Fri Sep 30 12:31:24 2011 +0200
+++ 
b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/personalization/ob-manage-views-popups.js
        Fri Sep 30 13:20:27 2011 +0200
@@ -304,8 +304,8 @@
     );
     
     // create the level combo
-    if (standardWindow.getClass().personalization && 
standardWindow.getClass().personalization.formData) {
-      formData = standardWindow.getClass().personalization.formData;
+    if (personalization && personalization.formData) {
+      formData = personalization.formData;
       // note the key in the levelMap (clients, orgs, roles) corresponds
       // to the property name in the formData
       if (formData.clients) {
diff -r 32831d5765d1 -r 804dae13b1c7 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/personalization/ob-manage-views-toolbar.js
--- 
a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/personalization/ob-manage-views-toolbar.js
       Fri Sep 30 12:31:24 2011 +0200
+++ 
b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/personalization/ob-manage-views-toolbar.js
       Fri Sep 30 13:20:27 2011 +0200
@@ -158,8 +158,7 @@
       this.resetBaseStyle();
       
       // no items are shown in this case
-      if (!this.isWindowPersonalizationAllowed() && 
(!this.view.standardWindow.getClass().personalization || 
-          !this.view.standardWindow.getClass().personalization.views || 
this.view.standardWindow.getClass().personalization.views.length === 0)) {
+      if (!this.isWindowPersonalizationAllowed() && !this.viewsToSelect()) {
         this.setDisabled(true);
       } else {
         this.setDisabled(false);
@@ -167,15 +166,39 @@
       
       this.show();
     },
+    
+    viewsToSelect: function() {
+      // standardwindow is not set during initialization
+      var pers = (this.view.standardWindow ? 
this.view.standardWindow.getClass().personalization : null);
+      return (pers && pers.views && pers.views.length > 0);
+    },
+    
     isWindowPersonalizationAllowed: function() {
-      var propValue, undef;
-      if (this.userWindowPersonalizationAllowed === undef) {
-        propValue = 
OB.PropertyStore.get('OBUIAPP_WindowPersonalization_Override', 
-            this.view.standardWindow ? this.view.standardWindow.windowId : 
null);
-        if (propValue === 'false' || propValue === 'N') {
-          this.userWindowPersonalizationAllowed = false;
+      var propValue, undef,
+        standardWindow = this.view.standardWindow,
+        personalization = (standardWindow ? 
standardWindow.getClass().personalization : null),
+        formData = (personalization ? personalization.formData : null);
+      
+      // standardwindow is not set during initialization
+      // don't set the variable yet, but do not allow either
+      if (!standardWindow) {
+        return false;
+      }
+      
+      // note: false is not cached as during initialization
+      // things can be false
+      if (this.userWindowPersonalizationAllowed === undef) {        
+        // if an admin then allow personalization
+        if (formData && (formData.orgs || formData.clients || formData.roles)) 
{
+          this.userWindowPersonalizationAllowed = true;
         } else {
-          this.userWindowPersonalizationAllowed = true;
+          propValue = 
OB.PropertyStore.get('OBUIAPP_WindowPersonalization_Override', 
+              standardWindow ? standardWindow.windowId : null);
+          if (propValue === 'false' || propValue === 'N') {
+            return false;
+          } else {
+            this.userWindowPersonalizationAllowed = true;
+          }
         }
       }
       return this.userWindowPersonalizationAllowed;
diff -r 32831d5765d1 -r 804dae13b1c7 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/personalization/ob-personalization-treegrid.js
--- 
a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/personalization/ob-personalization-treegrid.js
   Fri Sep 30 12:31:24 2011 +0200
+++ 
b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/personalization/ob-personalization-treegrid.js
   Fri Sep 30 13:20:27 2011 +0200
@@ -59,12 +59,13 @@
     ],
     
   initWidget: function() {
+    var nodes, i;
     // todo: show custom items for different types of fields
     this.nodeIcon = OB.Styles.Personalization.Icons.field;
     this.folderIcon = OB.Styles.Personalization.Icons.fieldGroup;
 
     // register a change notifier
-    var i = 0, length = this.fields.length,
+    var length = this.fields.length,
       me = this, changedFunction = function() {
         me.personalizeForm.changed();
       };
@@ -109,6 +110,13 @@
 //   this.data.openAll();
    
    this.Super('initWidget', arguments);
+   
+   // open the folders which need to be opened
+   for (i = 0, nodes = this.data.getAllNodes(); i < nodes.length; i++) {
+     if (nodes[i].sectionExpanded) {
+       this.openFolder(nodes[i]);
+     }
+   }
   },
   
   destroy: function() {
@@ -127,6 +135,40 @@
     }
   },
   
+  closeFolder: function(folder) {
+    var fld, i, length, 
+      flds = this.personalizeForm.previewForm.getFields();
+    
+    this.Super('closeFolder', arguments);
+    
+    // find the section fld and collapse
+    for (i = 0, length = flds.length; i < length; i++) {
+      if (flds[i].name === folder.name && flds[i].collapseSection) {
+        folder.sectionExpanded = false;
+        flds[i].collapseSection();        
+        this.personalizeForm.changed();
+        break;
+      }
+    }
+  },
+  
+  openFolder: function(folder) {
+    var fld, i, length, 
+      flds = this.personalizeForm.previewForm.getFields();
+    
+    this.Super('openFolder', arguments);
+    
+    // find the section fld and collapse
+    for (i = 0, length = flds.length; i < length; i++) {
+      if (flds[i].name === folder.name && flds[i].expandSection) {
+        folder.sectionExpanded = true;
+        flds[i].expandSection();        
+        this.personalizeForm.changed();
+        break;
+      }
+    }
+  },
+  
   // overridden to:
   // - prevent a change event if a node is dropped
   // in the same location (code commented out, seems to prevent move..)
diff -r 32831d5765d1 -r 804dae13b1c7 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/personalization/ob-personalization.js
--- 
a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/personalization/ob-personalization.js
    Fri Sep 30 12:31:24 2011 +0200
+++ 
b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/personalization/ob-personalization.js
    Fri Sep 30 13:20:27 2011 +0200
@@ -41,7 +41,7 @@
 // personalizationData used is up-to-date with the current form fields.
 OB.Personalization.getPersonalizationDataFromForm = function(form) {
   var i, dataFields = [], statusBarFields, length,
-    origPersonalizationData = form && form.view ? 
form.view.getFormPersonalization() : null;
+    origPersonalizationData = form && form.view ? 
form.view.getFormPersonalization(true) : null;
 
   // just use the personalization data which was used on the 
   // form, we can not reconstruct it completely from the form fields
@@ -120,6 +120,9 @@
 //        }
 //      } else {
         dataField.title = fld.title;
+        if (fld.sectionExpanded) {
+          dataField.sectionExpanded = true;
+        }
 //      }
     } else if (!dataField.isSystemFolder) {
       // field has been removed, remove it
@@ -287,7 +290,7 @@
   // is used below to de-personalize them
   length = window.views.length;
   for (i = 0; i < length; i++) {
-    if (window.getFormPersonalization(window.views[i])) {
+    if (window.getFormPersonalization(window.views[i], true)) {
       viewsToReset.push({tabId: window.views[i].tabId});
     }
   }
@@ -428,6 +431,9 @@
         newField.visible = false;
         newField.alwaysTakeSpace = false;
       } else {
+        if (record.sectionExpanded) {
+          newField.sectionExpanded = true;
+        }
         newField.alwaysTakeSpace = true;
         delete newField.hiddenInForm;
         delete newField.visible;
diff -r 32831d5765d1 -r 804dae13b1c7 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/personalization/ob-personalize-form-toolbar-button.js
--- 
a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/personalization/ob-personalize-form-toolbar-button.js
    Fri Sep 30 12:31:24 2011 +0200
+++ 
b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/personalization/ob-personalize-form-toolbar-button.js
    Fri Sep 30 13:20:27 2011 +0200
@@ -52,15 +52,6 @@
     updateState: function(){
       var propValue, undef;
       
-      if (this.view.getFormPersonalization()) {
-        this.prompt = 
OB.I18N.getLabel('OBUIAPP_Personalization_Toolbar_Button_modified');
-        this.buttonType = 'personalization-modified';
-      } else {
-        this.prompt = 
OB.I18N.getLabel('OBUIAPP_Personalization_Toolbar_Button');
-        this.buttonType = 'personalization';
-      }
-      this.resetBaseStyle();
-      
       // set it 
       if (this.userWindowPersonalizationAllowed === undef) {
         propValue = 
OB.PropertyStore.get('OBUIAPP_WindowPersonalization_Override', 

------------------------------------------------------------------------------
All of the data generated in your IT infrastructure is seriously valuable.
Why? It contains a definitive record of application performance, security
threats, fraudulent activity, and more. Splunk takes this data and makes
sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-d2dcopy2
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to