diff --git a/config/alfresco/templates/webscripts/org/alfresco/portlets/myspaces_get_html.ftl b/config/alfresco/templates/webscripts/org/alfresco/portlets/myspaces_get_html.ftl index f504f9ff95..c5700576cd 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/portlets/myspaces_get_html.ftl +++ b/config/alfresco/templates/webscripts/org/alfresco/portlets/myspaces_get_html.ftl @@ -59,19 +59,19 @@
Upload
<#-- Url encode the path value, and encode any single quotes to generate valid string --> - - + +
<#-- Create Space action -->
Create Space
- - - + + +
Name:
Title:
Description:
Name:
Title:
Description:
- - + +
@@ -248,6 +248,21 @@ a.spaceBreadcrumbLink:link, a.spaceBreadcrumbLink:visited, a.spaceBreadcrumbLink text-decoration: none; } +.spaceFormLabel +{ + font-family: Trebuchet MS, Arial, Helvetica, sans-serif; + font-size: 11px; + color: #515D6B; +} + +.spaceFormItem +{ + margin: 4px; + padding: 2px; + background-color: #F8FCFD; + border: 1px solid #CCD4DB; +} + .spaceActions { background-color: #EEF7FB; @@ -287,7 +302,7 @@ a.spaceBreadcrumbLink:link, a.spaceBreadcrumbLink:visited, a.spaceBreadcrumbLink border: 1px solid #CCD4DB; background-color: #EEF7FB; width: 24em; - height: 4em; + height: 5em; padding: 8px; margin: 8px; display: none; diff --git a/source/java/org/alfresco/web/bean/ajax/MySpacesBean.java b/source/java/org/alfresco/web/bean/ajax/MySpacesBean.java index 91641c339b..c869bfd951 100644 --- a/source/java/org/alfresco/web/bean/ajax/MySpacesBean.java +++ b/source/java/org/alfresco/web/bean/ajax/MySpacesBean.java @@ -24,6 +24,8 @@ */ package org.alfresco.web.bean.ajax; +import java.io.Serializable; +import java.util.HashMap; import java.util.Map; import java.util.StringTokenizer; @@ -31,15 +33,18 @@ import javax.faces.context.FacesContext; import javax.faces.context.ResponseWriter; import org.alfresco.filesys.server.filesys.FileExistsException; +import org.alfresco.model.ApplicationModel; import org.alfresco.model.ContentModel; import org.alfresco.repo.content.MimetypeMap; import org.alfresco.service.cmr.model.FileFolderService; import org.alfresco.service.cmr.model.FileInfo; import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeService; +import org.alfresco.service.namespace.QName; import org.alfresco.web.app.servlet.BaseServlet; import org.alfresco.web.app.servlet.ajax.InvokeCommand; import org.alfresco.web.bean.repository.Repository; +import org.alfresco.web.bean.spaces.CreateSpaceWizard; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -80,6 +85,14 @@ public class MySpacesBean FileInfo folderInfo = ffService.create(containerRef, name, ContentModel.TYPE_FOLDER); if (logger.isDebugEnabled()) logger.debug("Created new folder: " + folderInfo.getNodeRef().toString()); + + // apply the uifacets aspect - icon, title and description properties + Map uiFacetsProps = new HashMap(4, 1.0f); + uiFacetsProps.put(ApplicationModel.PROP_ICON, CreateSpaceWizard.DEFAULT_SPACE_ICON_NAME); + uiFacetsProps.put(ContentModel.PROP_TITLE, title); + uiFacetsProps.put(ContentModel.PROP_DESCRIPTION, description); + nodeService.addAspect(folderInfo.getNodeRef(), ApplicationModel.ASPECT_UIFACETS, uiFacetsProps); + out.write("OK: " + folderInfo.getNodeRef().toString()); } } diff --git a/source/web/scripts/ajax/myspaces.js b/source/web/scripts/ajax/myspaces.js index f8c5a25c8c..04b14634d0 100644 --- a/source/web/scripts/ajax/myspaces.js +++ b/source/web/scripts/ajax/myspaces.js @@ -8,6 +8,7 @@ var MySpaces = { Path: null, Filter: null, Home: null, + popupPanel: null, start: function() { @@ -246,12 +247,26 @@ var MySpaces = { */ createSpace: function(actionEl) { + if (this.popupPanel != null) return; + var panel = $E(".spaceCreateSpacePanel", $(actionEl).getParent()); panel.setStyle("opacity", 0); panel.setStyle("display", "inline"); - panel.getElementById("space-name").focus(); - var anim = new Fx.Styles(panel, {duration: MySpaces.ANIM_LENGTH, transition: Fx.Transitions.linear}); + var anim = new Fx.Styles( + panel, + { + duration: MySpaces.ANIM_LENGTH, + transition: Fx.Transitions.linear, + onComplete: function() + { + var nameInput = this.element.getElementById("space-name"); + nameInput.focus(); + nameInput.select(); + } + }); anim.start({'opacity': 1}); + + this.popupPanel = panel; }, /** @@ -282,12 +297,12 @@ var MySpaces = { { alert("Error during creation of new space: " + response.responseText); } - MySpaces.closePanel(actionEl); + MySpaces.closePopupPanel(); }, failure: function(response) { alert("Error during creation of new space: " + response.responseText); - MySpaces.closePanel(actionEl); + MySpaces.closePopupPanel(); } }, "path=" + path.replace("_%_", "'") + @@ -301,10 +316,13 @@ var MySpaces = { /** * Cancel button click handler for various pop-up panels */ - closePanel: function(actionEl) + closePopupPanel: function() { - var panel = $(actionEl).getParent(); - panel.setStyle("display", "none"); + if (this.popupPanel != null) + { + this.popupPanel.setStyle("display", "none"); + this.popupPanel = null; + } }, /** @@ -312,6 +330,8 @@ var MySpaces = { */ upload: function(actionEl) { + if (this.popupPanel != null) return; + var panel = $E(".spaceUploadPanel", $(actionEl).getParent()); panel.setStyle("opacity", 0); panel.setStyle("display", "inline"); @@ -328,12 +348,15 @@ var MySpaces = { fileInput.name = "_upload"; fileInput.size = "35"; fileInput.setStyle("width", "100%"); + fileInput.addClass("spaceFormItem"); fileInput.injectTop(panel); this.fileInput = fileInput; } var anim = new Fx.Styles(panel, {duration: MySpaces.ANIM_LENGTH, transition: Fx.Transitions.linear}); anim.start({'opacity': 1}); + + this.popupPanel = panel; }, /** @@ -349,7 +372,7 @@ var MySpaces = { "/ajax/invoke/FileUploadBean.uploadFile", {currentPath: path.replace("_%_", "'")}); // decode path this.fileInput = null; - this.closePanel(actionEl); + this.closePopupPanel(); }, /**