Bug 32222: Fix capitalization in various "id is invalid"
[koha.git] / koha-tmpl / intranet-tmpl / prog / en / modules / admin / smtp_servers.tt
1 [% USE raw %]
2 [% USE Asset %]
3 [% SET footerjs = 1 %]
4 [% INCLUDE 'doc-head-open.inc' %]
5 <title>
6     [% IF op == 'add_form' %]
7         New SMTP server &rsaquo; [% ELSIF op == 'edit_form' %]
8         Edit SMTP server &rsaquo; [% END %]
9
10     SMTP servers &rsaquo; Administration &rsaquo; Koha
11 </title>
12 [% INCLUDE 'doc-head-close.inc' %]
13 </head>
14
15 <body id="admin_smtp_servers" class="admin">
16 [% INCLUDE 'header.inc' %]
17 [% INCLUDE 'prefs-admin-search.inc' %]
18
19 <nav id="breadcrumbs" aria-label="Breadcrumb" class="breadcrumb">
20     <ol>
21         <li>
22             <a href="/cgi-bin/koha/mainpage.pl">Home</a>
23         </li>
24         <li>
25             <a href="/cgi-bin/koha/admin/admin-home.pl">Administration</a>
26         </li>
27
28         [% IF op == 'add_form' %]
29             <li>
30                 <a href="/cgi-bin/koha/admin/smtp_servers.pl">SMTP servers</a>
31             </li>
32             <li>
33                 <a href="#" aria-current="page">
34                     New
35                 </a>
36             </li>
37
38         [% ELSIF op == 'edit_form' %]
39             <li>
40                 <a href="/cgi-bin/koha/admin/smtp_servers.pl">SMTP servers</a>
41             </li>
42             <li>
43                 <a href="#" aria-current="page">
44                     Edit
45                 </a>
46             </li>
47
48         [% ELSE %]
49             <li>
50                 <a href="#" aria-current="page">
51                     SMTP servers
52                 </a>
53             </li>
54         [% END %]
55     </ol>
56 </nav>
57
58 <div class="main container-fluid">
59     <div class="row">
60         <div class="col-sm-10 col-sm-push-2">
61             <main>
62
63 [% FOREACH m IN messages %]
64     <div class="dialog [% m.type | html %]" id="smtp_action_result_dialog">
65         [% SWITCH m.code %]
66         [% CASE 'error_on_update' %]
67             <span>An error occurred trying to open the server for editing. The passed ID is invalid.</span>
68         [% CASE 'error_on_insert' %]
69             <span>An error occurred when adding the server. The library already has an SMTP server set.</span>
70         [% CASE 'success_on_update' %]
71             <span>Server updated successfully.</span>
72         [% CASE 'success_on_insert' %]
73             <span>Server added successfully.</span>
74         [% CASE %]
75             <span>[% m.code | html %]</span>
76         [% END %]
77     </div>
78 [% END %]
79
80     <div class="dialog message" id="smtp_delete_success" style="display: none;"></div>
81     <div class="dialog alert"   id="smtp_delete_error"   style="display: none;"></div>
82
83 [% IF op == 'add_form' %]
84     <h1>New SMTP server</h1>
85     <form action="/cgi-bin/koha/admin/smtp_servers.pl" id="add" name="add" class="validated" method="post">
86         <input type="hidden" name="op" value="add" />
87         <fieldset class="rows">
88             <ol>
89                 <li>
90                     <label for="smtp_name" class="required">Name: </label>
91                     <input type="text" name="smtp_name" id="smtp_name" size="60" class="required focus" required="required" />
92                     <span class="required">Required</span>
93                 </li>
94             </ol>
95         </fieldset>
96
97         <fieldset class="rows">
98             <ol>
99                 <li>
100                     <label for="smtp_host" class="required">Host: </label>
101                     <input type="text" name="smtp_host" id="smtp_host" size="60" class="required"/>
102                     <span class="required">Required</span>
103                 </li>
104                 <li>
105                     <label for="smtp_port" class="required">Port: </label>
106                     <input type="text" inputmode="numeric" pattern="[0-9]*" value="25" name="smtp_port" id="smtp_port" size="20" class="required"/>
107                     <span class="required">Required</span>
108                 </li>
109                 <li>
110                     <label for="smtp_timeout">Timeout (seconds): </label>
111                     <input type="text" inputmode="numeric" pattern="[0-9]*" value="120" name="smtp_timeout" id="smtp_timeout" size="20" />
112                 </li>
113                 <li>
114                     <label for="smtp_ssl_mode">SSL: </label>
115                     <select name="smtp_ssl_mode" id="smtp_ssl_mode">
116                         <option value="disabled" selected="selected">Disabled</option>
117                         <option value="ssl">SSL</option>
118                         <option value="starttls">STARTTLS</option>
119                     </select>
120                 </li>
121                 <li>
122                     <label for="smtp_user_name">User name: </label>
123                     <input type="text" name="smtp_user_name" id="smtp_user_name" size="60" />
124                 </li>
125                 <li>
126                     <label for="smtp_password">Password: </label>
127                     <input type="password" name="smtp_password" id="smtp_password" size="60" />
128                 </li>
129                 <li>
130                     <label for="smtp_debug_mode">Debug mode: </label>
131                     <select name="smtp_debug_mode" id="smtp_debug_mode">
132                         <option value="1">Enabled</option>
133                         <option value="0" selected="selected">Disabled</option>
134                     </select>
135                     <span>Enables additional debug output in the logs</span>
136                 </li>
137                 <li>
138                     <label for="smtp_default">Default server: </label>
139                     <input type="checkbox" name="smtp_default" id="smtp_default" />
140                     <span>Sets this SMTP server as the default SMTP server.</span>
141                 </li>
142             </ol>
143         </fieldset>
144         <fieldset class="action">
145             <input type="submit" class="btn btn-primary" value="Submit" />
146             <a class="cancel" href="/cgi-bin/koha/admin/smtp_servers.pl">Cancel</a>
147         </fieldset>
148     </form>
149 [% END %]
150
151 [% IF op == 'edit_form' %]
152     <h1>Edit SMTP server</h1>
153     <form action="/cgi-bin/koha/admin/smtp_servers.pl" id="edit_save" name="edit_save" class="validated" method="post">
154         <input type="hidden" name="op" value="edit_save" />
155         <input type="hidden" name="smtp_server_id" value="[%- smtp_server.id | html -%]" />
156         <fieldset class="rows">
157             <ol>
158                 <li>
159                     <label for="smtp_name" class="required">Name: </label>
160                     <input type="text" name="smtp_name" id="smtp_name" size="60" class="required" required="required" value="[%- smtp_server.name | html -%]"/>
161                     <span class="required">Required</span>
162                 </li>
163             </ol>
164         </fieldset>
165
166         <fieldset class="rows">
167             <ol>
168                 <li>
169                     <label for="smtp_host" class="required">Host: </label>
170                     <input type="text" name="smtp_host" id="smtp_host" size="60" class="required" value="[%- smtp_server.host | html -%]"/>
171                     <span class="required">Required</span>
172                 </li>
173                 <li>
174                     <label for="smtp_port" class="required">Port: </label>
175                     <input type="text" inputmode="numeric" pattern="[0-9]*" name="smtp_port" id="smtp_port" size="20" class="required" value="[%- smtp_server.port | html -%]"/>
176                     <span class="required">Required</span>
177                 </li>
178                 <li>
179                     <label for="smtp_timeout">Timeout (seconds): </label>
180                     <input type="text" inputmode="numeric" pattern="[0-9]*" name="smtp_timeout" id="smtp_timeout" size="20" value="[%- smtp_server.timeout | html -%]"/>
181                 </li>
182                 <li>
183                     <label for="smtp_ssl_mode">SSL: </label>
184                     <select name="smtp_ssl_mode" id="smtp_ssl_mode">
185                     [%- IF smtp_server.ssl_mode == 'disabled' -%]
186                         <option value="disabled" selected="selected">Disabled</option>
187                         <option value="ssl">SSL</option>
188                         <option value="starttls">STARTTLS</option>
189                     [%- ELSIF smtp_server.ssl_mode == 'ssl' -%]
190                         <option value="disabled">Disabled</option>
191                         <option value="ssl" selected="selected">SSL</option>
192                         <option value="starttls">STARTTLS</option>
193                     [%- ELSE -%]
194                         <option value="disabled">Disabled</option>
195                         <option value="ssl">SSL</option>
196                         <option value="starttls" selected="selected">STARTTLS</option>
197                     [%- END -%]
198                     </select>
199                 </li>
200                 <li>
201                     <label for="smtp_user_name">User name: </label>
202                     <input type="text" name="smtp_user_name" id="smtp_user_name" size="60"  value="[%- smtp_server.user_name | html -%]"/>
203                 </li>
204                 <li>
205                     <label for="smtp_password">Password: </label>
206                     [% IF smtp_server.password %]
207                         <input type="password" name="smtp_password" id="smtp_password" size="60"  value="****"/>
208                     [% ELSE %]
209                         <input type="password" name="smtp_password" id="smtp_password" size="60"  value=""/>
210                     [% END %]
211                 </li>
212                 <li>
213                     <label for="smtp_debug_mode">Debug mode: </label>
214                     <select name="smtp_debug_mode" id="smtp_debug_mode">
215                     [%- IF smtp_server.debug == 1 -%]
216                         <option value="1" selected="selected">Enabled</option>
217                         <option value="0">Disabled</option>
218                     [%- ELSE -%]
219                         <option value="1">Enabled</option>
220                         <option value="0" selected="selected">Disabled</option>
221                     [%- END -%]
222                     </select>
223                 </li>
224                 <li>
225                     <label for="smtp_default">Default server: </label>
226                     [% IF smtp_server.is_default %]
227                         <input type="checkbox" name="smtp_default" id="smtp_default" checked="checked"/>
228                     [% ELSE %]
229                         <input type="checkbox" name="smtp_default" id="smtp_default" />
230                     [% END %]
231                     <span>Sets this SMTP server as the default SMTP server.</span>
232                 </li>
233                 [% UNLESS smtp_server.is_default %]
234                     <div class="dialog message" id="default_server_message">
235                         <p>Current default configuration:</p>
236
237                         <ul>
238                             <li><strong>Host</strong>: [%- default_config.host | html -%]</li>
239                             <li><strong>Port</strong>: [%- default_config.port | html -%]</li>
240                             <li><strong>Timeout (secs)</strong>: [%- default_config.timeout | html -%]</li>
241                             <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>
242                             <li><strong>Debug mode</strong>: [%- IF default_config.debug -%]Yes[%- ELSE -%]No[%- END -%]</li>
243                         </ul>
244                     </div>
245                 [% END %]
246             </ol>
247         </fieldset>
248         <fieldset class="action">
249             <input type="submit" class="btn btn-primary" value="Submit" />
250             <a class="cancel" href="/cgi-bin/koha/admin/smtp_servers.pl">Cancel</a>
251         </fieldset>
252     </form>
253 [% END %]
254
255 [% IF op == 'list' %]
256
257     <div id="toolbar" class="btn-toolbar">
258         <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>
259     </div>
260
261     <h1>SMTP servers</h1>
262
263     <div class="dialog message" id="default_server_message">
264         <p>Default configuration:</p>
265
266         <ul>
267             <li><strong>Host</strong>: [%- default_config.host | html -%]</li>
268             <li><strong>Port</strong>: [%- default_config.port | html -%]</li>
269             <li><strong>Timeout (secs)</strong>: [%- default_config.timeout | html -%]</li>
270             <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>
271             <li><strong>Debug mode</strong>: [%- IF default_config.debug -%]Yes[%- ELSE -%]No[%- END -%]</li>
272         </ul>
273     </div>
274
275     [% IF servers_count > 0 %]
276         <div class="page-section">
277             <table id="smtp_servers">
278                 <thead>
279                     <tr>
280                         <th>Name</th>
281                         <th>Host</th>
282                         <th>Port</th>
283                         <th>Timeout (secs)</th>
284                         <th>SSL</th>
285                         <th>Authenticated</th>
286                         <th>Is default</th>
287                         <th data-class-name="actions noExport">Actions</th>
288                     </tr>
289                 </thead>
290             </table>
291         </div> <!-- /.page-section -->
292     [% END %]
293 [% END %]
294
295             <div id="delete_confirm_modal" class="modal" tabindex="-1" role="dialog" aria-labelledby="delete_confirm_modal_label" aria-hidden="true">
296                 <div class="modal-dialog">
297                     <div class="modal-content">
298                         <div class="modal-header">
299                             <button type="button" class="closebtn" data-dismiss="modal" aria-hidden="true">×</button>
300                             <h3 id="delete_confirm_modal_label">Delete server</h3>
301                         </div>
302                         <div class="modal-body">
303                             <div id="delete_confirm_dialog"></div>
304                         </div>
305                         <div class="modal-footer">
306                             <a href="#" class="btn btn-default" id="delete_confirm_modal_button" role="button" data-toggle="modal">Delete</a>
307                             <button class="btn btn-default" data-dismiss="modal" aria-hidden="true">Close</button>
308                         </div>
309                     </div> <!-- /.modal-content -->
310                 </div> <!-- /.modal-dialog -->
311             </div> <!-- #delete_confirm_modal -->
312
313             <div id="default_confirm_modal" class="modal" tabindex="-1" role="dialog" aria-labelledby="default_confirm_modal_label" aria-hidden="true">
314                 <div class="modal-dialog">
315                     <div class="modal-content">
316                         <div class="modal-header">
317                             <button type="button" class="default_confirm_modal_no closebtn" data-dismiss="modal" aria-hidden="true">×</button>
318                             <h3 id="default_confirm_modal_label">Set default server</h3>
319                         </div>
320                         <div class="modal-body">
321                             <div id="default_confirm_dialog">Are you sure you want to change the default SMTP server?</div>
322                         </div>
323                         <div class="modal-footer">
324                             <a id="default_confirm_dialog" href="#" class="btn btn-default default_confirm_modal_yes" id="default_confirm_modal_button" role="button" data-toggle="modal">Yes</a>
325                             <button class="btn btn-link default_confirm_modal_no" data-dismiss="modal" aria-hidden="true">No</button>
326                         </div>
327                     </div> <!-- /.modal-content -->
328                 </div> <!-- /.modal-dialog -->
329             </div> <!-- #default_confirm_modal -->
330
331             </main>
332         </div> <!-- /.col-sm-10.col-sm-push-2 -->
333
334         <div class="col-sm-2 col-sm-pull-10">
335             <aside>
336                 [% INCLUDE 'admin-menu.inc' %]
337             </aside>
338         </div> <!-- /.col-sm-2.col-sm-pull-10 -->
339      </div> <!-- /.row -->
340
341
342 [% MACRO jsinclude BLOCK %]
343     [% Asset.js("js/admin-menu.js") | $raw %]
344     [% INCLUDE 'datatables.inc' %]
345     <script>
346         $(document).ready(function() {
347
348             var smtp_servers_url = '/api/v1/config/smtp_servers';
349             window.smtp_servers = $("#smtp_servers").kohaTable({
350                 "ajax": {
351                     "url": smtp_servers_url
352                 },
353                 'language': {
354                     'emptyTable': '<div class="dialog message">'+_("There are no SMTP servers defined.")+'</div>'
355                 },
356                 "columnDefs": [ {
357                     "targets": [0,1],
358                     "render": function (data, type, row, meta) {
359                         if ( type == 'display' ) {
360                             if ( data != null ) {
361                                 return data.escapeHtml();
362                             }
363                             else {
364                                 return "Default";
365                             }
366                         }
367                         return data;
368                     }
369                 } ],
370                 "columns": [
371                     {
372                         "data": "name",
373                         "searchable": true,
374                         "orderable": true
375                     },
376                     {
377                         "data": "host",
378                         "searchable": true,
379                         "orderable": true
380                     },
381                     {
382                         "data": "port",
383                         "searchable": true,
384                         "orderable": false
385                     },
386                     {
387                         "data": "timeout",
388                         "searchable": true,
389                         "orderable": false
390                     },
391                     {
392                         "data": "ssl_mode",
393                         "render": function (data, type, row, meta) {
394                             if (data == 'disabled') {
395                                 return _("Disabled");
396                             }
397                             else if (data == 'ssl') {
398                                 return _("SSL");
399                             }
400                             else {
401                                 return _("STARTTLS");
402                             }
403                         },
404                         "searchable": false,
405                         "orderable": false
406                     },
407                     {
408                         "data": function( row, type, val, meta ) {
409                             if ( row.user_name != null ) {
410                                 return _("Yes");
411                             }
412                             else {
413                                 return _("No");
414                             }
415                         },
416                         "searchable": false,
417                         "orderable": false
418                     },
419                     {
420                         "data": function( row, type, val, meta ) {
421                             if ( row.is_default ) {
422                                 return _("Yes");
423                             }
424                             else {
425                                 return _("No");
426                             }
427                         },
428                         "searchable": false,
429                         "orderable": false
430                     },
431                     {
432                         "data": function( row, type, val, meta ) {
433                             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 fa-pencil" aria-hidden="true"></i> '+_("Edit")+'</a>'+"\n";
434                             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" aria-hidden="true"></i>'+_("Delete")+'</a>';
435                             return result;
436                         },
437                         "searchable": false,
438                         "orderable": false
439                     }
440                 ],
441                 createdRow: function (row, data, dataIndex) {
442                     if ( data.is_default ) {
443                         $(row).addClass('default warn');
444                     }
445                     if ( data.debug ) {
446                         $(row).addClass('debug');
447                     }
448                 },
449             });
450
451             $('#smtp_servers').on( "click", '.delete_server', function () {
452                 var smtp_server_id   = $(this).data('smtp-server-id');
453                 var smtp_server_name = decodeURIComponent($(this).data('smtp-server-name'));
454
455                 $("#delete_confirm_dialog").html(
456                     _("You are about to delete the '%s' SMTP server.").format(smtp_server_name)
457                 );
458                 $("#delete_confirm_modal_button").data('smtp-server-id', smtp_server_id);
459                 $("#delete_confirm_modal_button").data('smtp-server-name', smtp_server_name);
460             });
461
462             $('#smtp_default').on( "click", function () {
463                 $("#default_confirm_modal").show();
464             });
465             $('.default_confirm_modal_yes').on( "click", function () {
466                 $("#default_confirm_modal").hide();
467             });
468             $('.default_confirm_modal_no').on( "click", function () {
469                 $("#smtp_default").prop('checked', !$("#smtp_default").prop('checked') );
470                 $("#default_confirm_modal").hide();
471             });
472
473             $("#delete_confirm_modal_button").on( "click", function () {
474
475                 var smtp_server_id   = $(this).data('smtp-server-id');
476                 var smtp_server_name = $(this).data('smtp-server-name');
477
478                 $.ajax({
479                     method: "DELETE",
480                     url: "/api/v1/config/smtp_servers/"+smtp_server_id
481                 }).success(function() {
482                     window.smtp_servers.api().ajax.reload(function (data) {
483                         $("#smtp_action_result_dialog").hide();
484                         $("#smtp_delete_success").html(_("Server '%s' deleted successfully.").format(smtp_server_name)).show();
485                     });
486                 }).fail(function () {
487                     $("#smtp_delete_error").html(_("Error deleting server '%s'. Check the logs.").format(smtp_server_name)).show();
488                 }).done(function () {
489                     $("#delete_confirm_modal").modal('hide');
490                 });
491             });
492         });
493     </script>
494 [% END %]
495
496 [% INCLUDE 'intranet-bottom.inc' %]