3 [% PROCESS 'i18n.inc' %]
5 [% INCLUDE 'doc-head-open.inc' %]
6 <title>[% FILTER collapse %]
7 [% IF op == 'add_form' %]
8 [% t("New SMTP server") | html %] ›
9 [% ELSIF op == 'edit_form' %]
10 [% tx("Modify SMTP server '{smtp_server}'", { smtp_server = smtp_server.name }) | html %] ›
12 [% t("SMTP servers") | html %] ›
13 [% t("Administration") | html %] ›
14 [% t("Koha") | html %]
16 [% INCLUDE 'doc-head-close.inc' %]
19 <body id="admin_smtp_servers" class="admin">
20 [% WRAPPER 'header.inc' %]
21 [% INCLUDE 'prefs-admin-search.inc' %]
24 [% WRAPPER 'sub-header.inc' %]
25 [% WRAPPER breadcrumbs %]
26 [% WRAPPER breadcrumb_item %]
27 <a href="/cgi-bin/koha/admin/admin-home.pl">Administration</a>
30 [% IF op == 'add_form' || op == 'edit_form' %]
31 [% WRAPPER breadcrumb_item %]
32 <a href="/cgi-bin/koha/admin/smtp_servers.pl">SMTP servers</a>
36 [% IF op == 'add_form' %]
37 [% WRAPPER breadcrumb_item bc_active= 1 %]
38 <span>New SMTP server</span>
41 [% ELSIF op == 'edit_form' %]
42 [% WRAPPER breadcrumb_item bc_active= 1 %]
43 [% tx("Modify SMTP server '{smtp_server}'", { smtp_server = smtp_server.name }) | html %]
47 [% WRAPPER breadcrumb_item bc_active= 1 %]
48 <span>SMTP servers</span>
51 [% END #/ WRAPPER breadcrumbs %]
52 [% END #/ WRAPPER sub-header.inc %]
54 <div class="main container-fluid">
56 <div class="col-sm-10 col-sm-push-2">
59 [% FOREACH m IN messages %]
60 <div class="dialog [% m.type | html %]" id="smtp_action_result_dialog">
62 [% CASE 'error_on_update' %]
63 <span>An error occurred trying to open the server for editing. The passed ID is invalid.</span>
64 [% CASE 'error_on_insert' %]
65 <span>An error occurred when adding the server. The library already has an SMTP server set.</span>
66 [% CASE 'success_on_update' %]
67 <span>Server updated successfully.</span>
68 [% CASE 'success_on_insert' %]
69 <span>Server added successfully.</span>
71 <span>[% m.code | html %]</span>
76 <div class="dialog message" id="smtp_delete_success" style="display: none;"></div>
77 <div class="dialog alert" id="smtp_delete_error" style="display: none;"></div>
79 [% IF op == 'add_form' %]
80 <h1>New SMTP server</h1>
81 <form action="/cgi-bin/koha/admin/smtp_servers.pl" id="add" name="add" class="validated" method="post">
82 <input type="hidden" name="op" value="add" />
83 <fieldset class="rows">
86 <label for="smtp_name" class="required">Name: </label>
87 <input type="text" name="smtp_name" id="smtp_name" size="60" class="required focus" required="required" />
88 <span class="required">Required</span>
93 <fieldset class="rows">
96 <label for="smtp_host" class="required">Host: </label>
97 <input type="text" name="smtp_host" id="smtp_host" size="60" class="required"/>
98 <span class="required">Required</span>
101 <label for="smtp_port" class="required">Port: </label>
102 <input type="text" inputmode="numeric" pattern="[0-9]*" value="25" name="smtp_port" id="smtp_port" size="20" class="required"/>
103 <span class="required">Required</span>
106 <label for="smtp_timeout">Timeout (seconds): </label>
107 <input type="text" inputmode="numeric" pattern="[0-9]*" value="120" name="smtp_timeout" id="smtp_timeout" size="20" />
110 <label for="smtp_ssl_mode">SSL: </label>
111 <select name="smtp_ssl_mode" id="smtp_ssl_mode">
112 <option value="disabled" selected="selected">Disabled</option>
113 <option value="ssl">SSL</option>
114 <option value="starttls">STARTTLS</option>
118 <label for="smtp_user_name">User name: </label>
119 <input type="text" name="smtp_user_name" id="smtp_user_name" size="60" autocomplete="off" />
122 <label for="smtp_password">Password: </label>
123 <input type="password" name="smtp_password" id="smtp_password" size="60" autocomplete="off" />
126 <label for="smtp_debug_mode">Debug mode: </label>
127 <select name="smtp_debug_mode" id="smtp_debug_mode">
128 <option value="1">Enabled</option>
129 <option value="0" selected="selected">Disabled</option>
131 <span>Enables additional debug output in the logs</span>
134 <label for="smtp_default">Default server: </label>
135 <input type="checkbox" name="smtp_default" id="smtp_default" />
136 <span>Sets this SMTP server as the default SMTP server.</span>
140 <fieldset class="action">
141 <input type="submit" class="btn btn-primary" value="Submit" />
142 <a class="cancel" href="/cgi-bin/koha/admin/smtp_servers.pl">Cancel</a>
147 [% IF op == 'edit_form' %]
148 <h1>[% tx("Modify SMTP server '{smtp_server}'", { smtp_server = smtp_server.name }) | html %]</h1>
150 [% UNLESS smtp_server.is_default %]
151 [% PROCESS default_server_info %]
154 <form action="/cgi-bin/koha/admin/smtp_servers.pl" id="edit_save" name="edit_save" class="validated" method="post">
155 <input type="hidden" name="op" value="edit_save" />
156 <input type="hidden" name="smtp_server_id" value="[%- smtp_server.id | html -%]" />
157 <fieldset class="rows">
160 <label for="smtp_name" class="required">Name: </label>
161 <input type="text" name="smtp_name" id="smtp_name" size="60" class="required" required="required" value="[%- smtp_server.name | html -%]"/>
162 <span class="required">Required</span>
167 <fieldset class="rows">
170 <label for="smtp_host" class="required">Host: </label>
171 <input type="text" name="smtp_host" id="smtp_host" size="60" class="required" value="[%- smtp_server.host | html -%]"/>
172 <span class="required">Required</span>
175 <label for="smtp_port" class="required">Port: </label>
176 <input type="text" inputmode="numeric" pattern="[0-9]*" name="smtp_port" id="smtp_port" size="20" class="required" value="[%- smtp_server.port | html -%]"/>
177 <span class="required">Required</span>
180 <label for="smtp_timeout">Timeout (seconds): </label>
181 <input type="text" inputmode="numeric" pattern="[0-9]*" name="smtp_timeout" id="smtp_timeout" size="20" value="[%- smtp_server.timeout | html -%]"/>
184 <label for="smtp_ssl_mode">SSL: </label>
185 <select name="smtp_ssl_mode" id="smtp_ssl_mode">
186 [%- IF smtp_server.ssl_mode == 'disabled' -%]
187 <option value="disabled" selected="selected">Disabled</option>
188 <option value="ssl">SSL</option>
189 <option value="starttls">STARTTLS</option>
190 [%- ELSIF smtp_server.ssl_mode == 'ssl' -%]
191 <option value="disabled">Disabled</option>
192 <option value="ssl" selected="selected">SSL</option>
193 <option value="starttls">STARTTLS</option>
195 <option value="disabled">Disabled</option>
196 <option value="ssl">SSL</option>
197 <option value="starttls" selected="selected">STARTTLS</option>
202 <label for="smtp_user_name">User name: </label>
203 <input type="text" name="smtp_user_name" id="smtp_user_name" size="60" value="[%- smtp_server.user_name | html -%]" autocomplete="off" />
206 <label for="smtp_password">Password: </label>
207 [% IF smtp_server.password %]
208 <input type="password" name="smtp_password" id="smtp_password" size="60" value="****" autocomplete="off"/>
210 <input type="password" name="smtp_password" id="smtp_password" size="60" value="" autocomplete="off"/>
214 <label for="smtp_debug_mode">Debug mode: </label>
215 <select name="smtp_debug_mode" id="smtp_debug_mode">
216 [%- IF smtp_server.debug == 1 -%]
217 <option value="1" selected="selected">Enabled</option>
218 <option value="0">Disabled</option>
220 <option value="1">Enabled</option>
221 <option value="0" selected="selected">Disabled</option>
226 <label for="smtp_default">Default server: </label>
227 [% IF smtp_server.is_default %]
228 <input type="checkbox" name="smtp_default" id="smtp_default" checked="checked"/>
230 <input type="checkbox" name="smtp_default" id="smtp_default" />
232 <span>Sets this SMTP server as the default SMTP server.</span>
236 <fieldset class="action">
237 <input type="submit" class="btn btn-primary" value="Submit" />
238 <a class="cancel" href="/cgi-bin/koha/admin/smtp_servers.pl">Cancel</a>
243 [% IF op == 'list' %]
245 <div id="toolbar" class="btn-toolbar">
246 <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>
249 <h1>SMTP servers</h1>
251 [% PROCESS default_server_info %]
253 [% IF servers_count > 0 %]
254 <div class="page-section">
255 <table id="smtp_servers">
261 <th>Timeout (secs)</th>
263 <th>Authenticated</th>
266 <th data-class-name="actions noExport">Actions</th>
270 </div> <!-- /.page-section -->
274 <div id="delete_confirm_modal" class="modal" tabindex="-1" role="dialog" aria-labelledby="delete_confirm_modal_label" aria-hidden="true">
275 <div class="modal-dialog">
276 <div class="modal-content">
277 <div class="modal-header">
278 <button type="button" class="closebtn" data-dismiss="modal" aria-hidden="true">×</button>
279 <h3 id="delete_confirm_modal_label">Delete server</h3>
281 <div class="modal-body">
282 <div id="delete_confirm_dialog"></div>
284 <div class="modal-footer">
285 <a href="#" class="btn btn-default" id="delete_confirm_modal_button" role="button" data-toggle="modal">Delete</a>
286 <button class="btn btn-default" data-dismiss="modal" aria-hidden="true">Close</button>
288 </div> <!-- /.modal-content -->
289 </div> <!-- /.modal-dialog -->
290 </div> <!-- #delete_confirm_modal -->
292 <div id="default_confirm_modal" class="modal" tabindex="-1" role="dialog" aria-labelledby="default_confirm_modal_label" aria-hidden="true">
293 <div class="modal-dialog">
294 <div class="modal-content">
295 <div class="modal-header">
296 <button type="button" class="default_confirm_modal_no closebtn" data-dismiss="modal" aria-hidden="true">×</button>
297 <h3 id="default_confirm_modal_label">Set default server</h3>
299 <div class="modal-body">
300 <div id="default_confirm_dialog">Are you sure you want to change the default SMTP server?</div>
302 <div class="modal-footer">
303 <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>
304 <button class="btn btn-default default_confirm_modal_no" data-dismiss="modal" aria-hidden="true">No</button>
306 </div> <!-- /.modal-content -->
307 </div> <!-- /.modal-dialog -->
308 </div> <!-- #default_confirm_modal -->
311 </div> <!-- /.col-sm-10.col-sm-push-2 -->
313 <div class="col-sm-2 col-sm-pull-10">
315 [% INCLUDE 'admin-menu.inc' %]
317 </div> <!-- /.col-sm-2.col-sm-pull-10 -->
318 </div> <!-- /.row -->
321 [% MACRO jsinclude BLOCK %]
322 [% Asset.js("js/admin-menu.js") | $raw %]
323 [% INCLUDE 'datatables.inc' %]
325 $(document).ready(function() {
327 var smtp_servers_url = '/api/v1/config/smtp_servers';
328 window.smtp_servers = $("#smtp_servers").kohaTable({
330 "url": smtp_servers_url
333 'emptyTable': '<div class="dialog message">'+_("There are no SMTP servers defined.")+'</div>'
337 "render": function (data, type, row, meta) {
338 if ( type == 'display' ) {
339 if ( data != null ) {
340 return data.escapeHtml();
372 "render": function (data, type, row, meta) {
373 if (data == 'disabled') {
374 return _("Disabled");
376 else if (data == 'ssl') {
380 return _("STARTTLS");
387 "data": function( row, type, val, meta ) {
388 if ( row.user_name != null ) {
399 "data": function( row, type, val, meta ) {
411 "data": function( row, type, val, meta ) {
412 if ( row.is_default ) {
423 "data": function( row, type, val, meta ) {
424 var result = '<a class="btn btn-default btn-xs" role="button" href="/cgi-bin/koha/admin/smtp_servers.pl?op=edit_form&smtp_server_id='+ encodeURIComponent(row.smtp_server_id) +'"><i class="fa-solid fa-pencil" aria-hidden="true"></i> '+_("Edit")+'</a>'+"\n";
425 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>';
432 createdRow: function (row, data, dataIndex) {
433 if ( data.is_default ) {
434 $(row).addClass('default warn');
437 $(row).addClass('debug');
442 $('#smtp_servers').on( "click", '.delete_server', function () {
443 var smtp_server_id = $(this).data('smtp-server-id');
444 var smtp_server_name = decodeURIComponent($(this).data('smtp-server-name'));
446 $("#delete_confirm_dialog").html(
447 _("You are about to delete the '%s' SMTP server.").format(smtp_server_name)
449 $("#delete_confirm_modal_button").data('smtp-server-id', smtp_server_id);
450 $("#delete_confirm_modal_button").data('smtp-server-name', smtp_server_name);
453 $('#smtp_default').on( "click", function () {
454 $("#default_confirm_modal").modal('show');
456 $('.default_confirm_modal_yes').on( "click", function () {
457 $("#default_confirm_modal").modal('hide');
459 $('.default_confirm_modal_no').on( "click", function () {
460 $("#smtp_default").prop('checked', !$("#smtp_default").prop('checked') );
461 $("#default_confirm_modal").modal('hide');
464 $("#delete_confirm_modal_button").on( "click", function () {
466 var smtp_server_id = $(this).data('smtp-server-id');
467 var smtp_server_name = $(this).data('smtp-server-name');
471 url: "/api/v1/config/smtp_servers/"+smtp_server_id
472 }).success(function() {
473 window.smtp_servers.api().ajax.reload(function (data) {
474 $("#smtp_action_result_dialog").hide();
475 $("#smtp_delete_success").html(_("Server '%s' deleted successfully.").format(smtp_server_name)).show();
477 }).fail(function () {
478 $("#smtp_delete_error").html(_("Error deleting server '%s'. Check the logs for details.").format(smtp_server_name)).show();
479 }).done(function () {
480 $("#delete_confirm_modal").modal('hide');
487 [% BLOCK default_server_info %]
488 <div class="dialog message" id="default_server_message">
489 <p>Current default configuration:</p>
492 <li><strong>Host</strong>: [%- default_config.host | html -%]</li>
493 <li><strong>Port</strong>: [%- default_config.port | html -%]</li>
494 <li><strong>Timeout (secs)</strong>: [%- default_config.timeout | html -%]</li>
495 <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>
496 <li><strong>Debug mode</strong>: [%- IF default_config.debug -%]Yes[%- ELSE -%]No[%- END -%]</li>
501 [% INCLUDE 'intranet-bottom.inc' %]