Migrated WebGUI::TabForm to use YUI tabs rather than the old fashioned

WebGUI tabs.
This commit is contained in:
JT Smith 2008-10-22 04:00:19 +00:00
parent dd385e7251
commit 32ce086ab5
2 changed files with 29 additions and 19 deletions

View file

@ -13,6 +13,8 @@
- rfe: Inclusion of UsersOnline macro into the core (#766)
- rfe: Search - Paginate results (#713)
- rfe: Leave Version Tag
- Migrated WebGUI::TabForm to use YUI tabs rather than the old fashioned
WebGUI tabs.
- WebGUI::Crud can now automatically resolve differences between its
definition and the table schema.
- Fixed a limit bug in the asset discovery service.

View file

@ -227,35 +227,43 @@ sub print {
my $self = shift;
my $style = $self->session->style;
my $url = $self->session->url;
$style->setScript($url->extras('tabs/tabs.js'),{type=>"text/javascript"});
$style->setLink($self->{_css},{rel=>"stylesheet", rev=>"stylesheet",type=>"text/css"});
$style->setLink($self->{_css},{rel=>"stylesheet", rel=>"stylesheet",type=>"text/css"});
$style->setLink($url->extras('/yui/build/fonts/fonts-min.css'),{type=>"text/css", rel=>"stylesheet"});
$style->setLink($url->extras('/yui/build/tabview/assets/skins/sam/tabview.css'),{type=>"text/css", rel=>"stylesheet"});
$style->setLink($url->extras('/yui/build/container/assets/container.css'),{ type=>'text/css', rel=>"stylesheet" });
$style->setLink($url->extras('/hoverhelp.css'),{ type=>'text/css', rel=>"stylesheet" });
$style->setScript($url->extras('/yui/build/yahoo/yahoo-min.js'),{ type=>'text/javascript' });
$style->setScript($url->extras('/yui/build/dom/dom-min.js'),{ type=>'text/javascript' });
$style->setScript($url->extras('/yui/build/event/event-min.js'),{ type=>'text/javascript' });
$style->setScript($url->extras('/yui/build/utilities/utilities.js'),{ type=>'text/javascript' });
$style->setScript($url->extras('/yui/build/container/container-min.js'),{ type=>'text/javascript' });
$style->setScript($url->extras('/yui/build/tabview/tabview-min.js'),{ type=>'text/javascript' });
$style->setScript($url->extras('/hoverhelp.js'),{ type=>'text/javascript' });
my $output = $self->{_form};
$output .= $self->{_hidden};
my $i = 1;
my $tabs;
my $form;
my $tabs = '<ul class="yui-nav">';
my $form = '<div class="yui-content">';
my $userUiLevel = $self->session->user->profileField("uiLevel");
my $first = 1;
foreach my $key (keys %{$self->{_tab}}) {
$tabs .= '<span onclick="toggleTab('.$i.')" id="tab'.$i.'" class="tab"';
if ($self->{_tab}->{$key}{uiLevel} > $self->session->user->profileField("uiLevel")) {
$tabs .= 'style="display: none;"';
}
$tabs .= '>'.$self->{_tab}{$key}{label}.'</span> ';
$form .= '<div id="tabcontent'.$i.'" class="tabBody"><table><tbody>';
$form .= $self->{_tab}{$key}{form}->printRowsOnly;
$form .= '</tbody></table></div>';
my $hide = '';
if ($self->{_tab}->{$key}{uiLevel} > $userUiLevel) {
$hide = 'style="display: none;"';
}
my $selected = '';
if ($first && !$hide) {
$first = 0;
$selected = 'class="selected"';
}
$tabs .= '<li '.$selected.'><a href="#tab'.$i.'" '.$hide.'><em>'.$self->{_tab}{$key}{label}.'</em></a></li>';
$form .= '<div id="tab'.$i.'" '.$hide.'><table>'.$self->{_tab}{$key}{form}->printRowsOnly.'</table></div>';
$i++;
}
$output .= '<div class="tabs">'.$tabs.$self->{_submit}."&nbsp;&nbsp;".$self->{_cancel}.'</div>';
$output .= $form;
$output .= WebGUI::Form::formFooter($self->session,);
$output .= '<script type="text/javascript">var numberOfTabs = '.($i-1).'; initTabs();</script>';
$tabs .= '</ul>';
$form .= '</div>';
$output .= '<div style="float: right;">'.$self->{_submit}.$self->{_cancel}.'</div><div class="yui-skin-sam"><div id="webguiTabForm" class="yui-navset">'.$tabs.$form.'</div></div>';
$output .= WebGUI::Form::formFooter($self->session);
$output .= q{<script type="text/javascript">
var tabView = new YAHOO.widget.TabView('webguiTabForm');
</script>};
return $output;
}