finished converting view() methods to have a prepareView() companion.

This commit is contained in:
JT Smith 2006-01-30 23:54:45 +00:00
parent 6c4ae02f34
commit bb263b4777
12 changed files with 208 additions and 28 deletions

View file

@ -7,6 +7,10 @@
- Added "201" http status to various entity creation responses.
- Replaced the old search engine system with a brand new one, that is more
powerful, easier to use, and more flexible.
- Added output chunking as an option for asset www_ methods. The net effect
of this provides a fairly significant performance increase to what would
otherwise be slow or complex pages. More details in migration.txt.
6.8.6
- Added logic to deal with case sensitivity and whitespace problems in LDAP

View file

@ -194,6 +194,18 @@ In 6.8 the long depricated method processMacros() was removed. No one should
be using this any longer anyway, but we thought we'd warn you anyway.
1.8 Output Chunking
Starting in 6.9 WebGUI www_ asset methods are capable of having full control
over the output buffer. They can use $session->output->print() to send chunks
of content back to the browser before the page is entirely processed. The
advantage here is that the page appears to load more quickly to the end user.
The disadvantage is that you must set up any HTTP and HTML headers before you
start to send any content. The view() method now has a companion method called
prepareView() in which HTML and HTTP headers must be set. See any of the
existing assets and wobjects for implementation details.
2. Macro Migration
-------------------

View file

