POD whitespace fixes
This commit is contained in:
parent
684f08649d
commit
5cb101af44
8 changed files with 228 additions and 170 deletions
|
|
@ -53,9 +53,9 @@ sub addChild {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
|
||||
=head2 addRevision
|
||||
|
||||
|
||||
Override the default method in order to deal with attachments.
|
||||
|
||||
=cut
|
||||
|
|
|
|||
|
|
@ -170,7 +170,7 @@ sub _acWrapper {
|
|||
return $ac->render($html,$title);
|
||||
}
|
||||
|
||||
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
sub _matchPairs {
|
||||
|
|
@ -189,7 +189,7 @@ sub _matchPairs {
|
|||
}
|
||||
return \%hash;
|
||||
}
|
||||
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
sub _matchTypes {
|
||||
|
|
@ -275,7 +275,7 @@ sub addToScratchCart {
|
|||
my ($numberRegistered) = $self->session->db->quickArray("select count(*) from EventManagementSystem_registrations as r, EventManagementSystem_purchases as p, transaction as t where t.transactionId=p.transactionId and t.status='Completed' and r.purchaseId = p.purchaseId and r.returned=0 and r.productId=?",[$event]);
|
||||
my ($maxAttendees) = $self->session->db->quickArray("select maximumAttendees from EventManagementSystem_products where productId=?",[$event]);
|
||||
return undef unless ($self->canApproveEvents || ($maxAttendees > $numberRegistered));
|
||||
|
||||
|
||||
my $bid = $self->session->scratch->get('currentBadgeId');
|
||||
my @pastEvents = ($bid)?$self->session->db->buildArray("select r.productId from EventManagementSystem_registrations as r, EventManagementSystem_purchases as p, transaction as t where r.returned=0 and r.badgeId=? and t.transactionId=p.transactionId and t.status='Completed' and p.purchaseId=r.purchaseId group by productId",[$bid]):();
|
||||
push(@eventsInCart, $event) unless (isIn($event,@eventsInCart) || isIn($event,@pastEvents));
|
||||
|
|
@ -336,7 +336,7 @@ sub buildMenu {
|
|||
$js .= q| }|;
|
||||
}
|
||||
$js .= "\n};\n";
|
||||
|
||||
|
||||
$var->{'search.filters.options'} = $js;
|
||||
$var->{'search.data.url'} = $self->getUrl("func=search");
|
||||
}
|
||||
|
|
@ -357,29 +357,29 @@ sub checkConflicts {
|
|||
my $eventsInCart = $self->getEventsInScratchCart;
|
||||
# $self->session->errorHandler->warn(Dumper($eventsInCart));
|
||||
my @schedule;
|
||||
|
||||
|
||||
# Get schedule info for events in cart and sort asc by start date
|
||||
my $sth = $self->session->db->read("
|
||||
select productId, startDate, endDate from EventManagementSystem_products
|
||||
where productId in (".$self->session->db->quoteAndJoin($eventsInCart).")
|
||||
order by startDate"
|
||||
);
|
||||
|
||||
|
||||
# Build our schedule
|
||||
while (my $scheduleData = $sth->hashRef) {
|
||||
|
||||
|
||||
# make sure it's a subevent...
|
||||
my ($isSubEvent) = $self->session->db->quickArray("
|
||||
select count(*) from EventManagementSystem_products
|
||||
where (prerequisiteId is not null and prerequisiteId != '') and productId=?", [$scheduleData->{productId}]
|
||||
);
|
||||
next unless ($isSubEvent);
|
||||
|
||||
|
||||
push(@schedule, $scheduleData);
|
||||
}
|
||||
my $singleData = {};
|
||||
$singleData = $self->session->db->quickHashRef("select productId, startDate, endDate from EventManagementSystem_products where productId=?", [$checkSingleEvent]) if $checkSingleEvent;
|
||||
|
||||
|
||||
# Check the schedule for conflicts
|
||||
for (my $i=0; $i < scalar(@schedule); $i++) {
|
||||
next if ($i == 0 && !$checkSingleEvent);
|
||||
|
|
@ -417,7 +417,7 @@ sub checkRequiredFields {
|
|||
my $self = shift;
|
||||
my $requiredFields = shift;
|
||||
my @errors;
|
||||
|
||||
|
||||
foreach my $requiredField (keys %{$requiredFields}) {
|
||||
if ($self->session->form->get($requiredField) eq "") {
|
||||
push(@errors, {
|
||||
|
|
@ -428,7 +428,7 @@ sub checkRequiredFields {
|
|||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
return \@errors;
|
||||
}
|
||||
|
||||
|
|
@ -538,9 +538,9 @@ Utility method that checks for prerequisite groupings that no longer have any ev
|
|||
|
||||
sub deleteOrphans {
|
||||
my $self = shift;
|
||||
|
||||
|
||||
# MSW Note - as this is on 4/27/2006, I don't think query will ever return any results.
|
||||
|
||||
|
||||
#Check for orphaned prerequisite definitions
|
||||
my @orphans = $self->session->db->quickArray("select p.prerequisiteId from EventManagementSystem_prerequisites as p
|
||||
left join EventManagementSystem_prerequisiteEvents as pe
|
||||
|
|
@ -549,7 +549,7 @@ sub deleteOrphans {
|
|||
foreach my $orphan (@orphans) {
|
||||
$self->session->db->write("delete from EventManagementSystem_prerequisites where prerequisiteId=".
|
||||
$self->session->db->quote($orphan));
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -584,23 +584,23 @@ sub error {
|
|||
my $callback = shift;
|
||||
my $i18n = WebGUI::International->new($self->session,'Asset_EventManagementSystem');
|
||||
my @errorMessages;
|
||||
|
||||
|
||||
foreach my $error (@$errors) {
|
||||
#Null Field Error
|
||||
if ($error->{type} eq "nullField") {
|
||||
push(@errorMessages, sprintf($i18n->get('null field error'),$error->{fieldName}));
|
||||
}
|
||||
|
||||
|
||||
#General Error Message
|
||||
elsif ($error->{type} eq "general") {
|
||||
push(@errorMessages, $error->{message});
|
||||
}
|
||||
|
||||
|
||||
#Scheduling Conflict
|
||||
elsif ($error->{type} eq "conflict") {
|
||||
push(@errorMessages, $self->resolveConflictForm($error->{event1}, $error->{event2}));
|
||||
}
|
||||
|
||||
|
||||
elsif ($error->{type} eq "special") {
|
||||
push(@errorMessages, unpack("u",$error->{message}));
|
||||
}
|
||||
|
|
@ -653,7 +653,7 @@ sub getAssignedPrerequisites {
|
|||
$sql = "select prereqs.prerequisiteId, prereqs.operator from EventManagementSystem_prerequisites as prereqs, EventManagementSystem_products as p
|
||||
where where prereqs.prerequisiteId = p.prerequisiteId and p.productId=?";
|
||||
}
|
||||
|
||||
|
||||
return $self->session->db->buildHashRef($sql,[$eventId]);
|
||||
}
|
||||
|
||||
|
|
@ -669,7 +669,7 @@ sub getEventsInCart {
|
|||
my $self = shift;
|
||||
my $cart = WebGUI::Commerce::ShoppingCart->new($self->session);
|
||||
my ($cartItems) = $cart->getItems;
|
||||
|
||||
|
||||
my @eventsInCart = map { $_->{item}->id } @{ $cartItems };
|
||||
|
||||
return \@eventsInCart;
|
||||
|
|
@ -686,9 +686,9 @@ sub getEventsInScratchCart {
|
|||
sub getEventName {
|
||||
my $self = shift;
|
||||
my $eventId = shift;
|
||||
|
||||
|
||||
my ($eventName) = $self->session->db->quickArray("select title from products where productId=?",[$eventId]);
|
||||
|
||||
|
||||
return $eventName;
|
||||
}
|
||||
|
||||
|
|
@ -717,11 +717,11 @@ sub getPrerequisiteEventList {
|
|||
my $self = shift;
|
||||
my $eventId = shift;
|
||||
my $conditionalWhere;
|
||||
|
||||
|
||||
if ($self->get("globalPrerequisites") == 0) {
|
||||
$conditionalWhere = "and e.assetId=".$self->session->db->quote($self->get('assetId'));
|
||||
}
|
||||
|
||||
|
||||
my $sql = "select p.productId, p.title from products as p, EventManagementSystem_products as e
|
||||
where p.productId = e.productId
|
||||
and p.productId !=".$self->session->db->quote($eventId)."
|
||||
|
|
@ -731,7 +731,7 @@ sub getPrerequisiteEventList {
|
|||
EventManagementSystem_prerequisiteEvents as pe
|
||||
where p.prerequisiteId = pe.prerequisiteId
|
||||
and p.productId=".$self->session->db->quote($eventId).")";
|
||||
|
||||
|
||||
return $self->session->db->buildHashRef($sql);
|
||||
}
|
||||
|
||||
|
|
@ -807,11 +807,11 @@ sub getBadgeSelector {
|
|||
'new' => $i18n->get('create a badge for someone else')
|
||||
);
|
||||
my $isAdmin = $self->canAddEvents;
|
||||
|
||||
|
||||
my $badges = {};
|
||||
my $me = $self->session->var->get('userId');
|
||||
my $addBadgeId = $self->session->scratch->get('EMS_add_purchase_badgeId');
|
||||
|
||||
|
||||
if ($isAdmin) {
|
||||
# all badges in the system.
|
||||
$badges = $self->session->db->buildHashRef("select badgeId, CONCAT(lastName,', ',firstName,' (',email,')') from EventManagementSystem_badges order by lastName");
|
||||
|
|
@ -869,7 +869,7 @@ sub getBadgeSelector {
|
|||
}).($addBadgeId ? WebGUI::Form::hidden($self->session,{
|
||||
name => 'badgeId',value=>$addBadgeId
|
||||
}) : '');
|
||||
|
||||
|
||||
return $js.$output if scalar(keys(%options));
|
||||
return '';
|
||||
}
|
||||
|
|
@ -894,7 +894,7 @@ sub getRequiredEventNames {
|
|||
pe.requiredProductId = p.productId
|
||||
and pr.prerequisiteId = pe.prerequisiteId
|
||||
and pr.prerequisiteId=?";
|
||||
|
||||
|
||||
return $self->session->db->buildArrayRef($sql,[$prerequisiteId]);
|
||||
}
|
||||
|
||||
|
|
@ -940,7 +940,7 @@ sub prerequisiteIsMet {
|
|||
my $operator = shift;
|
||||
my $requiredEvents = shift;
|
||||
my $userSelectedEvents = $self->getEventsInScratchCart;
|
||||
|
||||
|
||||
if ($operator eq 'and') { # make sure every required event is in the users cart
|
||||
foreach my $requiredEvent (@$requiredEvents) {
|
||||
unless ( isIn($requiredEvent, @{$userSelectedEvents}) ) {
|
||||
|
|
@ -991,10 +991,10 @@ sub www_removeFromScratchCart {
|
|||
|
||||
my $pid = $self->session->form->get("pid");
|
||||
$self->removeFromScratchCart($pid);
|
||||
|
||||
|
||||
return $self->www_search;
|
||||
}
|
||||
|
||||
|
||||
|
||||
#------------------------------------------------------------------
|
||||
sub resolveConflictForm {
|
||||
|
|
@ -1008,7 +1008,7 @@ sub resolveConflictForm {
|
|||
from products where productId in (".$self->session->db->quote($event1).","
|
||||
.$self->session->db->quote($event2).")"
|
||||
);
|
||||
|
||||
|
||||
my $i18n = WebGUI::International->new($self->session, 'Asset_EventManagementSystem');
|
||||
|
||||
$var{'form.header'} = WebGUI::Form::formHeader($self->session,{action=>$self->getUrl})
|
||||
|
|
@ -1065,7 +1065,7 @@ sub verifyAllPrerequisites {
|
|||
}
|
||||
$lastResultsSize = scalar(keys %$lastResults);
|
||||
}
|
||||
|
||||
|
||||
my $rowsLoop = [];
|
||||
foreach (keys %$lastResults) {
|
||||
my $details = $lastResults->{$_};
|
||||
|
|
@ -1110,14 +1110,14 @@ sub getAllPossibleEventPrerequisites {
|
|||
my $eventId = shift;
|
||||
my $required = [];
|
||||
my $messageLoop = [];
|
||||
|
||||
|
||||
# Get all prerequisite definitions defined for this event
|
||||
my $prerequisiteDefinitions = $self->session->db->buildHashRef("select prereqs.prerequisiteId, prereqs.operator from EventManagementSystem_prerequisites as prereqs, EventManagementSystem_products as p
|
||||
where prereqs.prerequisiteId = p.prerequisiteId and p.approved=1 and p.productId=?",[$eventId]);
|
||||
foreach my $prerequisiteId (keys %{$prerequisiteDefinitions}) {
|
||||
my $message;
|
||||
my $operator = $prerequisiteDefinitions->{$prerequisiteId};
|
||||
|
||||
|
||||
# Get the events required for each prerequisite definition (the events required for attending $eventId)
|
||||
my $requiredEvents = $self->session->db->buildArrayRef("select requiredProductId from EventManagementSystem_prerequisiteEvents
|
||||
where prerequisiteId=?",[$prerequisiteId]);
|
||||
|
|
@ -1128,19 +1128,19 @@ sub getAllPossibleEventPrerequisites {
|
|||
#that are required but not currently in the scratch cart.
|
||||
my $scratchCart = $self->getEventsInScratchCart;
|
||||
my @missingEventIds;
|
||||
|
||||
|
||||
foreach my $requiredEvent (@$requiredEvents) {
|
||||
push (@missingEventIds, $requiredEvent) unless isIn($requiredEvent, @$scratchCart);
|
||||
}
|
||||
|
||||
|
||||
my $missingEventNames = $self->getRequiredEventNames($prerequisiteId);
|
||||
|
||||
|
||||
foreach my $missingEventName (@$missingEventNames) {
|
||||
$message .= "$missingEventName $operator ";
|
||||
}
|
||||
|
||||
|
||||
$message =~ s/(\sand\s|\sor\s)$//; #remove trailing 'and' or 'or' from the message
|
||||
|
||||
|
||||
foreach (@missingEventIds) {
|
||||
push(@$required,$_) unless isIn($_,@$required);
|
||||
}
|
||||
|
|
@ -1206,9 +1206,9 @@ sub verifyPrerequisitesForm {
|
|||
return unless scalar(@$missingEventMessageLoop);
|
||||
|
||||
my $i18n = WebGUI::International->new($self->session, 'Asset_EventManagementSystem');
|
||||
|
||||
|
||||
$scratchCart = [split("\n",$self->session->scratch->get('EMS_scratch_cart'))];
|
||||
|
||||
|
||||
foreach (@$scratchCart) {
|
||||
my $details = $self->getEventDetails($_);
|
||||
push(@$allPrereqsLoop, {
|
||||
|
|
@ -1223,7 +1223,7 @@ sub verifyPrerequisitesForm {
|
|||
'price' => $details->{price}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
$var{'form.header'} = WebGUI::Form::formHeader($self->session,{action=>$self->getUrl})
|
||||
.WebGUI::Form::hidden($self->session,{name=>"func",value=>"addToCart"})
|
||||
.WebGUI::Form::hidden($self->session,{name=>"method",value=>"addSubEvents"}
|
||||
|
|
@ -1232,7 +1232,7 @@ sub verifyPrerequisitesForm {
|
|||
$var{'form.footer'} = WebGUI::Form::formFooter($self->session);
|
||||
$var{'form.submit'} = WebGUI::Form::Submit($self->session);
|
||||
$var{'message'} = $i18n->get('missing prerequisites message');
|
||||
|
||||
|
||||
#Set the template vars needed to inform the user of the missing prereqs.
|
||||
$var{'prereqsAreMissing'} = 1;
|
||||
$var{'message_loop'} = $missingEventMessageLoop;
|
||||
|
|
@ -1252,10 +1252,10 @@ sub validateEditEventForm {
|
|||
my $self = shift;
|
||||
my $errors;
|
||||
my $i18n = WebGUI::International->new($self->session, 'Asset_EventManagementSystem');
|
||||
|
||||
|
||||
my %requiredFields;
|
||||
tie %requiredFields, 'Tie::IxHash';
|
||||
|
||||
|
||||
#-----Form name--------------User Friendly Name----#
|
||||
%requiredFields = (
|
||||
"title" => $i18n->get("add/edit event title"),
|
||||
|
|
@ -1272,7 +1272,7 @@ sub validateEditEventForm {
|
|||
}
|
||||
|
||||
$errors = $self->checkRequiredFields(\%requiredFields);
|
||||
|
||||
|
||||
#Check price greater than zero
|
||||
if ($self->session->form->get("price") < 0) {
|
||||
push (@{$errors}, {
|
||||
|
|
@ -1288,10 +1288,10 @@ sub validateEditEventForm {
|
|||
}
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
#Other checks go here
|
||||
|
||||
|
||||
return $errors;
|
||||
}
|
||||
|
||||
|
|
@ -1312,7 +1312,7 @@ sub www_addToCart {
|
|||
# $self->session->errorHandler->warn("scratch before: <pre>".Dumper($self->getEventsInScratchCart).Dumper($self->session->db->buildHashRef("select name,value from userSessionScratch where sessionId=?",[$self->session->getId]))."</pre>");
|
||||
# Check if conflicts were found that the user needs to fix
|
||||
$output = $conflicts->[0] if defined $conflicts;
|
||||
|
||||
|
||||
unless ($output) { #Skip this if we have errors
|
||||
|
||||
if ($self->session->form->get("method") eq "addSubEvents") { # List of ids from subevent form
|
||||
|
|
@ -1332,10 +1332,10 @@ sub www_addToCart {
|
|||
|
||||
#$output = $self->getSubEventForm(\@pids) unless ($output);
|
||||
#$output = $self->getSubEventForm($self->getEventsInScratchCart) unless ($output);
|
||||
|
||||
|
||||
$errors = $self->checkConflicts;
|
||||
if (scalar(@$errors) > 0) { return $self->error($errors, "www_addToCart"); }
|
||||
|
||||
|
||||
unless ($output) {
|
||||
return $self->saveRegistration;
|
||||
}
|
||||
|
|
@ -1350,7 +1350,7 @@ sub www_addToScratchCart {
|
|||
my $pid = $self->session->form->get("pid");
|
||||
my $nameOfEventAdded = $self->getEventName($pid);
|
||||
my $masterEventId = $self->session->form->get("mid");
|
||||
|
||||
|
||||
my $mainEvent = $self->addToScratchCart($pid); #tsc
|
||||
if ($masterEventId eq $pid) {
|
||||
return $self->processStyle($self->processTemplate($self->getRegistrationInfo(),$self->getValue("checkoutTemplateId")));
|
||||
|
|
@ -1443,14 +1443,14 @@ sub www_deleteCartItem {
|
|||
my $event2 = $self->session->form->get("event2");
|
||||
my $eventUserDeleted = $self->session->form->get("productToRemove");
|
||||
#my $cart = WebGUI::Commerce::ShoppingCart->new($self->session);
|
||||
|
||||
|
||||
# Delete all of the subevents last added by the user
|
||||
#$cart->delete($event1, 'Event');
|
||||
#$cart->delete($event2, 'Event');
|
||||
|
||||
$self->removeFromScratchCart($event1);
|
||||
$self->removeFromScratchCart($event2);
|
||||
|
||||
|
||||
# Add the subevents back to the cart except for the one the user choose to remove.
|
||||
# This will re-trigger the conflict/sub-event display code correctly
|
||||
|
||||
|
|
@ -1472,7 +1472,7 @@ sub www_deleteEvent {
|
|||
my $eventId = $self->session->form->get("pid");
|
||||
|
||||
return $self->session->privilege->insufficient unless ($self->canAddEvents);
|
||||
|
||||
|
||||
#Remove this event as a prerequisite to any other event
|
||||
$self->session->db->write("delete from EventManagementSystem_prerequisiteEvents where requiredProductId=?",
|
||||
[$eventId]);
|
||||
|
|
@ -1497,14 +1497,14 @@ Method to delete a prerequisite assignment of one event to another
|
|||
sub www_deletePrerequisite {
|
||||
my $self = shift;
|
||||
my $eventId = $self->session->form->get("id");
|
||||
|
||||
|
||||
return $self->session->privilege->insufficient unless ($self->canAddEvents);
|
||||
|
||||
|
||||
$self->session->db->write("delete from EventManagementSystem_prerequisiteEvents where prerequisiteId=?",
|
||||
[$eventId]);
|
||||
$self->session->db->write("delete from EventManagementSystem_prerequisites where prerequisiteId=?",
|
||||
[$eventId]);
|
||||
|
||||
|
||||
return $self->www_editEvent;
|
||||
}
|
||||
|
||||
|
|
@ -1565,17 +1565,17 @@ sub www_editEvent {
|
|||
);
|
||||
|
||||
my $f = WebGUI::HTMLForm->new($self->session,-action=>$self->getUrl);
|
||||
|
||||
|
||||
# Errors
|
||||
foreach (@$errors) {
|
||||
$errorMessages .= sprintf "<span style='color: red; font-weight: bold;'>%s: %s </span><br />", $i18n->get('add/edit event error'), $_;
|
||||
}
|
||||
$f->readOnly( -value=>$errorMessages );
|
||||
|
||||
|
||||
$f->hidden( -name=>"assetId", -value=>$self->get("assetId") );
|
||||
$f->hidden( -name=>"func",-value=>"editEventSave" );
|
||||
$f->hidden( -name=>"pid", -value=>$pid );
|
||||
|
||||
|
||||
if ($self->canApproveEvents) {
|
||||
$f->yesNo(
|
||||
-value => $event->{approved},
|
||||
|
|
@ -1589,35 +1589,35 @@ sub www_editEvent {
|
|||
-value => $event->{approved}
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
$f->text(
|
||||
-name => "title",
|
||||
-value => $self->session->form->get("title") || $event->{title},
|
||||
-hoverHelp => $i18n->get('add/edit event title description'),
|
||||
-label => $i18n->get('add/edit event title')
|
||||
);
|
||||
|
||||
|
||||
$f->HTMLArea(
|
||||
-name => "description",
|
||||
-value => $self->session->form->get("description") || $event->{description},
|
||||
-hoverHelp => $i18n->get('add/edit event description description'),
|
||||
-label => $i18n->get('add/edit event description')
|
||||
);
|
||||
|
||||
|
||||
$f->image(
|
||||
-name => "image",
|
||||
-hoverHelp => $i18n->get('add/edit event image description'),
|
||||
-label => $i18n->get('add/edit event image'),
|
||||
-value => $storageId
|
||||
);
|
||||
|
||||
|
||||
$f->float(
|
||||
-name => "price",
|
||||
-value => $self->session->form->get("price") || $event->{price},
|
||||
-hoverHelp => $i18n->get('add/edit event price description'),
|
||||
-label => $i18n->get('price')
|
||||
);
|
||||
|
||||
|
||||
$f->template(
|
||||
-name => "templateId",
|
||||
-namespace => "EventManagementSystem_product",
|
||||
|
|
@ -1625,35 +1625,35 @@ sub www_editEvent {
|
|||
-hoverHelp => $i18n->get('add/edit event template description'),
|
||||
-label => $i18n->get('add/edit event template')
|
||||
);
|
||||
|
||||
|
||||
$f->float(
|
||||
-name => "weight",
|
||||
-value => $self->session->form->get("weight") || $event->{weight} || 0,
|
||||
-hoverHelp => $i18n->get('weight description'),
|
||||
-label => $i18n->get('weight'),
|
||||
);
|
||||
|
||||
|
||||
$f->text(
|
||||
-name => "sku",
|
||||
-value => $self->session->form->get("sku") || $event->{sku} || $self->session->id->generate(),
|
||||
-hoverHelp => $i18n->get('sku description'),
|
||||
-label => $i18n->get('sku'),
|
||||
);
|
||||
|
||||
|
||||
$f->text(
|
||||
-name => "skuTemplate",
|
||||
-value => $self->session->form->get("skuTemplate") || $event->{skuTemplate},
|
||||
-hoverHelp => $i18n->get('sku template description'),
|
||||
-label => $i18n->get('sku template'),
|
||||
);
|
||||
|
||||
|
||||
$f->dateTime(
|
||||
-name => "startDate",
|
||||
-value => $self->session->form->process("startDate",'dateTime') || $event->{startDate},
|
||||
-hoverHelp => $i18n->get('add/edit event start date description'),
|
||||
-label => $i18n->get('add/edit event start date')
|
||||
);
|
||||
|
||||
|
||||
$f->dateTime(
|
||||
-name => "endDate",
|
||||
-value => $self->session->form->process("endDate",'dateTime') || $event->{endDate},
|
||||
|
|
@ -1692,7 +1692,7 @@ sub www_editEvent {
|
|||
'member'=>$i18n->get('discount pass member'),
|
||||
'defines'=>$i18n->get('defines discount pass')
|
||||
);
|
||||
|
||||
|
||||
my %discountPasses;
|
||||
tie %discountPasses, 'Tie::IxHash';
|
||||
%discountPasses = $self->session->db->buildHash("select passId, name from EventManagementSystem_discountPasses order by name");
|
||||
|
|
@ -1748,7 +1748,7 @@ changePassType();
|
|||
</script>'
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
# add dynamically added metadata fields.
|
||||
my $meta = {};
|
||||
my $fieldList = $self->getEventMetaDataArrayRef;
|
||||
|
|
@ -1768,13 +1768,13 @@ changePassType();
|
|||
if($dataType eq "selectList" || $dataType eq "selectBox") {
|
||||
$options = {"", $i18n->get("Select", "Asset")};
|
||||
}
|
||||
|
||||
|
||||
my $val = $self->session->form->process("metadata_".$meta->{$field->{fieldId}}{fieldId},$dataType);
|
||||
|
||||
|
||||
if(!$val || (ref $val eq "ARRAY" && scalar(@{$val}) == 0 ) ) {
|
||||
$val = $meta->{$field->{fieldId}}{fieldData};
|
||||
}
|
||||
|
||||
|
||||
$f->dynamicField(
|
||||
name=>"metadata_".$meta->{$field->{fieldId}}{fieldId},
|
||||
label=>$meta->{$field->{fieldId}}{label},
|
||||
|
|
@ -1835,7 +1835,7 @@ sub www_editEventSave {
|
|||
my $value = $self->session->form->process("metadata_".$mdField,$mdFields->{$mdField}->{dataType});
|
||||
$self->session->db->write("insert into EventManagementSystem_metaData values (".$self->session->db->quoteAndJoin([$mdField,$pid,$value]).") on duplicate key update fieldData=".$self->session->db->quote($value));
|
||||
}
|
||||
|
||||
|
||||
#Save the standard product data
|
||||
$event = {
|
||||
productId => $pid,
|
||||
|
|
@ -1854,7 +1854,7 @@ sub www_editEventSave {
|
|||
else { # Updating the row
|
||||
$self->session->db->setRow("products", "productId", $event);
|
||||
}
|
||||
|
||||
|
||||
return $self->www_search;
|
||||
}
|
||||
|
||||
|
|
@ -1918,7 +1918,7 @@ sub www_managePurchases {
|
|||
while (my $purchase = $sth->hashRef) {
|
||||
$purchase->{datePurchasedHuman} = $self->session->datetime->epochToHuman($purchase->{initDate});
|
||||
$purchase->{purchaseUrl} = $self->getUrl("func=viewPurchase;tid=".$purchase->{purchaseId});
|
||||
|
||||
|
||||
push(@purchasesLoop,$purchase);
|
||||
}
|
||||
$var{managePurchasesTitle} = $i18n->get('manage purchases');
|
||||
|
|
@ -1970,7 +1970,7 @@ sub www_viewPurchase {
|
|||
push(@{$purchase->{regLoop}},$reg);
|
||||
}
|
||||
push(@purchasesLoop,$purchase);
|
||||
|
||||
|
||||
if ($self->canAddEvents) { #Build list of badges made that weren't actually purchased and provide an interface for attaching them to purchases
|
||||
my @incompleteTransactions;
|
||||
|
||||
|
|
@ -1979,14 +1979,14 @@ sub www_viewPurchase {
|
|||
join products b on a.productId=b.productId
|
||||
left join EventManagementSystem_purchases d on a.purchaseId=d.purchaseId
|
||||
left join transaction c on d.transactionId=c.transactionId where c.transactionId is not NULL and a.badgeId=?",[$badgeId]);
|
||||
|
||||
|
||||
# All purchaseIds associated with this person (badge)
|
||||
my @purchaseIds = $self->session->db->buildArray("select distinct(a.purchaseId) from EventManagementSystem_registrations a
|
||||
join products b on a.productId=b.productId
|
||||
left join EventManagementSystem_purchases d on a.purchaseId=d.purchaseId
|
||||
left join transaction c on d.transactionId=c.transactionId where c.transactionId is null and a.badgeId=?",[$badgeId]);
|
||||
|
||||
|
||||
|
||||
|
||||
foreach my $purchaseId (@purchaseIds) {
|
||||
my %data;
|
||||
my $loop = $self->session->db->buildArrayRefOfHashRefs("select a.registrationid, b.title, a.returned, c.transactionId, c.status as transactionStatus, b.sku
|
||||
|
|
@ -1994,8 +1994,8 @@ sub www_viewPurchase {
|
|||
left join EventManagementSystem_purchases d on a.purchaseId=d.purchaseId
|
||||
left join transaction c on d.transactionId=c.transactionId where (a.badgeId is NULL or c.transactionId is NULL or d.purchaseId is NULL)
|
||||
and a.badgeId=? and a.purchaseId=?",[$badgeId, $purchaseId]);
|
||||
|
||||
|
||||
|
||||
|
||||
$data{'purchaseId'} = $purchaseId;
|
||||
$data{'form.transactionSelect'} = ($purchaseId) ? WebGUI::Form::SelectBox($self->session, {name=>"transactionId", options=>$transactionIds}) : "";
|
||||
$data{'form.header'} = WebGUI::Form::formHeader($self->session, {action=>$self->getUrl("func=linkTransactionToPurchase")}).
|
||||
|
|
@ -2007,15 +2007,15 @@ sub www_viewPurchase {
|
|||
$data{'deleteRegistration.url'} = $self->getUrl("func=deleteRegistrationsByPurchaseId;pid=".$purchaseId).";bid=".$badgeId;
|
||||
$data{'deleteRegistration.label'} = "Delete ALL Registrations associated with this PurchaseId PERMANENTLY";
|
||||
$data{'canDeleteRegistration'} = ($purchaseId);
|
||||
|
||||
|
||||
push(@incompleteTransactions,\%data);
|
||||
}
|
||||
|
||||
|
||||
$var{'badgeId'} = $badgeId;
|
||||
$var{'incompleteTransactions_loop'} = \@incompleteTransactions;
|
||||
$var{'hasIncompleteTransactions'} = scalar(@incompleteTransactions);
|
||||
}
|
||||
|
||||
|
||||
$var{viewPurchaseTitle} = $i18n->get('view purchase');
|
||||
$var{canReturn} = $isAdmin;
|
||||
$var{transactionId} = $tid;
|
||||
|
|
@ -2055,7 +2055,7 @@ sub www_viewPurchase {
|
|||
$var{canReturnTransaction} = 1 if $purchase->{canReturnItinerary};
|
||||
push(@purchasesLoop,$purchase);
|
||||
}
|
||||
|
||||
|
||||
$var{viewPurchaseTitle} = $i18n->get('view purchase');
|
||||
$var{canReturn} = $isAdmin;
|
||||
$var{transactionId} = $tid;
|
||||
|
|
@ -2092,7 +2092,7 @@ sub www_viewPurchase {
|
|||
$var{canReturnTransaction} = 1 if $purchase->{canReturnItinerary};
|
||||
push(@purchasesLoop,$purchase);
|
||||
}
|
||||
|
||||
|
||||
$var{viewPurchaseTitle} = $i18n->get('view purchase');
|
||||
$var{canReturn} = $isAdmin;
|
||||
$var{transactionId} = $tid;
|
||||
|
|
@ -2104,6 +2104,7 @@ sub www_viewPurchase {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 www_deleteRegistrationsByPurchaseId
|
||||
|
||||
Method to delete all entries in EMS_registrations associated with a particular purchaseId
|
||||
|
|
@ -2116,15 +2117,16 @@ sub www_deleteRegistrationsByPurchaseId {
|
|||
my $self = shift;
|
||||
my $purchaseId = $self->session->form->get("pid");
|
||||
my $badgeId = $self->session->form->get("bid");
|
||||
|
||||
|
||||
return $self->session->privilege->insufficient unless ($self->canAddEvents);
|
||||
|
||||
|
||||
$self->session->db->write("delete from EventManagementSystem_registrations where purchaseId=?",[$purchaseId]);
|
||||
|
||||
|
||||
return $self->www_viewPurchase(undef, $badgeId);
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 www_linkTransactionToPurchase
|
||||
|
||||
Method to create entry in EMS_purchases based on user selected transactionId for a purchaseId
|
||||
|
|
@ -2138,16 +2140,16 @@ sub www_linkTransactionToPurchase {
|
|||
my $transactionId = $self->session->form->process("transactionId", "selectBox");
|
||||
my $purchaseId = $self->session->form->get("purchaseId");
|
||||
my $badgeId = $self->session->form->get("badgeId");
|
||||
|
||||
|
||||
return $self->session->privilege->insufficent unless ($self->canAddEvents);
|
||||
|
||||
|
||||
$self->session->db->setRow("EventManagementSystem_purchases", "purchaseId",
|
||||
{ purchaseId => "new",
|
||||
transactionId => $transactionId,
|
||||
}, $purchaseId);
|
||||
|
||||
|
||||
return $self->www_viewPurchase(undef, $badgeId);
|
||||
|
||||
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
|
@ -2412,9 +2414,9 @@ Method to move an event down one position in display order
|
|||
sub www_moveEventMetaDataFieldDown {
|
||||
my $self = shift;
|
||||
my $eventId = $self->session->form->get("fieldId");
|
||||
|
||||
|
||||
return $self->session->privilege->insufficient unless ($self->canAddEvents);
|
||||
|
||||
|
||||
$self->moveCollateralDown('EventManagementSystem_metaField', 'fieldId', $eventId);
|
||||
|
||||
return $self->www_manageEventMetadata;
|
||||
|
|
@ -2433,9 +2435,9 @@ sub www_moveEventMetaDataFieldUp {
|
|||
my $eventId = $self->session->form->get("fieldId");
|
||||
|
||||
return $self->session->privilege->insufficient unless ($self->canAddEvents);
|
||||
|
||||
|
||||
$self->moveCollateralUp('EventManagementSystem_metaField', 'fieldId', $eventId);
|
||||
|
||||
|
||||
return $self->www_manageEventMetadata;
|
||||
}
|
||||
|
||||
|
|
@ -2453,11 +2455,11 @@ sub www_deleteEventMetaDataField {
|
|||
my $eventId = $self->session->form->get("fieldId");
|
||||
|
||||
return $self->session->privilege->insufficient unless ($self->canAddEvents);
|
||||
|
||||
|
||||
$self->deleteCollateral('EventManagementSystem_metaField', 'fieldId', $eventId);
|
||||
$self->reorderCollateral('EventManagementSystem_metaField', 'fieldId');
|
||||
$self->deleteCollateral('EventManagementSystem_metaData', 'fieldId', $eventId); # deleteCollateral doesn't care about assetId.
|
||||
|
||||
|
||||
return $self->www_manageEventMetadata;
|
||||
}
|
||||
|
||||
|
|
@ -2472,9 +2474,9 @@ Method to move an event down one position in display order
|
|||
sub www_moveEventDown {
|
||||
my $self = shift;
|
||||
my $eventId = $self->session->form->get("pid");
|
||||
|
||||
|
||||
return $self->session->privilege->insufficient unless ($self->canAddEvents);
|
||||
|
||||
|
||||
$self->moveCollateralDown('EventManagementSystem_products', 'productId', $eventId);
|
||||
|
||||
return $self->www_search;
|
||||
|
|
@ -2493,9 +2495,9 @@ sub www_moveEventUp {
|
|||
my $eventId = $self->session->form->get("pid");
|
||||
|
||||
return $self->session->privilege->insufficient unless ($self->canAddEvents);
|
||||
|
||||
|
||||
$self->moveCollateralUp('EventManagementSystem_products', 'productId', $eventId);
|
||||
|
||||
|
||||
return $self->www_search;
|
||||
}
|
||||
|
||||
|
|
@ -2508,7 +2510,7 @@ sub saveRegistration {
|
|||
|
||||
my $theirUserId;
|
||||
my $shoppingCart = WebGUI::Commerce::ShoppingCart->new($self->session);
|
||||
|
||||
|
||||
my @addingToPurchase = split("\n",$self->session->scratch->get('EMS_add_purchase_events'));
|
||||
# @addingToPurchase = () if ($self->session->scratch->get('EMS_add_purchase_badgeId') && !($self->session->scratch->get('EMS_add_purchase_badgeId') eq $badgeId));
|
||||
my @badgeEvents = $self->session->db->quickArray("select distinct(e.productId) from EventManagementSystem_registrations as r, EventManagementSystem_badges as b, EventManagementSystem_products as e, EventManagementSystem_purchases as z, products as p, transaction where p.productId = r.productId and p.productId = e.productId and r.badgeId=b.badgeId and r.badgeId=? and r.purchaseId !='' and r.purchaseId=z.purchaseId and r.returned=0 and z.transactionId=transaction.transactionId and r.purchaseId is not null and transaction.status='Completed' ",[$badgeId]);
|
||||
|
|
@ -2601,7 +2603,7 @@ sub www_saveRegistrantInfo {
|
|||
$details->{userId} = $userId if ($userId && $userId ne '1');
|
||||
$details->{createdByUserId} = $self->session->var->get('userId') if ($addingNew && $userId ne '1');
|
||||
$badgeId = $self->setCollateral("EventManagementSystem_badges", "badgeId",$details,0,0);
|
||||
|
||||
|
||||
my ($theirUserId) = $self->session->db->quickArray("select userId from EventManagementSystem_badges where badgeId=?",[$badgeId]);
|
||||
$userId = $theirUserId unless $thisIsI;
|
||||
if ($userId && $userId ne '1') {
|
||||
|
|
@ -2616,7 +2618,7 @@ sub www_saveRegistrantInfo {
|
|||
$u->profileField('homePhone',$phoneNumber);
|
||||
$u->profileField('email',$email);
|
||||
}
|
||||
|
||||
|
||||
$self->session->scratch->set('currentBadgeId',$badgeId);
|
||||
my $nameOfEventAdded = $self->getEventName($self->session->scratch->get('currentMainEvent'));
|
||||
return $self->www_view();
|
||||
|
|
@ -2648,20 +2650,20 @@ sub www_search {
|
|||
$var{resetScratchCartUrl} = $self->getUrl("func=resetScratchCart");
|
||||
my $masterEventId = $var{badgeSelected};
|
||||
my $badgeHolderId = $self->session->scratch->get("currentBadgeId"); # primary key to EMS_badges containing all the attendees info
|
||||
|
||||
|
||||
if ($masterEventId && !$badgeHolderId) {
|
||||
# something is wrong; they must have skipped the badge choice step.
|
||||
return $self->www_editRegistrantInfo();
|
||||
}
|
||||
|
||||
|
||||
$self->addCartVars(\%var);
|
||||
|
||||
|
||||
# Get all the attendees details
|
||||
$var{badgeHolderInfo_loop} = $self->session->db->buildArrayRefOfHashRefs("select * from EventManagementSystem_badges where badgeId=?",[$badgeHolderId]);
|
||||
|
||||
|
||||
# Get all the events they have in the badge so far
|
||||
my $eventsInBadge = $self->getEventsInScratchCart;
|
||||
|
||||
|
||||
# Get all the info about these events and set the template vars
|
||||
my @selectedEvents_loop;
|
||||
my @pastEvents = $self->session->db->buildArray("select r.productId from EventManagementSystem_registrations as r, EventManagementSystem_purchases as p, transaction as t where r.returned=0 and r.badgeId=? and t.transactionId=p.transactionId and t.status='Completed' and p.purchaseId=r.purchaseId group by productId",[$badgeHolderId]);
|
||||
|
|
@ -2699,18 +2701,18 @@ sub www_search {
|
|||
$cfilter_s0 = "requirement";
|
||||
$cfilter_c0 = "eq";
|
||||
}
|
||||
|
||||
|
||||
my $keywords = $self->session->form->process("searchKeywords",'text');
|
||||
my @keys;
|
||||
my $joins;
|
||||
my $selects;
|
||||
my @joined;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
my $language = $i18n->getLanguage(undef,"languageAbbreviation");
|
||||
$var{'calendarJS'} = '<script type="text/javascript" src="'.$self->session->url->extras('calendar/calendar.js').'"></script><script type="text/javascript" src="'.$self->session->url->extras('calendar/lang/calendar-'.$language.'.js').'"></script><script type="text/javascript" src="'.$self->session->url->extras('calendar/calendar-setup.js').'"></script>';
|
||||
|
||||
|
||||
push(@keys,$keywords) if $keywords;
|
||||
unless ($keywords =~ /^".*"$/) {
|
||||
foreach (split(" ",$keywords)) {
|
||||
|
|
@ -2746,7 +2748,7 @@ sub www_search {
|
|||
my $value;
|
||||
my $fieldId;
|
||||
my $compare;
|
||||
|
||||
|
||||
# filter 0 is reserved for passing a search filter via the url
|
||||
# or as parameters to this method call. All user selectable filters
|
||||
# begin with number 1, i.e., cfilter_t1, cfilter_s1, cfilter_c1
|
||||
|
|
@ -2758,7 +2760,7 @@ sub www_search {
|
|||
$compare = $cfilter_c0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$value = $self->session->form->get("cfilter_t".$cfilter) unless ($value);
|
||||
$fieldId = $self->session->form->get("cfilter_s".$cfilter) unless ($fieldId);
|
||||
if ($fieldId eq 'requirement') {
|
||||
|
|
@ -2892,7 +2894,7 @@ sub www_search {
|
|||
my @events;
|
||||
foreach my $event (@$eventData) {
|
||||
my %eventFields;
|
||||
|
||||
|
||||
$eventFields{'title'} = $event->{'title'};
|
||||
$eventFields{'description'} = $event->{'description'};
|
||||
$eventFields{'price'} = '$'.$event->{'price'};
|
||||
|
|
@ -2927,7 +2929,7 @@ sub www_search {
|
|||
%eventFields = ('event' => $self->processTemplate(\%eventFields, $event->{'templateId'}), %eventFields) if ($self->{_calledFromView} && $self->session->form->process('func') eq 'view');
|
||||
push (@events, \%eventFields);
|
||||
}
|
||||
|
||||
|
||||
$var{'events_loop'} = \@events;
|
||||
$p->setAlphabeticalKey('title');
|
||||
$var{'paginateBar'} = $p->getBarTraditional;
|
||||
|
|
@ -2951,7 +2953,7 @@ sub www_search {
|
|||
my $basicSearchFlag = $self->session->form->get("searchKeywords");
|
||||
my $paginationFlag = $self->session->form->get("pn") || $pn;
|
||||
my $hasSearchedFlag = ($self->session->form->get("filter"));
|
||||
|
||||
|
||||
#Determine type of search results we're displaying
|
||||
if ($subSearchFlag && ($numSearchResults <= $maxResultsForInitialDisplay || $paginationFlag || $hasSearchedFlag)) {
|
||||
if ($self->canEdit) { #Admin manage sub events small resultset
|
||||
|
|
@ -2970,7 +2972,7 @@ sub www_search {
|
|||
} elsif ($numSearchResults > $maxResultsForInitialDisplay && !$paginationFlag) {
|
||||
$message = $i18n->get('forced narrowing');
|
||||
}
|
||||
|
||||
|
||||
my $somethingInScratch = scalar(@{$self->getEventsInScratchCart});
|
||||
$var{'message'} = $message;
|
||||
$var{'numberOfSearchResults'} = $numSearchResults;
|
||||
|
|
@ -2986,7 +2988,7 @@ sub www_search {
|
|||
|
||||
$self->buildMenu(\%var);
|
||||
$var{'ems.wobject.dir'} = $self->session->url->extras("wobject/EventManagementSystem");
|
||||
|
||||
|
||||
return $self->processStyle($self->processTemplate(\%var,$self->getValue("searchTemplateId")));
|
||||
}
|
||||
|
||||
|
|
@ -3001,9 +3003,9 @@ sub view {
|
|||
# $self->emptyScratchCart;
|
||||
# $self->session->scratch->delete('EMS_add_purchase_events');
|
||||
# }
|
||||
|
||||
|
||||
$self->addCartVars(\%var);
|
||||
|
||||
|
||||
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.weight, p.sku, p.skuTemplate, p.templateId, e.approved, e.maximumAttendees
|
||||
|
|
@ -3023,7 +3025,7 @@ sub view {
|
|||
#how the events are displayed in relation to one another.
|
||||
foreach my $event (@$eventData) {
|
||||
my %eventFields;
|
||||
|
||||
|
||||
$eventFields{'title'} = $event->{'title'};
|
||||
$eventFields{'title.url'} = $self->getUrl('func=search;cfilter_s0=requirement;cfilter_c0=eq;subSearch=1;cfilter_t0='.$event->{'productId'});
|
||||
$eventFields{'description'} = $event->{'description'};
|
||||
|
|
@ -3038,7 +3040,7 @@ sub view {
|
|||
$eventFields{'eventIsFull'} = ($eventFields{'seatsRemaining'} <= 0);
|
||||
$eventFields{'canManageEvents'} = $self->canApproveEvents;
|
||||
$eventFields{'eventIsApproved'} = $event->{'approved'};
|
||||
|
||||
|
||||
if ($eventFields{'eventIsFull'}) {
|
||||
$eventFields{'purchase.label'} = $i18n->get('sold out');
|
||||
}
|
||||
|
|
@ -3049,7 +3051,7 @@ sub view {
|
|||
$eventFields{'purchase.message'} = $i18n->get('see available subevents');
|
||||
$eventFields{'purchase.wantToSearch.url'} = $self->getUrl('func=search;cfilter_s0=requirement;cfilter_c0=eq;subSearch=1;cfilter_t0='.$event->{productId});
|
||||
$eventFields{'purchase.wantToContinue.url'} = $self->getUrl('func=addToCart;pid='.$event->{productId});
|
||||
|
||||
|
||||
push (@events, {'event' => $self->processTemplate(\%eventFields, $event->{'templateId'}) });
|
||||
}
|
||||
$var{'checkout.url'} = $self->getUrl('op=viewCart');
|
||||
|
|
@ -3063,7 +3065,7 @@ sub view {
|
|||
$var{'managePurchases.label'} = $i18n->get('manage purchases');
|
||||
$var{'canManageEvents'} = $self->canApproveEvents;
|
||||
$p->appendTemplateVars(\%var);
|
||||
|
||||
|
||||
# my $templateId = $self->get("displayTemplateId");
|
||||
|
||||
return $self->processTemplate(\%var, undef, $self->{_viewTemplate});
|
||||
|
|
@ -3082,10 +3084,10 @@ sub www_managePrereqSets {
|
|||
|
||||
return $self->session->privilege->insufficient unless ($self->canAddEvents);
|
||||
my $i18n = WebGUI::International->new($self->session,'Asset_EventManagementSystem');
|
||||
|
||||
|
||||
my $output;
|
||||
my $sth = $self->session->db->read("select prerequisiteId, name from EventManagementSystem_prerequisites order by name");
|
||||
|
||||
|
||||
if ($sth->rows) {
|
||||
|
||||
while (my %row = $sth->hash) {
|
||||
|
|
@ -3207,7 +3209,7 @@ sub www_manageRegistrants {
|
|||
|
||||
return $self->session->privilege->insufficient unless ($self->canAddEvents);
|
||||
my $i18n = WebGUI::International->new($self->session,'Asset_EventManagementSystem');
|
||||
|
||||
|
||||
my $output;
|
||||
my $sql = "select * from EventManagementSystem_badges order by lastName, firstName";
|
||||
my $p = WebGUI::Paginator->new($self->session,$self->getUrl('func=manageRegistrants'),50);
|
||||
|
|
@ -3459,10 +3461,10 @@ sub www_manageDiscountPasses {
|
|||
|
||||
return $self->session->privilege->insufficient unless ($self->canAddEvents);
|
||||
my $i18n = WebGUI::International->new($self->session,'Asset_EventManagementSystem');
|
||||
|
||||
|
||||
my $output;
|
||||
my $sth = $self->session->db->read("select * from EventManagementSystem_discountPasses order by name");
|
||||
|
||||
|
||||
if ($sth->rows) {
|
||||
while (my $data = $sth->hashRef) {
|
||||
$output .= "<div>";
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@ These methods are available from this class:
|
|||
=cut
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 configurationForm
|
||||
|
||||
The configuration form part for this object. See WebGUI::Image::Graph for
|
||||
|
|
@ -44,9 +45,9 @@ sub configurationForm {
|
|||
my $self = shift;
|
||||
|
||||
my $i18n = WebGUI::International->new($self->session, 'Image_Graph_XYGraph');
|
||||
|
||||
|
||||
$configForms = $self->SUPER::configurationForm;
|
||||
|
||||
|
||||
$f = WebGUI::HTMLForm->new($self->session);
|
||||
$f->trClass('Graph_XYGraph');
|
||||
$f->integer(
|
||||
|
|
@ -108,12 +109,13 @@ sub configurationForm {
|
|||
label => $i18n->get('y granularity'),
|
||||
hoverHelp => $i18n->get('y granularity description'),
|
||||
);
|
||||
|
||||
|
||||
$configForms->{'graph_xygraph'} = $f->printRowsOnly;
|
||||
return $configForms;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 draw
|
||||
|
||||
Draws the graph.
|
||||
|
|
@ -129,7 +131,7 @@ sub draw {
|
|||
x=> $maxYLabelWidth + 2*$self->getLabelOffset,
|
||||
y=> $self->getLabelOffset
|
||||
});
|
||||
|
||||
|
||||
$self->drawRulers if ($self->showRulers);
|
||||
$self->drawGraph;
|
||||
$self->drawAxis if ($self->showAxis);
|
||||
|
|
@ -137,6 +139,7 @@ sub draw {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 drawAxis
|
||||
|
||||
Draws the axis.
|
||||
|
|
@ -158,6 +161,7 @@ sub drawAxis {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 drawLabels
|
||||
|
||||
Draws the labels.
|
||||
|
|
@ -201,6 +205,7 @@ sub drawLabels {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head drawRulers
|
||||
|
||||
Draws the rulers.
|
||||
|
|
@ -225,6 +230,7 @@ sub drawRulers {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 formNamespace
|
||||
|
||||
Extends the form namespace for this object. See WebGUI::Image::Graph for
|
||||
|
|
@ -239,6 +245,7 @@ sub formNamespace {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 getAxisColor
|
||||
|
||||
Returns the color triplet for the axis. Defaults to '#222222'.
|
||||
|
|
@ -250,8 +257,9 @@ sub getAxisColor {
|
|||
|
||||
return $self->{_axisProperties}->{axisColor} || '#222222';
|
||||
}
|
||||
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 getChartHeight
|
||||
|
||||
Returns the height of the chart. Defaults to 200.
|
||||
|
|
@ -265,6 +273,7 @@ sub getChartHeight {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 getChartOffset
|
||||
|
||||
Returns the coordinates of the top-left corner of the chart. he coordinates are
|
||||
|
|
@ -279,6 +288,7 @@ sub getChartOffset {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 getChartWidth
|
||||
|
||||
Returns the width of the chart. Defaults to 200.
|
||||
|
|
@ -292,6 +302,7 @@ sub getChartWidth {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 getConfiguration
|
||||
|
||||
Returns a configuration hashref. See WebGUI::Image::Graph for documentation.
|
||||
|
|
@ -310,11 +321,12 @@ sub getConfiguration {
|
|||
$config->{xyGraph_drawRulers} = $self->showRulers;
|
||||
$config->{xyGraph_drawMode} = $self->getDrawMode;
|
||||
$config->{xyGraph_yGranularity} = $self->getYGranularity;
|
||||
|
||||
|
||||
return $config;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 getDrawMode
|
||||
|
||||
Returns the drawmode. Currently supported are 'stacked' and 'sideBySide'.
|
||||
|
|
@ -329,6 +341,7 @@ sub getDrawMode {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 getPixelsPerUnit
|
||||
|
||||
Returns the number of pixels that correspond with one unit of the dataset
|
||||
|
|
@ -338,11 +351,12 @@ values.
|
|||
|
||||
sub getPixelsPerUnit {
|
||||
my $self = shift;
|
||||
|
||||
|
||||
return $self->getChartHeight / $self->getYRange;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 getRulerColor
|
||||
|
||||
Returns the color triplet of the rulers in the graph. Defaults to '#777777'.
|
||||
|
|
@ -356,6 +370,7 @@ sub getRulerColor {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 getYGranularity
|
||||
|
||||
Returns the granularity of the labels and rulers in the Y direction. Defaults to
|
||||
|
|
@ -371,6 +386,7 @@ sub getYGranularity {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 getYLabels
|
||||
|
||||
Returns an arrayref containing the labels for the Y axis.
|
||||
|
|
@ -389,6 +405,7 @@ sub getYLabels {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 getYRange
|
||||
|
||||
Returns the maxmimal value of the range that contains a whole number of times
|
||||
|
|
@ -403,6 +420,7 @@ sub getYRange {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 setAxisColor ( color )
|
||||
|
||||
Sets the color of the axis to the supplied value.
|
||||
|
|
@ -417,11 +435,12 @@ form: #ffffff.
|
|||
sub setAxisColor {
|
||||
my $self = shift;
|
||||
my $color = shift;
|
||||
|
||||
|
||||
$self->{_axisProperties}->{axisColor} = $color;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 setChartHeight ( height )
|
||||
|
||||
Sets the height of the chart to the specified value.
|
||||
|
|
@ -440,6 +459,7 @@ sub setChartHeight {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 setChartOffset ( location )
|
||||
|
||||
Sets the location of the top-left corner of the graph within the image.
|
||||
|
|
@ -459,6 +479,7 @@ sub setChartOffset {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 setChartHeight ( width )
|
||||
|
||||
Sets the width of the chart to the specified value.
|
||||
|
|
@ -477,6 +498,7 @@ sub setChartWidth {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 setConfiguration ( config )
|
||||
|
||||
Applies the settings in the given configuration hash. See WebGUI::Image::Graph
|
||||
|
|
@ -503,11 +525,12 @@ sub setConfiguration {
|
|||
$self->setYGranularity($config->{xyGraph_yGranularity});
|
||||
$self->setAxisColor($config->{xyGraph_axisColor});
|
||||
$self->setRulerColor($config->{xyGraph_rulerColor});
|
||||
|
||||
|
||||
return $config;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 setDrawMode ( mode )
|
||||
|
||||
Set the way the datasets are drawn. Currently supported are 'stacked' and
|
||||
|
|
@ -532,6 +555,7 @@ sub setDrawMode {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 setRulerColor ( color )
|
||||
|
||||
Set the color of the rulers.
|
||||
|
|
@ -546,11 +570,12 @@ The triplet of the desired ruler color. Must be in the following format:
|
|||
sub setRulerColor {
|
||||
my $self = shift;
|
||||
my $color = shift;
|
||||
|
||||
|
||||
$self->{_axisProperties}->{rulerColor} = $color;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 setShowAxis ( boolean )
|
||||
|
||||
Set whether or not to draw the axis.
|
||||
|
|
@ -569,6 +594,7 @@ sub setShowAxis {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 setShowLabels ( boolean )
|
||||
|
||||
Set whether or not to draw the labels.
|
||||
|
|
@ -587,6 +613,7 @@ sub setShowLabels {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 setShowRulers ( boolean )
|
||||
|
||||
Set whether or not to draw the rulers.
|
||||
|
|
@ -605,6 +632,7 @@ sub setShowRulers {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 setYGranularity ( value )
|
||||
|
||||
Sets the y granularity. See getYGranularity for explanation of this concept.
|
||||
|
|
@ -618,11 +646,12 @@ The granularity in dataset units, not pixels.
|
|||
sub setYGranularity {
|
||||
my $self = shift;
|
||||
my $granularity = shift;
|
||||
|
||||
|
||||
$self->{_properties}->{yGranularity} = $granularity;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 showAxis
|
||||
|
||||
Returns a boolean indicating whether to draw the axis.
|
||||
|
|
@ -637,6 +666,7 @@ sub showAxis {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 showLabels
|
||||
|
||||
Returns a boolean indicating whether to draw the labels.
|
||||
|
|
@ -651,6 +681,7 @@ sub showLabels {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 showRulers
|
||||
|
||||
Returns a boolean indicating whether to draw the rulers.
|
||||
|
|
|
|||
|
|
@ -37,6 +37,7 @@ These methods are available from this class:
|
|||
=cut
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 configurationForm
|
||||
|
||||
Creates the configuration form for this plugin. See WebGUI::Image::Graph for
|
||||
|
|
@ -48,7 +49,7 @@ sub configurationForm {
|
|||
my $self = shift;
|
||||
|
||||
my $i18n = WebGUI::International->new($self->session, 'Image_Graph_XYGraph_Bar');
|
||||
|
||||
|
||||
my $configForms = $self->SUPER::configurationForm;
|
||||
my $f = WebGUI::HTMLForm->new($self->session);
|
||||
$f->trClass('Graph_XYGraph_Bar');
|
||||
|
|
@ -66,11 +67,12 @@ my $f = WebGUI::HTMLForm->new($self->session);
|
|||
);
|
||||
|
||||
$configForms->{'graph_xygraph_bar'} = $f->printRowsOnly;
|
||||
|
||||
|
||||
return $configForms;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 drawBar ( bar, location, barWidth )
|
||||
|
||||
Draws a bar defined by bar and with width barWidth at location.
|
||||
|
|
@ -98,7 +100,7 @@ sub drawBar {
|
|||
my $barWidth = shift;
|
||||
|
||||
my $barHeight = $bar->{height} * $self->getPixelsPerUnit;
|
||||
|
||||
|
||||
$self->image->Draw(
|
||||
primitive => 'Path',
|
||||
stroke => $bar->{strokeColor},
|
||||
|
|
@ -112,6 +114,7 @@ sub drawBar {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 drawGraph
|
||||
|
||||
Draws all the bars.
|
||||
|
|
@ -130,7 +133,7 @@ sub drawGraph {
|
|||
|
||||
my $barWidth = $groupWidth;
|
||||
$barWidth = ($groupWidth - ($numberOfDatasets - 1) * $self->getBarSpacing) / $numberOfDatasets if ($self->getDrawMode eq 'sideBySide');
|
||||
|
||||
|
||||
$location{x} = $self->getChartOffset->{x} ;
|
||||
$location{y} = $self->getChartOffset->{y} + $self->getChartHeight;
|
||||
foreach $currentBar (@{$self->{_bars}}) {
|
||||
|
|
@ -139,12 +142,13 @@ sub drawGraph {
|
|||
} else {
|
||||
$self->drawSideBySideBar($currentBar, \%location, $barWidth);
|
||||
}
|
||||
|
||||
|
||||
$location{x} += $groupWidth + $self->getGroupSpacing;
|
||||
}
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 drawSideBySide ( bars, location, barWidth )
|
||||
|
||||
Draws the bars in side by side mode. Meaning that per datsetindex the bars
|
||||
|
|
@ -172,7 +176,7 @@ sub drawSideBySideBar {
|
|||
my $barWidth = shift;
|
||||
|
||||
my %thisLocation = %$location;
|
||||
|
||||
|
||||
foreach (@$bars) {
|
||||
$self->drawBar($_, \%thisLocation, $barWidth);
|
||||
$thisLocation{x} += $barWidth + $self->getBarSpacing;
|
||||
|
|
@ -180,6 +184,7 @@ sub drawSideBySideBar {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 drawStacked ( bars, location, barWidth )
|
||||
|
||||
Draws the bars in side by side mode. Meaning that per datset-index the bars
|
||||
|
|
@ -213,10 +218,11 @@ sub drawStackedBar {
|
|||
$self->drawBar($_, \%thisLocation, $barWidth);
|
||||
$thisLocation{y} -= $_->{height} * $self->getPixelsPerUnit;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 formNamespace
|
||||
|
||||
Returns the form namespace of this plugin. See WegBUI::Image::Graph for
|
||||
|
|
@ -231,6 +237,7 @@ sub formNamespace {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 getAnchorSpacing
|
||||
|
||||
Returns the distance in pixels between two anchors on the x axis that define teh
|
||||
|
|
@ -252,6 +259,7 @@ sub getAnchorSpacing {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 getBarSpacing
|
||||
|
||||
Returns the width of the gap between two bars within a group in pixels.
|
||||
|
|
@ -265,6 +273,7 @@ sub getBarSpacing {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 getConfiguration
|
||||
|
||||
Returns the configuration hashref for this plugin. Refer to WebGUI::IMage::Graph
|
||||
|
|
@ -279,11 +288,12 @@ sub getConfiguration {
|
|||
|
||||
$config->{xyGraph_bar_barSpacing} = $self->getBarSpacing;
|
||||
$config->{xyGraph_bar_groupSpacing} = $self->getGroupSpacing;
|
||||
|
||||
|
||||
return $config;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 getGroupSpacing
|
||||
|
||||
Returns the width of the gap between two groups of bars in pixels.
|
||||
|
|
@ -297,6 +307,7 @@ sub getGroupSpacing {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 getFirstAnchorLocation
|
||||
|
||||
Returns a hashref containing the location of the leftmost x-axis anchor.
|
||||
|
|
@ -314,6 +325,7 @@ sub getFirstAnchorLocation {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 processDataset
|
||||
|
||||
Processes the dataset. Used by drawGraph.
|
||||
|
|
@ -325,7 +337,7 @@ sub processDataSet {
|
|||
my $self = shift;
|
||||
|
||||
my $palette = $self->getPalette;
|
||||
|
||||
|
||||
my $maxElements = List::Util::max(map {scalar @$_} @{$self->{_datasets}});
|
||||
my $numberOfDatasets = scalar @{$self->{_datasets}};
|
||||
|
||||
|
|
@ -343,6 +355,7 @@ sub processDataSet {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 setBarSpacing ( gap )
|
||||
|
||||
Sets the distance between two bars in a group in pixels.
|
||||
|
|
@ -356,11 +369,12 @@ The distance in pixels.
|
|||
sub setBarSpacing {
|
||||
my $self = shift;
|
||||
my $gap = shift;
|
||||
|
||||
|
||||
$self->{_barProperties}->{barSpacing} = $gap;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 setConfiguration ( config )
|
||||
|
||||
Applies the given configuration hash to this plugin. See WebGUI::Image::Graph
|
||||
|
|
@ -380,11 +394,12 @@ sub setConfiguration {
|
|||
|
||||
$self->setBarSpacing($config->{xyGraph_bar_barSpacing});
|
||||
$self->setGroupSpacing($config->{xyGraph_bar_groupSpacing});
|
||||
|
||||
|
||||
return $config;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 setGroupSpacing ( gap )
|
||||
|
||||
Sets the distance between two groups of bars in pixels.
|
||||
|
|
@ -398,7 +413,7 @@ The distance in pixels.
|
|||
sub setGroupSpacing {
|
||||
my $self = shift;
|
||||
my $gap = shift;
|
||||
|
||||
|
||||
$self->{_barProperties}->{groupSpacing} = $gap;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -29,6 +29,7 @@ These methods are available from this class:
|
|||
=cut
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 drawGraph
|
||||
|
||||
Draws all the lines.
|
||||
|
|
@ -43,7 +44,7 @@ sub drawGraph {
|
|||
|
||||
my $numberOfGroups = List::Util::max(map {scalar @$_} @{$self->{_datasets}});
|
||||
my $interval = $self->getChartWidth / ($numberOfGroups - 1);
|
||||
|
||||
|
||||
%location = %{$self->getChartOffset};
|
||||
$location{y} += $self->getChartHeight;
|
||||
|
||||
|
|
@ -53,6 +54,7 @@ sub drawGraph {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 drawLine ( line, location, interval )
|
||||
|
||||
Draws a bar defined by bar and with width barWidth at location.
|
||||
|
|
@ -89,10 +91,10 @@ sub drawLine {
|
|||
foreach (@{$line->{dataset}}) {
|
||||
$path .= ($dataCounter++) ? " L " : " M ";
|
||||
$path .= $currentLocation{x}.",".($currentLocation{y} - $_*$self->getPixelsPerUnit);
|
||||
|
||||
|
||||
$currentLocation{x} += $interval;
|
||||
}
|
||||
|
||||
|
||||
$self->image->Draw(
|
||||
primitive => 'Path',
|
||||
stroke => $line->{strokeColor},
|
||||
|
|
@ -102,6 +104,7 @@ sub drawLine {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 formNamespace
|
||||
|
||||
Returns the form namespace of this plugin. See WegBUI::Image::Graph for
|
||||
|
|
@ -116,6 +119,7 @@ sub formNamespace {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 getAnchorSpacing
|
||||
|
||||
Returns the distance in pixels between two anchors on the x axis that define teh
|
||||
|
|
@ -137,6 +141,7 @@ sub getAnchorSpacing {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 getFirstAnchorLocation
|
||||
|
||||
Returns a hashref containing the location of the leftmost x-axis anchor.
|
||||
|
|
@ -154,6 +159,7 @@ sub getFirstAnchorLocation {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 processDataset
|
||||
|
||||
Processes the dataset. Used by drawGraph.
|
||||
|
|
@ -163,7 +169,7 @@ Processes the dataset. Used by drawGraph.
|
|||
sub processDataSet {
|
||||
my ($barProperties);
|
||||
my $self = shift;
|
||||
|
||||
|
||||
my $palette = $self->getPalette;
|
||||
foreach (@{$self->{_datasets}}) {
|
||||
push (@{$self->{_lines}}, {
|
||||
|
|
|
|||
|
|
@ -81,6 +81,7 @@ sub _submenu {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 www_copyLDAPLink ( $session )
|
||||
|
||||
Copies the requested LDAP link in the form variable C<llid>. Adds the words
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ sub getRequiredProfileFields {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 isDuplicateEmail ( )
|
||||
|
||||
Checks the value of the email address passed in to see if it is
|
||||
|
|
@ -206,6 +207,7 @@ sub www_editProfile {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 www_editProfileSave ( $session )
|
||||
|
||||
Validates all data submitted by www_editProfile. If errors or warnings are present,
|
||||
|
|
@ -272,7 +274,7 @@ sub www_viewProfile {
|
|||
if ($session->user->userId eq $session->form->process("uid")) {
|
||||
$vars->{'profile.accountOptions'} = WebGUI::Operation::Shared::accountOptions($session);
|
||||
}
|
||||
|
||||
|
||||
return $session->style->userStyle(WebGUI::Asset::Template->new($session,"PBtmpl0000000000000052")->process($vars));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -42,6 +42,7 @@ sub www_genesis {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 www_setup ( )
|
||||
|
||||
Initial setup for a brand new WebGUI install. Sets the administrator name,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue