shuber 2005/06/03 16:40:12 CEST
Modified files:
src/view/jsp eventlistener.jsp
Log:
Modified JSP event listener to use new FieldEditHelp structure to notify
which are the updated fields.
Revision Changes Path
1.5 +360 -331 corporate_portal_templates/src/view/jsp/eventlistener.jsp
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/corporate_portal_templates/src/view/jsp/eventlistener.jsp.diff?r1=1.4&r2=1.5&f=h
Index: eventlistener.jsp
===================================================================
RCS file:
/home/cvs/repository/corporate_portal_templates/src/view/jsp/eventlistener.jsp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- eventlistener.jsp 27 May 2005 11:39:48 -0000 1.4
+++ eventlistener.jsp 3 Jun 2005 14:40:11 -0000 1.5
@@ -6,6 +6,7 @@
<%@ page import="org.jahia.data.fields.*" %>
<%@ page import="org.jahia.data.events.*" %>
<%@ page import="org.jahia.engines.*" %>
+<%@ page import="org.jahia.engines.addcontainer.*" %>
<%@ page import="org.jahia.engines.categories.*" %>
<%@ page import="org.jahia.engines.selectpage.*" %>
<%@ page import="org.jahia.engines.shared.*" %>
@@ -20,10 +21,10 @@
<jsp:useBean id="eventsToTrap" class="java.util.Vector" scope="application"/>
<%// loads the events to trap
if (eventsToTrap.size() == 0) {
- eventsToTrap.add("addContainerEngineAfterInit");
- eventsToTrap.add("addContainerEngineBeforeSave");
- eventsToTrap.add("containerAdded");
- eventsToTrap.add("containerUpdated");
+ eventsToTrap.add("addContainerEngineAfterInit");
+ eventsToTrap.add("addContainerEngineBeforeSave");
+ eventsToTrap.add("containerAdded");
+ eventsToTrap.add("containerUpdated");
}
String eventName = (String) request.getAttribute("eventName");
@@ -41,29 +42,35 @@
// Proof of concept for Parlement Europeen
if ( eventsToTrap.contains(eventName)){
+ logger.debug("Found event we listen to : " + eventName + ",
processing...");
- HashMap engineMap = (HashMap) jParams.getSession().getAttribute(
"jahia_session_engineMap" );
-
- if (engineMap == null) { return; }
- String languageCode = (String)engineMap.get("languageCode");
- HashSet updatedFields = (HashSet)engineMap.get("updated.fields");
+ HashMap engineMap = (HashMap) jParams.getSession().getAttribute(
"jahia_session_engineMap" );
+
+ if (engineMap == null) {
+ logger.debug("No engineMap found, aborting processing");
+ return;
+ }
+ String languageCode = (String)engineMap.get("languageCode");
+ HashSet updatedFields = (HashSet)engineMap.get("updated.fields");
if (updatedFields == null) {
- updatedFields = new HashSet();
- engineMap.put("updated.fields", updatedFields);
- }
-
-
- // Check if we are processing a "directoryDocContainer" container
- JahiaContainer theContainer = (JahiaContainer)jahiaEvent.getObject();
- if (
"ProjectNewsContainer".equals(theContainer.getDefinition().getName()) ){
- if ( "containerAdded".equals(eventName) ||
"containerUpdated".equals(eventName) ){
- // we want to set the start date if empty
- JahiaField theField =
theContainer.getField("ProjectNewsStart");
- if ((theField.getValue() == null) ||
("null".equals(theField.getValue())) || (theField.getValue().length() == 0)) {
-
theField.setObject(String.valueOf(jahiaEvent.getEventTime()));
- theField.save(jParams);
- }
- }
+ updatedFields = new HashSet();
+ engineMap.put("updated.fields", updatedFields);
+ }
+ ContainerFieldsEditHelper feh = (ContainerFieldsEditHelper)
engineMap.get(AddContainer_Engine.
+ ENGINE_NAME + "." +
FieldsEditHelperAbstract.FIELDS_EDIT_HELPER_CONTEXTID);
+
+
+ // Check if we are processing a "directoryDocContainer" container
+ JahiaContainer theContainer = (JahiaContainer)jahiaEvent.getObject();
+ if (
"ProjectNewsContainer".equals(theContainer.getDefinition().getName()) ){
+ if ( "containerAdded".equals(eventName) ||
"containerUpdated".equals(eventName) ){
+ // we want to set the start date if empty
+ JahiaField theField = theContainer.getField("ProjectNewsStart");
+ if ((theField.getValue() == null) ||
("null".equals(theField.getValue())) || (theField.getValue().length() == 0)) {
+
theField.setObject(String.valueOf(jahiaEvent.getEventTime()));
+ theField.save(jParams);
+ }
+ }
}
if ( "blogs".equals(theContainer.getDefinition().getName()) ){
if ( "addContainerEngineAfterInit".equals(eventName) ) {
@@ -149,10 +156,12 @@
JahiaField theField = theContainer.getField("date");
if (theField.getObject() == null) {
- Calendar cal =
Calendar.getInstance(TimeZone.getTimeZone("UTC"));
+ Calendar cal =
Calendar.getInstance(TimeZone.getTimeZone("UTC"));
long now = cal.getTime().getTime();
String nowStr = String.valueOf(now);
theField.setObject(nowStr);
+ feh.addUpdatedField(theField.getID(),
theField.getLanguageCode());
+ logger.debug("Adding updated field #" +
theField.getID() + " for language code [" + theField.getLanguageCode() + "]");
updatedFields.add(new Integer(theField.getID()));
logger.debug("Set value for field [date] to : [" +
theField.getObject() +"]");
}
@@ -160,11 +169,13 @@
if (theField.getObject() == null) {
String author = jParams.getUser().getUserKey();
theField.setObject(author);
+ feh.addUpdatedField(theField.getID(),
theField.getLanguageCode());
updatedFields.add(new Integer(theField.getID()));
logger.debug("Set value for field [author] to [" +
theField.getObject() + "]");
} else if ("".equals(theField.getObject())) {
String author = jParams.getUser().getUserKey();
theField.setObject(author);
+ feh.addUpdatedField(theField.getID(),
theField.getLanguageCode());
updatedFields.add(new Integer(theField.getID()));
logger.debug("Set value for field [author] to [" +
theField.getObject() + "]");
}
@@ -201,328 +212,346 @@
}
- } else if (
"directoryDocContainer".equals(theContainer.getDefinition().getName()) ){
- if ( "addContainerEngineAfterInit".equals(eventName) ) {
+ } else if (
"directoryDocContainer".equals(theContainer.getDefinition().getName()) ){
+ if ( "addContainerEngineAfterInit".equals(eventName) ) {
+
+ // we want to init the page field
+ JahiaField theField = theContainer.getField("directoryDocPage");
+ JahiaPageEngineTempBean pageBean = null;
+
+ HashMap pageBeans = (HashMap)jParams.
+ getSession().getAttribute("Page_Field.PageBeans");
+ if ( pageBeans == null ){
+ pageBeans = new HashMap();
+ jParams.
+ getSession().setAttribute("Page_Field.PageBeans",
pageBeans);
+ }
+
+ // Verify if this page field was not already edited in this
session.
+ pageBean =
(JahiaPageEngineTempBean)pageBeans.get(theField.getDefinition().getName());
+
+ String creator = null;
+ String creationDate = null;
+ String lastContributor = null;
+
+ if (pageBean == null) {
+
+ JahiaPageDefinition pageDef =
ServicesRegistry.getInstance().getJahiaPageTemplateService()
+ .lookupPageTemplateByName ("Document Detail",
jParams.getSiteID());
- // we want to init the page field
- JahiaField theField =
theContainer.getField("directoryDocPage");
- JahiaPageEngineTempBean pageBean = null;
-
- HashMap pageBeans = (HashMap)jParams.
- getSession().getAttribute("Page_Field.PageBeans");
- if ( pageBeans == null ){
- pageBeans = new HashMap();
- jParams.
- getSession().setAttribute("Page_Field.PageBeans",
pageBeans);
- }
-
- // Verify if this page field was not already edited in this
session.
- pageBean =
(JahiaPageEngineTempBean)pageBeans.get(theField.getDefinition().getName());
-
- String creator = null;
- String creationDate = null;
- String lastContributor = null;
-
- if (pageBean == null) {
-
- JahiaPageDefinition pageDef =
ServicesRegistry.getInstance().getJahiaPageTemplateService()
- .lookupPageTemplateByName ("Document Detail",
jParams.getSiteID());
-
- // First call or recall of engine.
-
jParams.getSession().removeAttribute(SelectPage_Engine.SESSION_PARAMS);
- if (theField.getObject() == null) { // Is it a new page ?
- boolean isLinkOnly =
theField.getValue().toLowerCase().indexOf("jahia_linkonly") != -1;
- pageBean = new JahiaPageEngineTempBean(
- -1, // Page ID
- theField.getJahiaID(),
- theField.getPageID(),
- isLinkOnly ? JahiaPage.TYPE_URL : // URL type
per default
- JahiaPage.TYPE_DIRECT, // or
create a new page per default
- pageDef.getID(),
- "http://", // URL undefined
- -1, // Link ID undefined
- jParams.getUser().getUserKey(),
- theField.getID()); // value should be < 0 if
new field.
- pageBean.setOperation(isLinkOnly ? Page_Field.LINK_URL
: Page_Field.CREATE_PAGE);
+ // First call or recall of engine.
+
jParams.getSession().removeAttribute(SelectPage_Engine.SESSION_PARAMS);
+ if (theField.getObject() == null) { // Is it a new page ?
+ boolean isLinkOnly =
theField.getValue().toLowerCase().indexOf("jahia_linkonly") != -1;
+ pageBean = new JahiaPageEngineTempBean(
+ -1, // Page ID
+ theField.getJahiaID(),
+ theField.getPageID(),
+ isLinkOnly ? JahiaPage.TYPE_URL : // URL type
per default
+ JahiaPage.TYPE_DIRECT, // or create
a new page per default
+ pageDef.getID(),
+ "http://", // URL undefined
+ -1, // Link ID undefined
+ jParams.getUser().getUserKey(),
+ theField.getID()); // value should be < 0 if new
field.
+ pageBean.setOperation(isLinkOnly ? Page_Field.LINK_URL :
Page_Field.CREATE_PAGE);
- pageBean.sharedTitle(true);
+ pageBean.sharedTitle(true);
pageBeans.put("directoryDocPage", pageBean);
- creator = jParams.getUser().getUsername();
- Date d = new java.util.Date();
- creationDate = String.valueOf(d.getTime());
- lastContributor =
jParams.getUser().getUsername();
+ creator = jParams.getUser().getUsername();
+ Date d = new java.util.Date();
+ creationDate = String.valueOf(d.getTime());
+ lastContributor = jParams.getUser().getUsername();
}
- } else {
- // check if the current page it a moved one
+ } else {
+ // check if the current page it a moved one
- String operation = jParams.getParameter("operation"); // Value
from FORM
- int selectedPageID = pageBean.getPageLinkID();
+ String operation = jParams.getParameter("operation"); // Value
from FORM
+ int selectedPageID = pageBean.getPageLinkID();
if (jParams.getRequest().getParameter("shouldSetPageLinkID") !=
null) {
selectedPageID = SelectPage_Engine.getInstance()
-
.getSelectedPageID(jParams.getSession());
+ .getSelectedPageID(jParams.getSession());
}
- // check if the current page it a moved one
- if ( Page_Field.MOVE_PAGE.equals(operation) ){
- Integer previousPageID =
(Integer)jParams.getRequest()
-
.getAttribute("eventlistener.previousPageID");
-
- if ( previousPageID == null
- || previousPageID.intValue() !=
selectedPageID ){
-
- previousPageID = new
Integer(selectedPageID);
-
request.setAttribute("eventlistener.previousPageID",
- previousPageID);
-
- if ( selectedPageID != -1 ){
- try {
- ContentPage cPage =
ContentPage
-
.getPage(selectedPageID,false);
- ContentPageField
cPageField = (ContentPageField)
-
cPage.getParent( jParams.getUser(),
-
jParams.getEntryLoadRequest(),
-
ParamBean.NORMAL);
- if ( cPageField == null
){
- // try to get
the active
-
EntryLoadRequest lRequest =
- new
EntryLoadRequest(EntryLoadRequest.ACTIVE_WORKFLOW_STATE,0,
-
jParams.getEntryLoadRequest().getLocales());
- cPageField =
(ContentPageField)
-
cPage.getParent( jParams.getUser(),
-
lRequest,
-
ParamBean.NORMAL);
- }
- ContentContainer
cContainer =
-
(ContentContainer)cPageField
-
.getParent( jParams.getUser(),
-
jParams.getEntryLoadRequest(),
-
ParamBean.NORMAL) ;
- JahiaContainer
jContainer =
-
cContainer.getJahiaContainer(jParams,
-
jParams.getEntryLoadRequest());
-
- JahiaField jField =
jContainer.getField("metaDataCreator");
- String fieldValue = "";
- if ( jField != null &&
jField.getValue() != null){
- fieldValue =
jField.getValue().trim();
- }
- if (
!"".equals(fieldValue) ){
- creator =
fieldValue;
- }
-
- jField =
jContainer.getField("metaDataCreationDate");
- fieldValue = "";
- if ( jField != null &&
jField.getObject() != null){
- fieldValue =
((String)jField.getObject()).trim();
- }
- if (
!"".equals(fieldValue) ){
- creationDate =
fieldValue;
- }
-
- jField =
jContainer.getField("metaDataLastContributor");
- fieldValue = "";
- if ( jField != null &&
jField.getValue() != null){
- fieldValue =
jField.getValue().trim();
- }
- if (
!"".equals(fieldValue) ){
- lastContributor
= fieldValue;
- }
-
- jField =
jContainer.getField("metaDataLastModificationDate");
- fieldValue = "";
- if ( jField != null &&
jField.getObject() != null){
- fieldValue =
((String)jField.getObject()).trim();
- }
- if (
!"".equals(fieldValue) ){
- // we want to
set the last modification date field
- jField =
theContainer.getField("metaDataLastModificationDate");
-
jField.setObject(fieldValue);
-
updatedFields.add(new Integer(jField.getID()));
- }
-
- jField =
jContainer.getField("metaDataPublishingDate");
- fieldValue = "";
- if ( jField != null &&
jField.getObject() != null){
- fieldValue =
((String)jField.getObject()).trim();
- }
- if (
!"".equals(fieldValue) ){
- // we want to
set the last publishing date
- jField =
theContainer.getField("metaDataPublishingDate");
-
jField.setObject(fieldValue);
-
updatedFields.add(new Integer(jField.getID()));
- }
-
- jField =
jContainer.getField("metaDataPublisher");
- fieldValue = "";
- if ( jField != null &&
jField.getValue() != null){
- fieldValue =
jField.getValue().trim();
- }
- if (
!"".equals(fieldValue) ){
- // we want to
set the last publisher
- jField =
theContainer.getField("metaDataPublisher");
-
jField.setValue(fieldValue);
-
updatedFields.add(new Integer(jField.getID()));
- }
-
- jField =
jContainer.getField("directoryDocType");
- fieldValue = "";
- if ( jField != null &&
jField.getValue() != null){
- fieldValue =
jField.getValue().trim();
- }
- if (
!"".equals(fieldValue) ){
- // we want to
set the last publisher
- jField =
theContainer.getField("directoryDocType");
-
jField.setValue(fieldValue);
-
updatedFields.add(new Integer(jField.getID()));
- }
-
- jField =
jContainer.getField("directoryDocSource");
- fieldValue = "";
- if ( jField != null &&
jField.getValue() != null){
- fieldValue =
jField.getValue().trim();
- }
- if (
!"".equals(fieldValue) ){
- // we want to
set the last publisher
- jField =
theContainer.getField("directoryDocSource");
-
jField.setValue(fieldValue);
-
updatedFields.add(new Integer(jField.getID()));
- }
- jField =
jContainer.getField("directoryShortDocDescription");
- fieldValue = "";
- if ( jField != null &&
jField.getValue() != null){
- fieldValue =
jField.getValue().trim();
- }
- if (
!"".equals(fieldValue) ){
- // we want to
set the last publisher
- jField =
theContainer.getField("directoryShortDocDescription");
-
jField.setValue(fieldValue);
-
updatedFields.add(new Integer(jField.getID()));
- }
-
- ContentDefinition
contentDefinition = jContainer.getDefinition();
- ArrayList selectedCategories = new
ArrayList();
- Set categories =
Category.getObjectCategories(cContainer.getObjectKey());
- Iterator iterator =
categories.iterator();
- while (
iterator.hasNext() ){
- Category cat =
(Category)iterator.next();
-
selectedCategories.add(cat.getKey());
- }
-
- ArrayList defaultSelectedCategories =
- (ArrayList)
session.getAttribute(DEFAULTCATEGORIES_SESSIONKEYPREFIX +
-
theContainer.getDefinition().getObjectKey());
- if (defaultSelectedCategories != null) {
- for ( int i=0;
i<defaultSelectedCategories.size() ; i++ ){
- String
val = (String)defaultSelectedCategories.get(i);
-
if ( !selectedCategories.contains(val) ){
-
selectedCategories.add(val);
-
}
- }
- }
-
engineMap.put(SELECTEDCATEGORIES_ENGINEMAPKEY, selectedCategories);
-
-
ManageCategories.getInstance().handleActions(jParams, JahiaEngine.LOAD_MODE,
- engineMap, new
ContentContainerKey(jContainer.getID()),
-
jContainer.getDefinition(), false);
- } catch ( Throwable t ){
-
t.printStackTrace();
- }
- }
- }
- }
- }
+ // check if the current page it a moved one
+ if ( Page_Field.MOVE_PAGE.equals(operation) ){
+ Integer previousPageID = (Integer)jParams.getRequest()
+ .getAttribute("eventlistener.previousPageID");
+
+ if ( previousPageID == null
+ || previousPageID.intValue() != selectedPageID ){
+
+ previousPageID = new Integer(selectedPageID);
+ request.setAttribute("eventlistener.previousPageID",
+ previousPageID);
+
+ if ( selectedPageID != -1 ){
+ try {
+ ContentPage cPage = ContentPage
+ .getPage(selectedPageID,false);
+ ContentPageField cPageField = (ContentPageField)
+ cPage.getParent( jParams.getUser(),
+ jParams.getEntryLoadRequest(),
+ ParamBean.NORMAL);
+ if ( cPageField == null ){
+ // try to get the active
+ EntryLoadRequest lRequest =
+ new
EntryLoadRequest(EntryLoadRequest.ACTIVE_WORKFLOW_STATE,0,
+
jParams.getEntryLoadRequest().getLocales());
+ cPageField = (ContentPageField)
+ cPage.getParent( jParams.getUser(),
+ lRequest,
+ ParamBean.NORMAL);
+ }
+ ContentContainer cContainer =
+ (ContentContainer)cPageField
+ .getParent(
jParams.getUser(),
+
jParams.getEntryLoadRequest(),
+ ParamBean.NORMAL) ;
+ JahiaContainer jContainer =
+ cContainer.getJahiaContainer(jParams,
+
jParams.getEntryLoadRequest());
+
+ JahiaField jField =
jContainer.getField("metaDataCreator");
+ String fieldValue = "";
+ if ( jField != null && jField.getValue() !=
null){
+ fieldValue = jField.getValue().trim();
+ }
+ if ( !"".equals(fieldValue) ){
+ creator = fieldValue;
+ }
+
+ jField =
jContainer.getField("metaDataCreationDate");
+ fieldValue = "";
+ if ( jField != null && jField.getObject() !=
null){
+ fieldValue =
((String)jField.getObject()).trim();
+ }
+ if ( !"".equals(fieldValue) ){
+ creationDate = fieldValue;
+ }
+
+ jField =
jContainer.getField("metaDataLastContributor");
+ fieldValue = "";
+ if ( jField != null && jField.getValue() !=
null){
+ fieldValue = jField.getValue().trim();
+ }
+ if ( !"".equals(fieldValue) ){
+ lastContributor = fieldValue;
+ }
+
+ jField =
jContainer.getField("metaDataLastModificationDate");
+ fieldValue = "";
+ if ( jField != null && jField.getObject() !=
null){
+ fieldValue =
((String)jField.getObject()).trim();
+ }
+ if ( !"".equals(fieldValue) ){
+ // we want to set the last modification date
field
+ jField =
theContainer.getField("metaDataLastModificationDate");
+ jField.setObject(fieldValue);
+ feh.addUpdatedField(jField.getID(),
jField.getLanguageCode());
+ updatedFields.add(new
Integer(jField.getID()));
+ }
+
+ jField =
jContainer.getField("metaDataPublishingDate");
+ fieldValue = "";
+ if ( jField != null && jField.getObject() !=
null){
+ fieldValue =
((String)jField.getObject()).trim();
+ }
+ if ( !"".equals(fieldValue) ){
+ // we want to set the last publishing date
+ jField =
theContainer.getField("metaDataPublishingDate");
+ jField.setObject(fieldValue);
+ feh.addUpdatedField(jField.getID(),
jField.getLanguageCode());
+ updatedFields.add(new
Integer(jField.getID()));
+ }
+
+ jField =
jContainer.getField("metaDataPublisher");
+ fieldValue = "";
+ if ( jField != null && jField.getValue() !=
null){
+ fieldValue = jField.getValue().trim();
+ }
+ if ( !"".equals(fieldValue) ){
+ // we want to set the last publisher
+ jField =
theContainer.getField("metaDataPublisher");
+ jField.setValue(fieldValue);
+ feh.addUpdatedField(jField.getID(),
jField.getLanguageCode());
+ updatedFields.add(new
Integer(jField.getID()));
+ }
+
+ jField = jContainer.getField("directoryDocType");
+ fieldValue = "";
+ if ( jField != null && jField.getValue() !=
null){
+ fieldValue = jField.getValue().trim();
+ }
+ if ( !"".equals(fieldValue) ){
+ // we want to set the last publisher
+ jField =
theContainer.getField("directoryDocType");
+ jField.setValue(fieldValue);
+ feh.addUpdatedField(jField.getID(),
jField.getLanguageCode());
+ updatedFields.add(new
Integer(jField.getID()));
+ }
+
+ jField =
jContainer.getField("directoryDocSource");
+ fieldValue = "";
+ if ( jField != null && jField.getValue() !=
null){
+ fieldValue = jField.getValue().trim();
+ }
+ if ( !"".equals(fieldValue) ){
+ // we want to set the last publisher
+ jField =
theContainer.getField("directoryDocSource");
+ jField.setValue(fieldValue);
+ feh.addUpdatedField(jField.getID(),
jField.getLanguageCode());
+ updatedFields.add(new
Integer(jField.getID()));
+ }
+ jField =
jContainer.getField("directoryShortDocDescription");
+ fieldValue = "";
+ if ( jField != null && jField.getValue() !=
null){
+ fieldValue = jField.getValue().trim();
+ }
+ if ( !"".equals(fieldValue) ){
+ // we want to set the last publisher
+ jField =
theContainer.getField("directoryShortDocDescription");
+ jField.setValue(fieldValue);
+ feh.addUpdatedField(jField.getID(),
jField.getLanguageCode());
+ updatedFields.add(new
Integer(jField.getID()));
+ }
+
+ ContentDefinition contentDefinition =
jContainer.getDefinition();
+ ArrayList selectedCategories = new ArrayList();
+ Set categories =
Category.getObjectCategories(cContainer.getObjectKey());
+ Iterator iterator = categories.iterator();
+ while ( iterator.hasNext() ){
+ Category cat = (Category)iterator.next();
+ selectedCategories.add(cat.getKey());
+ }
+
+ ArrayList defaultSelectedCategories =
+ (ArrayList)
session.getAttribute(DEFAULTCATEGORIES_SESSIONKEYPREFIX +
+ theContainer.getDefinition().getObjectKey());
+ if (defaultSelectedCategories != null) {
+ for ( int i=0;
i<defaultSelectedCategories.size() ; i++ ){
+ String val =
(String)defaultSelectedCategories.get(i);
+ if (
!selectedCategories.contains(val) ){
+ selectedCategories.add(val);
+ }
+ }
+ }
+
engineMap.put(SELECTEDCATEGORIES_ENGINEMAPKEY, selectedCategories);
+
+
ManageCategories.getInstance().handleActions(jParams, JahiaEngine.LOAD_MODE,
+ engineMap, new
ContentContainerKey(jContainer.getID()),
+ jContainer.getDefinition(), false);
+ } catch ( Throwable t ){
+ t.printStackTrace();
+ }
+ }
+ }
+ }
+ }
- // we want to init the creator field
- if ( creator != null ){
+ // we want to init the creator field
+ if ( creator != null ){
theField = theContainer.getField("metaDataCreator");
- theField.setValue(creator);
- updatedFields.add(new
Integer(theField.getID()));
- }
-
- // we want to init the creation date field
- if ( creationDate != null ){
- Date d = new java.util.Date();
+ theField.setValue(creator);
+ feh.addUpdatedField(theField.getID(),
theField.getLanguageCode());
+ updatedFields.add(new Integer(theField.getID()));
+ }
+
+ // we want to init the creation date field
+ if ( creationDate != null ){
+ Date d = new java.util.Date();
theField = theContainer.getField("metaDataCreationDate");
- theField.setObject(creationDate);
- updatedFields.add(new
Integer(theField.getID()));
- }
-
- // we want set the last contributor field
- if ( lastContributor != null ){
- theField =
theContainer.getField("metaDataLastContributor");
- theField.setValue(lastContributor);
- updatedFields.add(new
Integer(theField.getID()));
- }
-
- } else if ( "addContainerEngineBeforeSave".equals(eventName) ) {
- // we want set the page title
- HashMap pageBeans = (HashMap)jParams.
- getSession().getAttribute("Page_Field.PageBeans");
- if ( pageBeans != null ){
- // Verify if this page field was not already
edited in this session.
- JahiaPageEngineTempBean pageBean =
-
(JahiaPageEngineTempBean)pageBeans.get("directoryDocPage");
-
- if (pageBean != null) {
- // we want to set the title
- pageBeans.put("directoryDocPage",
pageBean);
- }
- }
- } else if ( "containerAdded".equals(eventName) ||
"containerUpdated".equals(eventName) ){
-
- // we want to set the last modification date field
- JahiaField theField =
theContainer.getField("metaDataLastModificationDate");
-
theField.setObject(String.valueOf(jahiaEvent.getEventTime()));
- theField.save(jParams);
-
- // we want set the last contributor field
- theField =
theContainer.getField("metaDataLastContributor");
- theField.setValue(jParams.getUser().getUsername());
- theField.save(jParams);
-
- // we want to create a staged entry for the field
"metaDataPublishingDate"
- // to have it activated
- theField =
theContainer.getField("metaDataPublishingDate");
- theField.setObject(theField.getValue());
- theField.save(jParams);
-
- // we want to create a staged entry for the field
"metaDataPublisher"
- // to have it activated
- theField = theContainer.getField("metaDataPublisher");
- theField.setValue(theField.getValue());
- theField.save(jParams);
- }
- }
+ theField.setObject(creationDate);
+ feh.addUpdatedField(theField.getID(),
theField.getLanguageCode());
+ updatedFields.add(new Integer(theField.getID()));
+ }
+
+ // we want set the last contributor field
+ if ( lastContributor != null ){
+ theField = theContainer.getField("metaDataLastContributor");
+ theField.setValue(lastContributor);
+ feh.addUpdatedField(theField.getID(),
theField.getLanguageCode());
+ updatedFields.add(new Integer(theField.getID()));
+ }
+
+ theField = theContainer.getField("metaDataLastModificationDate");
+ feh.addUpdatedField(theField.getID(),
theField.getLanguageCode());
+ theField = theContainer.getField("metaDataLastContributor");
+ feh.addUpdatedField(theField.getID(),
theField.getLanguageCode());
+ theField = theContainer.getField("metaDataPublishingDate");
+ feh.addUpdatedField(theField.getID(),
theField.getLanguageCode());
+ theField = theContainer.getField("metaDataPublisher");
+ feh.addUpdatedField(theField.getID(),
theField.getLanguageCode());
+
+ } else if ( "addContainerEngineBeforeSave".equals(eventName) ) {
+ // we want set the page title
+ HashMap pageBeans = (HashMap)jParams.
+ getSession().getAttribute("Page_Field.PageBeans");
+ if ( pageBeans != null ){
+ // Verify if this page field was not already edited in
this session.
+ JahiaPageEngineTempBean pageBean =
+
(JahiaPageEngineTempBean)pageBeans.get("directoryDocPage");
+
+ if (pageBean != null) {
+ // we want to set the title
+ pageBeans.put("directoryDocPage", pageBean);
+ }
+ }
+ } else if ( "containerAdded".equals(eventName) ||
"containerUpdated".equals(eventName) ){
+
+ // we want to set the last modification date field
+ JahiaField theField =
theContainer.getField("metaDataLastModificationDate");
+ theField.setObject(String.valueOf(jahiaEvent.getEventTime()));
+ theField.save(jParams);
+
+ // we want set the last contributor field
+ theField = theContainer.getField("metaDataLastContributor");
+ theField.setValue(jParams.getUser().getUsername());
+ theField.save(jParams);
+
+ // we want to create a staged entry for the field
"metaDataPublishingDate"
+ // to have it activated
+ theField = theContainer.getField("metaDataPublishingDate");
+ theField.setObject(theField.getValue());
+ theField.save(jParams);
+
+ // we want to create a staged entry for the field
"metaDataPublisher"
+ // to have it activated
+ theField = theContainer.getField("metaDataPublisher");
+ theField.setValue(theField.getValue());
+ theField.save(jParams);
+ }
+ }
}
// Proof of concept for Parlement Europeen
if ( "beforeFieldActivation".equals(eventName) ){
- ContentField contentField = (ContentField)jahiaEvent.getObject();
- JahiaSaveVersion saveVersion = (JahiaSaveVersion)jahiaEvent.getSource();
- int fieldDefId = contentField.getFieldDefID();
- JahiaFieldDefinition fieldDef =
JahiaFieldDefinitionsRegistry.getInstance().getDefinition(fieldDefId);
-
- // Last activation Date Field
- if ( "metaDataPublishingDate".equals(fieldDef.getName()) ){
- JahiaField theField =
contentField.getJahiaField(jParams.getEntryLoadRequest());
-
theField.setObject(String.valueOf(saveVersion.getVersionID()*1000L));
- theField.save(jParams);
-
- // reload the contentField
- contentField = ContentField.getField(theField.getID());
- }
-
- // Publisher Field
- if ( "metaDataPublisher".equals(fieldDef.getName()) ){
- JahiaField theField =
contentField.getJahiaField(jParams.getEntryLoadRequest());
- theField.setValue(jParams.getUser().getUsername());
- theField.save(jParams);
-
- // reload the contentField
- contentField = ContentField.getField(theField.getID());
- }
-}%>
\ No newline at end of file
+ ContentField contentField = (ContentField)jahiaEvent.getObject();
+ JahiaSaveVersion saveVersion = (JahiaSaveVersion)jahiaEvent.getSource();
+ int fieldDefId = contentField.getFieldDefID();
+ JahiaFieldDefinition fieldDef =
JahiaFieldDefinitionsRegistry.getInstance().getDefinition(fieldDefId);
+
+ // Last activation Date Field
+ if ( "metaDataPublishingDate".equals(fieldDef.getName()) ){
+ JahiaField theField =
contentField.getJahiaField(jParams.getEntryLoadRequest());
+ theField.setObject(String.valueOf(saveVersion.getVersionID()*1000L));
+ theField.save(jParams);
+
+ // reload the contentField
+ contentField = ContentField.getField(theField.getID());
+ }
+
+ // Publisher Field
+ if ( "metaDataPublisher".equals(fieldDef.getName()) ){
+ JahiaField theField =
contentField.getJahiaField(jParams.getEntryLoadRequest());
+ theField.setValue(jParams.getUser().getUsername());
+ theField.save(jParams);
+
+ // reload the contentField
+ contentField = ContentField.getField(theField.getID());
+ }
+}%>