You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lenya.apache.org by an...@apache.org on 2006/11/29 10:52:28 UTC

svn commit: r480502 - /lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/MoveSubsite.java

Author: andreas
Date: Wed Nov 29 01:52:28 2006
New Revision: 480502

URL: http://svn.apache.org/viewvc?view=rev&rev=480502
Log:
Go to parent page after delete/archive

Modified:
    lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/MoveSubsite.java

Modified: lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/MoveSubsite.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/MoveSubsite.java?view=diff&rev=480502&r1=480501&r2=480502
==============================================================================
--- lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/MoveSubsite.java (original)
+++ lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/MoveSubsite.java Wed Nov 29 01:52:28 2006
@@ -30,6 +30,7 @@
 import org.apache.lenya.cms.publication.PublicationException;
 import org.apache.lenya.cms.repository.Node;
 import org.apache.lenya.cms.site.NodeSet;
+import org.apache.lenya.cms.site.SiteNode;
 import org.apache.lenya.cms.site.SiteStructure;
 import org.apache.lenya.cms.site.SiteUtil;
 import org.apache.lenya.cms.usecase.DocumentUsecase;
@@ -76,13 +77,10 @@
                     Document liveVersion = docs[i].getAreaVersion(Publication.LIVE_AREA);
                     addErrorMessage("delete-doc-live", new String[] { liveVersion.toString() });
                 }
-                if (!WorkflowUtil.canInvoke(this.manager,
-                        getSession(),
-                        getLogger(),
-                        docs[i],
+                if (!WorkflowUtil.canInvoke(this.manager, getSession(), getLogger(), docs[i],
                         getEvent())) {
-                    addErrorMessage("The workflow event [" + getEvent() + "] cannot be invoked on document [" + docs[i]
-                            + "].");
+                    addErrorMessage("The workflow event [" + getEvent()
+                            + "] cannot be invoked on document [" + docs[i] + "].");
                 }
             }
         }
@@ -94,8 +92,8 @@
     protected abstract String getEvent();
 
     /**
-     * Lock all source documents and the site structure repository nodes because changes to the site
-     * structure would compromise the operation.
+     * Lock all source documents and the site structure repository nodes because
+     * changes to the site structure would compromise the operation.
      */
     protected Node[] getNodesToLock() throws UsecaseException {
         try {
@@ -104,8 +102,7 @@
 
             SiteStructure sourceSite = getSourceDocument().area().getSite();
             SiteStructure targetSite = getSourceDocument().getPublication()
-                    .getArea(getTargetArea())
-                    .getSite();
+                    .getArea(getTargetArea()).getSite();
 
             nodes.add(sourceSite.getRepositoryNode());
             nodes.add(targetSite.getRepositoryNode());
@@ -137,11 +134,7 @@
         targetLoc = SiteUtil.getAvailableLocator(this.manager, getDocumentFactory(), targetLoc);
 
         for (int i = 0; i < sources.length; i++) {
-            WorkflowUtil.invoke(this.manager,
-                    getSession(),
-                    getLogger(),
-                    sources[i],
-                    getEvent(),
+            WorkflowUtil.invoke(this.manager, getSession(), getLogger(), sources[i], getEvent(),
                     true);
         }
 
@@ -160,4 +153,31 @@
 
     }
 
+    public String getTargetURL(boolean success) {
+        if (getTargetArea().equals(Publication.AUTHORING_AREA)) {
+            return super.getTargetURL(success);
+        }
+        
+        String url = null;
+        if (!success) {
+            url = getSourceURL();
+        } else {
+            try {
+                Document document = getTargetDocument(success);
+                SiteNode node = document.getLink().getNode();
+                if (node.isTopLevel()) {
+                    url = document.getPublication().getId() + "/" + document.getArea() + "/";
+                } else {
+                    SiteNode parent = node.getParent();
+                    SiteNode authoringParent = document.getPublication().getArea(
+                            Publication.AUTHORING_AREA).getSite().getNode(parent.getPath());
+                    String language = authoringParent.getLanguages()[0];
+                    url = authoringParent.getLink(language).getDocument().getCanonicalWebappURL();
+                }
+            } catch (Exception e) {
+                throw new RuntimeException(e);
+            }
+        }
+        return url + getExitQueryString();
+    }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@lenya.apache.org
For additional commands, e-mail: commits-help@lenya.apache.org