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 2005/03/01 18:55:43 UTC

svn commit: r155806 - in lenya/trunk/src: java/org/apache/lenya/cms/site/usecases/ webapp/WEB-INF/ webapp/lenya/pubs/default/config/menus/ webapp/lenya/usecases/site/

Author: andreas
Date: Tue Mar  1 09:55:42 2005
New Revision: 155806

URL: http://svn.apache.org/viewcvs?view=rev&rev=155806
Log:
ported delete to usecase framework

Added:
    lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Delete.java
Modified:
    lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/DeleteLanguage.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/usecases/site/delete.jx
    lenya/trunk/src/webapp/lenya/usecases/site/deleteLanguage.jx

Added: lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Delete.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Delete.java?view=auto&rev=155806
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Delete.java (added)
+++ lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Delete.java Tue Mar  1 09:55:42 2005
@@ -0,0 +1,63 @@
+/*
+ * Copyright  1999-2004 The Apache Software Foundation
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+package org.apache.lenya.cms.site.usecases;
+
+import org.apache.lenya.cms.publication.Document;
+import org.apache.lenya.cms.publication.DocumentIdentityMap;
+import org.apache.lenya.cms.publication.Publication;
+import org.apache.lenya.cms.publication.util.DocumentHelper;
+import org.apache.lenya.cms.usecase.DocumentUsecase;
+
+/**
+ * Delete a document and all its descendants, including all language versions.
+ * The documents are moved to the trash.
+ * 
+ * @version $Id:$
+ */
+public class Delete extends DocumentUsecase {
+
+    /**
+     * @see org.apache.lenya.cms.usecase.AbstractUsecase#doCheckPreconditions()
+     */
+    protected void doCheckPreconditions() throws Exception {
+        super.doCheckPreconditions();
+        if (!getErrorMessages().isEmpty()) {
+            return;
+        }
+
+        if (!getSourceDocument().getArea().equals(Publication.AUTHORING_AREA)) {
+            addErrorMessage("This usecase can only be invoked in the authoring area!");
+        }
+    }
+
+    /**
+     * @see org.apache.lenya.cms.usecase.AbstractUsecase#doExecute()
+     */
+    protected void doExecute() throws Exception {
+        super.doExecute();
+
+        Document source = getSourceDocument();
+        DocumentIdentityMap identityMap = source.getIdentityMap();
+
+        Document target = identityMap.getFactory().getAreaVersion(source, Publication.TRASH_AREA);
+        getDocumentManager().moveAll(source, target);
+
+        Document parent = source.getIdentityMap().getFactory().getParent(source, "/index");
+        setTargetDocument(DocumentHelper.getExistingLanguageVersion(parent));
+    }
+
+}
\ No newline at end of file

Modified: lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/DeleteLanguage.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/DeleteLanguage.java?view=diff&r1=155805&r2=155806
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/DeleteLanguage.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/DeleteLanguage.java Tue Mar  1 09:55:42 2005
@@ -19,7 +19,6 @@
 import org.apache.lenya.cms.publication.Document;
 import org.apache.lenya.cms.publication.Publication;
 import org.apache.lenya.cms.publication.util.DocumentHelper;
-import org.apache.lenya.cms.site.SiteManager;
 import org.apache.lenya.cms.usecase.DocumentUsecase;
 
 /**
@@ -52,26 +51,9 @@
         super.doExecute();
 
         Document document = getSourceDocument();
-        SiteManager _manager = document.getPublication().getSiteManager(document.getIdentityMap());
-        _manager.delete(document);
-
-        document.getFile().delete();
-
-        if (hasWorkflow(document)) {
-            getWorkflowInstance(document).getHistory().delete();
-        }
+        getDocumentManager().deleteDocument(document);
 
         setTargetDocument(DocumentHelper.getExistingLanguageVersion(document));
     }
 
-    /**
-     * @see org.apache.lenya.cms.usecase.AbstractUsecase#initParameters()
-     */
-    protected void initParameters() {
-        super.initParameters();
-        if (getSourceDocument() != null) {
-            setParameter("documentId", getSourceDocument().getId());
-            setParameter("language", getSourceDocument().getLanguage());
-        }
-    }
 }

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?view=diff&r1=155805&r2=155806
==============================================================================
--- lenya/trunk/src/webapp/WEB-INF/cocoon-xconf.xsl (original)
+++ lenya/trunk/src/webapp/WEB-INF/cocoon-xconf.xsl Tue Mar  1 09:55:42 2005
@@ -258,6 +258,7 @@
     
     <component-instance name="site.create" logger="lenya.site" class="org.apache.lenya.cms.site.usecases.CreateDocument"/>
     <component-instance name="site.createLanguage" logger="lenya.site" class="org.apache.lenya.cms.site.usecases.CreateLanguage"/>
