diff --git a/src/main/scala/app/UserManagementController.scala b/src/main/scala/app/UserManagementController.scala index f625126..369fe7a 100644 --- a/src/main/scala/app/UserManagementController.scala +++ b/src/main/scala/app/UserManagementController.scala @@ -54,7 +54,11 @@ )(EditGroupForm.apply) get("/admin/users")(adminOnly { - admin.users.html.list(getAllUsers()) + val users = getAllUsers() + val members = users.collect { case account if(account.isGroupAccount) => + account.userName -> getGroupMembers(account.userName) + }.toMap + admin.users.html.list(users, members) }) get("/admin/users/_new")(adminOnly { diff --git a/src/main/twirl/admin/users/group.scala.html b/src/main/twirl/admin/users/group.scala.html index 0fdfbd7..636b927 100644 --- a/src/main/twirl/admin/users/group.scala.html +++ b/src/main/twirl/admin/users/group.scala.html @@ -1,7 +1,7 @@ @(account: Option[model.Account], members: List[String])(implicit context: app.Context) @import context._ @import view.helpers._ -@html.main(if(account.isEmpty) "New User" else "Update User"){ +@html.main(if(account.isEmpty) "New Group" else "Update Group"){ @admin.html.menu("users"){
@@ -21,7 +21,7 @@
- + Cancel
@@ -56,35 +56,47 @@ $('#error-memberName').text(''); var userName = $('#memberName').val(); + // check empty + if($.trim(userName) == ''){ + return false; + } + // TODO check existence + // check duplication var exists = $('#members li').filter(function(){ - return $(this).data('userName') == userName; + return $(this).data('name') == userName; }).length > 0; if(exists){ $('#error-memberName').text('User has been already added.'); return false; } + // add member $('#members').append($('
  • ') - .data('userName', userName) + .data('name', userName) .append($('').attr('href', '@path/' + userName).text(userName)) .append(' ') .append($('').attr('href', '#').addClass('remove').text('(remove)'))); $('#memberName').val(''); + + // update hidden value + var userNames = $('#members li').map(function(i, e){ + return $(e).data('name'); + }).get().join(','); + $('#memberNames').val(userNames); }); $(document).on('click', '.remove', function(){ + // remove member $(this).parent().remove(); - }); - $('#submit').click(function(){ + // update hidden value var userNames = $('#members li').map(function(i, e){ - return $(e).data('userName'); + return $(e).data('name'); }).get().join(','); $('#memberNames').val(userNames); - return true; }); }); \ No newline at end of file diff --git a/src/main/twirl/admin/users/list.scala.html b/src/main/twirl/admin/users/list.scala.html index e73d0fa..6db83fd 100644 --- a/src/main/twirl/admin/users/list.scala.html +++ b/src/main/twirl/admin/users/list.scala.html @@ -1,4 +1,4 @@ -@(users: List[model.Account])(implicit context: app.Context) +@(users: List[model.Account], members: Map[String, List[String]])(implicit context: app.Context) @import context._ @import view.helpers._ @html.main("Manage Users"){ @@ -33,7 +33,16 @@

    - @if(!account.isGroupAccount){ + @if(account.isGroupAccount){ + @if(members(account.userName).isEmpty){ + No members + } else { + Members: + @members(account.userName).map { userName => + @avatar(userName, 20, tooltip = true) + } + } + } else { @account.mailAddress @account.url.map { url => @url