Index: plugins/workspacesmanager/src/main/java/com/xpn/xwiki/plugin/workspacesmanager/WorkspacesManager.java =================================================================== --- plugins/workspacesmanager/src/main/java/com/xpn/xwiki/plugin/workspacesmanager/WorkspacesManager.java (revision 10100) +++ plugins/workspacesmanager/src/main/java/com/xpn/xwiki/plugin/workspacesmanager/WorkspacesManager.java (working copy) @@ -168,7 +168,16 @@ throw new SpaceManagerException(e); } } - + + public void addInsider(String username, XWikiContext context) throws SpaceManagerException + { + try { + addUserToGroup(username, getInsidersGroupName(), context); + } catch(XWikiException e) { + throw new SpaceManagerException(e); + } + } + /** * @see WorkspacesManagerApi#addReader(String, String, boolean) * @throws WorkspacesManagerException @@ -214,12 +223,20 @@ throws SpaceManagerException { try { - // XWikiGroupService groupService=getGroupService(context); - XWikiDocument groupDoc = - context.getWiki().getDocument(getGlobalAdminGroupName(), context); - if (removeUserFromGroup(userName, groupDoc, context)) { - context.getWiki().saveDocument(groupDoc, context); + if(getGlobalAdmins(0, 0, context).size()>1) + { + XWikiDocument groupDoc = + context.getWiki().getDocument(getGlobalAdminGroupName(), context); + if (removeUserFromGroup(userName, groupDoc, context)) { + context.getWiki().saveDocument(groupDoc, context); + } } + else + { + SpaceManagerException ex=new SpaceManagerException(); + ex.setMessage("At least one global admin is required!"); + throw ex; + } } catch (XWikiException e) { throw new SpaceManagerException(e); } @@ -243,17 +260,50 @@ throw new SpaceManagerException(e); } } + + /** + * @param userName + * @param context + * @throws SpaceManagerException + */ + public void moveToOutsiders(String userName,XWikiContext context) + throws SpaceManagerException + { + try { + XWikiDocument groupDoc = + context.getWiki().getDocument(getInsidersGroupName(), context); + if(removeUserFromGroup(userName, groupDoc,context)) { + context.getWiki().saveDocument(groupDoc,context); + } + } catch (XWikiException e) { + throw new SpaceManagerException(e); + } + } + + /** + * @param userName + * @param context + * @throws SpaceManagerException + */ + public void moveToInsiders(String userName, XWikiContext context) throws SpaceManagerException + { + try { + addInsider(userName, context); + } catch (XWikiException e) { + throw new SpaceManagerException(e); + } + } /** * @param userName * @param groupDoc * @param context - * @return boolean. If true then the objects where removed from the cache. You need to save the - * document so that the changes take efect. + * @return boolean. If true then the objects where removed from the cache. You need to save the document so that the + * changes take efect. * @throws XWikiException */ - private boolean removeUserFromGroup(String userName, XWikiDocument groupDoc, - XWikiContext context) throws XWikiException + private boolean removeUserFromGroup(String userName, XWikiDocument groupDoc, XWikiContext context) + throws XWikiException { boolean needUpdate = false; java.util.Vector groupVector = groupDoc.getObjects("XWiki.XWikiGroups"); @@ -461,8 +511,25 @@ return "XWiki" + WorkspacesManagerExtension.XWIKI_SPACE_SEPARATOR + "XWikiPowerUsersGroup"; } + + /** + * @return the full name of the document that holds the XWiki.XWikiGroups XObjects with all the + * organization insiders + */ + private String getInsidersGroupName() + { + return "XWiki" + WorkspacesManagerExtension.XWIKI_SPACE_SEPARATOR + "XWikiInsiderGroup"; + } /** + * @return the full name of the document that holds the XWiki.XWikiGroups XObjects with all the members + */ + private String getAllMembersGroupName() + { + return "XWiki" + WorkspacesManagerExtension.XWIKI_SPACE_SEPARATOR + "XWikiAllGroup"; + } + + /** * @see WorkspacesManagerApi#getPotentialMembers(String, int, int) * @throws WorkspacesManagerException */ @@ -714,16 +781,68 @@ * @see WorkspacesManagerApi#getMembers(String) * @throws SpaceManagerException */ - public Collection getPowerUsers(int howMany, int startAt, XWikiContext context) - throws SpaceManagerException + public Collection getPowerUsers(int howMany, int startAt, XWikiContext context) throws SpaceManagerException { try { - return getGroupService(context).getAllMembersNamesForGroup(getPowerUsersGroupName(), - howMany, startAt, context); + return getGroupService(context).getAllMembersNamesForGroup(getPowerUsersGroupName(), howMany, startAt, + context); } catch (XWikiException e) { throw new SpaceManagerException(e); } } + + /** + * @see WorkspacesManagerApi#getMembers(String) + * @throws SpaceManagerException + */ + public Collection getMembers(int howMany, int startAt, XWikiContext context) throws SpaceManagerException + { + try { + return getGroupService(context).getAllMembersNamesForGroup(getAllMembersGroupName(), howMany, startAt, + context); + } catch (XWikiException e) { + throw new SpaceManagerException(e); + } + } + + /** + * @see WorkspacesManagerApi#getMembers(String) + * @throws SpaceManagerException + */ + public Collection getInsiders(int howMany, int startAt, XWikiContext context) throws SpaceManagerException + { + try { + return getGroupService(context).getAllMembersNamesForGroup(getInsidersGroupName(), howMany, startAt, + context); + } catch (XWikiException e) { + throw new SpaceManagerException(e); + } + } + + /** + * @see WorkspacesManagerApi#getMembers(String) + * @throws SpaceManagerException + */ + public Collection getOutsiders(int howMany, int startAt, XWikiContext context) throws SpaceManagerException + { + try { + Collection insiders=getGroupService(context).getAllMembersNamesForGroup(getInsidersGroupName(), howMany, startAt, + context); + Collection allMembers=getMembers(0, 0, context); + ArrayList outsiders=new ArrayList(); + for(Object member:allMembers) + { + String memberName=(String)member; + if(!insiders.contains(memberName)) + { + outsiders.add(memberName); + } + } + return outsiders; + } catch (XWikiException e) { + throw new SpaceManagerException(e); + } + } /** * @see WorkspacesManagerApi#getLastSpaces(int, int) Index: plugins/workspacesmanager/src/main/java/com/xpn/xwiki/plugin/workspacesmanager/WorkspacesManagerApi.java =================================================================== --- plugins/workspacesmanager/src/main/java/com/xpn/xwiki/plugin/workspacesmanager/WorkspacesManagerApi.java (revision 10100) +++ plugins/workspacesmanager/src/main/java/com/xpn/xwiki/plugin/workspacesmanager/WorkspacesManagerApi.java (working copy) @@ -40,7 +40,6 @@ */ public class WorkspacesManagerApi extends SpaceManagerPluginApi { - public WorkspacesManagerApi(WorkspacesManager plugin, XWikiContext context) { super(plugin, context); @@ -263,8 +262,42 @@ } return null; } + + /** + * @return the organization insiders + */ + public Collection getInsiders() + { + if (hasProgrammingRights()) { + try { + return getWorkspacesManager().getInsiders(0, 0, context); + } catch (SpaceManagerException e) { + context.put("haserror", "1"); + context.put("lasterror", e.getMessage()); + return Collections.EMPTY_LIST; + } + } + return null; + } /** + * @return the organization outsiders + */ + public Collection getOutsiders() + { + if (hasProgrammingRights()) { + try { + return getWorkspacesManager().getOutsiders(0, 0, context); + } catch (SpaceManagerException e) { + context.put("haserror", "1"); + context.put("lasterror", e.getMessage()); + return Collections.EMPTY_LIST; + } + } + return null; + } + + /** * @param userName the wiki name of the user to find the userspace of * @return if, exists, the unique user workspace for the given user wikiname, null if it does * not exists. @@ -425,7 +458,37 @@ } } } + + /** + * @param userName + */ + public void moveToInsiders(String userName) + { + if (hasProgrammingRights()) { + try { + getWorkspacesManager().moveToInsiders(userName, context); + } catch (SpaceManagerException e) { + context.put("haserror", "1"); + context.put("lasterror", e.getMessage()); + } + } + } + /** + * @param userName + */ + public void moveToOutsiders(String userName) + { + if (hasProgrammingRights()) { + try { + getWorkspacesManager().moveToOutsiders(userName, context); + } catch (SpaceManagerException e) { + context.put("haserror", "1"); + context.put("lasterror", e.getMessage()); + } + } + } + public boolean isGlobalAdmin() { Collection globalAdmins; @@ -443,6 +506,42 @@ } return false; } + + public boolean isInsider() + { + Collection insiders; + try { + insiders = getWorkspacesManager().getInsiders(0, 0, context); + String userName = context.getUser(); + for (Object obj : insiders) { + if (((String) obj).equals(userName)) { + return true; + } + } + } catch (SpaceManagerException e) { + context.put("haserror", "1"); + context.put("lasterror", e.getMessage()); + } + return false; + } + + public boolean isOutsider() + { + Collection outsiders; + try { + outsiders = getWorkspacesManager().getOutsiders(0, 0, context); + String userName = context.getUser(); + for (Object obj : outsiders) { + if (((String) obj).equals(userName)) { + return true; + } + } + } catch (SpaceManagerException e) { + context.put("haserror", "1"); + context.put("lasterror", e.getMessage()); + } + return false; + } public void addWriter(String spaceName, String userName, boolean allowDowngrade) { Index: wiki/src/main/resources/XWiki/XWikiInsiderGroup =================================================================== --- wiki/src/main/resources/XWiki/XWikiInsiderGroup (revision 0) +++ wiki/src/main/resources/XWiki/XWikiInsiderGroup (revision 0) @@ -0,0 +1,58 @@ + + + +XWiki +XWikiInsiderGroup + + +0 + +XWiki.Admin +XWiki.Admin + +XWiki.Admin +1213005534000 +1213005908000 +1213005908000 +4.1 +XWikiInsiderGroup + + + + +false + + +XWiki.TagClass + + + + + + + + +0 +input +1 +tags +1 +Tags +1 + + ,| +30 +0 + +com.xpn.xwiki.objects.classes.StaticListClass + + +XWiki.XWikiInsiderGroup +0 +XWiki.TagClass + + + + +#includeForm("XWiki.XWikiGroupSheet") + Index: wiki/src/main/resources/XWiki/XWikiPowerUsersGroup =================================================================== --- wiki/src/main/resources/XWiki/XWikiPowerUsersGroup (revision 0) +++ wiki/src/main/resources/XWiki/XWikiPowerUsersGroup (revision 0) @@ -0,0 +1,59 @@ + + + +XWiki +XWikiPowerUsersGroup + + +0 + + +XWiki.Admin + +XWiki.Admin +1212498654000 +1213006700000 +1213006700000 +11.1 + + + + + +false + + +XWiki.TagClass + + + + + + + + +0 +input +1 +tags +1 +Tags +1 + + ,| +30 +0 + +com.xpn.xwiki.objects.classes.StaticListClass + + +XWiki.XWikiPowerUsersGroup +0 +XWiki.TagClass + + + + + +#includeForm("XWiki.XWikiGroupSheet") + Index: wiki/src/main/resources/XWSCode/Translations =================================================================== --- wiki/src/main/resources/XWSCode/Translations (revision 10158) +++ wiki/src/main/resources/XWSCode/Translations (working copy) @@ -12,10 +12,10 @@ XWiki.Admin 1206992640000 -1212755459000 -1212755459000 -2.1 - +1212503151000 +1212503151000 +3.1 +Translations @@ -54,526 +54,507 @@ -{table} -XWiki.XWikiPreferences_workspace_creators_admins=Administrators only -XWiki.XWikiPreferences_workspace_creators_powerusers=Administrators & Power users -XWiki.XWikiPreferences_workspace_creators_everybody=Everybody - -XWiki.WorkspaceSpaceClass_accesslevel_public=Public -XWiki.WorkspaceSpaceClass_accesslevel_private=Private -XWiki.WorkspaceSpaceClass_accesslevel_open=Open - -XWiki.WorkspaceSpaceClass_spacetype_workspace=Workspace -XWiki.WorkspaceSpaceClass_spacetype_orgspace=Organization space -XWiki.WorkspaceSpaceClass_spacetype_userspace=Personal space - -XWiki.WorkspaceSpaceClass_color_555555=Grey -XWiki.WorkspaceSpaceClass_color_0000FF=Blue -XWiki.WorkspaceSpaceClass_color_003399=Midnight blue -XWiki.WorkspaceSpaceClass_color_009900=Green -XWiki.WorkspaceSpaceClass_color_009933=See green -XWiki.WorkspaceSpaceClass_color_660033=Purple -XWiki.WorkspaceSpaceClass_color_663300=Brown -XWiki.WorkspaceSpaceClass_color_990000=Light coral -XWiki.WorkspaceSpaceClass_color_996699=Blue violet -XWiki.WorkspaceSpaceClass_color_99CCFF=Sky blue -XWiki.WorkspaceSpaceClass_color_99FF00=Green yellow -XWiki.WorkspaceSpaceClass_color_CC3300=Indian red -XWiki.WorkspaceSpaceClass_color_CC9900=Golden rod -XWiki.WorkspaceSpaceClass_color_CC9999=Thistle -XWiki.WorkspaceSpaceClass_color_CC99FF=Light purple -XWiki.WorkspaceSpaceClass_color_CCCC66=Khaki -XWiki.WorkspaceSpaceClass_color_FF99CC=Pink -XWiki.WorkspaceSpaceClass_color_FFCC33=Orange - -xws.dateformat=MMM d, yyyy -xws.dateformat.withtime=MMM d, yyyy HH:mm - -xws.members.title=Members -xws.members.allmembers=See all members of the workspace -xws.members.admins=Admins -xws.members.writers=Writers -xws.members.readers=Readers - -xws.spacedetails.viewdetails=View details -xws.spacedetails.viewdetailstitle=View detailed information for this workspace -xws.spacedetails.memberadmin=You are member of this workspace, as *administrator* -xws.spacedetails.memberwriter=You are member of this workspace, as *writer* -xws.spacedetails.memberreader=You are member of this workspace, as *reader* -xws.spacedetails.member=You are member of this workspace -xws.spacedetails.notmember=You are not a member of this workspace -xws.spacedetails.creator=Creator -xws.spacedetails.creationdate=Creation date -xws.spacedetails.memberscount=Members count -xws.spacedetails.publicationmode=Publication mode -xws.spacedetails.spacetype=Space type -xws.spacedashboard.recentmodifications=Recent activity on the workspace - -xws.wysiwyg.chooseworkspace=Choose workspace -xws.wysiwyg.docsforapplication=Documents for application -xws.wysiwyg.nodocforthisapp=No document found -xws.wysiwyg.resultsforspace=Results for space -xws.wysiwyg.spacehomelink=Link to this Workspace home page - -xws.search.title=Search -xws.search.date=Date -xws.search.application=Application -xws.search.document=Document -xws.search.lastauthor=Last author -xws.search.at=at - -xws.workspace.homepage=Home page - -xws.activities.workspacecreated=<b>created</b> the workspace -xws.activities.homepageupdated=<b>modified</b> the workspace -xws.activities.wiki.update=<b>modified</b> the wiki page -xws.activities.blog.update=<b>modified</b> the blog post -xws.activities.files.update=<b>updated</b> the file -xws.activities.photos.update=<b>updated</b> the photo gallery -xws.activities.wiki.create=<b>created</b> the wiki page -xws.activities.blog.create=<b>published</b> the blog post -xws.activities.files.create=<b>uploaded</b> a new file -xws.activities.photos.create=<b>created</b> the photo gallery -xws.activities.wiki.delete=<b>deleted</b> the wiki page -xws.activities.blog.delete=<b>deleted</b> the blog post -xws.activities.files.delete=<b>deleted</b> the file -xws.activities.photos.delete=<b>deleted</b> the photo gallery - -xws.admin.adduserstogroup=Add users to the <em>{0}</em> group -xws.admin.addusershelp=Select from the left list of available users the ones you want to add to the group. You can filter on names simply by starting typing in the field. When you click on the arrow next to a user name, you make that user selected for the group, it's name will appear on the right. Once you are happy with your selection, you can validate clicking the button under the lists. Remember that users that are already members of the space will not appear in the selection list. -xws.admin.simplemembers=Simple members -xws.admin.powerusers=Power users -xws.admin.selectedGlobalAdmins=Global admins -xws.admin.moveToSimpleMembers=Move to simple members -xws.admin.moveToPowerUsers=Move to power users -xws.admin.moveToGlobalAdmins=Move to global admins -xws.admin.clicktosave=Click to save -xws.admin.ManageGlobalAdmins&amp;PowerUsers=Manage global admins and power users -xws.admin.availableusers=Available users -xws.admin.selectedusers=Selected users -xws.admin.adduserstospace=Add selected users to group {0} -xws.group.admin=Admin -xws.group.reader=Reader -xws.group.writer=Writer - -xws.menuview.globaladmin=Global admin -xws.menuview.mydashboard=My Dashboard -xws.menuview.myspace=My Space -xws.menuview.myspaces=All My Spaces -xws.menuview.myprofile=My Profile -xws.menuview.logout=Logout - -xws.createworkspace.title=Create a new workspace -xws.createworkspace.enterformdata=Define your new workspace's basic settings -xws.createworkspace.spacetitle=Space name -xws.createworkspace.spacetype=Access level -xws.createworkspace.spacedesc=Description -xws.createworkspace.spaceapps=Applications -xws.createworkspace.spacecolor=Color -xws.createworkspace.spacetitle.legend=<strong>Mandatory -</strong> You can enter up to <span id="spacetitlecharsleft">50</span> more characters for your new space title : -xws.createworkspace.spacedesc.legend=<strong>Optional -</strong> You can enter a short text describing the purpose of this workspace : -xws.createworkspace.spaceapps.legend=Choose the applications you want to install in your workspace from the list below : -xws.createworkspace.spacetype.legend=Select an access level for this workspace : -xws.createworkspace.spacecolor.legend=Choose a background color for your workspace : -xws.createworkspace.submit=Create the space -xws.createworkspace.spacecreated=The space <a href="{0}">{1}</a> has been successfully created. -xws.createworkspace.spacecreationfailed=An error occured while creating the space. -xws.createworkspace.validation.short=The title can't be empty -xws.createworkspace.validation.long=The title can't be longer than 50 characters -xws.creataworkspace.validation.exists=A workspace with this title already exists - -xws.createmyspace.success=Your space has been created with success -xws.createmyspace.error=An error occured while creating your space -xws.createmyspace.notregistered=You cannot create a personnal space since your not registered on this wiki! -xws.createmyspace.spaceof=Personnal space of -xws.createmyspace.submit=Create my space -xws.createmyspace.help=Clicking on the button below will create your personal space. Your personal space includes your private blog, wiki, file manager and photo album. You can use them to store personal informations, notes and files. - -xws.createorgspace.title=Create your organization's space -xws.createorgspace.formlegend=Enter your organization's data -xws.createorgspace.displaytitle=Organization's name -xws.createorgspace.description=Description -xws.createorgspace.submit=Create the organization space -xws.createorgspace.visitorgspace=Visit the organization's space -xws.createorgspace.createworkspaces=Create new workspaces -xws.createorgspace.spacecreated=Your organization's own workspace has been successfully created. You can now start the collaboration, using its applications, or continue and create new workspaces. -xws.createorgspace.mustbeadmin=You must be an admin to create the organization's space -xws.createorgspace.help=Click on this button if you wish to create your organisation's space. The organisation's space includes every user on this XWiki Workspaces. It features a blog, a wiki, a file manager and a photo album. You may want to create it if you wish to publish information meant to address all your users at once. - -xws.space.details.createdby=created by -xws.space.details.on=on -xws.space.details.members=member(s) - -xws.apps.wiki=Wiki -xws.apps.blog=Blog -xws.apps.files=Files -xws.apps.photos=Photos -xws.apps.stream=Workstream -xws.apps.wiki.desc=The wiki provides you with the ability to create new pages and edit them together. -xws.apps.blog.desc=The blog is a place where you can post news and start discussions. -xws.apps.files.desc=The file manager let you upload files (such as Excel sheets & PDFs) to make them available to other space members. -xws.apps.photos.desc=The picture gallery is specifically meant to publish and share images and photographs. -xws.apps.stream.desc=The Workstream allow the members to post 2-lines updates related to the workspace, telling what they currently are working on. -xws.apps.wiki.createwikipage=Add a wiki page -xws.apps.blog.createblogpost=Write a blog post -xws.apps.photos.createphotogallery=Create a gallery -xws.apps.files.createfile=Upload a new file -xws.apps.generic.createentry=Add an entry -xws.apps.manageapps=Manage applications -xws.apps.manageapps.title=Manage applications for this workspace - -xws.tags.managetags=Manage categories -xws.tags.managetags.title=Manage categories for this workspace - -xws.members.managemembers=Manage members -xws.members.managemembers.title=Manage members for this workspace - -xws.mydashboard.recentactivity=Recent activity on my spaces -xws.mydashboard.help=Your dashboard shows you the recent activity on the spaces you are involved with a role : either you are an admin, writer, or a reader. If you want to see the full list of the spaces you can access including public and restricted spaces in which you don't have a specific role, please visit your My spaces page. There's a button too, in the top action bar, to access this list anytime. - -xws.myspaces.myspace=Personal Space -xws.myspaces.orgspace=Organization's space -xws.myspaces.mymemberships=My Memberships -xws.myspaces.publicspaces=Public spaces -xws.myspaces.publicspaces.info=Public spaces are the spaces visible by all registered users -xws.myspaces.openspaces=Open spaces -xws.myspaces.mymemberships.emptylist=You are not a member of any space yet. -xws.myspaces.mymemberships.info=Memberships are the spaces you belong to as a member : reader, writer or admin. -xws.myspaces.getstartedpanel=This page provides a list of all the spaces you have access to, either as an admin, an author or a reader. It allows you to browse through existing public spaces and the private spaces you are a member of (a.k.a. your memberships), as well as your personal space and the organization's one. The page also gives you the ability to create new workspaces when needed. - -xws.register.passwordValidation=Password should be at least 6 chars and cannot exceed 10 chars -xws.register.password2Validation=Passwords mismatch -xws.register.firstnameValidation=First name should be at least 2 chars and cannot be longer that 20. -xws.register.lastnameValidation=Last name should be at least 2 chars and cannot be longer that 20. -xws.register.emailValidation=Email should be under the form name@domain.tld -xws.register.wikinameValidation=Username should be betweend 4 and 20 chars - -xws.admin.welcome=Welcome to Workspaces admin center -xws.admin.managespaces=Manage Workspaces -xws.admin.manageusers=Manage Users - -xws.admin.mailsettings=Mail settings -xws.admin.smtpserver=SMTP server -xws.admin.adminemail=Outgoing email address -xws.admin.registrationsettings=Registration settings -xws.admin.publicregistration=Public registration -xws.admin.usecaptcha=Use captcha for public registration - -xws.admin.activespaces=List of actives spaces -xws.admin.archivedspaces=List of archived spaces -xws.admin.noactivespace=There is no active space yet. -xws.admin.noarchivedspace=There is no archived space yet. -xws.admin.archive.alt=Archive -xws.admin.archive.title=Archive this space -xws.admin.delete.alt=Delete -xws.admin.delete.title=Permanently delete this space -xws.admin.confirmdeletion=Permanently deleting a space delete all the data present in its application : Blog post, Wiki pages, Photo galleries and Files. Confirm you want to permanently delete the space *{0}* and its data. -xws.admin.spacedeleted=The space *{0}* and its data have been successfully deleted. -xws.admin.errordeletingspace=An error occurred while deleting the space {0} -xws.admin.spacearchived=The space *{0}* has been successfully archived. You can now find it in the list of archived spaces, and have at any moment the possibility to restore it active. -xws.admin.errorarchiving=An error occured while archiving the space. -xws.admin.restore.alt=Restore -xws.admin.restore.title=Restore this space -xws.admin.spacerestored=The space *{0}* has been successfully restored. You can find it again in the list of active spaces. -xws.admin.lastworkspaces=Lastest created workspaces -xws.admin.latestusers=Latest users -xws.admin.registernewuser=Register a new user -xws.admin.browseallusers=Browse all users -xws.admin.createnewworkspace=Create a new workspace -xws.admin.manageallspaces=See and manage all workspaces -xws.admin.panel.welcome.title=XWS Admin Center -xws.admin.panel.welcome.content=Welcome to the XWS Admin center. You will find here all the links you need to manage this -xws.admin.panel.links.title=Quick links -xws.admin.panel.links.adminhome=Admin Home -xws.admin.panel.links.manageworkspaces=Manage Workspaces -xws.admin.panel.links.manageusers=Manage users -xws.admin.users.links=Links - -xws.stories.homeapplication=Space home -space.wiki.lastchanges=Last changed documents on workspace {0} -space.wiki.docindex=Documents index for workspace <em>{0}</em> -space.wiki.alldocuments=All wiki documents -space.wiki.nodocument=There is currently no document on this wiki -space.wiki.thead.pagename=Page name -space.wiki.thead.lastmodifiedon=Last modification -space.wiki.thead.lastauthor=Last author -space.wiki.renamepage.title=Rename -space.wiki.renamepage.newname=New name -space.wiki.renamepage.updatedocs=Update backlinks -space.wiki.renamepage.emptyname=Please enter a valid page name -space.wiki.renamepage.alreadyexists==A document with name (<a href="{1}">{0}</a>) already exists in the wiki -space.wiki.createpage=Create a wiki page -space.wiki.createpage.pagename=Page name - -space.blog.blogof=Blog of -space.blog.blogofspace=Blog of space -space.blog.error.noarticlefound=This document does not contain a blog article -space.blog.article.category=Category -space.blog.article.backtoblog=Back to the blog -space.blog.article.title=Article's title -space.blog.article.content=Article's content -space.blog.createarticle=Add a blog article -space.blog.createarticle.articlename=Article's name -space.blog.noarticleforcategory=There is no article in this category -space.blog.article.by=by -space.blog.article.on=on -space.blog.article.modifiedby=modified by -space.blog.article.permalink=permalink -space.blog.article.comments=Comments - -space.stream.pagetitle=Workstream -space.stream.title=What are you working on ? -space.stream.statusupdated=Your status has been successfully updated. -space.stream.statusempty=You cannot update an empty status ! -space.stream.updatesby=Updates by {0} -space.stream.recentupdates=Recent updates on the workspace -space.stream.newer=<< Newer -space.stream.older=Older >> -space.stream.saidonworkstream=said on the <strong>workstream</strong> -space.stream.statustoolong=Your update message is too long. The limit is 200 chars. -space.stream.charsremaining=chars remaining -space.stream.dashboardsalso=Do also post this update on the workspace dashboard and on members personnal dashboards. - -space.files.table.caption=All files for workspace <em>{0}</em> -space.files.addfile=Add this attachment -space.files.uploadnewfile=Upload a new file -space.files.replacefilename=Replace the file name with -space.files.title=Files -space.files.file=File -space.files.fileuploaded=File *{0}* has been successfully uploaded. -space.files.file.details=versions and comments for this file -space.files.file.download=download the latest version of this file -space.files.existingversions=Existing versions -space.files.uploadnewversion=Upload a new version -space.files.tablecaption=Files -space.files.thead.attachtype=Type -space.files.thead.attachname=Name -space.files.thead.attachsize=Size -space.files.thead.attachversion=Version -space.files.thead.attachdate=Date -space.files.thead.attachauthor=Author -space.files.thead.actions=Actions -space.files.fileentry.downloadthisattachment=Download this file -space.files.fileentry.viewattachmenthistory=See file history -space.files.fileentry.confirmdelattachment=Confirm delete file -space.files.fileentry.deletethisattachment=Delete this file -space.files.attachnewfile=Attach a new file -space.files.emptylist=There is no file in this space - -space.photos.galleries.creategallery=Create a new gallery -space.photos.galleries.create.gallerytitle=Gallery's title -space.photos.galleries.gallerydeleted=Galery {0} has been deleted -space.photos.galleries.returntogalleries=Back to the galleries list -space.photos.galleries.photodeleted=deleted -space.photos.galleries.confirmdeletegalleries=Delete {0} and its pictures -space.photos.galleries.confirmdelete=Confirm delete -space.photos.galleries.nogallery=There is no gallery in that space yet -space.photos.galleries=Photo galleries -space.photos.error.nogalleryfound=No photo gallery could be found for this document -space.photos.gallery.editing=Editing -space.photos.gallery.description=Description -space.photos.gallery.deleteconfirm=Are you sure you want to delete this image? -space.photos.gallery.addphotostogallery=Add pictures to the gallery -space.photos.gallery.uploadsuccess=The picture has been successfully added to the gallery -space.photos.gallery.existingphotos=Existing images in the gallery -space.photos.gallery.photo.seeoriginal=See original picture -space.photos.photo.uploadedon=Uploaded on -space.photos.photo.delete=Delete this photo - -space.prefs.categories=Space categories -space.prefs.categories.caption=Categories list -space.prefs.categories.thead.name=Name -space.prefs.categories.thead.actions=Actions -space.prefs.categories.addcategory=Add a category - -space.prefs.details.title=Space informations -space.prefs.details.edit=Edit space informations - -space.prefs.apps.title=Space applications -space.prefs.apps.appsmgrnotfound=The application manager could not be found. -space.prefs.apps.installedapps=Installed applications -space.prefs.apps.availableapps=Available applications -space.prefs.apps.noinstalledapp=No application is installed in the workspace. -space.prefs.apps.installapp.success=The application *{0}* has been successfully installed in the workspace. -space.prefs.apps.installapp.error=An error occurred while installing the application *{0}* in the workspace. -space.prefs.apps.uninstallapp.success=The application *{0}* has been successfully uninstalled from the workspace. -space.prefs.apps.uninstallapp.error=An error occurred while uninstalling the application *{0}* from the workspace. -space.prefs.apps.noavailableapp=All applications are already installed in the workspace. -space.prefs.apps.confirmuninstall=Uninstalling the application *{0}* will delete all the data it contains. This operation is not reversible. Please confirm you want to uninstall the application *{0}* and its data from the workspace. -space.prefs.apps.uninstall.alt=Uninstall -space.prefs.apps.uninstall.title=Uninstall this application -space.prefs.apps.install.alt=Install -space.prefs.apps.install.title=Install this application - -space.prefs.members.title=Space members -space.prefs.members.welcomemsg=Manage members roles -space.prefs.members.admins=Admins -space.prefs.members.writers=Authors -space.prefs.members.readers=Readers -space.prefs.members.addmembertogroup=Add new members to this group -space.prefs.members.makeadmin=admin -space.prefs.members.makewriter=author -space.prefs.members.makereader=reader -space.prefs.members.emptylist=There is no user in this group -space.prefs.members.nomembertoadd=Every member from the organization subscribe to this space - -space.prefs.rights.title=Space publication mode -space.prefs.rights.caption=Choose from the available modes -space.prefs.rights.thead.mode=Mode -space.prefs.rights.thead.description=Description -space.prefs.rights.public=Public -space.prefs.rights.public.desc=The workspace is viewable by all the registered users. Only the workspace writers are allowed to edit documents. -space.prefs.rights.private=Private -space.prefs.rights.private.desc=Only members that have a role in the workspace can access it. -space.prefs.rights.open=Open -space.prefs.rights.open.desc=The workspace is open in both view and edition by all registered users. -space.prefs.rights.updaterights=Update publication mode -space.prefs.rights.updated=Workspace publication mode has been updated. - -space.prefs.common.error.nowebpreffound=This document must be applied to a Workspace - -space.user.spacelist.title=Collaborative spaces -space.user.spacelist.welcomemsg=List of the collaborative spaces you are involve in -space.user.spacelist.restrictedandpublicspaces=List of public and restricted spaces -space.user.spacelist.emptylist=You subscribe to no space yet -space.user.spacelist.createnewspace=Create a new space -space.user.spacelist.create.spacename=Space name -space.user.spacelist.createthespace=Create the space -space.user.spacelist.spacecreated=The space has been successfully created -space.user.spacelist.spacename=Space name -space.user.spacelist.role=Role -space.user.spacelist.actions=Actions - -space.user.changepwd.title=Change my password -space.user.changepwd.pwdnotmatching=Entered passwords does not match. Please try again -space.user.changepwd.newpwd=New password -space.user.changepwd.confirmpwd=Confirm this new password -space.user.changepwd.info=Once you have changed your password, you will be asked to authenticate using this new password. -space.user.changepwd.notallowed=You are not allowed to perform this action -space.user.profile.changepicture=Change my picture -space.user.hcard.photo=Photo -space.user.hcard.error.nohcardfound=No VCard could be found for this user - -space.menu.prefs.home=Space home -space.menu.prefs.details=Space informations -space.menu.prefs.members=Space members -space.menu.prefs.applications=Space applications -space.menu.prefs.rights=Publication mode -space.menu.prefs.categories=Categories - -space.dashboard.stories.commenton=comment on -space.dashboard.stories.incategory=in -space.dashboard.stories.by=by - -space.common.categories.notclassified=Not classified -space.commons.categories.notclassified=Not classified -space.common.categories.thead.pagename=Page name -space.common.categories.thead.lastmodif=Modified on -space.common.categories.thead.lastauthor=Last author -space.common.categories.changecategory=Change category -space.common.categories.category=Category -space.common.categories.docsforcategory=Documents for category <b>{0}</b> in workspace <em>{1}</em> -space.common.categories.pagename=Page name -space.common.categories.lastmodif=Modified on -space.common.categories.lastauthor=Last author -space.common.categories.nodocforcategory=There is no document for this category -space.common.error.nospacefound=This document should be applied to a Workspaces. - -admin.directory.members.title=Members directory -admin.directory.members.memberdeleted=Member {0} has been successfully deleted -admin.directory.members.memberregistered=Member {0} has been successfully registered -admin.directory.members.errorwhieregister=An error occured registering member -admin.directory.members.formtitle=Add a member -admin.directory.members.addfield=Display another field -admin.directory.members.confirmdelete=Deleting a member will delete his personal space, and the data it contains. Are you sure you want to delete this member? -admin.directory.members.errorwhileregister=An error occured registering the member {0} - -admin.menu.spacehome=Space home -admin.menu.administration=Administration - -commons.actions.yes=Yes -commons.actions.no=No -commons.actions.delete=Delete -commons.actions.add=Add -commons.actions.edit=Edit -commons.actions.choosefile=Choose a file -commons.actions.confirm=Confirm -commons.actions.cancel=Cancel -commons.actions.update=Update -commons.actions.previous=Previous -commons.actions.next=Next - -commons.form.cancel=Cancel -commons.form.validate=Validate -commons.form.replacefile=Do you want to replace this file -commons.form.fields.lastname=Last ame -commons.form.fields.firstname=First name -commons.form.fields.mail=Mail -commons.form.fields.nickname=Nickname -commons.form.fields.jobtitle=Job title -commons.form.fields.mobile=Mobile -commons.form.fields.phone=Phone -commons.form.fields.organization=Organization -commons.form.fields.office=Office -commons.form.fields.service=Service -commons.form.fields.address=Address -commons.form.fields.zipcode=Zip code -commons.form.fields.city=City -commons.form.fields.country=Country - -commons.misc.getstarted=Get started -commons.misc.acknowledgemsg=I got this, do not display this message in the future - -commons.error.erroroccured=An error occured -commons.error.unknowerror=An error occured -commons.error.actionnotallowed=You are not allowed to perform this action - -commons.users.guest=Guest -commons.users.admin=Administrator - -commons.page.attachments=Attachments -commons.page.attachments.download=Download this attachment -commons.page.attachments.delete=Delete this attachment -commons.page.attachments.confirmdelete=Confirm the attachment deletion -commons.page.attachments.viewrevisions=See versions of this attachment -commons.page.attachments.publisher=Attached by -commons.page.attachments.on=on -commons.page.attachments.emptylist=Their is no attachment for this document -commons.page.attachments.addattachment=Add an attachment -commons.page.attachments.choosefile=Choose the file to attach -commons.page.versioncomment=Last modification -commons.page.comments=Comments -commons.page.edit.title=Title -commons.page.edit.category=Category - -commons.wysiwyg.link.wikipageslist=Wiki pages list -commons.wysiwyg.link.articlelist=Blog articles list - -service.common.error.badrequest=Request not valid - -actionbar.blog.addarticle=Add an article -actionbar.blog.editarticle=Edit article -actionbar.blog.deletearticle=Delete article -actionbar.files.deletefile=Delete file -actionbar.wiki.categories=Categories -actionbar.wiki.createpage=Create a page -actionbar.wiki.showhistory=History -actionbar.wiki.renamepage=Rename -actionbar.wiki.delete=Delete -actionbar.wiki.editpage=Edit -actionbar.photos.creategallery=Create new gallery -actionbar.photos.managegalleries=Manage galleries -actionbar.photos.editgallery=Edit gallery -actionbar.spaces.createspace=Create space -actionbar.addressbook.editinfos=Edit my profile -actionbar.inline.editing=Editing -actionbar.buttons.globaladmin=Organization administration -actionbar.buttons.spaceadmin=Space Administration -actionbar.buttons.rss=RSS -actionbar.buttons.home=My Dashboard -actionbar.buttons.myspace=My Space -actionbar.buttons.myspaces=See my spaces -actionbar.buttons.myprofile=My Profile -actionbar.buttons.exit=Logout +{table} +XWiki.WorkspaceSpaceClass_accesslevel_public=Public +XWiki.WorkspaceSpaceClass_accesslevel_private=Private +XWiki.WorkspaceSpaceClass_accesslevel_open=Open + +XWiki.WorkspaceSpaceClass_spacetype_workspace=Workspace +XWiki.WorkspaceSpaceClass_spacetype_orgspace=Organization space +XWiki.WorkspaceSpaceClass_spacetype_userspace=Personal space + +XWiki.WorkspaceSpaceClass_color_555555=Grey +XWiki.WorkspaceSpaceClass_color_0000FF=Blue +XWiki.WorkspaceSpaceClass_color_003399=Midnight blue +XWiki.WorkspaceSpaceClass_color_009900=Green +XWiki.WorkspaceSpaceClass_color_009933=See green +XWiki.WorkspaceSpaceClass_color_660033=Purple +XWiki.WorkspaceSpaceClass_color_663300=Brown +XWiki.WorkspaceSpaceClass_color_990000=Light coral +XWiki.WorkspaceSpaceClass_color_996699=Blue violet +XWiki.WorkspaceSpaceClass_color_99CCFF=Sky blue +XWiki.WorkspaceSpaceClass_color_99FF00=Green yellow +XWiki.WorkspaceSpaceClass_color_CC3300=Indian red +XWiki.WorkspaceSpaceClass_color_CC9900=Golden rod +XWiki.WorkspaceSpaceClass_color_CC9999=Thistle +XWiki.WorkspaceSpaceClass_color_CC99FF=Light purple +XWiki.WorkspaceSpaceClass_color_CCCC66=Khaki +XWiki.WorkspaceSpaceClass_color_FF99CC=Pink +XWiki.WorkspaceSpaceClass_color_FFCC33=Orange + +xws.dateformat=MMM d, yyyy +xws.dateformat.withtime=MMM d, yyyy HH:mm + +xws.members.title=Members +xws.members.allmembers=See all members of the workspace +xws.members.admins=Admins +xws.members.writers=Writers +xws.members.readers=Readers + +xws.spacedetails.viewdetails=View details +xws.spacedetails.viewdetailstitle=View detailed information for this workspace +xws.spacedetails.memberadmin=You are member of this workspace, as *administrator* +xws.spacedetails.memberwriter=You are member of this workspace, as *writer* +xws.spacedetails.memberreader=You are member of this workspace, as *reader* +xws.spacedetails.member=You are member of this workspace +xws.spacedetails.notmember=You are not a member of this workspace +xws.spacedetails.creator=Creator +xws.spacedetails.creationdate=Creation date +xws.spacedetails.memberscount=Members count +xws.spacedetails.publicationmode=Publication mode +xws.spacedetails.spacetype=Space type +xws.spacedashboard.recentmodifications=Recent activity on the workspace + +xws.wysiwyg.chooseworkspace=Choose workspace +xws.wysiwyg.docsforapplication=Documents for application +xws.wysiwyg.nodocforthisapp=No document found +xws.wysiwyg.resultsforspace=Results for space +xws.wysiwyg.spacehomelink=Link to this Workspace home page + +xws.search.title=Search +xws.search.date=Date +xws.search.application=Application +xws.search.document=Document +xws.search.lastauthor=Last author +xws.search.at=at + +xws.workspace.homepage=Home page + +xws.activities.workspacecreated=<b>created</b> the workspace +xws.activities.homepageupdated=<b>modified</b> the workspace +xws.activities.wiki.update=<b>modified</b> the wiki page +xws.activities.blog.update=<b>modified</b> the blog post +xws.activities.files.update=<b>updated</b> the file +xws.activities.photos.update=<b>updated</b> the photo gallery +xws.activities.wiki.create=<b>created</b> the wiki page +xws.activities.blog.create=<b>published</b> the blog post +xws.activities.files.create=<b>uploaded</b> a new file +xws.activities.photos.create=<b>created</b> the photo gallery +xws.activities.wiki.delete=<b>deleted</b> the wiki page +xws.activities.blog.delete=<b>deleted</b> the blog post +xws.activities.files.delete=<b>deleted</b> the file +xws.activities.photos.delete=<b>deleted</b> the photo gallery + +xws.admin.adduserstogroup=Add users to the <em>{0}</em> group +xws.admin.addusershelp=Select from the left list of available users the ones you want to add to the group. You can filter on names simply by starting typing in the field. When you click on the arrow next to a user name, you make that user selected for the group, it's name will appear on the right. Once you are happy with your selection, you can validate clicking the button under the lists. Remember that users that are already members of the space will not appear in the selection list. +xws.admin.availableusers=Available users +xws.admin.selectedusers=Selected users +xws.admin.adduserstospace=Add selected users to group {0} +xws.admin.simplemembers=Simple members +xws.admin.powerusers=Power users +xws.admin.selectedGlobalAdmins=Global admins +xws.admin.moveToSimpleMembers=Move to simple members +xws.admin.moveToPowerUsers=Move to power users +xws.admin.moveToGlobalAdmins=Move to global admins +xws.admin.clicktosave=Click to save +xws.admin.ManageGlobalAdmins&amp;PowerUsers=Manage global admins and power users +xws.admin.atLeastOneAdmin=At least one global admin is required! +xws.group.admin=Admin +xws.group.reader=Reader +xws.group.writer=Writer + +xws.menuview.globaladmin=Global admin +xws.menuview.mydashboard=My Dashboard +xws.menuview.myspace=My Space +xws.menuview.myspaces=All My Spaces +xws.menuview.myprofile=My Profile +xws.menuview.logout=Logout + +xws.createworkspace.title=Create a new workspace +xws.createworkspace.enterformdata=Define your new workspace's basic settings +xws.createworkspace.spacetitle=Space name +xws.createworkspace.spacetype=Access level +xws.createworkspace.spacedesc=Description +xws.createworkspace.spaceapps=Applications +xws.createworkspace.spacecolor=Color +xws.createworkspace.spacetitle.legend=<strong>Mandatory -</strong> You can enter up to <span id="spacetitlecharsleft">50</span> more characters for your new space title : +xws.createworkspace.spacedesc.legend=<strong>Optional -</strong> You can enter a short text describing the purpose of this workspace : +xws.createworkspace.spaceapps.legend=Choose the applications you want to install in your workspace from the list below : +xws.createworkspace.spacetype.legend=Select an access level for this workspace : +xws.createworkspace.spacecolor.legend=Choose a background color for your workspace : +xws.createworkspace.submit=Create the space +xws.createworkspace.spacecreated=The space <a href="{0}">{1}</a> has been successfully created. +xws.createworkspace.spacecreationfailed=An error occured while creating the space. +xws.createworkspace.validation.short=The title can't be empty +xws.createworkspace.validation.long=The title can't be longer than 50 characters +xws.creataworkspace.validation.exists=A workspace with this title already exists + +xws.createmyspace.success=Your space has been created with success +xws.createmyspace.error=An error occured while creating your space +xws.createmyspace.notregistered=You cannot create a personnal space since your not registered on this wiki! +xws.createmyspace.spaceof=Personnal space of +xws.createmyspace.submit=Create my space +xws.createmyspace.help=Clicking on the button below will create your personal space. Your personal space includes your private blog, wiki, file manager and photo album. You can use them to store personal informations, notes and files. + +xws.createorgspace.title=Create your organization's space +xws.createorgspace.formlegend=Enter your organization's data +xws.createorgspace.displaytitle=Organization's name +xws.createorgspace.description=Description +xws.createorgspace.submit=Create the organization space +xws.createorgspace.visitorgspace=Visit the organization's space +xws.createorgspace.createworkspaces=Create new workspaces +xws.createorgspace.spacecreated=Your organization's own workspace has been successfully created. You can now start the collaboration, using its applications, or continue and create new workspaces. +xws.createorgspace.mustbeadmin=You must be an admin to create the organization's space +xws.createorgspace.help=Click on this button if you wish to create your organisation's space. The organisation's space includes every user on this XWiki Workspaces. It features a blog, a wiki, a file manager and a photo album. You may want to create it if you wish to publish information meant to address all your users at once. + +xws.space.details.createdby=created by +xws.space.details.on=on +xws.space.details.members=member(s) + +xws.apps.wiki=Wiki +xws.apps.blog=Blog +xws.apps.files=Files +xws.apps.photos=Photos +xws.apps.stream=Workstream +xws.apps.wiki.desc=The wiki provides you with the ability to create new pages and edit them together. +xws.apps.blog.desc=The blog is a place where you can post news and start discussions. +xws.apps.files.desc=The file manager let you upload files (such as Excel sheets & PDFs) to make them available to other space members. +xws.apps.photos.desc=The picture gallery is specifically meant to publish and share images and photographs. +xws.apps.stream.desc=The Workstream allow the members to post 2-lines updates related to the workspace, telling what they currently are working on. +xws.apps.wiki.createwikipage=Add a wiki page +xws.apps.blog.createblogpost=Write a blog post +xws.apps.photos.createphotogallery=Create a gallery +xws.apps.files.createfile=Upload a new file +xws.apps.generic.createentry=Add an entry +xws.apps.manageapps=Manage applications +xws.apps.manageapps.title=Manage applications for this workspace + +xws.tags.managetags=Manage categories +xws.tags.managetags.title=Manage categories for this workspace + +xws.members.managemembers=Manage members +xws.members.managemembers.title=Manage members for this workspace + +xws.mydashboard.recentactivity=Recent activity on my spaces +xws.mydashboard.help=Your dashboard shows you the recent activity on the spaces you are involved with a role : either you are an admin, writer, or a reader. If you want to see the full list of the spaces you can access including public and restricted spaces in which you don't have a specific role, please visit your My spaces page. There's a button too, in the top action bar, to access this list anytime. + +xws.myspaces.myspace=Personal Space +xws.myspaces.orgspace=Organization's space +xws.myspaces.mymemberships=My Memberships +xws.myspaces.publicspaces=Public spaces +xws.myspaces.publicspaces.info=Public spaces are the spaces visible by all registered users +xws.myspaces.openspaces=Open spaces +xws.myspaces.mymemberships.emptylist=You are not a member of any space yet. +xws.myspaces.mymemberships.info=Memberships are the spaces you belong to as a member : reader, writer or admin. +xws.myspaces.getstartedpanel=This page provides a list of all the spaces you have access to, either as an admin, an author or a reader. It allows you to browse through existing public spaces and the private spaces you are a member of (a.k.a. your memberships), as well as your personal space and the organization's one. The page also gives you the ability to create new workspaces when needed. + +xws.admin.welcome=Welcome to Workspaces admin center +xws.admin.managespaces=Manage spaces +xws.admin.manageusers=Manage users +xws.admin.usersroles=Users roles +xws.admin.activespaces=List of actives spaces +xws.admin.archivedspaces=List of archived spaces +xws.admin.archive.alt=Archive +xws.admin.archive.title=Archive this space +xws.admin.delete.alt=Delete +xws.admin.delete.title=Permanently delete this space +xws.admin.confirmdeletion=Permanently deleting a space delete all the data present in its application : Blog post, Wiki pages, Photo galleries and Files. Confirm you want to permanently delete the space *{0}* and its data. +xws.admin.spacedeleted=The space *{0}* and its data have been successfully deleted. +xws.admin.errordeletingspace=An error occurred while deleting the space {0} +xws.admin.spacearchived=The space *{0}* has been successfully archived. You can now find it in the list of archived spaces, and have at any moment the possibility to restore it active. +xws.admin.errorarchiving=An error occured while archiving the space. +xws.admin.restore.alt=Restore +xws.admin.restore.title=Restore this space +xws.admin.spacerestored=The space *{0}* has been successfully restored. You can find it again in the list of active spaces. +xws.admin.lastworkspaces=Lastest created workspaces +xws.admin.latestusers=Latest users +xws.admin.registernewuser=Register a new user +xws.admin.browseallusers=Browse all users +xws.admin.createnewworkspace=Create a new workspace +xws.admin.manageallspaces=See and manage all workspaces +xws.admin.panel.welcome.title=XWS Admin Center +xws.admin.panel.welcome.content=Welcome to the XWS Admin center. You will find here all the links you need to manage this +xws.admin.panel.links.title=Quick links +xws.admin.panel.links.adminhome=Admin Home +xws.admin.panel.links.manageworkspaces=Manage Workspaces +xws.admin.panel.links.manageusers=Manage users +xws.admin.users.links=Links + +xws.stories.homeapplication=Space home +space.wiki.lastchanges=Last changed documents on workspace {0} +space.wiki.docindex=Documents index for workspace <em>{0}</em> +space.wiki.alldocuments=All wiki documents +space.wiki.nodocument=There is currently no document on this wiki +space.wiki.thead.pagename=Page name +space.wiki.thead.lastmodifiedon=Last modification +space.wiki.thead.lastauthor=Last author +space.wiki.renamepage.title=Rename +space.wiki.renamepage.newname=New name +space.wiki.renamepage.updatedocs=Update backlinks +space.wiki.renamepage.emptyname=Please enter a valid page name +space.wiki.renamepage.alreadyexists==A document with name (<a href="{1}">{0}</a>) already exists in the wiki +space.wiki.createpage=Create a wiki page +space.wiki.createpage.pagename=Page name + +space.blog.blogof=Blog of +space.blog.blogofspace=Blog of space +space.blog.error.noarticlefound=This document does not contain a blog article +space.blog.article.category=Category +space.blog.article.backtoblog=Back to the blog +space.blog.article.title=Article's title +space.blog.article.content=Article's content +space.blog.createarticle=Add a blog article +space.blog.createarticle.articlename=Article's name +space.blog.noarticleforcategory=There is no article in this category +space.blog.article.by=by +space.blog.article.on=on +space.blog.article.modifiedby=modified by +space.blog.article.permalink=permalink +space.blog.article.comments=Comments + +space.stream.pagetitle=Workstream +space.stream.title=What are you working on ? +space.stream.statusupdated=Your status has been successfully updated. +space.stream.statusempty=You cannot update an empty status ! +space.stream.updatesby=Updates by {0} +space.stream.recentupdates=Recent updates on the workspace +space.stream.newer=<< Newer +space.stream.older=Older >> +space.stream.saidonworkstream=said on the <strong>workstream</strong> +space.stream.statustoolong=Your update message is too long. The limit is 200 chars. +space.stream.charsremaining=chars remaining +space.stream.dashboardsalso=Do also post this update on the workspace dashboard and on members personnal dashboards. + +space.files.table.caption=All files for workspace <em>{0}</em> +space.files.addfile=Add this attachment +space.files.uploadnewfile=Upload a new file +space.files.replacefilename=Replace the file name with +space.files.title=Files +space.files.file=File +space.files.fileuploaded=File *{0}* has been successfully uploaded. +space.files.file.details=versions and comments for this file +space.files.file.download=download the latest version of this file +space.files.existingversions=Existing versions +space.files.uploadnewversion=Upload a new version +space.files.tablecaption=Files +space.files.thead.attachtype=Type +space.files.thead.attachname=Name +space.files.thead.attachsize=Size +space.files.thead.attachversion=Version +space.files.thead.attachdate=Date +space.files.thead.attachauthor=Author +space.files.thead.actions=Actions +space.files.fileentry.downloadthisattachment=Download this file +space.files.fileentry.viewattachmenthistory=See file history +space.files.fileentry.confirmdelattachment=Confirm delete file +space.files.fileentry.deletethisattachment=Delete this file +space.files.attachnewfile=Attach a new file +space.files.emptylist=There is no file in this space + +space.photos.galleries.creategallery=Create a new gallery +space.photos.galleries.create.gallerytitle=Gallery's title +space.photos.galleries.gallerydeleted=Galery {0} has been deleted +space.photos.galleries.returntogalleries=Back to the galleries list +space.photos.galleries.photodeleted=deleted +space.photos.galleries.confirmdeletegalleries=Delete {0} and its pictures +space.photos.galleries.confirmdelete=Confirm delete +space.photos.galleries.nogallery=There is no gallery in that space yet +space.photos.galleries=Photo galleries +space.photos.error.nogalleryfound=No photo gallery could be found for this document +space.photos.gallery.editing=Editing +space.photos.gallery.description=Description +space.photos.gallery.deleteconfirm=Are you sure you want to delete this image? +space.photos.gallery.addphotostogallery=Add pictures to the gallery +space.photos.gallery.uploadsuccess=The picture has been successfully added to the gallery +space.photos.gallery.existingphotos=Existing images in the gallery +space.photos.gallery.photo.seeoriginal=See original picture +space.photos.photo.uploadedon=Uploaded on +space.photos.photo.delete=Delete this photo + +space.prefs.categories=Space categories +space.prefs.categories.caption=Categories list +space.prefs.categories.thead.name=Name +space.prefs.categories.thead.actions=Actions +space.prefs.categories.addcategory=Add a category + +space.prefs.details.title=Space informations +space.prefs.details.edit=Edit space informations + +space.prefs.apps.title=Space applications +space.prefs.apps.appsmgrnotfound=The application manager could not be found. +space.prefs.apps.installedapps=Installed applications +space.prefs.apps.availableapps=Available applications +space.prefs.apps.noinstalledapp=No application is installed in the workspace. +space.prefs.apps.installapp.success=The application *{0}* has been successfully installed in the workspace. +space.prefs.apps.installapp.error=An error occurred while installing the application *{0}* in the workspace. +space.prefs.apps.uninstallapp.success=The application *{0}* has been successfully uninstalled from the workspace. +space.prefs.apps.uninstallapp.error=An error occurred while uninstalling the application *{0}* from the workspace. +space.prefs.apps.noavailableapp=All applications are already installed in the workspace. +space.prefs.apps.confirmuninstall=Uninstalling the application *{0}* will delete all the data it contains. This operation is not reversible. Please confirm you want to uninstall the application *{0}* and its data from the workspace. +space.prefs.apps.uninstall.alt=Uninstall +space.prefs.apps.uninstall.title=Uninstall this application +space.prefs.apps.install.alt=Install +space.prefs.apps.install.title=Install this application + +space.prefs.members.title=Space members +space.prefs.members.welcomemsg=Manage members roles +space.prefs.members.admins=Admins +space.prefs.members.writers=Authors +space.prefs.members.readers=Readers +space.prefs.members.addmembertogroup=Add new members to this group +space.prefs.members.makeadmin=admin +space.prefs.members.makewriter=author +space.prefs.members.makereader=reader +space.prefs.members.emptylist=There is no user in this group +space.prefs.members.nomembertoadd=Every member from the organization subscribe to this space + +space.prefs.rights.title=Space publication mode +space.prefs.rights.caption=Choose from the available modes +space.prefs.rights.thead.mode=Mode +space.prefs.rights.thead.description=Description +space.prefs.rights.public=Public +space.prefs.rights.public.desc=The workspace is viewable by all the registered users. Only the workspace writers are allowed to edit documents. +space.prefs.rights.private=Private +space.prefs.rights.private.desc=Only members that have a role in the workspace can access it. +space.prefs.rights.open=Open +space.prefs.rights.open.desc=The workspace is open in both view and edition by all registered users. +space.prefs.rights.updaterights=Update publication mode +space.prefs.rights.updated=Workspace publication mode has been updated. + +space.prefs.common.error.nowebpreffound=This document must be applied to a Workspace + +space.user.spacelist.title=Collaborative spaces +space.user.spacelist.welcomemsg=List of the collaborative spaces you are involve in +space.user.spacelist.restrictedandpublicspaces=List of public and restricted spaces +space.user.spacelist.emptylist=You subscribe to no space yet +space.user.spacelist.createnewspace=Create a new space +space.user.spacelist.create.spacename=Space name +space.user.spacelist.createthespace=Create the space +space.user.spacelist.spacecreated=The space has been successfully created +space.user.spacelist.spacename=Space name +space.user.spacelist.role=Role +space.user.spacelist.actions=Actions + +space.user.changepwd.title=Change my password +space.user.changepwd.pwdnotmatching=Entered passwords does not match. Please try again +space.user.changepwd.newpwd=New password +space.user.changepwd.confirmpwd=Confirm this new password +space.user.changepwd.info=Once you have changed your password, you will be asked to authenticate using this new password. +space.user.changepwd.notallowed=You are not allowed to perform this action +space.user.profile.changepicture=Change my picture +space.user.hcard.photo=Photo +space.user.hcard.error.nohcardfound=No VCard could be found for this user + +space.menu.prefs.home=Space home +space.menu.prefs.details=Space informations +space.menu.prefs.members=Space members +space.menu.prefs.applications=Space applications +space.menu.prefs.rights=Publication mode +space.menu.prefs.categories=Categories + +space.dashboard.stories.commenton=comment on +space.dashboard.stories.incategory=in +space.dashboard.stories.by=by + +space.common.categories.notclassified=Not classified +space.commons.categories.notclassified=Not classified +space.common.categories.thead.pagename=Page name +space.common.categories.thead.lastmodif=Modified on +space.common.categories.thead.lastauthor=Last author +space.common.categories.changecategory=Change category +space.common.categories.category=Category +space.common.categories.docsforcategory=Documents for category <b>{0}</b> in workspace <em>{1}</em> +space.common.categories.pagename=Page name +space.common.categories.lastmodif=Modified on +space.common.categories.lastauthor=Last author +space.common.categories.nodocforcategory=There is no document for this category +space.common.error.nospacefound=This document should be applied to a Workspaces. + +admin.directory.members.title=Members directory +admin.directory.members.memberdeleted=Member {0} has been successfully deleted +admin.directory.members.memberregistered=Member {0} has been successfully registered +admin.directory.members.errorwhieregister=An error occured registering member +admin.directory.members.formtitle=Add a member +admin.directory.members.addfield=Display another field +admin.directory.members.confirmdelete=Deleting a member will delete his personal space, and the data it contains. Are you sure you want to delete this member? +admin.directory.members.errorwhileregister=An error occured registering the member {0} + +admin.menu.spacehome=Space home +admin.menu.administration=Administration + +commons.actions.yes=Yes +commons.actions.no=No +commons.actions.delete=Delete +commons.actions.add=Add +commons.actions.edit=Edit +commons.actions.choosefile=Choose a file +commons.actions.confirm=Confirm +commons.actions.cancel=Cancel +commons.actions.update=Update +commons.actions.previous=Previous +commons.actions.next=Next + +commons.form.cancel=Cancel +commons.form.validate=Validate +commons.form.replacefile=Do you want to replace this file +commons.form.fields.lastname=Last ame +commons.form.fields.firstname=First name +commons.form.fields.mail=Mail +commons.form.fields.nickname=Nickname +commons.form.fields.jobtitle=Job title +commons.form.fields.mobile=Mobile +commons.form.fields.phone=Phone +commons.form.fields.organization=Organization +commons.form.fields.office=Office +commons.form.fields.service=Service +commons.form.fields.address=Address +commons.form.fields.zipcode=Zip code +commons.form.fields.city=City +commons.form.fields.country=Country + +commons.misc.getstarted=Get started +commons.misc.acknowledgemsg=I got this, do not display this message in the future + +commons.error.erroroccured=An error occured +commons.error.unknowerror=An error occured +commons.error.actionnotallowed=You are not allowed to perform this action + +commons.users.guest=Guest +commons.users.admin=Administrator + +commons.page.attachments=Attachments +commons.page.attachments.download=Download this attachment +commons.page.attachments.delete=Delete this attachment +commons.page.attachments.confirmdelete=Confirm the attachment deletion +commons.page.attachments.viewrevisions=See versions of this attachment +commons.page.attachments.publisher=Attached by +commons.page.attachments.on=on +commons.page.attachments.emptylist=Their is no attachment for this document +commons.page.attachments.addattachment=Add an attachment +commons.page.attachments.choosefile=Choose the file to attach +commons.page.versioncomment=Last modification +commons.page.comments=Comments +commons.page.edit.title=Title +commons.page.edit.category=Category + +commons.wysiwyg.link.wikipageslist=Wiki pages list +commons.wysiwyg.link.articlelist=Blog articles list + +service.common.error.badrequest=Request not valid + +actionbar.blog.addarticle=Add an article +actionbar.blog.editarticle=Edit article +actionbar.blog.deletearticle=Delete article +actionbar.files.deletefile=Delete file +actionbar.wiki.categories=Categories +actionbar.wiki.createpage=Create a page +actionbar.wiki.showhistory=History +actionbar.wiki.renamepage=Rename +actionbar.wiki.delete=Delete +actionbar.wiki.editpage=Edit +actionbar.photos.creategallery=Create new gallery +actionbar.photos.managegalleries=Manage galleries +actionbar.photos.editgallery=Edit gallery +actionbar.spaces.createspace=Create space +actionbar.addressbook.editinfos=Edit my profile +actionbar.inline.editing=Editing +actionbar.buttons.globaladmin=Organization administration +actionbar.buttons.spaceadmin=Space Administration +actionbar.buttons.rss=RSS +actionbar.buttons.home=My Dashboard +actionbar.buttons.myspace=My Space +actionbar.buttons.myspaces=See my spaces +actionbar.buttons.myprofile=My Profile +actionbar.buttons.exit=Logout {table} Index: wiki/src/main/resources/XWSCode/UserAdministration =================================================================== --- wiki/src/main/resources/XWSCode/UserAdministration (revision 10158) +++ wiki/src/main/resources/XWSCode/UserAdministration (working copy) @@ -12,9 +12,9 @@ XWiki.Admin 1210686237000 -1212157851000 -1212157851000 -6.1 +1212957078000 +1212957078000 +45.1 UserAdministration @@ -54,550 +54,570 @@ -#macro(simpleMemberRow $user) -<tr id="table1_line_$user"> - <td> - <div style="float:right;width:20%;text-align:left;"> - <a id="a11_$user" style="cursor: pointer;" href="javascript:void(0);addSimpleMemberToPowerUsers('$user');"> - <img src="/xwiki/skins/workspaces/images/move-right-green.png" style="display:inline;" title='$msg.get("xws.admin.moveToPowerUsers")' /> - </a> - <a id="a12_$user" style="cursor: pointer;" href="javascript:void(0);addSimpleMemberToGlobalAdmins('$user');"> - <img src="/xwiki/skins/workspaces/images/move-right-blue.png" style="display:inline;"title='$msg.get("xws.admin.moveToGlobalAdmins")' /> - </a> - </div> - <div id="divT1_$user" style="width: 80%; float: left;"> - $xwiki.getUserName($user) - </div> - </td> -</tr> -#end - -#macro(powerUserRow $user) -<tr id="table2_line_$user"> - <td> - <div style="float:left;width:10%;text-align:right;"> - <a id="a22_$user" style="cursor: pointer;" href="javascript:void(0);addPowerUserToSimpleMembers('$user','EU')"> - <img src="/xwiki/skins/workspaces/images/move-left-red.png" style="display:inline;" title='$msg.get("xws.admin.moveToSimpleMembers")' /> - </a> - </div> - <div id="divT2_$user" style="width: 80%; float: left;"> - $xwiki.getUserName($user) - </div> - <div style="float:right;width:10%;text-align:left;"> - <a id="a21_$user" style="cursor: pointer;" href="javascript:void(0);addPowerUserToGlobalAdmins('$user');"> - <img src="/xwiki/skins/workspaces/images/move-right-blue.png" style="display:inline;" title='$msg.get("xws.admin.moveToGlobalAdmins")' /> - </a> - </div> - </td> -</tr> -#end - -#macro(globalAdminRow $user) -<tr id="table3_line_$user"> - <td> - <div style="float:left;width:20%;text-align:right;"> - <a id="a31_$user" style="cursor: pointer;" href="javascript:void(0);addGlobalAdminToSimpleMembers('$user');"> - <img src="/xwiki/skins/workspaces/images/move-left-red.png" style="display:inline;" title='$msg.get("xws.admin.moveToSimpleMembers")' /> - </a> - <a id="a32_$user" style="cursor: pointer;" href="javascript:void(0);addGlobalAdminToPowerUsers('$user');"> - <img src="/xwiki/skins/workspaces/images/move-left-green.png" style="display:inline;" title='$msg.get("xws.admin.moveToPowerUsers")' /> - </a> - </div> - <div id="divT3_$user" style="width: 80%; float: right;"> - $xwiki.getUserName($user) - </div> - </td> -</tr> -#end - - - -#set($xsm=$xwiki.xwsmgr) - -#set($globalAdmins = $xsm.getGlobalAdmins()) -#set($powerUsers = $xsm.getPowerUsers()) - -#set($allMembersDoc = $xwiki.getDocument("XWiki.XWikiAllGroup")) -#set($allUsers = $allMembersDoc.getObjects("XWiki.XWikiGroups")) -#set($allMembers = []) -#foreach($obj in $allUsers) - #set($member=$obj.getProperty("member").value) - #if((! $globalAdmins.contains($member)) && (! $powerUsers.contains($member))) - #set($ok=$allMembers.add($member)) - #end -#end - -<div id="users-table"> -<table> -<tr> -<td id="simpleMembersColumn"> ##Simple members - <div id="simpleMembersHead"> - $msg.get('xws.admin.simplemembers') - <input type="text" id="filterSimpleMembers" name="filterSimpleMembers" onkeyup="filterT1(event)"></input> - </div> - <div class="selectedUsers"> - <table id="simpleMembersTable"> - <tbody id="simpleMembersTableBody" overflow="auto"> - #foreach($user in $allMembers) - #simpleMemberRow($user) - #end - </tbody> - </table> - </div> -</td> -<td id="powerUsersColumn"> ##Power users - <div id="powerUsersHead"> - $msg.get('xws.admin.powerusers') - <input type="text" id="filterPowerUsers" name="filterPowerUsers" onkeyup="filterT2()"></input> - </div> - <div class="selectedUsers"> - <table id="powerUsersTable"> - <tbody id="powerUsersTableBody" overflow="auto"> - #foreach($user in $powerUsers) - #powerUserRow($user) - #end - </tbody> - </table> - </div> -</td> -<td id="globalAdminsColumn"> ##Global admins - <div id="globalAdminsHead"> - $msg.get('xws.admin.selectedGlobalAdmins') - <input type="text" id="filterGlobalAdmins" name="filterGlobalAdmins" onkeyup="filterT3()"></input> - </div> - <div class="selectedUsers"> - <table id="globalAdminsTable"> - <tbody id="globalAdminsTableBody"> - #foreach($user in $globalAdmins) - #globalAdminRow($user) - #end - <tbody> - </div> - </table> -</td> -</tr> -</table> -</div> - -<form action="$xwiki.getURL('XWSCode.GlobalMembersService','view')" method="get" id="theActionForm"> - -</form> - -{pre} -<script type="text/javascript"> -// <![CDATA[ -var movedUsers=new Array(); - -function addTo(array,key,value) -{ - array[key]=value; -} - -function addSimpleMemberToPowerUsers(user) { - document.getElementById("table1_line_"+user).style.display="none"; - addPowerUser(user); -} - -function addGlobalAdminToPowerUsers(user) { - document.getElementById("table3_line_"+user).style.display="none"; - addPowerUser(user); -} - -function addPowerUserToGlobalAdmins(user) { - document.getElementById("table2_line_"+user).style.display="none"; - addGlobalAdmin(user); -} - -function addSimpleMemberToGlobalAdmins(user) { - document.getElementById("table1_line_"+user).style.display="none"; - addGlobalAdmin(user); -} - -function addGlobalAdminToSimpleMembers(user) { - document.getElementById("table3_line_"+user).style.display="none"; - addSimpleMember(user); -} - -function addPowerUserToSimpleMembers(user) { - document.getElementById("table2_line_"+user).style.display="none"; - addSimpleMember(user); -} - -function addPowerUser(user) -{ - var aux=document.getElementById("powerUsersTableBody"); - var nodes=aux.childNodes; - var found=false; - var elemGasit=null; - for (var ii=0;ii<nodes.length && !found;ii++) { - if (nodes[ii].id == ("table2_line_"+user)) { - nodes[ii].style.display=""; - found=true; - elemGasit=nodes[ii]; - } - } - if (!found) { - var rand=aux.insertRow(0); - var colo=rand.insertCell(0); - rand.id="table2_line_"+user; - rand.style.width="100%"; - colo.style.width="33%"; - generatePowerUserHTML(user,colo); - //rand.style.display="table-row"; - } - movedUsers[user]="powerUser"; - userRows[user]="table2_line_"+user; -} - -function addGlobalAdmin(user) -{ - var aux=document.getElementById("globalAdminsTableBody"); - var nodes=aux.childNodes; - var found=false; - var foundElement=null; - for (var i=0;i<nodes.length && !found;i++) { - if(nodes[i].id == ("table3_line_"+user)) { - nodes[i].style.display=""; - found=true; - foundElement=nodes[i]; - } - } - if(!found) { - var rand=aux.insertRow(0); - var colo=rand.insertCell(0); - rand.id = "table3_line_"+user; - rand.style.width="100"; - generateGlobalAdminHTML(user,colo); - //rand.style.display="table-row"; - } - movedUsers[user]="globalAdmin"; - userRows[user]="table3_line_"+user; -} - -function addSimpleMember(user) -{ - var aux=document.getElementById("simpleMembersTableBody"); - var nodes=aux.childNodes; - var found=false; - var foundElement=null; - for (var i=0;i<nodes.length && !found;i++) { - if(nodes[i].id == ("table1_line_"+user)) { - nodes[i].style.display=""; - found=true; - foundElement=nodes[i]; - } - } - if(!found) { - var rand=aux.insertRow(0); - var colo=rand.insertCell(0); - rand.id = "table1_line_"+user; - rand.style.width="100"; - generateSimpleMemberHTML(user,colo); - //rand.style.display="table-row"; - } - movedUsers[user]="simpleMember"; - userRows[user]="table1_line_"+user; -} - -function generatePowerUserHTML(user,cell) -{ - //left arrow - firstArrowDiv=document.createElement("div"); - firstArrowDiv.setAttribute("style","float:right"); - firstArrowDiv.style.styleFloat ="left"; - firstArrowDiv.style.width="10%"; - firstArrowDiv.style.textAlign="left"; - firstArrowDiv.style.display="inline"; - firstArrowLink=document.createElement("a"); - //firstArrowLink.style.display="block"; - firstArrowLink.id="a22_"+user; - firstArrowLink.style.cursor="pointer"; - firstArrowLink.href="javascript:void(0);addPowerUserToGlobalAdmins(" +'"' +user+'"' + ");"; //TODO: add de action link - firstArrowImg=document.createElement("img"); - firstArrowImg.src="/xwiki/skins/workspaces/images/move-right-blue.png"; - firstArrowImg.title=moveToGlobalAdminsMessage; - firstArrowLink.appendChild(firstArrowImg); - firstArrowDiv.appendChild(firstArrowLink); - //username div - userNameDiv=document.createElement("div"); - userNameDiv.setAttribute("style","float:right"); - userNameDiv.style.styleFloat ="right"; - userNameDiv.style.width="80%"; - - userNameDiv.style.display="inline"; - userNameDiv.innerHTML=getUserLink(user,"T2"); - userNameDiv.id="divT2_"+user; - //right arrow - secondArrowDiv=document.createElement("div"); - secondArrowDiv.setAttribute("style","float:right"); - secondArrowDiv.style.styleFloat ="right"; - secondArrowDiv.style.width="10%"; - secondArrowDiv.style.textAlign="right"; - secondArrowDiv.style.display="inline"; - secondArrowLink=document.createElement("a"); - secondArrowLink.id="a21_"+user; - secondArrowLink.style.cursor="pointer"; - secondArrowLink.href="javascript:void(0);addPowerUserToSimpleMembers(" +'"' +user+'"' + ");"; //TODO: add the action link - secondArrowImg=document.createElement("img"); - secondArrowImg.src="/xwiki/skins/workspaces/images/move-left-red.png"; - secondArrowImg.title=moveToSimpleMembersMessage; - secondArrowLink.appendChild(secondArrowImg); - secondArrowDiv.appendChild(secondArrowLink); - cell.appendChild(firstArrowDiv); - cell.appendChild(userNameDiv); - cell.appendChild(secondArrowDiv); -} - -function generateGlobalAdminHTML(user,cell) -{ - //Arrows - ArrowDiv=document.createElement("div"); - ArrowDiv.setAttribute("style","float:left"); - ArrowDiv.style.styleFloat ="left"; - ArrowDiv.style.width="20%"; - ArrowDiv.style.textAlign="right"; - //ArrowDiv.style.display="inline"; - firstArrowLink=document.createElement("a"); - //firstArrowLink.style.display="inline"; - firstArrowLink.id="a32_"+user; - firstArrowLink.style.cursor="pointer"; - firstArrowLink.setAtt - firstArrowLink.href="javascript:void(0);addGlobalAdminToPowerUsers(" +'"' +user+'"' + ");"; //TODO: add de action link - firstArrowImg=document.createElement("img"); - firstArrowImg.src="/xwiki/skins/workspaces/images/move-left-green.png"; - firstArrowImg.title=moveToPowerUsersMessage; - //firstArrowImg.style.display="inline"; - firstArrowLink.appendChild(firstArrowImg); - secondArrowLink=document.createElement("a"); - secondArrowLink.id="a31_"+user; - secondArrowLink.style.cursor="pointer"; - secondArrowLink.href="javascript:void(0);addGlobalAdminToSimpleMembers(" +'"' +user+'"' + ");"; //TODO: add the action link - secondArrowImg=document.createElement("img"); - secondArrowImg.src="/xwiki/skins/workspaces/images/move-left-red.png"; - secondArrowImg.title=moveToSimpleMembersMessage; - //secondArrowImg.style.display="inline"; - secondArrowLink.appendChild(secondArrowImg); - ArrowDiv.appendChild(secondArrowLink); - ArrowDiv.appendChild(firstArrowLink); - //username div - userNameDiv=document.createElement("div"); - userNameDiv.setAttribute("style","float:right"); - userNameDiv.style.styleFloat ="right"; - userNameDiv.style.width="80%"; - userNameDiv.style.display="inline"; - userNameDiv.innerHTML=getUserLink(user,"T3"); - userNameDiv.id="divT3_"+user; - cell.appendChild(ArrowDiv); - cell.appendChild(userNameDiv); -} - -function generateSimpleMemberHTML(user,cell) -{ - //Arrows - ArrowDiv=document.createElement("div"); - ArrowDiv.setAttribute("style","float:right"); - ArrowDiv.style.styleFloat ="right"; - ArrowDiv.style.width="20%"; - ArrowDiv.style.textAlign="left"; - //ArrowDiv.style.display="inline"; - firstArrowLink=document.createElement("a"); - //firstArrowLink.style.display="inline"; - firstArrowLink.id="a11_"+user; - firstArrowLink.style.cursor="pointer"; - firstArrowLink.setAtt - firstArrowLink.href="javascript:void(0);addSimpleMemberToPowerUsers(" +'"' +user+'"' + ");"; //TODO: add de action link - firstArrowImg=document.createElement("img"); - firstArrowImg.src="/xwiki/skins/workspaces/images/move-right-green.png"; - firstArrowImg.title=moveToPowerUsersMessage; - //firstArrowImg.style.display="inline"; - firstArrowLink.appendChild(firstArrowImg); - secondArrowLink=document.createElement("a"); - secondArrowLink.id="a12_"+user; - secondArrowLink.style.cursor="pointer"; - secondArrowLink.href="javascript:void(0);addSimpleMemberToGlobalAdmins(" +'"' +user+'"' + ");"; //TODO: add the action link - secondArrowImg=document.createElement("img"); - secondArrowImg.src="/xwiki/skins/workspaces/images/move-right-blue.png"; - secondArrowImg.title=moveToGlobalAdminsMessage; - //secondArrowImg.style.display="inline"; - secondArrowLink.appendChild(secondArrowImg); - ArrowDiv.appendChild(firstArrowLink); - ArrowDiv.appendChild(secondArrowLink); - //username div - userNameDiv=document.createElement("div"); - userNameDiv.setAttribute("style","float:left"); - userNameDiv.style.styleFloat ="left"; - userNameDiv.style.width="80%"; - userNameDiv.style.display="inline"; - userNameDiv.innerHTML=getUserLink(user,"T1"); - userNameDiv.id="divT1_"+user; - cell.appendChild(ArrowDiv); - cell.appendChild(userNameDiv); -} - -/** - * @param user - * @param targetGroup - values: "T1","T2","T3" - * @return the link to the user's profile. Displays users's pretty name(FirstName + LastName) - */ -function getUserLink(user,targetTable) -{ - switch(targetTable) - { - case "T1": firstChoice="divT2_"+user; - secondChoice="divT3_"+user; - break; - case "T2": firstChoice="divT1_"+user; - secondChoice="divT3_"+user; - break; - case "T3": firstChoice="divT1_"+user; - secondChoice="divT2_"+user; - break; - default: return user; //returns the xwiki user name.(!link) - } - userLink=document.getElementById(firstChoice); - if(userLink == null) - { - userLink=document.getElementById(secondChoice); - } - if(userLink == null) - { - return user; - } - else - { - return userLink.innerHTML; - } -} - -function save() { - - var movedUser; - for(movedUser in movedUsers) - { - if(movedUsers[movedUser]!=null) - { - //alert(movedUser); - var theActionForm=document.getElementById("theActionForm"); - var newElement=document.createElement("input"); - newElement.setAttribute("type","hidden"); - if(movedUsers[movedUser]=="powerUser") - { - newElement.setAttribute("name","NEW_POWER_USER"); - } - if(movedUsers[movedUser]=="globalAdmin") - { - newElement.setAttribute("name","NEW_GLOBAL_ADMIN"); - } - if(movedUsers[movedUser]=="simpleMember") - { - newElement.setAttribute("name","NEW_SIMPLE_MEMBER"); - } - newElement.setAttribute("value",movedUser); - theActionForm.appendChild(newElement); - } - } - document.getElementById("theActionForm").submit(); -} - -function filterT1(evt) -{ - var x=""; - input=document.getElementById("filterSimpleMembers"); - filterText=input.value; - for(x in userRows) - { - s=userRows[x].toString().toLowerCase(); - if(s.indexOf("table1_line_")!=-1) - { - rowElement=document.getElementById(userRows[x].toString()); - userPrettyName=document.getElementById("divT1_"+x).textContent; - if(userPrettyName.indexOf(filterText)==-1) - { - rowElement.style.display="none"; - } - else - { - rowElement.style.display=""; - } - } - } -} - -function filterT2() -{ - var x=""; - input=document.getElementById("filterPowerUsers"); - filterText=input.value; - for(x in userRows) - { - s=userRows[x].toString().toLowerCase(); - if(s.indexOf("table2_line_")!=-1) - { - rowElement=document.getElementById(userRows[x].toString()); - userPrettyName=document.getElementById("divT2_"+x).textContent; - if(userPrettyName.indexOf(filterText)==-1) - { - rowElement.style.display="none"; - } - else - { - rowElement.style.display=""; - } - } - } -} - -function filterT3() -{ - var x=""; - input=document.getElementById("filterGlobalAdmins"); - filterText=input.value; - for(x in userRows) - { - s=userRows[x].toString().toLowerCase(); - if(s.indexOf("table3_line_")!=-1) - { - rowElement=document.getElementById(userRows[x].toString()); - userPrettyName=document.getElementById("divT3_"+x).textContent; - if(userPrettyName.indexOf(filterText)==-1) - { - rowElement.style.display="none"; - } - else - { - rowElement.style.display=""; - } - } - } -} - -function refresh() { - window.location=window.location; -} -// ]]> -</script> - -<script type="text/javascript"> -// <![CDATA[ - var userRows=new Array(); - var moveToSimpleMembersMessage= '$msg.get("xws.admin.moveToSimpleMembers")'; - var moveToPowerUsersMessage= '$msg.get("xws.admin.moveToPowerUsers")'; - var moveToGlobalAdminsMessage= '$msg.get("xws.admin.moveToGlobalAdmins")'; - #foreach($userName in $allMembers) - addTo(userRows,'$userName',"table1_line_"+'$userName'); - #end - #foreach($userName in $powerUsers) - addTo(userRows,'$userName',"table2_line_"+'$userName'); - #end - #foreach($userName in $globalAdmins) - addTo(userRows,'$userName',"table3_line_"+'$userName'); - #end -// ]]> -</script> -{/pre} - -<span class="buttonwrapper"> -<a href="javascript:save();">$msg.get('xws.admin.clicktosave')</a> -<a href="javascript:refresh();">$msg.get('commons.form.cancel')</a> -</span> +#macro(simpleMemberRow $user) +<tr id="table1_line_$user"> + <td> + <div style="float:right;width:20%;text-align:left;"> + <a id="a11_$user" style="cursor: pointer;" href="javascript:void(0);addSimpleMemberToPowerUsers('$user');"> + <img src="/xwiki/skins/workspaces/images/move-right-green.png" style="display:inline;" title='$msg.get("xws.admin.moveToPowerUsers")' /> + </a> + <a id="a12_$user" style="cursor: pointer;" href="javascript:void(0);addSimpleMemberToGlobalAdmins('$user');"> + <img src="/xwiki/skins/workspaces/images/move-right-blue.png" style="display:inline;"title='$msg.get("xws.admin.moveToGlobalAdmins")' /> + </a> + </div> + <div id="divT1_$user" style="width: 80%; float: left;"> + $xwiki.getUserName($user) + </div> + </td> +</tr> +#end + +#macro(powerUserRow $user) +<tr id="table2_line_$user"> + <td> + <div style="float:left;width:10%;text-align:right;"> + <a id="a22_$user" style="cursor: pointer;" href="javascript:void(0);addPowerUserToSimpleMembers('$user','EU')"> + <img src="/xwiki/skins/workspaces/images/move-left-red.png" style="display:inline;" title='$msg.get("xws.admin.moveToSimpleMembers")' /> + </a> + </div> + <div id="divT2_$user" style="width: 80%; float: left;"> + $xwiki.getUserName($user) + </div> + <div style="float:right;width:10%;text-align:left;"> + <a id="a21_$user" style="cursor: pointer;" href="javascript:void(0);addPowerUserToGlobalAdmins('$user');"> + <img src="/xwiki/skins/workspaces/images/move-right-blue.png" style="display:inline;" title='$msg.get("xws.admin.moveToGlobalAdmins")' /> + </a> + </div> + </td> +</tr> +#end + +#macro(globalAdminRow $user) +<tr id="table3_line_$user"> + <td> + <div style="float:left;width:20%;text-align:right;"> + <a id="a31_$user" style="cursor: pointer;" href="javascript:void(0);addGlobalAdminToSimpleMembers('$user');"> + <img src="/xwiki/skins/workspaces/images/move-left-red.png" style="display:inline;" title='$msg.get("xws.admin.moveToSimpleMembers")' /> + </a> + <a id="a32_$user" style="cursor: pointer;" href="javascript:void(0);addGlobalAdminToPowerUsers('$user');"> + <img src="/xwiki/skins/workspaces/images/move-left-green.png" style="display:inline;" title='$msg.get("xws.admin.moveToPowerUsers")' /> + </a> + </div> + <div id="divT3_$user" style="width: 80%; float: right;"> + $xwiki.getUserName($user) + </div> + </td> +</tr> +#end + + + +#set($xsm=$xwiki.xwsmgr) + +#set($globalAdmins = $xsm.getGlobalAdmins()) +#set($powerUsers = $xsm.getPowerUsers()) + +#set($allMembersDoc = $xwiki.getDocument("XWiki.XWikiAllGroup")) +#set($allUsers = $allMembersDoc.getObjects("XWiki.XWikiGroups")) +#set($allMembers = []) +#foreach($obj in $allUsers) + #set($member=$obj.getProperty("member").value) + #if((! $globalAdmins.contains($member)) && (! $powerUsers.contains($member))) + #set($ok=$allMembers.add($member)) + #end +#end + +<div id="users-table"> +<table> +<tr> +<td id="simpleMembersColumn"> ##Simple members + <div id="simpleMembersHead"> + $msg.get('xws.admin.simplemembers') + <input type="text" id="filterSimpleMembers" name="filterSimpleMembers" onkeyup="filterT1(event)"></input> + </div> + <div class="selectedUsers"> + <table id="simpleMembersTable"> + <tbody id="simpleMembersTableBody" overflow="auto"> + #foreach($user in $allMembers) + #simpleMemberRow($user) + #end + </tbody> + </table> + </div> +</td> +<td id="powerUsersColumn"> ##Power users + <div id="powerUsersHead"> + $msg.get('xws.admin.powerusers') + <input type="text" id="filterPowerUsers" name="filterPowerUsers" onkeyup="filterT2()"></input> + </div> + <div class="selectedUsers"> + <table id="powerUsersTable"> + <tbody id="powerUsersTableBody" overflow="auto"> + #foreach($user in $powerUsers) + #powerUserRow($user) + #end + </tbody> + </table> + </div> +</td> +<td id="globalAdminsColumn"> ##Global admins + <div id="globalAdminsHead"> + $msg.get('xws.admin.selectedGlobalAdmins') + <input type="text" id="filterGlobalAdmins" name="filterGlobalAdmins" onkeyup="filterT3()"></input> + </div> + <div class="selectedUsers"> + <table id="globalAdminsTable"> + <tbody id="globalAdminsTableBody"> + #foreach($user in $globalAdmins) + #globalAdminRow($user) + #end + <tbody> + </div> + </table> +</td> +</tr> +</table> +</div> + +<form action="$xwiki.getURL('XWSCode.GlobalMembersService','view')" method="get" id="theActionForm"> + +</form> + +{pre} +<script type="text/javascript"> +// <![CDATA[ +var movedUsers=new Array(); + +function addTo(array,key,value) +{ + array[key]=value; +} + +function addSimpleMemberToPowerUsers(user) { + document.getElementById("table1_line_"+user).style.display="none"; + addPowerUser(user); +} + +function addGlobalAdminToPowerUsers(user) { + if(globalAdminsNumber>1) + { + document.getElementById("table3_line_"+user).style.display="none"; + addPowerUser(user); + globalAdminsNumber--; + } + else + { + alert(atLeastOneAdminMessage); + } +} + +function addPowerUserToGlobalAdmins(user) { + document.getElementById("table2_line_"+user).style.display="none"; + addGlobalAdmin(user); + globalAdminsNumber++; +} + +function addSimpleMemberToGlobalAdmins(user) { + document.getElementById("table1_line_"+user).style.display="none"; + addGlobalAdmin(user); + globalAdminsNumber++; +} + +function addGlobalAdminToSimpleMembers(user) { + if(globalAdminsNumber>1) + { + document.getElementById("table3_line_"+user).style.display="none"; + addSimpleMember(user); + globalAdminsNumber--; + } + else + { + alert(atLeastOneAdminMessage); + } +} + +function addPowerUserToSimpleMembers(user) { + document.getElementById("table2_line_"+user).style.display="none"; + addSimpleMember(user); +} + +function addPowerUser(user) +{ + var aux=document.getElementById("powerUsersTableBody"); + var nodes=aux.childNodes; + var found=false; + var elemGasit=null; + for (var ii=0;ii<nodes.length && !found;ii++) { + if (nodes[ii].id == ("table2_line_"+user)) { + nodes[ii].style.display=""; + found=true; + elemGasit=nodes[ii]; + } + } + if (!found) { + var rand=aux.insertRow(0); + var colo=rand.insertCell(0); + rand.id="table2_line_"+user; + rand.style.width="100%"; + colo.style.width="33%"; + generatePowerUserHTML(user,colo); + //rand.style.display="table-row"; + } + movedUsers[user]="powerUser"; + userRows[user]="table2_line_"+user; +} + +function addGlobalAdmin(user) +{ + var aux=document.getElementById("globalAdminsTableBody"); + var nodes=aux.childNodes; + var found=false; + var foundElement=null; + for (var i=0;i<nodes.length && !found;i++) { + if(nodes[i].id == ("table3_line_"+user)) { + nodes[i].style.display=""; + found=true; + foundElement=nodes[i]; + } + } + if(!found) { + var rand=aux.insertRow(0); + var colo=rand.insertCell(0); + rand.id = "table3_line_"+user; + rand.style.width="100"; + generateGlobalAdminHTML(user,colo); + //rand.style.display="table-row"; + } + movedUsers[user]="globalAdmin"; + userRows[user]="table3_line_"+user; +} + +function addSimpleMember(user) +{ + var aux=document.getElementById("simpleMembersTableBody"); + var nodes=aux.childNodes; + var found=false; + var foundElement=null; + for (var i=0;i<nodes.length && !found;i++) { + if(nodes[i].id == ("table1_line_"+user)) { + nodes[i].style.display=""; + found=true; + foundElement=nodes[i]; + } + } + if(!found) { + var rand=aux.insertRow(0); + var colo=rand.insertCell(0); + rand.id = "table1_line_"+user; + rand.style.width="100"; + generateSimpleMemberHTML(user,colo); + //rand.style.display="table-row"; + } + movedUsers[user]="simpleMember"; + userRows[user]="table1_line_"+user; +} + +function generatePowerUserHTML(user,cell) +{ + //left arrow + firstArrowDiv=document.createElement("div"); + firstArrowDiv.setAttribute("style","float:right"); + firstArrowDiv.style.styleFloat ="left"; + firstArrowDiv.style.width="10%"; + firstArrowDiv.style.textAlign="left"; + firstArrowDiv.style.display="inline"; + firstArrowLink=document.createElement("a"); + //firstArrowLink.style.display="block"; + firstArrowLink.id="a22_"+user; + firstArrowLink.style.cursor="pointer"; + firstArrowLink.href="javascript:void(0);addPowerUserToGlobalAdmins(" +'"' +user+'"' + ");"; //TODO: add de action link + firstArrowImg=document.createElement("img"); + firstArrowImg.src="/xwiki/skins/workspaces/images/move-right-blue.png"; + firstArrowImg.title=moveToGlobalAdminsMessage; + firstArrowLink.appendChild(firstArrowImg); + firstArrowDiv.appendChild(firstArrowLink); + //username div + userNameDiv=document.createElement("div"); + userNameDiv.setAttribute("style","float:right"); + userNameDiv.style.styleFloat ="right"; + userNameDiv.style.width="80%"; + + userNameDiv.style.display="inline"; + userNameDiv.innerHTML=getUserLink(user,"T2"); + userNameDiv.id="divT2_"+user; + //right arrow + secondArrowDiv=document.createElement("div"); + secondArrowDiv.setAttribute("style","float:right"); + secondArrowDiv.style.styleFloat ="right"; + secondArrowDiv.style.width="10%"; + secondArrowDiv.style.textAlign="right"; + secondArrowDiv.style.display="inline"; + secondArrowLink=document.createElement("a"); + secondArrowLink.id="a21_"+user; + secondArrowLink.style.cursor="pointer"; + secondArrowLink.href="javascript:void(0);addPowerUserToSimpleMembers(" +'"' +user+'"' + ");"; //TODO: add the action link + secondArrowImg=document.createElement("img"); + secondArrowImg.src="/xwiki/skins/workspaces/images/move-left-red.png"; + secondArrowImg.title=moveToSimpleMembersMessage; + secondArrowLink.appendChild(secondArrowImg); + secondArrowDiv.appendChild(secondArrowLink); + cell.appendChild(firstArrowDiv); + cell.appendChild(userNameDiv); + cell.appendChild(secondArrowDiv); +} + +function generateGlobalAdminHTML(user,cell) +{ + //Arrows + ArrowDiv=document.createElement("div"); + ArrowDiv.setAttribute("style","float:left"); + ArrowDiv.style.styleFloat ="left"; + ArrowDiv.style.width="20%"; + ArrowDiv.style.textAlign="right"; + //ArrowDiv.style.display="inline"; + firstArrowLink=document.createElement("a"); + //firstArrowLink.style.display="inline"; + firstArrowLink.id="a32_"+user; + firstArrowLink.style.cursor="pointer"; + firstArrowLink.setAtt + firstArrowLink.href="javascript:void(0);addGlobalAdminToPowerUsers(" +'"' +user+'"' + ");"; //TODO: add de action link + firstArrowImg=document.createElement("img"); + firstArrowImg.src="/xwiki/skins/workspaces/images/move-left-green.png"; + firstArrowImg.title=moveToPowerUsersMessage; + //firstArrowImg.style.display="inline"; + firstArrowLink.appendChild(firstArrowImg); + secondArrowLink=document.createElement("a"); + secondArrowLink.id="a31_"+user; + secondArrowLink.style.cursor="pointer"; + secondArrowLink.href="javascript:void(0);addGlobalAdminToSimpleMembers(" +'"' +user+'"' + ");"; //TODO: add the action link + secondArrowImg=document.createElement("img"); + secondArrowImg.src="/xwiki/skins/workspaces/images/move-left-red.png"; + secondArrowImg.title=moveToSimpleMembersMessage; + //secondArrowImg.style.display="inline"; + secondArrowLink.appendChild(secondArrowImg); + ArrowDiv.appendChild(secondArrowLink); + ArrowDiv.appendChild(firstArrowLink); + //username div + userNameDiv=document.createElement("div"); + userNameDiv.setAttribute("style","float:right"); + userNameDiv.style.styleFloat ="right"; + userNameDiv.style.width="80%"; + userNameDiv.style.display="inline"; + userNameDiv.innerHTML=getUserLink(user,"T3"); + userNameDiv.id="divT3_"+user; + cell.appendChild(ArrowDiv); + cell.appendChild(userNameDiv); +} + +function generateSimpleMemberHTML(user,cell) +{ + //Arrows + ArrowDiv=document.createElement("div"); + ArrowDiv.setAttribute("style","float:right"); + ArrowDiv.style.styleFloat ="right"; + ArrowDiv.style.width="20%"; + ArrowDiv.style.textAlign="left"; + //ArrowDiv.style.display="inline"; + firstArrowLink=document.createElement("a"); + //firstArrowLink.style.display="inline"; + firstArrowLink.id="a11_"+user; + firstArrowLink.style.cursor="pointer"; + firstArrowLink.setAtt + firstArrowLink.href="javascript:void(0);addSimpleMemberToPowerUsers(" +'"' +user+'"' + ");"; //TODO: add de action link + firstArrowImg=document.createElement("img"); + firstArrowImg.src="/xwiki/skins/workspaces/images/move-right-green.png"; + firstArrowImg.title=moveToPowerUsersMessage; + //firstArrowImg.style.display="inline"; + firstArrowLink.appendChild(firstArrowImg); + secondArrowLink=document.createElement("a"); + secondArrowLink.id="a12_"+user; + secondArrowLink.style.cursor="pointer"; + secondArrowLink.href="javascript:void(0);addSimpleMemberToGlobalAdmins(" +'"' +user+'"' + ");"; //TODO: add the action link + secondArrowImg=document.createElement("img"); + secondArrowImg.src="/xwiki/skins/workspaces/images/move-right-blue.png"; + secondArrowImg.title=moveToGlobalAdminsMessage; + //secondArrowImg.style.display="inline"; + secondArrowLink.appendChild(secondArrowImg); + ArrowDiv.appendChild(firstArrowLink); + ArrowDiv.appendChild(secondArrowLink); + //username div + userNameDiv=document.createElement("div"); + userNameDiv.setAttribute("style","float:left"); + userNameDiv.style.styleFloat ="left"; + userNameDiv.style.width="80%"; + userNameDiv.style.display="inline"; + userNameDiv.innerHTML=getUserLink(user,"T1"); + userNameDiv.id="divT1_"+user; + cell.appendChild(ArrowDiv); + cell.appendChild(userNameDiv); +} + +/** + * @param user + * @param targetGroup - values: "T1","T2","T3" + * @return the link to the user's profile. Displays users's pretty name(FirstName + LastName) + */ +function getUserLink(user,targetTable) +{ + switch(targetTable) + { + case "T1": firstChoice="divT2_"+user; + secondChoice="divT3_"+user; + break; + case "T2": firstChoice="divT1_"+user; + secondChoice="divT3_"+user; + break; + case "T3": firstChoice="divT1_"+user; + secondChoice="divT2_"+user; + break; + default: return user; //returns the xwiki user name.(!link) + } + userLink=document.getElementById(firstChoice); + if(userLink == null) + { + userLink=document.getElementById(secondChoice); + } + if(userLink == null) + { + return user; + } + else + { + return userLink.innerHTML; + } +} + +function save() { + + var movedUser; + for(movedUser in movedUsers) + { + if(movedUsers[movedUser]!=null) + { + //alert(movedUser); + var theActionForm=document.getElementById("theActionForm"); + var newElement=document.createElement("input"); + newElement.setAttribute("type","hidden"); + if(movedUsers[movedUser]=="powerUser") + { + newElement.setAttribute("name","NEW_POWER_USER"); + } + if(movedUsers[movedUser]=="globalAdmin") + { + newElement.setAttribute("name","NEW_GLOBAL_ADMIN"); + } + if(movedUsers[movedUser]=="simpleMember") + { + newElement.setAttribute("name","NEW_SIMPLE_MEMBER"); + } + newElement.setAttribute("value",movedUser); + theActionForm.appendChild(newElement); + } + } + document.getElementById("theActionForm").submit(); +} + +function filterT1(evt) +{ + var x=""; + input=document.getElementById("filterSimpleMembers"); + filterText=input.value.toLowerCase(); + for(x in userRows) + { + s=userRows[x].toString().toLowerCase(); + if(s.indexOf("table1_line_")!=-1) + { + rowElement=document.getElementById(userRows[x].toString()); + userPrettyName=document.getElementById("divT1_"+x).textContent.toLowerCase(); + if(userPrettyName.indexOf(filterText)==-1) + { + rowElement.style.display="none"; + } + else + { + rowElement.style.display=""; + } + } + } +} + +function filterT2() +{ + var x=""; + input=document.getElementById("filterPowerUsers"); + filterText=input.value.toLowerCase(); + for(x in userRows) + { + s=userRows[x].toString().toLowerCase(); + if(s.indexOf("table2_line_")!=-1) + { + rowElement=document.getElementById(userRows[x].toString()); + userPrettyName=document.getElementById("divT2_"+x).textContent.toLowerCase(); + if(userPrettyName.indexOf(filterText)==-1) + { + rowElement.style.display="none"; + } + else + { + rowElement.style.display=""; + } + } + } +} + +function filterT3() +{ + var x=""; + input=document.getElementById("filterGlobalAdmins"); + filterText=input.value.toLowerCase(); + for(x in userRows) + { + s=userRows[x].toString().toLowerCase(); + if(s.indexOf("table3_line_")!=-1) + { + rowElement=document.getElementById(userRows[x].toString()); + userPrettyName=document.getElementById("divT3_"+x).textContent.toLowerCase(); + if(userPrettyName.indexOf(filterText)==-1) + { + rowElement.style.display="none"; + } + else + { + rowElement.style.display=""; + } + } + } +} + +function refresh() { + window.location=window.location; +} +// ]]> +</script> + +<script type="text/javascript"> +// <![CDATA[ + var userRows=new Array(); + var moveToSimpleMembersMessage= '$msg.get("xws.admin.moveToSimpleMembers")'; + var atLeastOneAdminMessage= '$msg.get("xws.admin.atLeastOneAdmin")'; + var moveToPowerUsersMessage= '$msg.get("xws.admin.moveToPowerUsers")'; + var moveToGlobalAdminsMessage= '$msg.get("xws.admin.moveToGlobalAdmins")'; + #foreach($userName in $allMembers) + addTo(userRows,'$userName',"table1_line_"+'$userName'); + #end + #foreach($userName in $powerUsers) + addTo(userRows,'$userName',"table2_line_"+'$userName'); + #end + #foreach($userName in $globalAdmins) + addTo(userRows,'$userName',"table3_line_"+'$userName'); + #end + var globalAdminsNumber=parseInt('$globalAdmins.size()'); +// ]]> +</script> +{/pre} + +<span class="buttonwrapper"> +<a href="javascript:save();">$msg.get('xws.admin.clicktosave')</a> +<a href="javascript:refresh();">$msg.get('commons.form.cancel')</a> +</span> \ No newline at end of file