mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-31 17:39:05 +00:00
Edit space is now done with a property sheet
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@2671 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -487,6 +487,7 @@ undo_checkout_info=If you undo the check out of a document, the associated worki
|
||||
details_of=Details of
|
||||
preview_of=Preview of
|
||||
modify_props_of=Modify Properties of
|
||||
modify_space_properties=Modify Space Properties
|
||||
preview=Preview in Template
|
||||
dashboard_view=Dashboard View
|
||||
dashboard=Dashboard
|
||||
|
@@ -7,6 +7,10 @@
|
||||
<dialog name="createSpace" page="/jsp/spaces/create-space-dialog.jsp" managed-bean="CreateSpaceDialog"
|
||||
icon="/images/icons/create_space_large.gif" title-id="new_space"
|
||||
description-id="newspace_description" />
|
||||
|
||||
<dialog name="editSpace" page="/jsp/spaces/edit-space-dialog.jsp" managed-bean="EditSpaceDialog"
|
||||
icon="/images/icons/create_space_large.gif" title-id="modify_space_properties"
|
||||
description-id="editspace_description" />
|
||||
</dialogs>
|
||||
</config>
|
||||
|
||||
|
@@ -14,6 +14,8 @@
|
||||
<property-sheet>
|
||||
<show-property name="name"/>
|
||||
<show-property name="description"/>
|
||||
<show-property name="icon" show-in-view-mode="false" display-label-id="choose_space_icon"
|
||||
component-generator="SpaceIconPickerGenerator" />
|
||||
</property-sheet>
|
||||
</config>
|
||||
|
||||
|
@@ -5,7 +5,9 @@ import java.text.MessageFormat;
|
||||
import javax.faces.context.FacesContext;
|
||||
import javax.transaction.UserTransaction;
|
||||
|
||||
import org.alfresco.service.cmr.model.FileFolderService;
|
||||
import org.alfresco.service.cmr.repository.NodeService;
|
||||
import org.alfresco.service.cmr.search.SearchService;
|
||||
import org.alfresco.web.app.AlfrescoNavigationHandler;
|
||||
import org.alfresco.web.app.Application;
|
||||
import org.alfresco.web.app.context.UIContextService;
|
||||
@@ -27,6 +29,8 @@ public abstract class BaseDialogBean implements IDialogBean
|
||||
protected BrowseBean browseBean;
|
||||
protected NavigationBean navigator;
|
||||
protected NodeService nodeService;
|
||||
protected FileFolderService fileFolderService;
|
||||
protected SearchService searchService;
|
||||
|
||||
public void init()
|
||||
{
|
||||
@@ -54,7 +58,12 @@ public abstract class BaseDialogBean implements IDialogBean
|
||||
// call the actual implementation
|
||||
outcome = finishImpl(context, outcome);
|
||||
|
||||
// persist the changes
|
||||
tx.commit();
|
||||
|
||||
// allow any subclasses to perform post commit processing
|
||||
// i.e. resetting state or setting status messages
|
||||
outcome = doPostCommitProcessing(context, outcome);
|
||||
}
|
||||
catch (Throwable e)
|
||||
{
|
||||
@@ -106,6 +115,22 @@ public abstract class BaseDialogBean implements IDialogBean
|
||||
this.nodeService = nodeService;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param fileFolderService used to manipulate folder/folder model nodes
|
||||
*/
|
||||
public void setFileFolderService(FileFolderService fileFolderService)
|
||||
{
|
||||
this.fileFolderService = fileFolderService;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param searchService the service used to find nodes
|
||||
*/
|
||||
public void setSearchService(SearchService searchService)
|
||||
{
|
||||
this.searchService = searchService;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the default cancel outcome
|
||||
*
|
||||
@@ -138,6 +163,20 @@ public abstract class BaseDialogBean implements IDialogBean
|
||||
protected abstract String finishImpl(FacesContext context, String outcome)
|
||||
throws Exception;
|
||||
|
||||
/**
|
||||
* Performs any post commit processing subclasses may want to provide
|
||||
*
|
||||
* @param context FacesContext
|
||||
* @param outcome The default outcome
|
||||
* @return The outcome
|
||||
*/
|
||||
protected String doPostCommitProcessing(FacesContext context, String outcome)
|
||||
{
|
||||
// do nothing by default, subclasses can override if necessary
|
||||
|
||||
return outcome;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a formatted exception string for the given exception
|
||||
*
|
||||
|
@@ -63,7 +63,7 @@ public class SpaceIconPickerGenerator extends BaseComponentGenerator
|
||||
ValueBinding binding = propertySheet.getValueBinding("value");
|
||||
String expression = binding.getExpressionString();
|
||||
String beanName = expression.substring(2, expression.indexOf(".")+1);
|
||||
if (beanName.equals("DialogManager") || beanName.equals("WizardManager"))
|
||||
if (beanName.equals("DialogManager.") || beanName.equals("WizardManager."))
|
||||
{
|
||||
// deal with the special dialog and wizard manager beans by
|
||||
// adding .bean
|
||||
|
260
source/java/org/alfresco/web/bean/spaces/EditSpaceDialog.java
Normal file
260
source/java/org/alfresco/web/bean/spaces/EditSpaceDialog.java
Normal file
@@ -0,0 +1,260 @@
|
||||
package org.alfresco.web.bean.spaces;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.text.MessageFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.faces.context.FacesContext;
|
||||
|
||||
import org.alfresco.config.Config;
|
||||
import org.alfresco.config.ConfigElement;
|
||||
import org.alfresco.model.ContentModel;
|
||||
import org.alfresco.service.cmr.dictionary.DataTypeDefinition;
|
||||
import org.alfresco.service.cmr.dictionary.DictionaryService;
|
||||
import org.alfresco.service.cmr.dictionary.PropertyDefinition;
|
||||
import org.alfresco.service.cmr.model.FileExistsException;
|
||||
import org.alfresco.service.cmr.repository.AssociationRef;
|
||||
import org.alfresco.service.cmr.repository.ChildAssociationRef;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
import org.alfresco.service.namespace.NamespaceService;
|
||||
import org.alfresco.service.namespace.QName;
|
||||
import org.alfresco.web.app.Application;
|
||||
import org.alfresco.web.bean.dialog.BaseDialogBean;
|
||||
import org.alfresco.web.bean.repository.Node;
|
||||
import org.alfresco.web.ui.common.component.UIListItem;
|
||||
|
||||
/**
|
||||
* Dialog bean to edit an existing space.
|
||||
*
|
||||
* @author gavinc
|
||||
*/
|
||||
public class EditSpaceDialog extends BaseDialogBean
|
||||
{
|
||||
protected Node editableNode;
|
||||
protected DictionaryService dictionaryService;
|
||||
protected NamespaceService namespaceService;
|
||||
|
||||
@Override
|
||||
public void init()
|
||||
{
|
||||
super.init();
|
||||
|
||||
// setup the space being edited
|
||||
this.editableNode = this.browseBean.getActionSpace();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the editable node
|
||||
*
|
||||
* @return The editable node
|
||||
*/
|
||||
public Node getEditableNode()
|
||||
{
|
||||
return this.editableNode;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the dictionary service
|
||||
*
|
||||
* @param dictionaryService the dictionary service
|
||||
*/
|
||||
public void setDictionaryService(DictionaryService dictionaryService)
|
||||
{
|
||||
this.dictionaryService = dictionaryService;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param namespaceService The NamespaceService
|
||||
*/
|
||||
public void setNamespaceService(NamespaceService namespaceService)
|
||||
{
|
||||
this.namespaceService = namespaceService;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a list of icons to allow the user to select from.
|
||||
* The list can change according to the type of space being created.
|
||||
*
|
||||
* @return A list of icons
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public List<UIListItem> getIcons()
|
||||
{
|
||||
List<UIListItem> icons = null;
|
||||
|
||||
QName type = QName.createQName(this.editableNode.getType().toString());
|
||||
String typePrefixForm = type.toPrefixString(this.namespaceService);
|
||||
|
||||
Config config = Application.getConfigService(FacesContext.getCurrentInstance()).
|
||||
getConfig(typePrefixForm + " icons");
|
||||
if (config != null)
|
||||
{
|
||||
ConfigElement iconsCfg = config.getConfigElement("icons");
|
||||
if (iconsCfg != null)
|
||||
{
|
||||
boolean first = true;
|
||||
for (ConfigElement icon : iconsCfg.getChildren())
|
||||
{
|
||||
String iconName = icon.getAttribute("name");
|
||||
String iconPath = icon.getAttribute("path");
|
||||
|
||||
if (iconName != null && iconPath != null)
|
||||
{
|
||||
if (first)
|
||||
{
|
||||
icons = new ArrayList<UIListItem>(iconsCfg.getChildCount());
|
||||
first = false;
|
||||
}
|
||||
|
||||
UIListItem item = new UIListItem();
|
||||
item.setValue(iconName);
|
||||
item.getAttributes().put("image", iconPath);
|
||||
icons.add(item);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// if we didn't find any icons display one default choice
|
||||
if (icons == null)
|
||||
{
|
||||
icons = new ArrayList<UIListItem>(1);
|
||||
|
||||
UIListItem item = new UIListItem();
|
||||
item.setValue("space-icon-default");
|
||||
item.getAttributes().put("image", "/images/icons/space-icon-default.gif");
|
||||
icons.add(item);
|
||||
}
|
||||
|
||||
return icons;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String finishImpl(FacesContext context, String outcome) throws Exception
|
||||
{
|
||||
// update the existing node in the repository
|
||||
NodeRef nodeRef = this.editableNode.getNodeRef();
|
||||
Map<String, Object> editedProps = this.editableNode.getProperties();
|
||||
|
||||
// handle the name property separately, perform a rename in case it changed
|
||||
String name = (String)editedProps.get(ContentModel.PROP_NAME);
|
||||
if (name != null)
|
||||
{
|
||||
this.fileFolderService.rename(nodeRef, name);
|
||||
}
|
||||
|
||||
// get the current set of properties from the repository
|
||||
Map<QName, Serializable> repoProps = this.nodeService.getProperties(nodeRef);
|
||||
|
||||
// overwrite the current properties with the edited ones
|
||||
Iterator<String> iterProps = editedProps.keySet().iterator();
|
||||
while (iterProps.hasNext())
|
||||
{
|
||||
String propName = iterProps.next();
|
||||
QName qname = QName.createQName(propName);
|
||||
|
||||
// make sure the property is represented correctly
|
||||
Serializable propValue = (Serializable)editedProps.get(propName);
|
||||
|
||||
// check for empty strings when using number types, set to null in this case
|
||||
if ((propValue != null) && (propValue instanceof String) &&
|
||||
(propValue.toString().length() == 0))
|
||||
{
|
||||
PropertyDefinition propDef = this.dictionaryService.getProperty(qname);
|
||||
if (propDef != null)
|
||||
{
|
||||
if (propDef.getDataType().getName().equals(DataTypeDefinition.DOUBLE) ||
|
||||
propDef.getDataType().getName().equals(DataTypeDefinition.FLOAT) ||
|
||||
propDef.getDataType().getName().equals(DataTypeDefinition.INT) ||
|
||||
propDef.getDataType().getName().equals(DataTypeDefinition.LONG))
|
||||
{
|
||||
propValue = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
repoProps.put(qname, propValue);
|
||||
}
|
||||
|
||||
// send the properties back to the repository
|
||||
this.nodeService.setProperties(nodeRef, repoProps);
|
||||
|
||||
// we also need to persist any association changes that may have been made
|
||||
|
||||
// add any associations added in the UI
|
||||
Map<String, Map<String, AssociationRef>> addedAssocs = this.editableNode.getAddedAssociations();
|
||||
for (Map<String, AssociationRef> typedAssoc : addedAssocs.values())
|
||||
{
|
||||
for (AssociationRef assoc : typedAssoc.values())
|
||||
{
|
||||
this.nodeService.createAssociation(assoc.getSourceRef(), assoc.getTargetRef(), assoc.getTypeQName());
|
||||
}
|
||||
}
|
||||
|
||||
// remove any association removed in the UI
|
||||
Map<String, Map<String, AssociationRef>> removedAssocs = this.editableNode.getRemovedAssociations();
|
||||
for (Map<String, AssociationRef> typedAssoc : removedAssocs.values())
|
||||
{
|
||||
for (AssociationRef assoc : typedAssoc.values())
|
||||
{
|
||||
this.nodeService.removeAssociation(assoc.getSourceRef(), assoc.getTargetRef(), assoc.getTypeQName());
|
||||
}
|
||||
}
|
||||
|
||||
// add any child associations added in the UI
|
||||
Map<String, Map<String, ChildAssociationRef>> addedChildAssocs = this.editableNode.getAddedChildAssociations();
|
||||
for (Map<String, ChildAssociationRef> typedAssoc : addedChildAssocs.values())
|
||||
{
|
||||
for (ChildAssociationRef assoc : typedAssoc.values())
|
||||
{
|
||||
this.nodeService.addChild(assoc.getParentRef(), assoc.getChildRef(), assoc.getTypeQName(), assoc.getTypeQName());
|
||||
}
|
||||
}
|
||||
|
||||
// remove any child association removed in the UI
|
||||
Map<String, Map<String, ChildAssociationRef>> removedChildAssocs = this.editableNode.getRemovedChildAssociations();
|
||||
for (Map<String, ChildAssociationRef> typedAssoc : removedChildAssocs.values())
|
||||
{
|
||||
for (ChildAssociationRef assoc : typedAssoc.values())
|
||||
{
|
||||
this.nodeService.removeChild(assoc.getParentRef(), assoc.getChildRef());
|
||||
}
|
||||
}
|
||||
|
||||
return outcome;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String doPostCommitProcessing(FacesContext context, String outcome)
|
||||
{
|
||||
this.editableNode.reset();
|
||||
|
||||
return outcome;
|
||||
}
|
||||
|
||||
/**
|
||||
* Formats the error message to display if an error occurs during finish processing
|
||||
*
|
||||
* @param The exception
|
||||
* @return The formatted message
|
||||
*/
|
||||
@Override
|
||||
protected String formatErrorMessage(Throwable exception)
|
||||
{
|
||||
if (exception instanceof FileExistsException)
|
||||
{
|
||||
return MessageFormat.format(Application.getMessage(
|
||||
FacesContext.getCurrentInstance(), "error_exists"),
|
||||
((FileExistsException)exception).getExisting().getName());
|
||||
}
|
||||
else
|
||||
{
|
||||
return MessageFormat.format(Application.getMessage(
|
||||
FacesContext.getCurrentInstance(), "error_space"),
|
||||
((FileExistsException)exception).getExisting().getName());
|
||||
}
|
||||
}
|
||||
}
|
@@ -17,10 +17,6 @@ public abstract class BaseWizardBean extends BaseDialogBean implements IWizardBe
|
||||
{
|
||||
private static final String MSG_NOT_SET = "value_not_set";
|
||||
|
||||
// services common to most wizards
|
||||
protected FileFolderService fileFolderService;
|
||||
protected SearchService searchService;
|
||||
|
||||
public boolean getNextButtonDisabled()
|
||||
{
|
||||
return false;
|
||||
@@ -40,22 +36,6 @@ public abstract class BaseWizardBean extends BaseDialogBean implements IWizardBe
|
||||
{
|
||||
return Application.getMessage(FacesContext.getCurrentInstance(), "finish_button");
|
||||
}
|
||||
|
||||
/**
|
||||
* @param fileFolderService used to manipulate folder/folder model nodes
|
||||
*/
|
||||
public void setFileFolderService(FileFolderService fileFolderService)
|
||||
{
|
||||
this.fileFolderService = fileFolderService;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param searchService the service used to find nodes
|
||||
*/
|
||||
public void setSearchService(SearchService searchService)
|
||||
{
|
||||
this.searchService = searchService;
|
||||
}
|
||||
|
||||
/**
|
||||
* Build summary table from the specified list of Labels and Values
|
||||
|
@@ -318,7 +318,7 @@
|
||||
The bean that backs up the Edit Space Dialog
|
||||
</description>
|
||||
<managed-bean-name>EditSpaceDialog</managed-bean-name>
|
||||
<managed-bean-class>org.alfresco.web.bean.wizard.NewSpaceWizard</managed-bean-class>
|
||||
<managed-bean-class>org.alfresco.web.bean.spaces.EditSpaceDialog</managed-bean-class>
|
||||
<managed-bean-scope>session</managed-bean-scope>
|
||||
<managed-property>
|
||||
<property-name>nodeService</property-name>
|
||||
@@ -340,6 +340,10 @@
|
||||
<property-name>searchService</property-name>
|
||||
<value>#{SearchService}</value>
|
||||
</managed-property>
|
||||
<managed-property>
|
||||
<property-name>dictionaryService</property-name>
|
||||
<value>#{DictionaryService}</value>
|
||||
</managed-property>
|
||||
<managed-property>
|
||||
<property-name>namespaceService</property-name>
|
||||
<value>#{NamespaceService}</value>
|
||||
|
@@ -239,10 +239,6 @@
|
||||
|
||||
<navigation-rule>
|
||||
<from-view-id>/jsp/dialog/space-details.jsp</from-view-id>
|
||||
<navigation-case>
|
||||
<from-outcome>editSpaceProperties</from-outcome>
|
||||
<to-view-id>/jsp/dialog/edit-space.jsp</to-view-id>
|
||||
</navigation-case>
|
||||
<navigation-case>
|
||||
<from-outcome>manageInvitedUsers</from-outcome>
|
||||
<to-view-id>/jsp/roles/manage-invited-users.jsp</to-view-id>
|
||||
@@ -277,18 +273,6 @@
|
||||
</navigation-case>
|
||||
</navigation-rule>
|
||||
|
||||
<navigation-rule>
|
||||
<from-view-id>/jsp/dialog/edit-space.jsp</from-view-id>
|
||||
<navigation-case>
|
||||
<from-outcome>cancel</from-outcome>
|
||||
<to-view-id>/jsp/dialog/space-details.jsp</to-view-id>
|
||||
</navigation-case>
|
||||
<navigation-case>
|
||||
<from-outcome>finish</from-outcome>
|
||||
<to-view-id>/jsp/dialog/space-details.jsp</to-view-id>
|
||||
</navigation-case>
|
||||
</navigation-rule>
|
||||
|
||||
<navigation-rule>
|
||||
<from-view-id>/jsp/dialog/document-details.jsp</from-view-id>
|
||||
<navigation-case>
|
||||
|
@@ -94,9 +94,11 @@
|
||||
<table cellspacing="0" cellpadding="3" border="0" width="100%">
|
||||
<tr>
|
||||
<td width="100%" valign="top">
|
||||
<% PanelGenerator.generatePanelStart(out, request.getContextPath(), "white", "white"); %>
|
||||
<f:subview id="dialog-body">
|
||||
<jsp:include page="<%=Application.getDialogManager().getPage() %>" />
|
||||
</f:subview>
|
||||
<% PanelGenerator.generatePanelEnd(out, request.getContextPath(), "white"); %>
|
||||
</td>
|
||||
|
||||
<td valign="top">
|
||||
|
@@ -1,189 +0,0 @@
|
||||
<%--
|
||||
Copyright (C) 2005 Alfresco, Inc.
|
||||
|
||||
Licensed under the Mozilla Public License version 1.1
|
||||
with a permitted attribution clause. You may obtain a
|
||||
copy of the License at
|
||||
|
||||
http://www.alfresco.org/legal/license.txt
|
||||
|
||||
Unless required by applicable law or agreed to in writing,
|
||||
software distributed under the License is distributed on an
|
||||
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
|
||||
either express or implied. See the License for the specific
|
||||
language governing permissions and limitations under the
|
||||
License.
|
||||
--%>
|
||||
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
|
||||
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
|
||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
|
||||
<%@ taglib uri="/WEB-INF/alfresco.tld" prefix="a" %>
|
||||
<%@ taglib uri="/WEB-INF/repo.tld" prefix="r" %>
|
||||
|
||||
<%@ page buffer="32kb" contentType="text/html;charset=UTF-8" %>
|
||||
<%@ page isELIgnored="false" %>
|
||||
<%@ page import="org.alfresco.web.ui.common.PanelGenerator" %>
|
||||
|
||||
<r:page titleId="title_edit_space">
|
||||
|
||||
<script language="JavaScript1.2">
|
||||
function checkButtonState()
|
||||
{
|
||||
if (document.getElementById("edit-space:name").value.length == 0)
|
||||
{
|
||||
document.getElementById("edit-space:ok-button").disabled = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
document.getElementById("edit-space:ok-button").disabled = false;
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<f:view>
|
||||
|
||||
<%-- load a bundle of properties with I18N strings --%>
|
||||
<f:loadBundle basename="alfresco.messages.webclient" var="msg"/>
|
||||
|
||||
<h:form acceptCharset="UTF-8" id="edit-space">
|
||||
|
||||
<%-- Main outer table --%>
|
||||
<table cellspacing="0" cellpadding="2">
|
||||
|
||||
<%-- Title bar --%>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<%@ include file="../parts/titlebar.jsp" %>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<%-- Main area --%>
|
||||
<tr valign="top">
|
||||
<%-- Shelf --%>
|
||||
<td>
|
||||
<%@ include file="../parts/shelf.jsp" %>
|
||||
</td>
|
||||
|
||||
<%-- Work Area --%>
|
||||
<td width="100%">
|
||||
<table cellspacing="0" cellpadding="0" width="100%">
|
||||
<%-- Breadcrumb --%>
|
||||
<%@ include file="../parts/breadcrumb.jsp" %>
|
||||
|
||||
<%-- Status and Actions --%>
|
||||
<tr>
|
||||
<td style="background-image: url(<%=request.getContextPath()%>/images/parts/statuspanel_4.gif)" width="4"></td>
|
||||
<td bgcolor="#EEEEEE">
|
||||
|
||||
<%-- Status and Actions inner contents table --%>
|
||||
<%-- Generally this consists of an icon, textual summary and actions for the current object --%>
|
||||
<table cellspacing="4" cellpadding="0" width="100%">
|
||||
<tr>
|
||||
<td width="32">
|
||||
<h:graphicImage id="wizard-logo" url="/images/icons/create_space_large.gif" />
|
||||
</td>
|
||||
<td>
|
||||
<div class="mainTitle"><h:outputText value="#{msg.modify_props_of}" /> '<h:outputText value="#{BrowseBean.actionSpace.name}" />'</div>
|
||||
<div class="mainSubText"><h:outputText value="#{msg.editspace_description}" /></div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</td>
|
||||
<td style="background-image: url(<%=request.getContextPath()%>/images/parts/statuspanel_6.gif)" width="4"></td>
|
||||
</tr>
|
||||
|
||||
<%-- separator row with gradient shadow --%>
|
||||
<tr>
|
||||
<td><img src="<%=request.getContextPath()%>/images/parts/statuspanel_7.gif" width="4" height="9"></td>
|
||||
<td style="background-image: url(<%=request.getContextPath()%>/images/parts/statuspanel_8.gif)"></td>
|
||||
<td><img src="<%=request.getContextPath()%>/images/parts/statuspanel_9.gif" width="4" height="9"></td>
|
||||
</tr>
|
||||
|
||||
<%-- Details --%>
|
||||
<tr valign=top>
|
||||
<td style="background-image: url(<%=request.getContextPath()%>/images/parts/whitepanel_4.gif)" width="4"></td>
|
||||
<td>
|
||||
<table cellspacing="0" cellpadding="3" border="0" width="100%">
|
||||
<tr>
|
||||
<td width="100%" valign="top">
|
||||
|
||||
<a:errors message="#{msg.error_create_space_dialog}" styleClass="errorMessage" />
|
||||
|
||||
<% PanelGenerator.generatePanelStart(out, request.getContextPath(), "white", "white"); %>
|
||||
<table cellpadding="2" cellspacing="2" border="0" width="100%">
|
||||
<tr>
|
||||
<td colspan="2" class="wizardSectionHeading"><h:outputText value="#{msg.space_props}" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><h:outputText value="#{msg.name}" />:</td>
|
||||
<td>
|
||||
<h:inputText id="name" value="#{EditSpaceDialog.name}" size="35" maxlength="1024"
|
||||
onkeyup="javascript:checkButtonState();" /> *
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><h:outputText value="#{msg.description}" />:</td>
|
||||
<td>
|
||||
<h:inputText value="#{EditSpaceDialog.description}" size="35" maxlength="1024" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td class="paddingRow"></td></tr>
|
||||
<tr>
|
||||
<td colspan="2" class="wizardSectionHeading"> <h:outputText value="#{msg.other_options}" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><h:outputText value="#{msg.choose_space_icon}" />:</td>
|
||||
<td>
|
||||
<table border="0" cellpadding="0" cellspacing="0"><tr><td>
|
||||
<% PanelGenerator.generatePanelStart(out, request.getContextPath(), "blue", "#D3E6FE"); %>
|
||||
<a:imagePickerRadio columns="6" spacing="4" value="#{EditSpaceDialog.icon}">
|
||||
<a:listItems value="#{EditSpaceDialog.icons}" />
|
||||
</a:imagePickerRadio>
|
||||
<% PanelGenerator.generatePanelEnd(out, request.getContextPath(), "blue"); %>
|
||||
</td></tr></table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<% PanelGenerator.generatePanelEnd(out, request.getContextPath(), "white"); %>
|
||||
</td>
|
||||
|
||||
<td valign="top">
|
||||
<% PanelGenerator.generatePanelStart(out, request.getContextPath(), "blue", "#D3E6FE"); %>
|
||||
<table cellpadding="1" cellspacing="1" border="0">
|
||||
<tr>
|
||||
<td align="center">
|
||||
<h:commandButton id="ok-button" value="#{msg.ok}" action="#{EditSpaceDialog.finish}" styleClass="wizardButton" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center">
|
||||
<h:commandButton value="#{msg.cancel}" action="#{EditSpaceDialog.cancel}" styleClass="wizardButton" />
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<% PanelGenerator.generatePanelEnd(out, request.getContextPath(), "blue"); %>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
<td style="background-image: url(<%=request.getContextPath()%>/images/parts/whitepanel_6.gif)" width="4"></td>
|
||||
</tr>
|
||||
|
||||
<%-- separator row with bottom panel graphics --%>
|
||||
<tr>
|
||||
<td><img src="<%=request.getContextPath()%>/images/parts/whitepanel_7.gif" width="4" height="4"></td>
|
||||
<td width="100%" align="center" style="background-image: url(<%=request.getContextPath()%>/images/parts/whitepanel_8.gif)"></td>
|
||||
<td><img src="<%=request.getContextPath()%>/images/parts/whitepanel_9.gif" width="4" height="4"></td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</h:form>
|
||||
|
||||
</f:view>
|
||||
|
||||
</r:page>
|
@@ -163,7 +163,7 @@
|
||||
<f:facet name="title">
|
||||
<r:permissionEvaluator value="#{SpaceDetailsBean.space}" allow="Write">
|
||||
<a:actionLink id="titleLink1" value="#{msg.modify}" showLink="false" image="/images/icons/Change_details.gif"
|
||||
action="editSpaceProperties" actionListener="#{EditSpaceDialog.startWizardForEdit}" />
|
||||
action="dialog:editSpace" />
|
||||
</r:permissionEvaluator>
|
||||
</f:facet>
|
||||
</h:panelGroup>
|
||||
|
@@ -20,9 +20,7 @@
|
||||
<%@ taglib uri="/WEB-INF/alfresco.tld" prefix="a" %>
|
||||
<%@ taglib uri="/WEB-INF/repo.tld" prefix="r" %>
|
||||
|
||||
<%@ page import="org.alfresco.web.ui.common.PanelGenerator" %>
|
||||
|
||||
<script language="JavaScript1.2">
|
||||
<script type="text/javascript">
|
||||
|
||||
window.onload = pageLoaded;
|
||||
|
||||
@@ -48,10 +46,11 @@
|
||||
|
||||
<%-- Create Space Dialog Fragment --%>
|
||||
|
||||
<%-- TODO: Move this to the container page and add error-message-id attribute to dialog config --%>
|
||||
|
||||
<a:errors message="#{msg.error_create_space_dialog}" styleClass="errorMessage" />
|
||||
|
||||
<f:verbatim>
|
||||
<% PanelGenerator.generatePanelStart(out, request.getContextPath(), "white", "white"); %>
|
||||
<table cellpadding="2" cellspacing="2" border="0" width="100%">
|
||||
<tr>
|
||||
<td colspan="2" class="wizardSectionHeading">
|
||||
@@ -119,7 +118,5 @@
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<% PanelGenerator.generatePanelEnd(out, request.getContextPath(), "white"); %>
|
||||
|
||||
</f:verbatim>
|
||||
|
||||
|
36
source/web/jsp/spaces/edit-space-dialog.jsp
Normal file
36
source/web/jsp/spaces/edit-space-dialog.jsp
Normal file
@@ -0,0 +1,36 @@
|
||||
<%--
|
||||
Copyright (C) 2005 Alfresco, Inc.
|
||||
|
||||
Licensed under the Mozilla Public License version 1.1
|
||||
with a permitted attribution clause. You may obtain a
|
||||
copy of the License at
|
||||
|
||||
http://www.alfresco.org/legal/license.txt
|
||||
|
||||
Unless required by applicable law or agreed to in writing,
|
||||
software distributed under the License is distributed on an
|
||||
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
|
||||
either express or implied. See the License for the specific
|
||||
language governing permissions and limitations under the
|
||||
License.
|
||||
--%>
|
||||
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
|
||||
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
|
||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
|
||||
<%@ taglib uri="/WEB-INF/alfresco.tld" prefix="a" %>
|
||||
<%@ taglib uri="/WEB-INF/repo.tld" prefix="r" %>
|
||||
|
||||
<%-- Edit Space Dialog Fragment --%>
|
||||
|
||||
<%-- TODO: Move this to the container page and add error-message-id attribute to dialog config --%>
|
||||
|
||||
<a:errors message="#{msg.error_dialog}" styleClass="errorMessage" />
|
||||
|
||||
<h:panelGrid columns="1" rowClasses="wizardSectionHeading, paddingRow"
|
||||
cellpadding="2" cellspacing="2" width="100%">
|
||||
<h:outputText value="#{msg.space_props}" />
|
||||
<r:propertySheetGrid id="space-props" value="#{DialogManager.bean.editableNode}"
|
||||
var="spaceProps" columns="1" labelStyleClass="propertiesLabel"
|
||||
externalConfig="true" cellpadding="2" cellspacing="2" />
|
||||
</h:panelGrid>
|
||||
|
@@ -111,6 +111,8 @@
|
||||
|
||||
<td width="100%" valign="top">
|
||||
|
||||
<%-- Externalise the error message into an error-message-id attribute on the wizard config --%>
|
||||
|
||||
<a:errors message="#{msg.error_wizard}" styleClass="errorMessage" />
|
||||
|
||||
<% PanelGenerator.generatePanelStart(out, request.getContextPath(), "white", "white"); %>
|
||||
|
Reference in New Issue
Block a user