From aaac88ce6f08e53c15aead9ccdac4a666a9c79f6 Mon Sep 17 00:00:00 2001 From: JT Smith Date: Fri, 21 Mar 2008 02:39:33 +0000 Subject: [PATCH] started creating new badge view interface --- lib/WebGUI/Asset/Sku/EMSBadge.pm | 2 +- .../Asset/Wobject/EventManagementSystem.pm | 255 ++++++++---------- 2 files changed, 107 insertions(+), 150 deletions(-) diff --git a/lib/WebGUI/Asset/Sku/EMSBadge.pm b/lib/WebGUI/Asset/Sku/EMSBadge.pm index a07c1d611..3ab35259a 100644 --- a/lib/WebGUI/Asset/Sku/EMSBadge.pm +++ b/lib/WebGUI/Asset/Sku/EMSBadge.pm @@ -20,7 +20,7 @@ use base 'WebGUI::Asset::Sku'; use JSON; use WebGUI::HTMLForm; use WebGUI::International; - +use WebGUI::Utility; =head1 NAME diff --git a/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm b/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm index 12a52a017..d201a81b8 100644 --- a/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm +++ b/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm @@ -23,9 +23,6 @@ use Digest::MD5; use WebGUI::Workflow::Instance; use WebGUI::Cache; use WebGUI::International; -use WebGUI::Operation::Commerce; -use WebGUI::Commerce::ShoppingCart; -use WebGUI::Commerce::Item; use WebGUI::Utility; use Text::CSV_XS; use IO::Handle; @@ -33,24 +30,6 @@ use File::Temp 'tempfile'; use Data::Dumper; - - -#------------------------------------------------------------------- - -=head2 appendBadgeVars ( badgeId, vars ) - -Appends template variables for the current badge which is in the currenBadgeId scratch variable. - -=cut - -sub appendBadgeVars { - my ($self, $badgeId, $vars) = @_; - return undef unless $badgeId ne ""; - my $badgeInfo = $self->session->db->quickHashRef("select * from EMSRegistrant where badgeId=?",[$badgeId]); - %{$vars} = (%{$vars}, %{$badgeInfo}); -} - - #------------------------------------------------------------------- sub definition { my $class = shift; @@ -108,6 +87,17 @@ sub prepareView { $self->SUPER::prepareView(); my $template = WebGUI::Asset::Template->new($self->session, $self->get("templateId")); $template->prepare; + + # set up all the files that we need + my ($style, $url) = $self->session->quick(qw(style url)); + $style->setLink($url->extras('/yui/build/fonts/fonts-min.css'), {rel=>'stylesheet', type=>'text/css'}); + $style->setLink($url->extras('/yui/build/datatable/assets/skins/sam/datatable.css'), {rel=>'stylesheet', type=>'text/css'}); + $style->setScript($url->extras('/yui/build/utilities/utilities.js'), {type=>'text/javascript'}); + $style->setScript($url->extras('/yui/build/json/json-min.js'), {type=>'text/javascript'}); + $style->setScript($url->extras('/yui/build/datasource/datasource-beta-min.js'), {type=>'text/javascript'}); + $style->setScript($url->extras('/yui/build/datatable/datatable-beta-min.js'), {type=>'text/javascript'}); + + $self->{_viewTemplate} = $template; } @@ -129,16 +119,66 @@ sub view { my $i18n = WebGUI::International->new($session, "Asset_EventManagementSystem"); my %var = (); - # get our badges - foreach my $badge (@{$self->getLineage(["children"],{returnObjects=>1, includeOnlyClasses=>["WebGUI::Asset::Sku::EMSBadge"]})}) { - push(@{$var{availableBadges}}, $self->get); - $var{availableBadges}[-1]{isFull} = $badge->getQuantityAvailable; - $var{availableBadges}[-1]{url} = $badge->getUrl; - } - - # other template variables - $self->appendBadgeVars($badgeId, \%var); - + + + + + # draw the html markup that's needed + my $output = q| + +
+
+
+ + +STOP + return $output; + + # render return $self->processTemplate(\%var,undef,$self->{_viewTemplate}); } @@ -156,24 +196,43 @@ sub www_getBadgesAsJson { my $session = $self->session; return $session->privilege->insufficient() unless $self->canView; my ($db, $form) = $session->quick(qw(db form)); - my $startIndex = $form->get('startIndex') || 0; - my $numberOfResults = $form->get('results') || 25; - my @placeholders = (); - my $sql = 'select SQL_CALC_FOUND_ROWS assetId from EMSBadgeIndex'; - my $keywords = $form->get("keywords"); - if ($keywords ne "") { - ($sql, @placeholders) = $db->buildSearchQuery($sql, $keywords, [qw{amount username orderNumber shippingAddressName shippingAddress1 paymentAddressName paymentAddress1}]) - } - push(@placeholders, $startIndex, $numberOfResults); - $sql .= ' order by dateOfPurchase desc limit ?,?'; - my %results = $db->buildDataTableStructure($sql, \@placeholders); - $results{'startIndex'} = $startIndex; + my %results = (); + foreach my $badge (@{$self->getLineage(['children'],{returnObjects=>1, includeOnlyClasses=>['WebGUI::Asset::Sku::Badge']})}) { + push(@{$results{records}}, { + title => $badge->getTitle, + description => $badge->get('description'), + price => $badge->getPrice, + quantityAvailable => $badge->getQuantityAvailable, + url => $badge->getUrl + }); + } + $results{totalRecords} = $results{recordsReturned} = scalar(@{$results{records}}); + $results{'startIndex'} = 0; $results{'sort'} = undef; - $results{'dir'} = "desc"; + $results{'dir'} = "asc"; $session->http->setMimeType('text/json'); return JSON::to_json(\%results); } +#------------------------------------------------------------------- + +=head2 www_getRegistrantAsJson ( ) + +Retrieves the properties of the current badge and the items attached to it. + +=cut + +sub www_getRegistrantAsJson { + my ($self) = @_; + my $session = $self->session; + return $session->privilege->insufficient() unless $self->canView; + my $badgeId = $self->session->form->get('badgeId'); + my $badgeInfo = $session->db->quickHashRef("select * from EMSRegistrant where badgeId=?",[$badgeId]); + $session->http->setMimeType('text/json'); + return JSON::to_json($badgeInfo); +} + + #------------------------------------------------------------------- @@ -624,108 +683,6 @@ sub checkRequiredFields { return \@errors; } -#------------------------------------------------------------------- -sub definition { - my $class = shift; - my $session = shift; - my $definition = shift; - my %properties; - tie %properties, 'Tie::IxHash'; - my $i18n = WebGUI::International->new($session,'Asset_EventManagementSystem'); - %properties = ( - timezone => { - fieldType => 'TimeZone', - defaultValue => 'America/Chicago', - tab => 'properties', - label => $i18n->get('time zone'), - hoverHelp => $i18n->get('time zone help'), - }, - displayTemplateId =>{ - fieldType=>"template", - defaultValue=>'EventManagerTmpl000001', - tab=>"display", - namespace=>"EventManagementSystem", - hoverHelp=>$i18n->get('display template description'), - label=>$i18n->get('display template') - }, - checkoutTemplateId =>{ - fieldType=>"template", - defaultValue=>'EventManagerTmpl000003', - tab=>"display", - namespace=>"EventManagementSystem_checkout", - hoverHelp=>$i18n->get('checkout template description'), - label=>$i18n->get('checkout template') - }, - managePurchasesTemplateId =>{ - fieldType=>"template", - defaultValue=>'EventManagerTmpl000004', - tab=>"display", - namespace=>"EventManagementSystem_managePurchas", - hoverHelp=>$i18n->get('manage purchases template description'), - label=>$i18n->get('manage purchases template') - }, - viewPurchaseTemplateId =>{ - fieldType=>"template", - defaultValue=>'EventManagerTmpl000005', - tab=>"display", - namespace=>"EventManagementSystem_viewPurchase", - 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') - }, - badgePrinterTemplateId => { - fieldType => "template", - defaultValue => "emsbadgeprintout000000", - tab => "display", - namespace => "emsbadgeprint", - lable => "Badge Printer Template", - }, - ticketPrinterTemplateId => { - fieldType => "template", - defaultValue => "emsticketprintout00000", - tab => "display", - namespace => "emsticketprint", - lable => "Ticket Printer Template", - }, - paginateAfter =>{ - fieldType=>"integer", - defaultValue=>10, - tab=>"display", - hoverHelp=>$i18n->get('paginate after description'), - label=>$i18n->get('paginate after') - }, - groupToAddEvents =>{ - fieldType=>"group", - defaultValue=>3, - tab=>"security", - hoverHelp=>$i18n->get('group to add events description'), - label=>$i18n->get('group to add events') - }, - groupToApproveEvents =>{ - fieldType=>"group", - defaultValue=>3, - tab=>"security", - hoverHelp=>$i18n->get('group to approve events description'), - label=>$i18n->get('group to approve events') - }, - ); - push(@{$definition}, { - assetName=>$i18n->get('assetName'), - icon=>'ems.gif', - autoGenerateForms=>1, - tableName=>'EventManagementSystem', - className=>'WebGUI::Asset::Wobject::EventManagementSystem', - properties=>\%properties - }); - return $class->SUPER::definition($session,$definition); -} #------------------------------------------------------------------ @@ -1242,17 +1199,17 @@ sub purge { $self->deleteMetaField($id); } # delete events - my $sth = $db->read("select productId from EventManagementSystem_products where assetId=?",[$self->getId]); + $sth = $db->read("select productId from EventManagementSystem_products where assetId=?",[$self->getId]); while (my ($id) = $sth->array) { $self->deleteEvent($id); } # delete prereqs - my $sth = $db->read("select prerequisiteId from EventManagementSystem_prerequisites where assetId=?",[$self->getId]); + $sth = $db->read("select prerequisiteId from EventManagementSystem_prerequisites where assetId=?",[$self->getId]); while (my ($id) = $sth->array) { $self->deletePrereqSet($id); } # delete badges - my $sth = $db->read("select badgeId from EventManagementSystem_badges where assetId=?",[$self->getId]); + $sth = $db->read("select badgeId from EventManagementSystem_badges where assetId=?",[$self->getId]); while (my ($id) = $sth->array) { $self->deleteBadge($id); }