details: https://code.openbravo.com/erp/devel/pi/rev/ff01c2b4f10e changeset: 35635:ff01c2b4f10e user: Javier Armendáriz <javier.armendariz <at> openbravo.com> date: Wed Mar 27 13:49:32 2019 +0100 summary: Fixed issue 40449: Performance problems in Show Audit Trail popup.
Added a new preference 'ShowAuditTrailUserFilter' that, when its set to 'N', will hide the User selector in audit trail filter fields. In case the number of users available are really high, this will prevent to load all of them and thus improving popup performance. diffstat: src-db/database/sourcedata/AD_REF_LIST.xml | 12 + src/org/openbravo/erpCommon/businessUtility/AuditTrailPopup.java | 68 ++++++--- src/org/openbravo/erpCommon/businessUtility/AuditTrailPopupDeleted.html | 6 +- src/org/openbravo/erpCommon/businessUtility/AuditTrailPopupHistory.html | 6 +- 4 files changed, 62 insertions(+), 30 deletions(-) diffs (196 lines): diff -r 5a18bcb0e394 -r ff01c2b4f10e src-db/database/sourcedata/AD_REF_LIST.xml --- a/src-db/database/sourcedata/AD_REF_LIST.xml Wed Apr 03 13:46:54 2019 +0200 +++ b/src-db/database/sourcedata/AD_REF_LIST.xml Wed Mar 27 13:49:32 2019 +0100 @@ -10030,6 +10030,18 @@ <!--6912EEA43DD54AD7AEB11F28AF34E9C4--> <AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID> <!--6912EEA43DD54AD7AEB11F28AF34E9C4--></AD_REF_LIST> +<!--69169157E1904E88821128E7FB08DC39--><AD_REF_LIST> +<!--69169157E1904E88821128E7FB08DC39--> <AD_REF_LIST_ID><![CDATA[69169157E1904E88821128E7FB08DC39]]></AD_REF_LIST_ID> +<!--69169157E1904E88821128E7FB08DC39--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID> +<!--69169157E1904E88821128E7FB08DC39--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID> +<!--69169157E1904E88821128E7FB08DC39--> <ISACTIVE><![CDATA[Y]]></ISACTIVE> +<!--69169157E1904E88821128E7FB08DC39--> <VALUE><![CDATA[ShowAuditTrailUserFilter]]></VALUE> +<!--69169157E1904E88821128E7FB08DC39--> <NAME><![CDATA[Show Audit Trail User filter]]></NAME> +<!--69169157E1904E88821128E7FB08DC39--> <DESCRIPTION><![CDATA[If set to 'N', user list in audit trail filter won't be shown, else it will be shown]]></DESCRIPTION> +<!--69169157E1904E88821128E7FB08DC39--> <AD_REFERENCE_ID><![CDATA[A26BA480E2014707B47257024C3CBFF7]]></AD_REFERENCE_ID> +<!--69169157E1904E88821128E7FB08DC39--> <AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID> +<!--69169157E1904E88821128E7FB08DC39--></AD_REF_LIST> + <!--6952F41D079442D1B332D5C2E2DBCDE9--><AD_REF_LIST> <!--6952F41D079442D1B332D5C2E2DBCDE9--> <AD_REF_LIST_ID><![CDATA[6952F41D079442D1B332D5C2E2DBCDE9]]></AD_REF_LIST_ID> <!--6952F41D079442D1B332D5C2E2DBCDE9--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID> diff -r 5a18bcb0e394 -r ff01c2b4f10e src/org/openbravo/erpCommon/businessUtility/AuditTrailPopup.java --- a/src/org/openbravo/erpCommon/businessUtility/AuditTrailPopup.java Wed Apr 03 13:46:54 2019 +0200 +++ b/src/org/openbravo/erpCommon/businessUtility/AuditTrailPopup.java Wed Mar 27 13:49:32 2019 +0100 @@ -11,7 +11,7 @@ * under the License. * The Original Code is Openbravo ERP. * The Initial Developer of the Original Code is Openbravo SLU - * All portions are Copyright (C) 2009-2016 Openbravo SLU + * All portions are Copyright (C) 2009-2019 Openbravo SLU * All Rights Reserved. * Contributor(s): ______________________________________. ************************************************************************ @@ -58,6 +58,7 @@ import org.openbravo.erpCommon.obps.ActivationKey.FeatureRestriction; import org.openbravo.erpCommon.utility.ComboTableData; import org.openbravo.erpCommon.utility.OBError; +import org.openbravo.erpCommon.utility.PropertyException; import org.openbravo.erpCommon.utility.SQLReturnObject; import org.openbravo.erpCommon.utility.Utility; import org.openbravo.erpCommon.utility.UtilityData; @@ -253,8 +254,17 @@ log4j.debug( "POPUP-HISTORY - tabId: " + tabId + ", tableId: " + tableId + ", inpRecordId: " + recordId); + List<String> discards = new ArrayList<>(); + + if (!shouldShowUserFilter(vars)) { + discards.add("userSelect"); + } + + String[] discard = new String[discards.size()]; + discards.toArray(discard); + XmlDocument xmlDocument = xmlEngine - .readXmlTemplate("org/openbravo/erpCommon/businessUtility/AuditTrailPopupHistory") + .readXmlTemplate("org/openbravo/erpCommon/businessUtility/AuditTrailPopupHistory", discard) .createXmlDocument(); xmlDocument.setParameter("directory", "var baseDirectory = \"" + strReplaceWith + "/\";\n"); @@ -279,16 +289,7 @@ xmlDocument.setParameter("dateTosaveFormat", vars.getJavaDataTimeFormat()); // user combobox (restricted to login users only) - try { - ComboTableData cmd = new ComboTableData(vars, this, "19", "AD_User_ID", "", - "C48E4CAE3C2A4C5DBC2E011D8AD2C428", - Utility.getContext(this, vars, "#AccessibleOrgTree", "AuditTrailPopup"), - Utility.getContext(this, vars, "#User_Client", "AuditTrailPopup"), 0); - cmd.fillParameters(null, "AuditTrailPopup", ""); - xmlDocument.setData("reportAD_User_ID", "liststructure", cmd.select(false)); - } catch (Exception e) { - log4j.error("Error getting adUser combo content", e); - } + fillUserComboData(vars, xmlDocument); // fields combobox (filtered to be in same tab) try { @@ -360,6 +361,30 @@ out.close(); } + private void fillUserComboData(VariablesSecureApp vars, XmlDocument xmlDocument) { + if (shouldShowUserFilter(vars)) { + try { + ComboTableData cmd = new ComboTableData(vars, this, "19", "AD_User_ID", "", + "C48E4CAE3C2A4C5DBC2E011D8AD2C428", + Utility.getContext(this, vars, "#AccessibleOrgTree", "AuditTrailPopup"), + Utility.getContext(this, vars, "#User_Client", "AuditTrailPopup"), 0); + cmd.fillParameters(null, "AuditTrailPopup", ""); + xmlDocument.setData("reportAD_User_ID", "liststructure", cmd.select(false)); + } catch (Exception e) { + log4j.error("Error getting adUser combo content", e); + } + } + } + + private boolean shouldShowUserFilter(VariablesSecureApp vars) { + try { + return !"N".equals(Preferences.getPreferenceValue("ShowAuditTrailUserFilter", true, + vars.getClient(), vars.getOrg(), vars.getUser(), vars.getRole(), null)); + } catch (PropertyException e) { + return true; + } + } + /** * Gets the translated name of the business element stored in a table. * @@ -402,7 +427,7 @@ // tab link from the deleted records view String parentLinkFilter = vars.getStringParameter("inpParentLinkFilter", IsIDFilter.instance); boolean haveParentLink = (parentLinkFilter != null && !parentLinkFilter.isEmpty()); - List<String> discards = new ArrayList<String>(); + List<String> discards = new ArrayList<>(); if (haveParentLink) { discards.add("discardLinkBack"); } @@ -426,6 +451,11 @@ } links.setLength(links.length() - 2); } + + if (!shouldShowUserFilter(vars)) { + discards.add("userSelect"); + } + String[] discard = new String[discards.size()]; discards.toArray(discard); XmlDocument xmlDocument = xmlEngine @@ -455,17 +485,7 @@ xmlDocument.setParameter("dateTodisplayFormat", vars.getSessionValue("#AD_SqlDateTimeFormat")); xmlDocument.setParameter("dateTosaveFormat", vars.getSessionValue("#AD_SqlDateTimeFormat")); - // user combobox (restricted to login users only) - try { - ComboTableData cmd = new ComboTableData(vars, this, "19", "AD_User_ID", "", - "C48E4CAE3C2A4C5DBC2E011D8AD2C428", - Utility.getContext(this, vars, "#AccessibleOrgTree", "AuditTrailPopup"), - Utility.getContext(this, vars, "#User_Client", "AuditTrailPopup"), 0); - cmd.fillParameters(null, "AuditTrailPopup", ""); - xmlDocument.setData("reportAD_User_ID", "liststructure", cmd.select(false)); - } catch (Exception e) { - log4j.error("Error getting adUser combo content", e); - } + fillUserComboData(vars, xmlDocument); // param for building 'Back to history' link xmlDocument.setParameter("recordId", recordId); diff -r 5a18bcb0e394 -r ff01c2b4f10e src/org/openbravo/erpCommon/businessUtility/AuditTrailPopupDeleted.html --- a/src/org/openbravo/erpCommon/businessUtility/AuditTrailPopupDeleted.html Wed Apr 03 13:46:54 2019 +0200 +++ b/src/org/openbravo/erpCommon/businessUtility/AuditTrailPopupDeleted.html Wed Mar 27 13:49:32 2019 +0100 @@ -11,7 +11,7 @@ * under the License. * The Original Code is Openbravo ERP. * The Initial Developer of the Original Code is Openbravo SLU - * All portions are Copyright (C) 2009-2011 Openbravo SLU + * All portions are Copyright (C) 2009-2019 Openbravo SLU * All Rights Reserved. * Contributor(s): ______________________________________. ************************************************************************ @@ -370,8 +370,8 @@ </tr> <tr> - <td class="TitleCell"><span class="LabelText">User</span></td> - <td colspan="2" class="Combo_ContentCell"> + <td class="TitleCell" id="userSelect"><span class="LabelText">User</span></td> + <td colspan="2" class="Combo_ContentCell" id="userSelect"> <select class="Combo Combo_TwoCells_width" name="inpUser" id="reportAD_User_ID_S"> <option value=""></option> <div id="reportAD_User_ID"></div> diff -r 5a18bcb0e394 -r ff01c2b4f10e src/org/openbravo/erpCommon/businessUtility/AuditTrailPopupHistory.html --- a/src/org/openbravo/erpCommon/businessUtility/AuditTrailPopupHistory.html Wed Apr 03 13:46:54 2019 +0200 +++ b/src/org/openbravo/erpCommon/businessUtility/AuditTrailPopupHistory.html Wed Mar 27 13:49:32 2019 +0100 @@ -11,7 +11,7 @@ * under the License. * The Original Code is Openbravo ERP. * The Initial Developer of the Original Code is Openbravo SLU - * All portions are Copyright (C) 2009-2011 Openbravo SLU + * All portions are Copyright (C) 2009-2019 Openbravo SLU * All Rights Reserved. * Contributor(s): ______________________________________. ************************************************************************ @@ -365,8 +365,8 @@ </tr> <tr> - <td class="TitleCell"><span class="LabelText">User</span></td> - <td colspan="2" class="Combo_ContentCell"> + <td class="TitleCell" id="userSelect"><span class="LabelText">User</span></td> + <td colspan="2" class="Combo_ContentCell" id="userSelect"> <select class="Combo Combo_TwoCells_width" name="inpUser" id="reportAD_User_ID_S"> <option value=""></option> <div id="reportAD_User_ID"></div> _______________________________________________ Openbravo-commits mailing list Openbravo-commits@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openbravo-commits