diff options
Diffstat (limited to 'perl-install/diskdrake/dav.pm')
-rw-r--r-- | perl-install/diskdrake/dav.pm | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/perl-install/diskdrake/dav.pm b/perl-install/diskdrake/dav.pm index a358c987a..d236ba0f9 100644 --- a/perl-install/diskdrake/dav.pm +++ b/perl-install/diskdrake/dav.pm @@ -1,4 +1,4 @@ -package diskdrake::dav; # $Id: dav.pm 215411 2007-04-25 12:26:16Z pixel $ +package diskdrake::dav; # $Id: dav.pm 259328 2009-08-17 12:57:51Z alefebvre $ use diagnostics; use strict; @@ -37,6 +37,7 @@ sub create { ask_server($in, $dav, $all_hds) or return; push @{$all_hds->{davs}}, $dav; config($in, $dav, $all_hds); + return; } sub config { @@ -45,11 +46,12 @@ sub config { my $dav = { %$dav_ }; #- working on a local copy so that "Cancel" works my $action; - while ($action ne 'Done') { + my $exit; + while (!$exit && $action ne 'Done') { my %actions = my @actions = actions($dav); $action = $in->ask_from_list_('', format_dav_info($dav), [ map { $_->[0] } group_by2 @actions ], 'Done') or return; - $actions{$action}->($in, $dav, $all_hds); + $exit = $actions{$action}->($in, $dav, $all_hds); } %$dav_ = %$dav; #- applying } @@ -63,6 +65,7 @@ sub actions { N_("Server") => \&ask_server, N_("Mount point") => \&mount_point, N_("Options") => \&options, + N_("Remove") => \&remove, N_("Done") => sub {}, ); } @@ -95,11 +98,23 @@ sub ask_server { sub options { my ($in, $dav, $all_hds) = @_; diskdrake::interactive::Options($in, {}, $dav, $all_hds); + return; } + +sub remove { + my ($in, $dav, $all_hds) = @_; + if ($in->ask_yesorno(N("Warning"), N("Are you sure you want to delete this mountpoint?"))) { + @{$all_hds->{davs}} = grep($_->{mntpoint} ne $dav->{mntpoint}, @{$all_hds->{davs}}); + return 1; + } + return; +} + sub mount_point { my ($in, $dav, $all_hds) = @_; my $proposition = $dav->{device} =~ /(\w+)/ ? "/mnt/$1" : "/mnt/dav"; diskdrake::interactive::Mount_point_raw_hd($in, $dav, $all_hds, $proposition); + return; } sub format_dav_info { |