+    <component-instance name="site.delete" logger="lenya.site" class="org.apache.lenya.cms.site.usecases.Delete"/>
     <component-instance name="site.deleteLanguage" logger="lenya.site" class="org.apache.lenya.cms.site.usecases.DeleteLanguage"/>
     <component-instance name="site.changeLabel" logger="lenya.site" class="org.apache.lenya.cms.site.usecases.ChangeLabel"/>
     <component-instance name="site.changeNodeID" logger="lenya.site" class="org.apache.lenya.cms.site.usecases.ChangeNodeID"/>

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?view=diff&r1=155805&r2=155806
==============================================================================
--- lenya/trunk/src/webapp/lenya/pubs/default/config/menus/generic.xsp (original)
+++ lenya/trunk/src/webapp/lenya/pubs/default/config/menus/generic.xsp Tue Mar  1 09:55:42 2005
@@ -109,8 +109,8 @@
                
                  if (isDocument &amp;&amp;
                    !"/index".equals(<input:get-attribute module="page-envelope" as="string" name="document-id"/>)) {
-            <item wf:event="delete" uc:usecase="delete" uc:step="showscreen" href="?"><i18n:text>Delete</i18n:text></item>
-            <item wf:event="archive" uc:usecase="archive" uc:step="showscreen" href="?"><i18n:text>Archive</i18n:text></item>
+            <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>

Modified: lenya/trunk/src/webapp/lenya/usecases/site/delete.jx
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/webapp/lenya/usecases/site/delete.jx?view=diff&r1=155805&r2=155806
==============================================================================
--- lenya/trunk/src/webapp/lenya/usecases/site/delete.jx (original)
+++ lenya/trunk/src/webapp/lenya/usecases/site/delete.jx Tue Mar  1 09:55:42 2005
@@ -28,22 +28,39 @@
       <div class="lenya-box-title">
         <i18n:translate>
           <i18n:text key="delete-doc"/>
-          <i18n:param><q><jx:out value="${usecase.getParameter('documentid')}"/></q></i18n:param>
+          <i18n:param><q><jx:out value="${usecase.getParameter('document').getId()}"/></q></i18n:param>
         </i18n:translate>
       </div>
       <div class="lenya-box-body">
         <form method="get">
-          
-          <input type="hidden" name="lenya.event" value="{$lenya.event}"/>
-          <input type="hidden" name="lenya.usecase" value="delete"/>
-          <input type="hidden" name="parenturl" value="{parent-url}"/>
-          
+          <input type="hidden" name="lenya.continuation" value="${continuation.id}"/>
+          <input type="hidden" name="lenya.usecase" value="${request.getParameter('lenya.usecase')}"/>
           <table class="lenya-table-noborder">
             <tr>
               <td>
+                <ul>
+                  <jx:forEach var="message" items="${usecase.getErrorMessages()}">
+                    <li>
+                      <i18n:text>
+                        <jx:out value="${message}"/>
+                      </i18n:text>
+                    </li>
+                  </jx:forEach>
+                  <jx:forEach var="message" items="${usecase.getInfoMessages()}">
+                    <li>
+                      <i18n:text>
+                        <jx:out value="${message}"/>
+                      </i18n:text>
+                    </li>
+                  </jx:forEach>
+                </ul>
+              </td>
+            </tr>
+            <tr>
+              <td>
                 <i18n:translate>
                   <i18n:text key="delete-language-versions?"/>
-                  <i18n:param><strong><jx:out value="${usecase.getParameter('documentid')}"/></strong></i18n:param>
+                  <i18n:param><strong><jx:out value="${usecase.getParameter('document').getId()}"/></strong></i18n:param>
                 </i18n:translate><br/><br/>
               </td>
             </tr>
@@ -61,9 +78,9 @@
             </tr>
             <tr>
               <td>
-                <br/>
-                <input i18n:attr="value" type="submit" value="Delete"/>&#160;
-                <input i18n:attr="value" type="button" onClick="location.href='{$request-uri}';" value="Cancel"/>
+                <input i18n:attr="value" type="submit" name="submit" value="Delete"/>
+                &#160;
+                <input i18n:attr="value" type="submit" name="cancel" value="Cancel"/>
               </td>
             </tr>
           </table>

Modified: lenya/trunk/src/webapp/lenya/usecases/site/deleteLanguage.jx
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/webapp/lenya/usecases/site/deleteLanguage.jx?view=diff&r1=155805&r2=155806
==============================================================================
--- lenya/trunk/src/webapp/lenya/usecases/site/deleteLanguage.jx (original)
+++ lenya/trunk/src/webapp/lenya/usecases/site/deleteLanguage.jx Tue Mar  1 09:55:42 2005
@@ -57,14 +57,14 @@
                 <td class="lenya-entry-caption">
                   <i18n:text>Document ID</i18n:text>: </td>
                 <td>
-                  <jx:out value="${usecase.getParameter('documentId')}"/>
+                  <jx:out value="${usecase.getParameter('document').getId()}"/>
                 </td>
               </tr>
               <tr>
                 <td class="lenya-entry-caption">
                   <i18n:text>Language</i18n:text>*: </td>
                 <td>
-                  <jx:out value="${usecase.getParameter('language')}"/>
+                  <jx:out value="${usecase.getParameter('document').getLanguage()}"/>
                 </td>
               </tr>
               <tr>



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