Added TabForm.

This commit is contained in:
JT Smith 2003-02-23 01:04:53 +00:00
parent 713811353c
commit 7a83c6a00f
3 changed files with 108 additions and 43 deletions

View file

@ -75,7 +75,11 @@ Tie::IxHash..........................Gurusamy Sarathy
XML::RSSLite.........................Jerrad Pierce
Scott Thomason
Midas................................Mike Kaply
Midas................................The Mozilla Development Team
Mike Kaply
Classic Rich Edit....................Bratta
Tab DHTML............................Garrett Smith
dhtmlkitchen.com

View file

@ -17,10 +17,11 @@ use WebGUI::Grouping;
use WebGUI::HTMLForm;
use WebGUI::Icon;
use WebGUI::International;
use WebGUI::Page;
use WebGUI::Privilege;
use WebGUI::Session;
use WebGUI::SQL;
use WebGUI::Page;
use WebGUI::TabForm;
use WebGUI::URL;
use WebGUI::Utility;
@ -207,14 +208,29 @@ sub www_deletePageConfirm {
return WebGUI::Privilege::insufficient();
}
}
use WebGUI::TabForm;
#-------------------------------------------------------------------
sub www_editPage {
my ($f, $endDate, $output, $subtext, $childCount, %hash, %page);
tie %hash, "Tie::IxHash";
tie %page, "Tie::CPHash";
if (WebGUI::Privilege::canEditPage($session{form}{npp})) {
$f = WebGUI::HTMLForm->new;
my %tabs;
tie %tabs, 'Tie::IxHash';
%tabs = (
properties=>{
name=>WebGUI::International::get(103)
},
style=>{
name=>WebGUI::International::get(105),
uiLevel=>5
},
privileges=>{
name=>WebGUI::International::get(107),
uiLevel=>6
}
);
$f = WebGUI::TabForm->new(\%tabs);
if ($session{form}{npp} ne "") {
my $buildFromPage = $session{form}{npp};
if ($buildFromPage == 0) {
@ -231,75 +247,66 @@ sub www_editPage {
($childCount) = WebGUI::SQL->quickArray("select count(*) from page where parentId=$page{pageId}");
}
$page{endDate} = (addToDate(time(),10)) if ($page{endDate} < 0);
$output = helpIcon(1);
#$output = helpIcon(1);
$output .= '<h1>'.WebGUI::International::get(102).'</h1>';
$f->hidden("pageId",$page{pageId});
$f->hidden("parentId",$page{parentId});
$f->hidden("op","editPageSave");
$f->submit if ($page{pageId} ne "new");
$f->raw(
-value=>'<tr><td colspan=2><b>'.WebGUI::International::get(103).'</b></td></tr>',
-uiLevel=>5
);
$f->readOnly(
$f->getTab("properties")->readOnly(
-value=>$page{pageId},
-label=>WebGUI::International::get(500),
-uiLevel=>3
);
$f->text("title",WebGUI::International::get(99),$page{title});
$f->text(
$f->getTab("properties")->text("title",WebGUI::International::get(99),$page{title});
$f->getTab("properties")->text(
-name=>"menuTitle",
-label=>WebGUI::International::get(411),
-value=>$page{menuTitle},
-uiLevel=>1
);
$f->yesNo(
$f->getTab("properties")->yesNo(
-name=>"hideFromNavigation",
-value=>$page{hideFromNavigation},
-label=>WebGUI::International::get(886),
-uiLevel=>6
);
$f->text(
$f->getTab("properties")->text(
-name=>"urlizedTitle",
-label=>WebGUI::International::get(104),
-value=>$page{urlizedTitle},
-uiLevel=>3
);
$f->select(
$f->getTab("properties")->select(
-name=>"languageId",
-label=>WebGUI::International::get(304),
-value=>[$page{languageId}],
-uiLevel=>1,
-options=>WebGUI::International::getLanguages()
);
$f->url(
$f->getTab("properties")->url(
-name=>"redirectURL",
-label=>WebGUI::International::get(715),
-value=>$page{redirectURL},
-uiLevel=>9
);
$f->textarea(
$f->getTab("properties")->textarea(
-name=>"synopsis",
-label=>WebGUI::International::get(412),
-value=>$page{synopsis},
-uiLevel=>3
);
$f->textarea(
$f->getTab("properties")->textarea(
-name=>"metaTags",
-label=>WebGUI::International::get(100),
-value=>$page{metaTags},
-uiLevel=>7
);
$f->yesNo(
$f->getTab("properties")->yesNo(
-name=>"defaultMetaTags",
-label=>WebGUI::International::get(307),
-value=>$page{defaultMetaTags},
-uiLevel=>5
);
$f->raw(
-value=>'<tr><td colspan=2><hr size=1><b>'.WebGUI::International::get(105).'</b></td></tr>',
-uiLevel=>5
);
%hash = WebGUI::SQL->buildHash("select styleId,name from style where name<>'Reserved' order by name");
if (WebGUI::Privilege::isInGroup(5)) {
$subtext = ' &nbsp; <a href="'.WebGUI::URL::page('op=listStyles')
@ -307,7 +314,7 @@ sub www_editPage {
} else {
$subtext = "";
}
$f->select(
$f->getTab("style")->select(
-name=>"styleId",
-options=>\%hash,
-label=>WebGUI::International::get(105),
@ -316,28 +323,24 @@ sub www_editPage {
-uiLevel=>5
);
if ($childCount) {
$f->yesNo(
$f->getTab("style")->yesNo(
-name=>"recurseStyle",
-subtext=>' &nbsp; '.WebGUI::International::get(106),
-uiLevel=>9
);
}
$f->readOnly(
$f->getTab("style")->readOnly(
-value=>_selectPositions($page{templateId}),
-label=>WebGUI::International::get(356),
-uiLevel=>5
);
$f->raw(
-value=>'<tr><td colspan=2><hr size=1><b>'.WebGUI::International::get(107).'</b></td></tr>',
-uiLevel=>6
);
$f->date(
$f->getTab("privileges")->date(
-name=>"startDate",
-label=>WebGUI::International::get(497),
-value=>$page{startDate},
-uiLevel=>6
);
$f->date(
$f->getTab("privileges")->date(
-name=>"endDate",
-label=>WebGUI::International::get(498),
-value=>$page{endDate},
@ -357,7 +360,7 @@ sub www_editPage {
$clause = "userId=$page{ownerId}";
}
my $users = WebGUI::SQL->buildHashRef("select userId,username from users where $clause order by username");
$f->select(
$f->getTab("privileges")->select(
-name=>"ownerId",
-options=>$users,
-label=>WebGUI::International::get(108),
@ -371,14 +374,14 @@ sub www_editPage {
} else {
$subtext = "";
}
$f->group(
$f->getTab("privileges")->group(
-name=>"groupIdView",
-label=>WebGUI::International::get(872),
-value=>[$page{groupIdView}],
-subtext=>$subtext,
-uiLevel=>6
);
$f->group(
$f->getTab("privileges")->group(
-name=>"groupIdEdit",
-label=>WebGUI::International::get(871),
-value=>[$page{groupIdEdit}],
@ -387,18 +390,14 @@ sub www_editPage {
-uiLevel=>6
);
if ($childCount) {
$f->yesNo(
$f->getTab("privileges")->yesNo(
-name=>"recursePrivs",
-subtext=>' &nbsp; '.WebGUI::International::get(116),
-uiLevel=>9
);
}
$f->raw(
-value=>'<tr><td colspan=2><hr size=1/></td></tr>',
-uiLevel=>5
);
if ($page{pageId} eq "new") {
$f->whatNext(
$f->getTab("properties")->whatNext(
-options=>{
gotoNewPage=>WebGUI::International::get(823),
backToPage=>WebGUI::International::get(847)
@ -407,7 +406,6 @@ sub www_editPage {
-uiLevel=>1
);
}
$f->submit;
$output .= $f->print;
return $output;
} else {

63
lib/WebGUI/TabForm.pm Normal file
View file

@ -0,0 +1,63 @@
package WebGUI::TabForm;
use strict;
use WebGUI::Form;
use WebGUI::HTMLForm;
use WebGUI::Session;
sub getTab {
return $_[0]->{_tab}{$_[1]}{form};
}
sub hidden {
$_[0]->{_form}->hidden($_[1],$_[2]);
}
sub new {
my ($class, $tabs) = @_;
my $form = WebGUI::HTMLForm->new(1);
foreach my $key (keys %{$tabs}) {
$tabs->{$key}{uiLevel} = 9 unless ($tabs->{$key}{uiLevel});
$tabs->{$key}{form} = WebGUI::HTMLForm->new;
}
bless {_submit=>WebGUI::Form::submit(),_form=>$form,_tab=>$tabs}, $class;
}
sub print {
my $output = '
<script src="'.$session{config}{extrasURL}.'/tabs/utils.js" type="text/javascript"></script>
<script src="'.$session{config}{extrasURL}.'/tabs/viewport.js" type="text/javascript"></script>
<script src="'.$session{config}{extrasURL}.'/tabs/global.js" type="text/javascript"></script>
<script src="'.$session{config}{extrasURL}.'/tabs/cookie.js" type="text/javascript"></script>
<script src="'.$session{config}{extrasURL}.'/tabs/tabs.js" type="text/javascript"></script>
<link href="'.$session{config}{extrasURL}.'/tabs/tabs.css" rel="stylesheet" rev="stylesheet" type="text/css">
';
my $i = 1;
my $tabs;
my $form;
foreach my $key (keys %{$_[0]->{_tab}}) {
$tabs .= '<span id="tab'.$i.'" class="tab';
if ($i == 1) {
$tabs .= ' tabActive';
}
$tabs .= '">'.$_[0]->{_tab}{$key}{name}.'</span> ';
$form .= '<div id="content'.$i.'" class="tabBody"><table>';
$form .= $_[0]->{_tab}{$key}{form}->printRowsOnly;
$form .= '</table></div>';
$i++;
}
$_[0]->{_form}->raw('<div class="tabs">'.$tabs.$_[0]->{_submit}.'</div>');
$_[0]->{_form}->raw($form);
$output .= $_[0]->{_form}->print;
$output .= '<script>tabInit();</script>';
return $output;
}
sub submit {
$_[0]->{_submit} = WebGUI::Form::submit($_[1]);
}
1;