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
