Added sort feature to search results. Various bug fixes.
This commit is contained in:
parent
c26d9cc923
commit
2f1aa34315
1 changed files with 43 additions and 4 deletions
|
|
@ -2650,6 +2650,7 @@ sub www_search {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
return $self->session->privilege->noAccess() unless $self->canView;
|
return $self->session->privilege->noAccess() unless $self->canView;
|
||||||
my %var;
|
my %var;
|
||||||
|
my $i18n = WebGUI::International->new($self->session,'Asset_EventManagementSystem');
|
||||||
$var{badgeSelected} = $self->session->scratch->get('currentMainEvent');
|
$var{badgeSelected} = $self->session->scratch->get('currentMainEvent');
|
||||||
$var{resetScratchCartUrl} = $self->getUrl("func=resetScratchCart");
|
$var{resetScratchCartUrl} = $self->getUrl("func=resetScratchCart");
|
||||||
my $masterEventId = $var{badgeSelected};
|
my $masterEventId = $var{badgeSelected};
|
||||||
|
|
@ -2662,6 +2663,42 @@ sub www_search {
|
||||||
|
|
||||||
$self->addCartVars(\%var);
|
$self->addCartVars(\%var);
|
||||||
|
|
||||||
|
# Get the current sort order and persist it until the user changes it
|
||||||
|
my $sortKey = $self->session->form->get("sortKey") || $self->session->scratch->get("EMS_sortKey") || "sequenceNumber";
|
||||||
|
$self->session->scratch->set("EMS_sortKey", $sortKey);
|
||||||
|
|
||||||
|
# Parse our sort key into some mysql friendly lingo
|
||||||
|
my ($orderBy, $direction) = split('_',$sortKey);
|
||||||
|
|
||||||
|
# Build our sort list
|
||||||
|
my %sortSelect;
|
||||||
|
tie %sortSelect, 'Tie::IxHash';
|
||||||
|
|
||||||
|
%sortSelect = (
|
||||||
|
'sequenceNumber' => $i18n->echo('Default'),
|
||||||
|
'title' => $i18n->echo('Alphabetical A to Z'),
|
||||||
|
'title_desc' => $i18n->echo('Alphabetical Z to A'),
|
||||||
|
'startDate' => $i18n->echo('Earliest Start Times to Latest'),
|
||||||
|
'startDate_desc' => $i18n->echo('Latest Start Times to Earliest'),
|
||||||
|
'endDate' => $i18n->echo('Earliest End Times to Latest'),
|
||||||
|
'endDate_desc' => $i18n->echo('Latest End Times to Earliest'),
|
||||||
|
'price' => $i18n->echo('Lowest Price to Highest'),
|
||||||
|
'price_desc' => $i18n->echo('Highest Price to Lowest'),
|
||||||
|
);
|
||||||
|
|
||||||
|
$var{'sortForm.header'} = WebGUI::Form::formHeader($self->session,{action=>$self->getUrl()}).
|
||||||
|
WebGUI::Form::hidden($self->session,{name=>"func", value=>"search"}).
|
||||||
|
WebGUI::Form::hidden($self->session,{name=>"searchKeywords", value=>$self->session->form->get("searchKeywords")}).
|
||||||
|
#WebGUI::Form::hidden($self->session,{name=>"pn", value=>$self->session->form->get("pn")}).
|
||||||
|
WebGUI::Form::hidden($self->session,{name=>"cfilter_s0", value=>$self->session->form->get("cfilter_s0")}).
|
||||||
|
WebGUI::Form::hidden($self->session,{name=>"cfilter_c0", value=>$self->session->form->get("cfilter_c0")}).
|
||||||
|
WebGUI::Form::hidden($self->session,{name=>"cfilter_t0", value=>$self->session->form->get("cfilter_t0")}).
|
||||||
|
WebGUI::Form::hidden($self->session,{name=>"advSearch", value=>1});
|
||||||
|
$var{'sortForm.selectBox'} = WebGUI::Form::selectBox($self->session,{name=>'sortKey', options=>\%sortSelect, value => $sortKey});
|
||||||
|
$var{'sortForm.selectBox.label'} = $i18n->echo('Sort By');
|
||||||
|
$var{'sortForm.submit'} = WebGUI::Form::submit($self->session,{value=>$i18n->echo('Sort')});
|
||||||
|
$var{'sortForm.footer'} = WebGUI::Form::formFooter($self->session);
|
||||||
|
|
||||||
# Get all the attendees details
|
# Get all the attendees details
|
||||||
$var{badgeHolderInfo_loop} = $self->session->db->buildArrayRefOfHashRefs("select * from EventManagementSystem_badges where badgeId=?",[$badgeHolderId]);
|
$var{badgeHolderInfo_loop} = $self->session->db->buildArrayRefOfHashRefs("select * from EventManagementSystem_badges where badgeId=?",[$badgeHolderId]);
|
||||||
|
|
||||||
|
|
@ -2680,7 +2717,9 @@ sub www_search {
|
||||||
from products as p, EventManagementSystem_products as e where p.productId = e.productId and p.productId=?",[$eventId]);
|
from products as p, EventManagementSystem_products as e where p.productId = e.productId and p.productId=?",[$eventId]);
|
||||||
$eventData->{'startDateHuman'} = $self->session->datetime->epochToHuman($eventData->{'startDate'});
|
$eventData->{'startDateHuman'} = $self->session->datetime->epochToHuman($eventData->{'startDate'});
|
||||||
$eventData->{'endDateHuman'} = $self->session->datetime->epochToHuman($eventData->{'endDate'});
|
$eventData->{'endDateHuman'} = $self->session->datetime->epochToHuman($eventData->{'endDate'});
|
||||||
$eventData->{'removeEventFromBadge.url'} = $self->getUrl("func=removeFromScratchCart;pid=".$eventData->{'productId'}) unless isIn($eventData->{'productId'},@pastEvents);
|
$eventData->{'removeEventFromBadge.url'} = $self->getUrl("func=removeFromScratchCart;pid=".$eventData->{'productId'}.
|
||||||
|
";searchKeywords=".$self->session->form->get("searchKeywords").
|
||||||
|
";pn=".$self->session->form->get("pn")) unless isIn($eventData->{'productId'},@pastEvents);
|
||||||
push(@selectedEvents_loop, $eventData);
|
push(@selectedEvents_loop, $eventData);
|
||||||
}
|
}
|
||||||
$var{'eventsInBadge_loop'} = \@selectedEvents_loop;
|
$var{'eventsInBadge_loop'} = \@selectedEvents_loop;
|
||||||
|
|
@ -2692,7 +2731,6 @@ sub www_search {
|
||||||
my $pn;
|
my $pn;
|
||||||
my $subSearchFlag;
|
my $subSearchFlag;
|
||||||
my $showAllFlag;
|
my $showAllFlag;
|
||||||
my $i18n = WebGUI::International->new($self->session,'Asset_EventManagementSystem');
|
|
||||||
my $addToBadgeMessage;
|
my $addToBadgeMessage;
|
||||||
if ($eventAdded) {
|
if ($eventAdded) {
|
||||||
$showAllFlag = 1;
|
$showAllFlag = 1;
|
||||||
|
|
@ -2704,6 +2742,7 @@ sub www_search {
|
||||||
$subSearchFlag = 1;
|
$subSearchFlag = 1;
|
||||||
$cfilter_s0 = "requirement";
|
$cfilter_s0 = "requirement";
|
||||||
$cfilter_c0 = "eq";
|
$cfilter_c0 = "eq";
|
||||||
|
$pn = $self->session->form->get("pn");
|
||||||
}
|
}
|
||||||
|
|
||||||
my $keywords = $self->session->form->process("searchKeywords",'text');
|
my $keywords = $self->session->form->process("searchKeywords",'text');
|
||||||
|
|
@ -2838,7 +2877,7 @@ sub www_search {
|
||||||
$joins
|
$joins
|
||||||
where
|
where
|
||||||
p.productId = e.productId $approvalPhrase
|
p.productId = e.productId $approvalPhrase
|
||||||
and e.assetId =".$self->session->db->quote($self->get("assetId")).$searchPhrases. " order by sequenceNumber";
|
and e.assetId =".$self->session->db->quote($self->get("assetId")).$searchPhrases. " order by $orderBy $direction";
|
||||||
$var{'basicSearch.formHeader'} = WebGUI::Form::formHeader($self->session,{action=>$self->getUrl("func=search;advSearch=0",method=>'GET')}).
|
$var{'basicSearch.formHeader'} = WebGUI::Form::formHeader($self->session,{action=>$self->getUrl("func=search;advSearch=0",method=>'GET')}).
|
||||||
WebGUI::Form::hidden($self->session,{name=>"subSearch", value => $self->session->form->get("subSearch")}).
|
WebGUI::Form::hidden($self->session,{name=>"subSearch", value => $self->session->form->get("subSearch")}).
|
||||||
WebGUI::Form::hidden($self->session,{name => "cfilter_s0", value => "requirement"}).
|
WebGUI::Form::hidden($self->session,{name => "cfilter_s0", value => "requirement"}).
|
||||||
|
|
@ -2929,7 +2968,7 @@ sub www_search {
|
||||||
$eventFields{'purchase.label'} = $i18n->get('add to cart');
|
$eventFields{'purchase.label'} = $i18n->get('add to cart');
|
||||||
}
|
}
|
||||||
my $masterEventId = $cfilter_t0 || $self->session->form->get("cfilter_t0");
|
my $masterEventId = $cfilter_t0 || $self->session->form->get("cfilter_t0");
|
||||||
$eventFields{'purchase.url'} = $self->getUrl('func=addToScratchCart;pid='.$event->{'productId'}.";mid=".$masterEventId);
|
$eventFields{'purchase.url'} = $self->getUrl('func=addToScratchCart;pid='.$event->{'productId'}.";mid=".$masterEventId.";pn=".$self->session->form->get("pn"));
|
||||||
%eventFields = ('event' => $self->processTemplate(\%eventFields, $event->{'templateId'}), %eventFields) if ($self->{_calledFromView} && $self->session->form->process('func') eq 'view');
|
%eventFields = ('event' => $self->processTemplate(\%eventFields, $event->{'templateId'}), %eventFields) if ($self->{_calledFromView} && $self->session->form->process('func') eq 'view');
|
||||||
push (@events, \%eventFields);
|
push (@events, \%eventFields);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue