Added UI Level overrides for every field in the edit form of every asset.

This commit is contained in:
JT Smith 2005-07-28 21:05:35 +00:00
parent 9c3a4eb309
commit c9cefeca93
8 changed files with 40 additions and 22 deletions

View file

@ -1,4 +1,6 @@
6.7.0
- Added the ability to override the UI Level of any field in the edit form of
any asset in the WebGUI config file.
- fix [ 1229042 ] crumbtrail should show full path...
- Added asset versioning.
- fix [ 1229188 ] typo in Help: Collaboration, Post List Template Variables

View file

@ -137,6 +137,15 @@ utilityAssets = WebGUI::Asset::Template, \
#assetAddPrivilege = WebGUI::Asset::Wobject::SQLReport => 3, \
# WebGUI:::Asset::Template => 4
# You can override the UI Levels of any field in the edit form of
# any asset using the following variables. Basically just take the
# class name of the asset seperated by underscores, and append
# _uiLevel to the end of it, then you can start specifying field
# names and associated UI Level.
#WebGUI_Asset_Wobject_Article = menuTitle => 9, url => 8
#WebGUI_Asset_RichEdit = askAboutRichEdit => 7, preformatted => 3
# If exportPath is defined, an "Export" toolbar icon will appear
# which allows you to export assets to static html. This folder
# needs to be writable by your web server.

View file

@ -960,7 +960,9 @@ Creates and returns a tabform to edit parameters of an Asset.
sub getEditForm {
my $self = shift;
my $tabform = WebGUI::TabForm->new(undef,undef,$self->getUrl());
my $uiLevelOverride = $self->get("className");
$uiLevelOverride =~ s/\:\:/_/g;
my $tabform = WebGUI::TabForm->new(undef,undef,$self->getUrl(),$uiLevelOverride);
$tabform->hidden({
name=>"func",
value=>"editSave"

View file

@ -362,10 +362,8 @@ Renders the form field to HTML as a table row complete with labels, subtext, hov
sub toHtmlWithWrapper {
my $self = shift;
if ($self->{uiLevel} <= $session{user}{uiLevel}
|| ( $session{config}{$self->{uiLevelOverride}}{$self->{name}}
&& $session{config}{$self->{uiLevelOverride}}{$self->{name}} <= $session{user}{uiLevel}))
{
WebGUI::ErrorHandler::debug($session{config}{$self->{uiLevelOverride}."_uiLevel"}{$self->{name}});
if ($self->{uiLevel} <= $session{user}{uiLevel} && $session{config}{$self->{uiLevelOverride}."_uiLevel"}{$self->{name}} <= $session{user}{uiLevel}) {
my $rowClass = $self->{rowClass};
$rowClass = qq| class="$rowClass" | if($self->{rowClass});
my $labelClass = $self->{labelClass};

View file

@ -59,6 +59,9 @@ sub definition {
push(@{$definition}, {
defaultValue=>{
defaultValue=>WebGUI::International::get(62,"WebGUI")
},
label=>{
defaultValue=>""
}
});
return $class->SUPER::definition($definition);

View file

@ -120,7 +120,8 @@ sub AUTOLOAD {
our $AUTOLOAD;
my $self = shift;
my $name = (split /::/, $AUTOLOAD)[-1];
my @params = @_;
my %params = @_;
$params{uiLevelOverride} ||= $self->{_uiLevelOverride};
my $cmd = "use WebGUI::Form::".$name;
eval ($cmd);
if ($@) {
@ -128,7 +129,7 @@ sub AUTOLOAD {
return undef;
}
my $class = "WebGUI::Form::".$name;
$self->{_data} .= $class->new(@params)->toHtmlWithWrapper;
$self->{_data} .= $class->new(%params)->toHtmlWithWrapper;
}
#-------------------------------------------------------------------
@ -227,20 +228,19 @@ If you want to add anything special to the form's table like a name or styleshee
sub new {
my ($header, $footer);
my ($self, @p) = @_;
my ($noTable, $action, $method, $extras, $enctype, $tableExtras) =
rearrange([qw(noTable action method extras enctype tableExtras)], @p);
$noTable = $noTable || 0;
my $class = shift;
my %param = @_;
$param{noTable} ||= 0;
$header = "\n\n".WebGUI::Form::formHeader({
"action"=>$action,
"extras"=>$extras,
"method"=>$method,
"enctype"=>$enctype
action=>$param{action},
extras=>$param{extras},
method=>$param{method},
enctype=>$param{enctype}
});
$header .= "\n<table ".$tableExtras.'><tbody>' unless ($noTable);
$footer = "</tbody></table>\n" unless ($noTable);
$header .= "\n<table ".$param{tableExtras}.'><tbody>' unless ($param{noTable});
$footer = "</tbody></table>\n" unless ($param{noTable});
$footer .= WebGUI::Form::formFooter();
bless {_noTable => $noTable, _header => $header, _footer => $footer, _data => ''}, $self;
bless {_uiLevelOverride=>$param{uiLevelOverride}, _noTable => $param{noTable}, _header => $header, _footer => $footer, _data => ''}, $class;
}
#-------------------------------------------------------------------

View file

@ -121,6 +121,7 @@ sub getUserSearchForm {
$f->selectList(
-name=>"modifier",
-value=>([$session{scratch}{userSearchModifier} || "contains"]),
-label=>"",
-options=>{
startsWith=>WebGUI::International::get("starts with"),
contains=>WebGUI::International::get("contains"),
@ -129,11 +130,13 @@ sub getUserSearchForm {
);
$f->text(
-name=>"keyword",
-label=>"",
-value=>$session{scratch}{userSearchKeyword},
-size=>15
);
$f->selectList(
-name => "status",
-label=>"",
-value => [$session{scratch}{userSearchStatus} || "users.status like '%'"],
-options=> {
"" => WebGUI::International::get(821),
@ -142,7 +145,7 @@ sub getUserSearchForm {
Selfdestructed => WebGUI::International::get(819)
}
);
$f->submit(WebGUI::International::get(170));
$f->submit(value=>WebGUI::International::get(170));
$output .= $f->print;
$output .= '</div>';
return $output;

View file

@ -98,7 +98,7 @@ sub addTab {
my $name = shift;
my $label = shift;
my $uiLevel = shift || 0;
$self->{_tab}{$name}{form} = WebGUI::HTMLForm->new;
$self->{_tab}{$name}{form} = WebGUI::HTMLForm->new(uiLevelOverride=>$self->{_uiLevelOverride});
$self->{_tab}{$name}{label} = $label;
$self->{_tab}{$name}{uiLevel} = $uiLevel;
}
@ -197,10 +197,11 @@ sub new {
my $startingTabs = shift;
my $css = shift || $session{config}{extrasURL}.'/tabs/tabs.css';
my $cancelUrl = shift || WebGUI::URL::page();
my $uiLevelOverride = shift;
my %tabs;
tie %tabs, 'Tie::IxHash';
foreach my $key (keys %{$startingTabs}) {
$tabs{$key}{form} = WebGUI::HTMLForm->new;
$tabs{$key}{form} = WebGUI::HTMLForm->new(uiLevelOverride=>$uiLevelOverride);
$tabs{$key}{label} = $startingTabs->{$key}->{label};
$tabs{$key}{uiLevel} = $startingTabs->{$key}->{uiLevel};
}
@ -208,7 +209,7 @@ sub new {
value=>WebGUI::International::get('cancel'),
extras=>q|onClick="location.href='|.$cancelUrl.q|'"|
});
bless { _cancel=>$cancel, _submit=>WebGUI::Form::submit(), _form=>WebGUI::Form::formHeader(), _hidden=>"", _tab=>\%tabs, _css=>$css }, $class;
bless { _uiLevelOverride=>$uiLevelOverride, _cancel=>$cancel, _submit=>WebGUI::Form::submit(), _form=>WebGUI::Form::formHeader(), _hidden=>"", _tab=>\%tabs, _css=>$css }, $class;
}