Author: knguyen
Date: Thu Jul 19 11:03:55 2007
New Revision: 18034

URL: https://svndev.jahia.net/websvn/listing.php?sc=3D1&rev=3D18034&repname=
=3Djahia
Log:
add time based publishing status icon to Page select engine.

Modified:
    branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/engines/shared/Pag=
e_Field.java
    branches/JAHIA-5-0-SP-BRANCH/core/src/webapp/jsp/jahia/engines/selectpa=
ge/select_page.jsp
    branches/JAHIA-5-0-SP-BRANCH/core/src/webapp/jsp/jahia/engines/shared/p=
age_field.jsp

Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/engines/shar=
ed/Page_Field.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/engines/shared/Page_Field.java&rev=3D18034&=
repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/engines/shared/Pag=
e_Field.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/engines/shared/Pag=
e_Field.java Thu Jul 19 11:03:55 2007
@@ -20,6 +20,7 @@
 =

 import org.jahia.bin.Jahia;
 import org.jahia.content.ContentObject;
+import org.jahia.content.TimeBasedPublishingJahiaObject;
 import org.jahia.data.containers.JahiaContainer;
 import org.jahia.data.events.JahiaEvent;
 import org.jahia.data.fields.FieldsEditHelper;
@@ -50,6 +51,11 @@
 import org.jahia.services.lock.LockPrerequisitesResult;
 import org.jahia.services.lock.LockPrerequisites;
 import org.jahia.services.lock.LockKey;
+import org.jahia.services.timebasedpublishing.RetentionRule;
+import org.jahia.services.timebasedpublishing.TimeBasedPublishingService;
+import org.jahia.hibernate.manager.JahiaObjectManager;
+import org.jahia.hibernate.manager.SpringContextSingleton;
+import org.jahia.hibernate.manager.JahiaObjectDelegate;
 =

 import java.io.UnsupportedEncodingException;
 import java.util.*;
@@ -335,6 +341,7 @@
             selectPageURLParams.put(SelectPage_Engine.PAGE_ID, new Integer=
(pageBean.getID()));
             String selectPageURL =3D SelectPage_Engine.getInstance().rende=
rLink(jParams, selectPageURLParams);
             engineMap.put("selectPageURL", selectPageURL);
+            checkTimeBasedPublishingStatus(engineMap,jParams,pageBean);
             output =3D ServicesRegistry.getInstance().getJahiaFetcherServi=
ce().fetchServlet((ParamBean) jParams, forward);
         } else {
             output =3D ServicesRegistry.getInstance().getJahiaFetcherServi=
ce().fetchServlet((ParamBean) jParams, forward);
@@ -343,6 +350,83 @@
         return true;
     }
 =