@ -516,6 +516,32 @@ sub getRecordTemplateVars {
#-------------------------------------------------------------------
=head2 prepareView ( )
See WebGUI::Asset::prepareView() for details.
=cut
sub prepareView {
my $self = shift;
$self->SUPER::prepareView();
# this one is so nutz that we don't even bother preparing, we just execute the whole thing
my $passedVars = shift;
##Priority encoding
if ( $self->session->form->process("mode") eq "form") {
$self->{_view} = $self->viewForm($passedVars);
} elsif ( $self->session->form->process("mode") eq "list") {
$self->{_view} = $self->viewList;
} elsif( $self->defaultViewForm ) {
$self->{_view} = $self->viewForm($passedVars);
} else {
$self->{_view} = $self->viewList();
}
}
#-------------------------------------------------------------------
sub processPropertiesFromFormPost {
my $self = shift;
@ -646,21 +672,7 @@ sub sendEmail {
#-------------------------------------------------------------------
sub view {
my $self = shift;
my $passedVars = shift;
my $var;
##Priority encoding
if ( $self->session->form->process("mode") eq "form") {
return $self->viewForm($passedVars);
}
elsif ( $self->session->form->process("mode") eq "list") {
return $self->viewList;
}
elsif( $self->defaultViewForm ) {
return $self->viewForm($passedVars);
}
else {
return $self->viewList();
}
return $self->{_view}; # see prepareView()
}
#-------------------------------------------------------------------
@ -676,9 +688,9 @@ sub viewList {
sub viewForm {
my $self = shift;
my $passedVars = shift;
my $var;
$self->session->style->setLink($self->session->config->get("extrasURL").'/tabs/tabs.css', {"type"=>"text/css"});
$self->session->style->setScript($self->session->config->get("extrasURL").'/tabs/tabs.js', {"type"=>"text/javascript"});
my $var;
$var->{entryId} = $self->session->form->process("entryId") if ($self->canEdit);
$var = $passedVars || $self->getRecordTemplateVars($var);
return $self->processTemplate($var,$self->get("templateId"));
@ -1100,7 +1112,8 @@ sub www_process {
if ($hadErrors && !$updating) {
$self->session->db->write("delete from DataForm_entryData where DataForm_entryId=".$self->session->db->quote($entryId));
$self->deleteCollateral("DataForm_entry","DataForm_entryId",$entryId);
$self->processStyle($self->view($var));
$self->prepareView($var);
$self->processStyle($self->view);
} else {
$self->sendEmail($var) if ($self->get("mailData") && !$updating);
return $self->session->style->process($self->processTemplate($var,$self->get("acknowlegementTemplateId")),$self->get("styleTemplateId")) if $self->defaultViewForm;

View file

@ -295,6 +295,23 @@ sub indexContent {
}
#-------------------------------------------------------------------
=head2 prepareView ( )
See WebGUI::Asset::prepareView() for details.
=cut
sub prepareView {
my $self = shift;
$self->SUPER::prepareView();
my $template = WebGUI::Asset::Template->new($self->session, $self->get("templateId"));
$template->prepare;
$self->{_viewTemplate} = $template;
}
#-------------------------------------------------------------------
sub purge {
my $self = shift;
@ -720,7 +737,6 @@ sub www_moveSpecificationUp {
#-------------------------------------------------------------------
sub view {
my $self = shift;
$self->logView() if ($self->session->setting->get("passiveProfilingEnabled"));
my (%data, $sth, $file, $segment, %var, @featureloop, @benefitloop, @specificationloop, @accessoryloop, @relatedloop);
tie %data, 'Tie::CPHash';
my $brochure = $self->get("brochure");
@ -863,7 +879,7 @@ sub view {
}
$sth->finish;
$var{relatedproduct_loop} = \@relatedloop;
return $self->processTemplate(\%var, $self->get("templateId"));
return $self->processTemplate(\%var, undef, $self->{_viewTemplate});
}
1;

View file

@ -234,6 +234,23 @@ sub getEditForm {
}
#-------------------------------------------------------------------
=head2 prepareView ( )
See WebGUI::Asset::prepareView() for details.
=cut
sub prepareView {
my $self = shift;
$self->SUPER::prepareView();
my $template = WebGUI::Asset::Template->new($self->session, $self->get("templateId"));
$template->prepare;
$self->{_viewTemplate} = $template;
}
#-------------------------------------------------------------------
sub view {
my $self = shift;
@ -249,7 +266,7 @@ sub view {
# Add debug loop to template vars
$var->{'debug_loop'} = $self->{_debug_loop};
#use Data::Dumper; return '<pre>'.Dumper($var).'</pre>';
return $self->processTemplate($var, $self->get("templateId"));
return $self->processTemplate($var, undef, $self->{_viewTemplate});
}
#-------------------------------------------------------------------

View file

@ -91,6 +91,23 @@ sub definition {
return $class->SUPER::definition($session, $definition);
}
#-------------------------------------------------------------------
=head2 prepareView ( )
See WebGUI::Asset::prepareView() for details.
=cut
sub prepareView {
my $self = shift;
$self->SUPER::prepareView();
my $template = WebGUI::Asset::Template->new($self->session, $self->get("templateId"));
$template->prepare;
$self->{_viewTemplate} = $template;
}
#-------------------------------------------------------------------
=head2 view ( )
@ -110,7 +127,7 @@ sub view {
$var{'form_submit'} = WebGUI::Form::submit($self->session, {value=>$i18n->get("search")});
$var{'form_keywords'} = WebGUI::Form::text($self->session, {name=>"keywords", value=>$self->session->form->get("keywords")});
# return $self->processTemplate(\%var, $templateId);
return $self->processTemplate(\%var, undef, $self->{_viewTemplate});
}
1;

View file

@ -357,6 +357,23 @@ sub getEditForm {
return $tabform;
}
#-------------------------------------------------------------------
=head2 prepareView ( )
See WebGUI::Asset::prepareView() for details.
=cut
sub prepareView {
my $self = shift;
$self->SUPER::prepareView();
my $template = WebGUI::Asset::Template->new($self->session, $self->get("templateId"));
$template->prepare;
$self->{_viewTemplate} = $template;
}
#-------------------------------------------------------------------
=head2 purge ( )
@ -416,7 +433,7 @@ sub view {
push (@stocks, $hash);
}
$var->{'stocks.loop'} = \@stocks;
return $self->processTemplate($var, $self->get("templateId"));
return $self->processTemplate($var, undef, $self->{_viewTemplate});
}
#-------------------------------------------------------------------

View file

@ -559,6 +559,23 @@ sub getUserId {
return $userId;
}
#-------------------------------------------------------------------
=head2 prepareView ( )
See WebGUI::Asset::prepareView() for details.
=cut
sub prepareView {
my $self = shift;
$self->SUPER::prepareView();
my $template = WebGUI::Asset::Template->new($self->session, $self->get("templateId"));
$template->prepare;
$self->{_viewTemplate} = $template;
}
#-------------------------------------------------------------------
sub processPropertiesFromFormPost {
my $self = shift;
@ -603,7 +620,6 @@ sub setAnswerType {
#-------------------------------------------------------------------
sub view {
my $self = shift;
$self->logView() if ($self->session->setting->get("passiveProfilingEnabled"));
my $i18n = WebGUI::International->new($self->session, 'Asset_Survey');
my $var = $self->getMenuVars;
$var->{'question.add.url'} = $self->getUrl('func=editQuestion;qid=new');
@ -689,7 +705,7 @@ sub view {
$var->{'mode.isSurvey'} = ($self->get("mode") eq "survey");
$var->{'survey.noprivs.label'} = $i18n->get(48);
$var->{'quiz.noprivs.label'} = $i18n->get(49);
return $self->processTemplate($var, $self->get("templateId"));
return $self->processTemplate($var, undef, $self->{_viewTemplate});
}
#-------------------------------------------------------------------

View file

@ -469,6 +469,23 @@ sub _get_items {
}
#-------------------------------------------------------------------
=head2 prepareView ( )
See WebGUI::Asset::prepareView() for details.
=cut
sub prepareView {
my $self = shift;
$self->SUPER::prepareView();
my $template = WebGUI::Asset::Template->new($self->session, $self->get("templateId"));
$template->prepare;
$self->{_viewTemplate} = $template;
}
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
=head2 view()
@ -519,7 +536,7 @@ sub view {
return $rss;
} else {
return $self->processTemplate(\%var,$self->get('templateId'));
return $self->processTemplate(\%var,undef, $self->{_viewTemplate});
}
}

View file

@ -215,6 +215,23 @@ sub getEditForm {
return $tabform;
}
#-------------------------------------------------------------------
=head2 prepareView ( )
See WebGUI::Asset::prepareView() for details.
=cut
sub prepareView {
my $self = shift;
$self->SUPER::prepareView();
my $template = WebGUI::Asset::Template->new($self->session, $self->get("templateId"));
$template->prepare;
$self->{_viewTemplate} = $template;
}
#-------------------------------------------------------------------
sub view {
my ( $arr_ref, # temp var holding params
@ -481,7 +498,7 @@ sub view {
}
$var{'results'} = \@result;
return $self->processTemplate(\%var, $self->get("templateId"));
return $self->processTemplate(\%var, undef, $self->{_viewTemplate});
}

View file

@ -183,6 +183,23 @@ sub _trim {
return $str;
}
#-------------------------------------------------------------------
=head2 prepareView ( )
See WebGUI::Asset::prepareView() for details.
=cut
sub prepareView {
my $self = shift;
$self->SUPER::prepareView();
my $template = WebGUI::Asset::Template->new($self->session, $self->get("templateId"));
$template->prepare;
$self->{_viewTemplate} = $template;
}
#-------------------------------------------------------------------
=head2 view ( )
@ -208,7 +225,7 @@ sub view {
push(@locs, $self->_getLocationData($array[$i]));
}
$var->{'ourLocations.loop'} = \@locs;
return $self->processTemplate($var, $self->get("templateId"));
return $self->processTemplate($var, undef, $self->{_viewTemplate});
}

View file

@ -112,6 +112,23 @@ sub getEditForm {
return $tabform;
}
#-------------------------------------------------------------------
=head2 prepareView ( )
See WebGUI::Asset::prepareView() for details.
=cut
sub prepareView {
my $self = shift;
$self->SUPER::prepareView();
my $template = WebGUI::Asset::Template->new($self->session, $self->get("templateId"));
$template->prepare;
$self->{_viewTemplate} = $template;
}
#-------------------------------------------------------------------
=head2 purge ( )
@ -149,7 +166,7 @@ sub view {
#This is an example of debugging code to help you diagnose problems.
#WebGUI::ErrorHandler::warn($self->get("templateId"));
return $self->processTemplate($var, $self->get("templateId"));
return $self->processTemplate($var, undef, $self->{_viewTemplate});
}
#-------------------------------------------------------------------