knguyen     2005/08/22 10:40:38 CEST

  Modified files:
    core/src/java/org/apache/slide/common JahiaDomain.java 
    core/src/java/org/apache/slide/security 
                                            JahiaWebdavSecurity.java 
    core/src/java/org/apache/slide/webdav JahiaWebdavServlet.java 
                                          JahiaWebdavServletConfig.java 
    core/src/java/org/jahia/ajax DateTimeAjaxServlet.java 
    core/src/java/org/jahia/data/viewhelper/sitemap 
                                                    
WorkflowSiteMapViewHelper.java 
    core/src/java/org/jahia/engines/timebasedpublishing 
                                                        CalendarHandler.java 
                                                        
TimeBasedPublishingEngine.java 
    core/src/java/org/jahia/hibernate/manager 
                                              JahiaObjectManager.java 
    core/src/java/org/jahia/services/search 
                                            JahiaSearchBaseService.java 
    core/src/java/org/jahia/services/timebasedpublishing 
                                                         
RangeRetentionRule.java 
                                                         
TimeBasedPublishingImplService.java 
    core/src/webapp/WEB-INF web.xml 
    core/src/webapp/WEB-INF/etc/struts struts-config.xml 
    core/src/webapp/jsp/jahia/engines/timebasedpublishing 
                                                          calendar.jsp 
                                                          
timebasedpublishing.jsp 
    core/src/webapp/jsp/jahia/javascript serverdatetime.js 
  Added files:
    core/src/java/org/jahia/ajax AjaxDispatchAction.java 
    core/src/java/org/jahia/ajax/serverdatetime 
                                                DateTimeAction.java 
  Log:
  - synchro
  
  Revision  Changes    Path
  1.7       +3 -3      
jahia/core/src/java/org/apache/slide/common/JahiaDomain.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/apache/slide/common/JahiaDomain.java.diff?r1=1.6&r2=1.7&f=h
  1.7       +4 -4      
jahia/core/src/java/org/apache/slide/security/JahiaWebdavSecurity.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/apache/slide/security/JahiaWebdavSecurity.java.diff?r1=1.6&r2=1.7&f=h
  1.8       +4 -4      
jahia/core/src/java/org/apache/slide/webdav/JahiaWebdavServlet.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/apache/slide/webdav/JahiaWebdavServlet.java.diff?r1=1.7&r2=1.8&f=h
  1.4       +3 -3      
jahia/core/src/java/org/apache/slide/webdav/JahiaWebdavServletConfig.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/apache/slide/webdav/JahiaWebdavServletConfig.java.diff?r1=1.3&r2=1.4&f=h
  1.1       +107 -0    
jahia/core/src/java/org/jahia/ajax/AjaxDispatchAction.java (new)
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/ajax/AjaxDispatchAction.java?rev=1.1&content-type=text/plain
  1.3       +15 -4     
jahia/core/src/java/org/jahia/ajax/DateTimeAjaxServlet.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/ajax/DateTimeAjaxServlet.java.diff?r1=1.2&r2=1.3&f=h
  1.1       +162 -0    
jahia/core/src/java/org/jahia/ajax/serverdatetime/DateTimeAction.java (new)
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/ajax/serverdatetime/DateTimeAction.java?rev=1.1&content-type=text/plain
  1.6       +4 -4      
jahia/core/src/java/org/jahia/data/viewhelper/sitemap/WorkflowSiteMapViewHelper.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/data/viewhelper/sitemap/WorkflowSiteMapViewHelper.java.diff?r1=1.5&r2=1.6&f=h
  1.2       +55 -3     
jahia/core/src/java/org/jahia/engines/timebasedpublishing/CalendarHandler.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/engines/timebasedpublishing/CalendarHandler.java.diff?r1=1.1&r2=1.2&f=h
  1.5       +12 -3     
jahia/core/src/java/org/jahia/engines/timebasedpublishing/TimeBasedPublishingEngine.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/engines/timebasedpublishing/TimeBasedPublishingEngine.java.diff?r1=1.4&r2=1.5&f=h
  1.4       +10 -42    
jahia/core/src/java/org/jahia/hibernate/manager/JahiaObjectManager.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/hibernate/manager/JahiaObjectManager.java.diff?r1=1.3&r2=1.4&f=h
  1.17      +0 -11     
jahia/core/src/java/org/jahia/services/search/JahiaSearchBaseService.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/search/JahiaSearchBaseService.java.diff?r1=1.16&r2=1.17&f=h
  1.3       +51 -3     
jahia/core/src/java/org/jahia/services/timebasedpublishing/RangeRetentionRule.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/timebasedpublishing/RangeRetentionRule.java.diff?r1=1.2&r2=1.3&f=h
  1.4       +8 -6      
jahia/core/src/java/org/jahia/services/timebasedpublishing/TimeBasedPublishingImplService.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/timebasedpublishing/TimeBasedPublishingImplService.java.diff?r1=1.3&r2=1.4&f=h
  1.10      +6 -0      
jahia/core/src/webapp/WEB-INF/etc/struts/struts-config.xml
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/webapp/WEB-INF/etc/struts/struts-config.xml.diff?r1=1.9&r2=1.10&f=h
  1.21      +20 -0     jahia/core/src/webapp/WEB-INF/web.xml
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/webapp/WEB-INF/web.xml.diff?r1=1.20&r2=1.21&f=h
  1.3       +25 -18    
jahia/core/src/webapp/jsp/jahia/engines/timebasedpublishing/calendar.jsp
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/webapp/jsp/jahia/engines/timebasedpublishing/calendar.jsp.diff?r1=1.2&r2=1.3&f=h
  1.6       +4 -2      
jahia/core/src/webapp/jsp/jahia/engines/timebasedpublishing/timebasedpublishing.jsp
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/webapp/jsp/jahia/engines/timebasedpublishing/timebasedpublishing.jsp.diff?r1=1.5&r2=1.6&f=h
  1.2       +82 -12    
jahia/core/src/webapp/jsp/jahia/javascript/serverdatetime.js
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/webapp/jsp/jahia/javascript/serverdatetime.js.diff?r1=1.1&r2=1.2&f=h
  
  
  
  Index: JahiaDomain.java
  ===================================================================
  RCS file: /cvs/jahia/core/src/java/org/apache/slide/common/JahiaDomain.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- JahiaDomain.java  22 Jun 2005 12:32:53 -0000      1.6
  +++ JahiaDomain.java  22 Aug 2005 08:40:34 -0000      1.7
  @@ -16,11 +16,11 @@
    * Date: 30 ao�t 2004
    * Time: 17:23:47
    * <p/>
  - * $Author: cmailleux $
  - * $Date: 2005/06/22 12:32:53 $
  - * $Id: JahiaDomain.java,v 1.6 2005/06/22 12:32:53 cmailleux Exp $
  + * $Author: knguyen $
  + * $Date: 2005/08/22 08:40:34 $
  + * $Id: JahiaDomain.java,v 1.7 2005/08/22 08:40:34 knguyen Exp $
    * $RCSfile: JahiaDomain.java,v $
  - * $Revision: 1.6 $
  + * $Revision: 1.7 $
    * $Source: 