+    protected void checkTimeBasedPublishingStatus(Map engineMap, Processin=
gContext jParams,
+                                                  JahiaPageEngineTempBean =
pageBean) {
+        jParams.removeAttribute("Page_Field.enableTimeBasedPublishingStatu=
s");
+        if ( pageBean =3D=3D null ){
+            return;
+        }
+        try {
+            if ( pageBean.getPageType() =3D=3D JahiaPage.TYPE_LINK ){
+                int linkId =3D pageBean.getPageLinkID();
+                if ( linkId !=3D -1 ){
+                    TimeBasedPublishingService tbpService =3D ServicesRegi=
stry.getInstance()
+                            .getTimeBasedPublishingService();
+                    ContentPage contentPage =3D ContentPage.getPage(linkId=
);
+                    JahiaObjectManager jahiaObjectManager =3D
+                            (JahiaObjectManager) SpringContextSingleton.ge=
tInstance()
+                                    .getContext().getBean(JahiaObjectManag=
er.class.getName());
+                    ContentObject currentObject =3D contentPage;
+                    JahiaObjectDelegate jahiaObjectDelegate =3D
+                            jahiaObjectManager.getJahiaObjectDelegate(curr=
entObject.getObjectKey());
+                    RetentionRule retRule =3D tbpService.getRetentionRule(=
currentObject.getObjectKey());
+                    if ( retRule.getInherited().booleanValue() && jahiaObj=
ectDelegate.isValid() ){
+                        TimeBasedPublishingJahiaObject tbpObject =3D
+                                contentPage.getParentForTimeBasedPublishin=
g(jParams.getUser(),
+                                jParams.getEntryLoadRequest(),jParams.getO=
perationMode());
+                        if ( tbpObject !=3D null ){
+                           currentObject =3D ContentObject.getContentObjec=
tInstance(tbpObject.getObjectKey());
+                            jahiaObjectDelegate =3D
+                                    jahiaObjectManager.getJahiaObjectDeleg=
ate(currentObject.getObjectKey());
+                            retRule =3D tbpService.getRetentionRule(curren=
tObject.getObjectKey());
+                        }
+                    }
+                    final long nowInMillis =3D new Date().getTime();
+                    final long offSet =3D TimeZone.getDefault().getOffset(=
nowInMillis);
+                    final long now =3D nowInMillis - offSet;
+                    String statusLabel =3D "";
+                    if (retRule !=3D null) {
+                        final boolean inherited =3D retRule.getInherited()=
.booleanValue();
+                        final boolean isValid =3D jahiaObjectDelegate.isVa=
lid();
+                        final boolean isExpired =3D jahiaObjectDelegate.is=
Expired();
+                        final boolean willExpire =3D jahiaObjectDelegate.w=
illExpire(now);
+                        final boolean willBecomeValid =3D jahiaObjectDeleg=
ate.willBecomeValid(now);
+                        if (isExpired) {
+                            if (willBecomeValid) {
+                                statusLabel =3D "expired_but_will_become_v=
alid"; // yellow
+                            } else {
+                                statusLabel =3D "expired"; // red
+                            }
+                        } else if (isValid) {
+                            if (willExpire) {
+                                statusLabel =3D "valid_but_will_expire"; /=
/ orange
+                            } else {
+                                statusLabel =3D "valid"; // green
+                            }
+                        } else {
+                            if (willBecomeValid) {
+                                statusLabel =3D "not_valid_but_will_become=
_valid"; // yellow
+                            } else {
+                                // is not valid
+                                statusLabel =3D "unknown";
+                            }
+                        }
+                        if (statusLabel.length() > 0 && inherited)  {
+                            statusLabel =3D "inherited_" + statusLabel;
+                        }
+                    }
+                    // Don't display any icons for objects that have no ru=
les
+                    if (!"".equals(statusLabel) && !(statusLabel.indexOf("=
inherited_valid") > -1)
+                            && !(statusLabel.equals("valid"))) {
+                        jParams.setAttribute("Page_Field.enableTimeBasedPu=
blishingStatus",currentObject);
+                    }
+                }
+            }
+        } catch ( Throwable t ){
+            logger.debug("Exception preparing time base publishing for pag=
e engine",t);
+        }
+    }
+
     /**
      * gets POST data from the form and saves it in session
      *
@@ -471,7 +555,7 @@
         if (title !=3D null) {
             pageBean.setTitle(locale.toString(), title);
         }
-
+        checkTimeBasedPublishingStatus(engineMap,jParams,pageBean);
         return true;
     }
 =


Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/webapp/jsp/jahia/engines/se=
lectpage/select_page.jsp
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/webapp/jsp/jahia/engines/selectpage/select_page.jsp&rev=3D=
18034&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-SP-BRANCH/core/src/webapp/jsp/jahia/engines/selectpa=
ge/select_page.jsp (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/webapp/jsp/jahia/engines/selectpa=
ge/select_page.jsp Thu Jul 19 11:03:55 2007
@@ -27,7 +27,7 @@
 <%@ page import=3D"javax.servlet.http.HttpSession"%>
 <%@ page import=3D"java.util.*"%>
 <%@ page import=3D"java.io.*" %>
-<%@ page import=3D"org.jahia.content.ContentObject" %>
+<%@ page import=3D"org.jahia.content.*" %>
 <%@ page import=3D"org.jahia.registries.ServicesRegistry"%>
 <%@ page import=3D"org.jahia.engines.EngineLanguageHelper"%>
 <%@ page import=3D"org.jahia.resourcebundle.JahiaResourceBundle"%>
@@ -44,7 +44,32 @@
             org.apache.log4j.Logger.getLogger("jsp.jahia.engines.selectpag=
e.select_page");
 =

   private void drawTimeBasedPublishingStatusIcon(ContentObject contentObje=
ct, ProcessingContext jParams, PageContext pageContext)
-  throws IOException  {
+  throws IOException, Exception  {
+    =

+    TimeBasedPublishingService tbpService =3D ServicesRegistry.getInstance=
()
+            .getTimeBasedPublishingService();
+    JahiaObjectManager jahiaObjectManager =3D
+            (JahiaObjectManager) SpringContextSingleton.getInstance()
+                    .getContext().getBean(JahiaObjectManager.class.getName=
());
+    ContentObject currentObject =3D contentObject;
+    JahiaObjectDelegate jahiaObjectDelegate =3D
+            jahiaObjectManager.getJahiaObjectDelegate(currentObject.getObj=
ectKey());
+    RetentionRule retRule =3D tbpService.getRetentionRule(currentObject.ge=
tObjectKey());
+    if (retRule =3D=3D null){
+      return;
+    }
+    if ( retRule.getInherited().booleanValue() && jahiaObjectDelegate.isVa=
lid() ){
+        TimeBasedPublishingJahiaObject tbpObject =3D
+                ((ContentPage)currentObject).getParentForTimeBasedPublishi=
ng(jParams.getUser(),
+                jParams.getEntryLoadRequest(),jParams.getOperationMode());
+        if ( tbpObject !=3D null ){
+           currentObject =3D ContentObject.getContentObjectInstance(tbpObj=
ect.getObjectKey());
+            jahiaObjectDelegate =3D
+                    jahiaObjectManager.getJahiaObjectDelegate(currentObjec=
t.getObjectKey());
+            retRule =3D tbpService.getRetentionRule(currentObject.getObjec=
tKey());
+        }
+    }
+
     JspWriter out =3D pageContext.getOut();
     final String contextPath =3D Jahia.getContextPath();
     final String actionURL =3D contextPath + "/ajaxaction/GetTimeBasedPubl=
ishingState?params=3D/op/edit/pid/" +

Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/webapp/jsp/jahia/engines/sh=
ared/page_field.jsp
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/webapp/jsp/jahia/engines/shared/page_field.jsp&rev=3D18034=
&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-SP-BRANCH/core/src/webapp/jsp/jahia/engines/shared/p=
age_field.jsp (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/webapp/jsp/jahia/engines/shared/p=
age_field.jsp Thu Jul 19 11:03:55 2007
@@ -66,6 +66,9 @@
     =

     private void drawTimeBasedPublishingStatusIcon(ContentObject contentOb=
ject, ProcessingContext jParams, PageContext pageContext)
     throws IOException  {
+      if( contentObject=3D=3Dnull ){
+        return;
+      }
       JspWriter out =3D pageContext.getOut();
       final String contextPath =3D Jahia.getContextPath();
       final String actionURL =3D contextPath + "/ajaxaction/GetTimeBasedPu=
blishingState?params=3D/op/edit/pid/" +
@@ -255,8 +258,12 @@
     final boolean hasDirectTypeChange =3D !isNewPage &&
             ((JahiaPage) theField.getObject()).getPageType() =3D=3D Conten=
tPage.TYPE_DIRECT &&
             !Page_Field.UPDATE_PAGE.equals(pageBean.getOperation()) ? true=
 : false;
-%>
 =

+    ContentObject timeBasedPublishingObject =3D (ContentObject)request.get=
Attribute("Page_Field.enableTimeBasedPublishingStatus"); =

+    boolean enableTimeBasedPublishing =3D ( timeBasedPublishingObject !=3D=
 null );          =

+    =

+    if ( enableTimeBasedPublishing ) { =

+%>
 <ajax:zimbraInclude/>
 <script language=3D"javascript" src=3D"<content:serverHttpPath/>/jsp/jahia=
/javascript/zimbra/timebasedpublishing/TimeBasedPublishingStatus.js" type=
=3D"text/javascript"></script>
 <script type=3D"text/javascript">
@@ -276,7 +283,9 @@
   }
   showUserShell();
 }
-
+</script>
+<% } %>
+<script type=3D"text/javascript">
 function getPageOffsetLeft(el) {
 =

   var x;
@@ -599,7 +608,7 @@
             if (Page_Field.LINK_JAHIA_PAGE.equals(pageBean.getOperation())=
) {
                 if (sourcePageID !=3D -1) { %>
         <ul>
-            <li><%drawTimeBasedPublishingStatusIcon((ContentObject)Content=
Page.getPage(sourcePageID),jParams,pageContext);%>&nbsp;<%=3DJahiaTools.tex=
t2html(sourceTitle)%>&nbsp;(<jahia:engineResourceBundle
+            <li><%drawTimeBasedPublishingStatusIcon(timeBasedPublishingObj=
ect,jParams,pageContext);%>&nbsp;<%=3DJahiaTools.text2html(sourceTitle)%>&n=
bsp;(<jahia:engineResourceBundle
                     resourceName=3D"org.jahia.pageId.label"/>:&nbsp;<%=3Ds=
ourcePageID%>)</li>
         </ul>
         <% } else { %>

_______________________________________________
cvs_list mailing list
[email protected]
http://lists.jahia.org/cgi-bin/mailman/listinfo/cvs_list

Reply via email to