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

Reply via email to