diff options
-rwxr-xr-x | drakwizard.pl | 46 |
1 files changed, 28 insertions, 18 deletions
diff --git a/drakwizard.pl b/drakwizard.pl index 77ee0095..fb27e5fa 100755 --- a/drakwizard.pl +++ b/drakwizard.pl @@ -138,6 +138,7 @@ sub map_freetext { my @data = map { my $toto = $_->{variableName}; + my $page = $_; if ($_->{fillScript}) { $ENV{$variable{$_->{variableName}}} = `. $lib_script && $_->{fillScript}`; @@ -151,29 +152,37 @@ sub map_freetext { disabled => $disabled{$_->{variableName}}, help => $_->{help}} } + elsif ($_->{main_order} eq 'field' && $_->{fillfunc}) { + { label => _($_->{helpText}), + val => $::{$perl_module_name."::"}{"$_->{fillfunc}"}->(), type => $_->{main_order}, + disabled => $disabled{$_->{variableName}}, + help => $_->{help}} + } elsif ($_->{main_order} eq 'bool') { if ($_->{listfunc}) { my @checklist = $::{$perl_module_name."::"}{"$_->{listfunc}"}->(); my $i = 21 - scalar @checklist; + # workaround to get get the scrollbar - if (!$::isSummary) { - while ($i--) { - push @checklist, ''; - } - } - else { - while ($i--) { - $::isSummary++; - } - } + if (!$::isSummary) { + while ($i--) { + push @checklist, ''; + } + } + else { + while ($i--) { + $::isSummary++; + } + } # map { if (length($_)) { + $disabled{$toto} = sub { callback($toto)}; { val => \$bool{$_}, label => "", type => 'bool', text => "$_", - help => "toto", + help => "", disabled => $disabled{$toto} } } @@ -256,7 +265,6 @@ sub get_parameter { $page->{info} = xml_text($leaf->{helpText} ? "$page->{info}\n$leaf->{helpText}" : "$page->{info}\n"); $page->{info} = c::from_utf8($page->{info}); - $page->{info} .= translate(`source $lib_script; $leaf->{fillScript}`) if ($leaf->{fillScript}) }, @@ -278,7 +286,8 @@ sub get_parameter { $disabled{$leaf->{description}} = sub { callback($leaf->{description})}; }); $actions{$tag} and &{$actions{$tag}}; - } elsif($leaf=~ /\w\D/){ + } + elsif($leaf=~ /\w\D/) { $tag = $leaf; } } @@ -292,8 +301,9 @@ sub find_page { sub display { my ($o, $page) = @_; - my $data; + + $current_page = $page; if ($page->{no_prev} || $page->{name} eq $welcome->{name}) { $::Wizard_no_previous = 1; } @@ -336,7 +346,6 @@ sub navigation { my ($o, $page, $previous_page) = @_; $page->{old_page} ||= $previous_page; - $current_page = $page; display($o, $page); my ($next, $prev) = do { if (defined $perl_module_name && $page->{func}) { @@ -397,9 +406,9 @@ sub is_disabled_summary { } sub is_disabled { - my ($widget, $page) = @_; - my $ret; - + my ($widget, $page) = @_; + my $ret; + foreach (@{$page->{freetext}}) { if ($_->{is}) { my ($val, $arg) = split(/\s*?=\s*/, $_->{is}); @@ -451,6 +460,7 @@ sub get_summary { $disabled{$leaf->{name}} = sub { callback_summary($leaf->{name})}; }, Freetext => $common_freetext_chooser = sub { + my $main_order = ($tag eq 'Chooser') ? 'combo' : ($tag eq 'Boolean') ? 'bool' : ($leaf->{editable} eq 'true') ? 'entry' |