finished converting view() methods to have a prepareView() companion.
This commit is contained in:
parent
6c4ae02f34
commit
bb263b4777
12 changed files with 208 additions and 28 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
-------------------
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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});
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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});
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -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});
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -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});
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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});
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -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});
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -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});
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue