App-Widget
view release on metacpan or search on metacpan
lib/App/Widget/WizardSelector.pm view on Meta::CPAN
my $nodenumber = "$nodebase$nodeidx"; # create its node number
while ($nodeidx >=0 && defined $node->{$nodenumber}) {
if ($found) {
if (defined $node->{$nodenumber}) {
$auth_name = $node->{$nodenumber}{auth_name};
if (!$auth_name || $auth->is_authorized("/App/SessionObject/$name/$auth_name")) {
if ($node->{$nodenumber}{enabled} == 1) {
$prev = $node->{$nodenumber}{wname};
last;
}
}
}
}
$found = 1 if ($selected_nodenumber eq $nodenumber);
$nodeidx--;
$nodenumber = "$nodebase$nodeidx"; # create its node number
}
&App::sub_exit($prev) if ($App::trace);
return($prev);
}
# enable or disable a page in the selectors collection of pages.
sub enable {
&App::sub_entry if ($App::trace);
my ($self, $nodeattrib, $value, $enable) = @_;
my $success = 0;
my $node = $self->{node};
$enable = ($enable =~ /y|yes|true|1/i) ? 1 : 0;
foreach my $nodenumber (keys %$node) {
if ($node->{$nodenumber}{$nodeattrib} eq $value) {
$node->{$nodenumber}{enabled} = $enable;
$success = 1;
last;
}
}
&App::sub_exit($success) if ($App::trace);
return($success);
}
######################################################################
# OUTPUT METHODS
######################################################################
sub html {
my $self = shift;
my ($html, $label, $icon);
my $context = $self->{context};
my $name = $self->{name};
my $node = $self->node_list();
my ($bgcolor, $width, $fontface, $fontsize, $fontcolor, $fontbegin, $fontend);
my ($html_url_dir, $xgif);
$bgcolor = $self->{bgcolor} || "#cccccc";
$width = $self->{width} || "100%";
$fontface = $self->{fontface} || "verdana,geneva,arial,sans-serif";
$fontsize = $self->{fontsize} || "-2";
$fontcolor = $self->{fontcolor} || "#ffffff";
$bgcolor = " bgcolor=\"$bgcolor\"";
#$fontbegin = "<font face=\"$fontface\" size=\"$fontsize\" color=\"$fontcolor\">";
#$fontend = "</font>";
my ($nodebase, $nodeidx, $nodenumber, $nodelabel, $parentnodenumber, $nodelevel, $opennodenumber);
my (@nodeidx, $selected_nodenumber, $w);
$selected_nodenumber = $self->{selected};
@nodeidx = split(/\./,$selected_nodenumber);
$html_url_dir = $context->get_option("html_url_dir");
$xgif = "$html_url_dir/images/Widget/dot_clear.gif";
$html = $self->{debug} || "";
$nodelevel = 0;
$nodebase = "";
if (defined $node->{1} && !defined $node->{2}) {
$nodelevel = 1;
$nodebase = "1.";
}
my $auth = $context->authorization();
my ($auth_name);
for (; $nodelevel <= $#nodeidx; $nodelevel++) {
$html .= '<table border="0" cellpadding="0" cellspacing="0" width="100%">' . "\n";
$html .= " <tr><td rowspan=\"3\" width=\"1%\" height=\"19\" nowrap>";
$nodeidx = 1;
$nodenumber = "$nodebase$nodeidx"; # create its node number
while (defined $node->{$nodenumber}) {
$auth_name = $node->{$nodenumber}{auth_name};
if (!$auth_name || $auth->is_authorized("/App/SessionObject/$name/$auth_name")) {
$label = $node->{$nodenumber}{label};
$label = $node->{$nodenumber}{value} if (!defined $label);
$label = "" if (!defined $label);
if ($node->{$nodenumber}{enabled} == 1) {
$w = $context->widget("$name-button$nodenumber",
class => "App::Widget::ImageButton",
image_script => "App/app-button",
volatile => 1,
height => "19",
width => "127",
bevel => "2",
label => $label,
event_target => $name,
event => "open_exclusively",
args => $nodenumber,
type => "tab",
);
#$w->set("selected", $node->{$nodenumber}{open} ? 1 : 0);
if ($node->{$nodenumber}{open}) {
$w->set("selected", 1);
}
else {
$w->set("selected", 0);
}
$html .= $w->html();
} else {
# $html .= "DISABLED <br>";
( run in 0.785 second using v1.01-cache-2.11-cpan-5735350b133 )