Beginnings of templated view method for Event Manager

This commit is contained in:
Roy Johnson 2006-02-02 18:18:51 +00:00
parent 9d4eb51fb2
commit 372d376b43
2 changed files with 57 additions and 9 deletions

View file

@ -101,14 +101,30 @@ sub updateTemplates {
#------------------------------------------------- #-------------------------------------------------
sub addEMSTemplates { sub addEMSTemplates {
print "\tAdding Event Management System Templates.\n" unless ($quiet); print "\tAdding Event Management System Templates.\n" unless ($quiet);
my $template = <<EOT1; my $template = <<EOT1;
<a name="id<tmpl_var assetId>" id="id<tmpl_var assetId>"></a> <a name="id<tmpl_var assetId>" id="id<tmpl_var assetId>"></a>
<tmpl_if session.var.adminOn> <tmpl_if session.var.adminOn>
<p><tmpl_var controls></p> <p><tmpl_var controls></p>
</tmpl_if> </tmpl_if>
<tmpl_if canManageEvents>
<a href='<tmpl_var manageEvents.url>'><tmpl_var manageEvents.label></a>
</tmpl_if>
<tmpl_loop events_loop>
<tmpl_var title>&nbsp;<tmpl_var description>&nbsp;<tmpl_var price><br>
</tmpl_loop>
<tmpl_var paginateBar>
EOT1 EOT1
my $template2 = <<EOT2;
<h1><tmpl_var title></h1><br>
<tmpl_var description>&nbsp;<tmpl_var price><br>
EOT2
my $in = WebGUI::Asset->getImportNode($session); my $in = WebGUI::Asset->getImportNode($session);
$in->addChild({ $in->addChild({
className=>'WebGUI::Asset::Template', className=>'WebGUI::Asset::Template',
@ -116,6 +132,13 @@ EOT1
namespace=>'EventManagementSystem', namespace=>'EventManagementSystem',
}, "EventManagerTmpl000001" }, "EventManagerTmpl000001"
); );
$in->addChild({
className=>'WebGUI::Asset::Template',
template=>$template2,
namespace=>'EventManagementSystem_product',
}, "EventManagerTmpl000002"
);
} }
#------------------------------------------------- #-------------------------------------------------

View file

@ -434,7 +434,7 @@ sub www_editEvent {
$f->hidden( -name=>"func",-value=>"editEventSave" ); $f->hidden( -name=>"func",-value=>"editEventSave" );
$f->hidden( -name=>"pid", -value=>$pid ); $f->hidden( -name=>"pid", -value=>$pid );
if ($self->session->user->isInGroup($self->get("groupToApproveEvents"))) { if ($self->session->user->isInGroup($self->get("groupToApproveEvents")) && $pid ne "new") {
unless ($self->eventIsApproved($pid)) { unless ($self->eventIsApproved($pid)) {
$f->readOnly( $f->readOnly(
-value => sprintf "<a href='%s'>%s</a>", $self->getUrl("func=approveEvent;pid=".$pid), $i18n->get('add/edit approve event'), -value => sprintf "<a href='%s'>%s</a>", $self->getUrl("func=approveEvent;pid=".$pid), $i18n->get('add/edit approve event'),
@ -465,7 +465,7 @@ sub www_editEvent {
$f->template( $f->template(
-name => "templateId", -name => "templateId",
-namespace => "product", -namespace => "EventManagementSystem_product",
-value => $self->session->form->get("templateId") || $event->{templateId}, -value => $self->session->form->get("templateId") || $event->{templateId},
-hoverHelp => $i18n->get('add/edit event template description'), -hoverHelp => $i18n->get('add/edit event template description'),
-label => "Event Template" #$i18n->get('add/edit event template') -label => "Event Template" #$i18n->get('add/edit event template')
@ -748,16 +748,41 @@ sub view {
my %var; my %var;
# Get the products available for sale for this page # Get the products available for sale for this page
my $sql = "select p.productId, p.title, p.description, p.price, e.approved from products as p, EventManagementSystem_products as e my $sql = "select p.productId, p.title, p.description, p.price, p.templateId, e.approved
from products as p, EventManagementSystem_products as e
where where
p.productId = e.productId and approved=1 p.productId = e.productId and approved=1
and e.assetId =".$self->session->db->quote($self->get("assetId")); and e.assetId =".$self->session->db->quote($self->get("assetId"));
#my $p = WebGUI::Paginator->new($self->session,$self->getUrl,$self->get("paginateAfter")); my $p = WebGUI::Paginator->new($self->session,$self->getUrl,$self->get("paginateAfter"));
#$p->setDataByQuery($sql); $p->setDataByQuery($sql);
#$var{'events_loop'} = $p->getPage; my $eventData = $p->getPageData;
#$p->appendTemplateVars(\%var); my @events;
$var{'events_loop'} = $self->session->db->quickHash($sql);
#We are getting each events information, passing it to the *events* template and processing it
#The html returned from each events template is returned to the Event Manager Display Template for arranging
#how the events are displayed in relation to one another.
foreach my $event (@$eventData) {
my %eventFields;
$eventFields{'title'} = $event->{'title'};
$eventFields{'description'} = $event->{'description'};
$eventFields{'price'} = $event->{'price'};
push (@events, {'event' => $self->processTemplate(\%eventFields, $event->{'templateId'}) });
}
$var{'events_loop'} = \@events;
$var{'paginateBar'} = $p->getBarTraditional;
$var{'manageEvents.url'} = $self->getUrl('func=manageEvents');
$var{'manageEvents.label'} = "Manage Events";
if ($self->session->user->isInGroup($self->get("groupToManageEvents"))) {
$var{'canManageEvents'} = 1;
}
else {
$var{'canManageEvents'} = 0;
}
$p->appendTemplateVars(\%var);
my $templateId = $self->get("displayTemplateId"); my $templateId = $self->get("displayTemplateId");
return $self->processTemplate(\%var, undef, $self->{_viewTemplate}); return $self->processTemplate(\%var, undef, $self->{_viewTemplate});