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 aot 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);
+ }
+ }
+}
+