From f450e0d7a8efe67d02123209b6aad7ca9215b455 Mon Sep 17 00:00:00 2001 From: Martin Renvoize Date: Tue, 30 Sep 2025 12:58:51 +0100 Subject: [PATCH] Bug 38489: Follow-up to bug 39190 to fix administration We did some last minute renaming of things in bug 39190 but didn't catch all the places. This patch updates the old 'sftp_servers' naming scheme to 'file_transports' following the new pattern and restores edit and delete functionality in the File transports management area. Sponsored-by: ByWater Solutions Signed-off-by: Hannah Dunne-Howrie --- admin/file_transports.pl | 108 ++++---- .../prog/en/modules/admin/file_transports.tt | 260 +++++++++--------- 2 files changed, 184 insertions(+), 184 deletions(-) diff --git a/admin/file_transports.pl b/admin/file_transports.pl index d7971ce3b8f..dda6fe2dd1f 100755 --- a/admin/file_transports.pl +++ b/admin/file_transports.pl @@ -42,25 +42,25 @@ my ( $template, $borrowernumber, $cookie ) = get_template_and_user( my @messages; -my $sftp_servers = Koha::File::Transports->search; +my $file_transports = Koha::File::Transports->search; if ( $op eq 'cud-add' ) { - my $name = $input->param('sftp_name'); - my $host = $input->param('sftp_host') || 'localhost'; - my $port = $input->param('sftp_port') || 22; - my $transport = $input->param('sftp_transport') || 'sftp'; - my $passive = ( scalar $input->param('sftp_passiv') ) ? 1 : 0; - my $auth_mode = $input->param('sftp_auth_mode') || 'password'; - my $user_name = $input->param('sftp_user_name') || undef; - my $password = $input->param('sftp_password') || undef; - my $key_file = $input->param('sftp_key_file') || undef; - my $download_directory = $input->param('sftp_download_directory') || undef; - my $upload_directory = $input->param('sftp_upload_directory') || undef; - my $status = $input->param('sftp_status') || ''; - my $debug = ( scalar $input->param('sftp_debug_mode') ) ? 1 : 0; + my $name = $input->param('name'); + my $host = $input->param('host') || 'localhost'; + my $port = $input->param('port') || 22; + my $transport = $input->param('transport') || 'sftp'; + my $passive = ( scalar $input->param('passiv') ) ? 1 : 0; + my $auth_mode = $input->param('auth_mode') || 'password'; + my $user_name = $input->param('user_name') || undef; + my $password = $input->param('password') || undef; + my $key_file = $input->param('key_file') || undef; + my $download_directory = $input->param('download_directory') || undef; + my $upload_directory = $input->param('upload_directory') || undef; + my $status = $input->param('status') || ''; + my $debug = ( scalar $input->param('debug_mode') ) ? 1 : 0; try { - my $sftp_server = Koha::File::Transport->new( + my $file_transport = Koha::File::Transport->new( { name => $name, host => $host, @@ -96,24 +96,24 @@ if ( $op eq 'cud-add' ) { $op = 'list'; } elsif ( $op eq 'edit_form' ) { - my $sftp_server_id = $input->param('sftp_server_id'); - my $sftp_server; - my $sftp_server_plain_text_password; - my $sftp_server_plain_text_key; + my $file_transport_id = $input->param('file_transport_id'); + my $file_transport; + my $file_transport_plain_text_password; + my $file_transport_plain_text_key; - $sftp_server = Koha::File::Transports->find($sftp_server_id) - unless !$sftp_server_id; + $file_transport = Koha::File::Transports->find($file_transport_id) + unless !$file_transport_id; - unless ( !$sftp_server ) { - $sftp_server_plain_text_password = $sftp_server->plain_text_password || ''; - $sftp_server_plain_text_key = $sftp_server->plain_text_key || ''; + unless ( !$file_transport ) { + $file_transport_plain_text_password = $file_transport->plain_text_password || ''; + $file_transport_plain_text_key = $file_transport->plain_text_key || ''; } - if ($sftp_server) { + if ($file_transport) { $template->param( - sftp_server => $sftp_server, - sftp_server_plain_text_password => $sftp_server_plain_text_password, - sftp_server_plain_text_key => $sftp_server_plain_text_key, + file_transport => $file_transport, + file_transport_plain_text_password => $file_transport_plain_text_password, + file_transport_plain_text_key => $file_transport_plain_text_key, ); } else { push @messages, { @@ -124,33 +124,33 @@ if ( $op eq 'cud-add' ) { } } elsif ( $op eq 'cud-edit_save' ) { - my $sftp_server_id = $input->param('sftp_server_id'); - my $sftp_server_plain_text_password; - my $sftp_server; - - $sftp_server = Koha::File::Transports->find($sftp_server_id) - unless !$sftp_server_id; - - $sftp_server_plain_text_password = $sftp_server->plain_text_password - unless !$sftp_server_id; - - if ($sftp_server) { - my $name = $input->param('sftp_name'); - my $host = $input->param('sftp_host') || 'localhost'; - my $port = $input->param('sftp_port') || 22; - my $transport = $input->param('sftp_transport') || 'sftp'; - my $passive = ( scalar $input->param('sftp_passiv') ) ? 1 : 0; - my $auth_mode = $input->param('sftp_auth_mode') || 'password'; - my $user_name = $input->param('sftp_user_name') || undef; - my $password = $input->param('sftp_password') || undef; - my $key_file = $input->param('sftp_key_file') || undef; - my $download_directory = $input->param('sftp_download_directory') || undef; - my $upload_directory = $input->param('sftp_upload_directory') || undef; - my $status = $input->param('sftp_status') || ''; - my $debug = ( scalar $input->param('sftp_debug_mode') ) ? 1 : 0; + my $file_transport_id = $input->param('file_transport_id'); + my $file_transport_plain_text_password; + my $file_transport; + + $file_transport = Koha::File::Transports->find($file_transport_id) + unless !$file_transport_id; + + $file_transport_plain_text_password = $file_transport->plain_text_password + unless !$file_transport_id; + + if ($file_transport) { + my $name = $input->param('name'); + my $host = $input->param('host') || 'localhost'; + my $port = $input->param('port') || 22; + my $transport = $input->param('transport') || 'sftp'; + my $passive = ( scalar $input->param('passiv') ) ? 1 : 0; + my $auth_mode = $input->param('auth_mode') || 'password'; + my $user_name = $input->param('user_name') || undef; + my $password = $input->param('password') || undef; + my $key_file = $input->param('key_file') || undef; + my $download_directory = $input->param('download_directory') || undef; + my $upload_directory = $input->param('upload_directory') || undef; + my $status = $input->param('status') || ''; + my $debug = ( scalar $input->param('debug_mode') ) ? 1 : 0; try { - $sftp_server->set( + $file_transport->set( { name => $name, host => $host, @@ -195,7 +195,7 @@ if ( $op eq 'cud-add' ) { if ( $op eq 'list' ) { $template->param( - servers_count => $sftp_servers->count, + servers_count => $file_transports->count, ); } diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/file_transports.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/file_transports.tt index 56c01e175d3..a14f419102a 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/file_transports.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/file_transports.tt @@ -9,7 +9,7 @@ [% t("New file transport") | html %] › [% ELSIF op == 'edit_form' %] - [% tx("Modify file transport '{sftp_server}'", { sftp_server = sftp_server.name }) | html %] + [% tx("Modify file transport '{file_transport}'", { file_transport = file_transport.name }) | html %] › [% END %] [% t("File transports") | html %] @@ -42,7 +42,7 @@ [% END %] [% ELSIF op == 'edit_form' %] [% WRAPPER breadcrumb_item bc_active= 1 %] - [% tx("Modify file transport '{sftp_server}'", { sftp_server = sftp_server.name }) | html %] + [% tx("Modify file transport '{file_transport}'", { file_transport = file_transport.name }) | html %] [% END %] [% ELSE %] [% WRAPPER breadcrumb_item bc_active= 1 %] @@ -59,7 +59,7 @@ [% INCLUDE 'messages.inc' %] [% FOREACH m IN messages %] -
+
[% SWITCH m.code %] [% CASE 'error_on_insert' %] An error occurred when adding the server. The passed ID already exists. @@ -77,8 +77,8 @@
[% END %] - - + + [% IF op == 'add_form' %] @@ -136,8 +136,8 @@
  1. - - + + Required
