diff --git a/fsdump/edit_dump.cgi b/fsdump/edit_dump.cgi index 3bdb80bc1..02a3bcc02 100755 --- a/fsdump/edit_dump.cgi +++ b/fsdump/edit_dump.cgi @@ -45,7 +45,13 @@ else { $dump = &get_dump($in{'id'}); $access{'edit'} && &can_edit_dir($dump) || &error($text{'dump_ecannot2'}); - &ui_print_header(undef, $text{'edit_title2'}, "", "create"); + if ($in{'clone'}) { + &ui_print_header(undef, $text{'edit_title3'}, "", "create"); + delete($in{'id'}); + } + else { + &ui_print_header(undef, $text{'edit_title2'}, "", "create"); + } } @tds = ( "width=30%" ); @@ -162,6 +168,7 @@ if ($in{'id'}) { print &ui_form_end([ [ "save", $text{'save'} ], [ "savenow", $text{'edit_savenow'} ], [ "restore", $text{'edit_restore'} ], + [ "clone", $text{'edit_clone'} ], [ "delete", $text{'delete'} ] ]); } else { diff --git a/fsdump/lang/en b/fsdump/lang/en index 47d56b838..1a28a84f6 100644 --- a/fsdump/lang/en +++ b/fsdump/lang/en @@ -115,6 +115,7 @@ edit_edir=Missing backup directory edit_efs=Filesystems of type $1 cannot be backed up by this module edit_title=Add New Backup edit_title2=Edit Backup +edit_title3=Clone Backup edit_header=$1 filesystem backup details edit_header2=Backup schedule edit_header3=Backup options @@ -132,6 +133,7 @@ edit_to=$1 to $2 edit_tolevel=$1 to $2 (level $3) edit_special=Backup schedule edit_when=When to backup +edit_clone=Clone save_err=Failed to save backup save_edir=Missing or invalid backup directory diff --git a/fsdump/save_dump.cgi b/fsdump/save_dump.cgi index 5e6a77aac..9054c9383 100755 --- a/fsdump/save_dump.cgi +++ b/fsdump/save_dump.cgi @@ -40,6 +40,10 @@ elsif ($in{'restore'}) { # Redirect to restore form &redirect("restore_form.cgi?fs=$dump->{'fs'}&id=$in{'id'}"); } +elsif ($in{'clone'}) { + # Redirect to create form, but in clone mode + &redirect("edit_dump.cgi?id=$in{'id'}&clone=1"); + } else { # Validate and store inputs if (&multiple_directory_support($in{'fs'})) {