Author: xlawrence
Date: Thu Jun 21 16:09:23 2007
New Revision: 17692
URL: https://svndev.jahia.net/websvn/listing.php?sc=3D1&rev=3D17692&repname=
=3Djahia
Log:
Correctly release locks when exiting the versionning sub-engine
Modified:
branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/ajax/sitemap/SiteM=
apAbstractAction.java
branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/views/engines/vers=
ioning/actions/ContentVersioningAction.java
branches/JAHIA-5-0-SP-BRANCH/core/src/webapp/views/engines/engines_defa=
ult_layout.jsp
Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/ajax/sitemap=
/SiteMapAbstractAction.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/ajax/sitemap/SiteMapAbstractAction.java&rev=
=3D17692&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/ajax/sitemap/SiteM=
apAbstractAction.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/ajax/sitemap/SiteM=
apAbstractAction.java Thu Jun 21 16:09:23 2007
@@ -398,6 +398,13 @@
jParams.getSessionState().getMaxInacti=
veInterval());
if (isLocked) {
item.setAttribute("locked", "locked");
+ } else {
+ Set locks =3D (Set) jParams.getSessionStat=
e().getAttribute("VersionningLocks");
+ if (locks =3D=3D null) {
+ locks =3D new HashSet();
+ }
+ locks.add(lockKey);
+ jParams.getSessionState().setAttribute("Ve=
rsionningLocks", locks);
}
} else {
isLocked =3D false;
Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/views/engine=
s/versioning/actions/ContentVersioningAction.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/views/engines/versioning/actions/ContentVer=
sioningAction.java&rev=3D17692&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/views/engines/vers=
ioning/actions/ContentVersioningAction.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/views/engines/vers=
ioning/actions/ContentVersioningAction.java Thu Jun 21 16:09:23 2007
@@ -5,13 +5,13 @@
import org.jahia.content.ContentObject;
import org.jahia.content.ObjectKey;
import org.jahia.data.containers.JahiaContainerDefinition;
-import org.jahia.data.viewhelper.sitemap.SiteMapViewHelper;
-import org.jahia.engines.calendar.CalendarHandler;
import org.jahia.engines.EngineLanguageHelper;
import org.jahia.engines.JahiaEngine;
+import org.jahia.engines.calendar.CalendarHandler;
import org.jahia.exceptions.JahiaException;
import org.jahia.exceptions.JahiaForbiddenAccessException;
import org.jahia.exceptions.JahiaSessionExpirationException;
+import org.jahia.hibernate.cache.JahiaBatchingClusterCacheHibernateProvide=
r;
import org.jahia.params.ProcessingContext;
import org.jahia.registries.ServicesRegistry;
import org.jahia.services.cache.HtmlCache;
@@ -21,18 +21,16 @@
import org.jahia.services.lock.LockService;
import org.jahia.services.pages.ContentPage;
import org.jahia.services.pages.JahiaPage;
-import org.jahia.services.sitemap.JahiaSiteMapService;
import org.jahia.services.usermanager.JahiaUser;
import org.jahia.services.version.*;
+import org.jahia.utils.LanguageCodeConverters;
import org.jahia.views.engines.JahiaEngineButtonsHelper;
import org.jahia.views.engines.JahiaEngineCommonData;
import org.jahia.views.engines.JahiaEngineViewHelper;
-import org.jahia.views.engines.versioning.ContentVersioningViewHelper;
import org.jahia.views.engines.versioning.ContainerVersioningViewHelper;
+import org.jahia.views.engines.versioning.ContentVersioningViewHelper;
import org.jahia.views.engines.versioning.pages.PagesVersioningViewHelper;
import org.jahia.views.engines.versioning.revisionsdetail.actions.Revision=
EntrySetDetailAction;
-import org.jahia.utils.LanguageCodeConverters;
-import org.jahia.hibernate.cache.JahiaBatchingClusterCacheHibernateProvide=
r;
=
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
@@ -76,8 +74,8 @@
String engineView =3D request.getParameter("engineview");
String reloaded =3D request.getParameter("reloaded");
=
- Boolean allowReadAccess =3D (Boolean)request.getAttribute("ver=
sioningAllowReadAccess");
- if ( allowReadAccess =3D=3D null ){
+ Boolean allowReadAccess =3D (Boolean) request.getAttribute("ve=
rsioningAllowReadAccess");
+ if (allowReadAccess =3D=3D null) {
allowReadAccess =3D Boolean.FALSE;
}
// engine view Helper
@@ -115,7 +113,7 @@
request.setAttribute(JahiaEngineButtonsHelper.JAHIA_ENGINE_BUT=
TONS_HELPER,
jahiaEngineButtonsHelper);
=
- ContentObject contentObject =3D null;
+ final ContentObject contentObject;
=
if (engineViewHelper =3D=3D null) {
// Prepage a new engine view helper
@@ -123,13 +121,13 @@
EntryLoadRequest loadRequest =3D EntryLoadRequest.VERSIONE=
D;
objectKey =3D request.getParameter("objectKey");
contentObject =3D ContentObject.getContentObjectInstance(O=
bjectKey.getInstance(objectKey));
- CalendarHandler cal =3D this.getCalHandler("restoreDateCal=
endar",0,
+ CalendarHandler cal =3D this.getCalHandler("restoreDateCal=
endar", 0,
engineCommonData.getParamBean());
- engineViewHelper =3D ContentVersioningViewHelper.getInstan=
ce(contentObject,cal);
- cal =3D this.getCalHandler("fromRevisionDateCalendar",0,
+ engineViewHelper =3D ContentVersioningViewHelper.getInstan=
ce(contentObject, cal);
+ cal =3D this.getCalHandler("fromRevisionDateCalendar", 0,
engineCommonData.getParamBean());
engineViewHelper.setFromRevisionDateCalendar(cal);
- cal =3D this.getCalHandler("toRevisionDateCalendar",0,
+ cal =3D this.getCalHandler("toRevisionDateCalendar", 0,
engineCommonData.getParamBean());
engineViewHelper.setToRevisionDateCalendar(cal);
=
@@ -141,12 +139,12 @@
}
=
// check permission
- ContentVersioningAction.logger.info("Logged in User :" + engin=
eCommonData.getParamBean().getUser().getUsername() );
+ ContentVersioningAction.logger.info("Logged in User :" + engin=
eCommonData.getParamBean().getUser().getUsername());
if (!contentObject.checkWriteAccess(engineCommonData.getParamB=
ean().getUser())) {
if (!allowReadAccess.booleanValue()) {
- throw new JahiaForbiddenAccessException();
+ throw new JahiaForbiddenAccessException();
} else {
- if (!contentObject.checkReadAccess(engineCommonData.ge=
tParamBean().getUser())){
+ if (!contentObject.checkReadAccess(engineCommonData.ge=
tParamBean().getUser())) {
throw new JahiaForbiddenAccessException();
}
}
@@ -158,21 +156,21 @@
=
// JSP attributes
String contentTitle =3D null;
- if ( contentObject instanceof ContentPage ){
+ if (contentObject instanceof ContentPage) {
contentTitle =3D contentObject.getDisplayName(engineCommon=
Data.getParamBean());
- } else if ( contentObject instanceof ContentContainer ){
- JahiaContainerDefinition containerDefinition =3D (JahiaCon=
tainerDefinition)JahiaContainerDefinition
+ } else if (contentObject instanceof ContentContainer) {
+ JahiaContainerDefinition containerDefinition =3D (JahiaCon=
tainerDefinition) JahiaContainerDefinition
.getContentDefinitionInstance(contentObject.getDef=
initionKey(EntryLoadRequest.STAGED));
contentTitle =3D containerDefinition.getDisplayName(engine=
CommonData.getParamBean());
- } else if ( contentObject instanceof ContentContainerList ){
- JahiaContainerDefinition containerDefinition =3D (JahiaCon=
tainerDefinition)JahiaContainerDefinition
+ } else if (contentObject instanceof ContentContainerList) {
+ JahiaContainerDefinition containerDefinition =3D (JahiaCon=
tainerDefinition) JahiaContainerDefinition
.getContentDefinitionInstance(contentObject.getDef=
initionKey(EntryLoadRequest.STAGED));
contentTitle =3D containerDefinition.getDisplayName(engine=
CommonData.getParamBean());
}
if (contentTitle =3D=3D null) {
contentTitle =3D "No title for content object [" + engineV=
iewHelper.getContentObject().getObjectKey()
- + "] in lang : " + engineCommonData.getParamBean()
- .getEntryLoadRequest().getFirstLocale(true).getDisplayName=
();
+ + "] in lang : " + engineCommonData.getParamBean()
+ .getEntryLoadRequest().getFirstLocale(true).getDis=
playName();
}
request.setAttribute("contentVersioning.contentTitle", content=
Title);
request.setAttribute("contentVersioning.objectKey", String.val=
ueOf(contentObject.getObjectKey().toString()));
@@ -195,8 +193,8 @@
=
final EngineLanguageHelper elh =3D (EngineLanguageHelper)
engineMap.get(JahiaEngine.ENGINE_LANGUAGE_HELPER);
- if ( elh !=3D null &&
- !engineViewHelper.getLanguagesToRestore().contains(elh=
.getCurrentLocale()) ){
+ if (elh !=3D null &&
+ !engineViewHelper.getLanguagesToRestore().contains=
(elh.getCurrentLocale())) {
engineViewHelper.getLanguagesToRestore().add(elh.getCu=
rrentLocale().clone());
}
}
@@ -285,7 +283,7 @@
(ContentVersioningViewHelper) request.getAttribute(Jah=
iaEngineViewHelper.ENGINE_VIEW_HELPER);
engineCommonData =3D (JahiaEngineCommonData)
request.getAttribute(JahiaEngineCommonData.JAHIA_ENGIN=
E_COMMON_DATA);
- if ( versViewHelper.isRestoringContainer() || versViewHelper.i=
sRestoringContainerList() ){
+ if (versViewHelper.isRestoringContainer() || versViewHelper.is=
RestoringContainerList()) {
// before we go any further, let's try to acquire all the =
locks
// on the page sub tree.
ActionMessages messages =3D new ActionMessages();
@@ -295,11 +293,11 @@
saveMessages(request, messages);
} else {
getRevisionsListFormData(mapping, form, request, respo=
nse);
- loadRevisions(mapping,form,request,response);
+ loadRevisions(mapping, form, request, response);
}
} else {
getRevisionsListFormData(mapping, form, request, response);
- loadRevisions(mapping,form,request,response);
+ loadRevisions(mapping, form, request, response);
}
} catch (Throwable t) {
JahiaErrorDisplay.DisplayException(request, response,
@@ -315,7 +313,6 @@
}
=
/**
- *
* @param mapping
* @param form
* @param request
@@ -323,10 +320,10 @@
* @throws IOException
* @throws ServletException
*/
- public void loadRevisions( ActionMapping mapping,
- ActionForm form,
- HttpServletRequest request,
- HttpServletResponse response)
+ public void loadRevisions(ActionMapping mapping,
+ ActionForm form,
+ HttpServletRequest request,
+ HttpServletResponse response)
throws IOException, ServletException, JahiaException {
=
ContentVersioningViewHelper versViewHelper =3D (ContentVersioningV=
iewHelper)
@@ -335,16 +332,16 @@
request.getAttribute(JahiaEngineCommonData.JAHIA_ENGINE_CO=
MMON_DATA);
=
long toDate =3D versViewHelper.getToRevisionDateCalendar().getDate=
Long().longValue();
- if ( toDate =3D=3D 0 ){
+ if (toDate =3D=3D 0) {
toDate =3D Calendar.getInstance(TimeZone.getTimeZone("UTC")).g=
etTimeInMillis();
}
toDate +=3D versViewHelper.getToRevisionDateCalendar().getTimeZone=
OffSet().longValue()
- + versViewHelper.getToRevisionDateCalendar().getServerClientTimeDi=
ff().longValue();
+ + versViewHelper.getToRevisionDateCalendar().getServerClie=
ntTimeDiff().longValue();
=
EntryLoadRequest loadRequest =3D
- new EntryLoadRequest(EntryLoadRequest.VERSIONED_WORKFLOW_STATE,
- (int) (toDate / 1000),
- engineCommonData.getParamBean().getEntryLoadRequest().=
getLocales());
+ new EntryLoadRequest(EntryLoadRequest.VERSIONED_WORKFLOW_S=
TATE,
+ (int) (toDate / 1000),
+ engineCommonData.getParamBean().getEntryLoadReques=
t().getLocales());
=
// prepare Revisions List
ContentTreeRevisionsVisitor revisionsVisitor =3D
@@ -353,19 +350,19 @@
loadRequest, ProcessingContext.EDIT);
=
revisionsVisitor.setWithDeletedContent(true);
- if ( versViewHelper.isRestoringPage() ){
- int pageLevel =3D ((PagesVersioningViewHelper)versViewHelper).=
getPageLevel().intValue();
+ if (versViewHelper.isRestoringPage()) {
+ int pageLevel =3D ((PagesVersioningViewHelper) versViewHelper)=
.getPageLevel().intValue();
if (pageLevel > 0) {
pageLevel -=3D 1;
}
revisionsVisitor.setDescendingPageLevel(pageLevel);
- } else if ( versViewHelper.isRestoringContainer() ){
+ } else if (versViewHelper.isRestoringContainer()) {
revisionsVisitor.setWithStagingRevisions(true);
}
long fromDate =3D versViewHelper.getFromRevisionDateCalendar().get=
DateLong().longValue();
- if ( fromDate > 0 ){
+ if (fromDate > 0) {
fromDate +=3D versViewHelper.getFromRevisionDateCalendar().get=
TimeZoneOffSet().longValue()
- + versViewHelper.getFromRevisionDateCalendar().getServerClient=
TimeDiff().longValue();
+ + versViewHelper.getFromRevisionDateCalendar().getServ=
erClientTimeDiff().longValue();
}
revisionsVisitor.setFromRevisionDate(fromDate);
revisionsVisitor.setToRevisionDate(toDate);
@@ -381,7 +378,7 @@
int size =3D revisions.size();
// remove deleted revisions, we don't want to restore at deleted r=
evision
RevisionEntrySet revEntrySet;
- if ( (versViewHelper.isRestoringPage() || versViewHelper.isRestori=
ngContainer() )) {
+ if ((versViewHelper.isRestoringPage() || versViewHelper.isRestorin=
gContainer())) {
for (int i =3D 0; i < size; i++) {
revEntrySet =3D (RevisionEntrySet) revisions.get(i);
if ((revEntrySet.getWorkflowState() !=3D
@@ -392,7 +389,7 @@
} else {
filteredRevisions =3D revisions;
}
- if ( filteredRevisions =3D=3D null ){
+ if (filteredRevisions =3D=3D null) {
filteredRevisions =3D new ArrayList();
}
request.setAttribute("revisions", filteredRevisions);
@@ -444,7 +441,8 @@
=
// select the current page if none selected and operation type=
=3D restore archived
if (pagesVersViewHelper.getSelectedPages().size() =3D=3D 0 &&
- pagesVersViewHelper.getOperationType() =3D=3D ContentV=
ersioningViewHelper.RESTORE_ARCHIVE_CONTENT_OPERATION) {
+ pagesVersViewHelper.getOperationType() =3D=3D ContentV=
ersioningViewHelper.RESTORE_ARCHIVE_CONTENT_OPERATION)
+ {
pagesVersViewHelper.getSelectedPages().add(pagesVersViewHe=
lper.getPage().getObjectKey());
}
=
@@ -493,14 +491,14 @@
try {
init(mapping, request);
versViewHelper =3D (ContentVersioningViewHelper)
- request.getAttribute(JahiaEngineViewHelper.ENGINE_VIEW_HEL=
PER);
+ request.getAttribute(JahiaEngineViewHelper.ENGINE_VIEW=
_HELPER);
boolean pageVersioning =3D versViewHelper.isRestoringPage();
- if ( pageVersioning ) {
+ if (pageVersioning) {
getSiteMapFormData(mapping, form, request, response);
// store pages to restore
- ((PagesVersioningViewHelper)versViewHelper)
+ ((PagesVersioningViewHelper) versViewHelper)
.setPagesToRestore(getPagesToRestore(request));
- } else if ( versViewHelper.isRestoringContainer() ){
+ } else if (versViewHelper.isRestoringContainer()) {
versViewHelper.setOperationType(ContentVersioningViewHelpe=
r.RESTORE_ARCHIVE_CONTENT_OPERATION);
getRevisionsListFormData(mapping, form, request, response);
}
@@ -525,13 +523,14 @@
}
}
=
- if (pageVersioning && ((PagesVersioningViewHelper)versViewHelp=
er).getPagesToRestore().size() =3D=3D 0) {
+ if (pageVersioning && ((PagesVersioningViewHelper) versViewHel=
per).getPagesToRestore().size() =3D=3D 0) {
forward =3D this.showSiteMap(mapping, form, request, respo=
nse);
// set engine screen
request.setAttribute("engineView", "sitemap");
return continueForward(mapping, request, errors, forward);
- } else if (versViewHelper.getOperationType() =3D=3D ContentVer=
sioningViewHelper.RESTORE_ARCHIVE_CONTENT_OPERATION
- && versViewHelper.getRevisionEntrySet() =3D=3D null ){
+ } else
+ if (versViewHelper.getOperationType() =3D=3D ContentVersioning=
ViewHelper.RESTORE_ARCHIVE_CONTENT_OPERATION
+ && versViewHelper.getRevisionEntrySet() =3D=3D null) {
forward =3D this.showRevisionsList(mapping, form, request,=
response);
request.setAttribute("engineView", "revisionsList");
return continueForward(mapping, request, errors, forward);
@@ -558,17 +557,17 @@
// JSP output
Date d =3D new Date(
versViewHelper.getRestoreDateCalendar().getDateLong().=
longValue()
- + versViewHelper.getRestoreDateCalendar().getTimeZoneO=
ffSet().longValue()
- + versViewHelper.getRestoreDateCalendar().getServerClientTimeD=
iff().longValue());
+ + versViewHelper.getRestoreDateCalendar().getT=
imeZoneOffSet().longValue()
+ + versViewHelper.getRestoreDateCalendar().getS=
erverClientTimeDiff().longValue());
request.setAttribute("contentVersioning.full_restore_date",
DateFormat.getDateTimeInstance(DateFormat.LONG, DateFo=
rmat.MEDIUM,
engineCommonData.getParamBean().getLocale()).f=
ormat(d));
- if ( pageVersioning ){
- PagesVersioningViewHelper pagesVersViewHelper =3D (PagesVe=
rsioningViewHelper)versViewHelper;
+ if (pageVersioning) {
+ PagesVersioningViewHelper pagesVersViewHelper =3D (PagesVe=
rsioningViewHelper) versViewHelper;
request.setAttribute("contentVersioning.nb_pages_to_restor=
e",
- new Integer(pagesVersViewHelper.getPagesToRestore().si=
ze() / 2));
+ new Integer(pagesVersViewHelper.getPagesToRestore(=
).size() / 2));
request.setAttribute("contentVersioning.restore_exact",
- pagesVersViewHelper.exactRestore() ? "yes" : "no");
+ pagesVersViewHelper.exactRestore() ? "yes" : "no");
}
} catch (Throwable t) {
JahiaErrorDisplay.DisplayException(request, response,
@@ -605,7 +604,7 @@
try {
init(mapping, request);
versViewHelper =3D (ContentVersioningViewHelper)
- request.getAttribute(JahiaEngineViewHelper.ENGINE_VIEW_HEL=
PER);
+ request.getAttribute(JahiaEngineViewHelper.ENGINE_VIEW=
_HELPER);
versViewHelper.setOperationType(ContentVersioningViewHelper.UN=
DO_STAGING_OPERATION);
engineCommonData =3D (JahiaEngineCommonData)
request.getAttribute(JahiaEngineCommonData.JAHIA_ENGIN=
E_COMMON_DATA);
@@ -669,9 +668,9 @@
* @throws ServletException
*/
public ActionForward restoreSave(ActionMapping mapping,
- ActionForm form,
- HttpServletRequest request,
- HttpServletResponse response)
+ ActionForm form,
+ HttpServletRequest request,
+ HttpServletResponse response)
throws IOException, ServletException {
=
ContentVersioningViewHelper versViewHelper;
@@ -683,22 +682,22 @@
=
versViewHelper.getLanguagesToRestore().clear();
String[] languagesToRestore =3D request.getParameterValues("la=
nguageToRestore");
- if ( languagesToRestore !=3D null ){
+ if (languagesToRestore !=3D null) {
Locale loc =3D null;
- for ( int i=3D0; i<languagesToRestore.length; i++ ){
+ for (int i =3D 0; i < languagesToRestore.length; i++) {
loc =3D LanguageCodeConverters.languageCodeToLocale(la=
nguagesToRestore[i]);
- if ( loc !=3D null ){
+ if (loc !=3D null) {
versViewHelper.getLanguagesToRestore().add(loc);
}
}
}
=
- if ( versViewHelper.isRestoringPage() ){
- return restorePageSave(mapping,form,request,response);
- } else if ( versViewHelper.isRestoringContainer() ){
- return restoreContainerSave(mapping,form,request,response);
- } else if ( versViewHelper.isRestoringContainerList() ){
- return restoreContainerListSave(mapping,form,request,respo=
nse);
+ if (versViewHelper.isRestoringPage()) {
+ return restorePageSave(mapping, form, request, response);
+ } else if (versViewHelper.isRestoringContainer()) {
+ return restoreContainerSave(mapping, form, request, respon=
se);
+ } else if (versViewHelper.isRestoringContainerList()) {
+ return restoreContainerListSave(mapping, form, request, re=
sponse);
}
} catch (Throwable t) {
JahiaErrorDisplay.DisplayException(request, response,
@@ -791,24 +790,24 @@
}
=
String method =3D request.getParameter(mapping.getParamete=
r());
- if (method.equals("restoreSave")||method.equals("restoreAp=
ply")) {
+ if (method.equals("restoreSave") || method.equals("restore=
Apply")) {
releaseTreeLocks(engineCommonData.getParamBean());
request.setAttribute("engines.close.refresh-opener", "=
yes");
request.setAttribute("engines.close.opener-url-params"=
, "&reloaded=3Dyes");
forward =3D mapping.findForward("EnginesCloseAnyPopup"=
);
- /*
- } else if (method.equals("restoreApply")) {
+ /*
+ } else if (method.equals("restoreApply")) {
=
- Properties params =3D new Properties();
- params.put("method", "showOperationChoices");
- params.put("engineview", "restore");
- String requestURL =3D ContentVersioningAction.composeA=
ctionURL(pagesVersViewHelper.getContentObject(),
- engineCommonData.getParamBean(), mapping.getPa=
th(), params, null);
- request.setAttribute("engines.apply.new-url", requestU=
RL);
- request.setAttribute("engines.apply.refresh-opener", "=
yes");
- request.setAttribute("engines.apply.opener-url-params"=
, "&reloaded=3Dyes");
- forward =3D mapping.findForward("EnginesApplyAnyPopup"=
);
- */ =
+ Properties params =3D new Properties();
+ params.put("method", "showOperationChoices");
+ params.put("engineview", "restore");
+ String requestURL =3D ContentVersioningAction.comp=
oseActionURL(pagesVersViewHelper.getContentObject(),
+ engineCommonData.getParamBean(), mapping.g=
etPath(), params, null);
+ request.setAttribute("engines.apply.new-url", requ=
estURL);
+ request.setAttribute("engines.apply.refresh-opener=
", "yes");
+ request.setAttribute("engines.apply.opener-url-par=
ams", "&reloaded=3Dyes");
+ forward =3D mapping.findForward("EnginesApplyAnyPo=
pup");
+ */
} else {
forward =3D this.showRevisionsList(mapping, form, requ=
est, response);
}
@@ -840,9 +839,9 @@
* @throws javax.servlet.ServletException
*/
protected ActionForward restoreContainerSave(ActionMapping mapping,
- ActionForm form,
- HttpServletRequest request,
- HttpServletResponse response)
+ ActionForm form,
+ HttpServletRequest reques=
t,
+ HttpServletResponse respo=
nse)
throws IOException, ServletException {
=
ActionForward forward =3D mapping.findForward("revisionDetails");
@@ -916,9 +915,9 @@
* @throws ServletException
*/
protected ActionForward restoreContainerListSave(ActionMapping mapping,
- ActionForm form,
- HttpServletRequest request,
- HttpServletResponse response)
+ ActionForm form,
+ HttpServletRequest re=
quest,
+ HttpServletResponse r=
esponse)
throws IOException, ServletException {
return null;
}
@@ -1014,7 +1013,7 @@
request.getAttribute(JahiaEngineViewHelper.ENGINE_VIEW=
_HELPER);
engineCommonData =3D (JahiaEngineCommonData)
request.getAttribute(JahiaEngineCommonData.JAHIA_ENGIN=
E_COMMON_DATA);
- if ( versViewHelper.isRestoringPage() ){
+ if (versViewHelper.isRestoringPage()) {
releaseTreeLocks(engineCommonData.getParamBean());
}
} catch (Throwable t) {
@@ -1023,15 +1022,15 @@
errors.add(ActionErrors.GLOBAL_ERROR,
new ActionError("Error preparing Operation Choices vie=
w"));
} finally {
- if ( versViewHelper !=3D null && versViewHelper.isRestoringPa=
ge() ){
+ if (versViewHelper !=3D null && versViewHelper.isRestoringPage=
()) {
try {
- releaseTreeLocks(engineCommonData.getParamBean());
- } catch ( Throwable t ){
+ releaseTreeLocks(engineCommonData.getParamBean());
+ } catch (Throwable t) {
}
}
try {
releaseActionLock(engineCommonData.getParamBean());
- } catch ( Throwable t) {
+ } catch (Throwable t) {
}
}
// set engine screen
@@ -1072,7 +1071,7 @@
releaseTreeLocks(engineCommonData.getParamBean());
// this is required in the case that we never locked the t=
ree
releaseActionLock(engineCommonData.getParamBean());
- } catch ( Throwable t ){
+ } catch (Throwable t) {
ContentVersioningAction.logger.debug("Fail releasing locks=
from versioning engine", t);
}
}
@@ -1088,9 +1087,9 @@
* @param response
*/
protected void getRevisionsListFormData(ActionMapping mapping,
- ActionForm form,
- HttpServletRequest request,
- HttpServletResponse response)
+ ActionForm form,
+ HttpServletRequest request,
+ HttpServletResponse response)
throws JahiaSessionExpirationException {
=
ContentVersioningViewHelper versViewHelper =3D
@@ -1101,7 +1100,7 @@
versViewHelper.getFromRevisionDateCalendar().update(engineCommonDa=
ta.getParamBean());
versViewHelper.getToRevisionDateCalendar().update(engineCommonData=
.getParamBean());
=
- if ( versViewHelper.isRestoringPage() ){
+ if (versViewHelper.isRestoringPage()) {
// Choosed Revision entry
String revisionEntryParam =3D request.getParameter("revisionEn=
trySet");
String useRevisionEntryParam =3D request.getParameter("useRevi=
sionEntry");
@@ -1112,12 +1111,12 @@
versViewHelper.getRestoreDateCalendar().setDateLong(ne=
w Long(revisionEntrySet.getVersionID() * 1000L));
}
}
- } else if ( versViewHelper.isRestoringContainer() ){
+ } else if (versViewHelper.isRestoringContainer()) {
String revisionEntryParam =3D request.getParameter("revisionEn=
trySetToUse");
RevisionEntrySet revisionEntrySet =3D null;
- if ( versViewHelper.getContentTreeRevisionsVisitor() !=3D null=
){
+ if (versViewHelper.getContentTreeRevisionsVisitor() !=3D null)=
{
revisionEntrySet =3D getContainerRevisionEntrySet(revision=
EntryParam,
- versViewHelper.getContentTreeRevisionsVisitor().getRev=
isions());
+ versViewHelper.getContentTreeRevisionsVisitor().ge=
tRevisions());
}
if (revisionEntrySet !=3D null) {
versViewHelper.setRevisionEntrySet(revisionEntrySet);
@@ -1136,13 +1135,13 @@
=
// display all revisions of not
paramVal =3D request.getParameter("displayAllRevisions");
- versViewHelper.setDisplayAllRevisions( !"0".equals(paramVal) );
+ versViewHelper.setDisplayAllRevisions(!"0".equals(paramVal));
=
// Choosed page level
paramVal =3D request.getParameter("level");
if (paramVal !=3D null) {
try {
- ((PagesVersioningViewHelper)versViewHelper).setPageLevel(I=
nteger.parseInt(paramVal));
+ ((PagesVersioningViewHelper) versViewHelper).setPageLevel(=
Integer.parseInt(paramVal));
} catch (Throwable t) {
}
}
@@ -1182,13 +1181,13 @@
* @param response
*/
protected void getSiteMapFormData(ActionMapping mapping,
- ActionForm form,
- HttpServletRequest request,
- HttpServletResponse response) {
+ ActionForm form,
+ HttpServletRequest request,
+ HttpServletResponse response) {
=
try {
PagesVersioningViewHelper pagesVersViewHelper =3D
- (PagesVersioningViewHelper)request.getAttribute(JahiaE=
ngineViewHelper.ENGINE_VIEW_HELPER);
+ (PagesVersioningViewHelper) request.getAttribute(Jahia=
EngineViewHelper.ENGINE_VIEW_HELPER);
JahiaEngineCommonData engineCommonData =3D (JahiaEngineCommonD=
ata)
request.getAttribute(JahiaEngineCommonData.JAHIA_ENGIN=
E_COMMON_DATA);
ProcessingContext jParams =3D engineCommonData.getParamBean();
@@ -1225,14 +1224,15 @@
* @param removeMoreRecentActive
* @param activeRestoredPages
* @throws org.jahia.exceptions.JahiaException
+ *
*/
protected void pagesRestore(ProcessingContext jParams,
- HttpServletRequest request,
- HashMap pagesToRestore,
- JahiaUser user,
- long restoreDate,
- boolean removeMoreRecentActive,
- boolean activeRestoredPages) throws JahiaExc=
eption {
+ HttpServletRequest request,
+ HashMap pagesToRestore,
+ JahiaUser user,
+ long restoreDate,
+ boolean removeMoreRecentActive,
+ boolean activeRestoredPages) throws JahiaE=
xception {
=
PagesVersioningViewHelper pagesVersViewHelper =3D
(PagesVersioningViewHelper) request.getAttribute(JahiaEngi=
neViewHelper.ENGINE_VIEW_HELPER);
@@ -1303,7 +1303,7 @@
//use the closest entry state before the delete da=
te
//entryState =3D contentPage.getClosestVersionedEn=
tryState(entryState,true);
entryState =3D new ContentObjectEntryState(EntryLo=
adRequest.VERSIONED_WORKFLOW_STATE,
- (deleteVersionID), lang);
+ (deleteVersionID), lang);
//use the closest entry state before the delete da=
te
//entryState =3D contentPage.getClosestVersionedEn=
tryState(entryState,true);
}
@@ -1360,10 +1360,11 @@
* @param request
* @param pagesToRestore key =3D pageID, value =3D ArrayList of lang c=
odes
* @throws org.jahia.exceptions.JahiaException
+ *
*/
protected void pagesUndoStaging(ProcessingContext jParams,
- HttpServletRequest request,
- HashMap pagesToRestore) throws JahiaExce=
ption {
+ HttpServletRequest request,
+ HashMap pagesToRestore) throws JahiaEx=
ception {
=
PagesVersioningViewHelper pagesVersViewHelper =3D
(PagesVersioningViewHelper) request.getAttribute(JahiaEngi=
neViewHelper.ENGINE_VIEW_HELPER);
@@ -1415,16 +1416,17 @@
* @param jParams
* @param request
* @throws org.jahia.exceptions.JahiaException
+ *
*/
- protected void containerUndoStaging( ProcessingContext jParams,
+ protected void containerUndoStaging(ProcessingContext jParams,
HttpServletRequest request) throws=
JahiaException {
=
ContentVersioningViewHelper versViewHelper =3D
- (ContentVersioningViewHelper) request.getAttribute(JahiaEngine=
ViewHelper.ENGINE_VIEW_HELPER);
+ (ContentVersioningViewHelper) request.getAttribute(JahiaEn=
gineViewHelper.ENGINE_VIEW_HELPER);
EntryLoadRequest loadRequest =3D (EntryLoadRequest) jParams.getEnt=
ryLoadRequest().clone();
loadRequest.setWithMarkedForDeletion(true);
UndoStagingContentTreeVisitor visitor =3D new UndoStagingContentTr=
eeVisitor(versViewHelper.getContentObject(),
- jParams.getUser(), loadRequest, jParams.getOperationMode(), jP=
arams);
+ jParams.getUser(), loadRequest, jParams.getOperationMode()=
, jParams);
visitor.undoStaging();
}
=
@@ -1435,7 +1437,7 @@
*/
protected void containerRestore(ProcessingContext jParams,
HttpServletRequest request)
- throws JahiaException {
+ throws JahiaException {
=
ContentVersioningViewHelper versViewHelper =3D
(ContentVersioningViewHelper) request.getAttribute(JahiaEn=
gineViewHelper.ENGINE_VIEW_HELPER);
@@ -1443,22 +1445,21 @@
Set langs =3D new HashSet();
Locale loc =3D null;
Iterator iterator =3D versViewHelper.getLanguagesToRestore().itera=
tor();
- while ( iterator.hasNext() ){
- loc =3D (Locale)iterator.next();
+ while (iterator.hasNext()) {
+ loc =3D (Locale) iterator.next();
langs.add(loc.toString());
}
ContentObjectEntryState entryState =3D new ContentObjectEntryState=
(EntryLoadRequest.VERSIONED_WORKFLOW_STATE,
- (int) (versViewHelper.getRestoreDateCalendar().getDateLong().l=
ongValue() / 1000), loc.toString());
+ (int) (versViewHelper.getRestoreDateCalendar().getDateLong=
().longValue() / 1000), loc.toString());
RestoreVersionStateModificationContext stateModificationContext =
=3D
- new RestoreVersionStateModificationContext(contentObject.getOb=
jectKey(), langs, entryState);
- stateModificationContext.pushAllLanguages(true); =
+ new RestoreVersionStateModificationContext(contentObject.g=
etObjectKey(), langs, entryState);
+ stateModificationContext.pushAllLanguages(true);
=
contentObject.restoreVersion(jParams.getUser(), ProcessingContext.=
EDIT, entryState,
true, stateModificationContext);
}
=
/**
- *
* @param mapping
* @param form
* @param request
@@ -1468,19 +1469,19 @@
public ActionForward containerVersionCompare(ActionMapping mapping,
ActionForm form,
HttpServletRequest reques=
t,
- HttpServletResponse respo=
nse )
- throws JahiaException {
+ HttpServletResponse respo=
nse)
+ throws JahiaException {
=
ActionForward forward =3D mapping.findForward("containerVersionCom=
pare");
ActionErrors errors =3D new ActionErrors();
ContainerVersioningViewHelper versViewHelper =3D null;
JahiaEngineCommonData engineCommonData =3D null;
try {
- request.setAttribute("versioningAllowReadAccess",Boolean.TRUE);
+ request.setAttribute("versioningAllowReadAccess", Boolean.TRUE=
);
init(mapping, request);
versViewHelper =3D (ContainerVersioningViewHelper) request.get=
Attribute(JahiaEngineViewHelper.ENGINE_VIEW_HELPER);
- if ( versViewHelper.getContentTreeRevisionsVisitor() =3D=3D nu=
ll ){
- loadRevisions(mapping,form,request,response);
+ if (versViewHelper.getContentTreeRevisionsVisitor() =3D=3D nul=
l) {
+ loadRevisions(mapping, form, request, response);
}
engineCommonData =3D (JahiaEngineCommonData)
request.getAttribute(JahiaEngineCommonData.JAHIA_ENGIN=
E_COMMON_DATA);
@@ -1489,14 +1490,14 @@
HashMap engineMap =3D (HashMap) request.getAttribute("jahia_se=
ssion_engineMap");
String languageCode =3D engineCommonData.getParamBean().getLoc=
ale().toString();
EngineLanguageHelper elh =3D null;
- if ( engineMap !=3D null ){
+ if (engineMap !=3D null) {
elh =3D (EngineLanguageHelper)
- engineMap.get(JahiaEngine.ENGINE_LANGUAGE_HELPER);
- if ( elh !=3D null ){
+ engineMap.get(JahiaEngine.ENGINE_LANGUAGE_HELPER);
+ if (elh !=3D null) {
languageCode =3D elh.getCurrentLanguageCode();
}
}
- versViewHelper.handlebuilFieldVersionCompares(engineCommonData=
,request,version1,version2,languageCode);
+ versViewHelper.handlebuilFieldVersionCompares(engineCommonData=
, request, version1, version2, languageCode);
} catch (Throwable t) {
JahiaErrorDisplay.DisplayException(request, response,
super.getServlet().getServletContext(), t);
@@ -1507,7 +1508,7 @@
request.setAttribute("engineView", "containerVersionCompare");
return continueForward(mapping, request, errors, forward);
}
- =
+
/**
* Forward to errors if any or to continueForward
*
@@ -1539,6 +1540,7 @@
* @param params
* @return
* @throws org.jahia.exceptions.JahiaException
+ *
*/
public static String composeActionURL(ContentObject contentObject,
ProcessingContext jParams,
@@ -1628,7 +1630,7 @@
strToken.nextToken();
v =3D strToken.nextToken();
revisionEntrySet =3D new PageRevisionEntrySet(Integer.pars=
eInt(v),
- ObjectKey.getInstance(objType + "_" + objI=
D));
+ ObjectKey.getInstance(objType + "_" + objID));
}
} catch (Throwable t) {
//t.printStackTrace();
@@ -1639,18 +1641,17 @@
/**
* @param revisionEntrySetKey
* @param revisionsList
- * @return
*/
protected RevisionEntrySet getContainerRevisionEntrySet(String revisio=
nEntrySetKey, List revisionsList) {
=
- if ( revisionsList =3D=3D null || revisionsList.size()=3D=3D0 ){
+ if (revisionsList =3D=3D null || revisionsList.size() =3D=3D 0) {
return null;
}
Iterator iterator =3D revisionsList.iterator();
RevisionEntrySet revSet =3D null;
- while ( iterator.hasNext() ){
- revSet =3D (RevisionEntrySet)iterator.next();
- if ( revSet.toString().equals(revisionEntrySetKey) ){
+ while (iterator.hasNext()) {
+ revSet =3D (RevisionEntrySet) iterator.next();
+ if (revSet.toString().equals(revisionEntrySetKey)) {
return revSet;
}
}
@@ -1665,17 +1666,18 @@
* @param stateModificationContext
* @param result
* @throws org.jahia.exceptions.JahiaException
+ *
*/
protected void removeMoreRecentActivePages(ContentPage contentPage,
- JahiaUser user,
- String operationMode,
- ContentObjectEntryState entry=
State,
- StateModificationContext stat=
eModificationContext,
- RestoreVersionTestResults res=
ult,
- HashMap pagesToRestore,
- ArrayList selectedPages,
- ArrayList processedPages,
- ProcessingContext jParams) th=
rows JahiaException {
+ JahiaUser user,
+ String operationMode,
+ ContentObjectEntryState ent=
ryState,
+ StateModificationContext st=
ateModificationContext,
+ RestoreVersionTestResults r=
esult,
+ HashMap pagesToRestore,
+ ArrayList selectedPages,
+ ArrayList processedPages,
+ ProcessingContext jParams) =
throws JahiaException {
Enumeration childs =3D contentPage.getChildPages(jParams);
while (childs.hasMoreElements()) {
JahiaPage child =3D (JahiaPage) childs.nextElement();
@@ -1759,6 +1761,7 @@
* @return boolean true if all the sub pages could be locked, false
* otherwise.
* @throws org.jahia.exceptions.JahiaException
+ *
*/
protected boolean acquireTreeLocks(ProcessingContext jParams, ActionMe=
ssages messages)
throws JahiaException {
@@ -1840,7 +1843,22 @@
protected void releaseTreeLocks(ProcessingContext jParams)
throws JahiaException {
//@todo: have locks optimized or remove it
- return;
+ if (jParams.settings().areLocksActivated()) {
+ final Set locks =3D (Set) jParams.getSessionState().getAttribu=
te("VersionningLocks");
+ if (locks !=3D null) {
+ final LockService lockRegistry =3D ServicesRegistry.getIns=
tance().getLockService();
+ final JahiaUser user =3D jParams.getUser();
+ final HtmlCache htmlCache =3D ServicesRegistry.getInstance=
().getCacheService().getHtmlCacheInstance();
+ synchronized (locks) {
+ final Iterator iterator =3D locks.iterator();
+ while (iterator.hasNext()) {
+ final LockKey lockKey =3D (LockKey) iterator.next(=
);
+ lockRegistry.release(lockKey, user, user.getUserKe=
y());
+ htmlCache.invalidatePageEntries(Integer.toString(l=
ockKey.getPageID()));
+ }
+ }
+ }
+ }
/*
if (jParams.settings().areLocksActivated()) {
ArrayList acquiredPageLocks =3D (ArrayList) jParams.getSession=
State().getAttribute(ContentVersioningAction.SESSION_VERSIONING_LOCK_LIST);
@@ -1866,7 +1884,7 @@
=
protected void releaseActionLock(ProcessingContext jParams)
throws JahiaException {
- if (jParams.settings().areLocksActivated()) {
+ if (jParams.settings().areLocksActivated()) {
HtmlCache htmlCache =3D ServicesRegistry.getInstance().getCach=
eService().getHtmlCacheInstance();
LockService lockRegistry =3D ServicesRegistry.getInstance().ge=
tLockService();
LockKey lockKey =3D LockKey.composeLockKey(LockKey.UPDATE_PAGE=
_TYPE,
@@ -1876,10 +1894,10 @@
htmlCache.invalidatePageEntries(Integer.toString(jParams.getPa=
geID()));
=
HashMap engineMap =3D (HashMap) jParams.getSessionState().getA=
ttribute("jahia_session_engineMap");
- if ( engineMap !=3D null ){
- lockKey =3D (LockKey)engineMap.get("lock");
- if ( lockKey !=3D null ){
- lockRegistry.release(lockKey,user,user.getUserKey());
+ if (engineMap !=3D null) {
+ lockKey =3D (LockKey) engineMap.get("lock");
+ if (lockKey !=3D null) {
+ lockRegistry.release(lockKey, user, user.getUserKey());
}
}
}
@@ -1887,16 +1905,16 @@
// #endif
=
protected CalendarHandler getCalHandler(String calIdentifier,
- long initialDate,
- ProcessingContext jParams){
+ long initialDate,
+ ProcessingContext jParams) {
Long date =3D new Long(initialDate);
CalendarHandler calHandler =3D
new CalendarHandler(jParams.settings().getJahiaEnginesHttp=
Path(),
- calIdentifier,
- ContentVersioningAction.DATE_FORMAT,
- date,
- jParams.getLocale(),
- new Long(0));
+ calIdentifier,
+ ContentVersioningAction.DATE_FORMAT,
+ date,
+ jParams.getLocale(),
+ new Long(0));
return calHandler;
}
=
Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/webapp/views/engines/engine=
s_default_layout.jsp
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/webapp/views/engines/engines_default_layout.jsp&rev=3D1769=
2&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/views/engines/engines_defa=
ult_layout.jsp (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/webapp/views/engines/engines_defa=
ult_layout.jsp Thu Jun 21 16:09:23 2007
@@ -217,14 +217,26 @@
function showUserShell() {
}
=
-function closeTheWindow() {
- if (submittedCount =3D=3D 0) {
- sendFormCancel();
- setTimeout("void(0)", 2000);
- } else {
- closeEngineWin();
+ function closeTheWindow() {
+ var last =3D "<%=3DtheScreen%>";
+ var src =3D "<%=3DjspSource%>";
+
+ if (src =3D=3D "apply" || src =3D=3D "delete_container") return;
+ //alert (submittedCount + "-" + last + "-" + src);
+ if (submittedCount =3D=3D 0) {
+ if (last !=3D "save" && last !=3D "cancel" && last !=3D "showR=
eport" && src !=3D "apply" &&
+ src !=3D "close" && src !=3D "lock") {
+ sendFormCancel();
+ //alert ("sendFormCancel" + "-" + last + "-" + src);
+ }
+ if (src =3D=3D "close") {
+ // Do refresh opener by setting argument to "yes"
+ CloseJahiaWindow("yes");
+ } else {
+ CloseJahiaWindow();
+ }
+ }
}
-}
=
function getElementsByClassName(el, clsName)
{
_______________________________________________
cvs_list mailing list
[email protected]
http://lists.jahia.org/cgi-bin/mailman/listinfo/cvs_list