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/27 18:16:25 UTC

svn commit: r479693 - in /lenya/trunk/src: impl/java/org/apache/lenya/cms/publication/ java/org/apache/lenya/cms/publication/ modules-core/administration/java/src/org/apache/lenya/cms/ac/usecases/ modules-core/sitemanagement/java/src/org/apache/lenya/c...

Author: andreas
Date: Mon Nov 27 09:16:22 2006
New Revision: 479693

URL: http://svn.apache.org/viewvc?view=rev&rev=479693
Log:
Allow to access area items in site area tree

Modified:
    lenya/trunk/src/impl/java/org/apache/lenya/cms/publication/DocumentFactoryImpl.java
    lenya/trunk/src/java/org/apache/lenya/cms/publication/DocumentUtil.java
    lenya/trunk/src/java/org/apache/lenya/cms/publication/Publication.java
    lenya/trunk/src/java/org/apache/lenya/cms/publication/URLInformation.java
    lenya/trunk/src/modules-core/administration/java/src/org/apache/lenya/cms/ac/usecases/AccessControl.java
    lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/metadata/usecases/Metadata.java
    lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/Assets.java
    lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/ChangeLabel.java
    lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/Cut.java
    lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/Overview.java
    lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/Revisions.java
    lenya/trunk/src/modules-core/sitemanagement/usecases/tab/sitetree.jx
    lenya/trunk/src/modules-core/usecase/java/src/org/apache/lenya/cms/usecase/AbstractUsecase.java
    lenya/trunk/src/modules-core/usecase/java/src/org/apache/lenya/cms/usecase/DocumentUsecase.java
    lenya/trunk/src/modules-core/workflow-impl/java/src/org/apache/lenya/cms/workflow/usecases/History.java
    lenya/trunk/src/modules-core/workflow-impl/java/src/org/apache/lenya/cms/workflow/usecases/MultiWorkflow.java
    lenya/trunk/src/modules/sitetree/resources/javascript/navtree.js

