From 1e8525d3e111d03f7d140d694776e692f14ea7c3 Mon Sep 17 00:00:00 2001 From: Jamie Cameron Date: Sun, 6 Jan 2008 06:59:39 +0000 Subject: [PATCH] Finished off ui-lib conversion --- lvm/CHANGELOG | 1 + lvm/edit_lv.cgi | 184 +++++++++++++++++++--------------------------- lvm/edit_pv.cgi | 74 ++++++++----------- lvm/edit_vg.cgi | 60 +++++++-------- lvm/index.cgi | 9 ++- lvm/lang/en | 3 +- lvm/lvm-lib.pl | 25 +++---- lvm/mkfs.cgi | 2 +- lvm/mkfs_form.cgi | 2 +- lvm/save_lv.cgi | 18 ++--- lvm/save_pv.cgi | 18 ++--- lvm/save_vg.cgi | 12 +-- 12 files changed, 180 insertions(+), 228 deletions(-) diff --git a/lvm/CHANGELOG b/lvm/CHANGELOG index f108c44f9..ae11f0877 100644 --- a/lvm/CHANGELOG +++ b/lvm/CHANGELOG @@ -8,3 +8,4 @@ When viewing a physical volume, the space used by each logical volume on it is d Fixed display of space used on each physical volume by a logical volume for LVM version 2. ---- Changes since 1.390 ---- Re-designed the module's main page to use tabs, and added an option to show volumes and groups in tables (with more information) instead of using icons. +Converted all user interface code to use the new Webmin UI library. diff --git a/lvm/edit_lv.cgi b/lvm/edit_lv.cgi index 0bab18779..a8e43ff15 100755 --- a/lvm/edit_lv.cgi +++ b/lvm/edit_lv.cgi @@ -23,128 +23,105 @@ else { $vg->{'pe_size'} }; } -print "
\n"; -print "\n"; -print "\n"; -print "\n"; -print "\n"; -print "\n"; -print "
$text{'lv_header'}
\n"; +print &ui_form_start("save_lv.cgi"); +print &ui_hidden("vg", $in{'vg'}); +print &ui_hidden("lv", $in{'lv'}); +print &ui_hidden("snap", $in{'snap'}); +print &ui_table_start($text{'lv_header'}, "width=100%", 4); if ($stat[2]) { - print "\n"; - print "\n"; + # Current status + print &ui_table_row($text{'lv_name'}, $lv->{'name'}); - print "\n"; - print "\n"; + print &ui_table_row($text{'lv_size'}, &nice_size($lv->{'size'}*1024)); } else { - print "\n"; - print "\n"; + # Details for new LV + print &ui_table_row($text{'lv_name'}, + &ui_textbox("name", $lv->{'name'}, 20)); - print "\n"; - print "\n"; + print &ui_table_row($text{'lv_size'}, + &ui_textbox("size", $lv->{'size'}, 8)." kB"); } -print "\n"; -print "\n"; +# Number of physical extents +print &ui_table_row($text{'lv_petotal'}, + &text('lv_petotals', $vg->{'pe_alloc'}, $vg->{'pe_total'})); -print "\n"; -print "\n"; +# Extent size +print &ui_table_row($text{'lv_pesize'}, + &nice_size($vg->{'pe_size'}*1024)); if ($in{'lv'}) { - print "\n"; - print "\n"; + # Device file and current status + print &ui_table_row($text{'lv_device'}, "$lv->{'device'}"); - print "\n"; + print &ui_table_row($text{'lv_status'}, + @stat ? &device_message(@stat) : $text{'lv_notused'}); } if ($lv->{'is_snap'}) { - print "\n"; + print &ui_table_row($text{'lv_snapof'}, $snapsel); } elsif ($stat[2]) { # Display current permissons and allocation method - print "\n"; - print "\n"; + print &ui_table_row($text{'lv_perm'}, + $text{"lv_perm".$lv->{'perm'}}); - print "\n"; - print "\n"; + print &ui_table_row($text{'lv_alloc'}, + $text{"lv_alloc".$lv->{'alloc'}}); } else { # Allow editing of permissons and allocation method - print "\n"; - printf "\n", - $lv->{'perm'} eq 'r' ? 'checked' : '', $text{'lv_permr'}; + print &ui_table_row($text{'lv_perm'}, + &ui_radio("perm", $lv->{'perm'}, + [ [ 'rw', $text{'lv_permrw'} ], + [ 'r', $text{'lv_permr'} ] ])); - print "\n"; - printf "\n", - $lv->{'alloc'} eq 'n' ? 'checked' : '', $text{'lv_allocn'}; + print &ui_table_row($text{'lv_alloc'}, + &ui_radio("alloc", $lv->{'alloc'}, + [ [ 'y', $text{'lv_allocy'} ], + [ 'n', $text{'lv_allocn'} ] ])); } if (!$in{'lv'} && !$lv->{'is_snap'}) { # Allow selection of striping - print "\n"; + print &ui_table_row($text{'lv_stripe'}, + &ui_opt_textbox("stripe", undef, 4, $text{'lv_nostripe'}, + $text{'lv_stripes2'}), 3); } elsif (!$lv->{'is_snap'}) { # Show current striping - print "\n"; + print &ui_table_row($text{'lv_stripe'}, + $lv->{'stripes'} > 1 ? &text('lv_stripes', $lv->{'stripes'}) + : $text{'lv_nostripe'}, 3); } # Show free disk space if (@stat && $stat[2]) { ($total, $free) = &mount::disk_space($stat[1], $stat[0]); - print "\n"; + print &ui_table_row($text{'lv_freedisk'}, + &nice_size($free*1024)); - print "\n"; + print &ui_table_row($text{'lv_free'}, + ($total ? 100 * $free / $total : 0)." %"); } # Show extents on PVs @@ -152,65 +129,54 @@ if ($in{'lv'}) { @pvinfo = &get_logical_volume_usage($lv); if (@pvinfo) { @pvs = &list_physical_volumes($in{'vg'}); - print "\n"; + print &ui_table_row($text{'lv_pvs'}, join(" , ", @pvlist), 3); } } -print "
$text{'lv_name'}$lv->{'name'}$text{'lv_size'}",&nice_size($lv->{'size'}*1024),"
$text{'lv_name'}$text{'lv_size'} kB
$text{'lv_petotal'}",&text('lv_petotals', $vg->{'pe_alloc'}, $vg->{'pe_total'}), - "$text{'lv_pesize'}$vg->{'pe_size'} kB
$text{'lv_device'}$lv->{'device'}$text{'lv_status'} \n"; - if (!@stat) { - print $text{'lv_notused'}; - } - else { - $msg = &device_message(@stat); - print $msg; - } - print "
$text{'lv_snapof'} \n"; if ($in{'lv'}) { # Show which LV this is a snapshot of local @snapof = grep { $_->{'size'} == $lv->{'size'} && $_->{'has_snap'} } @lvs; if (@snapof == 1) { - print "$snapof[0]->{'name'}"; + $snapsel = "$snapof[0]->{'name'}"; } else { - print "$text{'lv_nosnap'}"; + $snapsel = "$text{'lv_nosnap'}"; } } else { # Allow selection of snapshot source - print "\n"; + $snapsel = &ui_select("snapof", undef, + [ map { $_->{'name'} } grep { !$_->{'is_snap'} } @lvs ]); } - print "
$text{'lv_perm'}",$text{"lv_perm".$lv->{'perm'}},"$text{'lv_alloc'}",$text{"lv_alloc".$lv->{'alloc'}},"
$text{'lv_perm'} %s\n", - $lv->{'perm'} eq 'rw' ? 'checked' : '', $text{'lv_permrw'}; - printf " %s$text{'lv_alloc'} %s\n", - $lv->{'alloc'} eq 'y' ? 'checked' : '', $text{'lv_allocy'}; - printf " %s
$text{'lv_stripe'} \n"; - printf " %s\n", - $text{'lv_nostripe'}; - print "\n"; - print &text('lv_stripes', ""), - "
$text{'lv_stripe'} \n"; - if ($lv->{'stripes'} > 1) { - print &text('lv_stripes', $lv->{'stripes'}); - } - else { - print $text{'lv_nostripe'}; - } - print "
$text{'lv_freedisk'} \n"; - print &nice_size($free*1024),"$text{'lv_free'} \n"; - printf "%d %%\n", $total ? 100 * $free / $total : 0; - print "
$text{'lv_pvs'} \n"; foreach $p (@pvinfo) { - print " , \n" if ($p ne $pvinfo[0]); ($pv) = grep { $_->{'name'} eq $p->[0] } @pvs; - print "{'name'}'>$pv->{'name'} "; - print &nice_size($p->[1]*$pv->{'pe_size'}*1024),"\n"; + push(@pvlist, "{'name'}'>$pv->{'name'} ".&nice_size($p->[1]*$pv->{'pe_size'}*1024)); } - print "
\n"; -print "\n"; +print &ui_table_end(); if ($stat[2]) { - print "\n"; + # In use - cannot be edited + print &ui_form_end(); + print "$text{'lv_cannot'}

\n"; } elsif ($in{'lv'}) { - print "

\n"; - print "\n"; + print &ui_form_end([ [ undef, $text{'save'} ], + [ 'delete', $text{'delete'} ] ]); } else { - print "\n"; + print &ui_form_end([ [ undef, $text{'create'} ] ]); } -print "
$text{'lv_cannot'}
\n"; if ($in{'lv'} && !$stat[2] && !$lv->{'is_snap'}) { # Show button for creating filesystems print "
\n"; - print "\n"; - print "\n"; - print "\n"; - print "\n"; - print "\n"; - print "\n"; + print &ui_buttons_row("mkfs_form.cgi", $text{'lv_mkfs'}, + $text{'lv_mkfsdesc'}, + &ui_hidden("dev", $lv->{'device'}), + &ui_select("fs", $fstype, + [ map { [ $_, $fdisk::text{"fs_".$_}." ($_)" ] } + &fdisk::supported_filesystems() ])); if (!@stat) { # Show button for mounting $type = $config{'lasttype_'.$lv->{'device'}} || "ext2"; - print "\n"; - print "\n"; - print "{'device'}>\n"; - print "\n"; - print "\n"; - print "\n"; + print &ui_buttons_row("../mount/edit_mount.cgi", + $text{'lv_newmount'}, + $text{'lv_mountmsg'}, + &ui_hidden("type", $type). + &ui_hidden("newdev", $lv->{'device'}), + &ui_textbox("newdir", "", 20)); } - print "
\n"; - print "$text{'lv_mkfsdesc'}
\n"; - print "\n"; - print "$text{'lv_mountmsg'}
\n"; + print &ui_buttons_end(); } -&ui_print_footer("", $text{'index_return'}); +&ui_print_footer("index.cgi?mode=lvs", $text{'index_return'}); diff --git a/lvm/edit_pv.cgi b/lvm/edit_pv.cgi index 7d9641f2e..bac3ce128 100755 --- a/lvm/edit_pv.cgi +++ b/lvm/edit_pv.cgi @@ -18,74 +18,60 @@ else { $pv = { 'alloc' => 'y' }; } -print "
\n"; -print "\n"; -print "\n"; -print "\n"; -print "\n"; -print "
$text{'pv_header'}
\n"; +print &ui_form_start("save_pv.cgi"); +print &ui_hidden("vg", $in{'vg'}); +print &ui_hidden("pv", $in{'pv'}); +print &ui_table_start($text{'pv_header'}, "width=100%", 4); -print "\n"; -print "\n"; -printf "\n", - $pv->{'alloc'} eq 'n' ? 'checked' : '', $text{'no'}; +# Enabled for allocation +print &ui_table_row($text{'pv_alloc'}, + &ui_radio('alloc', $pv->{'alloc'}, [ [ 'y', $text{'yes'} ], + [ 'n', $text{'no'} ] ])); if ($in{'pv'}) { - print "\n"; - print "\n"; + # Details of existing PV + print &ui_table_row($text{'pv_size'}, + &nice_size($pv->{'size'}*1024)); - print "\n"; - print "\n"; + print &ui_table_row($text{'pv_petotal'}, + &text('lv_petotals', $pv->{'pe_alloc'}, $pv->{'pe_total'})); - print "\n"; - print "\n"; + print &ui_table_row($text{'pv_pesize'}, + &nice_size($pv->{'pe_size'}*1024)); - print "\n"; - print "\n"; - - print "\n"; + print &ui_table_row($text{'pv_petotal2'}, + &text('lv_petotals', &nice_size($pv->{'pe_alloc'}*$pv->{'pe_size'}*1024), &nice_size($pv->{'pe_total'}*$pv->{'pe_size'}*1024))); + # Used by logical volumes @lvinfo = &get_physical_volume_usage($pv); if (@lvinfo) { @lvs = &list_logical_volumes($in{'vg'}); - print "\n"; + print &ui_table_row($text{'pv_lvs'}, join(" , ", @lvlist), 3); } } -else { - print "\n"; - } -print "
$text{'pv_device'} \n"; +# Device file if ($in{'pv'}) { - local $name = &foreign_call("mount", "device_name", $pv->{'device'}); - print "$name\n"; + print &ui_table_row($text{'pv_device'}, + &mount::device_name($pv->{'device'}), 3); } else { - &device_input(); + print &ui_table_row($text{'pv_device'}, &device_input(), 3); } -print "
$text{'pv_alloc'} %s\n", - $pv->{'alloc'} eq 'y' ? 'checked' : '', $text{'yes'}; -printf " %s$text{'pv_size'}",&nice_size($pv->{'size'}*1024),"
$text{'pv_petotal'}",&text('lv_petotals', $pv->{'pe_alloc'}, $pv->{'pe_total'}), - "$text{'pv_pesize'}$pv->{'pe_size'} kB
$text{'pv_petotal2'}",&text('lv_petotals', &nice_size($pv->{'pe_alloc'}*$pv->{'pe_size'}*1024), &nice_size($pv->{'pe_total'}*$pv->{'pe_size'}*1024)), - "
$text{'pv_lvs'} \n"; foreach $l (@lvinfo) { - print " , \n" if ($l ne $lvinfo[0]); ($lv) = grep { $_->{'name'} eq $l->[0] } @lvs; - print "{'name'}'>$lv->{'name'} "; - print &nice_size($l->[2]*$pv->{'pe_size'}*1024),"\n"; + push(@lvlist, "{'name'}'>$lv->{'name'} ".&nice_size($l->[2]*$pv->{'pe_size'}*1024)); } - print "
\n"; -print "\n"; +print &ui_table_end(); if ($in{'pv'}) { - print "\n"; - print "\n" if (@pvs > 1); + print &ui_form_end([ [ undef, $text{'save'} ], + @pvs > 1 ? ( [ 'delete', $text{'pv_delete2'} ] ) + : ( ) ]); } else { - print "\n"; + print &ui_form_end([ [ undef, $text{'pv_create2'} ] ]); } -print "
\n"; -&ui_print_footer("", $text{'index_return'}); +&ui_print_footer("index.cgi?mode=pvs", $text{'index_return'}); diff --git a/lvm/edit_vg.cgi b/lvm/edit_vg.cgi index e72a23ab6..c5b544a4f 100755 --- a/lvm/edit_vg.cgi +++ b/lvm/edit_vg.cgi @@ -14,54 +14,48 @@ else { &ui_print_header(undef, $text{'vg_create'}, ""); } -print "\n"; -print "\n"; -print "\n"; -print "\n"; -print "
$text{'vg_header'}
\n"; +print &ui_form_start("save_vg.cgi"); +print &ui_hidden("vg", $in{'vg'}); +print &ui_table_start($text{'vg_header'}, "width=100%", 4); -print "\n"; -print "\n"; +# VG name +print &ui_table_row($text{'vg_name'}, + &ui_textbox("name", $vg->{'name'}, 20)); if ($in{'vg'}) { - print "\n"; - print "\n"; + # Details of existing VG + print &ui_table_row($text{'vg_size'}, + &nice_size($vg->{'size'}*1024)); - print "\n"; - print "\n"; + print &ui_table_row($text{'vg_petotal'}, + &text('lv_petotals', $vg->{'pe_alloc'}, $vg->{'pe_total'})); - print "\n"; - print "\n"; + print &ui_table_row($text{'vg_pesize'}, + &nice_size($vg->{'pe_size'}*1024)); - print "\n"; - print "\n"; - - print "\n"; + print &ui_table_row($text{'vg_petotal2'}, + &text('lv_petotals', + &nice_size($vg->{'pe_alloc'}*$vg->{'pe_size'}*1024), + &nice_size($vg->{'pe_total'}*$vg->{'pe_size'}*1024))); } else { - print "\n"; - print "\n"; + # Extent size for new VG + print &ui_table_row($text{'vg_pesize'}, + &ui_opt_textbox("pesize", undef, 8, $text{'default'})." kB"); - print "\n"; + print &ui_table_row($text{'vg_device'}, + &device_input(), 3); } -print "
$text{'vg_name'}$text{'vg_size'}",&nice_size($vg->{'size'}*1024),"
$text{'vg_petotal'}",&text('lv_petotals', $vg->{'pe_alloc'}, $vg->{'pe_total'}), - "$text{'vg_pesize'}$vg->{'pe_size'} kB
$text{'vg_petotal2'}",&text('lv_petotals', &nice_size($vg->{'pe_alloc'}*$vg->{'pe_size'}*1024), &nice_size($vg->{'pe_total'}*$vg->{'pe_size'}*1024)),"
$text{'vg_pesize'} ", - $text{'default'},"\n"; - print "\n"; - print " kB
$text{'vg_device'} \n"; - &device_input(); - print "
\n"; -print "\n"; +print &ui_table_end(); if ($in{'vg'}) { - print "\n"; - print "\n"; + print &ui_form_end([ [ undef, $text{'save'} ], + [ 'delete', $text{'delete'} ] ]); } else { - print "\n"; + print &ui_form_end([ [ undef, $text{'create'} ] ]); } print "
\n"; -&ui_print_footer("", $text{'index_return'}); +&ui_print_footer("index.cgi?mode=vgs", $text{'index_return'}); diff --git a/lvm/index.cgi b/lvm/index.cgi index 86a895dee..cb3508307 100755 --- a/lvm/index.cgi +++ b/lvm/index.cgi @@ -150,8 +150,13 @@ if (@vgs) { foreach $v (@vgs) { push(@links, "".&text('index_addlv2', $v->{'name'}).""); - push(@links, "".&text('index_addlv2s', $v->{'name'}).""); + @lvsin = grep { $_->{'vg'} eq $v->{'name'} } @alllvs; + if (@lvsin) { + push(@links, + "".&text('index_addlv2s', $v->{'name'}). + ""); + } } if (!@alllvs) { # None yet diff --git a/lvm/lang/en b/lvm/lang/en index cf2d38e81..5970b4cdc 100644 --- a/lvm/lang/en +++ b/lvm/lang/en @@ -29,7 +29,7 @@ index_pvvg=In volume group index_pvsize=Device size index_pvtotal=Blocks used index_pvtotal2=Size used -index_vgsdesc=A volume group is a set of disks that can be allocated to one or more logical volumes. Most systems will have only one. +index_vgsdesc=A volume group is a set of disks that can be allocated to one or more logical volumes. Most systems will have only one, and at least one must be created before any physical or logical volumes can be. index_pvsdesc=A physical volume is a disk partition or RAID device that is part of a volume group. Its disk space can then be used by one or more logical volumes. index_lvsdesc=A logical volume is a virtual partition created from the combined disk space of a volume group. Each can have a filesystem which is then mounted to store files. index_lvname=Logical volume @@ -64,6 +64,7 @@ lv_allocn=Non-contiguous lv_stripe=Volume striping lv_nostripe=Disabled (always allocate from start) lv_stripes=Stripe across $1 physical volumes +lv_stripes2=Physical volumes to stripe across lv_err=Failed to save logical volume lv_ename=Missing or invalid volume name lv_esame=A logical volume with the same name already exists diff --git a/lvm/lvm-lib.pl b/lvm/lvm-lib.pl index debae614a..e51aa387e 100644 --- a/lvm/lvm-lib.pl +++ b/lvm/lvm-lib.pl @@ -581,6 +581,7 @@ return @rv; } # device_input() +# Returns a selector for a free device sub device_input { local (%used, $vg, $pv, $d, $p); @@ -593,7 +594,7 @@ foreach $vg (&list_volume_groups()) { } # Show available partitions -print "\n"; -print " ", - &file_chooser_button("other"),"
\n"; -print "$text{'pv_warn'}\n"; +push(@opts, [ '', $text{'pv_other'} ]); +return &ui_select("device", $opts[0]->[0], \@opts)." ". + &ui_textbox("other", undef, 30)." ".&file_chooser_button("other"). + "
\n$text{'pv_warn'}"; } # get_lvm_version() diff --git a/lvm/mkfs.cgi b/lvm/mkfs.cgi index 92f344c0d..efd8c6c38 100755 --- a/lvm/mkfs.cgi +++ b/lvm/mkfs.cgi @@ -24,5 +24,5 @@ $config{'lasttype_'.$in{'dev'}} = $in{'fs'}; &save_module_config(); &webmin_log("mkfs", "lv", $in{'dev'}, \%in); -&ui_print_footer("", $text{'index_return'}); +&ui_print_footer("index.cgi?mode=lvs", $text{'index_return'}); diff --git a/lvm/mkfs_form.cgi b/lvm/mkfs_form.cgi index 4e6a832c5..421602558 100755 --- a/lvm/mkfs_form.cgi +++ b/lvm/mkfs_form.cgi @@ -21,5 +21,5 @@ print "\n"; print "
\n"; print "
\n"; -&ui_print_footer("", $text{'index_return'}); +&ui_print_footer("index.cgi?mode=lvs", $text{'index_return'}); diff --git a/lvm/save_lv.cgi b/lvm/save_lv.cgi index b95769dfb..483f5db5a 100755 --- a/lvm/save_lv.cgi +++ b/lvm/save_lv.cgi @@ -16,20 +16,20 @@ if ($in{'confirm'}) { $err = &delete_logical_volume($lv); &error("
$err
") if ($err); &webmin_log("delete", "lv", $in{'lv'}, $lv); - &redirect(""); + &redirect("index.cgi?mode=lvs"); } elsif ($in{'delete'}) { # Ask the user if he is sure &ui_print_header(undef, $text{'lv_delete'}, ""); - print "
\n"; - print "\n"; - print "\n"; + print "
\n"; + print &ui_form_start("save_lv.cgi"); + print &ui_hidden("vg", $in{'vg'}); + print &ui_hidden("lv", $in{'lv'}); print "",&text($lv->{'is_snap'} ? 'lv_rusnap' : 'lv_rusure', "$lv->{'device'}"),"

