push @show, $key, \%info;
}
+ my $section=defined $plugin ? $plugin." ".gettext("plugin") : "main";
+ my %enabledfields;
+ my $shownfields=0;
+
my $plugin_forced=defined $plugin && (! $plugininfo{safe} ||
(exists $config{websetup_force_plugins} && grep { $_ eq $plugin } @{$config{websetup_force_plugins}}));
if ($plugin_forced && ! $enabled) {
# plugin is forced disabled, so skip its configuration
- return;
+ @show=();
+ }
+ # show plugin toggle
+ if (defined $plugin && (! $plugin_forced || $config{websetup_advanced})) {
+ my $name="enable.$plugin";
+ $form->field(
+ name => $name,
+ label => "",
+ type => "checkbox",
+ options => [ [ 1 => sprintf(gettext("enable %s?"), $plugin) ] ],
+ value => $enabled,
+ fieldset => $section,
+ );
+ if ($plugin_forced) {
+ $form->field(name => $name, disabled => 1);
+ }
+ else {
+ $enabledfields{$name}=[$name, \%plugininfo];
+ }
}
- my %shownfields;
- my $section=defined $plugin ? $plugin." ".gettext("plugin") : "main";
-
while (@show) {
my $key=shift @show;
my %info=%{shift @show};
$form->field(name => $name, disabled => 1);
}
else {
- $shownfields{$name}=[$key, \%info];
+ $enabledfields{$name}=[$key, \%info];
}
+ $shownfields++;
}
-
- if (defined $plugin && (! $plugin_forced || $config{websetup_advanced})) {
- my $name="enable.$plugin";
- $section="plugins" unless %shownfields;
- $form->field(
- name => $name,
- label => "",
- type => "checkbox",
- options => [ [ 1 => sprintf(gettext("enable %s?"), $plugin) ] ],
- value => $enabled,
- fieldset => $section,
- );
- if ($plugin_forced) {
- $form->field(name => $name, disabled => 1);
- }
- else {
- $shownfields{$name}=[$name, \%plugininfo];
- }
+
+ # if no fields were shown for the plugin, drop it into the
+ # plugins fieldset
+ if (defined $plugin && (! $plugin_forced || $config{websetup_advanced}) &&
+ ! $shownfields) {
+ $form->field(name => "enable.$plugin", fieldset => "plugins");
}
- return %shownfields;
+ return %enabledfields;
} #}}}
sub showform ($$) { #{{{
stylesheet => IkiWiki::baseurl()."style.css",
);
- if ($form->submitted eq 'Basic') {
+ if ($form->submitted eq 'Basic Mode') {
$form->field(name => "showadvanced", type => "hidden",
value => 0, force => 1);
}
- elsif ($form->submitted eq 'Advanced') {
+ elsif ($form->submitted eq 'Advanced Mode') {
$form->field(name => "showadvanced", type => "hidden",
value => 1, force => 1);
}
my $advancedtoggle;
if ($form->field("showadvanced")) {
$config{websetup_advanced}=1;
- $advancedtoggle="Basic";
+ $advancedtoggle="Basic Mode";
}
else {
$config{websetup_advanced}=0;
- $advancedtoggle="Advanced";
+ $advancedtoggle="Advanced Mode";
}
my $buttons=["Save Setup", $advancedtoggle, "Cancel"];