Koha/koha-tmpl/intranet-tmpl/prog/en/modules/admin/smtp_servers.tt
Owen Leonard 799f7968dd
Bug 34619: Show debug mode column in list of SMTP servers
This patch adds a column to the table of SMTP servers which shows
whether debug mode is on or off. This information was previously only
conveyed through the color of the text in the table row.

To test, apply the patch and go to Administration -> SMTP servers.

- If necessary, add one or more SMTP servers so that there are more than
  one: At least one with debug mode on, at least one with debug mode
  off.
- In the table listing SMTP servers you should see a column for "Debug
  mode," where the rows indicate "On" or "Off."
- Each row which is highlighted in red should show "On" for debug mode.

Signed-off-by: Émily-Rose Francoeur <emily-rose.francoeur@inLibro.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
2023-10-04 09:32:52 -04:00

501 lines
22 KiB
Text
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[% USE raw %]
[% USE Asset %]
[% PROCESS 'i18n.inc' %]
[% SET footerjs = 1 %]
[% INCLUDE 'doc-head-open.inc' %]
<title>[% FILTER collapse %]
[% IF op == 'add_form' %]
[% t("New SMTP server") | html %] &rsaquo;
[% ELSIF op == 'edit_form' %]
[% tx("Modify SMTP server '{smtp_server}'", { smtp_server = smtp_server.name }) | html %] &rsaquo;
[% END %]
[% t("SMTP servers") | html %] &rsaquo;
[% t("Administration") | html %] &rsaquo;
[% t("Koha") | html %]
[% END %]</title>
[% INCLUDE 'doc-head-close.inc' %]
</head>
<body id="admin_smtp_servers" class="admin">
[% WRAPPER 'header.inc' %]
[% INCLUDE 'prefs-admin-search.inc' %]
[% END %]
[% WRAPPER 'sub-header.inc' %]
[% WRAPPER breadcrumbs %]
[% WRAPPER breadcrumb_item %]
<a href="/cgi-bin/koha/admin/admin-home.pl">Administration</a>
[% END %]
[% IF op == 'add_form' || op == 'edit_form' %]
[% WRAPPER breadcrumb_item %]
<a href="/cgi-bin/koha/admin/smtp_servers.pl">SMTP servers</a>
[% END %]
[% END %]
[% IF op == 'add_form' %]
[% WRAPPER breadcrumb_item bc_active= 1 %]
<span>New SMTP server</span>
[% END %]
[% ELSIF op == 'edit_form' %]
[% WRAPPER breadcrumb_item bc_active= 1 %]
[% tx("Modify SMTP server '{smtp_server}'", { smtp_server = smtp_server.name }) | html %]
[% END %]
[% ELSE %]
[% WRAPPER breadcrumb_item bc_active= 1 %]
<span>SMTP servers</span>
[% END %]
[% END %]
[% END #/ WRAPPER breadcrumbs %]
[% END #/ WRAPPER sub-header.inc %]
<div class="main container-fluid">
<div class="row">
<div class="col-sm-10 col-sm-push-2">
<main>
[% FOREACH m IN messages %]
<div class="dialog [% m.type | html %]" id="smtp_action_result_dialog">
[% SWITCH m.code %]
[% CASE 'error_on_update' %]
<span>An error occurred trying to open the server for editing. The passed ID is invalid.</span>
[% CASE 'error_on_insert' %]
<span>An error occurred when adding the server. The library already has an SMTP server set.</span>
[% CASE 'success_on_update' %]
<span>Server updated successfully.</span>
[% CASE 'success_on_insert' %]
<span>Server added successfully.</span>
[% CASE %]
<span>[% m.code | html %]</span>
[% END %]
</div>
[% END %]
<div class="dialog message" id="smtp_delete_success" style="display: none;"></div>
<div class="dialog alert" id="smtp_delete_error" style="display: none;"></div>
[% IF op == 'add_form' %]
<h1>New SMTP server</h1>
<form action="/cgi-bin/koha/admin/smtp_servers.pl" id="add" name="add" class="validated" method="post">
<input type="hidden" name="op" value="add" />
<fieldset class="rows">
<ol>
<li>
<label for="smtp_name" class="required">Name: </label>
<input type="text" name="smtp_name" id="smtp_name" size="60" class="required focus" required="required" />
<span class="required">Required</span>
</li>
</ol>
</fieldset>
<fieldset class="rows">
<ol>
<li>
<label for="smtp_host" class="required">Host: </label>
<input type="text" name="smtp_host" id="smtp_host" size="60" class="required"/>
<span class="required">Required</span>
</li>
<li>
<label for="smtp_port" class="required">Port: </label>
<input type="text" inputmode="numeric" pattern="[0-9]*" value="25" name="smtp_port" id="smtp_port" size="20" class="required"/>
<span class="required">Required</span>
</li>
<li>
<label for="smtp_timeout">Timeout (seconds): </label>
<input type="text" inputmode="numeric" pattern="[0-9]*" value="120" name="smtp_timeout" id="smtp_timeout" size="20" />
</li>
<li>
<label for="smtp_ssl_mode">SSL: </label>
<select name="smtp_ssl_mode" id="smtp_ssl_mode">
<option value="disabled" selected="selected">Disabled</option>
<option value="ssl">SSL</option>
<option value="starttls">STARTTLS</option>
</select>
</li>
<li>
<label for="smtp_user_name">User name: </label>
<input type="text" name="smtp_user_name" id="smtp_user_name" size="60" autocomplete="off" />
</li>
<li>
<label for="smtp_password">Password: </label>
<input type="password" name="smtp_password" id="smtp_password" size="60" autocomplete="off" />
</li>
<li>
<label for="smtp_debug_mode">Debug mode: </label>
<select name="smtp_debug_mode" id="smtp_debug_mode">
<option value="1">Enabled</option>
<option value="0" selected="selected">Disabled</option>
</select>
<span>Enables additional debug output in the logs</span>
</li>
<li>
<label for="smtp_default">Default server: </label>
<input type="checkbox" name="smtp_default" id="smtp_default" />
<span>Sets this SMTP server as the default SMTP server.</span>
</li>
</ol>
</fieldset>
<fieldset class="action">
<input type="submit" class="btn btn-primary" value="Submit" />
<a class="cancel" href="/cgi-bin/koha/admin/smtp_servers.pl">Cancel</a>
</fieldset>
</form>
[% END %]
[% IF op == 'edit_form' %]
<h1>[% tx("Modify SMTP server '{smtp_server}'", { smtp_server = smtp_server.name }) | html %]</h1>
[% UNLESS smtp_server.is_default %]
[% PROCESS default_server_info %]
[% END %]
<form action="/cgi-bin/koha/admin/smtp_servers.pl" id="edit_save" name="edit_save" class="validated" method="post">
<input type="hidden" name="op" value="edit_save" />
<input type="hidden" name="smtp_server_id" value="[%- smtp_server.id | html -%]" />
<fieldset class="rows">
<ol>
<li>
<label for="smtp_name" class="required">Name: </label>
<input type="text" name="smtp_name" id="smtp_name" size="60" class="required" required="required" value="[%- smtp_server.name | html -%]"/>
<span class="required">Required</span>
</li>
</ol>
</fieldset>
<fieldset class="rows">
<ol>
<li>
<label for="smtp_host" class="required">Host: </label>
<input type="text" name="smtp_host" id="smtp_host" size="60" class="required" value="[%- smtp_server.host | html -%]"/>
<span class="required">Required</span>
</li>
<li>
<label for="smtp_port" class="required">Port: </label>
<input type="text" inputmode="numeric" pattern="[0-9]*" name="smtp_port" id="smtp_port" size="20" class="required" value="[%- smtp_server.port | html -%]"/>
<span class="required">Required</span>
</li>
<li>
<label for="smtp_timeout">Timeout (seconds): </label>
<input type="text" inputmode="numeric" pattern="[0-9]*" name="smtp_timeout" id="smtp_timeout" size="20" value="[%- smtp_server.timeout | html -%]"/>
</li>
<li>
<label for="smtp_ssl_mode">SSL: </label>
<select name="smtp_ssl_mode" id="smtp_ssl_mode">
[%- IF smtp_server.ssl_mode == 'disabled' -%]
<option value="disabled" selected="selected">Disabled</option>
<option value="ssl">SSL</option>
<option value="starttls">STARTTLS</option>
[%- ELSIF smtp_server.ssl_mode == 'ssl' -%]
<option value="disabled">Disabled</option>
<option value="ssl" selected="selected">SSL</option>
<option value="starttls">STARTTLS</option>
[%- ELSE -%]
<option value="disabled">Disabled</option>
<option value="ssl">SSL</option>
<option value="starttls" selected="selected">STARTTLS</option>
[%- END -%]
</select>
</li>
<li>
<label for="smtp_user_name">User name: </label>
<input type="text" name="smtp_user_name" id="smtp_user_name" size="60" value="[%- smtp_server.user_name | html -%]" autocomplete="off" />
</li>
<li>
<label for="smtp_password">Password: </label>
[% IF smtp_server.password %]
<input type="password" name="smtp_password" id="smtp_password" size="60" value="****" autocomplete="off"/>
[% ELSE %]
<input type="password" name="smtp_password" id="smtp_password" size="60" value="" autocomplete="off"/>
[% END %]
</li>
<li>
<label for="smtp_debug_mode">Debug mode: </label>
<select name="smtp_debug_mode" id="smtp_debug_mode">
[%- IF smtp_server.debug == 1 -%]
<option value="1" selected="selected">Enabled</option>
<option value="0">Disabled</option>
[%- ELSE -%]
<option value="1">Enabled</option>
<option value="0" selected="selected">Disabled</option>
[%- END -%]
</select>
</li>
<li>
<label for="smtp_default">Default server: </label>
[% IF smtp_server.is_default %]
<input type="checkbox" name="smtp_default" id="smtp_default" checked="checked"/>
[% ELSE %]
<input type="checkbox" name="smtp_default" id="smtp_default" />
[% END %]
<span>Sets this SMTP server as the default SMTP server.</span>
</li>
</ol>
</fieldset>
<fieldset class="action">
<input type="submit" class="btn btn-primary" value="Submit" />
<a class="cancel" href="/cgi-bin/koha/admin/smtp_servers.pl">Cancel</a>
</fieldset>
</form>
[% END %]
[% IF op == 'list' %]
<div id="toolbar" class="btn-toolbar">
<a class="btn btn-default" id="new_smtp_server" href="/cgi-bin/koha/admin/smtp_servers.pl?op=add_form"><i class="fa fa-plus"></i> New SMTP server</a>
</div>
<h1>SMTP servers</h1>
[% PROCESS default_server_info %]
[% IF servers_count > 0 %]
<div class="page-section">
<table id="smtp_servers">
<thead>
<tr>
<th>Name</th>
<th>Host</th>
<th>Port</th>
<th>Timeout (secs)</th>
<th>SSL</th>
<th>Authenticated</th>
<th>Debug mode</th>
<th>Is default</th>
<th data-class-name="actions noExport">Actions</th>
</tr>
</thead>
</table>
</div> <!-- /.page-section -->
[% END %]
[% END %]
<div id="delete_confirm_modal" class="modal" tabindex="-1" role="dialog" aria-labelledby="delete_confirm_modal_label" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="closebtn" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="delete_confirm_modal_label">Delete server</h3>
</div>
<div class="modal-body">
<div id="delete_confirm_dialog"></div>
</div>
<div class="modal-footer">
<a href="#" class="btn btn-default" id="delete_confirm_modal_button" role="button" data-toggle="modal">Delete</a>
<button class="btn btn-default" data-dismiss="modal" aria-hidden="true">Close</button>
</div>
</div> <!-- /.modal-content -->
</div> <!-- /.modal-dialog -->
</div> <!-- #delete_confirm_modal -->
<div id="default_confirm_modal" class="modal" tabindex="-1" role="dialog" aria-labelledby="default_confirm_modal_label" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="default_confirm_modal_no closebtn" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="default_confirm_modal_label">Set default server</h3>
</div>
<div class="modal-body">
<div id="default_confirm_dialog">Are you sure you want to change the default SMTP server?</div>
</div>
<div class="modal-footer">
<a id="default_confirm_dialog" href="#" class="btn btn-primary default_confirm_modal_yes" id="default_confirm_modal_button" role="button" data-toggle="modal">Yes</a>
<button class="btn btn-default default_confirm_modal_no" data-dismiss="modal" aria-hidden="true">No</button>
</div>
</div> <!-- /.modal-content -->
</div> <!-- /.modal-dialog -->
</div> <!-- #default_confirm_modal -->
</main>
</div> <!-- /.col-sm-10.col-sm-push-2 -->
<div class="col-sm-2 col-sm-pull-10">
<aside>
[% INCLUDE 'admin-menu.inc' %]
</aside>
</div> <!-- /.col-sm-2.col-sm-pull-10 -->
</div> <!-- /.row -->
[% MACRO jsinclude BLOCK %]
[% Asset.js("js/admin-menu.js") | $raw %]
[% INCLUDE 'datatables.inc' %]
<script>
$(document).ready(function() {
var smtp_servers_url = '/api/v1/config/smtp_servers';
window.smtp_servers = $("#smtp_servers").kohaTable({
"ajax": {
"url": smtp_servers_url
},
'language': {
'emptyTable': '<div class="dialog message">'+_("There are no SMTP servers defined.")+'</div>'
},
"columnDefs": [ {
"targets": [0,1],
"render": function (data, type, row, meta) {
if ( type == 'display' ) {
if ( data != null ) {
return data.escapeHtml();
}
else {
return "Default";
}
}
return data;
}
} ],
"columns": [
{
"data": "name",
"searchable": true,
"orderable": true
},
{
"data": "host",
"searchable": true,
"orderable": true
},
{
"data": "port",
"searchable": true,
"orderable": false
},
{
"data": "timeout",
"searchable": true,
"orderable": false
},
{
"data": "ssl_mode",
"render": function (data, type, row, meta) {
if (data == 'disabled') {
return _("Disabled");
}
else if (data == 'ssl') {
return _("SSL");
}
else {
return _("STARTTLS");
}
},
"searchable": false,
"orderable": false
},
{
"data": function( row, type, val, meta ) {
if ( row.user_name != null ) {
return _("Yes");
}
else {
return _("No");
}
},
"searchable": false,
"orderable": false
},
{
"data": function( row, type, val, meta ) {
if ( row.debug ) {
return _("On");
}
else {
return _("Off");
}
},
"searchable": false,
"orderable": false
},
{
"data": function( row, type, val, meta ) {
if ( row.is_default ) {
return _("Yes");
}
else {
return _("No");
}
},
"searchable": false,
"orderable": false
},
{
"data": function( row, type, val, meta ) {
var result = '<a class="btn btn-default btn-xs" role="button" href="/cgi-bin/koha/admin/smtp_servers.pl?op=edit_form&amp;smtp_server_id='+ encodeURIComponent(row.smtp_server_id) +'"><i class="fa-solid fa-pencil" aria-hidden="true"></i> '+_("Edit")+'</a>'+"\n";
result += '<a class="btn btn-default btn-xs delete_server" role="button" href="#" data-toggle="modal" data-target="#delete_confirm_modal" data-smtp-server-id="'+ encodeURIComponent(row.smtp_server_id) +'" data-smtp-server-name="'+ encodeURIComponent(row.name.escapeHtml()) +'"><i class="fa fa-trash-can" aria-hidden="true"></i> '+_("Delete")+'</a>';
return result;
},
"searchable": false,
"orderable": false
}
],
createdRow: function (row, data, dataIndex) {
if ( data.is_default ) {
$(row).addClass('default warn');
}
if ( data.debug ) {
$(row).addClass('debug');
}
},
});
$('#smtp_servers').on( "click", '.delete_server', function () {
var smtp_server_id = $(this).data('smtp-server-id');
var smtp_server_name = decodeURIComponent($(this).data('smtp-server-name'));
$("#delete_confirm_dialog").html(
_("You are about to delete the '%s' SMTP server.").format(smtp_server_name)
);
$("#delete_confirm_modal_button").data('smtp-server-id', smtp_server_id);
$("#delete_confirm_modal_button").data('smtp-server-name', smtp_server_name);
});
$('#smtp_default').on( "click", function () {
$("#default_confirm_modal").modal('show');
});
$('.default_confirm_modal_yes').on( "click", function () {
$("#default_confirm_modal").modal('hide');
});
$('.default_confirm_modal_no').on( "click", function () {
$("#smtp_default").prop('checked', !$("#smtp_default").prop('checked') );
$("#default_confirm_modal").modal('hide');
});
$("#delete_confirm_modal_button").on( "click", function () {
var smtp_server_id = $(this).data('smtp-server-id');
var smtp_server_name = $(this).data('smtp-server-name');
$.ajax({
method: "DELETE",
url: "/api/v1/config/smtp_servers/"+smtp_server_id
}).success(function() {
window.smtp_servers.api().ajax.reload(function (data) {
$("#smtp_action_result_dialog").hide();
$("#smtp_delete_success").html(_("Server '%s' deleted successfully.").format(smtp_server_name)).show();
});
}).fail(function () {
$("#smtp_delete_error").html(_("Error deleting server '%s'. Check the logs.").format(smtp_server_name)).show();
}).done(function () {
$("#delete_confirm_modal").modal('hide');
});
});
});
</script>
[% END %]
[% BLOCK default_server_info %]
<div class="dialog message" id="default_server_message">
<p>Current default configuration:</p>
<ul>
<li><strong>Host</strong>: [%- default_config.host | html -%]</li>
<li><strong>Port</strong>: [%- default_config.port | html -%]</li>
<li><strong>Timeout (secs)</strong>: [%- default_config.timeout | html -%]</li>
<li><strong>SSL</strong>: [%- IF default_config.ssl_mode == 'disabled' -%]<span>Disabled</span>[%- ELSIF default_config.ssl_mode == 'ssl' -%]<span>SSL</span>[%- ELSE -%]<span>STARTTLS</span>[%- END -%]</li>
<li><strong>Debug mode</strong>: [%- IF default_config.debug -%]Yes[%- ELSE -%]No[%- END -%]</li>
</ul>
</div>
[% END %]
[% INCLUDE 'intranet-bottom.inc' %]