More UserList sort options

This commit is contained in:
Yung Han Khoe 2008-05-20 11:49:34 +00:00
parent 160ae78f61
commit a49c94cde8
3 changed files with 43 additions and 6 deletions

View file

@ -253,6 +253,7 @@ sub prepareView {
sub view { sub view {
my $self = shift; my $self = shift;
my $form = $self->session->form;
my $i18n = WebGUI::International->new($self->session, "Asset_UserList"); my $i18n = WebGUI::International->new($self->session, "Asset_UserList");
my (%var, @users, @profileField_loop, @profileFields,@profileFieldNames); my (%var, @users, @profileField_loop, @profileFields,@profileFieldNames);
my ($defaultPublicProfile, $defaultPublicEmail, $user, $sth, $sql, $profileField); my ($defaultPublicProfile, $defaultPublicEmail, $user, $sth, $sql, $profileField);
@ -276,6 +277,14 @@ sub view {
push(@profileFieldNames, $profileField->{fieldName}); push(@profileFieldNames, $profileField->{fieldName});
unless($self->get("showOnlyVisibleAsNamed") && $profileField->{visible} != 1){ unless($self->get("showOnlyVisibleAsNamed") && $profileField->{visible} != 1){
$var{'profileField_'.$profileField->{fieldName}.'_label'} = $label; $var{'profileField_'.$profileField->{fieldName}.'_label'} = $label;
my $sortByURL = '?orderBy='.$profileField->{fieldName};
if ($form->process('orderType') eq 'asc' && $form->process('orderBy') eq $profileField->{fieldName}){
$sortByURL .= ';orderType=desc';
}
else{
$sortByURL .= ';orderType=asc';
}
$var{'profileField_'.$profileField->{fieldName}.'_sortByURL'} = $sortByURL;
} }
} }
@ -292,9 +301,11 @@ sub view {
my $constraint; my $constraint;
if ($self->session->form->process('search')){ if ($self->session->form->process('search')){
$constraint = "(".join(' or ', map {'userProfileData.'.$_->{fieldName}.' like "%'.$self->session->form->process('search').'%"'} @profileFields).")"; $constraint = "(".join(' or ', map {'userProfileData.'.$_->{fieldName}.' like "%'.$self->session->form->process('search').'%"'} @profileFields).")";
}elsif ($self->session->form->process('searchExact')){ }
elsif ($self->session->form->process('searchExact')){
$constraint = "(".join(' or ', map {'userProfileData.'.$_->{fieldName}.' like "'.$self->session->form->process('searchExact').'"'} @profileFields).")"; $constraint = "(".join(' or ', map {'userProfileData.'.$_->{fieldName}.' like "'.$self->session->form->process('searchExact').'"'} @profileFields).")";
}else{ }
else{
my @profileSearchFields = (); my @profileSearchFields = ();
my @profileSearchExactFields = (); my @profileSearchExactFields = ();
foreach my $profileField (@profileFields){ foreach my $profileField (@profileFields){
@ -371,7 +382,8 @@ sub view {
push (@profileFieldValues, { push (@profileFieldValues, {
"profile_emailNotPublic"=>1, "profile_emailNotPublic"=>1,
}); });
}else{ }
else{
push (@profileFieldValues, { push (@profileFieldValues, {
"profile_value"=>$user->{$profileField->{fieldName}}, "profile_value"=>$user->{$profileField->{fieldName}},
}); });
@ -389,7 +401,8 @@ sub view {
$userProperties{"user_name"} = $user->{userName}; $userProperties{"user_name"} = $user->{userName};
$userProperties{"user_profile_loop"} = \@profileFieldValues; $userProperties{"user_profile_loop"} = \@profileFieldValues;
push(@users,\%userProperties); push(@users,\%userProperties);
}else{ }
else{
push(@users, { push(@users, {
"user_id"=>$user->{userId}, "user_id"=>$user->{userId},
"user_name"=>$user->{userName}, "user_name"=>$user->{userName},
@ -400,6 +413,7 @@ sub view {
foreach my $profileField (@profileFields){ foreach my $profileField (@profileFields){
push (@profileField_loop, { push (@profileField_loop, {
"profileField_label"=>WebGUI::Operation::Shared::secureEval($self->session,$profileField->{label}), "profileField_label"=>WebGUI::Operation::Shared::secureEval($self->session,$profileField->{label}),
"profileField_sortByURL"=>'?orderBy='.$profileField->{fieldName},
}); });
} }
$var{numberOfProfileFields} = scalar(@profileFields); $var{numberOfProfileFields} = scalar(@profileFields);

View file

@ -27,9 +27,12 @@ our $HELP = {
{ 'name' => 'searchFormTypeSelect' }, { 'name' => 'searchFormTypeSelect' },
{ 'name' => 'searchFormQuery_form' }, { 'name' => 'searchFormQuery_form' },
{ 'name' => 'numberOfProfileFields' }, { 'name' => 'numberOfProfileFields' },
{ 'name' => 'profileField_PROFILEFIELDNAME_label' },
{ 'name' => 'profileField_PROFILEFIELDNAME_sortByURL' },
{ 'name' => 'profileField_loop', { 'name' => 'profileField_loop',
'variables' => [ 'variables' => [
{ 'name' => 'profileField_label' }, { 'name' => 'profileField_label' },
{ 'name' => 'profileField_sortByURL' },
], ],
}, },
{ 'name' => 'alphabetSearch_loop', { 'name' => 'alphabetSearch_loop',

View file

@ -240,12 +240,32 @@ true for the 'email' profile field.|,
}, },
'profileField_loop' => { 'profileField_loop' => {
message => q|A loop contining profile fields|, message => q|A loop containing profile fields|,
lastUpdated => 1081514049 lastUpdated => 1081514049
}, },
'profileField_label' => { 'profileField_label' => {
message => q|The label for a profile field|, message => q|The label for this profile field|,
lastUpdated => 1081514049
},
'profileField_sortByURL' => {
message => q|The URL to sort the UserList by this profile field. The default sort order
is ascending. After clicking the sort by link for a profile field the sort order will be reversed.|,
lastUpdated => 1081514049
},
'profileField_PROFILEFIELDNAME_label' => {
message => q|The label for the profile field with fieldName PROFILEFIELDNAME. Example <tmpl_var
profileField_lastName_label>. This tmpl_var exists outside of the profileField_loop.|,
lastUpdated => 1081514049
},
'profileField_PROFILEFIELDNAME_sortByURL' => {
message => q|The URL to sort the UserList by PROFILEFIELDNAME. Example <tmpl_var
profileField_lastName_sortByURL>. This tmpl_var exists outside of the profileField_loop. The default sort order
is ascending. After clicking the sort by link for a profile field the sort order will be reversed.|,
lastUpdated => 1081514049 lastUpdated => 1081514049
}, },