diff --git a/config/alfresco/extension/web-client-config-custom.xml.sample b/config/alfresco/extension/web-client-config-custom.xml.sample index 1087bed54f..d7ac00b077 100644 --- a/config/alfresco/extension/web-client-config-custom.xml.sample +++ b/config/alfresco/extension/web-client-config-custom.xml.sample @@ -104,7 +104,6 @@ - @@ -135,4 +134,4 @@ --> - + \ No newline at end of file diff --git a/source/java/org/alfresco/web/app/servlet/UploadFileServlet.java b/source/java/org/alfresco/web/app/servlet/UploadFileServlet.java index 8b3781046f..cd1f54a477 100644 --- a/source/java/org/alfresco/web/app/servlet/UploadFileServlet.java +++ b/source/java/org/alfresco/web/app/servlet/UploadFileServlet.java @@ -39,6 +39,7 @@ import org.alfresco.error.AlfrescoRuntimeException; import org.alfresco.repo.content.MimetypeMap; import org.alfresco.util.TempFileProvider; import org.alfresco.web.app.Application; +import org.alfresco.web.bean.ErrorBean; import org.alfresco.web.bean.FileUploadBean; import org.alfresco.web.config.ClientConfigElement; import org.apache.commons.fileupload.FileItem; @@ -220,24 +221,61 @@ public class UploadFileServlet extends BaseServlet { // finally redirect if (logger.isDebugEnabled()) - { logger.debug("redirecting to: " + returnPage); - } response.sendRedirect(returnPage); } + + if (logger.isDebugEnabled()) + logger.debug("upload complete"); } catch (Throwable error) { - Application.handleServletError(getServletContext(), (HttpServletRequest)request, - (HttpServletResponse)response, error, logger, returnPage); - } - - if (logger.isDebugEnabled()) - { - logger.debug("upload complete"); + handleUploadException(request, response, error, returnPage); } } + + private void handleUploadException(HttpServletRequest request, HttpServletResponse response, Throwable error, String returnPage) + { + try + { + HttpSession session = request.getSession(true); + ErrorBean errorBean = (ErrorBean) session.getAttribute(ErrorBean.ERROR_BEAN_NAME); + if (errorBean == null) + { + errorBean = new ErrorBean(); + session.setAttribute(ErrorBean.ERROR_BEAN_NAME, errorBean); + } + errorBean.setLastError(error); + errorBean.setReturnPage(returnPage); + } + catch (Throwable e) + { + logger.error("Error while handling upload Exception", e); + } + try + { + String errorPage = Application.getErrorPage(getServletContext()); + + if (logger.isDebugEnabled()) + { + logger.debug("An error has occurred. Sending back response for redirecting to error page: " + errorPage); + } + + response.setContentType(MimetypeMap.MIMETYPE_HTML); + response.setCharacterEncoding("utf-8"); + final PrintWriter out = response.getWriter(); + out.println(" "); + out.close(); + } + catch (Exception e) + { + logger.error("Error while handling upload Exception", e); + } + } + private boolean allowZeroByteFiles() { diff --git a/source/java/org/alfresco/web/bean/users/CreateUserWizard.java b/source/java/org/alfresco/web/bean/users/CreateUserWizard.java index 43123d27ed..d597fa1ec7 100644 --- a/source/java/org/alfresco/web/bean/users/CreateUserWizard.java +++ b/source/java/org/alfresco/web/bean/users/CreateUserWizard.java @@ -698,21 +698,16 @@ public class CreateUserWizard extends BaseWizardBean // check for existance of home space with same name - return immediately // if it exists or throw an exception an give user chance to enter another name - // TODO: this might be better replaced with an XPath query! - List children = this.getNodeService().getChildAssocs(parentRef); - for (ChildAssociationRef ref : children) + NodeRef childRef = this.getNodeService().getChildByName(parentRef, ContentModel.ASSOC_CONTAINS, spaceName); + if (childRef != null) { - String childNodeName = (String) this.getNodeService().getProperty(ref.getChildRef(), ContentModel.PROP_NAME); - if (spaceName.equals(childNodeName)) + if (error) { - if (error) - { - throw new AlfrescoRuntimeException("A Home Space with the same name already exists."); - } - else - { - return ref.getChildRef(); - } + throw new AlfrescoRuntimeException("A Home Space with the same name already exists."); + } + else + { + return childRef; } } diff --git a/source/web/scripts/webdav.js b/source/web/scripts/webdav.js index b6823ea4c3..9d624ff9d0 100644 --- a/source/web/scripts/webdav.js +++ b/source/web/scripts/webdav.js @@ -12,25 +12,33 @@ function openDoc(url) // have to rely on the context path being passed in an anyway) var contextPath = window.location.pathname.substring(0, window.location.pathname.indexOf("/", 1)); var fullUrl = window.location.protocol + "//" + window.location.host + contextPath + url; + var lowerUrl = url.toLowerCase(); // if the link represents an Office document and we are in IE try and // open the file directly to get WebDAV editing capabilities if (agent.indexOf("msie") != -1) { - if (fullUrl.indexOf(".doc") != -1 || - fullUrl.indexOf(".dot") != -1 || - fullUrl.indexOf(".xls") != -1 || - fullUrl.indexOf(".ppt") != -1) + if (lowerUrl.indexOf(".doc") != -1 || lowerUrl.indexOf(".docx") != -1 || + lowerUrl.indexOf(".xls") != -1 || lowerUrl.indexOf(".xlsx") != -1 || + lowerUrl.indexOf(".ppt") != -1 || lowerUrl.indexOf(".pptx") != -1 || + lowerUrl.indexOf(".dot") != -1 || lowerUrl.indexOf(".dotx") != -1) { - var wordDoc = new ActiveXObject("SharePoint.OpenDocuments.1"); - if (wordDoc) + try { - showDoc = false; - wordDoc.EditDocument(fullUrl); + var wordDoc = new ActiveXObject("SharePoint.OpenDocuments.1"); + if (wordDoc) + { + showDoc = false; + wordDoc.EditDocument(fullUrl); + } + } + catch(e) + { + showDoc = true; } } } - + if (showDoc == true) { window.open(fullUrl, "_blank");