@@ -146,67 +146,67 @@
  1. - - Required
  2. - - + + Required
  3. - - + + Required
  4. - - Only applies to FTP connections
  5. - -
  6. - - + + Required
  7. - - + +
  8. - - + + Only applies to SFTP connections
  9. - -
    + +
    The path on the remote server where we will download from
  10. - -
    + +
    The path on the remote server where we will upload to
  11. - +
  12. - - @@ -269,17 +269,17 @@
-

[% tx("Modify file transport '{sftp_server}'", { sftp_server = sftp_server.name }) | html %]

+

[% tx("Modify file transport '{file_transport}'", { file_transport = file_transport.name }) | html %]

[% INCLUDE 'csrf-token.inc' %] - +
  1. - - + + Required
@@ -288,14 +288,14 @@
  1. - - + [% IF file_transport.transport == 'ftp' %] [% ELSE %] [% END %] - [% IF sftp_server.transport == 'sftp' %] + [% IF file_transport.transport == 'sftp' %] [% ELSE %] @@ -304,24 +304,24 @@ Required
  2. - - + + Required
  3. - - + + Required
  4. - - + [% IF file_transport.passive == 1 %] [% ELSE %] [% END %] - [% IF sftp_server.passive == 0 %] + [% IF file_transport.passive == 0 %] [% ELSE %] @@ -330,19 +330,19 @@ Only applies to FTP connections
  5. - - + [% IF file_transport.auth_mode == 'password' %] [% ELSE %] [% END %] - [% IF sftp_server.auth_mode == 'key_file' %] + [% IF file_transport.auth_mode == 'key_file' %] [% ELSE %] [% END %] - [% IF sftp_server.auth_mode == 'noauth' %] + [% IF file_transport.auth_mode == 'noauth' %] [% ELSE %] @@ -350,39 +350,39 @@
  6. - - + + Required
  7. - - + +
  8. - - + + Only applies to SFTP connections
  9. - -
    + +
    The path on the remote server where we will download from
  10. - -
    + +
    The path on the remote server where we will upload to
  11. - +
  12. - - + [% IF file_transport.debug == 1 %] [% ELSE %] [% END %] - [% IF sftp_server.debug == 0 %] + [% IF file_transport.debug == 0 %] [% ELSE %] @@ -401,7 +401,7 @@ [% IF op == 'list' %]

    File transports

    @@ -618,7 +618,7 @@ { "data": function(row, type, val, meta) { let result = ' '+_("Edit")+''+"\n"; - result += ' '+_("Delete")+''; + result += ' '+_("Delete")+''; return result; }, "searchable": false, @@ -636,43 +636,43 @@ }); $('#file_transports').on("click", '.delete_server', function() { - var file_transport_id = $(this).data('sftp-server-id'); - var sftp_server_name = decodeURIComponent($(this).data('sftp-server-name')); + var file_transport_id = $(this).data('file-transport-id'); + var file_transport_name = decodeURIComponent($(this).data('file-transport-name')); $("#delete_confirm_dialog").html( - _("You are about to delete the '%s' file transport.").format(sftp_server_name) + _("You are about to delete the '%s' file transport.").format(file_transport_name) ); - $("#delete_confirm_modal_button").data('sftp-server-id', file_transport_id); - $("#delete_confirm_modal_button").data('sftp-server-name', sftp_server_name); + $("#delete_confirm_modal_button").data('file-transport-id', file_transport_id); + $("#delete_confirm_modal_button").data('file-transport-name', file_transport_name); }); $("#delete_confirm_modal_button").on("click", function() { - var file_transport_id = $(this).data('sftp-server-id'); - var sftp_server_name = $(this).data('sftp-server-name'); + var file_transport_id = $(this).data('file-transport-id'); + var file_transport_name = $(this).data('file-transport-name'); $.ajax({ method: "DELETE", url: "/api/v1/config/file_transports/"+file_transport_id }).success(function() { window.file_transports.api().ajax.reload(function(data) { - $("#sftp_action_result_dialog").hide(); - $("#sftp_delete_success").html(_("Server '%s' deleted successfully.").format(sftp_server_name)).show(); + $("#action_result_dialog").hide(); + $("#delete_success").html(_("Server '%s' deleted successfully.").format(file_transport_name)).show(); }); }).fail(function() { - $("#sftp_delete_error").html(_("Error deleting server '%s'. Please ensure all linked EDI accounts are unlinked or deleted. Check the logs for details.").format(sftp_server_name)).show(); + $("#delete_error").html(_("Error deleting server '%s'. Please ensure all linked EDI accounts are unlinked or deleted. Check the logs for details.").format(file_transport_name)).show(); }).done(function() { $("#delete_confirm_modal").modal('hide'); }); }); transportChange(); - $("#sftp_transport").on("change", function(event) { + $("#transport").on("change", function(event) { transportChange(); }); authModeChange(); - $("#sftp_auth_mode").on("change", function(event) { + $("#auth_mode").on("change", function(event) { authModeChange(); }); @@ -714,73 +714,73 @@ }); function transportChange() { - let sftp_transport = $("#sftp_transport"); - - if(sftp_transport.val() == "ftp") { - $("#sftp_host").removeAttr("disabled"); - $("#sftp_port").removeAttr("disabled"); - $("#sftp_passive").removeAttr("disabled"); - $("#sftp_auth_mode").removeAttr("disabled"); - $("#sftp_user_name").removeAttr("disabled"); - $("#sftp_password").removeAttr("disabled"); - $("#sftp_key_file").attr("disabled", "disabled"); - - $("#sftp_auth_mode option[value='password']").removeAttr("disabled"); - $("#sftp_auth_mode option[value='key_file']").attr("disabled", "disabled"); - $("#sftp_auth_mode option[value='noauth']").removeAttr("disabled"); - if($("#sftp_auth_mode option:selected").val() == "key_file") { - $("#sftp_auth_mode option[value='password']").prop("selected", true); + let transport = $("#transport"); + + if(transport.val() == "ftp") { + $("#host").removeAttr("disabled"); + $("#port").removeAttr("disabled"); + $("#passive").removeAttr("disabled"); + $("#auth_mode").removeAttr("disabled"); + $("#user_name").removeAttr("disabled"); + $("#password").removeAttr("disabled"); + $("#key_file").attr("disabled", "disabled"); + + $("#auth_mode option[value='password']").removeAttr("disabled"); + $("#auth_mode option[value='key_file']").attr("disabled", "disabled"); + $("#auth_mode option[value='noauth']").removeAttr("disabled"); + if($("#auth_mode option:selected").val() == "key_file") { + $("#auth_mode option[value='password']").prop("selected", true); } - let sftp_port = $("#sftp_port").val(); - if(sftp_port == 22) $("#sftp_port").val("21"); + let port = $("#port").val(); + if(port == 22) $("#port").val("21"); authModeChange(); - } else if(sftp_transport.val() == "sftp") { - $("#sftp_host").removeAttr("disabled"); - $("#sftp_port").removeAttr("disabled"); - $("#sftp_passive").attr("disabled", "disabled"); - $("#sftp_auth_mode").removeAttr("disabled"); - $("#sftp_user_name").removeAttr("disabled"); - $("#sftp_password").removeAttr("disabled"); - $("#sftp_key_file").removeAttr("disabled"); - - $("#sftp_auth_mode option[value='password']").removeAttr("disabled"); - $("#sftp_auth_mode option[value='key_file']").removeAttr("disabled"); - $("#sftp_auth_mode option[value='noauth']").removeAttr("disabled"); - $("#sftp_passive option[value='1']").prop("selected", true); - - let sftp_port = $("#sftp_port").val(); - if(sftp_port == 21) $("#sftp_port").val("22"); + } else if(transport.val() == "sftp") { + $("#host").removeAttr("disabled"); + $("#port").removeAttr("disabled"); + $("#passive").attr("disabled", "disabled"); + $("#auth_mode").removeAttr("disabled"); + $("#user_name").removeAttr("disabled"); + $("#password").removeAttr("disabled"); + $("#key_file").removeAttr("disabled"); + + $("#auth_mode option[value='password']").removeAttr("disabled"); + $("#auth_mode option[value='key_file']").removeAttr("disabled"); + $("#auth_mode option[value='noauth']").removeAttr("disabled"); + $("#passive option[value='1']").prop("selected", true); + + let port = $("#port").val(); + if(port == 21) $("#port").val("22"); return authModeChange(); } } function authModeChange() { - let sftp_auth_mode = $("#sftp_auth_mode").val(); - - if(sftp_auth_mode == "password") { - $("#sftp_password").removeAttr("disabled"); - $("#sftp_key_file").attr("disabled", "disabled"); - } else if(sftp_auth_mode == "key_file") { - $("#sftp_password").attr("disabled", "disabled"); - $("#sftp_key_file").removeAttr("disabled"); + let auth_mode = $("#auth_mode").val(); + + if(auth_mode == "password") { + $("#password").removeAttr("disabled"); + $("#key_file").attr("disabled", "disabled"); + } else if(auth_mode == "key_file") { + $("#password").attr("disabled", "disabled"); + $("#key_file").removeAttr("disabled"); } else { - $("#sftp_password").attr("disabled", "disabled"); - $("#sftp_key_file").attr("disabled", "disabled"); + $("#password").attr("disabled", "disabled"); + $("#key_file").attr("disabled", "disabled"); } } function modalChange() { $('#modal_message').hide(); - if ( $('#sftp_transport').val() == 'sftp' ) $('#modal_message').show(); + if ( $('#transport').val() == 'sftp' ) $('#modal_message').show(); - $('#modal_host').text( $('#sftp_host').val() ); - $('#modal_port').text( $('#sftp_port').val() ); - $('#modal_transport').text( $('#sftp_transport option:selected').text() ); - $('#modal_user_name').text( $('#sftp_user_name').val() ); - $('#modal_auth_mode').text( $('#sftp_auth_mode option:selected').text() ); + $('#modal_host').text( $('#host').val() ); + $('#modal_port').text( $('#port').val() ); + $('#modal_transport').text( $('#transport option:selected').text() ); + $('#modal_user_name').text( $('#user_name').val() ); + $('#modal_auth_mode').text( $('#auth_mode option:selected').text() ); } [% END %] -- 2.51.0