From a6d4684034c22b464fa2413e87edb558deef7567 Mon Sep 17 00:00:00 2001 From: Kevin Roast Date: Tue, 30 Jan 2007 15:52:35 +0000 Subject: [PATCH] . Fixes for: http://issues.alfresco.com/browse/WCM-218 http://issues.alfresco.com/browse/WCM-237 http://issues.alfresco.com/browse/AWC-991 http://issues.alfresco.com/browse/AWC-1078 git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@4969 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- config/alfresco/messages/webclient.properties | 3 ++- config/alfresco/web-client-config.xml | 7 +++---- .../org/alfresco/web/bean/SpaceDetailsBean.java | 11 +++++++++++ .../bean/clipboard/WorkspaceClipboardItem.java | 17 +++++++++-------- .../web/bean/wcm/CreateWebsiteWizard.java | 2 +- .../org/alfresco/web/bean/wcm/WebProject.java | 7 ++++++- .../org/alfresco/web/forms/FormsService.java | 15 ++++++++++----- .../java/org/alfresco/web/ui/common/Utils.java | 13 ++++++++++--- source/web/jsp/dialog/space-details.jsp | 7 ++++++- 9 files changed, 58 insertions(+), 24 deletions(-) diff --git a/config/alfresco/messages/webclient.properties b/config/alfresco/messages/webclient.properties index 39eb369831..eb108b08e1 100644 --- a/config/alfresco/messages/webclient.properties +++ b/config/alfresco/messages/webclient.properties @@ -139,7 +139,8 @@ view_in_browser=View In Browser view_in_webdav=View in WebDAV view_in_cifs=View in CIFS download_content=Download Content -details_page_bookmark=External Access URL +details_page_bookmark=Details Page URL +details_browse_bookmark=Browse Page URL noderef_link=Alfresco Node Reference links=Links create_shortcut=Create Shortcut diff --git a/config/alfresco/web-client-config.xml b/config/alfresco/web-client-config.xml index 0902b0e62c..26ad5a7155 100644 --- a/config/alfresco/web-client-config.xml +++ b/config/alfresco/web-client-config.xml @@ -50,10 +50,9 @@ 500 - - /app:company_home/app:user_homes - - + + /app:company_home/app:user_homes + diff --git a/source/java/org/alfresco/web/bean/SpaceDetailsBean.java b/source/java/org/alfresco/web/bean/SpaceDetailsBean.java index a22d873297..f7d08d8bac 100644 --- a/source/java/org/alfresco/web/bean/SpaceDetailsBean.java +++ b/source/java/org/alfresco/web/bean/SpaceDetailsBean.java @@ -40,6 +40,7 @@ import org.alfresco.web.app.servlet.TemplateContentServlet; import org.alfresco.web.bean.repository.Node; import org.alfresco.web.bean.repository.Repository; import org.alfresco.web.ui.common.Utils; +import org.alfresco.web.ui.common.Utils.URLMode; import org.alfresco.web.ui.common.component.UIActionLink; /** @@ -112,6 +113,16 @@ public class SpaceDetailsBean extends BaseDetailsBean return getNode(); } + /** + * Returns the URL to access the browse page for the current node + * + * @return The bookmark URL + */ + public String getBrowseUrl() + { + return Utils.generateURL(FacesContext.getCurrentInstance(), getNode(), URLMode.BROWSE); + } + /** * Resolve the actual document Node from any Link object that may be proxying it * diff --git a/source/java/org/alfresco/web/bean/clipboard/WorkspaceClipboardItem.java b/source/java/org/alfresco/web/bean/clipboard/WorkspaceClipboardItem.java index 1a254dd948..17f49d205c 100644 --- a/source/java/org/alfresco/web/bean/clipboard/WorkspaceClipboardItem.java +++ b/source/java/org/alfresco/web/bean/clipboard/WorkspaceClipboardItem.java @@ -180,17 +180,18 @@ public class WorkspaceClipboardItem extends AbstractClipboardItem if (logger.isDebugEnabled()) logger.debug("Attempting to copy node: " + getNodeRef() + " into node ID: " + destRef.toString()); + // first check that we are not attempting to copy a duplicate into the same parent + if (destRef.equals(assocRef.getParentRef()) && name.equals(getName())) + { + // manually change the name if this occurs + String copyOf = Application.getMessage(fc, MSG_COPY_OF); + name = copyOf + ' ' + name; + } + if (dd.isSubClass(getType(), ContentModel.TYPE_CONTENT) || dd.isSubClass(getType(), ContentModel.TYPE_FOLDER)) { // copy the file/folder - // first check that we are not attempting to copy a duplicate into the same parent - if (destRef.equals(assocRef.getParentRef()) && name.equals(getName())) - { - // manually change the name if this occurs - String copyOf = Application.getMessage(fc, MSG_COPY_OF); - name = copyOf + ' ' + name; - } fileFolderService.copy( getNodeRef(), destRef, @@ -201,7 +202,7 @@ public class WorkspaceClipboardItem extends AbstractClipboardItem // copy the node if (checkExists(name, destRef) == false) { - copyService.copy( + copyService.copyAndRename( getNodeRef(), destRef, ContentModel.ASSOC_CONTAINS, diff --git a/source/java/org/alfresco/web/bean/wcm/CreateWebsiteWizard.java b/source/java/org/alfresco/web/bean/wcm/CreateWebsiteWizard.java index d0e2535ea2..c0eeb588a8 100644 --- a/source/java/org/alfresco/web/bean/wcm/CreateWebsiteWizard.java +++ b/source/java/org/alfresco/web/bean/wcm/CreateWebsiteWizard.java @@ -535,7 +535,7 @@ public class CreateWebsiteWizard extends BaseWizardBean } /** - * @return List of UI items to represent the available Workflows for all websites + * @return List of UI items to represent the available Web Forms for all websites */ public List getFormsList() { diff --git a/source/java/org/alfresco/web/bean/wcm/WebProject.java b/source/java/org/alfresco/web/bean/wcm/WebProject.java index 659bb0b103..6203bf7f85 100644 --- a/source/java/org/alfresco/web/bean/wcm/WebProject.java +++ b/source/java/org/alfresco/web/bean/wcm/WebProject.java @@ -43,6 +43,8 @@ import org.alfresco.web.app.servlet.DownloadContentServlet; import org.alfresco.web.bean.repository.Repository; import org.alfresco.web.bean.repository.User; import org.alfresco.web.bean.wcm.AVMConstants; +import org.alfresco.web.data.IDataContainer; +import org.alfresco.web.data.QuickSort; import org.alfresco.web.forms.*; import org.alfresco.web.forms.xforms.XFormsProcessor; import org.apache.commons.logging.Log; @@ -220,7 +222,10 @@ public class WebProject */ public List
getForms() { - return Collections.unmodifiableList(new ArrayList(this.getFormsImpl().values())); + List forms = new ArrayList(this.getFormsImpl().values()); + QuickSort sorter = new QuickSort(forms, "name", true, IDataContainer.SORT_CASEINSENSITIVE); + sorter.sort(); + return Collections.unmodifiableList(forms); } /** diff --git a/source/java/org/alfresco/web/forms/FormsService.java b/source/java/org/alfresco/web/forms/FormsService.java index 2bbbd548f3..995444f5d2 100644 --- a/source/java/org/alfresco/web/forms/FormsService.java +++ b/source/java/org/alfresco/web/forms/FormsService.java @@ -17,6 +17,7 @@ package org.alfresco.web.forms; import java.io.*; +import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.LinkedList; @@ -50,6 +51,8 @@ import org.alfresco.service.namespace.QName; import org.alfresco.web.app.Application; import org.alfresco.web.bean.repository.Repository; import org.alfresco.web.bean.wcm.AVMConstants; +import org.alfresco.web.data.IDataContainer; +import org.alfresco.web.data.QuickSort; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.w3c.dom.Document; @@ -64,7 +67,6 @@ import org.xml.sax.SAXException; public final class FormsService implements Serializable { - private static final Log LOGGER = LogFactory.getLog(FormsService.class); /** the single instance initialized using spring */ @@ -155,7 +157,8 @@ public final class FormsService final String xpath = (Application.getRootPath(fc) + "/" + Application.getGlossaryFolderName(fc) + "/" + Application.getContentFormsFolderName(fc)); - LOGGER.debug("locating content forms at " + xpath); + if (LOGGER.isDebugEnabled()) + LOGGER.debug("locating content forms at " + xpath); final List results = searchService.selectNodes(this.nodeService.getRootNode(Repository.getStoreRef()), xpath, @@ -183,12 +186,14 @@ public final class FormsService final ResultSet rs = this.searchService.query(sp); if (LOGGER.isDebugEnabled()) LOGGER.debug("received " + rs.length() + " results"); - final Collection result = new LinkedList(); + final Collection result = new ArrayList(rs.length()); for (ResultSetRow row : rs) { - final NodeRef nodeRef = row.getNodeRef(); - result.add(this.getForm(nodeRef)); + result.add(this.getForm(row.getNodeRef())); } + QuickSort sorter = new QuickSort((List)result, "name", true, IDataContainer.SORT_CASEINSENSITIVE); + sorter.sort(); + return result; } diff --git a/source/java/org/alfresco/web/ui/common/Utils.java b/source/java/org/alfresco/web/ui/common/Utils.java index 09fd3b26e0..25d6952403 100644 --- a/source/java/org/alfresco/web/ui/common/Utils.java +++ b/source/java/org/alfresco/web/ui/common/Utils.java @@ -554,7 +554,7 @@ public final class Utils /** * Enum representing the client URL type to generate */ - public enum URLMode {HTTP_DOWNLOAD, HTTP_INLINE, WEBDAV, CIFS, SHOW_DETAILS, FTP} + public enum URLMode {HTTP_DOWNLOAD, HTTP_INLINE, WEBDAV, CIFS, SHOW_DETAILS, BROWSE, FTP} /** * Generates a URL for the given usage for the given node. @@ -665,12 +665,12 @@ public final class Utils DictionaryService dd = Repository.getServiceRegistry(context).getDictionaryService(); // default to showing details of content - String outcome = "showDocDetails"; + String outcome = ExternalAccessServlet.OUTCOME_DOCDETAILS; // if the node is a type of folder then make the outcome to show space details if (dd.isSubClass(node.getType(), ContentModel.TYPE_FOLDER)) { - outcome = "showSpaceDetails"; + outcome = ExternalAccessServlet.OUTCOME_SPACEDETAILS; } // build the url @@ -680,6 +680,13 @@ public final class Utils break; } + case BROWSE: + { + url = ExternalAccessServlet.generateExternalURL(ExternalAccessServlet.OUTCOME_BROWSE, + Repository.getStoreRef().getProtocol() + "/" + + Repository.getStoreRef().getIdentifier() + "/" + node.getId()); + } + case FTP: { // not implemented yet! diff --git a/source/web/jsp/dialog/space-details.jsp b/source/web/jsp/dialog/space-details.jsp index d135952cfe..e6a988817d 100644 --- a/source/web/jsp/dialog/space-details.jsp +++ b/source/web/jsp/dialog/space-details.jsp @@ -150,12 +150,17 @@ - + + + + + +