diff --git a/fdisk/edit_disk.cgi b/fdisk/edit_disk.cgi index dbdd6f64a..b74638522 100755 --- a/fdisk/edit_disk.cgi +++ b/fdisk/edit_disk.cgi @@ -121,33 +121,37 @@ else { print &ui_links_row(\@edlinks); # Buttons for IDE params and SMART -print &ui_hr(); -print &ui_buttons_start(); +my $ui_buttons_content; if (&supports_hdparm($d)) { - print &ui_buttons_row("edit_hdparm.cgi", $text{'index_hdparm'}, + $ui_buttons_content = &ui_buttons_row("edit_hdparm.cgi", $text{'index_hdparm'}, $text{'index_hdparmdesc'}, &ui_hidden("disk", $d->{'index'})); } if (&supports_smart($d)) { - print &ui_buttons_row("../smart-status/index.cgi", $text{'index_smart'}, + $ui_buttons_content = &ui_buttons_row("../smart-status/index.cgi", $text{'index_smart'}, $text{'index_smartdesc'}, &ui_hidden("drive", $d->{'device'})); } if (&supports_relabel($d)) { if ($d->{'table'} eq 'unknown') { - print &ui_buttons_row( + $ui_buttons_content = &ui_buttons_row( "edit_relabel.cgi", $text{'index_relabel2'}, $text{'index_relabeldesc2'}, &ui_hidden("device", $d->{'device'})); } else { - print &ui_buttons_row( + $ui_buttons_content = &ui_buttons_row( "edit_relabel.cgi", $text{'index_relabel'}, $text{'index_relabeldesc'}, &ui_hidden("device", $d->{'device'})); } } -print &ui_buttons_end(); +if ($ui_buttons_content) { + print &ui_hr(); + print &ui_buttons_start(); + print $ui_buttons_content; + print &ui_buttons_end(); +} &ui_print_footer("", $text{'index_return'}); diff --git a/fdisk/edit_part.cgi b/fdisk/edit_part.cgi index 83905c280..3565152b9 100755 --- a/fdisk/edit_part.cgi +++ b/fdisk/edit_part.cgi @@ -111,19 +111,24 @@ $dev = $dinfo->{'prefix'} =~ /^\/dev\/mmcblk.*/ ? $dinfo->{'prefix'}.$np; print &ui_table_row($text{'edit_device'}, $dev); +if (!$in{'new'}) { + @stat = &device_status($dev); + $mounted = $stat[2]; + } + # Partition type if ($pinfo->{'extended'} || $in{'new'} == 3) { # Extended, cannot change print &ui_table_row($text{'edit_type'}, $text{'extended'}); } -elsif ($pinfo->{'edittype'} || $in{'new'}) { +elsif (($pinfo->{'edittype'} || $in{'new'}) && !$mounted) { # Can change print &ui_table_row($text{'edit_type'}, &ui_select("type", $in{'new'} ? &default_tag() : $pinfo->{'type'}, [ map { [ $_, &tag_name($_) ] } (sort { &tag_name($a) cmp &tag_name($b) } - &list_tags()) ])); + &list_tags($pinfo->{'dtable'})) ])); } else { # Tool doesn't allow change @@ -160,9 +165,8 @@ if ($pinfo->{'extended'}) { } } elsif (!$in{'new'}) { - @stat = &device_status($dev); if (@stat) { - $msg = $stat[2] ? 'edit_mount' : 'edit_umount'; + $msg = $mounted ? 'edit_mount' : 'edit_umount'; $msg .= 'vm' if ($stat[1] eq 'swap'); $msg .= 'raid' if ($stat[1] eq 'raid'); $msg .= 'lvm' if ($stat[1] eq 'lvm'); @@ -199,7 +203,7 @@ if (($has_e2label || $has_xfs_db) && &supports_label($pinfo) && !$in{'new'}) { } # Show field for partition name -if (&supports_name($dinfo)) { +if (&supports_name($dinfo) && !$mounted) { print &ui_table_row($text{'edit_name'}, &ui_textbox("name", $pinfo->{'name'}, 20)); } @@ -216,7 +220,7 @@ if ($in{'new'}) { } elsif (@stat && $stat[2]) { print &ui_form_end(); - print "$text{'edit_inuse'}
\n";
+ print "$text{'edit_inuse'}\n";
}
else {
print &ui_form_end([ $pinfo->{'extended'} ? ( ) :
@@ -225,13 +229,12 @@ else {
}
if (!$in{'new'} && !$pinfo->{'extended'}) {
- print &ui_hr();
- print &ui_buttons_start();
+ my $ui_buttons_content;
if (!@stat || $stat[2] == 0) {
# Show form for creating filesystem
local $rt = @stat ? $stat[1] : &conv_type($pinfo->{'type'});
- print &ui_buttons_row("mkfs_form.cgi",
+ $ui_buttons_content = &ui_buttons_row("mkfs_form.cgi",
$text{'edit_mkfs2'}, $text{'edit_mkfsmsg2'},
&ui_hidden("dev", $dev),
&ui_select("type", $rt,
@@ -241,7 +244,7 @@ if (!$in{'new'} && !$pinfo->{'extended'}) {
if (!$in{'new'} && @stat && $stat[2] == 0 && &can_fsck($stat[1])) {
# Show form to fsck filesystem
- print &ui_buttons_row("fsck_form.cgi",
+ $ui_buttons_content = &ui_buttons_row("fsck_form.cgi",
$text{'edit_fsck'},&text('edit_fsckmsg', "fsck"),
&ui_hidden("dev", $dev)." ".
&ui_hidden("type", $stat[1]));
@@ -249,7 +252,7 @@ if (!$in{'new'} && !$pinfo->{'extended'}) {
if (!$in{'new'} && @stat && $stat[2] == 0 && &can_tune($stat[1])) {
# Show form to tune filesystem
- print &ui_buttons_row("tunefs_form.cgi",
+ $ui_buttons_content = &ui_buttons_row("tunefs_form.cgi",
$text{'edit_tune'}, $text{'edit_tunemsg'},
&ui_hidden("dev", $dev)." ".
&ui_hidden("type", $stat[1]));
@@ -260,7 +263,7 @@ if (!$in{'new'} && !$pinfo->{'extended'}) {
# Show form to mount filesystem
if ($types[0] eq "swap") {
# Swap partition
- print &ui_buttons_row("../mount/edit_mount.cgi",
+ $ui_buttons_content = &ui_buttons_row("../mount/edit_mount.cgi",
$text{'edit_newmount2'},$text{'edit_mountmsg2'},
&ui_hidden("type", $types[0]).
&ui_hidden("newdev", $dev));
@@ -275,14 +278,19 @@ if (!$in{'new'} && !$pinfo->{'extended'}) {
else {
$dirsel .= &ui_hidden("type", $types[0]);
}
- print &ui_buttons_row("../mount/edit_mount.cgi",
+ $ui_buttons_content = &ui_buttons_row("../mount/edit_mount.cgi",
$text{'edit_newmount'}, $text{'edit_mountmsg'},
&ui_hidden("newdev", $dev),
$dirsel);
}
}
- print &ui_buttons_end();
+ if ($ui_buttons_content) {
+ print &ui_hr();
+ print &ui_buttons_start();
+ print $ui_buttons_content;
+ print &ui_buttons_end();
+ }
}
&ui_print_footer("edit_disk.cgi?device=$dinfo->{'device'}",
diff --git a/fdisk/fdisk-lib.pl b/fdisk/fdisk-lib.pl
index 247b9431a..3b8d0e955 100755
--- a/fdisk/fdisk-lib.pl
+++ b/fdisk/fdisk-lib.pl
@@ -245,8 +245,7 @@ local $devs = join(" ", @devs);
local ($disk, $m2);
if ($has_parted) {
open(FDISK, join(" ; ",
- map { "parted $_ unit cyl print 2>/dev/null || ".
- "fdisk -l $_ 2>/dev/null" } @devs)." |");
+ map { "parted $_ unit cyl print 2>/dev/null" } @devs)." |");
}
else {
open(FDISK, "fdisk -l -u=cylinders $devs 2>/dev/null || fdisk -l $devs 2>/dev/null |");
@@ -506,15 +505,18 @@ while(