/cvs/jahia/core/src/java/org/apache/slide/common/JahiaDomain.java,v $
    * $State: Exp $
    */
  
  
  
  Index: JahiaWebdavSecurity.java
  ===================================================================
  RCS file: 
/cvs/jahia/core/src/java/org/apache/slide/security/JahiaWebdavSecurity.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- JahiaWebdavSecurity.java  22 Jun 2005 12:32:53 -0000      1.6
  +++ JahiaWebdavSecurity.java  22 Aug 2005 08:40:34 -0000      1.7
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/cvs/jahia/core/src/java/org/apache/slide/security/JahiaWebdavSecurity.java,v 
1.6 2005/06/22 12:32:53 cmailleux Exp $
  - * $Revision: 1.6 $
  - * $Date: 2005/06/22 12:32:53 $
  + * $Header: 
/cvs/jahia/core/src/java/org/apache/slide/security/JahiaWebdavSecurity.java,v 
1.7 2005/08/22 08:40:34 knguyen Exp $
  + * $Revision: 1.7 $
  + * $Date: 2005/08/22 08:40:34 $
    *
    * ====================================================================
    *
  @@ -66,7 +66,7 @@
    * Security helper.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]">Remy Maucherat</a>
  - * @version $Revision: 1.6 $
  + * @version $Revision: 1.7 $
    */
   public class JahiaWebdavSecurity implements Security {
   
  
  
  
  Index: JahiaWebdavServlet.java
  ===================================================================
  RCS file: 
/cvs/jahia/core/src/java/org/apache/slide/webdav/JahiaWebdavServlet.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- JahiaWebdavServlet.java   22 Jun 2005 12:32:53 -0000      1.7
  +++ JahiaWebdavServlet.java   22 Aug 2005 08:40:35 -0000      1.8
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/cvs/jahia/core/src/java/org/apache/slide/webdav/JahiaWebdavServlet.java,v 1.7 
2005/06/22 12:32:53 cmailleux Exp $
  - * $Revision: 1.7 $
  - * $Date: 2005/06/22 12:32:53 $
  + * $Header: 
/cvs/jahia/core/src/java/org/apache/slide/webdav/JahiaWebdavServlet.java,v 1.8 
2005/08/22 08:40:35 knguyen Exp $
  + * $Revision: 1.8 $
  + * $Date: 2005/08/22 08:40:35 $
    *
    * ====================================================================
    *
  @@ -67,7 +67,7 @@
    * @author <a href="mailto:[EMAIL PROTECTED]">Remy Maucherat</a>
    * @author Dirk Verbeeck
    * @author <a href="mailto:[EMAIL PROTECTED]">Christopher Lenz</a>
  - * @version $Revision: 1.7 $
  + * @version $Revision: 1.8 $
    */
   public class JahiaWebdavServlet
       extends HttpServlet {
  
  
  
  Index: JahiaWebdavServletConfig.java
  ===================================================================
  RCS file: 
/cvs/jahia/core/src/java/org/apache/slide/webdav/JahiaWebdavServletConfig.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- JahiaWebdavServletConfig.java     22 Jun 2005 12:32:53 -0000      1.3
  +++ JahiaWebdavServletConfig.java     22 Aug 2005 08:40:35 -0000      1.4
  @@ -10,11 +10,11 @@
    * Date: 25 aožt 2004
    * Time: 12:10:15
    * <p/>
  - * $Author: cmailleux $
  - * $Date: 2005/06/22 12:32:53 $
  - * $Id: JahiaWebdavServletConfig.java,v 1.3 2005/06/22 12:32:53 cmailleux 
Exp $
  + * $Author: knguyen $
  + * $Date: 2005/08/22 08:40:35 $
  + * $Id: JahiaWebdavServletConfig.java,v 1.4 2005/08/22 08:40:35 knguyen Exp $
    * $RCSfile: JahiaWebdavServletConfig.java,v $
  - * $Revision: 1.3 $
  + * $Revision: 1.4 $
    * $Source: 
/cvs/jahia/core/src/java/org/apache/slide/webdav/JahiaWebdavServletConfig.java,v
 $
    * $State: Exp $
    */
  
  
  
  Index: AjaxDispatchAction.java
  ====================================================================
  /*
   *                                   ____.
   *                       __/\ ______|    |__/\.     _______
   *            __   .____|    |       \   |    +----+       \
   *    _______|  /--|    |    |    -   \  _    |    :    -   \_________
   *   \\______: :---|    :    :           |    :    |         \________>
   *           |__\---\_____________:______:    :____|____:_____\
   *                                      /_____|
   *
   *              . . . i n   j a h i a   w e   t r u s t . . .
   *
   *
   *
   * ----- BEGIN LICENSE BLOCK -----
   * Version: JCSL 1.0
   *
   * The contents of this file are subject to the Jahia Community Source License
   * 1.0 or later (the "License"); you may not use this file except in
   * compliance with the License. You may obtain a copy of the License at
   * http://www.jahia.org/license
   *
   * 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 rights, obligations and limitations governing use of the contents
   * of the file. The Original and Upgraded Code is the Jahia CMS and Portal
   * Server. The developer of the Original and Upgraded Code is JAHIA Ltd. JAHIA
   * Ltd. owns the copyrights in the portions it created. All Rights Reserved.
   *
   * The Shared Modifications are Jahia View Helper.
   *
   * The Developer of the Shared Modifications is Jahia Solution Sàrl.
   * Portions created by the Initial Developer are Copyright (C) 2002 by the
   * Initial Developer. All Rights Reserved.
   *
   * ----- END LICENSE BLOCK -----
   */
  
  package org.jahia.ajax;
  
  import org.jahia.data.fields.JahiaDateFieldUtil;
  import org.apache.struts.actions.DispatchAction;
  
  import java.io.IOException;
  import java.io.OutputStream;
  import java.util.*;
  import java.text.SimpleDateFormat;
  import javax.servlet.ServletException;
  import javax.servlet.ServletConfig;
  import javax.servlet.http.HttpServletRequest;
  import javax.servlet.http.HttpServletResponse;
  
  
  public class AjaxDispatchAction extends DispatchAction {
      
      private static final org.apache.log4j.Logger logger =
              org.apache.log4j.Logger.getLogger(AjaxDispatchAction.class);
  
      protected static final String DELIMITER = ";;";
      
      protected static final String CHARSET = "UTF-8";
      protected static final String XML_HEADER =
              "<?xml version=\"1.0\" encoding=\"" + CHARSET + "\"?>\n";
      
      protected static final String CACHE_CONTROL = "Cache-Control" ;
      protected static final String NO_CACHE = "no-cache" ;
      protected static final String XML_CONTENT = "text/xml" ;
  
      /**
       * Simple utility method to retreive a parameter from a request and send
       * an error message (status 400) in case the parameter is not found.
       *
       * @param request the HttpServletRequest
       * @param response the HttpServletResponse
       * @param name The required parameter name
       *
       * @throws ServletException
       * @throws IOException
       */
      protected String getParameter(final HttpServletRequest request,
              final HttpServletResponse response, final String name)
              throws ServletException, IOException {
          final String value = request.getParameter(name);
          if (value == null) {
              logger.fatal("Missing required '" + name + "' parameter in 
request.");
              response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
              response.sendError(HttpServletResponse.SC_BAD_REQUEST,
                      "Missing required '" + name + "' parameter in request.");
          }
          return value;
      }
  
      /**
       * Simple utility method to build a String representing an XML node and 
its
       * value.
       * @param buff The StringBuffer that will be used to store the result
       * @param tagName The XML tag name
       * @param tagValue The XML tag value.
       */
      protected void buildNode(final StringBuffer buff, final String tagName,
              final String tagValue) {
          if (tagValue == null || tagValue.length() == 0) { return; }
          buff.append("<").append(tagName).append(">");
          buff.append(tagValue);
          buff.append("</").append(tagName).append(">\n");
      }
  
  }
  
  
  
  Index: DateTimeAjaxServlet.java
  ===================================================================
  RCS file: /cvs/jahia/core/src/java/org/jahia/ajax/DateTimeAjaxServlet.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- DateTimeAjaxServlet.java  15 Aug 2005 19:47:29 -0000      1.2
  +++ DateTimeAjaxServlet.java  22 Aug 2005 08:40:35 -0000      1.3
  @@ -97,12 +97,23 @@
               final HttpServletResponse response ) throws IOException {
           try {
   
  -            String dateFormat = getParameter(request,response,"dateformat");
  +            String val = getParameter(request,response,"dateformat");
  +            SimpleDateFormat df = JahiaDateFieldUtil.getSimpleDateFormat(val,
  +                    val,Locale.getDefault());
  +            val = getParameter(request,response,"timeZoneOffSet");
  +            long timeZoneOffSet = 0;
  +            try {
  +                timeZoneOffSet = Long.parseLong(val);
  +            } catch ( Throwable t) {
  +            }
  +
  +            int hostTimeZone = TimeZone.getDefault().getOffset(new 
Date().getTime());
  +            timeZoneOffSet =  hostTimeZone - timeZoneOffSet;
  +
               TimeZone timezone = TimeZone.getTimeZone("UTC");
               Calendar cal = Calendar.getInstance(timezone);
  -            cal.setTime(new Date());
  -            SimpleDateFormat df = 
JahiaDateFieldUtil.getSimpleDateFormat(dateFormat,
  -                    dateFormat,Locale.getDefault());
  +            Date now = new Date();
  +            cal.setTimeInMillis(now.getTime() - timeZoneOffSet);
   
               // Build the response message...
               response.setContentType(XML_CONTENT);    // mandatory, do not 
remove !
  
  
  
  Index: DateTimeAction.java
  ====================================================================
  package org.jahia.ajax.serverdatetime;
  
  import java.io.*;
  import java.text.*;
  import java.util.*;
  import javax.servlet.*;
  import javax.servlet.http.*;
  
  import org.apache.struts.action.*;
  import org.jahia.data.fields.JahiaDateFieldUtil;
  import org.jahia.ajax.AjaxDispatchAction;
  
  
  /**
   *
   * <p>Title: DateTime Dispatch Action</p>
   * <p>Description: </p>
   * <p>Copyright: Copyright (c) 2003</p>
   * <p>Company: Jahia</p>
   * @author Khue Nguyen
   * @version 1.0
   */
  public class DateTimeAction extends AjaxDispatchAction {
  
      private static org.apache.log4j.Logger logger =
              org.apache.log4j.Logger.getLogger(DateTimeAction.class);
  
      /**
       * Returns the server time
       *
       * @param mapping
       * @param form
       * @param request
       * @param response
       * @return
       * @throws IOException
       * @throws ServletException
       */
      public ActionForward getServerTime( ActionMapping mapping,
                                          ActionForm form,
                                          HttpServletRequest request,
                                          HttpServletResponse response)
      throws IOException, ServletException {
  
          try {
  
              String val = getParameter(request,response,"dateformat");
              SimpleDateFormat df = JahiaDateFieldUtil.getSimpleDateFormat(val,
                      val,Locale.getDefault());
              val = getParameter(request,response,"timeZoneOffSet");
              long timeZoneOffSet = 0;
              try {
                  timeZoneOffSet = Long.parseLong(val);
              } catch ( Throwable t) {
              }
  
              Date now = new Date();
              int hostTimeZone = TimeZone.getDefault().getOffset(now.getTime());
              timeZoneOffSet =  hostTimeZone - timeZoneOffSet;
  
              // Build the response message...
              response.setContentType(XML_CONTENT);    // mandatory, do not 
remove !
              response.setHeader(CACHE_CONTROL, NO_CACHE);    // mandatory, do 
not remove !
  
              // This buffer contains the response document
              final StringBuffer buff = new StringBuffer();
              buff.append(XML_HEADER);
              buildNode(buff, "servertime", df.format(new Date(now.getTime() + 
timeZoneOffSet)));
  
              //logger.debug("Response:\n" + buff);
              final byte[] bytes = buff.toString().getBytes(CHARSET);
  
              response.setContentLength(bytes.length);
              response.setStatus(HttpServletResponse.SC_OK);
  
              final OutputStream out = response.getOutputStream ();
              out.write(bytes);
              out.flush();
  
          } catch (Exception e) {
              logger.fatal("Unable to process the request !", e);
              response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
              response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,
                      "Unable to process the request ! Msg: "+ e.getMessage());
          }
          return null;
      }
  
  
      /**
       * Returns the server client different number of minutes + secondes in 
millis
       *
       * @param mapping
       * @param form
       * @param request
       * @param response
       * @return
       * @throws IOException
       * @throws ServletException
       */
      public ActionForward getServerClientTimeDiff(   ActionMapping mapping,
                                                      ActionForm form,
                                                      HttpServletRequest 
request,
                                                      HttpServletResponse 
response)
      throws IOException, ServletException {
  
          try {
  
              String val = getParameter(request,response,"clientTime");
              long clientTime = 0;
              try {
                  clientTime = Long.parseLong(val);
              } catch ( Throwable t) {
              }
  
              val = getParameter(request,response,"timeZoneOffSet");
              long timeZoneOffSet = 0;
              try {
                  timeZoneOffSet = Long.parseLong(val);
              } catch ( Throwable t) {
              }
  
              Date now = new Date();
              int hostTimeZone = TimeZone.getDefault().getOffset(now.getTime());
  
              // client Time in UTC
              clientTime =  clientTime - timeZoneOffSet;
  
              // servet Time in UTC
              long serverTime = now.getTime() - hostTimeZone;
  
              long diffTime = serverTime - clientTime;
  
              // Build the response message...
              response.setContentType(XML_CONTENT);    // mandatory, do not 
remove !
              response.setHeader(CACHE_CONTROL, NO_CACHE);    // mandatory, do 
not remove !
  
              // This buffer contains the response document
              final StringBuffer buff = new StringBuffer();
              buff.append(XML_HEADER);
              buildNode(buff, "serverClientTimeDiff", String.valueOf(diffTime));
  
              //logger.debug("Response:\n" + buff);
              final byte[] bytes = buff.toString().getBytes(CHARSET);
  
              response.setContentLength(bytes.length);
              response.setStatus(HttpServletResponse.SC_OK);
  
              final OutputStream out = response.getOutputStream ();
              out.write(bytes);
              out.flush();
  
          } catch (Exception e) {
              logger.fatal("Unable to process the request !", e);
              response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
              response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,
                      "Unable to process the request ! Msg: "+ e.getMessage());
          }
          return null;
      }
  
  }
  
  
  
  Index: WorkflowSiteMapViewHelper.java
  ===================================================================
  RCS file: 
/cvs/jahia/core/src/java/org/jahia/data/viewhelper/sitemap/WorkflowSiteMapViewHelper.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- WorkflowSiteMapViewHelper.java    25 Jul 2005 08:28:15 -0000      1.5
  +++ WorkflowSiteMapViewHelper.java    22 Aug 2005 08:40:36 -0000      1.6
  @@ -19,11 +19,11 @@
    * Date: 16 nov. 2004
    * Time: 18:35:55
    * <p/>
  - * $Author: xlawrence $
  - * $Date: 2005/07/25 08:28:15 $
  - * $Id: WorkflowSiteMapViewHelper.java,v 1.5 2005/07/25 08:28:15 xlawrence 
Exp $
  + * $Author: knguyen $
  + * $Date: 2005/08/22 08:40:36 $
  + * $Id: WorkflowSiteMapViewHelper.java,v 1.6 2005/08/22 08:40:36 knguyen Exp 
$
    * $RCSfile: WorkflowSiteMapViewHelper.java,v $
  - * $Revision: 1.5 $
  + * $Revision: 1.6 $
    * $Source: 
/cvs/jahia/core/src/java/org/jahia/data/viewhelper/sitemap/WorkflowSiteMapViewHelper.java,v
 $
    * $State: Exp $
    */
  
  
  
  Index: CalendarHandler.java
  ===================================================================
  RCS file: 
/cvs/jahia/core/src/java/org/jahia/engines/timebasedpublishing/CalendarHandler.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- CalendarHandler.java      10 Aug 2005 08:26:59 -0000      1.1
  +++ CalendarHandler.java      22 Aug 2005 08:40:36 -0000      1.2
  @@ -19,6 +19,8 @@
   public class CalendarHandler {
   
       private final static String TIMESTAMP = "Timestamp";
  +    private final static String TIMEZONEOFFSET = "timeZoneOffSet";
  +    private final static String SERVERCLIENT_TIMEDIFF = 
"serverClientTimeDiff";
       private TimeZone tz = TimeZone.getTimeZone("UTC");
       private String identifier = "";
       private String formName = "";
  @@ -28,6 +30,9 @@
       private SimpleDateFormat simpleDateFormat;
       private Long dateLong = new Long(0);
       private String engineHomeURL = "";
  +    private Long timeZoneOffSet = new Long(0);
  +
  +    private Long serverClientTimeDiff = new Long(0);
   
       public CalendarHandler(){
       }
  @@ -37,7 +42,8 @@
                              String formName,
                              String dateFormat,
                              Long initialDate,
  -                           Locale locale){
  +                           Locale locale,
  +                           Long timeZoneOffSet){
           if ( engineHomeURL != null ){
               this.engineHomeURL = engineHomeURL;
           }
  @@ -57,20 +63,50 @@
               this.locale = locale;
           }
           this.dateLong = this.initialDate;
  +
  +        if ( timeZoneOffSet != null ){
  +            this.timeZoneOffSet = timeZoneOffSet;
  +        }
       }
   
       public Long update(ProcessingContext context){
  -        String val = context.getParameter(this.identifier+TIMESTAMP);
  +        String val = context.getParameter(this.identifier+TIMEZONEOFFSET);
  +        if ( val != null ){
  +            if ("".equals(val.trim())){
  +                this.timeZoneOffSet = new Long(0);
  +            } else {
  +                try {
  +                    this.timeZoneOffSet = new Long(Long.parseLong(val));
  +                } catch ( Throwable t){
  +                }
  +            }
  +        }
  +
  +        val = context.getParameter(this.identifier+SERVERCLIENT_TIMEDIFF);
  +        if ( val != null ){
  +            if ("".equals(val.trim())){
  +                serverClientTimeDiff = new Long(0);
  +            } else {
  +                try {
  +                    serverClientTimeDiff = new Long(Long.parseLong(val));
  +                } catch ( Throwable t){
  +                }
  +            }
  +        }
  +
  +        val = context.getParameter(this.identifier+TIMESTAMP);
           if ( val != null ){
               if ("".equals(val.trim())){
                   dateLong = new Long(0);
               } else {
                   try {
  -                    dateLong = new Long(val);
  +                    dateLong = new Long(Long.parseLong(val)
  +                            - this.timeZoneOffSet.longValue() - 
this.serverClientTimeDiff.longValue());
                   } catch ( Throwable t){
                   }
               }
           }
  +
           return dateLong;
       }
   
  @@ -160,6 +196,22 @@
           this.formName = formName;
       }
   
  +    public Long getTimeZoneOffSet() {
  +        return timeZoneOffSet;
  +    }
  +
  +    public void setTimeZoneOffSet(Long timeZoneOffSet) {
  +        this.timeZoneOffSet = timeZoneOffSet;
  +    }
  +
  +    public Long getServerClientTimeDiff() {
  +        return serverClientTimeDiff;
  +    }
  +
  +    public void setServerClientTimeDiff(Long serverClientTimeDiff) {
  +        this.serverClientTimeDiff = serverClientTimeDiff;
  +    }
  +
   }
   
   
  
  
  
  Index: TimeBasedPublishingEngine.java
  ===================================================================
  RCS file: 
