Group filters and list of names.
For each group, show all other managed groups. Also provide an edit all link. Show list of names up to 45 characters, with no truncation.
This commit is contained in:
parent
03b777ee1e
commit
d13d1bac8c
2 changed files with 49 additions and 23 deletions
|
|
@ -182,7 +182,7 @@ sub www_editFriends {
|
|||
$var->{formHeader} = WebGUI::Form::formHeader($session, {
|
||||
action => $self->getUrl('module=friendManager;do=editFriendsSave'),
|
||||
})
|
||||
. WebGUI::Form::hidden($session, { name => 'userId', value => $userId } );
|
||||
. WebGUI::Form::hidden($session, { name => 'userId', value => $user->userId } );
|
||||
$var->{addUserForm} = WebGUI::Form::selectBox($session, {
|
||||
name => 'userToAdd',
|
||||
options => \%usersToAdd,
|
||||
|
|
@ -269,14 +269,36 @@ sub www_getFriendsAsJson {
|
|||
return '{}';
|
||||
}
|
||||
my @records = ();
|
||||
my $groups = $session->setting->get('groupsToManageFriends');
|
||||
my @groupIds = split "\n", $groups;
|
||||
@groupIds = grep { $_ ne $groupId } @groupIds;
|
||||
my $groupNames = join "\n",
|
||||
map { $_->name }
|
||||
map { WebGUI::Group->new($session, $_) }
|
||||
@groupIds;
|
||||
USER: foreach my $userId (@{ $group->getUsers} ) {
|
||||
my $user = WebGUI::User->new($session, $userId);
|
||||
next USER unless $user;
|
||||
my $friendsCount = scalar @{ $user->friends->getUsers() };
|
||||
my $friendsList = $user->friends->getUserList();
|
||||
my $friendsCount = scalar keys %{ $friendsList };
|
||||
my $friends = '';
|
||||
NAME: foreach my $name ( values %{ $friendsList }) {
|
||||
if (length $friends + length $name < 45) {
|
||||
if ($friends) {
|
||||
$friends .= ', ';
|
||||
}
|
||||
$friends .= $name;
|
||||
}
|
||||
else {
|
||||
last NAME;
|
||||
}
|
||||
}
|
||||
push @records, {
|
||||
userId => $userId,
|
||||
username => $user->username,
|
||||
friends => $friendsCount,
|
||||
userId => $userId,
|
||||
username => $user->username,
|
||||
friendsCount => $friendsCount,
|
||||
friends => $friends,
|
||||
groups => $groupNames,
|
||||
};
|
||||
}
|
||||
##Sort by username to make the datatable happy
|
||||
|
|
|
|||
|
|
@ -40,9 +40,11 @@ WebGUI.FriendManager.responseSchema
|
|||
= {
|
||||
resultsList: 'records',
|
||||
fields: [
|
||||
{ key: 'userId', parser: 'string' },
|
||||
{ key: 'username', parser: 'string' },
|
||||
{ key: 'friends', parser: 'number' },
|
||||
{ key: 'userId', parser: 'string' },
|
||||
{ key: 'username', parser: 'string' },
|
||||
{ key: 'friendsCount', parser: 'number' },
|
||||
{ key: 'friends', parser: 'string' },
|
||||
{ key: 'groups', parser: 'string' },
|
||||
],
|
||||
metaFields: {
|
||||
totalRecords: "recordsReturned" // Access to value in the server response
|
||||
|
|
@ -50,27 +52,29 @@ WebGUI.FriendManager.responseSchema
|
|||
};
|
||||
|
||||
WebGUI.FriendManager.formatUsername = function ( el, oRecord, oColumn, oData ) {
|
||||
// var link = document.createElement('a');
|
||||
// var myId = YAHOO.util.Dom.generateId();
|
||||
// elCell.innerHTML = '<span id="'+myId+'" class="yui-button"><span class="first-child"><button type="link">edit</button></span></span>';
|
||||
// var editButton = new YAHOO.widget.Button( myId,
|
||||
// {
|
||||
// type : "link",
|
||||
// href : "?op=account;module=friendManager;do=editFriends;uid="+oRecord.getData('userId'),
|
||||
// label : "EDIT",
|
||||
// }
|
||||
// );
|
||||
var userId = oRecord.getData('userId');
|
||||
el.innerHTML = '<a href="?op=account;module=friendManager;do=editFriends;userId=' + userId + '">edit</a> ';
|
||||
el.innerHTML += '<a href="?op=account;module=inbox;uid=' + userId + '">' + oData + '</a>';
|
||||
el.innerHTML = '<a href="?op=account;module=inbox;uid=' + userId + '">' + oData + '</a>';
|
||||
}
|
||||
|
||||
WebGUI.FriendManager.formatGroups = function ( el, oRecord, oColumn, oData ) {
|
||||
var userId = oRecord.getData('userId');
|
||||
el.innerHTML = '<a href="?op=account;module=friendManager;do=editFriends;userId=' + userId + '">Edit all</a>';
|
||||
var groups = oData.split("\n");
|
||||
for (var idx=0; idx < groups.length; idx++) {
|
||||
var group = groups[idx];
|
||||
el.innerHTML += ' ';
|
||||
el.innerHTML += '<a href="?op=account;module=friendManager;do=editFriends;userId=' + userId + ';groupName='+group+'">'+group+'</a>';
|
||||
}
|
||||
}
|
||||
|
||||
WebGUI.FriendManager.ColumnDefs = [ // sortable:true enables sorting
|
||||
//{key:"username", label:WebGUI.FriendManager.i18n.get('WebGUI', '50' ), sortable: true},
|
||||
//{key:"friends", label:WebGUI.FriendManager.i18n.get('Account_Friends', 'title' ), sortable: true},
|
||||
{key:"username", label:"username", sortable: true, formatter: WebGUI.FriendManager.formatUsername },
|
||||
{key:"friends", label:"friends", sortable: true},
|
||||
{key:"userId", label:"userId", sortable: true},
|
||||
{key:"groups", label:"groups", sortable: false, formatter: WebGUI.FriendManager.formatGroups },
|
||||
{key:"username", label:"username", sortable: true, formatter: WebGUI.FriendManager.formatUsername },
|
||||
{key:"friendsCount", label:"friendsCount", sortable: true},
|
||||
{key:"friends", label:"friends", sortable: false},
|
||||
{key:"userId", label:"userId", sortable: true},
|
||||
];
|
||||
|
||||
//Per object code
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue