From a378270a809759c8a62d3ca67dd556bed2d59278 Mon Sep 17 00:00:00 2001 From: JT Smith Date: Sun, 29 Jan 2006 19:48:37 +0000 Subject: [PATCH] test of the bucket brigade --- lib/WebGUI/Asset/Wobject/Layout.pm | 99 +++++++++++++++++++++++++++++- lib/WebGUI/Asset/Wobject/Search.pm | 11 +++- 2 files changed, 107 insertions(+), 3 deletions(-) diff --git a/lib/WebGUI/Asset/Wobject/Layout.pm b/lib/WebGUI/Asset/Wobject/Layout.pm index f35c5f637..0a2c3c5d6 100644 --- a/lib/WebGUI/Asset/Wobject/Layout.pm +++ b/lib/WebGUI/Asset/Wobject/Layout.pm @@ -135,7 +135,7 @@ sub getEditForm { #------------------------------------------------------------------- -sub view { +sub viewOriginal { my $self = shift; my $children = $self->getLineage( ["children"], { returnObjects=>1, excludeClasses=>["WebGUI::Asset::Wobject::Layout"] }); my %vars; @@ -217,6 +217,94 @@ sub view { return $self->processTemplate(\%vars,$self->get("templateId")); } +#------------------------------------------------------------------- +sub view { + my $self = shift; + my $children = $self->getLineage( ["children"], { returnObjects=>1, excludeClasses=>["WebGUI::Asset::Wobject::Layout"] }); + my %vars; + # I'm sure there's a more efficient way to do this. We'll figure it out someday. + my @positions = split(/\./,$self->get("contentPositions")); + my @hidden = split("\n",$self->get("assetsToHide")); + my @placeHolder = (); + my $i = 1; + my $template= WebGUI::Asset->newByDynamicClass($self->session,$self->get("templateId"))->get("template"); + my $numPositions = 1; + foreach my $j (2..15) { + $numPositions = $j if $template =~ m/position${j}\_loop/; + } + my @found; + my $showPerformance = $self->session->errorHandler->canShowPerformanceIndicators(); + foreach my $position (@positions) { + my @assets = split(",",$position); + foreach my $asset (@assets) { + foreach my $child (@{$children}) { + if ($asset eq $child->getId) { + unless (isIn($asset,@hidden) || !($child->canView)) { + $self->session->style->setRawHeadTags($child->getExtraHeadTags); + push(@placeHolder, $child); + if ($i > $numPositions) { + push(@{$vars{"position1_loop"}},{ + id=>$child->getId, + content=>"~~~" + }); + } else { + push(@{$vars{"position".$i."_loop"}},{ + id=>$child->getId, + content=>"~~~" + }); + } + } + push(@found, $child->getId); + } + } + } + $i++; + } + # deal with unplaced children + foreach my $child (@{$children}) { + unless (isIn($child->getId, @found)||isIn($child->getId,@hidden)) { + if ($child->canView) { + push(@placeHolder, $child); + push(@{$vars{"position1_loop"}},{ + id=>$child->getId, + content=>"~~~" + }); + } + } + } + $vars{showAdmin} = ($self->session->var->get("adminOn") && $self->canEdit); + if ($vars{showAdmin}) { + # under normal circumstances we don't put HTML stuff in our code, but this will make it much easier + # for end users to work with our templates + $self->session->style->setScript($self->session->config->get("extrasURL")."/draggable.js",{ type=>"text/javascript" }); + $self->session->style->setLink($self->session->config->get("extrasURL")."/draggable.css",{ type=>"text/css", rel=>"stylesheet", media=>"all" }); + $self->session->style->setRawHeadTags(' + + '); + $vars{"dragger.icon"} = $self->session->icon->drag(); + $vars{"dragger.init"} = ' + + + '; + } + my @parts = split("~~~",$self->processTemplate(\%vars,$self->get("templateId"))); + foreach my $part (@parts) { + print $part; + my $asset = shift @placeHolder; + if (defined $asset) { + my $t = [Time::HiRes::gettimeofday()] if ($showPerformance); + print $asset->view; + print "Asset:".Time::HiRes::tv_interval($t) if ($showPerformance); + } + } +} + sub www_setContentPositions { my $self = shift; return $self->session->privilege->insufficient() unless ($self->canEdit); @@ -226,6 +314,15 @@ sub www_setContentPositions { return "Map set: ".$self->session->form->process("map"); } +sub www_view { + my $self = shift; + $self->session->http->getHeader; + my $style = $self->processStyle("~~~"); + my ($head, $foot) = split("~~~",$style); + print $head; + $self->view; + print $foot; +} 1; diff --git a/lib/WebGUI/Asset/Wobject/Search.pm b/lib/WebGUI/Asset/Wobject/Search.pm index 2df51f80c..b3a048745 100644 --- a/lib/WebGUI/Asset/Wobject/Search.pm +++ b/lib/WebGUI/Asset/Wobject/Search.pm @@ -78,7 +78,7 @@ sub definition { tab=>"properties", hoverHelp=>$i18n->get("class limiter description"), label=>$i18n->get("class limiter"), - options=>$session->db->buildHashRef("select distinct()") + options=>$session->db->buildHashRef("select distinct(className) from asset") ); push(@{$definition}, { assetName=>$i18n->get('assetName'), @@ -102,8 +102,15 @@ returns the output. sub view { my $self = shift; + my $i18n = WebGUI::International->new($self->session, "Asset_Search"); my %var; - return $self->processTemplate(\%var, $templateId); + $var{'form_header'} = WebGUI::Form::formHeader($self->session, {action=>$self->getUrl}) + .WebGUI::Form::hidden($self->session,{name=>"doit", value=>"1"}); + $var{'form_footer'} = WebGUI::Form::formFooter($self->session); + $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); } 1;