diff --git a/docs/upgrades/templates-6.99.0/wgtemplate_default_ems_search.tmpl b/docs/upgrades/templates-6.99.0/wgtemplate_default_ems_search.tmpl
new file mode 100644
index 000000000..71825476f
--- /dev/null
+++ b/docs/upgrades/templates-6.99.0/wgtemplate_default_ems_search.tmpl
@@ -0,0 +1,214 @@
+#EventManagerTmpl000006
+#title:Default Event Management System Search
+#menuTitle:Default Event Management System Search
+#url:default-ems-search-template
+#namespace:EventManagementSystem_search
+#create
+
+
+
+
+
+
+
+
+
+
+ style="display:none">
+
+
+
+
+
+
+
+ style="display:none">
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+
+ class="oddRow" class="evenRow">|
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+
+
+
+
+~~~
+
diff --git a/docs/upgrades/templates-6.99.0/wgtemplate_default_ems_view.tmpl b/docs/upgrades/templates-6.99.0/wgtemplate_default_ems_view.tmpl
index 881d3d3b7..736d35acb 100644
--- a/docs/upgrades/templates-6.99.0/wgtemplate_default_ems_view.tmpl
+++ b/docs/upgrades/templates-6.99.0/wgtemplate_default_ems_view.tmpl
@@ -17,99 +17,6 @@
-
-
-
- style="display:none">
-
-
-
-
-
-
-
- style="display:none">
-
-
-
-
-
-
-
-
@@ -122,14 +29,7 @@
|
|
- class="oddRow" class="evenRow">|
- |
- |
- |
- |
- |
- |
- |
+
@@ -211,4 +111,4 @@ tr.evenRow td {
#extendedSearchLayer {display: inline;}
-
\ No newline at end of file
+
diff --git a/docs/upgrades/upgrade_6.8.8-6.99.0.pl b/docs/upgrades/upgrade_6.8.8-6.99.0.pl
index 98a80f950..db901272e 100644
--- a/docs/upgrades/upgrade_6.8.8-6.99.0.pl
+++ b/docs/upgrades/upgrade_6.8.8-6.99.0.pl
@@ -650,6 +650,7 @@ create table EventManagementSystem (
checkoutTemplateId varchar(22) binary,
managePurchasesTemplateId varchar(22) binary,
viewPurchaseTemplateId varchar(22) binary,
+ searchTemplateId varchar(22) binary,
paginateAfter int(11) default 10,
groupToAddEvents varchar(22) binary,
groupToApproveEvents varchar(22) binary,
diff --git a/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm b/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm
index 9c1494711..80e812ae5 100644
--- a/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm
+++ b/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm
@@ -34,7 +34,7 @@ sub _getFieldHash {
my %hash;
tie %hash, "Tie::IxHash";
- my $i18n = WebGUI::International->new($session,'Asset_EventManagementSystem');
+ my $i18n = WebGUI::International->new($self->session,'Asset_EventManagementSystem');
%hash = (
"eventName"=>{
name=>$i18n->get('add/edit event title'),
@@ -304,7 +304,6 @@ sub checkConflicts {
# my $eventsInCart = $self->getEventsInCart;
my $checkSingleEvent = shift;
my $eventsInCart = $self->getEventsInScratchCart;
- use Data::Dumper;
# $self->session->errorHandler->warn(Dumper($eventsInCart));
my @schedule;
@@ -424,6 +423,14 @@ sub definition {
hoverHelp=>$i18n->get('view purchase template description'),
label=>$i18n->get('view purchase template')
},
+ searchTemplateId =>{
+ fieldType=>"template",
+ defaultValue=>'EventManagerTmpl000006',
+ tab=>"display",
+ namespace=>"EventManagementSystem_search",
+ hoverHelp=>$i18n->get('search template description'),
+ label=>$i18n->get('search template')
+ },
paginateAfter =>{
fieldType=>"integer",
defaultValue=>10,
@@ -1689,8 +1696,8 @@ sub www_editEvent {
-name => "eventList",
-options => $prerequisiteList,
-vertical => 1,
- -label => "add/edit event required events",
- -hoverHelp => "add/edit event required events description",
+ -label => $i18n->get("add/edit event required events"),
+ -hoverHelp => $i18n->get("add/edit event required events description"),
-sortByValue => 1
);
@@ -2409,7 +2416,7 @@ sub prepareView {
}
#-------------------------------------------------------------------
-sub view {
+sub www_search {
my $self = shift;
my %var;
my $keywords = $self->session->form->get("searchKeywords");
@@ -2619,9 +2626,84 @@ sub view {
$p->appendTemplateVars(\%var);
$self->buildMenu(\%var);
$var{'ems.wobject.dir'} = $self->session->config->get("extrasURL")."/wobject/EventManagementSystem";
+
+ return $self->session->style->process($self->processTemplate(\%var,$self->getValue("searchTemplateId")),$self->getValue("styleTemplateId"));
+}
+
+#-------------------------------------------------------------------
+sub view {
+ my $self = shift;
+ my %var;
+
+ # If we're at the view method there is no reason we should have anything in our scratch cart
+ # so let's empty it to prevent strange and awful things from happening
+ $self->emptyScratchCart;
+ $self->session->scratch->delete('EMS_add_purchase_badgeId');
+ $self->session->scratch->delete('EMS_add_purchase_events');
+
+ my $i18n = WebGUI::International->new($self->session,'Asset_EventManagementSystem');
+ # Get the products available for sale for this page
+ my $sql = "select p.productId, p.title, p.description, p.price, p.templateId, e.approved, e.maximumAttendees
+ from products as p, EventManagementSystem_products as e
+ where
+ p.productId = e.productId and approved=1
+ and e.assetId =".$self->session->db->quote($self->get("assetId"))."
+ and p.productId not in (select distinct(productId) from EventManagementSystem_prerequisites)";
+
+ my $p = WebGUI::Paginator->new($self->session,$self->getUrl,$self->get("paginateAfter"));
+ $p->setDataByQuery($sql);
+ my $eventData = $p->getPageData;
+ my @events;
+
+ #We are getting each events information, passing it to the *events* template and processing it
+ #The html returned from each events template is returned to the Event Manager Display Template for arranging
+ #how the events are displayed in relation to one another.
+ foreach my $event (@$eventData) {
+ my %eventFields;
+
+ $eventFields{'title'} = $event->{'title'};
+ $eventFields{'description'} = $event->{'description'};
+ $eventFields{'price'} = $event->{'price'};
+ my ($numberRegistered) = $self->session->db->quickArray("select count(*) from EventManagementSystem_registrations as r, EventManagementSystem_purchases as p
+ where r.purchaseId = p.purchaseId and r.productId=".$self->session->db->quote($event->{'productId'}));
+ $eventFields{'numberRegistered'} = $numberRegistered;
+ $eventFields{'maximumAttendees'} = $event->{'maximumAttendees'};
+ $eventFields{'seatsRemaining'} = $event->{'maximumAttendees'} - $numberRegistered;
+ $eventFields{'eventIsFull'} = ($eventFields{'seatsRemaining'} == 0);
+
+ if ($eventFields{'eventIsFull'}) {
+ $eventFields{'purchase.label'} = "Sold Out";;
+ }
+ else {
+ $eventFields{'purchase.url'} = $self->getUrl('func=addToCart;pid='.$event->{'productId'});
+ $eventFields{'purchase.label'} = $i18n->get('add to cart');
+ }
+ push (@events, {'event' => $self->processTemplate(\%eventFields, $event->{'templateId'}) });
+ }
+ $var{'checkout.url'} = $self->getUrl('op=viewCart');
+ $var{'checkout.label'} = "Checkout";
+ $var{'events_loop'} = \@events;
+ $var{'paginateBar'} = $p->getBarTraditional;
+ $var{'manageEvents.url'} = $self->getUrl('func=manageEvents');
+ $var{'manageEvents.label'} = $i18n->get('manage events');
+ $var{'managePurchases.url'} = $self->getUrl('func=managePurchases');
+ $var{'managePurchases.label'} = $i18n->get('manage purchases');
+ if ($self->session->user->isInGroup($self->get("groupToManageEvents"))) {
+ $var{'canManageEvents'} = 1;
+ }
+ else {
+ $var{'canManageEvents'} = 0;
+ }
+ $p->appendTemplateVars(\%var);
+
+ my $templateId = $self->get("displayTemplateId");
+
return $self->processTemplate(\%var, undef, $self->{_viewTemplate});
}
+
+
+
1;
diff --git a/lib/WebGUI/i18n/English/Asset_EventManagementSystem.pm b/lib/WebGUI/i18n/English/Asset_EventManagementSystem.pm
index 0c0d98b44..42820e891 100644
--- a/lib/WebGUI/i18n/English/Asset_EventManagementSystem.pm
+++ b/lib/WebGUI/i18n/English/Asset_EventManagementSystem.pm
@@ -1,6 +1,18 @@
package WebGUI::i18n::English::Asset_EventManagementSystem;
our $I18N = { ##hashref of hashes
+ 'search template' => {
+ message => q|Search Template|,
+ lastUpdated => 1131394070,
+ context => q|Field label for template selector|
+ },
+
+ 'search template description' => {
+ message => q|Controls the layout, look, and appearence of the Event Management System Search Page.|,
+ lastUpdated => 1131394072,
+ context => q|Describes this template field selector|
+ },
+
'add/edit help title' => {
message => q|Add/Edit Event Management System|,
lastUpdated => 1131394070,