General Actions:
Log-in
Register
Wiki:
Main wiki
▼
:
Document Index
»
Space:
WorkspaceManager
▼
:
Document Index
»
Page:
CreateNewWorkspace
Search
en
Page Actions:
Export
▼
:
Export as PDF
Export as RTF
Export as HTML
More actions
▼
:
Print preview
View Source
Main wiki
»
Browse Workspaces
»
Create a new workspace
Wiki source code of
Create a new workspace
Last modified by
Administrator
on 2012/03/21 17:40
Content
·
Comments
(0)
·
Annotations
(0)
·
Attachments
(0)
·
History
·
Information
Show line numbers
{{velocity}} #set ($discard = $xwiki.jsx.use($doc.fullName)) ############################################################################################ ## TRANLSATIONS AUTOMATIC REGISTRATION #set ($WORKSPACE_MANAGER_TRANSLATIONS_PAGE = 'WorkspaceManager.Translations') #set ($xwikiPreferencesDocumentReference = $services.model.createDocumentReference('xwiki', 'XWiki', 'XWikiPreferences')) #set ($xwikiPreferencesDocument = $xwiki.getDocument($xwikiPreferencesDocumentReference)) #set ($documentBundlesValue = $xwikiPreferencesDocument.documentBundles) #if (!$documentBundlesValue.contains($WORKSPACE_MANAGER_TRANSLATIONS_PAGE)) #set ($documentBundlesValue = "${WORKSPACE_MANAGER_TRANSLATIONS_PAGE},${documentBundlesValue}") #set ($temp = $xwikiPreferencesDocument.set('documentBundles', $documentBundlesValue)) ## Save the preferences page using programming rights of the current document. #set ($temp = $xwiki.getXWiki().saveDocument($xwikiPreferencesDocument.document, "Added $WORKSPACE_MANAGER_TRANSLATIONS_PAGE to the list of document bundles.", true, $xcontext.context)) {{info}}$msg.get('workspacemanager.install.translations'){{/info}} #end ############################################################################################ ## PLUGINS DEPENDANCIES #set ($WorkspaceManager = $services.workspace) #if (!$WorkspaceManager) {{error}}$msg.get('workspacemanager.pluginnotenabled'){{/error}} #end #set ($WikiManager = $services.wikimanager) #if (!$WikiManager) {{error}}$msg.get('workspacemanager.dependencies.wikimanager.missing'){{/error}} #end #if (!$services.applicationmanager) {{error}}$msg.get('workspacemanager.dependencies.applicationmanager.missing'){{/error}} #end #if(!$xwiki.isVirtualMode()) {{error}}$msg.get('workspacemanager.error.notinvirtualmode'){{/error}} #end ############################################################################################ ## WORKSPACE INSTALLATION STATUS CHECK #set ($isInstallComplete = "$!{WikiManager.getWikiTemplateDocument('workspacetemplate')}" != '') #if (!$isInstallComplete) {{warning}}$msg.get('workspacemanager.template.install.notYetComplete', ['WorkspaceManager.Install']){{/warning}} #end ############################################################################################ ## MACROS #macro(getRequestList $paramlist $paramname) #set ($paramtable = []) #set ($paramtable = $request.getParameterValues($paramname)) #if ($paramtable && $paramlist) #set ($ok = $paramlist.clear()) #foreach($paramvalue in $paramtable) #set ($ok = $paramlist.add($paramvalue)) #end #end #end ############################################################################################ ## TOOLS #set ($ALIASSUFFIX = "") ## ############################################################################################ ## REQUEST PARAMETERS #set ($wikidocument = $WikiManager.createWikiDocument()) #set ($wikidocumentobject = $wikidocument.updateObjectFromRequest('XWiki.XWikiServerClass')) #set ($wikidocumentWorkspaceObject = $wikidocument.updateObjectFromRequest('WorkspaceManager.WorkspaceClass')) ## #if ($request.actioncreate) #set ($action = 'create') #else #set ($action = $request.getParameter('action')) #end ## #set ($wikiname = $request.getParameter('wikiname')) ## Make sure to prefix the owner user with the wiki name. #if ($wikidocument.owner == "") #set($temp = $wikidocument.set('owner', "${xcontext.mainWikiName}:${xcontext.user}")) #elseif (!($wikidocument.owner.startsWith("${xcontext.mainWikiName}:"))) #set($temp = $wikidocument.set('owner', "${xcontext.mainWikiName}:${wikidocument.owner}")) #end #if ($wikidocument.server == '' && "$!wikiname" != '') #set ($alias = "${wikiname}") #if ("$!ALIASSUFFIX" != '') #set ($alias = "${alias}.${ALIASSUFFIX}") #else #set ($usePath = $xwiki.xWiki.Param('xwiki.virtual.usepath', '1')) #if ($usePath == '0') #set ($serverURL = $xcontext.getURLFactory().getServerURL($xcontext.context)) #set ($alias = "${alias}.$serverURL.host") #end #end #set($temp = $wikidocument.set('server', "${alias}")) #end ## #set($members = []) #getRequestList($members 'members') ## Remove any duplicate members (like the owner in some cases). #set ($discard = $members.remove($wikidocument.owner)) ############################################################################# ## #if ($action && $action == 'create') #set ($discard = $WorkspaceManager.createWorkspace($wikiname, $wikidocument)) ## #if ("$!WorkspaceManager.lastException" == '') ## Add members. #if ("$!members" != '' && $members.size() > 0) #set ($WorkspaceManager = $services.workspace) #set ($workspace = $WorkspaceManager.getWorkspace($wikiname)) #set ($groupsClassName = "$wikiname:XWiki.XWikiGroups") #set ($workspaceGroupDocument = $workspace.groupDocument) #foreach($member in $members) #set($memberObject = $workspaceGroupDocument.newObject($groupsClassName)) #if (!$member.startsWith("${xcontext.mainWikiName}:")) #set ($member = "${xcontext.mainWikiName}:${member}") #end #set($temp = $memberObject.set('member', $member)) #end ## Save the group document to preserve the member additions. #set($temp = $workspaceGroupDocument.save('Added initial workspace members', true)) #end ## Redirect to the new workspace's homepage. #set($temp = $response.sendRedirect("$wikidocument.getHomePageUrl()")) #else {{error}}$msg.get('workspacemanager.errorcreatewiki', [$wikiname, $WorkspaceManager.lastException]){{/error}} #end #end {{html clean='false'}} ## ############################################################################# ## <form method='post' action='' id='wikicreationform' class='xform third'> <dl> <dt> <label for='wikiname'>$msg.get('workspacemanager.prop.wiki.wikiname') <span class='xRequired'>(Required)</span></label> <span class='xHint'>$msg.get('workspacemanager.doc.createwiki.wikiname')</span> <span id='wikinamevalidation' class='xErrorMsg'></span> </dt> <dd> <input size='60' id='wikiname' name='wikiname' type='text' onchange='wikiNameChanged();' onkeyup='wikiNameChanged();' #if(!$isInstallComplete)disabled='disabled'#{end} /> </dd> </dl> ## ############################################################################# ## <dl> <dt> <label for='XWiki.XWikiServerClass_0_wikiprettyname'>$msg.get('workspacemanager.prop.wiki.wikiprettyname') <span class='xRequired'>(Required)</span></label> <span class='xHint'>$msg.get('workspacemanager.doc.createwiki.desc.wikiprettyname')</span> <span id='wikiprettynamevalidation' class='xErrorMsg'></span> </dt> <dd><input size='60' id='XWiki.XWikiServerClass_0_wikiprettyname' name='XWiki.XWikiServerClass_0_wikiprettyname' type='text' onchange='prettyNameChanged();' onkeyup='prettyNameChanged();' #if(!$isInstallComplete)disabled='disabled'#{end} /></dd> </dl> <dl> <dt> <label for='XWiki.XWikiServerClass_0_description'>$msg.get('workspacemanager.prop.wiki.description')</label> <span class='xHint'>$msg.get('workspacemanager.doc.createwiki.desc.description')</span> </dt> <dd><textarea id='XWiki.XWikiServerClass_0_description' name='XWiki.XWikiServerClass_0_description' rows='7' cols='45' #if(!$isInstallComplete)disabled='disabled'#{end} ></textarea></dd> </dl> #set ($rightsmanager = $xwiki.rightsmanager) #set ($users = $sorttool.sort($rightsmanager.usersApi.allGlobalUsersNames)) ## Make this section available only to admins, so that only admins can create workspaces in the name of other users. #if ($hasAdmin) <dl> <dt> <label for='XWiki.XWikiServerClass_0_owner'>$msg.get('workspacemanager.prop.wiki.owner') <span class='xRequired'>(Required)</span></label> <span class='xHint'>$msg.get('workspacemanager.doc.createwiki.desc.owner')</span> </dt> <dd> <select name='XWiki.XWikiServerClass_0_owner' id='XWiki.XWikiServerClass_0_owner' size='4' #if(!$isInstallComplete)disabled='disabled'#{end} > #foreach ($user in $users) ## Skip the guest user. #if ($user != 'XWiki.XWikiGuest') #set ($selectAsOwner = ($xcontext.user == $user)) #if ($xcontext.isMainWiki()) #set ($user = "${xcontext.mainWikiName}:${user}") #end <option value="$user" #if($selectAsOwner)selected='selected'#{end}>$xwiki.getUserName($user, $util.null, false)</option> #end #end </select> </dd> </dl> #else <div> <input id='XWiki.XWikiServerClass_0_owner' name='XWiki.XWikiServerClass_0_owner' type='hidden' value="${xcontext.mainWikiName}:${xcontext.user}" #if(!$isInstallComplete)disabled='disabled'#{end} /> </div> #end ## ############################################################################# ## <dl> <dt> <label for='members'>$msg.get('workspacemanager.members')</label> <span class='xHint'>$msg.get('workspacemanager.doc.createwiki.members')</span> </dt> <dd> <select name='members' id='members' multiple='multiple' #if(!$isInstallComplete)disabled='disabled'#{end} > #foreach ($user in $users) ## Skip the current user if the user is not an admin. The current user is made owner by default and, ## thus, a member of the workspace. However, an admin can choose a different owner. ## Also skip the guest user. #if (($hasAdmin || (!$hasAdmin && $user != $xcontext.user)) && ($user != 'XWiki.XWikiGuest')) #if ($xcontext.isMainWiki()) #set ($user = "${xcontext.mainWikiName}:${user}") #end <option value="$user">$xwiki.getUserName($user, $util.null, false)</option> #end #end </select> </dd> </dl> #set($workspaceClass = $xwiki.getDocument('WorkspaceClass').getxWikiClass()) #set($membershipTypeProperty = $workspaceClass.get('membershipType')) #set($membershipTypeValues = '') #set($membershipTypeValues = $membershipTypeProperty.getListValues()) #set($membershipTypeDetailsMap = $membershipTypeProperty.getMapValues()) <dl> <dt> <label>$msg.get('workspacemanager.prop.workspace.membershipType.label')</label> <span class='xHint'>$msg.get('workspacemanager.prop.workspace.membershipType.hint')</span> </dt> <dd> #foreach($membershipTypeValue in $membershipTypeValues) #set ($membershipTypeValueId = "WorkspaceManager.WorkspaceClass_0_membershipType${foreach.index}") <div> <label for="$membershipTypeValueId"> <input type='radio' id="$membershipTypeValueId" name='WorkspaceManager.WorkspaceClass_0_membershipType' value="$membershipTypeValue" #if($foreach.index==0)checked='checked'#end #if(!$isInstallComplete)disabled='disabled'#{end} /> $membershipTypeDetailsMap.get($membershipTypeValue).getValue() </label> </div> #end </dd> </dl> ## ############################################################################# ## <div> <div id='actioncreate'> <br/> <input type='hidden' name='form_token' value="$!{services.csrf.getToken()}" /> <input class='button' type='submit' id='actioncreatebutton' name='actioncreate' value="${msg.get('create')}" #if($isInstallComplete)onclick='return validate();'#{else}disabled='disabled'#{end} /> </div> </div> </form> {{/html}} {{/velocity}}