\n"; - print "\n"; - print "

\n"; - &ui_print_footer("", $text{'index_return'}); + print &ui_form_end([ [ 'confirm', $text{'lv_deleteok'} ] ]); + print "
\n"; + &ui_print_footer("index.cgi?mode=lvs", $text{'index_return'}); } else { # Validate inputs @@ -140,6 +140,6 @@ else { } &webmin_log("modify", "lv", $in{'lv'}, $lv); } - &redirect(""); + &redirect("index.cgi?mode=lvs"); } diff --git a/lvm/save_pv.cgi b/lvm/save_pv.cgi index 9469c435b..5a9f1176f 100755 --- a/lvm/save_pv.cgi +++ b/lvm/save_pv.cgi @@ -15,20 +15,20 @@ if ($in{'confirm'}) { $err = &delete_physical_volume($pv); &error("
$err
") if ($err); &webmin_log("delete", "pv", $in{'pv'}, $pv); - &redirect(""); + &redirect("index.cgi?mode=pvs"); } elsif ($in{'delete'}) { # Ask the user if he is sure &ui_print_header(undef, $text{'pv_delete'}, ""); - print "
\n"; - print "\n"; - print "\n"; + print "
\n"; + print &ui_form_start("save_pv.cgi"); + print &ui_hidden("vg", $in{'vg'}); + print &ui_hidden("pv", $in{'pv'}); print "",&text('pv_rusure', "$pv->{'device'}"),"