Modified: lenya/trunk/src/impl/java/org/apache/lenya/cms/publication/DocumentFactoryImpl.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/impl/java/org/apache/lenya/cms/publication/DocumentFactoryImpl.java?view=diff&rev=479693&r1=479692&r2=479693
==============================================================================
--- lenya/trunk/src/impl/java/org/apache/lenya/cms/publication/DocumentFactoryImpl.java (original)
+++ lenya/trunk/src/impl/java/org/apache/lenya/cms/publication/DocumentFactoryImpl.java Mon Nov 27 09:16:22 2006
@@ -229,17 +229,11 @@
      * @return A key.
      */
     public String getKey(String webappUrl) {
-        ServiceSelector selector = null;
-        DocumentBuilder builder = null;
+        DocumentLocator locator = getLocator(webappUrl);
+        String area = locator.getArea();
+        String uuid = null;
         try {
-            Publication publication = PublicationUtil.getPublicationFromUrl(this.manager, this,
-                    webappUrl);
-            selector = (ServiceSelector) this.manager.lookup(DocumentBuilder.ROLE + "Selector");
-            builder = (DocumentBuilder) selector.select(publication.getDocumentBuilderHint());
-            DocumentLocator locator = builder.getLocator(this, webappUrl);
-
-            String area = locator.getArea();
-            String uuid = null;
+            Publication publication = getPublication(locator.getPublicationId());
             if (SiteUtil.isDocument(this.manager, this, webappUrl)) {
                 uuid = publication.getArea(area).getSite().getNode(locator.getPath()).getUuid();
             } else {
@@ -249,6 +243,22 @@
             return getKey(publication, area, uuid, locator.getLanguage());
         } catch (Exception e) {
             throw new RuntimeException(e);
+        }
+    }
+
+    protected DocumentLocator getLocator(String webappUrl) {
+        DocumentLocator locator;
+        ServiceSelector selector = null;
+        DocumentBuilder builder = null;
+        try {
+            Publication publication = PublicationUtil.getPublicationFromUrl(this.manager, this,
+                    webappUrl);
+            selector = (ServiceSelector) this.manager.lookup(DocumentBuilder.ROLE + "Selector");
+            builder = (DocumentBuilder) selector.select(publication.getDocumentBuilderHint());
+            locator = builder.getLocator(this, webappUrl);
+
+        } catch (Exception e) {
+            throw new RuntimeException(e);
         } finally {
             if (selector != null) {
                 if (builder != null) {
@@ -257,6 +267,7 @@
                 this.manager.release(selector);
             }
         }
+        return locator;
     }
 
     /**
@@ -310,8 +321,8 @@
     }
 
     /**
-     * Creates a new document object. Override this method to create specific document objects,
-     * e.g., for different document IDs.
+     * Creates a new document object. Override this method to create specific
+     * document objects, e.g., for different document IDs.
      * @param map The identity map.
      * @param identifier The identifier.
      * @param builder The document builder.

Modified: lenya/trunk/src/java/org/apache/lenya/cms/publication/DocumentUtil.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/java/org/apache/lenya/cms/publication/DocumentUtil.java?view=diff&rev=479693&r1=479692&r2=479693
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/publication/DocumentUtil.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/publication/DocumentUtil.java Mon Nov 27 09:16:22 2006
@@ -19,6 +19,7 @@
 
 import org.apache.avalon.framework.service.ServiceException;
 import org.apache.avalon.framework.service.ServiceManager;
+import org.apache.avalon.framework.service.ServiceSelector;
 import org.apache.cocoon.environment.Request;
 import org.apache.lenya.cms.repository.RepositoryException;
 import org.apache.lenya.cms.repository.RepositoryUtil;
@@ -51,10 +52,10 @@
         }
         return factory;
     }
-    
+
     /**
-     * Returns a document factory for the session which is attached to the request.
-     * If no session exists, it is created.
+     * Returns a document factory for the session which is attached to the
+     * request. If no session exists, it is created.
      * @param manager The service manager.
      * @param request The request.
      * @return A document factory.
@@ -70,7 +71,8 @@
     }
 
     /**
-     * Returns the currently requested document or <code>null</code> if no document is requested.
+     * Returns the currently requested document or <code>null</code> if no
+     * document is requested.
      * @param manager The service manager.
      * @param request The request.
      * @return A document.

Modified: lenya/trunk/src/java/org/apache/lenya/cms/publication/Publication.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/java/org/apache/lenya/cms/publication/Publication.java?view=diff&rev=479693&r1=479692&r2=479693
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/publication/Publication.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/publication/Publication.java Mon Nov 27 09:16:22 2006
@@ -75,10 +75,6 @@
      * <code>DELETE_PATH</code> The delete path
      */
     String DELETE_PATH = "delete";
-    /**
-     * <code>SEARCH_AREA_PREFIX</code> The search area prefix
-     */
-    String SEARCH_AREA_PREFIX = "search-";
 
     /**
      * Returns the publication ID.

Modified: lenya/trunk/src/java/org/apache/lenya/cms/publication/URLInformation.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/java/org/apache/lenya/cms/publication/URLInformation.java?view=diff&rev=479693&r1=479692&r2=479693
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/publication/URLInformation.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/publication/URLInformation.java Mon Nov 27 09:16:22 2006
@@ -31,7 +31,7 @@
     private String documentUrl = null;
 
     /**
-     * Returns the area (without the "info-" prefix).
+     * Returns the area (without the "webdav" prefix).
      * @return A string.
      */
     public String getArea() {
@@ -39,7 +39,7 @@
     }
 
     /**
-     * Returns the complete area (including the "info-" prefix).
+     * Returns the complete area (including the "webdav" prefix).
      * @return A string.
      */
     public String getCompleteArea() {
@@ -87,9 +87,7 @@
                     this.documentUrl = "";
                 }
 
-                if (this.completeArea.startsWith(Publication.SEARCH_AREA_PREFIX)) {
-                    this.area = this.completeArea.substring(Publication.SEARCH_AREA_PREFIX.length());
-                } else if (this.completeArea.equals(Publication.DAV_AREA)) {
+                if (this.completeArea.equals(Publication.DAV_AREA)) {
                     this.area = Publication.AUTHORING_AREA;
                 } else {
                     this.area = this.completeArea;

Modified: lenya/trunk/src/modules-core/administration/java/src/org/apache/lenya/cms/ac/usecases/AccessControl.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/administration/java/src/org/apache/lenya/cms/ac/usecases/AccessControl.java?view=diff&rev=479693&r1=479692&r2=479693
==============================================================================
--- lenya/trunk/src/modules-core/administration/java/src/org/apache/lenya/cms/ac/usecases/AccessControl.java (original)
+++ lenya/trunk/src/modules-core/administration/java/src/org/apache/lenya/cms/ac/usecases/AccessControl.java Mon Nov 27 09:16:22 2006
@@ -115,8 +115,10 @@
             setParameter(COMPLETE_AREA, info.getCompleteArea());
 
             DocumentFactory map = getDocumentFactory();
-            Document sourceDocument = map.getFromURL(getSourceURL());
-            setParameter(DOCUMENT, sourceDocument);
+            if (map.isDocument(getSourceURL())) {
+                Document sourceDocument = map.getFromURL(getSourceURL());
+                setParameter(DOCUMENT, sourceDocument);
+            }
 
             setParameter(SSL, Boolean.toString(isSSLProtected()));
             setParameter(ANCESTOR_SSL, Boolean.toString(isAncestorSSLProtected()));

Modified: lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/metadata/usecases/Metadata.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/metadata/usecases/Metadata.java?view=diff&rev=479693&r1=479692&r2=479693
==============================================================================
--- lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/metadata/usecases/Metadata.java (original)
+++ lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/metadata/usecases/Metadata.java Mon Nov 27 09:16:22 2006
@@ -42,13 +42,6 @@
 public class Metadata extends SiteUsecase {
 
     /**
-     * Ctor.
-     */
-    public Metadata() {
-        super();
-    }
-
-    /**
      * @see org.apache.lenya.cms.usecase.AbstractUsecase#getNodesToLock()
      */
     protected Node[] getNodesToLock() throws UsecaseException {
@@ -61,6 +54,10 @@
      */
     protected void initParameters() {
         super.initParameters();
+        
+        if (getSourceDocument() == null) {
+            return;
+        }
 
         MetaDataRegistry registry = null;
         try {
@@ -113,7 +110,11 @@
     protected void doCheckPreconditions() throws Exception {
         super.doCheckPreconditions();
         Document doc = getSourceDocument();
-        if (!getSourceDocument().getArea().equals(Publication.AUTHORING_AREA)) {
+        if (doc == null) {
+            return;
+        }
+        
+        if (!doc.getArea().equals(Publication.AUTHORING_AREA)) {
             addErrorMessage("This usecase can only be invoked in the authoring area!");
         }
         if (!WorkflowUtil.canInvoke(this.manager, getSession(), getLogger(), doc, getEvent())) {

Modified: lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/Assets.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/Assets.java?view=diff&rev=479693&r1=479692&r2=479693
==============================================================================
--- lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/Assets.java (original)
+++ lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/Assets.java Mon Nov 27 09:16:22 2006
@@ -38,11 +38,13 @@
     protected void initParameters() {
         super.initParameters();
 
-        try {
-            Document[] resourceDocs = getResourceDocuments();
-            setParameter("resourceDocuments", resourceDocs);
-        } catch (final Exception e) {
-            throw new RuntimeException(e);
+        if (getSourceDocument() != null) {
+            try {
+                Document[] resourceDocs = getResourceDocuments();
+                setParameter("resourceDocuments", resourceDocs);
+            } catch (final Exception e) {
+                throw new RuntimeException(e);
+            }
         }
     }
 
@@ -51,8 +53,7 @@
         Document[] docs = getSourceDocument().area().getDocuments();
         SiteNode node = getSourceDocument().getLink().getNode();
         for (int i = 0; i < docs.length; i++) {
-            if (docs[i].hasLink()
-                    && !docs[i].getLink().getNode().isTopLevel()
+            if (docs[i].hasLink() && !docs[i].getLink().getNode().isTopLevel()
                     && docs[i].getLink().getNode().getParent().getPath().equals(node.getPath())
                     && docs[i].getResourceType().getName().equals("resource")) {
                 list.add(docs[i]);

Modified: lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/ChangeLabel.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/ChangeLabel.java?view=diff&rev=479693&r1=479692&r2=479693
==============================================================================
--- lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/ChangeLabel.java (original)
+++ lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/ChangeLabel.java Mon Nov 27 09:16:22 2006
@@ -77,7 +77,7 @@
         super.initParameters();
         Document document = getSourceDocument();
         try {
-            if (document.exists()) {
+            if (document != null && document.exists()) {
                 setParameter(DOCUMENT_ID, document.getUUID());
                 setParameter(LABEL, document.getLink().getLabel());
             }

Modified: lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/Cut.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/Cut.java?view=diff&rev=479693&r1=479692&r2=479693
==============================================================================
--- lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/Cut.java (original)
+++ lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/Cut.java Mon Nov 27 09:16:22 2006
@@ -35,9 +35,11 @@
         super.doCheckPreconditions();
         
         Document doc = getSourceDocument();
-        SiteStructure liveSite = doc.getPublication().getArea(Publication.LIVE_AREA).getSite();
-        if (liveSite.contains(doc.getPath())) {
-            addErrorMessage(MESSAGE_ISLIVE);
+        if (doc != null) {
+            SiteStructure liveSite = doc.getPublication().getArea(Publication.LIVE_AREA).getSite();
+            if (liveSite.contains(doc.getPath())) {
+                addErrorMessage(MESSAGE_ISLIVE);
+            }
         }
     }
 

Modified: lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/Overview.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/Overview.java?view=diff&rev=479693&r1=479692&r2=479693
==============================================================================
--- lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/Overview.java (original)
+++ lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/Overview.java Mon Nov 27 09:16:22 2006
@@ -25,7 +25,6 @@
 import org.apache.lenya.cms.metadata.dublincore.DublinCore;
 import org.apache.lenya.cms.publication.Document;
 import org.apache.lenya.cms.site.usecases.SiteUsecase;
-import org.apache.lenya.cms.usecase.UsecaseException;
 import org.apache.lenya.cms.workflow.WorkflowUtil;
 import org.apache.lenya.workflow.Version;
 import org.apache.lenya.workflow.Workflow;
@@ -63,46 +62,48 @@
         WorkflowManager resolver = null;
         try {
             Document doc = getSourceDocument();
-
-            // read parameters from Dublin Core meta-data
-            MetaData dc = doc.getMetaData(DublinCore.DC_NAMESPACE);
-            setParameter(DublinCore.ELEMENT_TITLE, dc.getFirstValue(DublinCore.ELEMENT_TITLE));
-            setParameter(DublinCore.ELEMENT_DESCRIPTION,
-                    dc.getFirstValue(DublinCore.ELEMENT_DESCRIPTION));
-
-            // read parameters from document attributes
-            setParameter(LANGUAGES, doc.getLanguages());
-            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z");
-            String lastModified = format.format(new Date(getSourceDocument().getLastModified()));
-            setParameter(LASTMODIFIED, lastModified);
-            setParameter(RESOURCE_TYPE, doc.getResourceType());
-            boolean visible = doc.getLink().getNode().isVisible();
-            setParameter(VISIBLE_IN_NAVIGATION, Boolean.valueOf(visible));
-
-            Workflowable workflowable = WorkflowUtil.getWorkflowable(this.manager,
-                    getSession(),
-                    getLogger(),
-                    doc);
-            resolver = (WorkflowManager) this.manager.lookup(WorkflowManager.ROLE);
-            if (resolver.hasWorkflow(workflowable)) {
-                Workflow workflow = resolver.getWorkflowSchema(workflowable);
-                String[] variableNames = workflow.getVariableNames();
-                Version latestVersion = workflowable.getLatestVersion();
-                Boolean isLive = null;
-                if (latestVersion != null) {
-                    setParameter(STATE, latestVersion.getState());
-                    if (Arrays.asList(variableNames).contains(WORKFLOW_VARIABLE_ISLIVE)) {
-                        isLive = Boolean.valueOf(latestVersion.getValue(WORKFLOW_VARIABLE_ISLIVE));
+            if (doc != null) {
+                // read parameters from Dublin Core meta-data
+                MetaData dc = doc.getMetaData(DublinCore.DC_NAMESPACE);
+                setParameter(DublinCore.ELEMENT_TITLE, dc.getFirstValue(DublinCore.ELEMENT_TITLE));
+                setParameter(DublinCore.ELEMENT_DESCRIPTION, dc
+                        .getFirstValue(DublinCore.ELEMENT_DESCRIPTION));
+
+                // read parameters from document attributes
+                setParameter(LANGUAGES, doc.getLanguages());
+                SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z");
+                String lastModified = format
+                        .format(new Date(getSourceDocument().getLastModified()));
+                setParameter(LASTMODIFIED, lastModified);
+                setParameter(RESOURCE_TYPE, doc.getResourceType());
+                boolean visible = doc.getLink().getNode().isVisible();
+                setParameter(VISIBLE_IN_NAVIGATION, Boolean.valueOf(visible));
+
+                Workflowable workflowable = WorkflowUtil.getWorkflowable(this.manager,
+                        getSession(), getLogger(), doc);
+                resolver = (WorkflowManager) this.manager.lookup(WorkflowManager.ROLE);
+                if (resolver.hasWorkflow(workflowable)) {
+                    Workflow workflow = resolver.getWorkflowSchema(workflowable);
+                    String[] variableNames = workflow.getVariableNames();
+                    Version latestVersion = workflowable.getLatestVersion();
+                    Boolean isLive = null;
+                    if (latestVersion != null) {
+                        setParameter(STATE, latestVersion.getState());
+                        if (Arrays.asList(variableNames).contains(WORKFLOW_VARIABLE_ISLIVE)) {
+                            isLive = Boolean.valueOf(latestVersion
+                                    .getValue(WORKFLOW_VARIABLE_ISLIVE));
+                        }
+                    } else {
+                        setParameter(STATE, workflow.getInitialState());
+                        if (Arrays.asList(variableNames).contains(WORKFLOW_VARIABLE_ISLIVE)) {
+                            isLive = Boolean.valueOf(workflow
+                                    .getInitialValue(WORKFLOW_VARIABLE_ISLIVE));
+                        }
                     }
+                    setParameter(ISLIVE, isLive);
                 } else {
-                    setParameter(STATE, workflow.getInitialState());
-                    if (Arrays.asList(variableNames).contains(WORKFLOW_VARIABLE_ISLIVE)) {
-                        isLive = Boolean.valueOf(workflow.getInitialValue(WORKFLOW_VARIABLE_ISLIVE));
-                    }
+                    setParameter(STATE, "");
                 }
-                setParameter(ISLIVE, isLive);
-            } else {
-                setParameter(STATE, "");
             }
 
         } catch (final Exception e) {
@@ -116,31 +117,10 @@
     }
 
     /**
-     * Validates the request parameters.
-     * @throws UsecaseException if an error occurs.
+     * @see org.apache.lenya.cms.usecase.AbstractUsecase#doCheckPreconditions()
      */
-    void validate() throws UsecaseException {
-        // do nothing
+    protected void doCheckPreconditions() throws Exception {
+        // don't complain if document is null
     }
 
-    /**
-     * @see org.apache.lenya.cms.usecase.AbstractUsecase#doCheckExecutionConditions()
-     */
-    protected void doCheckExecutionConditions() throws Exception {
-        validate();
-    }
-
-    /**
-     * @see org.apache.lenya.cms.usecase.AbstractUsecase#doExecute()
-     */
-    protected void doExecute() throws Exception {
-        super.doExecute();
-    }
-
-    /**
-     * @see org.apache.lenya.cms.usecase.Usecase#setParameter(java.lang.String, java.lang.Object)
-     */
-    public void setParameter(String name, Object value) {
-        super.setParameter(name, value);
-    }
 }

Modified: lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/Revisions.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/Revisions.java?view=diff&rev=479693&r1=479692&r2=479693
==============================================================================
--- lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/Revisions.java (original)
+++ lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/Revisions.java Mon Nov 27 09:16:22 2006
@@ -36,28 +36,22 @@
      */
     protected void initParameters() {
         super.initParameters();
-
-        try {
-            this.rcml = getSourceDocument().getRepositoryNode().getRcml();
-        } catch (final Exception e) {
-            throw new RuntimeException(e);
+        
+        if (getSourceDocument() != null) {
+            try {
+                this.rcml = getSourceDocument().getRepositoryNode().getRcml();
+            } catch (final Exception e) {
+                throw new RuntimeException(e);
+            }
+    
+            Vector entries;
+            try {
+                entries = this.rcml.getBackupEntries();
+            } catch (final Exception e) {
+                throw new RuntimeException(e);
+            }
+            setParameter("entries", entries);
         }
-
-        Vector entries;
-        try {
-            entries = this.rcml.getBackupEntries();
-        } catch (final Exception e) {
-            throw new RuntimeException(e);
-        }
-        setParameter("entries", entries);
-    }
-
-    /**
-     * @see org.apache.lenya.cms.usecase.AbstractUsecase#doExecute() TODO add
-     *      rollback and view revision functionality
-     */
-    protected void doExecute() throws Exception {
-        super.doExecute();
     }
 
 }

Modified: lenya/trunk/src/modules-core/sitemanagement/usecases/tab/sitetree.jx
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/sitemanagement/usecases/tab/sitetree.jx?view=diff&rev=479693&r1=479692&r2=479693
==============================================================================
--- lenya/trunk/src/modules-core/sitemanagement/usecases/tab/sitetree.jx (original)
+++ lenya/trunk/src/modules-core/sitemanagement/usecases/tab/sitetree.jx Mon Nov 27 09:16:22 2006
@@ -24,16 +24,24 @@
   xmlns="http://www.w3.org/1999/xhtml"
   name="">
   
-  <jx:set var="document" value="${usecase.getParameter('document')}"/>
-  <jx:set var="area" value="${document.getArea()}"/>
-  <jx:set var="publicationId" value="${document.getPublication().getId()}"/>
+  <jx:set var="url" value="${usecase.getParameter('private.sourceUrl')}"/>
+  <jx:set var="steps" value="${url.split('/')}"/>
+  <jx:set var="area" value="${steps[2]}"/>
+  <jx:set var="publicationId" value="${steps[1]}"/>
+  <jx:set var="factory" value="${usecase.getParameter('private.factory')}"/>
+  <jx:set var="publication" value="${factory.getPublication(publicationId)}"/>
   
-  <div id="lenya-info-treecanvas">
+  <jx:set var="document" value="${usecase.getParameter('document')}"/>
+  <jx:set var="docExists" value="${java.lang.Boolean.valueOf(org.apache.lenya.cms.publication.Document.class.isInstance(document))}"/>
 
+  <div id="lenya-info-treecanvas">
     <div class="lenya-tabs">
-      <jx:forEach var="language" items="${document.getPublication().getLanguages()}">
+      <jx:forEach var="language" items="${publication.getLanguages()}">
         <jx:choose>
-          <jx:when test="${document.existsTranslation(language)}">
+          <jx:when test="${!docExists.booleanValue() &amp;&amp; language.equals(publication.getDefaultLanguage())}">
+            <a id="${language}" class="lenya-tablink-active"><jx:out value="${language}"/></a>
+          </jx:when>
+          <jx:when test="${document != null &amp;&amp; document.existsTranslation(language)}">
             <jx:set var="languageVersion"
               value="${document.getFactory().getLanguageVersion(document, language)}"/>
             <jx:set var="languageUrl"
@@ -61,8 +69,15 @@
         <script type="text/javascript">
           CONTEXT_PREFIX = '<jx:out value="${request.contextPath}"/>';
           PUBLICATION_ID = '<jx:out value="${publicationId}"/>';
-          CHOSEN_LANGUAGE = '<jx:out value="${document.getLanguage()}"/>';
-          DEFAULT_LANGUAGE = '<jx:out value="${document.getPublication().getDefaultLanguage()}"/>';
+          <jx:choose>
+            <jx:when test="${docExists.booleanValue()}">
+              CHOSEN_LANGUAGE = '<jx:out value="${document.getLanguage()}"/>';
+            </jx:when>
+            <jx:otherwise>
+              CHOSEN_LANGUAGE = '<jx:out value="${publication.getDefaultLanguage()}"/>';
+            </jx:otherwise>
+          </jx:choose>
+          DEFAULT_LANGUAGE = '<jx:out value="${publication.getDefaultLanguage()}"/>';
           IMAGE_PATH = '<jx:out value="${request.contextPath + '/lenya/images/tree/'}"/>';
           CUT_DOCUMENT_ID = '<jx:out value="${request.getSession().getAttribute('org.apache.lenya.cms.info.cutdocumentid')}"/>';
           ALL_AREAS = 'authoring,trash,archive';

Modified: lenya/trunk/src/modules-core/usecase/java/src/org/apache/lenya/cms/usecase/AbstractUsecase.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/usecase/java/src/org/apache/lenya/cms/usecase/AbstractUsecase.java?view=diff&rev=479693&r1=479692&r2=479693
==============================================================================
--- lenya/trunk/src/modules-core/usecase/java/src/org/apache/lenya/cms/usecase/AbstractUsecase.java (original)
+++ lenya/trunk/src/modules-core/usecase/java/src/org/apache/lenya/cms/usecase/AbstractUsecase.java Mon Nov 27 09:16:22 2006
@@ -72,6 +72,7 @@
     }
 
     protected String SOURCE_URL = "private.sourceUrl";
+    protected String FACTORY = "private.factory";
 
     /**
      * @see org.apache.lenya.cms.usecase.Usecase#getSourceURL()
@@ -568,6 +569,7 @@
      */
     public void setSourceURL(String url) {
         setParameter(SOURCE_URL, url);
+        setParameter(FACTORY, getDocumentFactory());
     }
 
     private UsecaseView view;

Modified: lenya/trunk/src/modules-core/usecase/java/src/org/apache/lenya/cms/usecase/DocumentUsecase.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/usecase/java/src/org/apache/lenya/cms/usecase/DocumentUsecase.java?view=diff&rev=479693&r1=479692&r2=479693
==============================================================================
--- lenya/trunk/src/modules-core/usecase/java/src/org/apache/lenya/cms/usecase/DocumentUsecase.java (original)
+++ lenya/trunk/src/modules-core/usecase/java/src/org/apache/lenya/cms/usecase/DocumentUsecase.java Mon Nov 27 09:16:22 2006
@@ -20,6 +20,7 @@
 
 import org.apache.lenya.cms.publication.Document;
 import org.apache.lenya.cms.publication.DocumentBuildException;
+import org.apache.lenya.cms.publication.DocumentFactory;
 
 /**
  * <p>
@@ -59,8 +60,9 @@
      */
     public void setSourceURL(String url) {
         try {
-            if (getDocumentFactory().isDocument(url)) {
-                Document document = getDocumentFactory().getFromURL(url);
+            DocumentFactory factory = getDocumentFactory();
+            if (factory.isDocument(url)) {
+                Document document = factory.getFromURL(url);
                 setParameter(DOCUMENT, document);
             }
         } catch (Exception e) {
@@ -88,9 +90,9 @@
     }
 
     /**
-     * Returns the document to be redirected to after the usecase has been completed. If the
-     * parameter <code>success</code> is false, the source document is returned (override this
-     * method to change this behaviour).
+     * Returns the document to be redirected to after the usecase has been
+     * completed. If the parameter <code>success</code> is false, the source
+     * document is returned (override this method to change this behaviour).
      * @param success If the usecase was successfully completed.
      * @return A document.
      */
@@ -103,8 +105,8 @@
     }
 
     /**
-     * If {@link #setTargetDocument(Document)}was not called, the URL of the source document (
-     * {@link #getSourceDocument()}) is returned.
+     * If {@link #setTargetDocument(Document)}was not called, the URL of the
+     * source document ( {@link #getSourceDocument()}) is returned.
      * @see org.apache.lenya.cms.usecase.Usecase#getTargetURL(boolean)
      */
     public String getTargetURL(boolean success) {

Modified: lenya/trunk/src/modules-core/workflow-impl/java/src/org/apache/lenya/cms/workflow/usecases/History.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/workflow-impl/java/src/org/apache/lenya/cms/workflow/usecases/History.java?view=diff&rev=479693&r1=479692&r2=479693
==============================================================================
--- lenya/trunk/src/modules-core/workflow-impl/java/src/org/apache/lenya/cms/workflow/usecases/History.java (original)
+++ lenya/trunk/src/modules-core/workflow-impl/java/src/org/apache/lenya/cms/workflow/usecases/History.java Mon Nov 27 09:16:22 2006
@@ -30,17 +30,17 @@
 public class History extends DocumentUsecase {
 
     /**
-     * @see org.apache.lenya.cms.usecase.AbstractUsecase#initParameters() TODO get wf variables, get
-     *      date and machine ip for versions
+     * @see org.apache.lenya.cms.usecase.AbstractUsecase#initParameters() TODO
+     *      get wf variables, get date and machine ip for versions
      */
     protected void initParameters() {
         super.initParameters();
 
-        Workflowable workflowable = WorkflowUtil.getWorkflowable(this.manager,
-                getSession(),
-                getLogger(),
-                getSourceDocument());
-        Version[] versions = workflowable.getVersions();
-        setParameter("versions", versions);
+        if (getSourceDocument() != null) {
+            Workflowable workflowable = WorkflowUtil.getWorkflowable(this.manager, getSession(),
+                    getLogger(), getSourceDocument());
+            Version[] versions = workflowable.getVersions();
+            setParameter("versions", versions);
+        }
     }
 }

Modified: lenya/trunk/src/modules-core/workflow-impl/java/src/org/apache/lenya/cms/workflow/usecases/MultiWorkflow.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/workflow-impl/java/src/org/apache/lenya/cms/workflow/usecases/MultiWorkflow.java?view=diff&rev=479693&r1=479692&r2=479693
==============================================================================
--- lenya/trunk/src/modules-core/workflow-impl/java/src/org/apache/lenya/cms/workflow/usecases/MultiWorkflow.java (original)
+++ lenya/trunk/src/modules-core/workflow-impl/java/src/org/apache/lenya/cms/workflow/usecases/MultiWorkflow.java Mon Nov 27 09:16:22 2006
@@ -44,6 +44,10 @@
     protected void initParameters() {
         super.initParameters();
 
+        if (getSourceDocument() == null) {
+            return;
+        }
+        
         try {
             List preOrder = getPreOrder(getSourceDocument().getLink().getNode());
             List wrappers = new ArrayList();

Modified: lenya/trunk/src/modules/sitetree/resources/javascript/navtree.js
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/sitetree/resources/javascript/navtree.js?view=diff&rev=479693&r1=479692&r2=479693
==============================================================================
--- lenya/trunk/src/modules/sitetree/resources/javascript/navtree.js (original)
+++ lenya/trunk/src/modules/sitetree/resources/javascript/navtree.js Mon Nov 27 09:16:22 2006
@@ -188,7 +188,7 @@
 }
 
 NavTree.prototype.handleItemClick = function(item, event) {
-    if (!item.isprotected && item.root!=item) {
+    if (!item.isprotected) { // && item.root!=item) {
         var itemhref = item.href.replace(/^\//, "");
         href = encodeURI(CONTEXT_PREFIX+'/'+PUBLICATION_ID+"/"+item.area+"/"+itemhref+"?lenya.usecase=tab.overview"); 
         window.location = href;
@@ -238,8 +238,8 @@
     var line = this.createItemLine(item);
     td2.appendChild(line);
     
-    // make areas not clickable
-    if (item.depth>1) {
+    // make root node not clickable
+    if (item.depth > 0) {
       addEventHandler(line, 'click', this.handleItemClick, this, item);
     }
     addEventHandler(item.opensign, 'click', this.handleItemSignClick, 



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