diff --git a/lib/WebGUI/Asset.pm b/lib/WebGUI/Asset.pm index f70152340..4c91ca3ce 100644 --- a/lib/WebGUI/Asset.pm +++ b/lib/WebGUI/Asset.pm @@ -21,6 +21,7 @@ use HTML::Packer; use Moose; use WebGUI::Types; +use Data::Dumper; use WebGUI::Definition::Asset; define assetName => ['asset', 'Asset']; @@ -644,24 +645,6 @@ sub cloneFromDb { #------------------------------------------------------------------- -=head2 drawExtraHeadTags ( ) - -Draw the Extra Head Tags. Done with a customDrawMethod because the Template -will override this. - -=cut - -sub drawExtraHeadTags { - my ($self, $params) = @_; - return WebGUI::Form::codearea($self->session, { - name => $params->{name}, - value => $self->get($params->{name}), - defaultValue => undef, - }); -} - -#------------------------------------------------------------------- - =head2 extraHeadTags ( value ) Returns extraHeadTags @@ -777,25 +760,6 @@ sub fixUrl { return $url; } - -#------------------------------------------------------------------- - -=head2 getAdminConsole ( ) - -Returns a reference to a WebGUI::AdminConsole object. - -=cut - -sub getAdminConsole { - my $self = shift; - unless (exists $self->{_adminConsole}) { - $self->{_adminConsole} = WebGUI::AdminConsole->new($self->session,"assets"); - } - $self->{_adminConsole}->setIcon($self->getIcon); - return $self->{_adminConsole}; -} - - #------------------------------------------------------------------- =head2 getClassById ( $session, $assetId ) @@ -897,255 +861,197 @@ sub getDefault { =head2 getEditForm () -Creates and returns a tabform to edit parameters of an Asset. See L for -adding additional tabs. +Creates and returns a WebGUI::FormBuilder form to edit parameters of an Asset. =cut sub getEditForm { - my $self = shift; - my $session = $self->session; - my $i18n = WebGUI::International->new($session, "Asset"); - my $ago = $i18n->get("ago"); - my $tabform = WebGUI::TabForm->new($session,undef,undef,$self->getUrl()); - my $overrides = $session->config->get("assets/".$self->get("className")); + my $self = shift; + my $session = $self->session; + my $i18n = WebGUI::International->new( $session, "Asset" ); + my $f = WebGUI::FormBuilder->new( $session ); + my $overrides = $session->config->get( "assets/" . $self->get("className") ); - # Set the appropriate URL - # If we're adding a new asset, don't set anything - if ( $session->form->get( "func" ) ne "add" ) { - $tabform->formHeader( { action => $self->getUrl, method => "POST" } ); - } - - if ($session->config->get("enableSaveAndCommit")) { - $tabform->submitAppend(WebGUI::Form::submit($session, { - name => "saveAndCommit", - value => $i18n->get("save and commit"), - })); - } - - $tabform->submitAppend( - WebGUI::Form::submit ( $session, { - name => "saveAndReturn", - value => $i18n->get( "apply" ), - } ) + ### + # Buttons + $f->addField( 'Submit', + name => "save", + value => $i18n->get('save'), ); - $tabform->hidden({ - name=>"func", - value=>"editSave" - }); - my $assetId; - my $class; - if ($self->getId eq "new") { - $assetId = "new"; - $class = $session->form->process("class","className"); - } - else { - # revision history - $assetId = $self->getId; - $class = $self->get('className'); - my $ac = $self->getAdminConsole; - $ac->addSubmenuItem($self->getUrl("func=manageRevisions"),$i18n->get("revisions").":"); - my $rs = $session->db->read("select revisionDate from assetData where assetId=? order by revisionDate desc limit 5", [$assetId]); - while (my ($version) = $rs->array) { - my ($interval, $units) = $session->datetime->secondsToInterval(time() - $version); - $ac->addSubmenuItem($self->getUrl("func=edit;revision=".$version), $interval." ".$units." ".$ago); - } - } - if (my $proceed = $session->form->process("proceed")) { - $tabform->hidden({ - name=>"proceed", - value=>$proceed, - }); - if (my $returnUrl = $session->form->process('returnUrl')) { - $tabform->hidden({ - name=>"returnUrl", - value=>$returnUrl, - }); + if ( $session->config->get("enableSaveAndCommit") ) { + $f->addField( 'Submit', + name => "saveAndCommit", + value => $i18n->get("save and commit"), + ); + } + + $f->addField( 'Submit', + name => "saveAndReturn", + value => $i18n->get("apply"), + ); + + $f->addField( 'Submit', + name => 'cancel', + value => $i18n->get('cancel'), + ); + + ### + # Create the main tabset + + + ### + # Asset ID and class name + # assetId => { + # fieldType => "guid", + # label => [ "asset id", 'Asset' ], + # value => $assetId, + # hoverHelp => [ 'asset id description', 'Asset' ], + # uiLevel => 9, + # tab => "meta", + # }, + # class => { + # fieldType => "className", + # label => [ "class name", 'WebGUI' ], + # value => $class, + # uiLevel => 9, + # tab => "meta", + # }, + my $assetId; + my $class; + if ( $self->getId eq "new" ) { + $assetId = "new"; + $class = $session->form->process( "class", "className" ); + } + else { + $assetId = $self->getId; + $class = $self->get('className'); + } + + ### + # Keywords + # keywords => { + # label => [ 'keywords', 'Asset' ], + # hoverHelp => [ 'keywords help', 'Asset' ], + # value => $self->get('keywords'), + # fieldType => 'keywords', + # tab => 'meta', + # }, + + ### + # Properties + foreach my $property ( $self->getProperties ) { + next if $self->meta->find_attribute_by_name( $property )->noFormPost; + $self->session->log->warn( "Property: $property" ); + $self->session->log->warn( Dumper $self->meta->find_attribute_by_name( $property )->form ); + $self->session->log->warn( Dumper $self->getFormProperties( $property ) ); + my $fieldHash = { + tab => "properties", + name => $property, + value => $self->$property, + %{ $self->getFormProperties( $property ) }, + }; + my $fieldType = $self->meta->find_attribute_by_name( $property )->fieldType; + + if ( !$f->getTab( $fieldHash->{tab} ) ) { + $f->addTab( name => $fieldHash->{tab} ); } - } - - # create tabs - tie my %tabs, 'Tie::IxHash'; - foreach my $tabspec ($self->getEditTabs) { - $tabs{$tabspec->[0]} = { - label => $tabspec->[1], - uiLevel => $tabspec->[2], - }; - } - foreach my $tab (keys %{$overrides->{tabs}}) { - foreach my $key (keys %{$overrides->{tabs}{$tab}}) { - $tabs{$tab}{$key} = $overrides->{tabs}{$tab}{$key}; - } - } - foreach my $tab (keys %tabs) { - $tabform->addTab($tab, $tabs{$tab}{label}, $tabs{$tab}{uiLevel}); - } - - # process errors - my $errors = $session->stow->get('editFormErrors'); - if ($errors) { - $tabform->getTab("properties")->readOnly( - -value=>"

Some error(s) occurred:

', - ); - } - - # build the definition to the generate form - my @properties = ( - assetId => { - fieldType => "guid", - label => ["asset id",'Asset'], - value => $assetId, - hoverHelp => ['asset id description','Asset'], - uiLevel => 9, - tab => "meta", - }, - class => { - fieldType => "className", - label => ["class name",'WebGUI'], - value => $class, - uiLevel => 9, - tab => "meta", - }, - keywords => { - label => ['keywords','Asset'], - hoverHelp => ['keywords help','Asset'], - value => $self->get('keywords'), - fieldType => 'keywords', - tab => 'meta', - }, - ); - foreach my $property ($self->getProperties) { - push @properties, $property => $self->getProperty($property); + $f->getTab( $fieldHash->{tab} )->addField( $fieldType, %{$fieldHash} ); } - if ($session->setting->get("metaDataEnabled")) { - my $meta = $self->getMetaDataFields(); - foreach my $field (keys %$meta) { - my $fieldType = $meta->{$field}{fieldType} || "text"; - my $options = $meta->{$field}{possibleValues}; - # Add a "Select..." option on top of a select list to prevent from - # saving the value on top of the list when no choice is made. - if("\l$fieldType" eq "selectBox") { - $options = "|" . $i18n->get("Select") . "\n" . $options; - } - push @properties, "metadata_".$meta->{$field}{fieldId} => { - tab => "meta", - label => $meta->{$field}{fieldName}, - uiLevel => 5, - value => $meta->{$field}{value}, - extras => qq/title="$meta->{$field}{description}"/, - options => $options, - defaultValue => $meta->{$field}{defaultValue}, - fieldType => $fieldType - }; - } - # add metadata management - if ($session->user->isAdmin) { - push @properties, '_metadatamanagement' => { - tab => "meta", - fieldType => "readOnly", - value => '

'.$i18n->get('Add new field').'

', - hoverHelp => $i18n->get('Add new field description'), - }; - } - } - - # generate the form - for (my $i = 0; $i < @properties; $i += 2) { - my $fieldName = $properties[$i]; - my %fieldHash = %{$properties[$i+1]}; - my %params = (name => $fieldName, value => $self->get($fieldName)); + return $f; +} +=cut + ### + # Meta data + if ( $session->setting->get("metaDataEnabled") ) { + my $meta = $self->getMetaDataFields(); + foreach my $field ( keys %$meta ) { + my $fieldType = $meta->{$field}{fieldType} || "text"; + my $options = $meta->{$field}{possibleValues}; - # apply config file changes - foreach my $key (keys %{$overrides->{fields}{$fieldName}}) { - $fieldHash{$key} = $overrides->{fields}{$fieldName}{$key}; - } + # Add a "Select..." option on top of a select list to prevent from + # saving the value on top of the list when no choice is made. + if ( "\l$fieldType" eq "selectBox" ) { + $options = "|" . $i18n->get("Select") . "\n" . $options; + } + push @properties, "metadata_" + . $meta->{$field}{fieldId} => { + tab => "meta", + label => $meta->{$field}{fieldName}, + uiLevel => 5, + value => $meta->{$field}{value}, + extras => qq/title="$meta->{$field}{description}"/, + options => $options, + defaultValue => $meta->{$field}{defaultValue}, + fieldType => $fieldType + }; + } ## end foreach my $field ( keys %$meta) - # Kludge. - if (isIn($fieldHash{fieldType}, 'selectBox', 'workflow') and ref $params{value} ne 'ARRAY') { - $params{value} = [$params{value}]; - } + # add metadata management + if ( $session->user->isAdmin ) { + push @properties, '_metadatamanagement' => { + tab => "meta", + fieldType => "readOnly", + value => '

' + . $i18n->get('Add new field') + . '

', + hoverHelp => $i18n->get('Add new field description'), + }; + } + } ## end if ( $session->setting...) - %params = (%fieldHash, %params); - delete $params{tab}; - delete $params{tableName}; + # generate the form + for ( my $i = 0; $i < @properties; $i += 2 ) { + my $fieldName = $properties[$i]; + my %fieldHash = %{ $properties[ $i + 1 ] }; + my %params = ( name => $fieldName, value => $self->get($fieldName) ); - # if there isnt a tab specified lets define one - my $tab = $fieldHash{tab} || "properties"; + # apply config file changes + foreach my $key ( keys %{ $overrides->{fields}{$fieldName} } ) { + $fieldHash{$key} = $overrides->{fields}{$fieldName}{$key}; + } + + # Kludge. + if ( isIn( $fieldHash{fieldType}, 'selectBox', 'workflow' ) and ref $params{value} ne 'ARRAY' ) { + $params{value} = [ $params{value} ]; + } + + %params = ( %fieldHash, %params ); + delete $params{tab}; + delete $params{tableName}; + + # if there isnt a tab specified lets define one + my $tab = $fieldHash{tab} || "properties"; #draw the field - $tabform->getTab($tab)->dynamicField(%params); - } + $tabform->getTab($tab)->dynamicField(%params); + } ## end for ( my $i = 0; $i < @properties...) - # send back the object - return $tabform; -} + # send back the object + return $tabform; +} ## end sub getEditForm + +=cut sub setupFormField { - my ($self, $tabform, $fieldName, $extraFields, $overrides) = @_; - my %params = %{$extraFields->{$fieldName}}; - my $tab = delete $params{tab}; + my ( $self, $tabform, $fieldName, $extraFields, $overrides ) = @_; + my %params = %{ $extraFields->{$fieldName} }; + my $tab = delete $params{tab}; - if (exists $overrides->{fields}{$fieldName}) { - my %overrideParams = %{$overrides->{fields}{$fieldName}}; - my $overrideTab = delete $overrideParams{tab}; - $tab = $overrideTab if defined $overrideTab; - foreach my $key (keys %overrideParams) { - $params{"-$key"} = $overrideParams{$key}; - } - } - - $tab ||= 'properties'; - return $tabform->getTab($tab)->dynamicField(%params); -} - -#------------------------------------------------------------------- - -=head2 getEditTabs () - -Returns a list of arrayrefs, one per extra tab to add to the edit -form. The default is no extra tabs. Override this in a subclass to -add extra tabs. - -Each array ref will have 3 fields: - -=over 4 - -=item tabName - -This is the name of the tab that you will use in the definition subroutine to -add fields to the new tab. - -=item label - -This should be an internationalized label that will be displayed on the tab. - -=item uiLevel - -This is the UI level for the tab. - -=back - -Please see the example below for adding 1 tab. - - sub getEditTabs { - my $self = shift; - my $i18n = WebGUI::International->new($self->session,"myNamespace"); - return ($self->SUPER::getEditTabs, ['myTab', $i18n->get('myTabName'), 9]); + if ( exists $overrides->{fields}{$fieldName} ) { + my %overrideParams = %{ $overrides->{fields}{$fieldName} }; + my $overrideTab = delete $overrideParams{tab}; + $tab = $overrideTab if defined $overrideTab; + foreach my $key ( keys %overrideParams ) { + $params{"-$key"} = $overrideParams{$key}; + } } -=cut - -sub getEditTabs { - my $self = shift; - my $i18n = WebGUI::International->new($self->session, "Asset"); - return (["properties", $i18n->get("properties"), 1], - ["display", $i18n->get(105), 5], - ["security", $i18n->get(107), 6], - ["meta", $i18n->get("Metadata"), 3]); -} - + $tab ||= 'properties'; + return $tabform->getTab($tab)->dynamicField(%params); +} ## end sub setupFormField #------------------------------------------------------------------- @@ -2694,10 +2600,18 @@ Renders an AdminConsole EditForm, unless canEdit returns False. =cut sub www_edit { - my $self = shift; - return $self->session->privilege->insufficient() unless $self->canEdit; - return $self->session->privilege->locked() unless $self->canEditIfLocked; - return $self->getAdminConsole->render($self->getEditForm->print, $self->addEditLabel); + my $self = shift; + return $self->session->privilege->insufficient() unless $self->canEdit; + return $self->session->privilege->locked() unless $self->canEditIfLocked; + + my $f = $self->getEditForm; + $f->addField( "Hidden", name => "func", value => "editSave" ); + $f->action( $self->getUrl ); + + return $self->session->style->process( + '
' . $f->toHtml . '
', + "PBtmpl0000000000000137" + ); } #------------------------------------------------------------------- diff --git a/lib/WebGUI/Asset/Template.pm b/lib/WebGUI/Asset/Template.pm index fc779c618..f2974bb48 100644 --- a/lib/WebGUI/Asset/Template.pm +++ b/lib/WebGUI/Asset/Template.pm @@ -152,25 +152,6 @@ override addRevision => sub { return $asset; }; -#------------------------------------------------------------------- - -=head2 drawExtraHeadTags ( ) - -Override the master drawExtraHeadTags to prevent Style template from having -Extra Head Tags. - -=cut - -override drawExtraHeadTags => sub { - my ($self) = @_; - if ($self->namespace eq 'style') { - my $i18n = WebGUI::International->new($self->session); - return $i18n->get(881); - } - return super(); -}; - - #------------------------------------------------------------------- =head2 duplicate diff --git a/lib/WebGUI/Asset/Wobject/Layout.pm b/lib/WebGUI/Asset/Wobject/Layout.pm index 89d5f1894..ccb3d55e3 100644 --- a/lib/WebGUI/Asset/Wobject/Layout.pm +++ b/lib/WebGUI/Asset/Wobject/Layout.pm @@ -26,6 +26,7 @@ define icon => 'layout.gif'; define tableName => 'Layout'; property templateId => ( + tab => "display", fieldType => "template", namespace => "Layout", default => 'PBtmpl0000000000000054', @@ -34,6 +35,7 @@ property templateId => ( ); property mobileTemplateId => ( #fieldType => ( $session->style->useMobileStyle ? 'template' : 'hidden' ), + tab => "display", fieldType => 'template', namespace => 'Layout', default => 'PBtmpl0000000000000054', @@ -48,11 +50,16 @@ property contentPositions => ( noFormPost => 1, ); property assetsToHide => ( + tab => "properties", default => undef, fieldType => "checkList", noFormPost => 1, + label => ['assets to hide', 'Asset_Layout'], + hoverHelp => ['assets to hide description', 'Asset_Layout'], + options => sub { }, ); property assetOrder => ( + tab => "display", default => 'asc', fieldType => 'selectBox', label => ['asset order label', 'Asset_Layout'], @@ -87,7 +94,6 @@ These methods are available from this class: Extends the base method to handle the optional mobileTemplateId and assetsToHide. -=cut override getEditForm => sub { my $self = shift; @@ -193,6 +199,8 @@ override getEditForm => sub { return $tabform; }; +=cut + #------------------------------------------------------------------- =head2 prepareView diff --git a/lib/WebGUI/Form/Control.pm b/lib/WebGUI/Form/Control.pm index 82f36231d..bd6ef9c61 100644 --- a/lib/WebGUI/Form/Control.pm +++ b/lib/WebGUI/Form/Control.pm @@ -205,45 +205,6 @@ sub definition { #------------------------------------------------------------------- -=head2 displayForm ( ) - -Depricated, see toHtml(). - -=cut - -sub displayForm { - my $self = shift; - return $self->toHtml(@_); -} - -#------------------------------------------------------------------- - -=head2 displayFormWithWrapper ( ) - -Depricated, see toHtmlWithWrapper(). - -=cut - -sub displayFormWithWrapper { - my $self = shift; - return $self->toHtmlWithWrapper(@_); -} - -#------------------------------------------------------------------- - -=head2 displayValue ( ) - -Depricated, see getValueAsHtml(). - -=cut - -sub displayValue { - my ($self) = @_; - return $self->getValueAsHtml; -} - -#------------------------------------------------------------------- - =head2 fixMacros ( string ) Returns the string having converted all macros in the string to HTML entities so that they won't be processed by the macro engine, but instead will be displayed. @@ -369,6 +330,18 @@ sub getDatabaseFieldType { return "CHAR(255)"; } +sub getLabel { + my ( $self ) = @_; + + my $labelClass = $self->get("labelClass"); + $labelClass = qq| class="$labelClass" | if($self->get("labelClass")); + + my $hoverHelp = $self->get("hoverHelp") || ''; + $hoverHelp =~ s/^\s+//; + $hoverHelp &&= '
' . $hoverHelp . '
'; + + return ''.$self->get("label").'' . $hoverHelp; +} #------------------------------------------------------------------- @@ -445,7 +418,6 @@ sub getDefaultValue { return $self->get("defaultValue"); } - #------------------------------------------------------------------- =head2 getValueAsHtml ( ) @@ -507,21 +479,6 @@ sub isInRequest { return $self->session->form->hasParam($self->get('name')); } -#------------------------------------------------------------------- - -=head2 isProfileEnabled ( session ) - -Depricated. See isDynamicCompatible(). - -=cut - - -sub isProfileEnabled { - my $class = shift; - return $class->isDynamicCompatible(); -} - - #------------------------------------------------------------------- =head2 new ( session, parameters ) @@ -617,15 +574,11 @@ sub prepareWrapper { my $self = shift; my $rowClass = $self->get("rowClass"); $rowClass = qq| class="$rowClass" | if($self->get("rowClass")); - my $labelClass = $self->get("labelClass"); - $labelClass = qq| class="$labelClass" | if($self->get("labelClass")); my $fieldClass = $self->get("fieldClass"); $fieldClass = qq| class="$fieldClass" | if($self->get("fieldClass")); - my $hoverHelp = $self->get("hoverHelp") || ''; - $hoverHelp =~ s/^\s+//; my $subtext = $self->get("subtext"); $subtext = qq| $subtext| if ($subtext); - return ($fieldClass, $rowClass, $labelClass, $hoverHelp, $subtext); + return ($fieldClass, $rowClass, $subtext); } @@ -715,18 +668,18 @@ Renders the form field to HTML as a table row complete with labels, subtext, hov =cut sub toHtmlWithWrapper { - my $self = shift; - if ($self->passUiLevelCheck) { - my $rawField = $self->toHtml(); # has to be called before prepareWrapper for some controls, namely captcha. - my ($fieldClass, $rowClass, $labelClass, $hoverHelp, $subtext) = $self->prepareWrapper; - $hoverHelp &&= '
' . $hoverHelp . '
'; - return ' - ' . $hoverHelp . ' - '.$rawField . $subtext . " - \n"; - } else { - return $self->toHtmlAsHidden; - } + my $self = shift; + if ($self->passUiLevelCheck) { + my $rawField = $self->toHtml(); # has to be called before prepareWrapper for some controls, namely captcha. + my ($fieldClass, $rowClass, $subtext) = $self->prepareWrapper; + return '' + . $self->getLabel + . $rawField + . $subtext + . "\n"; + } else { + return $self->toHtmlAsHidden; + } } diff --git a/lib/WebGUI/FormBuilder.pm b/lib/WebGUI/FormBuilder.pm index 7fa9df592..8349aac7f 100644 --- a/lib/WebGUI/FormBuilder.pm +++ b/lib/WebGUI/FormBuilder.pm @@ -159,10 +159,21 @@ Return the HTML for the form sub toHtml { my ( $self ) = @_; - + my ( $style, $url ) = $self->session->quick(qw{ style url }); + + $style->setLink( $url->extras('hoverhelp.css'), { rel => "stylesheet", type => "text/css" } ); + $style->setScript( $url->extras('hoverhelp.js') ); + my $html = $self->getHeader; # Add individual objects - $html .= join "", map { $_->toHtml } @{$self->objects}; + for my $obj ( @{ $self->objects } ) { + if ( $obj->isa('WebGUI::Form::Control') ) { + $html .= $obj->toHtmlWithWrapper; + } + else { + $html .= $obj->toHtml; + } + } $html .= $self->getFooter; return $html; diff --git a/lib/WebGUI/FormBuilder/Fieldset.pm b/lib/WebGUI/FormBuilder/Fieldset.pm index a9faf4c88..1208d61ab 100644 --- a/lib/WebGUI/FormBuilder/Fieldset.pm +++ b/lib/WebGUI/FormBuilder/Fieldset.pm @@ -125,7 +125,14 @@ sub toHtml { my ( $self ) = @_; my $html = $self->getHeader; - $html .= join "", map { $_->toHtml } @{$self->objects}; + for my $obj ( @{ $self->objects } ) { + if ( $obj->isa('WebGUI::Form::Control') ) { + $html .= $obj->toHtmlWithWrapper; + } + else { + $html .= $obj->toHtml; + } + } $html .= $self->getFooter; return $html; diff --git a/lib/WebGUI/FormBuilder/Role/HasFields.pm b/lib/WebGUI/FormBuilder/Role/HasFields.pm index a5cc1000e..f8cacc9a9 100644 --- a/lib/WebGUI/FormBuilder/Role/HasFields.pm +++ b/lib/WebGUI/FormBuilder/Role/HasFields.pm @@ -56,8 +56,8 @@ sub addField { # Load the class # Try to load the WebGUI Field first in case we conveniently overlap with a common name # (like Readonly) - if ( $INC{'WebGUI/Form/'.$file} || try { require 'WebGUI/Form/' . $file } ) { - $type = 'WebGUI::Form::' . $type; + if ( $INC{'WebGUI/Form/'. ucfirst $file} || try { require 'WebGUI/Form/' . ucfirst $file } ) { + $type = 'WebGUI::Form::' . ucfirst $type; } elsif ( !$INC{$file} && !try { require $file; } ) { confess sprintf "Could not load form control class %s", $type; diff --git a/lib/WebGUI/FormBuilder/Tab.pm b/lib/WebGUI/FormBuilder/Tab.pm index e61c2dc65..2d216d8d3 100644 --- a/lib/WebGUI/FormBuilder/Tab.pm +++ b/lib/WebGUI/FormBuilder/Tab.pm @@ -93,7 +93,15 @@ Render the objects in this tab sub toHtml { my ( $self ) = @_; - my $html = join "", map { $_->toHtml } @{$self->objects}; + my $html; + for my $obj ( @{ $self->objects } ) { + if ( $obj->isa('WebGUI::Form::Control') ) { + $html .= $obj->toHtmlWithWrapper; + } + else { + $html .= $obj->toHtml; + } + } return $html; } diff --git a/lib/WebGUI/FormBuilder/Tabset.pm b/lib/WebGUI/FormBuilder/Tabset.pm index 91bc9683a..e02adfca2 100644 --- a/lib/WebGUI/FormBuilder/Tabset.pm +++ b/lib/WebGUI/FormBuilder/Tabset.pm @@ -62,10 +62,17 @@ sub addTab { sub toHtml { my ( $self ) = @_; + my ( $style, $url ) = $self->session->quick(qw( style url )); + + $style->setLink( $url->extras("yui/build/tabview/assets/skins/sam/tabview.css"), { rel => "stylesheet", type => "text/css" } ); + $style->setScript( $url->extras("yui/build/yahoo-dom-event/yahoo-dom-event.js") ); + $style->setScript( $url->extras("yui/build/element/element-min.js") ); + $style->setScript( $url->extras("yui/build/tabview/tabview-min.js") ); + my $html = sprintf( '
', $self->name ) . '
    ' ; - + for ( my $i = 0; $i < @{$self->tabs}; $i++ ) { my $tab = $self->tabs->[$i]; $html .= sprintf '
  • %s
  • ', $i, $tab->label; @@ -83,7 +90,9 @@ sub toHtml { $html .= '
' . '' . q{} ;