\n"; - print "\n"; - print "

\n"; - &ui_print_footer("", $text{'index_return'}); + print &ui_form_end([ [ 'confirm', $text{'pv_deleteok'} ] ]); + print "
\n"; + &ui_print_footer("index.cgi?mode=pvs", $text{'index_return'}); } else { &error_setup($text{'pv_err'}); @@ -55,6 +55,6 @@ else { } &webmin_log($in{'pv'} ? "modify" : "create", "pv", $pv->{'device'},$pv); - &redirect(""); + &redirect("index.cgi?mode=pvs"); } diff --git a/lvm/save_vg.cgi b/lvm/save_vg.cgi index 43eea7ac2..39a197da1 100755 --- a/lvm/save_vg.cgi +++ b/lvm/save_vg.cgi @@ -24,12 +24,12 @@ elsif ($in{'delete'}) { print "

",&text('vg_cannot', scalar(@lvs)),"

\n"; } else { - print "

\n"; - print "\n"; + print "
\n"; + print &ui_form_start("save_vg.cgi"); + print &ui_hidden("vg", $in{'vg'}); print "",&text('vg_rusure', $vg->{'name'}),"

\n"; - print "\n"; - print "

\n"; + print &ui_form_end([ [ 'confirm', $text{'vg_deleteok'} ] ]); + print "
\n"; } &ui_print_footer("", $text{'index_return'}); } @@ -64,6 +64,6 @@ else { } &webmin_log("modify", "vg", $in{'vg'}, $vg); } - &redirect(""); + &redirect("index.cgi?mode=vgs"); }