logo       
Google Custom Search
    AddThis Social Bookmark Button

svn commit: r219565 - in /lenya/trunk/src: java/org/apache/lenya/cms/site/ : msg#00078

Subject: svn commit: r219565 - in /lenya/trunk/src: java/org/apache/lenya/cms/site/ java/org/apache/lenya/cms/site/usecases/ webapp/WEB-INF/ webapp/lenya/pubs/default/config/ webapp/lenya/pubs/default/config/menus/ webapp/lenya/usecases/site/
Author: andreas
Date: Mon Jul 18 13:51:28 2005
New Revision: 219565

URL: http://svn.apache.org/viewcvs?rev=219565&view=rev
Log:
Fixed delete and restore usecases

Modified:
    lenya/trunk/src/java/org/apache/lenya/cms/site/SiteUtil.java
    lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/MoveSubsite.java
    lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Restore.java
    lenya/trunk/src/webapp/WEB-INF/cocoon-xconf.xsl
    lenya/trunk/src/webapp/lenya/pubs/default/config/menus/generic.xsp
    lenya/trunk/src/webapp/lenya/pubs/default/config/usecases.xconf
    lenya/trunk/src/webapp/lenya/usecases/site/restore.jx

Modified: lenya/trunk/src/java/org/apache/lenya/cms/site/SiteUtil.java
URL: 
http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/site/SiteUtil.java?rev=219565&r1=219564&r2=219565&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/site/SiteUtil.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/site/SiteUtil.java Mon Jul 18 
13:51:28 2005
@@ -227,7 +227,7 @@
             DocumentSet subSite = SiteUtil.getSubSite(manager, source);
             Document[] docs = subSite.getDocuments();
             for (int i = 0; i < docs.length; i++) {
-                Document target = SiteUtil.getTarget(siteManager, docs[i], 
targetArea, mode);
+                Document target = SiteUtil.getTransferedDocument(siteManager, 
docs[i], targetArea, mode);
                 if (target != null) {
                     set.add(target);
                 }
@@ -246,7 +246,7 @@
         return set;
     }
 