/cvs/jahia/core/src/java/org/jahia/engines/timebasedpublishing/TimeBasedPublishingEngine.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- TimeBasedPublishingEngine.java    10 Aug 2005 17:06:57 -0000      1.4
  +++ TimeBasedPublishingEngine.java    22 Aug 2005 08:40:36 -0000      1.5
  @@ -94,14 +94,22 @@
               calHandler = 
(CalendarHandler)subEngineMap.get(ENGINE_NAME+".fromDateCalHandler");
               calHandler.update(jParams);
               try {
  -                rangeRule.setValidFromDate(calHandler.getDateLong());
  +                if (calHandler.getDateLong().longValue()>0 ){
  +                    rangeRule.setValidFromDate(calHandler.getDateLong());
  +                } else {
  +                    rangeRule.setValidFromDate(calHandler.getDateLong());
  +                }
               } catch ( Throwable t){
                   rangeRule.setValidFromDate(null);
               }
               calHandler = 
(CalendarHandler)subEngineMap.get(ENGINE_NAME+".toDateCalHandler");
               calHandler.update(jParams);
               try {
  -                rangeRule.setValidToDate(calHandler.getDateLong());
  +                if (calHandler.getDateLong().longValue()>0 ){
  +                    rangeRule.setValidToDate(calHandler.getDateLong());
  +                } else {
  +                    rangeRule.setValidToDate(calHandler.getDateLong());
  +                }
               } catch ( Throwable t){
                   rangeRule.setValidToDate(null);
               }
  @@ -269,7 +277,8 @@
                                       "mainForm",
                                       ruleDef.getDateFormat(),
                                       dateLong,
  -                                    jParams.getLocale());
  +                                    jParams.getLocale(),
  +                                    new Long(0));
           return calHandler;
       }
   }
  
  
  
  Index: JahiaObjectManager.java
  ===================================================================
  RCS file: 
