Author: tdraier
Date: Thu Sep 20 12:53:59 2007
New Revision: 18573
URL: https://svndev.jahia.net/websvn/listing.php?sc=3D1&rev=3D18573&repname=
=3Djahia
Log:
only call selected engines when updating container ( JAHIA-2252 )
Modified:
branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/engines/updatecont=
ainer/UpdateContainer_Engine.java
Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/engines/upda=
tecontainer/UpdateContainer_Engine.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/engines/updatecontainer/UpdateContainer_Eng=
ine.java&rev=3D18573&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/updatecont=
ainer/UpdateContainer_Engine.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/engines/updatecont=
ainer/UpdateContainer_Engine.java Thu Sep 20 12:53:59 2007
@@ -398,6 +398,13 @@
JahiaContainer theContainer =3D jahiaContentContainerFacade.getCon=
tainer(elh.getPreviousEntryLoadRequest(), true);
engineMap.put("theContainer", theContainer);
=
+ Set allProcessedScreen =3D (Set) engineMap.get("allProcessedScreen=
");
+ if (allProcessedScreen =3D=3D null) {
+ allProcessedScreen =3D new HashSet();
+ engineMap.put("allProcessedScreen", allProcessedScreen);
+ }
+ allProcessedScreen.add(lastScreen);
+
if (lastScreen.equals("edit")) {
=
final FieldsEditHelper feh =3D (FieldsEditHelper) engineMap.ge=
t(
@@ -629,6 +636,7 @@
ManageImportExport.getInstance().handleActions(jParams, mo=
de,
engineMap, theContainer.getContentContainer());
} else if (theScreen.equals("save") || theScreen.equals("apply=
")) {
+ Set allProcessedScreen =3D (Set) engineMap.get("allProcess=
edScreen");
final String navigation =3D jParams.getParameter("navigati=
on");
final boolean isNavigation =3D navigation !=3D null && nav=
igation.length() > 0;
final String lastScreen =3D jParams.getParameter("lastscre=
en");
@@ -671,7 +679,7 @@
}
// #endif
=
- if (ProcessingContext.isMultipartRequest(((ParamBean) jPar=
ams).getRequest())) {
+ if (allProcessedScreen.contains("import") && ProcessingCon=
text.isMultipartRequest(((ParamBean) jParams).getRequest())) {
if (ManageImportExport.getInstance().handleActions(jPa=
rams, JahiaEngine.SAVE_MODE,
engineMap, theContainer.getContentContainer())=
) {
if (theScreen.equals("apply")) {
@@ -695,14 +703,18 @@
=
mode =3D JahiaEngine.VALIDATE_MODE;
=
- EngineValidationHelper evh =3D ManageRights.getInstance().=
handleActions(jParams, mode, engineMap,
- theContainer.getAclID(), null, null, sameAcl,theCo=
ntainer.getContentContainer().getObjectKey().toString());
+ EngineValidationHelper evh =3D null;
=
- if (evh !=3D null && evh.hasErrors()) {
- engineMap.put(JahiaEngine.ENGINE_VALIDATION_HELPER, ev=
h);
- engineMap.put("screen", "rightsMgmt");
- engineMap.put("jspSource", TEMPLATE_JSP);
- return evh;
+ if (allProcessedScreen.contains("rightsMgmt")) {
+ evh =3D ManageRights.getInstance().handleActions(jPara=
ms, mode, engineMap,
+ theContainer.getAclID(), null, null, sameAcl,t=
heContainer.getContentContainer().getObjectKey().toString());
+
+ if (evh !=3D null && evh.hasErrors()) {
+ engineMap.put(JahiaEngine.ENGINE_VALIDATION_HELPER=
, evh);
+ engineMap.put("screen", "rightsMgmt");
+ engineMap.put("jspSource", TEMPLATE_JSP);
+ return evh;
+ }
}
=
evh =3D AddContainer_Engine.validate(
@@ -746,12 +758,15 @@
JahiaContainerDefinition def =3D theContainer.getDefin=
ition();
objectKey[0] =3D def.getObjectKey();
}
- evh =3D Metadata_Engine.getInstance().handleActions(jParam=
s, mode, objectKey[0]);
- if (evh !=3D null && evh.hasErrors()) {
- engineMap.put(JahiaEngine.ENGINE_VALIDATION_HELPER, ev=
h);
- engineMap.put("screen", evh.getNextScreen());
- engineMap.put("jspSource", TEMPLATE_JSP);
- return evh;
+
+ if (allProcessedScreen.contains("metadata")) {
+ evh =3D Metadata_Engine.getInstance().handleActions(jP=
arams, mode, objectKey[0]);
+ if (evh !=3D null && evh.hasErrors()) {
+ engineMap.put(JahiaEngine.ENGINE_VALIDATION_HELPER=
, evh);
+ engineMap.put("screen", evh.getNextScreen());
+ engineMap.put("jspSource", TEMPLATE_JSP);
+ return evh;
+ }
}
=
engineMap.remove(JahiaEngine.ENGINE_VALIDATION_HELPER);
@@ -787,13 +802,16 @@
final JahiaContainerList theList =3D servicesRegistry.=
getJahiaContainersService().
loadContainerListInfo(theContainer.getListID()=
, loadVersion);
=
- // save workflow
- if (!ManageWorkflow.getInstance().handleActions(jParam=
s, mode,
- engineMap, theContainer.getContentContainer())=
) {
- engineMap.put("screen", "workflow");
- engineMap.put("jspSource", TEMPLATE_JSP);
- return null;
+ if (allProcessedScreen.contains("workflow")) {
+ // save workflow
+ if (!ManageWorkflow.getInstance().handleActions(jP=
arams, mode,
+ engineMap, theContainer.getContentContaine=
r())) {
+ engineMap.put("screen", "workflow");
+ engineMap.put("jspSource", TEMPLATE_JSP);
+ return null;
+ }
}
+
// 0 for parentAclID in saveContainerInfo, because con=
tainer already exists
// -> container already has an aclID
// -> no need to create a new one
@@ -803,7 +821,7 @@
saveFields(theContainer, jahiaContentContainerFacade, =
feh, jParams, mode, engineMap);
=
// save rights
- if (engineMap.get("adminAccess") !=3D null) {
+ if (allProcessedScreen.contains("rightsMgmt") && engin=
eMap.get("adminAccess") !=3D null) {
engineMap.put("logObjectType", Integer.toString(Lo=
ggingEventListener.CONTAINER_TYPE));
engineMap.put("logObject", theContainer);
//ViewRights.getInstance().handleActions( jParams,=
mode, engineMap, theContainer.getAclID() );
@@ -829,24 +847,30 @@
// cut points though.
}
=
- if (engineMap.get("writeAccess") !=3D null || engineMa=
p.get("adminAccess") !=3D null) {
- objectKey[0] =3D null;
- ContentContainer contentContainer =3D ContentConta=
iner.getContainer(theContainer.getID());
- objectKey[0] =3D contentContainer.getObjectKey();
- TimeBasedPublishingEngine.getInstance().handleActi=
ons(jParams, mode, engineMap, objectKey[0]);
- } else {
- throw new JahiaForbiddenAccessException();
+ if (allProcessedScreen.contains("timeBasedPublishing")=
) {
+ if ((engineMap.get("writeAccess") !=3D null || eng=
ineMap.get("adminAccess") !=3D null)) {
+ objectKey[0] =3D null;
+ ContentContainer contentContainer =3D ContentC=
ontainer.getContainer(theContainer.getID());
+ objectKey[0] =3D contentContainer.getObjectKey=
();
+ TimeBasedPublishingEngine.getInstance().handle=
Actions(jParams, mode, engineMap, objectKey[0]);
+ } else {
+ throw new JahiaForbiddenAccessException();
+ }
}
=
- // save categories
- ManageCategories.getInstance().handleActions(jParams, =
mode, engineMap,
- new ContentContainerKey(jahiaContentContainerF=
acade.getContainerID()),
- theContainer.getDefinition(), false);
+ if (allProcessedScreen.contains("categories")) {
+ // save categories
+ ManageCategories.getInstance().handleActions(jPara=
ms, mode, engineMap,
+ new ContentContainerKey(jahiaContentContai=
nerFacade.getContainerID()),
+ theContainer.getDefinition(), false);
+ }
=
flushPageCacheThatDisplayContainer(jParams, theContain=
er);
=
// save metadata
- Metadata_Engine.getInstance().handleActions(jParams, m=
ode, objectKey[0]);
+ if (allProcessedScreen.contains("metadata")) {
+ Metadata_Engine.getInstance().handleActions(jParam=
s, mode, objectKey[0]);
+ }
=
// Only fire the event if at least 1 field in the cont=
ainer has been updated
if (jParams.getSessionState().getAttribute("FireContai=
nerUpdated") !=3D null) {
_______________________________________________
cvs_list mailing list
[email protected]
http://lists.jahia.org/cgi-bin/mailman/listinfo/cvs_list