-    protected static Document getTarget(SiteManager siteManager, Document 
source,
+    public static Document getTransferedDocument(SiteManager siteManager, 
Document source,
             String targetArea, int mode) throws SiteException, 
DocumentException,
             DocumentBuildException {
         Document target = source.getIdentityMap().getAreaVersion(source, 
targetArea);

Modified: 
lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/MoveSubsite.java
URL: 
http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/MoveSubsite.java?rev=219565&r1=219564&r2=219565&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/MoveSubsite.java 
(original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/MoveSubsite.java 
Mon Jul 18 13:51:28 2005
@@ -20,11 +20,20 @@
 import java.util.Arrays;
 import java.util.List;
 
+import org.apache.avalon.framework.service.ServiceException;
+import org.apache.avalon.framework.service.ServiceSelector;
+import org.apache.lenya.cms.metadata.LenyaMetaData;
 import org.apache.lenya.cms.publication.Document;
+import org.apache.lenya.cms.publication.DocumentBuildException;
 import org.apache.lenya.cms.publication.DocumentIdentityMap;
 import org.apache.lenya.cms.publication.DocumentManager;
 import org.apache.lenya.cms.publication.Publication;
+import org.apache.lenya.cms.publication.util.DocumentHelper;
 import org.apache.lenya.cms.publication.util.DocumentSet;
+import org.apache.lenya.cms.site.Node;
+import org.apache.lenya.cms.site.NodeFactory;
+import org.apache.lenya.cms.site.SiteException;
+import org.apache.lenya.cms.site.SiteManager;
 import org.apache.lenya.cms.site.SiteUtil;
 import org.apache.lenya.cms.usecase.DocumentUsecase;
 import org.apache.lenya.cms.usecase.UsecaseException;
@@ -109,6 +118,7 @@
                     doc,
                     getTargetArea(),
                     SiteUtil.MODE_CHANGE_ID);
+            targets.addAll(getTargetDocsToCopy());
             docs = targets.getDocuments();
             for (int i = 0; i < docs.length; i++) {
                 nodes.addAll(Arrays.asList(docs[i].getRepositoryNodes()));
@@ -130,15 +140,32 @@
 
         Document doc = getSourceDocument();
         DocumentSet sources = SiteUtil.getSubSite(this.manager, doc);
+        DocumentIdentityMap map = getDocumentIdentityMap();
 
         Document target = doc.getIdentityMap().getAreaVersion(doc, 
getTargetArea());
         target = SiteUtil.getAvailableDocument(this.manager, target);
 
+        DocumentSet docsToCopy = getTargetDocsToCopy();
+
         DocumentManager documentManager = null;
         try {
+
             WorkflowUtil.invoke(this.manager, getLogger(), sources, 
getEvent(), true);
 
             documentManager = (DocumentManager) 
this.manager.lookup(DocumentManager.ROLE);
+
+            SiteUtil.sortAscending(this.manager, docsToCopy);
+            Document[] targetDocs = docsToCopy.getDocuments();
+            for (int i = 0; i < targetDocs.length; i++) {
+                Document sourceDoc = map.getAreaVersion(targetDocs[i], 
doc.getArea());
+                Document existingSourceDoc = 
DocumentHelper.getExistingLanguageVersion(sourceDoc,
+                        doc.getLanguage());
+                Document targetDoc = map.getAreaVersion(existingSourceDoc, 
getTargetArea());
+                documentManager.copy(existingSourceDoc, targetDoc);
+                LenyaMetaData meta = 
targetDoc.getMetaDataManager().getLenyaMetaData();
+                meta.setValue(LenyaMetaData.);
+            }
+
             DocumentSet targets = SiteUtil.getTransferedSubSite(this.manager,
                     doc,
                     getTargetArea(),
@@ -155,4 +182,42 @@
 
     }
 
+    /**
+     * @return All live documents that are required by the moved documents and 
have to be copied.
+     * @throws ServiceException if an error occurs.
+     * @throws SiteException if an error occurs.
+     * @throws DocumentBuildException if an error occurs.
+     */
+    protected DocumentSet getTargetDocsToCopy() throws ServiceException, 
SiteException,
+            DocumentBuildException {
+        Document doc = getSourceDocument();
+        DocumentIdentityMap map = getDocumentIdentityMap();
+        DocumentSet docsToCopy = new DocumentSet();
+        ServiceSelector selector = null;
+        SiteManager siteManager = null;
+        try {
+            selector = (ServiceSelector) this.manager.lookup(SiteManager.ROLE 
+ "Selector");
+            siteManager = (SiteManager) 
selector.select(doc.getPublication().getSiteManagerHint());
+
+            Node node = NodeFactory.getNode(doc);
+            Node[] requiredNodes = siteManager.getRequiredResources(map, node);
+            for (int i = 0; i < requiredNodes.length; i++) {
+                Document targetDoc = 
map.get(getSourceDocument().getPublication(),
+                        getTargetArea(),
+                        requiredNodes[i].getDocumentId(),
+                        doc.getLanguage());
+                if (!siteManager.containsInAnyLanguage(targetDoc)) {
+                    docsToCopy.add(targetDoc);
+                }
+            }
+        } finally {
+            if (selector != null) {
+                if (siteManager != null) {
+                    selector.release(siteManager);
+                }
+                this.manager.release(selector);
+            }
+        }
+        return docsToCopy;
+    }
 }

Modified: lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Restore.java
URL: 
http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Restore.java?rev=219565&r1=219564&r2=219565&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Restore.java 
(original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Restore.java Mon 
Jul 18 13:51:28 2005
@@ -16,13 +16,34 @@
  */
 package org.apache.lenya.cms.site.usecases;
 
-import org.apache.lenya.cms.usecase.DocumentUsecase;
+import org.apache.lenya.cms.publication.Publication;
 
 /**
  * Restore usecase handler.
- *
+ * 
  * @version $Id:$
  */
-public class Restore extends DocumentUsecase {
+public class Restore extends MoveSubsite {
+
+    /**
+     * @see org.apache.lenya.cms.site.usecases.MoveSubsite#getSourceAreas()
+     */
+    protected String[] getSourceAreas() {
+        return new String[] { Publication.TRASH_AREA, Publication.ARCHIVE_AREA 
};
+    }
+
+    /**
+     * @see org.apache.lenya.cms.site.usecases.MoveSubsite#getTargetArea()
+     */
+    protected String getTargetArea() {
+        return Publication.AUTHORING_AREA;
+    }
+
+    /**
+     * @see org.apache.lenya.cms.site.usecases.MoveSubsite#getEvent()
+     */
+    protected String getEvent() {
+        return "restore";
+    }
 
 }

Modified: lenya/trunk/src/webapp/WEB-INF/cocoon-xconf.xsl
URL: 
http://svn.apache.org/viewcvs/lenya/trunk/src/webapp/WEB-INF/cocoon-xconf.xsl?rev=219565&r1=219564&r2=219565&view=diff
==============================================================================
--- lenya/trunk/src/webapp/WEB-INF/cocoon-xconf.xsl (original)
+++ lenya/trunk/src/webapp/WEB-INF/cocoon-xconf.xsl Mon Jul 18 13:51:28 2005
@@ -435,7 +435,7 @@
       <view template="site/archive"/>
     </component-instance>
     <component-instance name="site.restore" logger="lenya.site" 
class="org.apache.lenya.cms.site.usecases.Restore">
-      <view template="workflow/restore"/>
+      <view template="site/restore"/>
     </component-instance>
     
     <component-instance name="tab.acArchive" logger="lenya.site" 
class="org.apache.lenya.cms.ac.usecases.AccessControl">

Modified: lenya/trunk/src/webapp/lenya/pubs/default/config/menus/generic.xsp
URL: 
http://svn.apache.org/viewcvs/lenya/trunk/src/webapp/lenya/pubs/default/config/menus/generic.xsp?rev=219565&r1=219564&r2=219565&view=diff
==============================================================================
--- lenya/trunk/src/webapp/lenya/pubs/default/config/menus/generic.xsp 
(original)
+++ lenya/trunk/src/webapp/lenya/pubs/default/config/menus/generic.xsp Mon Jul 
18 13:51:28 2005
@@ -90,29 +90,9 @@
         <item uc:usecase="site.nudge" href="?direction=down"><i18n:text>Move 
Down</i18n:text></item>
       </block>
       <block authoring="false">
-        
-        <xsp:logic>
-               {
-               
-                 if (isDocument &amp;&amp;
-                   !"/index".equals(<input:get-attribute 
module="page-envelope" as="string" name="document-id"/>)) {
-            <item wf:event="delete" uc:usecase="site.delete" 
href="?"><i18n:text>Delete</i18n:text></item>
-            <item wf:event="archive" uc:usecase="site.archive" 
href="?"><i18n:text>Archive</i18n:text></item>
-                 }
-                 else {
-            <item><i18n:text>Delete</i18n:text></item>
-            <item><i18n:text>Archive</i18n:text></item>
-                 }
-               
-                if (isDocument &amp;&amp; (area.equals(Publication.TRASH_AREA) 
|| area.equals(Publication.ARCHIVE_AREA))) {
-            <item wf:event="restore" uc:usecase="restore" uc:step="showscreen" 
href="?">Restore</item>
-                }
-                else {
-            <item><i18n:text>Restore</i18n:text></item>
-                }
-              }
-        </xsp:logic>
-        
+        <item uc:usecase="site.delete" 
href="?"><i18n:text>Delete</i18n:text></item>
+        <item uc:usecase="site.archive" 
href="?"><i18n:text>Archive</i18n:text></item>
+        <item uc:usecase="site.restore" 
href="?"><i18n:text>Restore</i18n:text></item>
       </block>
         
       </menu>

Modified: lenya/trunk/src/webapp/lenya/pubs/default/config/usecases.xconf
URL: 
http://svn.apache.org/viewcvs/lenya/trunk/src/webapp/lenya/pubs/default/config/usecases.xconf?rev=219565&r1=219564&r2=219565&view=diff
==============================================================================
--- lenya/trunk/src/webapp/lenya/pubs/default/config/usecases.xconf (original)
+++ lenya/trunk/src/webapp/lenya/pubs/default/config/usecases.xconf Mon Jul 18 
13:51:28 2005
@@ -47,13 +47,13 @@
                         
class="org.apache.lenya.defaultpub.cms.usecases.Deactivate">
       <view template="workflow/deactivate"/>
     </component-instance>
-
+<!--
     <component-instance name="default/site.delete"
                         logger="lenya.usecases.delete"
                         
class="org.apache.lenya.defaultpub.cms.usecases.Delete">
       <view template="site/delete"/>
     </component-instance>
-
+-->
     <component-instance name="default/webdav.put"
                         logger="lenya.publication"
                         
class="org.apache.lenya.defaultpub.cms.usecases.webdav.Put">

Modified: lenya/trunk/src/webapp/lenya/usecases/site/restore.jx
URL: 
http://svn.apache.org/viewcvs/lenya/trunk/src/webapp/lenya/usecases/site/restore.jx?rev=219565&r1=219564&r2=219565&view=diff
==============================================================================
--- lenya/trunk/src/webapp/lenya/usecases/site/restore.jx (original)
+++ lenya/trunk/src/webapp/lenya/usecases/site/restore.jx Mon Jul 18 13:51:28 
2005
@@ -15,7 +15,7 @@
   limitations under the License.
 -->
 <!-- $Id$ -->
-<page:page xmlns:c="http://apache.org/cocoon/templates/jx/1.0"; 
+<page:page xmlns:jx="http://apache.org/cocoon/templates/jx/1.0"; 
            xmlns="http://www.w3.org/1999/xhtml"; 
            xmlns:i18n="http://apache.org/cocoon/i18n/2.1"; 
            xmlns:page="http://apache.org/cocoon/lenya/cms-page/1.0"; >
@@ -30,7 +30,7 @@
           <i18n:text key="restore-doc"/>
           <i18n:param>
             <q>
-              <jx:out value="${usecase.getParameter('documentid')}"/>
+              <jx:out value="${usecase.getParameter('document').getId()}"/>
             </q>
           </i18n:param>
         </i18n:translate>
@@ -43,7 +43,8 @@
           </jx:when>
           <jx:otherwise>
             <form method="get">
-              <input type="hidden" name="lenya.usecase" value="restore"/>
+              <input type="hidden" name="lenya.continuation" 
value="${continuation.id}"/>
+              <input type="hidden" name="lenya.usecase" 
value="${request.getParameter('lenya.usecase')}"/>
               <i18n:translate>
                 <i18n:text key="restore-doc?"/>
                 <i18n:param>
@@ -52,8 +53,9 @@
                   </strong>
                 </i18n:param>
               </i18n:translate>
-              <input type="submit" value="Restore"/>&#160;
-              <input type="button" onClick="location.href='${requesturi}';" 
value="Cancel"/>
+              <input i18n:attr="value" type="submit" name="submit" 
value="Restore"/>
+              &#160;
+              <input i18n:attr="value" type="submit" name="cancel" 
value="Cancel"/>
             </form>
           </jx:otherwise>
         </jx:choose>   



Try Searching:
servers, voip, java, networking, microsoft ...
<Prev in Thread] Current Thread [Next in Thread>