Added TabForm.
This commit is contained in:
parent
713811353c
commit
7a83c6a00f
3 changed files with 108 additions and 43 deletions
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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 = ' <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=>' '.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=>' '.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
63
lib/WebGUI/TabForm.pm
Normal 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;
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue