-
-
Notifications
You must be signed in to change notification settings - Fork 118
/
Copy pathwizard.cgi
executable file
·84 lines (74 loc) · 1.94 KB
/
wizard.cgi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#!/usr/local/bin/perl
# Show the multi-step post-install wizard
require './virtual-server-lib.pl';
&can_edit_templates() || &error($text{'wizard_ecannot'});
&ReadParse();
if ($in{'cancel'}) {
# Give up on the whole wizard
$config{'wizard_run'} = 1;
&save_module_config();
&redirect("");
return;
}
@wizard_steps = &get_wizard_steps();
$step = $wizard_steps[$in{'step'} || 0];
if ($in{'parse'} || $in{'mypass'}) {
# Call the parse function for this step, which may return an error.
# If so, re-display the page .. otherwise, re-direct
$pfunc = "wizard_parse_".$step;
if (defined(&$pfunc)) {
$err = &$pfunc(\%in);
&webmin_log("wizard", undef, $step);
}
if (!$err) {
# Worked, show next step, if there is one
if ($in{'step'}+1 < scalar(@wizard_steps)) {
&redirect("wizard.cgi?step=".($in{'step'}+1));
}
else {
$config{'wizard_run'} = 1;
&save_module_config();
&redirect("");
}
return;
}
}
elsif ($in{'prev'}) {
# Go back to previous page
&redirect("wizard.cgi?step=".($in{'step'}-1));
return;
}
&ui_print_header($text{'wizard_title_'.$step}, $text{'wizard_title'}, "");
print &ui_form_start("wizard.cgi", "post");
print &ui_hidden("step", $in{'step'});
if ($err) {
print &ui_alert_box($err, 'warn');
}
print &ui_table_start(undef, "width=100%", 2);
# Show step-specific inputs
$ffunc = "wizard_show_".$step;
&$ffunc();
print &ui_table_end();
if ($wizard_steps[$in{'step'}] eq 'done') {
$cmsg = $text{'wizard_end'};
$ctags = "style=\"font-weight: bold\"";
}
else {
$cmsg = $text{'wizard_cancel'};
}
if ($wizard_steps[$in{'step'}] eq 'alldone') {
$cmsg = undef;
$nmsg = $text{'wizard_finish'};
$mtags = "style=\"font-weight: bold\"";
}
else {
$nmsg = $text{'wizard_next'};
}
print &ui_form_end([
[ "prev", $text{'wizard_prev'}, undef, !$in{'step'} ],
undef,
$cmsg ? [ "cancel", $cmsg, undef, undef, $ctags ] : undef,
undef,
[ "parse", $nmsg, undef, undef, $mtags ],
], "100%");
1;