diff --git a/lib/WebGUI/Asset/Sku.pm b/lib/WebGUI/Asset/Sku.pm
index 6452a5ba8..97cc4139f 100644
--- a/lib/WebGUI/Asset/Sku.pm
+++ b/lib/WebGUI/Asset/Sku.pm
@@ -103,46 +103,46 @@ sub definition {
my $i18n = WebGUI::International->new($session, "Asset_Sku");
%properties = (
description => {
- tab=>"properties",
- fieldType=>"HTMLArea",
- defaultValue=>undef,
- label=>$i18n->get("description"),
- hoverHelp=>$i18n->get("description help")
+ tab => "properties",
+ fieldType => "HTMLArea",
+ defaultValue => undef,
+ label => $i18n->get("description"),
+ hoverHelp => $i18n->get("description help")
},
sku => {
- tab=>"commerce",
- fieldType=>"text",
- defaultValue=>$session->id->generate,
- label=>$i18n->get("sku"),
- hoverHelp=>$i18n->get("sku help")
+ tab => "shop",
+ fieldType => "text",
+ defaultValue => $session->id->generate,
+ label => $i18n->get("sku"),
+ hoverHelp => $i18n->get("sku help")
},
displayTitle => {
- tab=>"display",
- fieldType=>"yesNo",
- defaultValue=>1,
- label=>$i18n->get("display title"),
- hoverHelp=>$i18n->get("display title")
+ tab => "display",
+ fieldType => "yesNo",
+ defaultValue => 1,
+ label => $i18n->get("display title"),
+ hoverHelp => $i18n->get("display title")
},
overrideTaxRate => {
- tab=>"commerce",
- fieldType=>"yesNo",
- defaultValue=>0,
- label=>$i18n->get("override tax rate"),
- hoverHelp=>$i18n->get("override tax rate help")
+ tab => "shop",
+ fieldType => "yesNo",
+ defaultValue => 0,
+ label => $i18n->get("override tax rate"),
+ hoverHelp => $i18n->get("override tax rate help")
},
taxRateOverride => {
- tab=>"commerce",
- fieldType=>"float",
- defaultValue=>0.00,
- label=>$i18n->get("tax rate override"),
- hoverHelp=>$i18n->get("tax rate override help")
+ tab => "shop",
+ fieldType => "float",
+ defaultValue => 0.00,
+ label => $i18n->get("tax rate override"),
+ hoverHelp => $i18n->get("tax rate override help")
},
salesAgentId => {
- tab=>"commerce",
- fieldType=>"hidden",
- defaultValue=>undef,
- label=>$i18n->get("sales agent"),
- hoverHelp=>$i18n->get("sales agent help")
+ tab => "shop",
+ fieldType => "hidden",
+ defaultValue => undef,
+ label => $i18n->get("sales agent"),
+ hoverHelp => $i18n->get("sales agent help")
},
);
push(@{$definition}, {
@@ -195,7 +195,7 @@ Not to be modified, just defines a new tab.
sub getEditTabs {
my $self = shift;
my $i18n = WebGUI::International->new($self->session,"Asset_Sku");
- return (['commerce', $i18n->get('commerce'), 9]);
+ return (['shop', $i18n->get('shop'), 9]);
}
#-------------------------------------------------------------------
diff --git a/lib/WebGUI/Asset/Sku/Donation.pm b/lib/WebGUI/Asset/Sku/Donation.pm
index aadda5f60..7a02e108f 100644
--- a/lib/WebGUI/Asset/Sku/Donation.pm
+++ b/lib/WebGUI/Asset/Sku/Donation.pm
@@ -73,7 +73,7 @@ sub definition {
hoverHelp => $i18n->get("thank you message"),
},
defaultPrice => {
- tab => "commerce",
+ tab => "shop",
fieldType => "float",
defaultValue => 100.00,
label => $i18n->get("default price"),
diff --git a/lib/WebGUI/Asset/Sku/EMSBadge.pm b/lib/WebGUI/Asset/Sku/EMSBadge.pm
index 904fdfde9..408b660bb 100644
--- a/lib/WebGUI/Asset/Sku/EMSBadge.pm
+++ b/lib/WebGUI/Asset/Sku/EMSBadge.pm
@@ -75,14 +75,14 @@ sub definition {
my $i18n = WebGUI::International->new($session, "Asset_EventManagementSystem");
%properties = (
price => {
- tab => "commerce",
+ tab => "shop",
fieldType => "float",
defaultValue => 0.00,
label => $i18n->get("price"),
hoverHelp => $i18n->get("price help"),
},
seatsAvailable => {
- tab => "commerce",
+ tab => "shop",
fieldType => "integer",
defaultValue => 100,
label => $i18n->get("seats available"),
diff --git a/lib/WebGUI/Asset/Sku/EMSRibbon.pm b/lib/WebGUI/Asset/Sku/EMSRibbon.pm
index e068b5d57..4f0ac174a 100644
--- a/lib/WebGUI/Asset/Sku/EMSRibbon.pm
+++ b/lib/WebGUI/Asset/Sku/EMSRibbon.pm
@@ -57,7 +57,7 @@ sub definition {
my $date = WebGUI::DateTime->new($session, time());
%properties = (
price => {
- tab => "commerce",
+ tab => "shop",
fieldType => "float",
defaultValue => 0.00,
label => $i18n->get("price"),
@@ -192,5 +192,52 @@ sub www_addToCart {
return $self->getParent->www_viewExtras($badgeId);
}
+#-------------------------------------------------------------------
+
+=head2 www_edit ()
+
+Displays the edit form.
+
+=cut
+
+sub www_edit {
+ my ($self) = @_;
+ return $self->session->privilege->insufficient() unless $self->canEdit;
+ return $self->session->privilege->locked() unless $self->canEditIfLocked;
+ $self->session->style->setRawHeadTags(q|
+
+ |);
+ my $i18n = WebGUI::International->new($self->session, "Asset_EventManagementSystem");
+ my $form = $self->getEditForm;
+ $form->hidden({name=>'proceed', value=>'viewAllRibbons'});
+ return $self->processStyle('
'.$i18n->get('ems ribbon').'
'.$form->print);
+}
+
+#-------------------------------------------------------------------
+
+=head2 www_viewAllRibbons ()
+
+Displays the list of ribbons in the parent.
+
+=cut
+
+sub www_viewAllRibbons {
+ my $self = shift;
+ return $self->getParent->www_viewExtras(undef,"ribbons");
+}
+
1;
diff --git a/lib/WebGUI/Asset/Sku/EMSTicket.pm b/lib/WebGUI/Asset/Sku/EMSTicket.pm
index 73f4bdc80..17036574b 100644
--- a/lib/WebGUI/Asset/Sku/EMSTicket.pm
+++ b/lib/WebGUI/Asset/Sku/EMSTicket.pm
@@ -71,14 +71,14 @@ sub definition {
my $date = WebGUI::DateTime->new($session, time());
%properties = (
price => {
- tab => "commerce",
+ tab => "shop",
fieldType => "float",
defaultValue => 0.00,
label => $i18n->get("price"),
hoverHelp => $i18n->get("price help"),
},
seatsAvailable => {
- tab => "commerce",
+ tab => "shop",
fieldType => "integer",
defaultValue => 25,
label => $i18n->get("seats available"),
@@ -278,5 +278,53 @@ sub www_addToCart {
return $self->getParent->www_viewExtras($badgeId);
}
+#-------------------------------------------------------------------
+
+=head2 www_edit ()
+
+Displays the edit form.
+
+=cut
+
+sub www_edit {
+ my ($self) = @_;
+ return $self->session->privilege->insufficient() unless $self->canEdit;
+ return $self->session->privilege->locked() unless $self->canEditIfLocked;
+ $self->session->style->setRawHeadTags(q|
+
+ |);
+ my $i18n = WebGUI::International->new($self->session, "Asset_EventManagementSystem");
+ my $form = $self->getEditForm;
+ $form->hidden({name=>'proceed', value=>'viewAllTickets'});
+ return $self->processStyle(''.$i18n->get('ems ticket').'
'.$form->print);
+}
+
+#-------------------------------------------------------------------
+
+=head2 www_viewAllTickets ()
+
+Displays the list of tickets in the parent.
+
+=cut
+
+sub www_viewAllTickets {
+ my $self = shift;
+ return $self->getParent->www_viewExtras(undef,"tickets");
+}
+
+
1;
diff --git a/lib/WebGUI/Asset/Sku/EMSToken.pm b/lib/WebGUI/Asset/Sku/EMSToken.pm
index 57a61a9cf..45401148e 100644
--- a/lib/WebGUI/Asset/Sku/EMSToken.pm
+++ b/lib/WebGUI/Asset/Sku/EMSToken.pm
@@ -57,7 +57,7 @@ sub definition {
my $date = WebGUI::DateTime->new($session, time());
%properties = (
price => {
- tab => "commerce",
+ tab => "shop",
fieldType => "float",
defaultValue => 0.00,
label => $i18n->get("price"),
@@ -189,5 +189,52 @@ sub www_addToCart {
return $self->getParent->www_viewExtras($badgeId);
}
+#-------------------------------------------------------------------
+
+=head2 www_edit ()
+
+Displays the edit form.
+
+=cut
+
+sub www_edit {
+ my ($self) = @_;
+ return $self->session->privilege->insufficient() unless $self->canEdit;
+ return $self->session->privilege->locked() unless $self->canEditIfLocked;
+ $self->session->style->setRawHeadTags(q|
+
+ |);
+ my $i18n = WebGUI::International->new($self->session, "Asset_EventManagementSystem");
+ my $form = $self->getEditForm;
+ $form->hidden({name=>'proceed', value=>'viewAllTokens'});
+ return $self->processStyle(''.$i18n->get('ems token').'
'.$form->print);
+}
+
+#-------------------------------------------------------------------
+
+=head2 www_viewAllTokens ()
+
+Displays the list of tokens in the parent.
+
+=cut
+
+sub www_viewAllTokens {
+ my $self = shift;
+ return $self->getParent->www_viewExtras(undef,"tokens");
+}
+
1;
diff --git a/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm b/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm
index 19620d6bd..aae55f2d1 100644
--- a/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm
+++ b/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm
@@ -166,7 +166,6 @@ sub view {
return $session->privilege->noAccess() unless $self->canView;
# set up objects we'll need
- my $badgeId = $session->form->get("badgeId");
my %var = ();
@@ -177,7 +176,7 @@ sub view {
my $output = q|
@@ -310,6 +309,72 @@ sub www_getBadgesAsJson {
#-------------------------------------------------------------------
+=head2 www_getRibbonsAsJson ()
+
+Retrieves a list of ribbons for the www_viewExtras() method.
+
+=cut
+
+sub www_getRibbonsAsJson {
+ my ($self) = @_;
+ my $session = $self->session;
+ return $session->privilege->insufficient() unless $self->canView;
+ my ($db, $form) = $session->quick(qw(db form));
+ my %results = ();
+ foreach my $badge (@{$self->getLineage(['children'],{returnObjects=>1, includeOnlyClasses=>['WebGUI::Asset::Sku::EMSRibbon']})}) {
+ push(@{$results{records}}, {
+ title => $badge->getTitle,
+ description => $badge->get('description'),
+ price => $badge->getPrice+0,
+ url => $badge->getUrl,
+ editUrl => $badge->getUrl('func=edit'),
+ deleteUrl => $badge->getUrl('func=delete'),
+ assetId => $badge->getId,
+ });
+ }
+ $results{totalRecords} = $results{recordsReturned} = scalar(@{$results{records}});
+ $results{'startIndex'} = 0;
+ $results{'sort'} = undef;
+ $results{'dir'} = "asc";
+ $session->http->setMimeType('text/json');
+ return JSON::to_json(\%results);
+}
+
+#-------------------------------------------------------------------
+
+=head2 www_getTokensAsJson ()
+
+Retrieves a list of tokens for the www_viewExtras() method.
+
+=cut
+
+sub www_getTokensAsJson {
+ my ($self) = @_;
+ my $session = $self->session;
+ return $session->privilege->insufficient() unless $self->canView;
+ my ($db, $form) = $session->quick(qw(db form));
+ my %results = ();
+ foreach my $badge (@{$self->getLineage(['children'],{returnObjects=>1, includeOnlyClasses=>['WebGUI::Asset::Sku::EMSToken']})}) {
+ push(@{$results{records}}, {
+ title => $badge->getTitle,
+ description => $badge->get('description'),
+ price => $badge->getPrice+0,
+ url => $badge->getUrl,
+ editUrl => $badge->getUrl('func=edit'),
+ deleteUrl => $badge->getUrl('func=delete'),
+ assetId => $badge->getId,
+ });
+ }
+ $results{totalRecords} = $results{recordsReturned} = scalar(@{$results{records}});
+ $results{'startIndex'} = 0;
+ $results{'sort'} = undef;
+ $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.
@@ -330,18 +395,311 @@ sub www_getRegistrantAsJson {
#-------------------------------------------------------------------
-=head2 www_viewExtras ( [badgeId] )
+=head2 www_viewExtras ( [badgeId, whichTab] )
Displays available ribbons, tokens, and tickets for the current badge.
=cut
sub www_viewExtras {
- my ($self, $badgeId) = @_;
- return $self->session->privilege->noAccess() unless $self->canView;
- $badgeId = $self->session->form->get("badgeId") unless ($badgeId eq "");
+ my ($self, $badgeId, $whichTab) = @_;
+ my $session = $self->session;
+ return $session->privilege->noAccess() unless $self->canView;
+ $badgeId = $session->form->get("badgeId") unless ($badgeId eq "");
+ $whichTab ||= "tickets";
- return "got here";
+ my ($style, $url) = $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/tabview/assets/skins/sam/tabview.css'), {rel=>'stylesheet', type=>'text/css'});
+ $style->setLink($url->extras('/yui/build/datatable/assets/skins/sam/datatable.css'), {rel=>'stylesheet', type=>'text/css'});
+ $style->setLink($url->extras('/yui/build/container/assets/skins/sam/container.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'});
+ $style->setScript($url->extras('/yui/build/container/container-min.js'), {type=>'text/javascript'});
+ $style->setScript($url->extras('/yui/build/tabview/tabview-min.js'), {type=>'text/javascript'});
+ $style->setRawHeadTags(q|
+
+ |);
+
+ my $output = q|
+
+
+
+ |;
+ return $self->processStyle($output);
my %var = ();
diff --git a/lib/WebGUI/i18n/English/Asset_Sku.pm b/lib/WebGUI/i18n/English/Asset_Sku.pm
index 2d39d70ee..97d4a2e78 100644
--- a/lib/WebGUI/i18n/English/Asset_Sku.pm
+++ b/lib/WebGUI/i18n/English/Asset_Sku.pm
@@ -3,8 +3,8 @@ package WebGUI::i18n::English::Asset_Sku;
use strict;
our $I18N = {
- 'commerce' => {
- message => q|Commerce|,
+ 'shop' => {
+ message => q|Shop|,
lastUpdated => 0,
context => q|The name of a tab that all Sku based assets have to put their commerce related settings.|
},