%PDF- %PDF-
| Direktori : /data/old/home/stash/atlassian-stash/static/page/admin/users/ |
| Current File : //data/old/home/stash/atlassian-stash/static/page/admin/users/useredit.soy |
{namespace stash.admin.users}
/**
* @param username
* @param user
* @param captchaChallenged
* @param editableDetails
* @param editableGroups
* @param editablePermissions
* @param editableDirectory
* @param isDeletable
* @param? highestGlobalPermission
*/
{template .edit}
{webResourceManager_requireResourcesForContext('stash.page.admin.users.edit')}
{call stash.layout.admin}
{param activeTab: 'admin-general-users' /}
{param content}
{call .viewandedit data="all"}
{param secondarySection}
{call .userSecondarySection}
{param user: $user /}
{param editableGroups: $editableGroups /}
{param webItems: getWebItems('stash.web.userdetails.secondary.tabs', [ 'user' : $user ]) /}
{/call}
{/param}
{/call}
{/param}
{param pageBottomContent}
<script>require('page/admin/userEdit').onReady({to_json($user)|noAutoescape}, {lb}
groupsTableSelector: '#user-groups-table',
passwordLinkSelector: '#update-password-user',
renameUserLinkSelector: '#rename-user',
clearCaptchaLinkSelector: '#clear-captcha',
avatarFormSelector: '.aui-page-panel-content', // TODO: the page is inconsistent with the rest of Stash and has to be refactored
deleteLinkSelector: '#delete-user'
{rb});
</script>
{/param}
{/call}
{/template}
/**
* @param username
* @param user
* @param captchaChallenged
* @param editableDetails
* @param editablePermissions
* @param editableDirectory
* @param isDeletable
* @param secondarySection
* @param? highestGlobalPermission
*/
{template .viewandedit}
{if $user}
<ol class="aui-nav aui-nav-breadcrumbs">
{call stash.widget.breadcrumbs.back}
{param id: 'users-breadcrumb' /}
{param href: nav_admin_users() /}
{param text: getText('stash.web.users.back.link') /}
{/call}
</ol>
{if $editableDetails or $captchaChallenged}
{call aui.toolbar2.toolbar2}
{param content}
{call aui.toolbar2.item}
{param item: 'primary' /}
{param content}
{call stash.buttons.buttons}
{param content}
{if $editableDetails}
{call stash.buttons.button}
{param buttonText: getText('stash.web.users.edit.button') /}
{{param title: getText('stash.web.users.edit.title', $user.displayName) /}}
{param id: 'edit-details' /}
{/call}
{call stash.buttons.button}
{param buttonText: getText('stash.web.users.changeavatar.button') /}
{{param title: getText('stash.web.users.changeavatar.title', $user.displayName) /}}
{param extraClasses: 'avatar-picker-trigger' /}
{/call}
{call stash.buttons.button}
{param buttonText: getText('stash.web.users.changepassword.button') /}
{{param title: getText('stash.web.users.changepassword.title', $user.displayName) /}}
{param id: 'update-password-user' /}
{/call}
{call stash.buttons.button}
{param buttonText: getText('stash.web.users.renameuser.button') /}
{{param title: getText('stash.web.users.renameuser.title', $user.displayName) /}}
{param id: 'rename-user' /}
{/call}
{/if}
{if $captchaChallenged}
{call stash.buttons.button}
{param buttonText: getText('stash.web.users.clearcaptcha.button') /}
{param href: nav_admin_user_captcha($user.name) /}
{{param title: getText('stash.web.users.clearcaptcha.title', $user.displayName) /}}
{param id: 'clear-captcha' /}
{/call}
{/if}
{/param}
{/call}
{if $isDeletable}
{call stash.buttons.buttons}
{param content}
{call stash.buttons.button}
{param buttonText: getText('stash.web.users.delete.button') /}
{param href: nav_admin_user_delete($user.name) /}
{{param title: getText('stash.web.users.delete.title', $user.displayName) /}}
{param id: 'delete-user' /}
{/call}
{/param}
{/call}
{/if}
{/param}
{/call}
{/param}
{/call}
{/if}
<div class="notifications">
{if not $editableDirectory}
{call widget.aui.message.info}
{param content}
{getText('stash.web.users.edit.read.only.warning')}
{/param}
{/call}
{/if}
</div>
{call widget.aui.group.group}
{param extraClasses: 'panel-details' /}
{param content}
{call widget.aui.group.item}
{param content}
{call stash.widget.avatar}
{param person: $user /}
{param size: 'xxxlarge' /}
{/call}
{foreach $webPanel in getWebPanels('stash.web.userdetails.avatar.caption', [ 'user' : $user ])}
{$webPanel|noAutoescape}
{/foreach}
{/param}
{/call}
{call widget.aui.group.item}
{param content}
<div class="details">
{call .userDetailsForm data="all"/}
</div>
{/param}
{/call}
{/param}
{/call}
{$secondarySection|noAutoescape}
{else}
{call widget.aui.group.group}
{param content}
{call widget.aui.group.item}
{param content}
{call widget.aui.message.error}
{param content}
{{getText('stash.web.users.view.notfound', $username)}}
{/param}
{/call}
{/param}
{/call}
{/param}
{/call}
{/if}
{/template}
/**
* @param user
* @param editableDetails
* @param editablePermissions
* @param? highestGlobalPermission
*/
{template .userDetailsForm}
<form id="user-details" method="POST" action="{nav_rest_admin_users()}" class="aui{if $editableDetails} editable{/if}">
<div class="field-group">
<input type="text" readonly="readonly" id="fullname" name="fullname"
value="{$user.displayName}" title="{$user.displayName}"
data-rollback="{$user.displayName}">
</div>
<div class="field-group">
<label for="name"></label>
<input type="text" readonly="readonly" id="name" name="name"
value="{$user.name}"
data-rollback="{$user.name}">
</div>
<div class="field-group">
<label for="email"></label>
<input type="text" readonly="readonly" id="email" name="email"
value="{$user.emailAddress ? $user.emailAddress : ''}"
data-rollback="{$user.emailAddress ? $user.emailAddress : ''}">
</div>
<div class="field-group user-permission">
{call stash.feature.permission.lozenge}
{param permission: $highestGlobalPermission /}
{/call}
{if $editablePermissions}
<a href="{nav_admin_global_perms()}" id="change-permissions">{getText('stash.web.users.change.permissions')}</a>
{/if}
</div>
{if $editableDetails}
{call widget.aui.form.buttons}
{param content}
{call stash.buttons.button}
{param buttonText: getText('stash.web.button.save') /}
{param isPrimary: true /}
{param extraClasses: 'save' /}
{/call}
{call widget.aui.form.cancelButton}
{param href: '' /}
{/call}
{/param}
{/call}
{/if}
</form>
{/template}
/**
* Adds at least the group list to the profile and user admin page. As the ability to transform itself into
* a pluggable, dynamic AUI tab based on web items and web panels. Used by SSH currently
*
* @param user
* @param editableGroups
* @param webItems
**/
{template .userSecondarySection}
{call widget.aui.group.group}
{param extraClasses: length($webItems) == 0 ? 'group-picker' : 'user-secondary-section' /}
{param content}
{call widget.aui.group.item}
{param content}
{if length($webItems) > 0}
{call widget.aui.webItemTabs}
{param webItems: $webItems /}
{param tabItemsContent}
{call widget.aui.tabMenuItem}
{param text: getText('stash.web.users.group.membership') /}
{param url: '#groups-tab' /}
{param isActive: true /}
{/call}
{/param}
{param tabPanesContent}
{call widget.aui.tabPane}
{param isActive: true /}
{param id: 'groups-tab' /}
{param extraClasses: 'group-picker' /}
{param content}
{call .groupsPaneContents}
{param user: $user /}
{param editableGroups: $editableGroups /}
{/call}
{/param}
{/call}
{foreach $webItem in $webItems}
{call widget.aui.tabPane}
{param id: substring($webItem.url, 1) /} // Convert #blah urls to blah ids
{param content}
{foreach $webPanel in getWebPanels($webItem.moduleKey, [ 'user' : $user ])}
{$webPanel|noAutoescape}
{/foreach}
{/param}
{/call}
{/foreach}
{/param}
{/call}
{else}
{call .groupsPaneContents}
{param user: $user /}
{param editableGroups: $editableGroups /}
{/call}
{/if}
{/param}
{/call}
{/param}
{/call}
{/template}
/**
* @param user
* @param editableGroups
**/
{template .groupsPaneContents}
<header class="aui-page-header">
<div class="aui-page-header-inner">
<div class="aui-page-header-main">
<h2>{{getText('stash.web.users.group.membership')}}</h2>
</div>
</div>
</header>
{call stash.feature.user.userGroupsTable}
{param id: 'user-groups-table' /}
{param editable: $editableGroups /}
{param user: $user /}
{/call}
{/template}