mirror of
https://github.com/gitbucket/gitbucket.git
synced 2025-11-15 09:55:49 +01:00
130 lines
4.5 KiB
HTML
130 lines
4.5 KiB
HTML
@(account: Option[model.Account], members: List[(String, Boolean)])(implicit context: app.Context)
|
|
@import context._
|
|
@import view.helpers._
|
|
@html.main(if(account.isEmpty) "New Group" else "Update Group"){
|
|
@admin.html.menu("users"){
|
|
<form method="POST" action="@if(account.isEmpty){@path/admin/users/_newgroup} else {@path/admin/users/@account.get.userName/_editgroup}" validate="true">
|
|
<div class="row-fluid">
|
|
<div class="span7">
|
|
<fieldset>
|
|
<label for="groupName" class="strong">Group name</label>
|
|
<div>
|
|
<span id="error-groupName" class="error"></span>
|
|
</div>
|
|
<input type="text" name="groupName" id="groupName" value="@account.map(_.userName)"@if(account.isDefined){ readonly}/>
|
|
@if(account.isDefined){
|
|
<label for="removed">
|
|
<input type="checkbox" name="removed" id="removed" value="true" @if(account.get.isRemoved){checked}/>
|
|
Disable
|
|
</label>
|
|
}
|
|
</fieldset>
|
|
<fieldset>
|
|
<label class="strong">URL (Optional)</label>
|
|
<div>
|
|
<span id="error-url" class="error"></span>
|
|
</div>
|
|
<input type="text" name="url" id="url" style="width: 300px;" value="@account.map(_.url)"/>
|
|
</fieldset>
|
|
<fieldset>
|
|
<label for="avatar" class="strong">Image (Optional)</label>
|
|
@helper.html.uploadavatar(account)
|
|
</fieldset>
|
|
</div>
|
|
<div class="span5">
|
|
<fieldset>
|
|
<label class="strong">Members</label>
|
|
<ul id="member-list" class="collaborator">
|
|
@members.map { case (userName, isManager) =>
|
|
<li data-name="@userName">
|
|
<input type="checkbox" class="is_manager" id="is_manager_@userName" @if(isManager){checked}/>
|
|
<a href="@path/@url(userName)">@userName</a>
|
|
<a href="#" class="remove">(remove)</a>
|
|
</li>
|
|
}
|
|
</ul>
|
|
@helper.html.account("memberName", 200)
|
|
<input type="button" class="btn" value="Add" id="addMember"/>
|
|
<input type="hidden" id="members" name="members" value="@members.map(x => x._1 + ":" + x._2).mkString(",")"/>
|
|
<div>
|
|
<span class="error" id="error-members"></span>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
<fieldset class="margin">
|
|
<input type="submit" class="btn btn-success" value="@if(account.isEmpty){Create Group} else {Update Group}"/>
|
|
<a href="@path/admin/users" class="btn">Cancel</a>
|
|
</fieldset>
|
|
</form>
|
|
}
|
|
}
|
|
<script>
|
|
$(function(){
|
|
$('#addMember').click(function(){
|
|
$('#error-memberName').text('');
|
|
var userName = $('#memberName').val();
|
|
|
|
// check empty
|
|
if($.trim(userName) == ''){
|
|
return false;
|
|
}
|
|
|
|
// check duplication
|
|
var exists = $('#member-list li').filter(function(){
|
|
return $(this).data('name') == userName;
|
|
}).length > 0;
|
|
if(exists){
|
|
$('#error-memberName').text('User has been already added.');
|
|
return false;
|
|
}
|
|
|
|
// check existence
|
|
$.post('@path/admin/users/_usercheck', {
|
|
'userName': userName
|
|
}, function(data, status){
|
|
if(data == 'true'){
|
|
// add member
|
|
$('#member-list').append($('<li>')
|
|
.data('name', userName)
|
|
.append($('<input type="checkbox" class="is_manager">').attr('id', 'is_manager_' + userName))
|
|
.append($('<a>').attr('href', '@path/' + userName).text(userName))
|
|
.append(' ')
|
|
.append($('<a>').attr('href', '#').addClass('remove').text('(remove)')));
|
|
$('#members').val('');
|
|
|
|
// update hidden value
|
|
updateMembers();
|
|
} else {
|
|
$('#error-memberName').text('User does not exist.');
|
|
}
|
|
});
|
|
});
|
|
|
|
$(document).on('click', '.remove', function(){
|
|
// remove member
|
|
$(this).parent().remove();
|
|
// update hidden value
|
|
updateMembers();
|
|
$('#members').val(members);
|
|
});
|
|
|
|
// Don't submit form by ENTER key
|
|
$('#memberName').keypress(function(e){
|
|
console.log(e.keyCode);
|
|
return !(e.keyCode == 13);
|
|
});
|
|
|
|
$('.is_manager').change(function(){
|
|
updateMembers();
|
|
});
|
|
|
|
function updateMembers(){
|
|
var members = $('#member-list li').map(function(i, e){
|
|
var userName = $(e).data('name');
|
|
return userName + ':' + $('#is_manager_' + userName).prop('checked');
|
|
}).get().join(',');
|
|
$('#members').val(members);
|
|
}
|
|
});
|
|
</script> |