details: /erp/erp/devel/pi/rev/fdebd666abc9 changeset: 4668:fdebd666abc9 user: Stefan Hühner <stefan.huehner <at> openbravo.com> date: Thu Aug 20 15:36:29 2009 +0200 summary: Fixed 10340: Change the to display the openbravo logo (either community or ops logo) - Remove changing logo css class by javascript - Load image not directly but via a servlet returning the 'correct' logo based on instance activation status (cached) - Add helper to alert user to clean cache once when instance activation status changes - Add this helper to Login page and Instance management page
details: /erp/erp/devel/pi/rev/d82e2aade14f changeset: 4669:d82e2aade14f user: Stefan Hühner <stefan.huehner <at> openbravo.com> date: Thu Aug 20 15:37:23 2009 +0200 summary: Merge diffstat: src-db/database/model/functions/M_INOUT_CREATEINVOICE.xml | 4 +- src-db/database/sourcedata/AD_MODEL_OBJECT.xml | 26 +++++ src-db/database/sourcedata/AD_MODEL_OBJECT_MAPPING.xml | 20 ++++ src/org/openbravo/erpCommon/ad_forms/InstanceManagement.html | 8 +- src/org/openbravo/erpCommon/obps/CheckCleanCache.java | 86 +++++++++++++++++ src/org/openbravo/erpCommon/obps/GetOpsLogo.java | 79 +++++++++++++++ src/org/openbravo/erpCommon/security/Login_F1.html | 5 + web/js/utils.js | 36 ------- web/skins/Default/Openbravo_ERP_250.css | 22 +---- 9 files changed, 226 insertions(+), 60 deletions(-) diffs (truncated from 429 to 300 lines): diff -r 8d81bf71afee -r d82e2aade14f src-db/database/model/functions/M_INOUT_CREATEINVOICE.xml --- a/src-db/database/model/functions/M_INOUT_CREATEINVOICE.xml Thu Aug 20 17:25:56 2009 +0530 +++ b/src-db/database/model/functions/M_INOUT_CREATEINVOICE.xml Thu Aug 20 15:37:23 2009 +0200 @@ -240,10 +240,12 @@ SELECT COALESCE(MAX(PriceList), 0), COALESCE(MAX(PriceActual), 0), COALESCE(MAX(PriceLimit), 0), + COALESCE(MAX(Linenetamt),0), MAX(c_tax_id) INTO v_PriceList, v_PriceActual, v_PriceLimit, + v_LineNetAmt, v_c_Tax_ID FROM C_ORDERLINE WHERE C_OrderLine_ID=CUR_ShipmentLines.C_OrderLine_ID; @@ -260,6 +262,7 @@ AND M_PriceList_Version_ID=v_M_PriceList_Version_ID; v_C_Tax_ID:=C_Gettax(CUR_ShipmentLines.M_Product_ID, CUR_Shipment.MovementDate, CUR_Shipment.AD_Org_ID, CUR_Shipment.M_Warehouse_ID, CUR_Shipment.C_BPartner_Location_ID, CUR_Shipment.C_BPartner_Location_ID, CUR_Shipment.C_Project_ID, 'N') ; v_PriceActual:=M_Get_Offers_Price(now(), CUR_Shipment.C_BPartner_ID, CUR_ShipmentLines.M_Product_ID, v_PriceActual, CUR_ShipmentLines.MovementQty, v_M_PriceList_ID); + v_LineNetAmt:=ROUND(M_Get_Offers_Price(now(), CUR_Shipment.C_BPartner_ID, CUR_ShipmentLines.M_Product_ID, v_PriceActual, CUR_ShipmentLines.MovementQty, v_M_PriceList_ID) *CUR_ShipmentLines.MovementQty, 2) ; END IF; -- Get UOM + Tax -- VERY simplified, but should work in most cases v_ResultStr:='NoUOM+Tax'; @@ -270,7 +273,6 @@ -- v_UOM_ID, v_Tax_ID v_ResultStr:='InsertInvoiceLine'; Ad_Sequence_Next('C_InvoiceLine', CUR_Shipment.C_Order_ID, v_NextNo) ; - v_LineNetAmt:=ROUND(M_Get_Offers_Price(now(), CUR_Shipment.C_BPartner_ID, CUR_ShipmentLines.M_Product_ID, v_PriceActual, CUR_ShipmentLines.MovementQty, v_M_PriceList_ID) *CUR_ShipmentLines.MovementQty, 2) ; INSERT INTO C_INVOICELINE ( diff -r 8d81bf71afee -r d82e2aade14f src-db/database/sourcedata/AD_MODEL_OBJECT.xml --- a/src-db/database/sourcedata/AD_MODEL_OBJECT.xml Thu Aug 20 17:25:56 2009 +0530 +++ b/src-db/database/sourcedata/AD_MODEL_OBJECT.xml Thu Aug 20 15:37:23 2009 +0200 @@ -16640,6 +16640,19 @@ <!--3F874173A01B43C0ACEA29111CE98ECE--> <SEQNO><![CDATA[40]]></SEQNO> <!--3F874173A01B43C0ACEA29111CE98ECE--></AD_MODEL_OBJECT> +<!--488B251D70EA4B8784E748836042CD66--><AD_MODEL_OBJECT> +<!--488B251D70EA4B8784E748836042CD66--> <AD_MODEL_OBJECT_ID><![CDATA[488B251D70EA4B8784E748836042CD66]]></AD_MODEL_OBJECT_ID> +<!--488B251D70EA4B8784E748836042CD66--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID> +<!--488B251D70EA4B8784E748836042CD66--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID> +<!--488B251D70EA4B8784E748836042CD66--> <ISACTIVE><![CDATA[Y]]></ISACTIVE> +<!--488B251D70EA4B8784E748836042CD66--> <ACTION><![CDATA[M]]></ACTION> +<!--488B251D70EA4B8784E748836042CD66--> <CLASSNAME><![CDATA[org.openbravo.erpCommon.obps.CheckCleanCache]]></CLASSNAME> +<!--488B251D70EA4B8784E748836042CD66--> <ISDEFAULT><![CDATA[N]]></ISDEFAULT> +<!--488B251D70EA4B8784E748836042CD66--> <AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID> +<!--488B251D70EA4B8784E748836042CD66--> <OBJECT_TYPE><![CDATA[S]]></OBJECT_TYPE> +<!--488B251D70EA4B8784E748836042CD66--> <NAME><![CDATA[CheckCleanCache]]></NAME> +<!--488B251D70EA4B8784E748836042CD66--></AD_MODEL_OBJECT> + <!--4DA7FE3E877447F0AD9342E627ADB8D5--><AD_MODEL_OBJECT> <!--4DA7FE3E877447F0AD9342E627ADB8D5--> <AD_MODEL_OBJECT_ID><![CDATA[4DA7FE3E877447F0AD9342E627ADB8D5]]></AD_MODEL_OBJECT_ID> <!--4DA7FE3E877447F0AD9342E627ADB8D5--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID> @@ -17389,6 +17402,19 @@ <!--88420DFF1C6D48A18800FB91A91362AA--> <SEQNO><![CDATA[20]]></SEQNO> <!--88420DFF1C6D48A18800FB91A91362AA--></AD_MODEL_OBJECT> +<!--8993A79B45F8457CB56FC27F084FF5C6--><AD_MODEL_OBJECT> +<!--8993A79B45F8457CB56FC27F084FF5C6--> <AD_MODEL_OBJECT_ID><![CDATA[8993A79B45F8457CB56FC27F084FF5C6]]></AD_MODEL_OBJECT_ID> +<!--8993A79B45F8457CB56FC27F084FF5C6--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID> +<!--8993A79B45F8457CB56FC27F084FF5C6--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID> +<!--8993A79B45F8457CB56FC27F084FF5C6--> <ISACTIVE><![CDATA[Y]]></ISACTIVE> +<!--8993A79B45F8457CB56FC27F084FF5C6--> <ACTION><![CDATA[M]]></ACTION> +<!--8993A79B45F8457CB56FC27F084FF5C6--> <CLASSNAME><![CDATA[org.openbravo.erpCommon.obps.GetOpsLogo]]></CLASSNAME> +<!--8993A79B45F8457CB56FC27F084FF5C6--> <ISDEFAULT><![CDATA[N]]></ISDEFAULT> +<!--8993A79B45F8457CB56FC27F084FF5C6--> <AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID> +<!--8993A79B45F8457CB56FC27F084FF5C6--> <OBJECT_TYPE><![CDATA[S]]></OBJECT_TYPE> +<!--8993A79B45F8457CB56FC27F084FF5C6--> <NAME><![CDATA[GetOpsLogo]]></NAME> +<!--8993A79B45F8457CB56FC27F084FF5C6--></AD_MODEL_OBJECT> + <!--8B195128618D46C9B146B8A845522ACA--><AD_MODEL_OBJECT> <!--8B195128618D46C9B146B8A845522ACA--> <AD_MODEL_OBJECT_ID><![CDATA[8B195128618D46C9B146B8A845522ACA]]></AD_MODEL_OBJECT_ID> <!--8B195128618D46C9B146B8A845522ACA--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID> diff -r 8d81bf71afee -r d82e2aade14f src-db/database/sourcedata/AD_MODEL_OBJECT_MAPPING.xml --- a/src-db/database/sourcedata/AD_MODEL_OBJECT_MAPPING.xml Thu Aug 20 17:25:56 2009 +0530 +++ b/src-db/database/sourcedata/AD_MODEL_OBJECT_MAPPING.xml Thu Aug 20 15:37:23 2009 +0200 @@ -25400,6 +25400,16 @@ <!--332827CF4E354EF8A92A4A708E166BA0--> <ISDEFAULT><![CDATA[N]]></ISDEFAULT> <!--332827CF4E354EF8A92A4A708E166BA0--></AD_MODEL_OBJECT_MAPPING> +<!--372045A027A74A08B6EBE5761AE7F061--><AD_MODEL_OBJECT_MAPPING> +<!--372045A027A74A08B6EBE5761AE7F061--> <AD_MODEL_OBJECT_MAPPING_ID><![CDATA[372045A027A74A08B6EBE5761AE7F061]]></AD_MODEL_OBJECT_MAPPING_ID> +<!--372045A027A74A08B6EBE5761AE7F061--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID> +<!--372045A027A74A08B6EBE5761AE7F061--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID> +<!--372045A027A74A08B6EBE5761AE7F061--> <ISACTIVE><![CDATA[Y]]></ISACTIVE> +<!--372045A027A74A08B6EBE5761AE7F061--> <AD_MODEL_OBJECT_ID><![CDATA[8993A79B45F8457CB56FC27F084FF5C6]]></AD_MODEL_OBJECT_ID> +<!--372045A027A74A08B6EBE5761AE7F061--> <MAPPINGNAME><![CDATA[/utility/GetOpsLogo.png]]></MAPPINGNAME> +<!--372045A027A74A08B6EBE5761AE7F061--> <ISDEFAULT><![CDATA[N]]></ISDEFAULT> +<!--372045A027A74A08B6EBE5761AE7F061--></AD_MODEL_OBJECT_MAPPING> + <!--3AB6696A84484E7CA72454C26A2B9534--><AD_MODEL_OBJECT_MAPPING> <!--3AB6696A84484E7CA72454C26A2B9534--> <AD_MODEL_OBJECT_MAPPING_ID><![CDATA[3AB6696A84484E7CA72454C26A2B9534]]></AD_MODEL_OBJECT_MAPPING_ID> <!--3AB6696A84484E7CA72454C26A2B9534--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID> @@ -26570,6 +26580,16 @@ <!--ACF55029BBC7476AA1EB6C502EDE5BA9--> <ISDEFAULT><![CDATA[N]]></ISDEFAULT> <!--ACF55029BBC7476AA1EB6C502EDE5BA9--></AD_MODEL_OBJECT_MAPPING> +<!--AFEFA3ECE5E543C8BFCB049F0208577F--><AD_MODEL_OBJECT_MAPPING> +<!--AFEFA3ECE5E543C8BFCB049F0208577F--> <AD_MODEL_OBJECT_MAPPING_ID><![CDATA[AFEFA3ECE5E543C8BFCB049F0208577F]]></AD_MODEL_OBJECT_MAPPING_ID> +<!--AFEFA3ECE5E543C8BFCB049F0208577F--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID> +<!--AFEFA3ECE5E543C8BFCB049F0208577F--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID> +<!--AFEFA3ECE5E543C8BFCB049F0208577F--> <ISACTIVE><![CDATA[Y]]></ISACTIVE> +<!--AFEFA3ECE5E543C8BFCB049F0208577F--> <AD_MODEL_OBJECT_ID><![CDATA[488B251D70EA4B8784E748836042CD66]]></AD_MODEL_OBJECT_ID> +<!--AFEFA3ECE5E543C8BFCB049F0208577F--> <MAPPINGNAME><![CDATA[/utility/CheckCleanCache.js]]></MAPPINGNAME> +<!--AFEFA3ECE5E543C8BFCB049F0208577F--> <ISDEFAULT><![CDATA[N]]></ISDEFAULT> +<!--AFEFA3ECE5E543C8BFCB049F0208577F--></AD_MODEL_OBJECT_MAPPING> + <!--B9144B0263704762A93253F219A736E7--><AD_MODEL_OBJECT_MAPPING> <!--B9144B0263704762A93253F219A736E7--> <AD_MODEL_OBJECT_MAPPING_ID><![CDATA[B9144B0263704762A93253F219A736E7]]></AD_MODEL_OBJECT_MAPPING_ID> <!--B9144B0263704762A93253F219A736E7--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID> diff -r 8d81bf71afee -r d82e2aade14f src/org/openbravo/erpCommon/ad_forms/InstanceManagement.html --- a/src/org/openbravo/erpCommon/ad_forms/InstanceManagement.html Thu Aug 20 17:25:56 2009 +0530 +++ b/src/org/openbravo/erpCommon/ad_forms/InstanceManagement.html Thu Aug 20 15:37:23 2009 +0200 @@ -43,8 +43,8 @@ <script language="JavaScript" src="../../../../../web/js/messages.js" type="text/javascript"></script> <script language="JavaScript" src="../utility/DynamicJS.js" type="text/javascript"></script> <script language="JavaScript" src="../../../../../web/js/appStatus.js" type="text/javascript"></script> - - +<script language="JavaScript" src="../utility/CheckCleanCache.js?cache=true" type="text/javascript"></script> +<script language="JavaScript" src="../utility/CheckCleanCache.js?cache=false" type="text/javascript"></script> <script language="JavaScript" type="text/javascript"> function validate(action, frm, value) { @@ -90,7 +90,9 @@ resizeArea(); - + if (isOpsInstance() != isOpsInstanceCached()) { + alert("Your browser's cache has outdated files. Please clean it and reload the page."); + } } function onResizeDo(){ diff -r 8d81bf71afee -r d82e2aade14f src/org/openbravo/erpCommon/obps/CheckCleanCache.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/org/openbravo/erpCommon/obps/CheckCleanCache.java Thu Aug 20 15:37:23 2009 +0200 @@ -0,0 +1,86 @@ +/* + ************************************************************************* + * The contents of this file are subject to the Openbravo Public License + * Version 1.0 (the "License"), being the Mozilla Public License + * Version 1.1 with a permitted attribution clause; you may not use this + * file except in compliance with the License. You may obtain a copy of + * the License at http://www.openbravo.com/legal/license.html + * Software distributed under the License is distributed on an "AS IS" + * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the + * License for the specific language governing rights and limitations + * under the License. + * The Original Code is Openbravo ERP. + * The Initial Developer of the Original Code is Openbravo SL + * All portions are Copyright (C) 2009 Openbravo SL + * All Rights Reserved. + * Contributor(s): ______________________________________. + ************************************************************************ + */ + +package org.openbravo.erpCommon.obps; + +import java.io.IOException; +import java.io.PrintWriter; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.openbravo.base.HttpBaseServlet; +import org.openbravo.base.secureApp.VariablesSecureApp; +import org.openbravo.dal.core.OBContext; + +/** + * Servlet to check if the browser cache needs to be cleaned once after an instance activation or + * deactivation. + * + * It returns a small javascript part with the instance activation status. Depending on a request + * parameter the response will be marked as cached (similar to images) or not-cached. By comparing + * the cached and non-cached response it is possible to see it the browser cache contains data from + * before the instance activation/deactivation. + * + * @author huehner + * + */ +public class CheckCleanCache extends HttpBaseServlet { + private static final long serialVersionUID = 1L; + + public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, + ServletException { + VariablesSecureApp vars = new VariablesSecureApp(request); + String cache = vars.getRequiredStringParameter("cache"); + boolean cached = new Boolean(cache); + + // either set explicit cache forever, or don't cache behavior + if (cached) { + response.addHeader("Expires", "Sun, 17 Jan 2038 19:14:07 GMT"); + response.addHeader("Cache-Control", "public"); + } else { + response.addHeader("Expires", "-1"); + response.addHeader("Cache-Control", "no-cache"); + } + + // get instance active status from db + boolean active = false; + OBContext.setAdminContext(); + try { + ActivationKey ak = new ActivationKey(); + active = ak.isActive(); + log4j.debug("Instance activate: " + active); + } finally { + OBContext.setOBContext((OBContext) null); + } + + PrintWriter pw = response.getWriter(); + StringBuilder res = new StringBuilder(); + res.append("function isOpsInstance"); + if (cached) { + res.append("Cached"); + } + res.append("() { return "); + res.append(String.valueOf(active)); + res.append(";};"); + pw.println(res); + } + +} diff -r 8d81bf71afee -r d82e2aade14f src/org/openbravo/erpCommon/obps/GetOpsLogo.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/org/openbravo/erpCommon/obps/GetOpsLogo.java Thu Aug 20 15:37:23 2009 +0200 @@ -0,0 +1,79 @@ +/* + ************************************************************************* + * The contents of this file are subject to the Openbravo Public License + * Version 1.0 (the "License"), being the Mozilla Public License + * Version 1.1 with a permitted attribution clause; you may not use this + * file except in compliance with the License. You may obtain a copy of + * the License at http://www.openbravo.com/legal/license.html + * Software distributed under the License is distributed on an "AS IS" + * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the + * License for the specific language governing rights and limitations + * under the License. + * The Original Code is Openbravo ERP. + * The Initial Developer of the Original Code is Openbravo SL + * All portions are Copyright (C) 2009 Openbravo SL + * All Rights Reserved. + * Contributor(s): ______________________________________. + ************************************************************************ + */ + +package org.openbravo.erpCommon.obps; + +import java.io.IOException; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.openbravo.base.HttpBaseServlet; +import org.openbravo.dal.core.OBContext; +import org.openbravo.utils.FileUtility; + +/** + * Servlet which returns the openbravo logo image. Depending on instance activation status either + * the ops image or the normal powered by openbravo image is returned. + * + * @author huehner + * + */ +public class GetOpsLogo extends HttpBaseServlet { + private static final long serialVersionUID = 1L; + + public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, + ServletException { + + String communityLogo = "PoweredByOpenbravo.png"; + String opsLogo = "PoweredByOpenbravoOPS.png"; + + // get instance active status from db + boolean active = false; + OBContext.setAdminContext(); + try { + ActivationKey ak = new ActivationKey(); + active = ak.isActive(); + log4j.debug("GetOpsLogo: activated: " + active); + } finally { + OBContext.setOBContext((OBContext) null); + } + + String activeLogo; + if (active) { + activeLogo = opsLogo; + } else { + activeLogo = communityLogo; + } + + FileUtility f = new FileUtility(this.globalParameters.prefix + "web/images", activeLogo, false, + true); + response.setContentType("image/png"); + // mark response as cache-forever ------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ Openbravo-commits mailing list Openbravo-commits@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openbravo-commits