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() && language.equals(publication.getDefaultLanguage())}">
+ <a id="${language}" class="lenya-tablink-active"><jx:out value="${language}"/></a>
+ </jx:when>
+ <jx:when test="${document != null && 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