From 23ea56bbe6abe089640b7404e006b78ee024db8c Mon Sep 17 00:00:00 2001 From: JT Smith Date: Fri, 11 Apr 2008 22:00:17 +0000 Subject: [PATCH] Added the viewcart macro. Lookup registrant now works. Fixed some bugs. --- .../packages-7.5.3/root_import_ems.wgpkg | Bin 6000 -> 6798 bytes docs/upgrades/upgrade_7.5.2-7.5.3.pl | 2 + etc/WebGUI.conf.original | 5 +- .../Asset/Wobject/EventManagementSystem.pm | 82 +++++++++++++----- lib/WebGUI/Macro/ViewCart.pm | 47 ++++++++++ lib/WebGUI/SQL.pm | 4 +- lib/WebGUI/Shop/Pay.pm | 6 +- .../English/Asset_EventManagementSystem.pm | 48 ++++++++-- lib/WebGUI/i18n/English/Shop.pm | 6 ++ www/extras/macro/ViewCart/cart.gif | Bin 0 -> 1149 bytes 10 files changed, 164 insertions(+), 36 deletions(-) create mode 100644 lib/WebGUI/Macro/ViewCart.pm create mode 100644 www/extras/macro/ViewCart/cart.gif diff --git a/docs/upgrades/packages-7.5.3/root_import_ems.wgpkg b/docs/upgrades/packages-7.5.3/root_import_ems.wgpkg index 594f282f3a48ec1fccf42586e56a50d4ac7b8502..0b511e9b92654a44d6c73946f1814abd11c18990 100644 GIT binary patch literal 6798 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 literal 6000 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 e#6LK2^Hwrite("alter table EventManagementSystem add column timezone varchar(30) not null default 'America/Chicago'"); $db->write("alter table EventManagementSystem add column templateId varchar(22) binary not null"); $db->write("alter table EventManagementSystem add column badgeBuilderTemplateId varchar(22) binary not null default 'BMybD3cEnmXVk2wQ_qEsRQ'"); + $db->write("alter table EventManagementSystem add column lookupRegistrantTemplateId varchar(22) binary not null default 'OOyMH33plAy6oCj_QWrxtg'"); $db->write("alter table EventManagementSystem add column badgeInstructions mediumtext"); $db->write("alter table EventManagementSystem add column ribbonInstructions mediumtext"); $db->write("alter table EventManagementSystem add column ticketInstructions mediumtext"); @@ -333,6 +334,7 @@ sub migrateToNewCart { )"); $session->db->write("drop table shoppingCart"); $session->setting->add('shopCartTemplateId','aIpCmr9Hi__vgdZnDTz1jw'); + $session->config->addToHash("macros","ViewCart","ViewCart"); } #------------------------------------------------- diff --git a/etc/WebGUI.conf.original b/etc/WebGUI.conf.original index f5d12ec40..8b9733762 100644 --- a/etc/WebGUI.conf.original +++ b/etc/WebGUI.conf.original @@ -330,6 +330,7 @@ "#" : "Hash_userId", "/" : "Slash_gatewayUrl", "@" : "At_username", + "ViewCart" : "ViewCart", "AOIHits" : "AOIHits", "AOIRank" : "AOIRank", "AdminBar" : "AdminBar", @@ -358,8 +359,6 @@ "RandomThread" : "RandomThread", "RootTitle" : "RootTitle", "Spacer" : "Spacer", - "SubscriptionItem" : "SubscriptionItem", - "SubscriptionItemPurchaseUrl" : "SubscriptionItemPurchaseUrl", "Thumbnail" : "Thumbnail", "User" : "User", "a" : "a_account", @@ -401,7 +400,7 @@ "WebGUI::Workflow::Activity::CleanFileCache", "WebGUI::Workflow::Activity::CleanLoginHistory", "WebGUI::Workflow::Activity::ArchiveOldThreads", "WebGUI::Workflow::Activity::TrashExpiredEvents", "WebGUI::Workflow::Activity::CreateCronJob", "WebGUI::Workflow::Activity::DeleteExpiredSessions", "WebGUI::Workflow::Activity::ExpireGroupings", "WebGUI::Workflow::Activity::PurgeOldAssetRevisions", - "WebGUI::Workflow::Activity::ExpireSubscriptionCodes", "WebGUI::Workflow::Activity::PurgeOldTrash", + "WebGUI::Workflow::Activity::ExpireSubscriptionCodes", "WebGUI::Workflow::Activity::PurgeOldTrash", "WebGUI::Workflow::Activity::ExpireEmsCartItems", "WebGUI::Workflow::Activity::GetSyndicatedContent", "WebGUI::Workflow::Activity::ProcessRecurringPayments", "WebGUI::Workflow::Activity::SyncProfilesToLdap", "WebGUI::Workflow::Activity::SummarizePassiveProfileLog", "WebGUI::Workflow::Activity::SendQueuedMailMessages","WebGUI::Workflow::Activity::CleanDatabaseCache", diff --git a/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm b/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm index fc84b3197..0280a20a5 100644 --- a/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm +++ b/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm @@ -18,7 +18,7 @@ use strict; use base 'WebGUI::Asset::Wobject'; use Tie::IxHash; use WebGUI::HTMLForm; -use JSON qw/ to_json /; +use JSON; use Digest::MD5; use WebGUI::Workflow::Instance; use WebGUI::Cache; @@ -63,9 +63,17 @@ sub definition { fieldType => 'template', defaultValue => 'BMybD3cEnmXVk2wQ_qEsRQ', tab => 'display', - label => $i18n->get('extras template'), - hoverHelp => $i18n->get('extras template help'), - namespace => 'EMS/Extras', + label => $i18n->get('badge builder template'), + hoverHelp => $i18n->get('badge builder template help'), + namespace => 'EMS/BadgeBuilder', + }, + lookupRegistrantTemplateId => { + fieldType => 'template', + defaultValue => 'OOyMH33plAy6oCj_QWrxtg', + tab => 'display', + label => $i18n->get('lookup registrant template'), + hoverHelp => $i18n->get('lookup registrant template help'), + namespace => 'EMS/LookupRegistrant', }, badgeInstructions => { fieldType => 'HTMLArea', @@ -274,7 +282,7 @@ sub view {

