mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-06-23 18:05:32 +00:00
Added document level security
Fixed AWC-407 Added helper to Application to get client config git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@2114 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
parent
e9c3ca1be4
commit
fd5330fe56
@ -22,7 +22,9 @@ editfileinline_description=Edit the content of the document, then click Save.
|
||||
createfile_description=Enter new content.
|
||||
manageusers_description=Manage the users of the repository.
|
||||
manage_invited_users_description=Manage the permissions you have granted to users who access your space.
|
||||
manage_content_users_description=Manage the permissions you have granted to users who access your content.
|
||||
modify_user_roles_description=Modify the permissions granted to a user for accessing your space.
|
||||
modify_content_user_roles_description=Modify the permissions granted to a user for accessing your content.
|
||||
advancedsearch_description=Perform a more detailed search of the repository.
|
||||
editdocument_description=Modify the document properties then click OK.
|
||||
editcategory_description=Set the category for the document then click OK.
|
||||
@ -220,6 +222,7 @@ manage_rules=Manage Content Rules
|
||||
manage_users=Manage System Users
|
||||
manage_groups=Manage User Groups
|
||||
manage_invited_users=Manage Space Users
|
||||
manage_content_users=Manage Content Users
|
||||
modify_user_roles=Modify User Roles for
|
||||
modify=Modify
|
||||
view=View
|
||||
@ -416,7 +419,7 @@ send_email=Do you want to send an email to notify the invited users?
|
||||
subject=Subject
|
||||
body=Body
|
||||
automatic_text=Automatic text
|
||||
invite_space=You have been invited to ''{0}'' by {1}.
|
||||
invited_to=You have been invited to ''{0}'' by {1}.
|
||||
invite_role=You will have the role of: {0}
|
||||
invite_finish_instruction=To close this wizard and apply your changes click Finish. To review or change your selections click Back.
|
||||
remove_invited_user_info=To remove an invited user from this space, click Yes.
|
||||
@ -425,6 +428,13 @@ space_owner=User ''{0}'' is the current owner of this space.
|
||||
users_and_groups=Users and Groups
|
||||
authority=Username
|
||||
|
||||
# Invite Content Users Wizard messages
|
||||
invite_content_title=Invite Content Users Wizard
|
||||
invite_content_desc=This wizard helps you to give other users access to your content.
|
||||
invite_content_step1_desc=Select the users and roles they will play for this content.
|
||||
remove_content_user_info=To remove an invited user from this content, click Yes.
|
||||
content_owner=User ''{0}'' is the current owner of this content.
|
||||
|
||||
# System Users messages
|
||||
create_user=Create User
|
||||
change_password=Change Password
|
||||
@ -746,6 +756,8 @@ title_browse=Alfresco Web Client
|
||||
title_create_space=Create Space
|
||||
title_inviteusers_invite=Invite Users - Invite
|
||||
title_inviteusers_notify=Invite Users - Notify
|
||||
title_invitecontentusers_invite=Invite Content Users - Invite
|
||||
title_invitecontentusers_notify=Invite Content Users - Notify
|
||||
title_change_user_roles=Change User Roles
|
||||
title_remove_invited_user=Remove Invited User
|
||||
title_advanced_search=Advanced Search
|
||||
@ -772,6 +784,7 @@ title_undo_checkout=Undo Check Out
|
||||
title_update_file=Update File Content
|
||||
title_users=User Management
|
||||
title_invited_users=Manage Invited Users
|
||||
title_content_users=Manage Content Users
|
||||
title_add_content_props=Add Content - Properties
|
||||
title_add_content_summary=Add Content - Summary
|
||||
title_add_content_upload=Add Content - Upload
|
||||
@ -923,6 +936,7 @@ delete_user_info=To delete this user, click Yes.
|
||||
delete_rule_confirm=Are you sure you want to delete \"{0}\"?
|
||||
delete_user_confirm=The User will no longer be able to access the system. Are you sure you want to delete user \"{0}\"?
|
||||
remove_invited_user_confirm=The User will no longer be able to access the documents and folders in this space. Are you sure you want to remove user \"{0}\"?
|
||||
remove_content_user_confirm=The User will no longer be able to access this content. Are you sure you want to remove user \"{0}\"?
|
||||
delete_companyroot_confirm=WARNING: This folder is a special folder accessed by all Users! Please be sure that you wish to delete this folder. It may cause System Errors if you remove it.
|
||||
|
||||
# Status Messages
|
||||
|
@ -118,6 +118,9 @@
|
||||
<!-- the type of edit link to use, NOTE: inline editable will always take precedence -->
|
||||
<!-- can be: http|webdav|cifs -->
|
||||
<edit-link-type>http</edit-link-type>
|
||||
|
||||
<!-- the from address to use when sending emails from the client -->
|
||||
<from-email-address>alfresco@alfresco.org</from-email-address>
|
||||
</client>
|
||||
</config>
|
||||
|
||||
|
@ -39,6 +39,7 @@ import org.alfresco.service.cmr.repository.StoreRef;
|
||||
import org.alfresco.web.app.servlet.AuthenticationHelper;
|
||||
import org.alfresco.web.bean.ErrorBean;
|
||||
import org.alfresco.web.bean.repository.User;
|
||||
import org.alfresco.web.config.ClientConfigElement;
|
||||
import org.alfresco.web.config.ServerConfigElement;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.springframework.web.context.WebApplicationContext;
|
||||
@ -546,6 +547,18 @@ public class Application
|
||||
Application.BEAN_CONFIG_SERVICE);
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper to get the client config element from the config service
|
||||
*
|
||||
* @param context FacesContext
|
||||
* @return The ClientConfigElement
|
||||
*/
|
||||
public static ClientConfigElement getClientConfig(FacesContext context)
|
||||
{
|
||||
return (ClientConfigElement)getConfigService(context).getGlobalConfig().
|
||||
getConfigElement(ClientConfigElement.CONFIG_ELEMENT_ID);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the repository store URL
|
||||
*
|
||||
|
@ -1213,9 +1213,7 @@ public class AdvancedSearchBean
|
||||
{
|
||||
if (clientConfigElement == null)
|
||||
{
|
||||
ConfigService configService = Application.getConfigService(FacesContext.getCurrentInstance());
|
||||
clientConfigElement = (ClientConfigElement)configService.getGlobalConfig().getConfigElement(
|
||||
ClientConfigElement.CONFIG_ELEMENT_ID);
|
||||
clientConfigElement = Application.getClientConfig(FacesContext.getCurrentInstance());
|
||||
}
|
||||
return clientConfigElement;
|
||||
}
|
||||
|
@ -1245,10 +1245,7 @@ public class BrowseBean implements IContextListener
|
||||
*/
|
||||
private void initFromClientConfig()
|
||||
{
|
||||
this.clientConfig = (ClientConfigElement)Application.getConfigService(
|
||||
FacesContext.getCurrentInstance()).getGlobalConfig().
|
||||
getConfigElement(ClientConfigElement.CONFIG_ELEMENT_ID);
|
||||
|
||||
this.clientConfig = Application.getClientConfig(FacesContext.getCurrentInstance());
|
||||
this.browseViewMode = clientConfig.getDefaultView(PAGE_NAME_BROWSE);
|
||||
this.browsePageSize = clientConfig.getDefaultPageSize(PAGE_NAME_BROWSE,
|
||||
this.browseViewMode);
|
||||
|
@ -952,22 +952,20 @@ public class ForumsBean implements IContextListener
|
||||
*/
|
||||
private void initFromClientConfig()
|
||||
{
|
||||
this.clientConfig = (ClientConfigElement)Application.getConfigService(
|
||||
FacesContext.getCurrentInstance()).getGlobalConfig().
|
||||
getConfigElement(ClientConfigElement.CONFIG_ELEMENT_ID);
|
||||
this.clientConfig = Application.getClientConfig(FacesContext.getCurrentInstance());
|
||||
|
||||
// get the defaults for the forums page
|
||||
this.forumsViewMode = clientConfig.getDefaultView(PAGE_NAME_FORUMS);
|
||||
this.forumsViewMode = this.clientConfig.getDefaultView(PAGE_NAME_FORUMS);
|
||||
this.forumsPageSize = this.clientConfig.getDefaultPageSize(PAGE_NAME_FORUMS,
|
||||
this.forumsViewMode);
|
||||
|
||||
// get the default for the forum page
|
||||
this.forumViewMode = clientConfig.getDefaultView(PAGE_NAME_FORUM);
|
||||
this.forumViewMode = this.clientConfig.getDefaultView(PAGE_NAME_FORUM);
|
||||
this.forumPageSize = this.clientConfig.getDefaultPageSize(PAGE_NAME_FORUM,
|
||||
this.forumViewMode);
|
||||
|
||||
// get the default for the topic page
|
||||
this.topicViewMode = clientConfig.getDefaultView(PAGE_NAME_TOPIC);
|
||||
this.topicViewMode = this.clientConfig.getDefaultView(PAGE_NAME_TOPIC);
|
||||
this.topicPageSize = this.clientConfig.getDefaultPageSize(PAGE_NAME_TOPIC,
|
||||
this.topicViewMode);
|
||||
|
||||
|
@ -540,10 +540,7 @@ public class NavigationBean
|
||||
*/
|
||||
private void initFromClientConfig()
|
||||
{
|
||||
this.clientConfig = (ClientConfigElement)Application.getConfigService(
|
||||
FacesContext.getCurrentInstance()).getGlobalConfig().
|
||||
getConfigElement(ClientConfigElement.CONFIG_ELEMENT_ID);
|
||||
|
||||
this.clientConfig = Application.getClientConfig(FacesContext.getCurrentInstance());
|
||||
this.helpUrl = clientConfig.getHelpUrl();
|
||||
this.shelfExpanded = clientConfig.isShelfVisible();
|
||||
}
|
||||
|
@ -0,0 +1,19 @@
|
||||
package org.alfresco.web.bean.users;
|
||||
|
||||
import org.alfresco.web.bean.repository.Node;
|
||||
|
||||
/**
|
||||
* Concrete implementation providing access to users of the current content/document.
|
||||
*
|
||||
* @author gavinc
|
||||
*/
|
||||
public class ContentUsersBean extends UserMembersBean
|
||||
{
|
||||
/**
|
||||
* @return The space to work against
|
||||
*/
|
||||
public Node getNode()
|
||||
{
|
||||
return this.browseBean.getDocument();
|
||||
}
|
||||
}
|
19
source/java/org/alfresco/web/bean/users/SpaceUsersBean.java
Normal file
19
source/java/org/alfresco/web/bean/users/SpaceUsersBean.java
Normal file
@ -0,0 +1,19 @@
|
||||
package org.alfresco.web.bean.users;
|
||||
|
||||
import org.alfresco.web.bean.repository.Node;
|
||||
|
||||
/**
|
||||
* Concrete implementation providing access to users of the current space.
|
||||
*
|
||||
* @author gavinc
|
||||
*/
|
||||
public class SpaceUsersBean extends UserMembersBean
|
||||
{
|
||||
/**
|
||||
* @return The space to work against
|
||||
*/
|
||||
public Node getNode()
|
||||
{
|
||||
return this.browseBean.getActionSpace();
|
||||
}
|
||||
}
|
@ -45,12 +45,10 @@ import org.alfresco.service.cmr.security.OwnableService;
|
||||
import org.alfresco.service.cmr.security.PermissionService;
|
||||
import org.alfresco.service.cmr.security.PersonService;
|
||||
import org.alfresco.web.app.Application;
|
||||
import org.alfresco.web.app.context.UIContextService;
|
||||
import org.alfresco.web.bean.BrowseBean;
|
||||
import org.alfresco.web.bean.repository.MapNode;
|
||||
import org.alfresco.web.bean.repository.Node;
|
||||
import org.alfresco.web.bean.repository.Repository;
|
||||
import org.alfresco.web.bean.repository.User;
|
||||
import org.alfresco.web.ui.common.Utils;
|
||||
import org.alfresco.web.ui.common.component.UIActionLink;
|
||||
import org.alfresco.web.ui.common.component.data.UIRichList;
|
||||
@ -59,7 +57,7 @@ import org.alfresco.web.ui.repo.WebResources;
|
||||
/**
|
||||
* @author Kevin Roast
|
||||
*/
|
||||
public class UserMembersBean
|
||||
public abstract class UserMembersBean
|
||||
{
|
||||
private static final String MSG_SUCCESS_INHERIT_NOT = "success_not_inherit_permissions";
|
||||
private static final String MSG_SUCCESS_INHERIT = "success_inherit_permissions";
|
||||
@ -69,22 +67,22 @@ public class UserMembersBean
|
||||
private static final String OUTCOME_FINISH = "finish";
|
||||
|
||||
/** NodeService bean reference */
|
||||
private NodeService nodeService;
|
||||
protected NodeService nodeService;
|
||||
|
||||
/** SearchService bean reference */
|
||||
private SearchService searchService;
|
||||
protected SearchService searchService;
|
||||
|
||||
/** PermissionService bean reference */
|
||||
private PermissionService permissionService;
|
||||
protected PermissionService permissionService;
|
||||
|
||||
/** PersonService bean reference */
|
||||
private PersonService personService;
|
||||
protected PersonService personService;
|
||||
|
||||
/** BrowseBean bean refernce */
|
||||
private BrowseBean browseBean;
|
||||
protected BrowseBean browseBean;
|
||||
|
||||
/** OwnableService bean reference */
|
||||
private OwnableService ownableService;
|
||||
protected OwnableService ownableService;
|
||||
|
||||
/** Component reference for Users RichList control */
|
||||
private UIRichList usersRichList;
|
||||
@ -101,6 +99,15 @@ public class UserMembersBean
|
||||
/** roles for current person */
|
||||
private List<PermissionWrapper> personRoles = null;
|
||||
|
||||
// ------------------------------------------------------------------------------
|
||||
// Abstract methods
|
||||
|
||||
/**
|
||||
* Returns the node that is being acted upon
|
||||
*
|
||||
* @return The node to manage permissions for
|
||||
*/
|
||||
public abstract Node getNode();
|
||||
|
||||
// ------------------------------------------------------------------------------
|
||||
// Bean property getters and setters
|
||||
@ -153,14 +160,6 @@ public class UserMembersBean
|
||||
this.browseBean = browseBean;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return The space to work against
|
||||
*/
|
||||
public Node getSpace()
|
||||
{
|
||||
return this.browseBean.getActionSpace();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Returns the usersRichList.
|
||||
*/
|
||||
@ -234,7 +233,7 @@ public class UserMembersBean
|
||||
*/
|
||||
public boolean getHasChangePermissions()
|
||||
{
|
||||
return getSpace().hasPermission(PermissionService.CHANGE_PERMISSIONS);
|
||||
return getNode().hasPermission(PermissionService.CHANGE_PERMISSIONS);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -242,7 +241,7 @@ public class UserMembersBean
|
||||
*/
|
||||
public boolean isInheritPermissions()
|
||||
{
|
||||
return this.permissionService.getInheritParentPermissions(getSpace().getNodeRef());
|
||||
return this.permissionService.getInheritParentPermissions(getNode().getNodeRef());
|
||||
}
|
||||
|
||||
/**
|
||||
@ -258,7 +257,7 @@ public class UserMembersBean
|
||||
*/
|
||||
public String getOwner()
|
||||
{
|
||||
return this.ownableService.getOwner(getSpace().getNodeRef());
|
||||
return this.ownableService.getOwner(getNode().getNodeRef());
|
||||
}
|
||||
|
||||
/**
|
||||
@ -279,9 +278,8 @@ public class UserMembersBean
|
||||
// Return all the permissions set against the current node
|
||||
// for any authentication instance (user).
|
||||
// Then combine them into a single list for each authentication found.
|
||||
User user = Application.getCurrentUser(context);
|
||||
Map<String, List<String>> permissionMap = new HashMap<String, List<String>>(13, 1.0f);
|
||||
Set<AccessPermission> permissions = permissionService.getAllSetPermissions(getSpace().getNodeRef());
|
||||
Set<AccessPermission> permissions = permissionService.getAllSetPermissions(getNode().getNodeRef());
|
||||
if (permissions != null)
|
||||
{
|
||||
for (AccessPermission permission : permissions)
|
||||
@ -326,8 +324,7 @@ public class UserMembersBean
|
||||
// it is much better for performance to do this now rather than during page bind
|
||||
Map<String, Object> props = node.getProperties();
|
||||
props.put("fullName", ((String)props.get("firstName")) + ' ' + ((String)props.get("lastName")));
|
||||
|
||||
String userName = (String)props.get("userName");
|
||||
|
||||
props.put("roles", listToString(context, permissionMap.get(authority)));
|
||||
|
||||
props.put("icon", WebResources.IMAGE_PERSON);
|
||||
@ -426,7 +423,7 @@ public class UserMembersBean
|
||||
|
||||
// setup roles for this Authority
|
||||
List<PermissionWrapper> userPermissions = new ArrayList<PermissionWrapper>(4);
|
||||
Set<AccessPermission> permissions = permissionService.getAllSetPermissions(getSpace().getNodeRef());
|
||||
Set<AccessPermission> permissions = permissionService.getAllSetPermissions(getNode().getNodeRef());
|
||||
if (permissions != null)
|
||||
{
|
||||
for (AccessPermission permission : permissions)
|
||||
@ -471,7 +468,7 @@ public class UserMembersBean
|
||||
{
|
||||
// change the value to the new selected value
|
||||
boolean inheritPermissions = (Boolean)event.getNewValue();
|
||||
this.permissionService.setInheritParentPermissions(getSpace().getNodeRef(), inheritPermissions);
|
||||
this.permissionService.setInheritParentPermissions(getNode().getNodeRef(), inheritPermissions);
|
||||
|
||||
// inform the user that the change occured
|
||||
FacesContext context = FacesContext.getCurrentInstance();
|
||||
@ -542,7 +539,7 @@ public class UserMembersBean
|
||||
|
||||
// clear the currently set permissions for this user
|
||||
// and add each of the new permissions in turn
|
||||
NodeRef nodeRef = getSpace().getNodeRef();
|
||||
NodeRef nodeRef = getNode().getNodeRef();
|
||||
this.permissionService.clearPermission(nodeRef, getPersonAuthority());
|
||||
for (PermissionWrapper wrapper : personRoles)
|
||||
{
|
||||
@ -585,7 +582,7 @@ public class UserMembersBean
|
||||
if (getPersonAuthority() != null)
|
||||
{
|
||||
// clear permissions for the specified Authority
|
||||
this.permissionService.clearPermission(getSpace().getNodeRef(), getPersonAuthority());
|
||||
this.permissionService.clearPermission(getNode().getNodeRef(), getPersonAuthority());
|
||||
}
|
||||
|
||||
// commit the transaction
|
||||
|
@ -0,0 +1,66 @@
|
||||
package org.alfresco.web.bean.wizard;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
import javax.faces.context.FacesContext;
|
||||
|
||||
import org.alfresco.model.ContentModel;
|
||||
import org.alfresco.web.app.Application;
|
||||
import org.alfresco.web.bean.repository.Node;
|
||||
|
||||
/**
|
||||
* Concrete implementation providing the ability to invite users to content.
|
||||
*
|
||||
* @author gavinc
|
||||
*/
|
||||
public class InviteContentUsersWizard extends InviteUsersWizard
|
||||
{
|
||||
private static final String WIZARD_TITLE_ID = "invite_content_title";
|
||||
private static final String WIZARD_DESC_ID = "invite_content_desc";
|
||||
private static final String STEP1_DESCRIPTION_ID = "invite_content_step1_desc";
|
||||
|
||||
/** Cache of available content permissions */
|
||||
Set<String> contentPermissions = null;
|
||||
|
||||
/**
|
||||
* @see org.alfresco.web.bean.wizard.AbstractWizardBean#getWizardDescription()
|
||||
*/
|
||||
public String getWizardDescription()
|
||||
{
|
||||
return Application.getMessage(FacesContext.getCurrentInstance(), WIZARD_DESC_ID);
|
||||
}
|
||||
|
||||
/**
|
||||
* @see org.alfresco.web.bean.wizard.AbstractWizardBean#getWizardTitle()
|
||||
*/
|
||||
public String getWizardTitle()
|
||||
{
|
||||
return Application.getMessage(FacesContext.getCurrentInstance(), WIZARD_TITLE_ID);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getStep1DescriptionText()
|
||||
{
|
||||
return STEP1_DESCRIPTION_ID;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Set<String> getPermissionsForType()
|
||||
{
|
||||
if (this.contentPermissions == null)
|
||||
{
|
||||
// TODO: This should really request permissions from TYPE_CONTENT but there are other permissions
|
||||
// defined at that level at the moment that get exposed when we don't want them to, see
|
||||
// http://www.alfresco.org/jira/browse/AR-343
|
||||
this.contentPermissions = this.permissionService.getSettablePermissions(ContentModel.TYPE_CMOBJECT);
|
||||
}
|
||||
|
||||
return this.contentPermissions;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Node getNode()
|
||||
{
|
||||
return this.browseBean.getDocument();
|
||||
}
|
||||
}
|
@ -0,0 +1,63 @@
|
||||
package org.alfresco.web.bean.wizard;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
import javax.faces.context.FacesContext;
|
||||
|
||||
import org.alfresco.model.ContentModel;
|
||||
import org.alfresco.web.app.Application;
|
||||
import org.alfresco.web.bean.repository.Node;
|
||||
|
||||
/**
|
||||
* Concrete implementation providing the ability to invite users to a space.
|
||||
*
|
||||
* @author gavinc
|
||||
*/
|
||||
public class InviteSpaceUsersWizard extends InviteUsersWizard
|
||||
{
|
||||
private static final String WIZARD_TITLE_ID = "invite_title";
|
||||
private static final String WIZARD_DESC_ID = "invite_desc";
|
||||
private static final String STEP1_DESCRIPTION_ID = "invite_step1_desc";
|
||||
|
||||
/** Cache of available folder permissions */
|
||||
Set<String> folderPermissions = null;
|
||||
|
||||
/**
|
||||
* @see org.alfresco.web.bean.wizard.AbstractWizardBean#getWizardDescription()
|
||||
*/
|
||||
public String getWizardDescription()
|
||||
{
|
||||
return Application.getMessage(FacesContext.getCurrentInstance(), WIZARD_DESC_ID);
|
||||
}
|
||||
|
||||
/**
|
||||
* @see org.alfresco.web.bean.wizard.AbstractWizardBean#getWizardTitle()
|
||||
*/
|
||||
public String getWizardTitle()
|
||||
{
|
||||
return Application.getMessage(FacesContext.getCurrentInstance(), WIZARD_TITLE_ID);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getStep1DescriptionText()
|
||||
{
|
||||
return STEP1_DESCRIPTION_ID;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Set<String> getPermissionsForType()
|
||||
{
|
||||
if (this.folderPermissions == null)
|
||||
{
|
||||
this.folderPermissions = this.permissionService.getSettablePermissions(ContentModel.TYPE_FOLDER);
|
||||
}
|
||||
|
||||
return this.folderPermissions;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Node getNode()
|
||||
{
|
||||
return this.browseBean.getActionSpace();
|
||||
}
|
||||
}
|
@ -54,19 +54,16 @@ import org.springframework.mail.javamail.JavaMailSender;
|
||||
/**
|
||||
* @author Kevin Roast
|
||||
*/
|
||||
public class InviteUsersWizard extends AbstractWizardBean
|
||||
public abstract class InviteUsersWizard extends AbstractWizardBean
|
||||
{
|
||||
private static Log logger = LogFactory.getLog(InviteUsersWizard.class);
|
||||
|
||||
/** I18N message strings */
|
||||
private static final String MSG_USERS = "users";
|
||||
private static final String MSG_GROUPS = "groups";
|
||||
private static final String MSG_INVITED_SPACE = "invite_space";
|
||||
private static final String MSG_INVITED_TO = "invited_to";
|
||||
private static final String MSG_INVITED_ROLE = "invite_role";
|
||||
private static final String WIZARD_TITLE_ID = "invite_title";
|
||||
private static final String WIZARD_DESC_ID = "invite_desc";
|
||||
private static final String STEP1_TITLE_ID = "invite_step1_title";
|
||||
private static final String STEP1_DESCRIPTION_ID = "invite_step1_desc";
|
||||
private static final String STEP2_TITLE_ID = "invite_step2_title";
|
||||
private static final String STEP2_DESCRIPTION_ID = "invite_step2_desc";
|
||||
private static final String FINISH_INSTRUCTION_ID = "invite_finish_instruction";
|
||||
@ -74,19 +71,19 @@ public class InviteUsersWizard extends AbstractWizardBean
|
||||
private static final String NOTIFY_YES = "yes";
|
||||
|
||||
/** NamespaceService bean reference */
|
||||
private NamespaceService namespaceService;
|
||||
protected NamespaceService namespaceService;
|
||||
|
||||
/** JavaMailSender bean reference */
|
||||
private JavaMailSender mailSender;
|
||||
protected JavaMailSender mailSender;
|
||||
|
||||
/** AuthorityService bean reference */
|
||||
private AuthorityService authorityService;
|
||||
protected AuthorityService authorityService;
|
||||
|
||||
/** PermissionService bean reference */
|
||||
private PermissionService permissionService;
|
||||
protected PermissionService permissionService;
|
||||
|
||||
/** personService bean reference */
|
||||
private PersonService personService;
|
||||
protected PersonService personService;
|
||||
|
||||
/** datamodel for table of roles for users */
|
||||
private DataModel userRolesDataModel = null;
|
||||
@ -94,9 +91,6 @@ public class InviteUsersWizard extends AbstractWizardBean
|
||||
/** list of user/group role wrapper objects */
|
||||
private List<UserGroupRole> userGroupRoles = null;
|
||||
|
||||
/** Cache of available folder permissions */
|
||||
Set<String> folderPermissions = null;
|
||||
|
||||
/** dialog state */
|
||||
private String notify = NOTIFY_YES;
|
||||
private String subject = null;
|
||||
@ -104,6 +98,20 @@ public class InviteUsersWizard extends AbstractWizardBean
|
||||
private String internalSubject = null;
|
||||
private String automaticText = null;
|
||||
|
||||
/**
|
||||
* @return a cached list of available permissions for the type being dealt with
|
||||
*/
|
||||
protected abstract Set<String> getPermissionsForType();
|
||||
|
||||
/**
|
||||
* @return Returns the node that the permissions are being applied to
|
||||
*/
|
||||
protected abstract Node getNode();
|
||||
|
||||
/**
|
||||
* @return The text to use for the description of step 1 (depends on the type being dealt with)
|
||||
*/
|
||||
protected abstract String getStep1DescriptionText();
|
||||
|
||||
/**
|
||||
* @param namespaceService The NamespaceService to set.
|
||||
@ -186,12 +194,12 @@ public class InviteUsersWizard extends AbstractWizardBean
|
||||
String from = (String)this.nodeService.getProperty(user.getPerson(), ContentModel.PROP_EMAIL);
|
||||
if (from == null || from.length() == 0)
|
||||
{
|
||||
// TODO: get this from spring config?
|
||||
from = "alfresco@alfresco.org";
|
||||
// if the user does not have an email address get the default one from the config service
|
||||
from = Application.getClientConfig(context).getFromEmailAddress();
|
||||
}
|
||||
|
||||
// get the Space to apply changes too
|
||||
NodeRef folderNodeRef = this.browseBean.getActionSpace().getNodeRef();
|
||||
NodeRef nodeRef = this.getNode().getNodeRef();
|
||||
|
||||
// set permissions for each user and send them a mail
|
||||
for (int i=0; i<this.userGroupRoles.size(); i++)
|
||||
@ -200,13 +208,13 @@ public class InviteUsersWizard extends AbstractWizardBean
|
||||
String authority = userGroupRole.getAuthority();
|
||||
|
||||
// find the selected permission ref from it's name and apply for the specified user
|
||||
Set<String> perms = getFolderPermissions();
|
||||
Set<String> perms = getPermissionsForType();
|
||||
for (String permission : perms)
|
||||
{
|
||||
if (userGroupRole.getRole().equals(permission))
|
||||
{
|
||||
this.permissionService.setPermission(
|
||||
folderNodeRef,
|
||||
nodeRef,
|
||||
authority,
|
||||
permission,
|
||||
true);
|
||||
@ -223,7 +231,7 @@ public class InviteUsersWizard extends AbstractWizardBean
|
||||
{
|
||||
if (this.personService.personExists(authority) == true)
|
||||
{
|
||||
notifyUser(this.personService.getPerson(authority), folderNodeRef, from, userGroupRole.getRole());
|
||||
notifyUser(this.personService.getPerson(authority), nodeRef, from, userGroupRole.getRole());
|
||||
}
|
||||
}
|
||||
else if (authType.equals(AuthorityType.GROUP))
|
||||
@ -234,7 +242,7 @@ public class InviteUsersWizard extends AbstractWizardBean
|
||||
{
|
||||
if (this.personService.personExists(userAuth) == true)
|
||||
{
|
||||
notifyUser(this.personService.getPerson(userAuth), folderNodeRef, from, userGroupRole.getRole());
|
||||
notifyUser(this.personService.getPerson(userAuth), nodeRef, from, userGroupRole.getRole());
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -262,11 +270,11 @@ public class InviteUsersWizard extends AbstractWizardBean
|
||||
* Send an email notification to the specified User authority
|
||||
*
|
||||
* @param person Person node representing the user
|
||||
* @param folder Folder node they are invited too
|
||||
* @param node Node they are invited too
|
||||
* @param from From text message
|
||||
* @param roleText The role display label for the user invite notification
|
||||
*/
|
||||
private void notifyUser(NodeRef person, NodeRef folder, String from, String roleText)
|
||||
private void notifyUser(NodeRef person, NodeRef node, String from, String roleText)
|
||||
{
|
||||
String to = (String)this.nodeService.getProperty(person, ContentModel.PROP_EMAIL);
|
||||
|
||||
@ -275,10 +283,10 @@ public class InviteUsersWizard extends AbstractWizardBean
|
||||
String msgRole = Application.getMessage(FacesContext.getCurrentInstance(), MSG_INVITED_ROLE);
|
||||
String roleMessage = MessageFormat.format(msgRole, new Object[] {roleText});
|
||||
|
||||
// TODO: include External Authentication link to the invited space
|
||||
//String args = folder.getStoreRef().getProtocol() + '/' +
|
||||
// folder.getStoreRef().getIdentifier() + '/' +
|
||||
// folder.getId();
|
||||
// TODO: include External Authentication link to the invited node
|
||||
//String args = node.getStoreRef().getProtocol() + '/' +
|
||||
// node.getStoreRef().getIdentifier() + '/' +
|
||||
// node.getId();
|
||||
//String url = ExternalAccessServlet.generateExternalURL(LoginBean.OUTCOME_SPACEDETAILS, args);
|
||||
|
||||
String body = this.internalSubject + "\r\n\r\n" + roleMessage + "\r\n\r\n";// + url + "\r\n\r\n";
|
||||
@ -513,7 +521,7 @@ public class InviteUsersWizard extends AbstractWizardBean
|
||||
ResourceBundle bundle = Application.getBundle(FacesContext.getCurrentInstance());
|
||||
|
||||
// get available roles (grouped permissions) from the permission service
|
||||
Set<String> perms = getFolderPermissions();
|
||||
Set<String> perms = getPermissionsForType();
|
||||
SelectItem[] roles = new SelectItem[perms.size()];
|
||||
int index = 0;
|
||||
for (String permission : perms)
|
||||
@ -590,22 +598,6 @@ public class InviteUsersWizard extends AbstractWizardBean
|
||||
}
|
||||
|
||||
/**
|
||||
* @see org.alfresco.web.bean.wizard.AbstractWizardBean#getWizardDescription()
|
||||
*/
|
||||
public String getWizardDescription()
|
||||
{
|
||||
return Application.getMessage(FacesContext.getCurrentInstance(), WIZARD_DESC_ID);
|
||||
}
|
||||
|
||||
/**
|
||||
* @see org.alfresco.web.bean.wizard.AbstractWizardBean#getWizardTitle()
|
||||
*/
|
||||
public String getWizardTitle()
|
||||
{
|
||||
return Application.getMessage(FacesContext.getCurrentInstance(), WIZARD_TITLE_ID);
|
||||
}
|
||||
|
||||
/**
|
||||
* @see org.alfresco.web.bean.wizard.AbstractWizardBean#getStepDescription()
|
||||
*/
|
||||
public String getStepDescription()
|
||||
@ -616,7 +608,7 @@ public class InviteUsersWizard extends AbstractWizardBean
|
||||
{
|
||||
case 1:
|
||||
{
|
||||
stepDesc = Application.getMessage(FacesContext.getCurrentInstance(), STEP1_DESCRIPTION_ID);
|
||||
stepDesc = Application.getMessage(FacesContext.getCurrentInstance(), getStep1DescriptionText());
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
@ -699,10 +691,10 @@ public class InviteUsersWizard extends AbstractWizardBean
|
||||
StringBuilder buf = new StringBuilder(256);
|
||||
|
||||
String personName = Application.getCurrentUser(context).getFullName(getNodeService());
|
||||
String msgInvite = Application.getMessage(context, MSG_INVITED_SPACE);
|
||||
Node node = this.browseBean.getActionSpace();
|
||||
String msgInvitedTo = Application.getMessage(context, MSG_INVITED_TO);
|
||||
Node node = this.getNode();
|
||||
String path = this.nodeService.getPath(node.getNodeRef()).toDisplayPath(this.nodeService);
|
||||
buf.append(MessageFormat.format(msgInvite, new Object[] {
|
||||
buf.append(MessageFormat.format(msgInvitedTo, new Object[] {
|
||||
path + '/' + node.getName(),
|
||||
personName}) );
|
||||
|
||||
@ -756,21 +748,7 @@ public class InviteUsersWizard extends AbstractWizardBean
|
||||
}
|
||||
|
||||
return outcome;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return a cached list of available folder permissions
|
||||
*/
|
||||
private Set<String> getFolderPermissions()
|
||||
{
|
||||
if (this.folderPermissions == null)
|
||||
{
|
||||
this.folderPermissions = this.permissionService.getSettablePermissions(ContentModel.TYPE_FOLDER);
|
||||
}
|
||||
|
||||
return this.folderPermissions;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Simple wrapper class to represent a user/group and a role combination
|
||||
|
@ -44,6 +44,7 @@ public class ClientConfigElement extends ConfigElementAdapter
|
||||
private String defaultView = "details";
|
||||
private String defaultSortColumn = "name";
|
||||
private String defaultSortOrder = "ascending";
|
||||
private String fromEmailAddress = "alfresco@alfresco.org";
|
||||
|
||||
// list to store all the configured views
|
||||
private List<String> views = new ArrayList<String>(4);
|
||||
@ -323,6 +324,23 @@ public class ClientConfigElement extends ConfigElementAdapter
|
||||
this.helpUrl = helpUrl;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Returns the from email address, if one has not been set
|
||||
* alfresco@alfresco.org will be returned
|
||||
*/
|
||||
public String getFromEmailAddress()
|
||||
{
|
||||
return this.fromEmailAddress;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param fromEmailAddress The from email address to set
|
||||
*/
|
||||
/*package*/ void setFromEmailAddress(String fromEmailAddress)
|
||||
{
|
||||
this.fromEmailAddress = fromEmailAddress;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Returns the edit link type.
|
||||
*/
|
||||
|
@ -55,6 +55,7 @@ public class ClientElementReader implements ConfigElementReader
|
||||
public static final String ELEMENT_TYPE = "type";
|
||||
public static final String ELEMENT_CUSTOMPROPS = "custom-properties";
|
||||
public static final String ELEMENT_METADATA = "meta-data";
|
||||
public static final String ELEMENT_FROMEMAILADDRESS = "from-email-address";
|
||||
public static final String ATTRIBUTE_TYPE = "type";
|
||||
public static final String ATTRIBUTE_PROPERTY = "property";
|
||||
public static final String ATTRIBUTE_ASPECT = "aspect";
|
||||
@ -200,6 +201,13 @@ public class ClientElementReader implements ConfigElementReader
|
||||
configElement.setHomeSpacePermission(permission.getTextTrim());
|
||||
}
|
||||
|
||||
// get the from address to use when sending emails from the client
|
||||
Element fromEmail = element.element(ELEMENT_FROMEMAILADDRESS);
|
||||
if (fromEmail != null)
|
||||
{
|
||||
configElement.setFromEmailAddress(fromEmail.getTextTrim());
|
||||
}
|
||||
|
||||
// get the Advanced Search config block
|
||||
Element advsearch = element.element(ELEMENT_ADVANCEDSEARCH);
|
||||
if (advsearch != null)
|
||||
|
@ -136,9 +136,7 @@ public class UISearchCustomProperties extends SelfRenderingComponent implements
|
||||
private void createComponentsFromConfig(FacesContext context)
|
||||
{
|
||||
DictionaryService dd = Repository.getServiceRegistry(context).getDictionaryService();
|
||||
ConfigService configService = Application.getConfigService(context);
|
||||
ClientConfigElement clientConfig = (ClientConfigElement)configService.getGlobalConfig().getConfigElement(
|
||||
ClientConfigElement.CONFIG_ELEMENT_ID);
|
||||
ClientConfigElement clientConfig = Application.getClientConfig(context);
|
||||
|
||||
// create an appropriate component for each custom property
|
||||
// using the DataDictionary to look-up labels and value types
|
||||
|
@ -24,7 +24,6 @@ import java.util.Map;
|
||||
import javax.faces.context.FacesContext;
|
||||
import javax.faces.el.ValueBinding;
|
||||
|
||||
import org.alfresco.config.ConfigService;
|
||||
import org.alfresco.repo.template.DateCompareMethod;
|
||||
import org.alfresco.repo.template.HasAspectMethod;
|
||||
import org.alfresco.repo.template.I18NMessageMethod;
|
||||
@ -37,7 +36,6 @@ import org.alfresco.service.cmr.repository.TemplateService;
|
||||
import org.alfresco.web.app.Application;
|
||||
import org.alfresco.web.bean.repository.Repository;
|
||||
import org.alfresco.web.bean.repository.User;
|
||||
import org.alfresco.web.config.ClientConfigElement;
|
||||
import org.alfresco.web.ui.common.Utils;
|
||||
import org.alfresco.web.ui.common.component.SelfRenderingComponent;
|
||||
import org.apache.log4j.Logger;
|
||||
@ -113,11 +111,6 @@ public class UITemplate extends SelfRenderingComponent
|
||||
// get the data model to use - building default if required
|
||||
Object model = getModel();
|
||||
|
||||
// get the configservice to find the appropriate processor
|
||||
ConfigService service = Application.getConfigService(context);
|
||||
ClientConfigElement clientConfig = (ClientConfigElement)service.getGlobalConfig().getConfigElement(
|
||||
ClientConfigElement.CONFIG_ELEMENT_ID);
|
||||
|
||||
// get the template to process
|
||||
String template = getTemplate();
|
||||
if (template != null && template.length() != 0)
|
||||
|
@ -146,6 +146,10 @@
|
||||
<from-outcome>manageInvitedUsers</from-outcome>
|
||||
<to-view-id>/jsp/roles/manage-invited-users.jsp</to-view-id>
|
||||
</navigation-case>
|
||||
<navigation-case>
|
||||
<from-outcome>manageContentUsers</from-outcome>
|
||||
<to-view-id>/jsp/roles/manage-content-users.jsp</to-view-id>
|
||||
</navigation-case>
|
||||
<navigation-case>
|
||||
<from-outcome>manageRules</from-outcome>
|
||||
<to-view-id>/jsp/dialog/rules.jsp</to-view-id>
|
||||
@ -363,6 +367,10 @@
|
||||
<from-outcome>showForum</from-outcome>
|
||||
<to-view-id>/jsp/forums/forum.jsp</to-view-id>
|
||||
</navigation-case>
|
||||
<navigation-case>
|
||||
<from-outcome>manageContentUsers</from-outcome>
|
||||
<to-view-id>/jsp/roles/manage-content-users.jsp</to-view-id>
|
||||
</navigation-case>
|
||||
</navigation-rule>
|
||||
|
||||
<navigation-rule>
|
||||
@ -434,18 +442,6 @@
|
||||
</navigation-rule>
|
||||
|
||||
<!-- Manage Invited Users navigation -->
|
||||
<navigation-rule>
|
||||
<from-view-id>/jsp/roles/*</from-view-id>
|
||||
<navigation-case>
|
||||
<from-outcome>cancel</from-outcome>
|
||||
<to-view-id>/jsp/roles/manage-invited-users.jsp</to-view-id>
|
||||
</navigation-case>
|
||||
<navigation-case>
|
||||
<from-outcome>finish</from-outcome>
|
||||
<to-view-id>/jsp/roles/manage-invited-users.jsp</to-view-id>
|
||||
</navigation-case>
|
||||
</navigation-rule>
|
||||
|
||||
<navigation-rule>
|
||||
<from-view-id>/jsp/roles/manage-invited-users.jsp</from-view-id>
|
||||
<navigation-case>
|
||||
@ -462,6 +458,70 @@
|
||||
</navigation-case>
|
||||
</navigation-rule>
|
||||
|
||||
<navigation-rule>
|
||||
<from-view-id>/jsp/roles/edit-user-roles.jsp</from-view-id>
|
||||
<navigation-case>
|
||||
<from-outcome>cancel</from-outcome>
|
||||
<to-view-id>/jsp/roles/manage-invited-users.jsp</to-view-id>
|
||||
</navigation-case>
|
||||
<navigation-case>
|
||||
<from-outcome>finish</from-outcome>
|
||||
<to-view-id>/jsp/roles/manage-invited-users.jsp</to-view-id>
|
||||
</navigation-case>
|
||||
</navigation-rule>
|
||||
|
||||
<navigation-rule>
|
||||
<from-view-id>/jsp/roles/remove-invited-user.jsp</from-view-id>
|
||||
<navigation-case>
|
||||
<from-outcome>cancel</from-outcome>
|
||||
<to-view-id>/jsp/roles/manage-invited-users.jsp</to-view-id>
|
||||
</navigation-case>
|
||||
<navigation-case>
|
||||
<from-outcome>finish</from-outcome>
|
||||
<to-view-id>/jsp/roles/manage-invited-users.jsp</to-view-id>
|
||||
</navigation-case>
|
||||
</navigation-rule>
|
||||
|
||||
<navigation-rule>
|
||||
<from-view-id>/jsp/roles/manage-content-users.jsp</from-view-id>
|
||||
<navigation-case>
|
||||
<from-outcome>inviteUsers</from-outcome>
|
||||
<to-view-id>/jsp/wizard/invite-content-users/invite.jsp</to-view-id>
|
||||
</navigation-case>
|
||||
<navigation-case>
|
||||
<from-outcome>editRoles</from-outcome>
|
||||
<to-view-id>/jsp/roles/edit-content-user-roles.jsp</to-view-id>
|
||||
</navigation-case>
|
||||
<navigation-case>
|
||||
<from-outcome>removeUser</from-outcome>
|
||||
<to-view-id>/jsp/roles/remove-content-user.jsp</to-view-id>
|
||||
</navigation-case>
|
||||
</navigation-rule>
|
||||
|
||||
<navigation-rule>
|
||||
<from-view-id>/jsp/roles/edit-content-user-roles.jsp</from-view-id>
|
||||
<navigation-case>
|
||||
<from-outcome>cancel</from-outcome>
|
||||
<to-view-id>/jsp/roles/manage-content-users.jsp</to-view-id>
|
||||
</navigation-case>
|
||||
<navigation-case>
|
||||
<from-outcome>finish</from-outcome>
|
||||
<to-view-id>/jsp/roles/manage-content-users.jsp</to-view-id>
|
||||
</navigation-case>
|
||||
</navigation-rule>
|
||||
|
||||
<navigation-rule>
|
||||
<from-view-id>/jsp/roles/remove-content-user.jsp</from-view-id>
|
||||
<navigation-case>
|
||||
<from-outcome>cancel</from-outcome>
|
||||
<to-view-id>/jsp/roles/manage-content-users.jsp</to-view-id>
|
||||
</navigation-case>
|
||||
<navigation-case>
|
||||
<from-outcome>finish</from-outcome>
|
||||
<to-view-id>/jsp/roles/manage-content-users.jsp</to-view-id>
|
||||
</navigation-case>
|
||||
</navigation-rule>
|
||||
|
||||
<!-- navigation rules for the Invite Users wizard -->
|
||||
<navigation-rule>
|
||||
<from-view-id>/jsp/wizard/invite-users/*</from-view-id>
|
||||
@ -483,6 +543,27 @@
|
||||
</navigation-case>
|
||||
</navigation-rule>
|
||||
|
||||
<!-- navigation rules for the Invite Content Users wizard -->
|
||||
<navigation-rule>
|
||||
<from-view-id>/jsp/wizard/invite-content-users/*</from-view-id>
|
||||
<navigation-case>
|
||||
<from-outcome>invite</from-outcome>
|
||||
<to-view-id>/jsp/wizard/invite-content-users/invite.jsp</to-view-id>
|
||||
</navigation-case>
|
||||
<navigation-case>
|
||||
<from-outcome>notify</from-outcome>
|
||||
<to-view-id>/jsp/wizard/invite-content-users/notify.jsp</to-view-id>
|
||||
</navigation-case>
|
||||
<navigation-case>
|
||||
<from-outcome>cancel</from-outcome>
|
||||
<to-view-id>/jsp/roles/manage-content-users.jsp</to-view-id>
|
||||
</navigation-case>
|
||||
<navigation-case>
|
||||
<from-outcome>finish</from-outcome>
|
||||
<to-view-id>/jsp/roles/manage-content-users.jsp</to-view-id>
|
||||
</navigation-case>
|
||||
</navigation-rule>
|
||||
|
||||
<!-- System User Management navigation -->
|
||||
<navigation-rule>
|
||||
<from-view-id>/jsp/users/*</from-view-id>
|
||||
|
@ -584,8 +584,41 @@
|
||||
<description>
|
||||
The bean that backs up the Manage Invited Users screens
|
||||
</description>
|
||||
<managed-bean-name>UserMembersBean</managed-bean-name>
|
||||
<managed-bean-class>org.alfresco.web.bean.users.UserMembersBean</managed-bean-class>
|
||||
<managed-bean-name>SpaceUsersBean</managed-bean-name>
|
||||
<managed-bean-class>org.alfresco.web.bean.users.SpaceUsersBean</managed-bean-class>
|
||||
<managed-bean-scope>session</managed-bean-scope>
|
||||
<managed-property>
|
||||
<property-name>nodeService</property-name>
|
||||
<value>#{NodeService}</value>
|
||||
</managed-property>
|
||||
<managed-property>
|
||||
<property-name>searchService</property-name>
|
||||
<value>#{SearchService}</value>
|
||||
</managed-property>
|
||||
<managed-property>
|
||||
<property-name>browseBean</property-name>
|
||||
<value>#{BrowseBean}</value>
|
||||
</managed-property>
|
||||
<managed-property>
|
||||
<property-name>permissionService</property-name>
|
||||
<value>#{PermissionService}</value>
|
||||
</managed-property>
|
||||
<managed-property>
|
||||
<property-name>ownableService</property-name>
|
||||
<value>#{OwnableService}</value>
|
||||
</managed-property>
|
||||
<managed-property>
|
||||
<property-name>personService</property-name>
|
||||
<value>#{personService}</value>
|
||||
</managed-property>
|
||||
</managed-bean>
|
||||
|
||||
<managed-bean>
|
||||
<description>
|
||||
The bean that backs up the Manage Content Users screens
|
||||
</description>
|
||||
<managed-bean-name>ContentUsersBean</managed-bean-name>
|
||||
<managed-bean-class>org.alfresco.web.bean.users.ContentUsersBean</managed-bean-class>
|
||||
<managed-bean-scope>session</managed-bean-scope>
|
||||
<managed-property>
|
||||
<property-name>nodeService</property-name>
|
||||
@ -617,8 +650,53 @@
|
||||
<description>
|
||||
The bean that backs up the Invite Users Wizard
|
||||
</description>
|
||||
<managed-bean-name>InviteUsersWizard</managed-bean-name>
|
||||
<managed-bean-class>org.alfresco.web.bean.wizard.InviteUsersWizard</managed-bean-class>
|
||||
<managed-bean-name>InviteSpaceUsersWizard</managed-bean-name>
|
||||
<managed-bean-class>org.alfresco.web.bean.wizard.InviteSpaceUsersWizard</managed-bean-class>
|
||||
<managed-bean-scope>session</managed-bean-scope>
|
||||
<managed-property>
|
||||
<property-name>nodeService</property-name>
|
||||
<value>#{NodeService}</value>
|
||||
</managed-property>
|
||||
<managed-property>
|
||||
<property-name>searchService</property-name>
|
||||
<value>#{SearchService}</value>
|
||||
</managed-property>
|
||||
<managed-property>
|
||||
<property-name>namespaceService</property-name>
|
||||
<value>#{NamespaceService}</value>
|
||||
</managed-property>
|
||||
<managed-property>
|
||||
<property-name>permissionService</property-name>
|
||||
<value>#{PermissionService}</value>
|
||||
</managed-property>
|
||||
<managed-property>
|
||||
<property-name>personService</property-name>
|
||||
<value>#{personService}</value>
|
||||
</managed-property>
|
||||
<managed-property>
|
||||
<property-name>navigator</property-name>
|
||||
<value>#{NavigationBean}</value>
|
||||
</managed-property>
|
||||
<managed-property>
|
||||
<property-name>browseBean</property-name>
|
||||
<value>#{BrowseBean}</value>
|
||||
</managed-property>
|
||||
<managed-property>
|
||||
<property-name>mailSender</property-name>
|
||||
<value>#{mailService}</value>
|
||||
</managed-property>
|
||||
<managed-property>
|
||||
<property-name>authorityService</property-name>
|
||||
<value>#{AuthorityService}</value>
|
||||
</managed-property>
|
||||
</managed-bean>
|
||||
|
||||
<managed-bean>
|
||||
<description>
|
||||
The bean that backs up the Invite Content Users Wizard
|
||||
</description>
|
||||
<managed-bean-name>InviteContentUsersWizard</managed-bean-name>
|
||||
<managed-bean-class>org.alfresco.web.bean.wizard.InviteContentUsersWizard</managed-bean-class>
|
||||
<managed-bean-scope>session</managed-bean-scope>
|
||||
<managed-property>
|
||||
<property-name>nodeService</property-name>
|
||||
|
@ -164,6 +164,12 @@
|
||||
<a:actionLink value="#{msg.take_ownership}" image="/images/icons/take_ownership.gif" actionListener="#{DocumentDetailsBean.takeOwnership}" id="takeOwnership" />
|
||||
</r:permissionEvaluator>
|
||||
|
||||
<r:permissionEvaluator value="#{DocumentDetailsBean.document}" allow="ChangePermissions">
|
||||
<a:actionLink value="#{msg.manage_content_users}" image="/images/icons/invite.gif" action="dialog:manageContentUsers" actionListener="#{BrowseBean.setupContentAction}">
|
||||
<f:param name="id" value="#{DocumentDetailsBean.id}" />
|
||||
</a:actionLink>
|
||||
</r:permissionEvaluator>
|
||||
|
||||
<%-- create shortcut --%>
|
||||
<a:actionLink value="#{msg.create_shortcut}" image="/images/icons/shortcut.gif" actionListener="#{UserShortcutsBean.createShortcut}">
|
||||
<f:param name="id" value="#{DocumentDetailsBean.id}" />
|
||||
|
208
source/web/jsp/roles/edit-content-user-roles.jsp
Normal file
208
source/web/jsp/roles/edit-content-user-roles.jsp
Normal file
@ -0,0 +1,208 @@
|
||||
<%--
|
||||
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_change_user_roles">
|
||||
|
||||
<f:view>
|
||||
|
||||
<%-- load a bundle of properties with I18N strings --%>
|
||||
<f:loadBundle basename="alfresco.messages.webclient" var="msg"/>
|
||||
|
||||
<h:form acceptCharset="UTF-8" id="invite-users">
|
||||
|
||||
<%-- 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 valign="top">
|
||||
<td width="32">
|
||||
<h:graphicImage id="wizard-logo" url="/images/icons/edituser_large.gif" />
|
||||
</td>
|
||||
<td>
|
||||
<div class="mainSubTitle"><h:outputText value='#{BrowseBean.document.name}' /></div>
|
||||
<div class="mainTitle">
|
||||
<h:outputText value="#{msg.modify_user_roles}" />
|
||||
'<h:outputText value="#{ContentUsersBean.personName}" />'
|
||||
</div>
|
||||
<div class="mainSubText"><h:outputText value="#{msg.modify_content_user_roles_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">
|
||||
<% PanelGenerator.generatePanelStart(out, request.getContextPath(), "white", "white"); %>
|
||||
<table cellpadding="2" cellspacing="2" border="0" width="100%">
|
||||
<tr>
|
||||
<td class="mainSubTitle"><h:outputText value="#{msg.change_user_roles}" /></td>
|
||||
</tr>
|
||||
<tr><td class="paddingRow"></td></tr>
|
||||
<tr>
|
||||
<td>1. <h:outputText value="#{msg.select_role}" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<h:selectOneListbox id="roles" style="width:250px" size="5">
|
||||
<f:selectItems value="#{InviteContentUsersWizard.roles}" />
|
||||
</h:selectOneListbox>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
2. <h:commandButton value="#{msg.add_to_list_button}" actionListener="#{ContentUsersBean.addRole}" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td class="paddingRow"></td></tr>
|
||||
<tr>
|
||||
<td><h:outputText value="#{msg.selected_roles}" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<h:dataTable value="#{ContentUsersBean.personRolesDataModel}" var="row"
|
||||
rowClasses="selectedItemsRow,selectedItemsRowAlt"
|
||||
styleClass="selectedItems" headerClass="selectedItemsHeader"
|
||||
cellspacing="0" cellpadding="4"
|
||||
rendered="#{ContentUsersBean.personRolesDataModel.rowCount != 0}">
|
||||
<h:column>
|
||||
<f:facet name="header">
|
||||
<h:outputText value="#{msg.name}" />
|
||||
</f:facet>
|
||||
<h:outputText value="#{row.role}" />
|
||||
</h:column>
|
||||
<h:column>
|
||||
<a:actionLink actionListener="#{ContentUsersBean.removeRole}" image="/images/icons/delete.gif"
|
||||
value="#{msg.remove}" showLink="false" style="padding-left:6px" />
|
||||
</h:column>
|
||||
</h:dataTable>
|
||||
<a:panel id="no-items" rendered="#{ContentUsersBean.personRolesDataModel.rowCount == 0}">
|
||||
<table cellspacing='0' cellpadding='2' border='0' class='selectedItems'>
|
||||
<tr>
|
||||
<td colspan='2' class='selectedItemsHeader'><h:outputText id="no-items-name" value="#{msg.name}" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='selectedItemsRow'><h:outputText id="no-items-msg" value="#{msg.no_selected_items}" /></td>
|
||||
</tr>
|
||||
</table>
|
||||
</a:panel>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td colspan=2 class="paddingRow"></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 value="#{msg.ok}" action="#{ContentUsersBean.finishOK}" styleClass="wizardButton" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center">
|
||||
<h:commandButton value="#{msg.cancel_button}" action="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>
|
||||
|
||||
<%-- Error Messages --%>
|
||||
<tr valign="top">
|
||||
<td style="background-image: url(<%=request.getContextPath()%>/images/parts/whitepanel_4.gif)" width="4"></td>
|
||||
<td>
|
||||
<%-- messages tag to show messages not handled by other specific message tags --%>
|
||||
<h:messages globalOnly="true" styleClass="errorMessage" layout="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>
|
@ -72,7 +72,7 @@
|
||||
<div class="mainSubTitle"><h:outputText value='#{BrowseBean.actionSpace.name}' /></div>
|
||||
<div class="mainTitle">
|
||||
<h:outputText value="#{msg.modify_user_roles}" />
|
||||
'<h:outputText value="#{UserMembersBean.personName}" />'
|
||||
'<h:outputText value="#{SpaceUsersBean.personName}" />'
|
||||
</div>
|
||||
<div class="mainSubText"><h:outputText value="#{msg.modify_user_roles_description}" /></div>
|
||||
</td>
|
||||
@ -109,13 +109,13 @@
|
||||
<tr>
|
||||
<td>
|
||||
<h:selectOneListbox id="roles" style="width:250px" size="5">
|
||||
<f:selectItems value="#{InviteUsersWizard.roles}" />
|
||||
<f:selectItems value="#{InviteSpaceUsersWizard.roles}" />
|
||||
</h:selectOneListbox>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
2. <h:commandButton value="#{msg.add_to_list_button}" actionListener="#{UserMembersBean.addRole}" />
|
||||
2. <h:commandButton value="#{msg.add_to_list_button}" actionListener="#{SpaceUsersBean.addRole}" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td class="paddingRow"></td></tr>
|
||||
@ -124,11 +124,11 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<h:dataTable value="#{UserMembersBean.personRolesDataModel}" var="row"
|
||||
<h:dataTable value="#{SpaceUsersBean.personRolesDataModel}" var="row"
|
||||
rowClasses="selectedItemsRow,selectedItemsRowAlt"
|
||||
styleClass="selectedItems" headerClass="selectedItemsHeader"
|
||||
cellspacing="0" cellpadding="4"
|
||||
rendered="#{UserMembersBean.personRolesDataModel.rowCount != 0}">
|
||||
rendered="#{SpaceUsersBean.personRolesDataModel.rowCount != 0}">
|
||||
<h:column>
|
||||
<f:facet name="header">
|
||||
<h:outputText value="#{msg.name}" />
|
||||
@ -136,11 +136,11 @@
|
||||
<h:outputText value="#{row.role}" />
|
||||
</h:column>
|
||||
<h:column>
|
||||
<a:actionLink actionListener="#{UserMembersBean.removeRole}" image="/images/icons/delete.gif"
|
||||
<a:actionLink actionListener="#{SpaceUsersBean.removeRole}" image="/images/icons/delete.gif"
|
||||
value="#{msg.remove}" showLink="false" style="padding-left:6px" />
|
||||
</h:column>
|
||||
</h:dataTable>
|
||||
<a:panel id="no-items" rendered="#{UserMembersBean.personRolesDataModel.rowCount == 0}">
|
||||
<a:panel id="no-items" rendered="#{SpaceUsersBean.personRolesDataModel.rowCount == 0}">
|
||||
<table cellspacing='0' cellpadding='2' border='0' class='selectedItems'>
|
||||
<tr>
|
||||
<td colspan='2' class='selectedItemsHeader'><h:outputText id="no-items-name" value="#{msg.name}" /></td>
|
||||
@ -162,7 +162,7 @@
|
||||
<table cellpadding="1" cellspacing="1" border="0">
|
||||
<tr>
|
||||
<td align="center">
|
||||
<h:commandButton value="#{msg.ok}" action="#{UserMembersBean.finishOK}" styleClass="wizardButton" />
|
||||
<h:commandButton value="#{msg.ok}" action="#{SpaceUsersBean.finishOK}" styleClass="wizardButton" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
235
source/web/jsp/roles/manage-content-users.jsp
Normal file
235
source/web/jsp/roles/manage-content-users.jsp
Normal file
@ -0,0 +1,235 @@
|
||||
<%--
|
||||
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_content_users">
|
||||
|
||||
<f:view>
|
||||
|
||||
<%-- load a bundle of properties with I18N strings --%>
|
||||
<f:loadBundle basename="alfresco.messages.webclient" var="msg"/>
|
||||
|
||||
<h:form acceptCharset="UTF-8" id="users">
|
||||
|
||||
<%-- 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 valign="top">
|
||||
<td width="32">
|
||||
<h:graphicImage id="wizard-logo" url="/images/icons/users_large.gif" />
|
||||
</td>
|
||||
<td>
|
||||
<div class="mainSubTitle"><h:outputText value='#{BrowseBean.document.name}' /></div>
|
||||
<div class="mainTitle"><h:outputText value="#{msg.manage_content_users}" /></div>
|
||||
<div class="mainSubText">
|
||||
<h:outputFormat value="#{msg.content_owner}" rendered="#{ContentUsersBean.owner != null}">
|
||||
<f:param value="#{ContentUsersBean.owner}" />
|
||||
</h:outputFormat>
|
||||
</div>
|
||||
<div class="mainSubText"><h:outputText value="#{msg.manage_content_users_description}" /></div>
|
||||
</td>
|
||||
<td bgcolor="#465F7D" width=1></td>
|
||||
<td width=100 style="padding-left:2px">
|
||||
<%-- Current object actions --%>
|
||||
<h:outputText style="padding-left:20px;" styleClass="mainSubTitle" value="#{msg.actions}" /><br/>
|
||||
<r:permissionEvaluator value="#{BrowseBean.document}" allow="ChangePermissions">
|
||||
<a:actionLink value="#{msg.invite}" image="/images/icons/invite.gif" padding="4" action="inviteUsers" actionListener="#{InviteContentUsersWizard.startWizard}" />
|
||||
</r:permissionEvaluator>
|
||||
</td>
|
||||
<td bgcolor="#465F7D" width=1></td>
|
||||
<td width=100 style="padding-left:2px">
|
||||
<%-- View mode settings --%>
|
||||
<h:outputText style="padding-left:26px" styleClass="mainSubTitle" value="#{msg.view}"/><br>
|
||||
<a:modeList itemSpacing="3" iconColumnWidth="20" selectedStyleClass="statusListHighlight" selectedImage="/images/icons/Details.gif" value="0">
|
||||
<a:listItem value="0" label="#{msg.user_details}" />
|
||||
</a:modeList>
|
||||
</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="2" cellpadding="2" border="0" width="100%">
|
||||
<tr>
|
||||
<td width="100%" valign="top">
|
||||
|
||||
<a:panel id="users-panel" border="white" bgcolor="white" titleBorder="blue" titleBgcolor="#D3E6FE" styleClass="mainSubTitle" label="#{msg.users_and_groups}">
|
||||
|
||||
<a:richList id="users-list" binding="#{ContentUsersBean.usersRichList}" viewMode="details" pageSize="10"
|
||||
styleClass="recordSet" headerStyleClass="recordSetHeader" rowStyleClass="recordSetRow" altRowStyleClass="recordSetRowAlt" width="100%"
|
||||
value="#{ContentUsersBean.users}" var="r" initialSortColumn="userName" initialSortDescending="true">
|
||||
|
||||
<%-- Primary column with full name --%>
|
||||
<a:column primary="true" width="200" style="padding:2px;text-align:left">
|
||||
<f:facet name="header">
|
||||
<a:sortLink label="#{msg.name}" value="fullName" mode="case-insensitive" styleClass="header"/>
|
||||
</f:facet>
|
||||
<f:facet name="small-icon">
|
||||
<h:graphicImage url="#{r.icon}" />
|
||||
</f:facet>
|
||||
<h:outputText value="#{r.fullName}" />
|
||||
</a:column>
|
||||
|
||||
<%-- Username column --%>
|
||||
<a:column width="120" style="text-align:left">
|
||||
<f:facet name="header">
|
||||
<a:sortLink label="#{msg.authority}" value="userName" styleClass="header"/>
|
||||
</f:facet>
|
||||
<h:outputText value="#{r.userName}" />
|
||||
</a:column>
|
||||
|
||||
<%-- Roles column --%>
|
||||
<a:column style="text-align:left">
|
||||
<f:facet name="header">
|
||||
<a:sortLink label="#{msg.roles}" value="roles" styleClass="header"/>
|
||||
</f:facet>
|
||||
<h:outputText value="#{r.roles}" />
|
||||
</a:column>
|
||||
|
||||
<%-- Actions column --%>
|
||||
<a:column actions="true" style="text-align:left">
|
||||
<f:facet name="header">
|
||||
<h:outputText value="#{msg.actions}"/>
|
||||
</f:facet>
|
||||
<a:actionLink value="#{msg.change_roles}" image="/images/icons/edituser.gif" showLink="false" action="editRoles" actionListener="#{ContentUsersBean.setupUserAction}">
|
||||
<f:param name="userName" value="#{r.userName}" />
|
||||
</a:actionLink>
|
||||
<a:actionLink value="#{msg.remove}" image="/images/icons/delete_person.gif" showLink="false" action="removeUser" actionListener="#{ContentUsersBean.setupUserAction}">
|
||||
<f:param name="userName" value="#{r.userName}" />
|
||||
</a:actionLink>
|
||||
</a:column>
|
||||
|
||||
<a:dataPager styleClass="pager" />
|
||||
</a:richList>
|
||||
|
||||
</a:panel>
|
||||
|
||||
</td>
|
||||
|
||||
<td valign="top">
|
||||
<% PanelGenerator.generatePanelStart(out, request.getContextPath(), "blue", "#D3E6FE"); %>
|
||||
<table cellpadding="0" cellspacing="0" border="0">
|
||||
<tr>
|
||||
<td align="center">
|
||||
<h:commandButton value="#{msg.close}" action="dialog:close" 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>
|
||||
|
||||
<tr>
|
||||
<td style="background-image: url(<%=request.getContextPath()%>/images/parts/whitepanel_4.gif)" width="4"></td>
|
||||
<td>
|
||||
<table cellspacing="2" cellpadding="0" border="0" width="100%">
|
||||
<tr>
|
||||
<td>
|
||||
<h:selectBooleanCheckbox id="chkPermissions" value="#{ContentUsersBean.inheritPermissions}" valueChangeListener="#{ContentUsersBean.inheritPermissionsValueChanged}"
|
||||
onchange="document.forms['users'].submit(); return true;" disabled="#{!ContentUsersBean.hasChangePermissions}" />
|
||||
</td>
|
||||
<td width=100%>
|
||||
<h:outputText value="#{msg.inherit_permissions}" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan=2><h:message for="chkPermissions" styleClass="statusMessage" /></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
<td style="background-image: url(<%=request.getContextPath()%>/images/parts/whitepanel_6.gif)" width="4"></td>
|
||||
</tr>
|
||||
|
||||
<%-- Error Messages --%>
|
||||
<tr valign="top">
|
||||
<td style="background-image: url(<%=request.getContextPath()%>/images/parts/whitepanel_4.gif)" width="4"></td>
|
||||
<td>
|
||||
<%-- messages tag to show messages not handled by other specific message tags --%>
|
||||
<h:messages globalOnly="true" styleClass="errorMessage" layout="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>
|
@ -72,8 +72,8 @@
|
||||
<div class="mainSubTitle"><h:outputText value='#{BrowseBean.actionSpace.name}' /></div>
|
||||
<div class="mainTitle"><h:outputText value="#{msg.manage_invited_users}" /></div>
|
||||
<div class="mainSubText">
|
||||
<h:outputFormat value="#{msg.space_owner}" rendered="#{UserMembersBean.owner != null}">
|
||||
<f:param value="#{UserMembersBean.owner}" />
|
||||
<h:outputFormat value="#{msg.space_owner}" rendered="#{SpaceUsersBean.owner != null}">
|
||||
<f:param value="#{SpaceUsersBean.owner}" />
|
||||
</h:outputFormat>
|
||||
</div>
|
||||
<div class="mainSubText"><h:outputText value="#{msg.manage_invited_users_description}" /></div>
|
||||
@ -83,7 +83,7 @@
|
||||
<%-- Current object actions --%>
|
||||
<h:outputText style="padding-left:20px;" styleClass="mainSubTitle" value="#{msg.actions}" /><br/>
|
||||
<r:permissionEvaluator value="#{NavigationBean.currentNode}" allow="ChangePermissions">
|
||||
<a:actionLink value="#{msg.invite}" image="/images/icons/invite.gif" padding="4" action="inviteUsers" actionListener="#{InviteUsersWizard.startWizard}" />
|
||||
<a:actionLink value="#{msg.invite}" image="/images/icons/invite.gif" padding="4" action="inviteUsers" actionListener="#{InviteSpaceUsersWizard.startWizard}" />
|
||||
</r:permissionEvaluator>
|
||||
</td>
|
||||
<td bgcolor="#465F7D" width=1></td>
|
||||
@ -117,9 +117,9 @@
|
||||
|
||||
<a:panel id="users-panel" border="white" bgcolor="white" titleBorder="blue" titleBgcolor="#D3E6FE" styleClass="mainSubTitle" label="#{msg.users_and_groups}">
|
||||
|
||||
<a:richList id="users-list" binding="#{UserMembersBean.usersRichList}" viewMode="details" pageSize="10"
|
||||
<a:richList id="users-list" binding="#{SpaceUsersBean.usersRichList}" viewMode="details" pageSize="10"
|
||||
styleClass="recordSet" headerStyleClass="recordSetHeader" rowStyleClass="recordSetRow" altRowStyleClass="recordSetRowAlt" width="100%"
|
||||
value="#{UserMembersBean.users}" var="r" initialSortColumn="userName" initialSortDescending="true">
|
||||
value="#{SpaceUsersBean.users}" var="r" initialSortColumn="userName" initialSortDescending="true">
|
||||
|
||||
<%-- Primary column with full name --%>
|
||||
<a:column primary="true" width="200" style="padding:2px;text-align:left">
|
||||
@ -153,10 +153,10 @@
|
||||
<f:facet name="header">
|
||||
<h:outputText value="#{msg.actions}"/>
|
||||
</f:facet>
|
||||
<a:actionLink value="#{msg.change_roles}" image="/images/icons/edituser.gif" showLink="false" action="editRoles" actionListener="#{UserMembersBean.setupUserAction}">
|
||||
<a:actionLink value="#{msg.change_roles}" image="/images/icons/edituser.gif" showLink="false" action="editRoles" actionListener="#{SpaceUsersBean.setupUserAction}">
|
||||
<f:param name="userName" value="#{r.userName}" />
|
||||
</a:actionLink>
|
||||
<a:actionLink value="#{msg.remove}" image="/images/icons/delete_person.gif" showLink="false" action="removeUser" actionListener="#{UserMembersBean.setupUserAction}">
|
||||
<a:actionLink value="#{msg.remove}" image="/images/icons/delete_person.gif" showLink="false" action="removeUser" actionListener="#{SpaceUsersBean.setupUserAction}">
|
||||
<f:param name="userName" value="#{r.userName}" />
|
||||
</a:actionLink>
|
||||
</a:column>
|
||||
@ -191,8 +191,8 @@
|
||||
<table cellspacing="2" cellpadding="0" border="0" width="100%">
|
||||
<tr>
|
||||
<td>
|
||||
<h:selectBooleanCheckbox id="chkPermissions" value="#{UserMembersBean.inheritPermissions}" valueChangeListener="#{UserMembersBean.inheritPermissionsValueChanged}"
|
||||
onchange="document.forms['users'].submit(); return true;" disabled="#{!UserMembersBean.hasChangePermissions}" />
|
||||
<h:selectBooleanCheckbox id="chkPermissions" value="#{SpaceUsersBean.inheritPermissions}" valueChangeListener="#{SpaceUsersBean.inheritPermissionsValueChanged}"
|
||||
onchange="document.forms['users'].submit(); return true;" disabled="#{!SpaceUsersBean.hasChangePermissions}" />
|
||||
</td>
|
||||
<td width=100%>
|
||||
<h:outputText value="#{msg.inherit_permissions}" />
|
||||
|
168
source/web/jsp/roles/remove-content-user.jsp
Normal file
168
source/web/jsp/roles/remove-content-user.jsp
Normal file
@ -0,0 +1,168 @@
|
||||
<%--
|
||||
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_remove_invited_user">
|
||||
|
||||
<f:view>
|
||||
|
||||
<%-- load a bundle of properties with I18N strings --%>
|
||||
<f:loadBundle basename="alfresco.messages.webclient" var="msg"/>
|
||||
|
||||
<%-- set the form name here --%>
|
||||
<h:form acceptCharset="UTF-8" id="remove-user">
|
||||
|
||||
<%-- 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 valign="top">
|
||||
<td width="32">
|
||||
<h:graphicImage url="/images/icons/delete_large.gif"/>
|
||||
</td>
|
||||
<td>
|
||||
<div class="mainSubTitle"><h:outputText value="#{BrowseBean.document.name}" /></div>
|
||||
<div class="mainTitle"><h:outputText value="#{msg.remove_user}" /> '<h:outputText value="#{ContentUsersBean.personName}" />'</div>
|
||||
<div class="mainSubText"><h:outputText value="#{msg.remove_content_user_info}" /></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="4" border="0" width="100%">
|
||||
<tr>
|
||||
|
||||
<td width="100%" valign="top">
|
||||
<% PanelGenerator.generatePanelStart(out, request.getContextPath(), "white", "white"); %>
|
||||
<table cellpadding="2" cellspacing="2" border="0">
|
||||
<tr>
|
||||
<td class="mainSubTitle">
|
||||
<h:outputFormat value="#{msg.remove_content_user_confirm}">
|
||||
<f:param value="#{ContentUsersBean.personName}"/>
|
||||
</h:outputFormat>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<%-- Error Messages --%>
|
||||
<%-- messages tag to show messages not handled by other specific message tags --%>
|
||||
<h:messages globalOnly="true" styleClass="errorMessage" layout="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 value="#{msg.yes}" action="#{ContentUsersBean.removeOK}" styleClass="dialogControls" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td class="dialogButtonSpacing"></td></tr>
|
||||
<tr>
|
||||
<td align="center">
|
||||
<h:commandButton value="#{msg.no}" action="cancel" styleClass="dialogControls" />
|
||||
</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>
|
||||
|
||||
<%-- Error Messages --%>
|
||||
<tr valign="top">
|
||||
<td style="background-image: url(<%=request.getContextPath()%>/images/parts/whitepanel_4.gif)" width="4"></td>
|
||||
<td>
|
||||
<%-- messages tag to show messages not handled by other specific message tags --%>
|
||||
<h:messages globalOnly="true" styleClass="errorMessage" layout="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>
|
@ -71,7 +71,7 @@
|
||||
</td>
|
||||
<td>
|
||||
<div class="mainSubTitle"><h:outputText value="#{BrowseBean.actionSpace.name}" /></div>
|
||||
<div class="mainTitle"><h:outputText value="#{msg.remove_user}" /> '<h:outputText value="#{UserMembersBean.personName}" />'</div>
|
||||
<div class="mainTitle"><h:outputText value="#{msg.remove_user}" /> '<h:outputText value="#{SpaceUsersBean.personName}" />'</div>
|
||||
<div class="mainSubText"><h:outputText value="#{msg.remove_invited_user_info}" /></div>
|
||||
</td>
|
||||
</tr>
|
||||
@ -101,7 +101,7 @@
|
||||
<tr>
|
||||
<td class="mainSubTitle">
|
||||
<h:outputFormat value="#{msg.remove_invited_user_confirm}">
|
||||
<f:param value="#{UserMembersBean.personName}"/>
|
||||
<f:param value="#{SpaceUsersBean.personName}"/>
|
||||
</h:outputFormat>
|
||||
</td>
|
||||
</tr>
|
||||
@ -121,7 +121,7 @@
|
||||
<table cellpadding="1" cellspacing="1" border="0">
|
||||
<tr>
|
||||
<td align="center">
|
||||
<h:commandButton value="#{msg.yes}" action="#{UserMembersBean.removeOK}" styleClass="dialogControls" />
|
||||
<h:commandButton value="#{msg.yes}" action="#{SpaceUsersBean.removeOK}" styleClass="dialogControls" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td class="dialogButtonSpacing"></td></tr>
|
||||
|
234
source/web/jsp/wizard/invite-content-users/invite.jsp
Normal file
234
source/web/jsp/wizard/invite-content-users/invite.jsp
Normal file
@ -0,0 +1,234 @@
|
||||
<%--
|
||||
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_invitecontentusers_invite">
|
||||
|
||||
<f:view>
|
||||
|
||||
<%-- load a bundle of properties with I18N strings --%>
|
||||
<f:loadBundle basename="alfresco.messages.webclient" var="msg"/>
|
||||
|
||||
<h:form acceptCharset="UTF-8" id="invite-users">
|
||||
|
||||
<%-- 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 valign="top">
|
||||
<td width="32">
|
||||
<h:graphicImage id="wizard-logo" url="/images/icons/users_large.gif" />
|
||||
</td>
|
||||
<td>
|
||||
<div class="mainSubTitle"><h:outputText value='#{BrowseBean.document.name}' /></div>
|
||||
<div class="mainTitle"><h:outputText value="#{InviteContentUsersWizard.wizardTitle}" /></div>
|
||||
<div class="mainSubText"><h:outputText value="#{InviteContentUsersWizard.wizardDescription}" /></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="20%" valign="top">
|
||||
<% PanelGenerator.generatePanelStart(out, request.getContextPath(), "blue", "#D3E6FE"); %>
|
||||
<h:outputText styleClass="mainSubTitle" value="#{msg.steps}"/><br>
|
||||
<a:modeList itemSpacing="3" iconColumnWidth="2" selectedStyleClass="statusListHighlight"
|
||||
value="1" disabled="true">
|
||||
<a:listItem value="1" label="1. #{msg.invite_step_1}" />
|
||||
<a:listItem value="2" label="2. #{msg.invite_step_2}" />
|
||||
</a:modeList>
|
||||
<% PanelGenerator.generatePanelEnd(out, request.getContextPath(), "blue"); %>
|
||||
</td>
|
||||
|
||||
<td width="100%" valign="top">
|
||||
|
||||
<a:errors message="#{msg.error_wizard}" styleClass="errorMessage" />
|
||||
|
||||
<% PanelGenerator.generatePanelStart(out, request.getContextPath(), "white", "white"); %>
|
||||
<table cellpadding="2" cellspacing="2" border="0" width="100%">
|
||||
<tr>
|
||||
<td class="mainSubTitle"><h:outputText value="#{InviteContentUsersWizard.stepTitle}" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="mainSubText"><h:outputText value="#{InviteContentUsersWizard.stepDescription}" /></td>
|
||||
</tr>
|
||||
|
||||
<tr><td class="paddingRow"></td></tr>
|
||||
<tr>
|
||||
<td class="mainSubTitle"><h:outputText value="#{msg.specify_usersgroups}" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="mainSubText"><h:outputText value="1. #{msg.select_usersgroups}" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<%-- Picker to select Users/Groups --%>
|
||||
<td><a:genericPicker id="picker" showAddButton="false" filters="#{InviteContentUsersWizard.filters}" queryCallback="#{InviteContentUsersWizard.pickerCallback}" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><h:outputText value="#{msg.role}" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<div style="padding:4px">
|
||||
<h:selectOneListbox id="roles" style="width:250px" size="5">
|
||||
<f:selectItems value="#{InviteContentUsersWizard.roles}" />
|
||||
</h:selectOneListbox>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr><td class="paddingRow"></td></tr>
|
||||
<tr>
|
||||
<td class="mainSubText">
|
||||
2. <h:commandButton value="#{msg.add_to_list_button}" actionListener="#{InviteContentUsersWizard.addSelection}" styleClass="wizardButton" />
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr><td class="paddingRow"></td></tr>
|
||||
<tr>
|
||||
<td class="mainSubText"><h:outputText value="#{msg.selected_usersgroups}" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<h:dataTable value="#{InviteContentUsersWizard.userRolesDataModel}" var="row"
|
||||
rowClasses="selectedItemsRow,selectedItemsRowAlt"
|
||||
styleClass="selectedItems" headerClass="selectedItemsHeader"
|
||||
cellspacing="0" cellpadding="4"
|
||||
rendered="#{InviteContentUsersWizard.userRolesDataModel.rowCount != 0}">
|
||||
<h:column>
|
||||
<f:facet name="header">
|
||||
<h:outputText value="#{msg.name}" />
|
||||
</f:facet>
|
||||
<h:outputText value="#{row.label}" />
|
||||
</h:column>
|
||||
<h:column>
|
||||
<a:actionLink actionListener="#{InviteContentUsersWizard.removeSelection}" image="/images/icons/delete.gif"
|
||||
value="#{msg.remove}" showLink="false" style="padding-left:6px" />
|
||||
</h:column>
|
||||
</h:dataTable>
|
||||
|
||||
<a:panel id="no-items" rendered="#{InviteContentUsersWizard.userRolesDataModel.rowCount == 0}">
|
||||
<table cellspacing='0' cellpadding='2' border='0' class='selectedItems'>
|
||||
<tr>
|
||||
<td colspan='2' class='selectedItemsHeader'><h:outputText id="no-items-name" value="#{msg.name}" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='selectedItemsRow'><h:outputText id="no-items-msg" value="#{msg.no_selected_items}" /></td>
|
||||
</tr>
|
||||
</table>
|
||||
</a:panel>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr><td class="paddingRow"></td></tr>
|
||||
<tr>
|
||||
<td><h:outputText value="#{InviteContentUsersWizard.stepInstructions}" /></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 value="#{msg.next_button}" action="#{InviteContentUsersWizard.next}" styleClass="wizardButton" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td class="wizardButtonSpacing"></td></tr>
|
||||
<tr>
|
||||
<td align="center">
|
||||
<h:commandButton value="#{msg.cancel_button}" action="#{InviteContentUsersWizard.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>
|
215
source/web/jsp/wizard/invite-content-users/notify.jsp
Normal file
215
source/web/jsp/wizard/invite-content-users/notify.jsp
Normal file
@ -0,0 +1,215 @@
|
||||
<%--
|
||||
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_invitecontentusers_notify">
|
||||
|
||||
<f:view>
|
||||
|
||||
<%-- load a bundle of properties with I18N strings --%>
|
||||
<f:loadBundle basename="alfresco.messages.webclient" var="msg"/>
|
||||
|
||||
<h:form acceptCharset="UTF-8" id="notify-users">
|
||||
|
||||
<%-- 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 valign="top">
|
||||
<td width="32">
|
||||
<h:graphicImage id="wizard-logo" url="/images/icons/users_large.gif" />
|
||||
</td>
|
||||
<td>
|
||||
<div class="mainSubTitle"><h:outputText value='#{BrowseBean.document.name}' /></div>
|
||||
<div class="mainTitle"><h:outputText value="#{InviteContentUsersWizard.wizardTitle}" /></div>
|
||||
<div class="mainSubText"><h:outputText value="#{InviteContentUsersWizard.wizardDescription}" /></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="20%" valign="top">
|
||||
<% PanelGenerator.generatePanelStart(out, request.getContextPath(), "blue", "#D3E6FE"); %>
|
||||
<h:outputText styleClass="mainSubTitle" value="#{msg.steps}"/><br>
|
||||
<a:modeList itemSpacing="3" iconColumnWidth="2" selectedStyleClass="statusListHighlight"
|
||||
value="2" disabled="true">
|
||||
<a:listItem value="1" label="1. #{msg.invite_step_1}" />
|
||||
<a:listItem value="2" label="2. #{msg.invite_step_2}" />
|
||||
</a:modeList>
|
||||
<% PanelGenerator.generatePanelEnd(out, request.getContextPath(), "blue"); %>
|
||||
</td>
|
||||
|
||||
<td width="100%" valign="top">
|
||||
|
||||
<a:errors message="#{msg.error_wizard}" styleClass="errorMessage" />
|
||||
|
||||
<% PanelGenerator.generatePanelStart(out, request.getContextPath(), "white", "white"); %>
|
||||
<table cellpadding="2" cellspacing="2" border="0" width="100%">
|
||||
<tr>
|
||||
<td colspan=2 class="mainSubTitle"><h:outputText value="#{InviteContentUsersWizard.stepTitle}" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan=2 class="mainSubText"><h:outputText value="#{InviteContentUsersWizard.stepDescription}" /></td>
|
||||
</tr>
|
||||
|
||||
<tr><td class="paddingRow"></td></tr>
|
||||
<tr>
|
||||
<td colspan=2><h:outputText value="#{msg.send_email}" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan=2>
|
||||
<h:selectOneRadio value="#{InviteContentUsersWizard.notify}">
|
||||
<f:selectItem itemValue="yes" itemLabel="#{msg.yes}" />
|
||||
<f:selectItem itemValue="no" itemLabel="#{msg.no}" />
|
||||
</h:selectOneRadio>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><h:outputText value="#{msg.subject}" />:</td>
|
||||
<td>
|
||||
<h:inputText value="#{InviteContentUsersWizard.subject}" size="50" maxlength="256" />
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><h:outputText value="#{msg.body}" />:</td>
|
||||
<td>
|
||||
<h:inputTextarea value="#{InviteContentUsersWizard.body}" rows="2" cols="48" />
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr><td class="paddingRow"></td></tr>
|
||||
<tr>
|
||||
<td colspan=2>
|
||||
<table border=0 cellspacing=2 cellpadding=0>
|
||||
<tr valign="top">
|
||||
<td>
|
||||
<h:outputText value="#{msg.automatic_text}" />:
|
||||
</td>
|
||||
<td>
|
||||
<h:outputText escape="false" value="#{InviteContentUsersWizard.automaticText}" />
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr><td class="paddingRow"></td></tr>
|
||||
<tr>
|
||||
<td colspan=2><h:outputText value="#{InviteContentUsersWizard.stepInstructions}" /></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 value="#{msg.finish_button}" action="#{InviteContentUsersWizard.finish}" styleClass="wizardButton" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center">
|
||||
<h:commandButton value="#{msg.back_button}" action="#{InviteContentUsersWizard.back}" styleClass="wizardButton" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td class="wizardButtonSpacing"></td></tr>
|
||||
<tr>
|
||||
<td align="center">
|
||||
<h:commandButton value="#{msg.cancel_button}" action="#{InviteContentUsersWizard.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>
|
@ -70,8 +70,8 @@
|
||||
</td>
|
||||
<td>
|
||||
<div class="mainSubTitle"><h:outputText value='#{BrowseBean.actionSpace.name}' /></div>
|
||||
<div class="mainTitle"><h:outputText value="#{InviteUsersWizard.wizardTitle}" /></div>
|
||||
<div class="mainSubText"><h:outputText value="#{InviteUsersWizard.wizardDescription}" /></div>
|
||||
<div class="mainTitle"><h:outputText value="#{InviteSpaceUsersWizard.wizardTitle}" /></div>
|
||||
<div class="mainSubText"><h:outputText value="#{InviteSpaceUsersWizard.wizardDescription}" /></div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
@ -111,10 +111,10 @@
|
||||
<% PanelGenerator.generatePanelStart(out, request.getContextPath(), "white", "white"); %>
|
||||
<table cellpadding="2" cellspacing="2" border="0" width="100%">
|
||||
<tr>
|
||||
<td class="mainSubTitle"><h:outputText value="#{InviteUsersWizard.stepTitle}" /></td>
|
||||
<td class="mainSubTitle"><h:outputText value="#{InviteSpaceUsersWizard.stepTitle}" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="mainSubText"><h:outputText value="#{InviteUsersWizard.stepDescription}" /></td>
|
||||
<td class="mainSubText"><h:outputText value="#{InviteSpaceUsersWizard.stepDescription}" /></td>
|
||||
</tr>
|
||||
|
||||
<tr><td class="paddingRow"></td></tr>
|
||||
@ -126,7 +126,7 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<%-- Picker to select Users/Groups --%>
|
||||
<td><a:genericPicker id="picker" showAddButton="false" filters="#{InviteUsersWizard.filters}" queryCallback="#{InviteUsersWizard.pickerCallback}" /></td>
|
||||
<td><a:genericPicker id="picker" showAddButton="false" filters="#{InviteSpaceUsersWizard.filters}" queryCallback="#{InviteSpaceUsersWizard.pickerCallback}" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><h:outputText value="#{msg.role}" /></td>
|
||||
@ -135,7 +135,7 @@
|
||||
<td>
|
||||
<div style="padding:4px">
|
||||
<h:selectOneListbox id="roles" style="width:250px" size="5">
|
||||
<f:selectItems value="#{InviteUsersWizard.roles}" />
|
||||
<f:selectItems value="#{InviteSpaceUsersWizard.roles}" />
|
||||
</h:selectOneListbox>
|
||||
</div>
|
||||
</td>
|
||||
@ -144,7 +144,7 @@
|
||||
<tr><td class="paddingRow"></td></tr>
|
||||
<tr>
|
||||
<td class="mainSubText">
|
||||
2. <h:commandButton value="#{msg.add_to_list_button}" actionListener="#{InviteUsersWizard.addSelection}" styleClass="wizardButton" />
|
||||
2. <h:commandButton value="#{msg.add_to_list_button}" actionListener="#{InviteSpaceUsersWizard.addSelection}" styleClass="wizardButton" />
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -154,11 +154,11 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<h:dataTable value="#{InviteUsersWizard.userRolesDataModel}" var="row"
|
||||
<h:dataTable value="#{InviteSpaceUsersWizard.userRolesDataModel}" var="row"
|
||||
rowClasses="selectedItemsRow,selectedItemsRowAlt"
|
||||
styleClass="selectedItems" headerClass="selectedItemsHeader"
|
||||
cellspacing="0" cellpadding="4"
|
||||
rendered="#{InviteUsersWizard.userRolesDataModel.rowCount != 0}">
|
||||
rendered="#{InviteSpaceUsersWizard.userRolesDataModel.rowCount != 0}">
|
||||
<h:column>
|
||||
<f:facet name="header">
|
||||
<h:outputText value="#{msg.name}" />
|
||||
@ -166,12 +166,12 @@
|
||||
<h:outputText value="#{row.label}" />
|
||||
</h:column>
|
||||
<h:column>
|
||||
<a:actionLink actionListener="#{InviteUsersWizard.removeSelection}" image="/images/icons/delete.gif"
|
||||
<a:actionLink actionListener="#{InviteSpaceUsersWizard.removeSelection}" image="/images/icons/delete.gif"
|
||||
value="#{msg.remove}" showLink="false" style="padding-left:6px" />
|
||||
</h:column>
|
||||
</h:dataTable>
|
||||
|
||||
<a:panel id="no-items" rendered="#{InviteUsersWizard.userRolesDataModel.rowCount == 0}">
|
||||
<a:panel id="no-items" rendered="#{InviteSpaceUsersWizard.userRolesDataModel.rowCount == 0}">
|
||||
<table cellspacing='0' cellpadding='2' border='0' class='selectedItems'>
|
||||
<tr>
|
||||
<td colspan='2' class='selectedItemsHeader'><h:outputText id="no-items-name" value="#{msg.name}" /></td>
|
||||
@ -186,7 +186,7 @@
|
||||
|
||||
<tr><td class="paddingRow"></td></tr>
|
||||
<tr>
|
||||
<td><h:outputText value="#{InviteUsersWizard.stepInstructions}" /></td>
|
||||
<td><h:outputText value="#{InviteSpaceUsersWizard.stepInstructions}" /></td>
|
||||
</tr>
|
||||
</table>
|
||||
<% PanelGenerator.generatePanelEnd(out, request.getContextPath(), "white"); %>
|
||||
@ -197,13 +197,13 @@
|
||||
<table cellpadding="1" cellspacing="1" border="0">
|
||||
<tr>
|
||||
<td align="center">
|
||||
<h:commandButton value="#{msg.next_button}" action="#{InviteUsersWizard.next}" styleClass="wizardButton" />
|
||||
<h:commandButton value="#{msg.next_button}" action="#{InviteSpaceUsersWizard.next}" styleClass="wizardButton" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td class="wizardButtonSpacing"></td></tr>
|
||||
<tr>
|
||||
<td align="center">
|
||||
<h:commandButton value="#{msg.cancel_button}" action="#{InviteUsersWizard.cancel}" styleClass="wizardButton" />
|
||||
<h:commandButton value="#{msg.cancel_button}" action="#{InviteSpaceUsersWizard.cancel}" styleClass="wizardButton" />
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
@ -70,8 +70,8 @@
|
||||
</td>
|
||||
<td>
|
||||
<div class="mainSubTitle"><h:outputText value='#{BrowseBean.actionSpace.name}' /></div>
|
||||
<div class="mainTitle"><h:outputText value="#{InviteUsersWizard.wizardTitle}" /></div>
|
||||
<div class="mainSubText"><h:outputText value="#{InviteUsersWizard.wizardDescription}" /></div>
|
||||
<div class="mainTitle"><h:outputText value="#{InviteSpaceUsersWizard.wizardTitle}" /></div>
|
||||
<div class="mainSubText"><h:outputText value="#{InviteSpaceUsersWizard.wizardDescription}" /></div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
@ -111,10 +111,10 @@
|
||||
<% PanelGenerator.generatePanelStart(out, request.getContextPath(), "white", "white"); %>
|
||||
<table cellpadding="2" cellspacing="2" border="0" width="100%">
|
||||
<tr>
|
||||
<td colspan=2 class="mainSubTitle"><h:outputText value="#{InviteUsersWizard.stepTitle}" /></td>
|
||||
<td colspan=2 class="mainSubTitle"><h:outputText value="#{InviteSpaceUsersWizard.stepTitle}" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan=2 class="mainSubText"><h:outputText value="#{InviteUsersWizard.stepDescription}" /></td>
|
||||
<td colspan=2 class="mainSubText"><h:outputText value="#{InviteSpaceUsersWizard.stepDescription}" /></td>
|
||||
</tr>
|
||||
|
||||
<tr><td class="paddingRow"></td></tr>
|
||||
@ -123,7 +123,7 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan=2>
|
||||
<h:selectOneRadio value="#{InviteUsersWizard.notify}">
|
||||
<h:selectOneRadio value="#{InviteSpaceUsersWizard.notify}">
|
||||
<f:selectItem itemValue="yes" itemLabel="#{msg.yes}" />
|
||||
<f:selectItem itemValue="no" itemLabel="#{msg.no}" />
|
||||
</h:selectOneRadio>
|
||||
@ -133,14 +133,14 @@
|
||||
<tr>
|
||||
<td><h:outputText value="#{msg.subject}" />:</td>
|
||||
<td>
|
||||
<h:inputText value="#{InviteUsersWizard.subject}" size="50" maxlength="256" />
|
||||
<h:inputText value="#{InviteSpaceUsersWizard.subject}" size="50" maxlength="256" />
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><h:outputText value="#{msg.body}" />:</td>
|
||||
<td>
|
||||
<h:inputTextarea value="#{InviteUsersWizard.body}" rows="2" cols="48" />
|
||||
<h:inputTextarea value="#{InviteSpaceUsersWizard.body}" rows="2" cols="48" />
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -153,7 +153,7 @@
|
||||
<h:outputText value="#{msg.automatic_text}" />:
|
||||
</td>
|
||||
<td>
|
||||
<h:outputText escape="false" value="#{InviteUsersWizard.automaticText}" />
|
||||
<h:outputText escape="false" value="#{InviteSpaceUsersWizard.automaticText}" />
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
@ -162,7 +162,7 @@
|
||||
|
||||
<tr><td class="paddingRow"></td></tr>
|
||||
<tr>
|
||||
<td colspan=2><h:outputText value="#{InviteUsersWizard.stepInstructions}" /></td>
|
||||
<td colspan=2><h:outputText value="#{InviteSpaceUsersWizard.stepInstructions}" /></td>
|
||||
</tr>
|
||||
</table>
|
||||
<% PanelGenerator.generatePanelEnd(out, request.getContextPath(), "white"); %>
|
||||
@ -173,18 +173,18 @@
|
||||
<table cellpadding="1" cellspacing="1" border="0">
|
||||
<tr>
|
||||
<td align="center">
|
||||
<h:commandButton value="#{msg.finish_button}" action="#{InviteUsersWizard.finish}" styleClass="wizardButton" />
|
||||
<h:commandButton value="#{msg.finish_button}" action="#{InviteSpaceUsersWizard.finish}" styleClass="wizardButton" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center">
|
||||
<h:commandButton value="#{msg.back_button}" action="#{InviteUsersWizard.back}" styleClass="wizardButton" />
|
||||
<h:commandButton value="#{msg.back_button}" action="#{InviteSpaceUsersWizard.back}" styleClass="wizardButton" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td class="wizardButtonSpacing"></td></tr>
|
||||
<tr>
|
||||
<td align="center">
|
||||
<h:commandButton value="#{msg.cancel_button}" action="#{InviteUsersWizard.cancel}" styleClass="wizardButton" />
|
||||
<h:commandButton value="#{msg.cancel_button}" action="#{InviteSpaceUsersWizard.cancel}" styleClass="wizardButton" />
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
Loading…
x
Reference in New Issue
Block a user