/cvs/jahia/core/src/java/org/jahia/hibernate/manager/JahiaObjectManager.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- JahiaObjectManager.java   16 Aug 2005 14:11:22 -0000      1.3
  +++ JahiaObjectManager.java   22 Aug 2005 08:40:36 -0000      1.4
  @@ -119,7 +119,7 @@
       }
   
       public org.jahia.content.JahiaObject getJahiaObject(ObjectKey key) {
  -        JahiaObject hibJahiaObject = lookupJahiaObject(new 
JahiaObjectPK(key.getType(),new Integer(key.getIDInType())));
  +        JahiaObject hibJahiaObject = dao.findByPK(new 
JahiaObjectPK(key.getType(),new Integer(key.getIDInType())));
           if ( hibJahiaObject != null ){
               try {
                   return hibJahiaObject.toJahiaObject();
  @@ -138,7 +138,7 @@
       public JahiaObjectDelegate getJahiaObjectDelegate(ObjectKey objectKey){
           JahiaObject hibJahiaObject = null;
           try {
  -            hibJahiaObject = lookupJahiaObject(new 
JahiaObjectPK(objectKey.getType(),
  +            hibJahiaObject = dao.findByPK(new 
JahiaObjectPK(objectKey.getType(),
                       new Integer(objectKey.getIDInType())));
           } catch ( Throwable t ){
           }
  @@ -167,7 +167,7 @@
       public void save(JahiaObjectDelegate delegate){
           JahiaObject hibJahiaObject = null;
           try {
  -            hibJahiaObject = lookupJahiaObject(new 
JahiaObjectPK(delegate.getObjectKey().getType(),
  +            hibJahiaObject = dao.findByPK(new 
JahiaObjectPK(delegate.getObjectKey().getType(),
                       new Integer(delegate.getObjectKey().getIDInType())));
           } catch ( Throwable t ){
           }
  @@ -230,48 +230,16 @@
           return delegate;
       }
   
  -    private void flushCache(JahiaObjectPK key) {
  -        Cache cache = cacheService.getCache(CACHE_NAME);
  -        if(cache != null) {
  -            cache.remove(CACHE_KEY_PREFIX+key);
  -        }
  +    public void flushCacheByObjectKey(ObjectKey key) {
  +        flushCache(new JahiaObjectPK(key.getType(),
  +                new Integer(Integer.parseInt(key.getIDInType()))));
       }
   
  -    private JahiaObject lookupJahiaObject(JahiaObjectPK key){
  -        cache = cacheService.getCache(CACHE_NAME);
  -        if(cache == null) {
  -            synchronized (cacheService){
  -                if ( cache == null ){
  -                    try {
  -                        cache = cacheService.createCacheInstance(CACHE_NAME);
  -                        preloadingJahiaObjectsInCache();
  -                    } catch (JahiaInitializationException e) {
  -                        log.warn("Error could not initialize cache for 
"+CACHE_NAME,e);
  -                    }
  -                }
  -            }
  -        }
  -        JahiaObject jahiaObject = null;
  -        if(cache!=null) {
  -            jahiaObject = (JahiaObject) cache.get(CACHE_KEY_PREFIX+key);
  -        }
  -        if ( jahiaObject == null ){
  -            jahiaObject = this.dao.findByPK(key);
  -            if ( jahiaObject != null && cache != null){
  -                cache.put(CACHE_KEY_PREFIX+key,jahiaObject);
  -            }
  -        }
  -        return jahiaObject;
  -    }
  -
  -    private void preloadingJahiaObjectsInCache(){
  +    public void flushCache(JahiaObjectPK key) {
  +        Cache cache = cacheService.getCache(CACHE_NAME);
           if(cache != null) {
  -            List list = dao.getJahiaObjects();
  -            Iterator iterator = list.iterator();
  -            JahiaObject jahiaObject = null;
  -            while ( iterator.hasNext() ){
  -                jahiaObject = (JahiaObject)iterator.next();
  -                
cache.put(CACHE_KEY_PREFIX+jahiaObject.getComp_id(),jahiaObject);
  +            synchronized(cache){
  +                cache.remove(CACHE_KEY_PREFIX+key);
               }
           }
       }
  
  
  
  Index: JahiaSearchBaseService.java
  ===================================================================
  RCS file: 
/cvs/jahia/core/src/java/org/jahia/services/search/JahiaSearchBaseService.java,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- JahiaSearchBaseService.java       19 Aug 2005 15:53:50 -0000      1.16
  +++ JahiaSearchBaseService.java       22 Aug 2005 08:40:36 -0000      1.17
  @@ -18,19 +18,8 @@
   
   
   import java.io.File;
  -import java.io.IOException;
   import java.util.*;
   
  -import org.apache.lucene.analysis.Analyzer;
  -import org.apache.lucene.document.Document;
  -import org.apache.lucene.document.Field;
  -import org.apache.lucene.index.IndexReader;
  -import org.apache.lucene.index.IndexWriter;
  -import org.apache.lucene.index.Term;
  -import org.apache.lucene.queryParser.QueryParser;
  -import org.apache.lucene.search.*;
  -import org.apache.lucene.store.Directory;
  -import org.apache.lucene.store.RAMDirectory;
   import org.jahia.content.ContentObject;
   import org.jahia.data.fields.JahiaContentFieldFacade;
   import org.jahia.data.fields.JahiaField;
  
  
  
  Index: RangeRetentionRule.java
  ===================================================================
  RCS file: 
/cvs/jahia/core/src/java/org/jahia/services/timebasedpublishing/RangeRetentionRule.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- RangeRetentionRule.java   10 Aug 2005 10:15:52 -0000      1.2
  +++ RangeRetentionRule.java   22 Aug 2005 08:40:37 -0000      1.3
  @@ -78,15 +78,62 @@
           
schedulerServ.unscheduleJob(RetentionRuleJob.TRIGGER_NAME_PREFIX+this.getId(),
                           RetentionRuleJob.JOB_GROUP_NAME);
   
  -        Date now = new Date();
  +        long nowInMillis = new Date().getTime();
  +        long offSet = TimeZone.getDefault().getOffset(nowInMillis);
  +        long serverUTCTime = nowInMillis - offSet;
  +        long fromDate = this.getValidFromDate().longValue();
  +        try {
  +            if ( fromDate > 0 ){
  +                if ( fromDate < serverUTCTime ){
  +                    fromDate = serverUTCTime;
  +                }
  +            }
  +        } catch ( Throwable t){
  +        }
  +        long toDate = this.getValidToDate().longValue();
  +        if ( (fromDate == 0 && toDate == 0)
  +                || (( toDate != 0 && fromDate != 0)
  +                && ((toDate - fromDate)< 0)) ){
  +            return false;
  +        }
  +        JobDetail jobDetail =
  +                new JobDetail(RetentionRuleJob.JOB_NAME_PREFIX+this.getId(),
  +                        
RetentionRuleJob.JOB_GROUP_NAME,RetentionRuleJob.class);
  +        jobDetail.setRequestsRecovery(true);
  +        
jobDetail.getJobDataMap().put(RetentionRuleJob.RULE_ID,this.getId().intValue());
  +        SimpleTrigger trigger = null;
  +        if ( fromDate == 0 ){
  +            
jobDetail.getJobDataMap().put(RetentionRuleJob.REACHED_FROM_DATE,Boolean.TRUE.booleanValue());
  +            trigger = new 
SimpleTrigger(RetentionRuleJob.TRIGGER_NAME_PREFIX+this.getId(),
  +                    RetentionRuleJob.JOB_GROUP_NAME,new 
Date(toDate+offSet),null,0,0L);
  +        } else {
  +            if ( toDate == 0 ){
  +                trigger = new 
SimpleTrigger(RetentionRuleJob.TRIGGER_NAME_PREFIX+this.getId(),
  +                    RetentionRuleJob.JOB_GROUP_NAME,new 
Date(fromDate+offSet),null,0,0L);
  +            } else {
  +                long diff = toDate - fromDate;
  +                trigger = new 
SimpleTrigger(RetentionRuleJob.TRIGGER_NAME_PREFIX+this.getId(),
  +                    RetentionRuleJob.JOB_GROUP_NAME,new 
Date(fromDate+offSet),null,1,diff);
  +            }
  +        }
  +        if ( trigger != null ){
  +            schedulerServ.scheduleJob(jobDetail,trigger);
  +            return true;
  +        }
  +        return false;
  +
  +        /*
  +        Calendar nowCal  =  
Calendar.getInstance(TimeZone.getTimeZone("UTC"));
  +        nowCal.setTime(new Date());
  +
           Date fromDate = null;
           try {
               if ( this.getValidFromDate().longValue() >0 ){
                   Calendar cal = 
Calendar.getInstance(TimeZone.getTimeZone("UTC"));
                   cal.setTimeInMillis(this.getValidFromDate().longValue());
                   fromDate = cal.getTime();
  -                if ( fromDate.getTime() < now.getTime() ){
  -                    fromDate = now;
  +                if ( fromDate.getTime() < nowCal.getTimeInMillis() ){
  +                    fromDate = nowCal.getTime();
                   }
               }
           } catch ( Throwable t){
  @@ -130,6 +177,7 @@
               return true;
           }
           return false;
  +        */
       }
   
       /**
  
  
  
  Index: TimeBasedPublishingImplService.java
  ===================================================================
  RCS file: 
/cvs/jahia/core/src/java/org/jahia/services/timebasedpublishing/TimeBasedPublishingImplService.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- TimeBasedPublishingImplService.java       19 Aug 2005 15:53:53 -0000      
1.3
  +++ TimeBasedPublishingImplService.java       22 Aug 2005 08:40:37 -0000      
1.4
  @@ -233,12 +233,15 @@
           }
   
           RetentionRule localRule = jahiaObjectDelegate.getRule();
  -        if ( localRule.getId() != rule.getId() && 
!localRule.getInherited().booleanValue() ){
  +        if ( localRule.getId().intValue() != rule.getId().intValue() && 
!localRule.getInherited().booleanValue() ){
               // do not propagate parent's rule change
               return;
           }
   
           if ( !stateWillChange(theEvent, rule, jahiaObjectDelegate) ){
  +            if ( theEvent.getEventType() == RetentionRuleEvent.DELETING_RULE 
){
  +                applyTimeBasedPublishingEvent(theEvent, rule, 
jahiaObjectDelegate);
  +            }
               return;
           }
           // apply to childs
  @@ -330,11 +333,11 @@
                   jahiaObject.setTimeBPState(new Integer(IS_VALID_STATE));
               }
   
  -            Date now = new Date();
  +            long nowInMillis = new Date().getTime();
  +            long serverUtcTime = nowInMillis - 
TimeZone.getDefault().getOffset(nowInMillis);
               if ( jahiaObject.getValidToDate().longValue() > 0 ){
                   try {
  -                    Date date = new 
Date(jahiaObject.getValidToDate().longValue());
  -                    if ( now.getTime()>date.getTime() ){
  +                    if ( 
serverUtcTime>jahiaObject.getValidToDate().longValue() ){
                           jahiaObject.setTimeBPState(new 
Integer(EXPIRED_STATE));
                           jahiaObjectMgr.save(jahiaObject);
                           return true;
  @@ -344,8 +347,7 @@
               }
               if ( jahiaObject.getValidFromDate().longValue() > 0 ){
                   try {
  -                    Date date = new 
Date(jahiaObject.getValidFromDate().longValue());
  -                    if ( now.getTime()<date.getTime() ){
  +                    if ( 
serverUtcTime<jahiaObject.getValidFromDate().longValue() ){
                           jahiaObject.setTimeBPState(new 
Integer(NOT_VALID_STATE));
                       }
                   } catch ( Throwable t){
  
  
  
  Index: web.xml
  ===================================================================
  RCS file: /cvs/jahia/core/src/webapp/WEB-INF/web.xml,v
  retrieving revision 1.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- web.xml   19 Aug 2005 13:42:47 -0000      1.20
  +++ web.xml   22 Aug 2005 08:40:37 -0000      1.21
  @@ -500,6 +500,21 @@
        <servlet-class>org.jahia.ajax.DateTimeAjaxServlet</servlet-class>
     </servlet>
   
  +  <!-- Ajax Struts Servlet -->
  +  <servlet>
  +    <servlet-name>action</servlet-name>
  +    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
  +    <init-param>
  +      <param-name>config</param-name>
  +      
<param-value>/WEB-INF/etc/struts/struts-config.xml,/WEB-INF/etc/struts/struts-config-corporateportal.xml</param-value>
  +    </init-param>
  +    <!-- commented out because we did provide any resource file yet -->
  +    <init-param>
  +        <param-name>application</param-name>
  +        <param-value>ApplicationResources</param-value>
  +    </init-param>
  +  </servlet>
  +
     <!-- [INSERT FRAGMENT HERE] -->
   
     <!-- Servlet mappings -->
  @@ -613,6 +628,11 @@
        <url-pattern>/serverdatetime/*</url-pattern>
     </servlet-mapping>
   
  +  <!-- Action Servlet Mapping -->
  +  <servlet-mapping>
  +    <servlet-name>action</servlet-name>
  +    <url-pattern>/ajaxaction/*</url-pattern>
  +  </servlet-mapping>
   
     <!-- Session timeout value is set in minutes. Comment this section out
          in order to set the timeout time back to the server's value       -->
  
  
  
  Index: struts-config.xml
  ===================================================================
  RCS file: /cvs/jahia/core/src/webapp/WEB-INF/etc/struts/struts-config.xml,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- struts-config.xml 19 Aug 2005 14:18:29 -0000      1.9
  +++ struts-config.xml 22 Aug 2005 08:40:37 -0000      1.10
  @@ -162,6 +162,12 @@
                                <forward name="edit" 
path="engines.metadata.edit" />
        </action>
   
  +     <!-- Ajax Actions -->
  +     <action         path = "/DateTime"
  +                             type = 
"org.jahia.ajax.serverdatetime.DateTimeAction"
  +                             parameter = "method"
  +                             validate = "false">
  +     </action>
   
   
        
<!--=======================================================================-->
  
  
  
  Index: calendar.jsp
  ===================================================================
  RCS file: 
/cvs/jahia/core/src/webapp/jsp/jahia/engines/timebasedpublishing/calendar.jsp,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- calendar.jsp      16 Aug 2005 15:33:23 -0000      1.2
  +++ calendar.jsp      22 Aug 2005 08:40:38 -0000      1.3
  @@ -1,4 +1,5 @@
   <%@ page language="java" %>
  +<%@ page import="org.jahia.bin.*" %>
   <%@ page import="org.jahia.data.*" %>
   <%@ page import="org.jahia.data.fields.*" %>
   <%@ page import="org.jahia.engines.timebasedpublishing.*" %>
  @@ -15,12 +16,12 @@
   <%
       CalendarHandler calHandler = 
(CalendarHandler)request.getAttribute("calendarHandler"); 
       String userAgent = request.getHeader( "user-agent" );
  -    int textSize = 17;
  +    int textSize = 20;
       if (userAgent != null) {
           if (userAgent.indexOf( "MSIE" ) != -1) {
  -            textSize = 26;
  +            textSize = 30;
           } else if (userAgent.indexOf( "Mozilla/5" ) != -1) {
  -            textSize = 26;
  +            textSize = 30;
           }
       }
   
  @@ -29,7 +30,7 @@
        if ( alreadyIncluedCalendar == null ){
            request.setAttribute("alreadyInclucedCalendar",Boolean.TRUE);
   %>
  -<link rel="stylesheet" type="text/css" media="all" 
href="<%=calHandler.getEngineHomeURL()%>../javascript/jscalendar-1.0/calendar-win2k-cold-1.css"
 title="win2k-cold-1" />
  +<link rel="stylesheet" type="text/css" media="all" 
href="<%=calHandler.getEngineHomeURL()%>../javascript/jscalendar-1.0/skins/aqua/theme.css"
 title="aqua" />
   <script type="text/javascript" 
src="<%=calHandler.getEngineHomeURL()%>../javascript/jscalendar-1.0/calendar.js"></script>
   <script type="text/javascript" 
src="<%=calHandler.getEngineHomeURL()%>../javascript/jscalendar-1.0/lang/calendar-en.js"></script>
   <script type="text/javascript" 
src="<%=calHandler.getEngineHomeURL()%>../javascript/jscalendar-1.0/calendar-setup.js"></script>
  @@ -59,15 +60,15 @@
   }
   
   var tmpDate = new Date();
  -var timeOffSet = tmpDate.getTimezoneOffset();
  -
  +var timeOffSet = tmpDate.getTimezoneOffset() * 60 * 1000 * -1;
  +var calTime = <%=calHandler.getDateLong().longValue()%> + 
<%=calHandler.getServerClientTimeDiff().longValue()%>;
  +calTime = calTime + timeOffSet;
   -->
   </SCRIPT>
  -     <input class="input" type="text" name="<%=calHandler.getIdentifier()%>" 
id="<%=calHandler.getIdentifier()%>" size="<%=textSize%>" 
value="<%=calHandler.getFormatedDate()%>" 
onChange="setCal<%=calHandler.getIdentifier()%>()" disabled="true">
  +     <input class="input" type="text" name="<%=calHandler.getIdentifier()%>" 
id="<%=calHandler.getIdentifier()%>" size="<%=textSize%>" value="" 
onChange="setCal<%=calHandler.getIdentifier()%>()" disabled="true">
        <img src="<%=calHandler.getEngineHomeURL()%>/images/date.gif" 
id="<%=calHandler.getIdentifier()%>Trigger" style="border: 0px solid red; 
cursor: pointer;" title="Date selector" 
onmouseover="this.style.background='red';" 
onmouseout="this.style.background=''">
        <script type="text/javascript">
   
  -                             
                var dateFormat = 
"<%=calHandler.getSimpleDateFormat().toPattern()%>";
                //dateFormat = dateFormat.replace(/d{2,}/g,"%d");               
// full Day
                //dateFormat = dateFormat.replace(/[^%]d{1,1}/g,"%e");  // 
abreaviate Day
  @@ -83,17 +84,18 @@
                dateFormat = dateFormat.replace(/h{1,}/g,"%I");                 
// Hours 0..12
                dateFormat = dateFormat.replace(/K{1,}/g,"%I");                 
// Hours 0..12
                dateFormat = dateFormat.replace(/m{1,}/g,"%M");                 
// minutes
  -             dateFormat =dateFormat.replace(/(p|P)/g,"%a");                  
// PM, AM
  +             dateFormat = dateFormat.replace(/(p|P)/g,"%a");                 
        // PM, AM
                
            Calendar.setup({
  -                     <% if ( calHandler.getDateLong().longValue() != 0 ) { %>
  -                     date                    :       new 
Date(<%=calHandler.getDateLong().longValue()%>),
  +                     <% if ( calHandler.getDateLong().longValue() > 0 ) { %>
  +                     date                    :       new Date(calTime),
                        <%} else { %>
                        date                    :       new Date(),
                        <% } %>
                inputField              :       
"<%=calHandler.getIdentifier()%>",  // id of the input field
                //ifFormat              :   "%d %B %Y %H:%M", // format of the 
input field
                ifFormat        :   dateFormat, // format of the input field
  +             daFormat        :   dateFormat, // format of date display
                button          :   "<%=calHandler.getIdentifier()%>Trigger",  
// trigger for the calendar (button ID)
                align           :   "TR",           // alignment (defaults to 
"Bl")
                singleClick     :   false,
  @@ -102,18 +104,23 @@
            });
        </script>
        <a class="text" 
href="javascript:resetCal<%=calHandler.getIdentifier()%>()"><jahia:engineResourceBundle
 resourceName="org.jahia.engines.shared.Date_Field.resetDate.label"/></a>
  -     <input type="hidden" name="<%=calHandler.getIdentifier()%>Timestamp" 
value="<%=calHandler.getDateLong().longValue()%>">
  -     <input type="hidden" 
name="<%=calHandler.getIdentifier()%>clientTimeZone" value="">
  +     <input type="hidden" name="<%=calHandler.getIdentifier()%>Timestamp" 
value="">
  +     <input type="hidden" 
name="<%=calHandler.getIdentifier()%>timeZoneOffSet" value="">
  +     <input id="<%=calHandler.getIdentifier()%>serverClientTimeDiff" 
type="hidden" name="<%=calHandler.getIdentifier()%>serverClientTimeDiff" 
value="">
   
   <SCRIPT type="text/javascript" language="javascript">
   <!--
  -function setTimeZone<%=calHandler.getIdentifier()%>(){
  -     var tmpDate = new Date();
  -     var timeOffSet = tmpDate.getTimezoneOffset();
  -     
document.forms['<%=calHandler.getFormName()%>'].elements['<%=calHandler.getIdentifier()%>clientTimeZone'].value
 = timeOffSet * 60 * 1000;
  +function setHiddenInput<%=calHandler.getIdentifier()%>(){
  +     
document.forms['<%=calHandler.getFormName()%>'].elements['<%=calHandler.getIdentifier()%>timeZoneOffSet'].value
 = timeOffSet;
  +     <% if ( calHandler.getDateLong().longValue() > 0 ) { %>
  +         
document.forms['<%=calHandler.getFormName()%>'].elements['<%=calHandler.getIdentifier()%>Timestamp'].value
 = calTime;
  +         date = new Date(calTime);
  +         
document.forms['<%=calHandler.getFormName()%>'].elements['<%=calHandler.getIdentifier()%>'].value
 = date.print(dateFormat);
  +     <% } %>
  +     
getServerClientTimeDiff('<%=Jahia.getContextPath()%>','<%=calHandler.getIdentifier()%>serverClientTimeDiff',tmpDate.getTime(),timeOffSet);
      
   }
   
  -setTimeZone<%=calHandler.getIdentifier()%>();
  +setHiddenInput<%=calHandler.getIdentifier()%>();
   
   -->  
   </SCRIPT>
  
  
  
  Index: timebasedpublishing.jsp
  ===================================================================
  RCS file: 
/cvs/jahia/core/src/webapp/jsp/jahia/engines/timebasedpublishing/timebasedpublishing.jsp,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- timebasedpublishing.jsp   16 Aug 2005 10:47:02 -0000      1.5
  +++ timebasedpublishing.jsp   22 Aug 2005 08:40:38 -0000      1.6
  @@ -91,7 +91,9 @@
   <div>
   <script type="text/javascript" language="javascript">
   <!--
  -     getServerTime('<%=Jahia.getContextPath()%>','serverTime','HH:mm:ss');
  -     
setInterval("getServerTime('<%=Jahia.getContextPath()%>','serverTime','HH:mm:ss')",5000);
  +     var tmpDate = new Date();
  +     var timeOffSet = tmpDate.getTimezoneOffset();
  +     
getServerTime('<%=Jahia.getContextPath()%>','serverTime','HH:mm:ss',timeOffSet 
* 60 * 1000 * -1);
  +     
setInterval("getServerTime('<%=Jahia.getContextPath()%>','serverTime','HH:mm:ss',timeOffSet
 * 60 * 1000 * -1)",5000);
   -->  
   </script>
  
  
  
  Index: serverdatetime.js
  ===================================================================
  RCS file: /cvs/jahia/core/src/webapp/jsp/jahia/javascript/serverdatetime.js,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- serverdatetime.js 12 Aug 2005 15:43:11 -0000      1.1
  +++ serverdatetime.js 22 Aug 2005 08:40:38 -0000      1.2
  @@ -52,9 +52,6 @@
   // Code for handling the menu bar and active button.
   
//----------------------------------------------------------------------------
   
  -// AJAX variables
  -var req;
  -
   // Check the browser for DOM manipulation
   function checkBrowser(){
        this.ver=navigator.appVersion;
  @@ -117,12 +114,13 @@
   //
   
//-------------------------------------------------------------------------------------------------
   // AJAX based function to get the server time
  -function getServerTime (context,targetId,dateFormat) {
  +function getServerTime 
(context,targetId,dateFormat,timeZoneOffSet,displayTime) {
  +    var req;
        try {
                // correct values are "POST" or "GET" (HTTP methods).
  -             var method = "POST" ;
  -         var url = context + "/serverdatetime";
  -             var data = "dateformat=" + dateFormat;
  +             var method = "GET" ;
  +         var url = context + "/ajaxaction/DateTime";
  +             var data = "method=getServerTime&dateformat=" + dateFormat + 
"&timeZoneOffSet=" + timeZoneOffSet;
                
                if (method == "GET") {
                        url += "?" + data;
  @@ -140,24 +138,27 @@
                        alert ("Error: Your Browser does not support 
XMLHTTPRequests, please upgrade...");  
                        return;
                }
  -             
                req.open (method, url, true);
  -             
  +                             
                req.onreadystatechange = function () {
  -                     displayServerTime(targetId,dateFormat);
  +                     displayServerTime(req,targetId,dateFormat);
                }
   
                if (method == "POST") {
                        req.setRequestHeader ("Content-type", 
"application/x-www-form-urlencoded"); 
                }
  -             req.send (data);
  +             if ( data != null ){
  +                     req.send (data);
  +             } else {
  +                     req.send("");
  +             }
                
        } catch (e) {
                alert ("Exception sending the Request: " + e);
        }
   }
   
  -function displayServerTime (targetId,dateFormat) {
  +function displayServerTime (req,targetId,dateFormat,displayTime) {
        var readyState = req.readyState;
        if (req.readyState == 4) {
                // alert ("resp: " + req.responseText);
  @@ -176,3 +177,72 @@
                }
        }       
   }
  +
  +
  +/**
  + * Returns the number of minutes + seconds in millis between the Server and 
client time
  + *
  + */
  +function getServerClientTimeDiff 
(context,targetId,clientTime,clientTimeZoneOffSet) {
  +    var req;
  +     try {
  +             // correct values are "POST" or "GET" (HTTP methods).
  +             var method = "GET" ;
  +         var url = context + "/ajaxaction/DateTime";
  +             var data = 
"method=getServerClientTimeDiff&clientTime="+clientTime+"&timeZoneOffSet=" + 
clientTimeZoneOffSet;
  +             
  +             if (method == "GET") {
  +                     url += "?" + data;
  +                     data = null;
  +             }
  +
  +             // Create new XMLHttpRequest request
  +     if (window.XMLHttpRequest) {
  +             req = new XMLHttpRequest ();
  +                     
  +     } else if (window.ActiveXObject) {
  +             req = new ActiveXObject ("Microsoft.XMLHTTP");
  +                     
  +     } else {
  +                     alert ("Error: Your Browser does not support 
XMLHTTPRequests, please upgrade...");  
  +                     return;
  +             }
  +             req.open (method, url, true);
  +                             
  +             req.onreadystatechange = function () {
  +                     setServerClientDiffTime(req,targetId);
  +             }
  +
  +             if (method == "POST") {
  +                     req.setRequestHeader ("Content-type", 
"application/x-www-form-urlencoded"); 
  +             }
  +             if ( data != null ){
  +                     req.send (data);
  +             } else {
  +                     req.send("");
  +             }
  +             
  +     } catch (e) {
  +             alert ("Exception sending the Request: " + e);
  +     }
  +}
  +
  +function setServerClientTimeDiff(req,targetId) {
  +     var readyState = req.readyState;
  +     if (req.readyState == 4) {
  +     if (req.status == 200) {
  +                     try {
  +                             var response = req.responseText;
  +                             var value = getNodeValue (response, 
"serverClientTimeDiff");
  +                             var targetObject = getObjectById (targetId);
  +                             targetObject.value = value;
  +                     } catch (e) {
  +                             alert ("Exception retrieving server client diff 
time " + e);
  +                     }
  +             } else {
  +                     alert ("There was a problem processing the request. 
Status: " + 
  +                                                req.status + ", msg: " + 
req.statusText);
  +             }
  +     }       
  +}            
  +
  

Reply via email to