Add a badgeView Events - • View Cart + • ^ViewCart; • Badge Groups

|.$self->get('badgeInstructions').q|

@@ -588,7 +596,7 @@ sub www_getBadgesAsJson { $results{'sort'} = undef; $results{'dir'} = "asc"; $session->http->setMimeType('text/json'); - return JSON::to_json(\%results); + return JSON->new->encode(\%results); } #------------------------------------------------------------------- @@ -718,7 +726,7 @@ sub www_getRegistrantAsJson { $badgeInfo->{ribbons} = \@ribbons; # build json datasource - return JSON::to_json($badgeInfo); + return JSON->new->encode($badgeInfo); } #------------------------------------------------------------------- @@ -742,9 +750,7 @@ sub www_getRegistrantsAsJson { my @params = ($self->getId); # user or staff - my $isEventStaff = 1; unless ($self->isRegistrationStaff) { - $isEventStaff = 0; $sql .= " and userId=?"; push @params, $session->user->userId; } @@ -755,22 +761,24 @@ sub www_getRegistrantsAsJson { } # limit - $sql .= 'limit ?,?'; + $sql .= ' limit ?,?'; push(@params, $startIndex, $numberOfResults); # get badge info my @records = (); my %results = (); my $badges = $db->read($sql,\@params); + $results{'recordsReturned'} = $badges->rows()+0; + $results{'totalRecords'} = $db->quickScalar('select found_rows()') + 0; ##Convert to numeric while (my $badgeInfo = $badges->hashRef) { my $badge = WebGUI::Asset::Sku::EMSBadge->new($session, $badgeInfo->{badgeAssetId}); $badgeInfo->{title} = $badge->getTitle; $badgeInfo->{sku} = $badge->get('sku'); $badgeInfo->{assetId} = $badge->getId; + $badgeInfo->{manageUrl} = $self->getUrl('func=manageRegistrant'); + $badgeInfo->{buildBadgeUrl} = $self->getUrl('func=buildBadge;badgeId='.$badgeInfo->{badgeId}); push(@records, $badgeInfo); } - $results{'recordsReturned'} = $badges->rows()+0; - $results{'totalRecords'} = $db->quickScalar('select found_rows()') + 0; ##Convert to numeric $results{'records'} = \@records; $results{'startIndex'} = $startIndex; $results{'sort'} = undef; @@ -778,7 +786,7 @@ sub www_getRegistrantsAsJson { # build json datasource $session->http->setMimeType('text/json'); - return JSON::to_json(\%results); + return JSON->new->encode(\%results); } @@ -812,7 +820,7 @@ sub www_getRibbonsAsJson { $results{'sort'} = undef; $results{'dir'} = "asc"; $session->http->setMimeType('text/json'); - return JSON::to_json(\%results); + return JSON->new->encode(\%results); } @@ -864,12 +872,24 @@ sub www_getTicketsAsJson { @badgeGroups = split("\n",$badge->get('relatedBadgeGroups')) if (defined $badge); } + # get a list of tickets already associated with the badge + my @existingTickets = $db->buildArray("select ticketAssetId from EMSRegistrantTicket where badgeId=?",[$badgeId]); + # get assets my $counter = 0; my $totalTickets = scalar(@ids); my @records = (); foreach my $id (@ids) { + + # gotta get to the page we're working with next unless ($counter >= $startIndex); + + # skip tickets we already have + if (isIn($id, @existingTickets)) { + $totalTickets--; + next; + } + my $ticket = WebGUI::Asset->new($session, $id, 'WebGUI::Asset::Sku::EMSTicket'); # skip borked tickets @@ -925,6 +945,14 @@ sub www_getTicketsAsJson { $counter++; } + # humor + my $find = pack('u',$keywords); + chomp $find; + if ($find eq q|'2$%,,C`P,0``|) { + push(@records, {title=>unpack('u',q|022=M('-Ohttp->setMimeType('text/json'); - return JSON::to_json(\%results); + return JSON->new->encode(\%results); } @@ -967,21 +995,33 @@ sub www_getTokensAsJson { $results{'sort'} = undef; $results{'dir'} = "asc"; $session->http->setMimeType('text/json'); - return JSON::to_json(\%results); + return JSON->new->encode(\%results); } #------------------------------------------------------------------- =head2 www_lookupRegistrant () -Displays the +Displays the badges purchased by the current user, or all users if the user is part of the registration staff. =cut sub www_lookupRegistrant { - my $self = shift; - return $self->www_getRegistrantsAsJson; - return $self->processStyle("here you will be able to look up a registrant by name"); + my ($self) = @_; + my $session = $self->session; + return $session->privilege->noAccess() unless ($self->canView && $self->session->user->userId ne "1"); + + # set up template variables + my %var = ( + buyBadgeUrl => $self->getUrl, + viewEventsUrl => $self->getUrl('func=buildBadge'), + viewCartUrl => $self->getUrl('shop=cart'), + getRegistrantsUrl => $self->getUrl('func=getRegistrantsAsJson'), + isRegistrationStaff => $self->isRegistrationStaff, + ); + + # render the page + return $self->processStyle($self->processTemplate(\%var, $self->get('lookupRegistrantTemplateId'))); } #------------------------------------------------------------------- @@ -1872,7 +1912,7 @@ sub getBadgeSelector { }; } $js = ''; %options = (%options,%{$badges}); $output .= WebGUI::Form::selectBox($self->session,{ diff --git a/lib/WebGUI/Macro/ViewCart.pm b/lib/WebGUI/Macro/ViewCart.pm new file mode 100644 index 000000000..b75d65d62 --- /dev/null +++ b/lib/WebGUI/Macro/ViewCart.pm @@ -0,0 +1,47 @@ +package WebGUI::Macro::ViewCart; + +#------------------------------------------------------------------- +# WebGUI is Copyright 2001-2008 Plain Black Corporation. +#------------------------------------------------------------------- +# Please read the legal notices (docs/legal.txt) and the license +# (docs/license.txt) that came with this distribution before using +# this software. +#------------------------------------------------------------------- +# http://www.plainblack.com info@plainblack.com +#------------------------------------------------------------------- + +use strict; +use WebGUI::International; + +=head1 NAME + +Package WebGUI::Macro::ViewCart + +=head1 DESCRIPTION + +Displays a view cart link and image. + +=head2 process( $session, [ linktext ] ) + +Renders the macro. + +=head3 linktext + +Defaults to "View Cart". + +=cut + + +#------------------------------------------------------------------- +sub process { + my ($session, $text) = @_; + unless ($text) { + $text = WebGUI::International->new($session,"Shop")->get("view cart"); + } + my $url = $session->url->page("shop=cart"); + return ''.$text.' '.$text.''; +} + +1; + + diff --git a/lib/WebGUI/SQL.pm b/lib/WebGUI/SQL.pm index 003bcaa3e..c49e7d30c 100644 --- a/lib/WebGUI/SQL.pm +++ b/lib/WebGUI/SQL.pm @@ -348,11 +348,11 @@ sub buildSearchQuery { else { $$sql .= ' where ('; } - $keywords = '%'.$keywords.'%'; + $keywords = lc('%'.$keywords.'%'); my $counter = 0; foreach my $field (@{ $columns }) { $$sql .= ' or' if ($counter > 0); - $$sql .= qq{ $field like ?}; + $$sql .= qq{ LOWER( $field ) like ?}; push(@{$placeHolders}, $keywords); $counter++; } diff --git a/lib/WebGUI/Shop/Pay.pm b/lib/WebGUI/Shop/Pay.pm index 6ee411ff9..7b7425b8c 100644 --- a/lib/WebGUI/Shop/Pay.pm +++ b/lib/WebGUI/Shop/Pay.pm @@ -352,12 +352,10 @@ sub www_selectPaymentGateway { } # All the output stuff below is just a placeholder until it's templated. - my $output .= $i18n->echo('Choose one of the following payment gateways to check out:'); - $output .= ''; + my $output .= $i18n->echo('How would you like to pay?'); foreach my $payOption ( values %{$self->getOptions( $cart )} ) { - $output .= ''; + $output .= $payOption->{button} . '
'; } - $output .= '
' . $payOption->{label} . '' . $payOption->{button} . '
'; return $session->style->userStyle( $output ); } diff --git a/lib/WebGUI/i18n/English/Asset_EventManagementSystem.pm b/lib/WebGUI/i18n/English/Asset_EventManagementSystem.pm index 5fef4d06f..5ccc88e3a 100644 --- a/lib/WebGUI/i18n/English/Asset_EventManagementSystem.pm +++ b/lib/WebGUI/i18n/English/Asset_EventManagementSystem.pm @@ -20,6 +20,12 @@ our $I18N = { context => q|help for a workflow activity field label|, }, + 'badge number' => { + message => q|Badge #|, + lastUpdated => 0, + context => q|a property label|, + }, + 'percentage discount' => { message => q|Percentage Discount|, lastUpdated => 0, @@ -62,12 +68,6 @@ our $I18N = { context => q|a link label|, }, - 'view cart' => { - message => q|View Cart|, - lastUpdated => 0, - context => q|a link label|, - }, - 'view tickets' => { message => q|View Tickets|, lastUpdated => 0, @@ -200,6 +200,42 @@ our $I18N = { context => q|a template label a tab in the badge builder|, }, + 'lookup registrant template' => { + message => q|Lookup Registrant|, + lastUpdated => 0, + context => q|a property label|, + }, + + 'lookup registrant template help' => { + message => q|Which template would you like to use for the lookup registrant screen?|, + lastUpdated => 0, + context => q|help for a property label|, + }, + + 'badge builder template' => { + message => q|Badge Builder Template|, + lastUpdated => 0, + context => q|a property label|, + }, + + 'badge builder template help' => { + message => q|Which template would you like to use for the badge builder screen?|, + lastUpdated => 0, + context => q|help for a property label|, + }, + + 'main template' => { + message => q|Main Template|, + lastUpdated => 0, + context => q|a property label|, + }, + + 'main template help' => { + message => q|Which template would you like to use for the main screen that lists the badges for purchase?|, + lastUpdated => 0, + context => q|help for a property label|, + }, + 'location' => { message => q|Location|, lastUpdated => 0, diff --git a/lib/WebGUI/i18n/English/Shop.pm b/lib/WebGUI/i18n/English/Shop.pm index c2430ff90..9c730da7f 100644 --- a/lib/WebGUI/i18n/English/Shop.pm +++ b/lib/WebGUI/i18n/English/Shop.pm @@ -3,6 +3,12 @@ package WebGUI::i18n::English::Shop; use strict; our $I18N = { + 'view cart' => { + message => q|View Cart|, + lastUpdated => 0, + context => q|a link label|, + }, + 'my purchases template' => { message => q|My Purchases Template|, lastUpdated => 0, diff --git a/www/extras/macro/ViewCart/cart.gif b/www/extras/macro/ViewCart/cart.gif new file mode 100644 index 0000000000000000000000000000000000000000..b8d6556e5ebe1f856d5cdb951903898cca9c3294 GIT binary patch literal 1149 zcmZ?wbhEHblw^=(_`Z@MzofjYf8wuSzh1t2wPW|54d#lL_5ipr~s z%d6hJeOpvkSz1~1(_G%ieE(dPMtBUxvjILvgYcw z>o;%T>76*arm1E6tT`d-eK_Cr_Vc6%?I0dAhKyVq37^ z@sp?4uG=tu_S{>y@03(jZP~ta%8XfCx9@Ch>uBxlp1WXC|KzEw)~>5>Y0JnhsBLO_ z`TF&&dGqU9+M3$C9zS_<@W|20GiDZ*SH6Dp=Eu*UjcuK#b`IGEMQ`4`eevRDVtQso zY{I?!51QIK3(LxL3XAXFyZ`Fd>u=w_SvWXt+`Of>vAMLS;XfEKjCi24<844fFJG6!-l91@!X(>#<+Sr{^W9xPy3W#uGLw6URp zhb4qdCuqun#)Ik-Q;c?gG}h`{s$LW0u=K}F!IFi1Mv$Q*l1z$@tJf>Z5U6G|)&B_C)I{Wn#CSyJgs z!u?u~*20s#y-U6Za4-3y=*h>Y>cS+W?~-`SS>wWoqnsi!A#ol`zg&_!wR(3