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 594f282f3..0b511e9b9 100644 Binary files a/docs/upgrades/packages-7.5.3/root_import_ems.wgpkg and b/docs/upgrades/packages-7.5.3/root_import_ems.wgpkg differ diff --git a/docs/upgrades/upgrade_7.5.2-7.5.3.pl b/docs/upgrades/upgrade_7.5.2-7.5.3.pl index c832dac8d..55caca4ed 100644 --- a/docs/upgrades/upgrade_7.5.2-7.5.3.pl +++ b/docs/upgrades/upgrade_7.5.2-7.5.3.pl @@ -71,6 +71,7 @@ sub upgradeEMS { $db->write("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 badge • View 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('-O
'.$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 .= '| ' . $payOption->{label} . ' | ' . $payOption->{button} . ' |