$(document).ready(function() { // Collect values of input fields with name multi_select with same data-form-id to js array multi_data[data-form-id-of-checkbox] var multi_data = []; $(document).on('change', 'input[name=multi_select]:checkbox', function() { if ($(this).is(':checked') && $(this).attr('data-form-id')) { var id = $(this).data('form-id'); if (typeof multi_data[id] == "undefined") { multi_data[id] = []; } multi_data[id].push($(this).val()); } else { var id = $(this).data('form-id'); multi_data[id].splice($.inArray($(this).val(), multi_data[id]),1); } }); // Select checkbox by click on parent tr $(document).on('click', 'tr', function(e) { if (e.target.type == "checkbox") { e.stopPropagation(); } else { var checkbox = $(this).find(':checkbox'); checkbox.trigger('click'); } }); // Select or deselect all checkboxes with same data-form-id $(document).on('click', '#toggle_multi_select_all', function(e) { e.preventDefault(); var all_checkboxes = $("input[data-form-id=" + $(this).attr("data-form-id") + "]"); all_checkboxes.prop("checked", !closests_checkboxes.prop("checked")).change(); }); // Draw domain admin table $.ajax({ dataType: 'json', url: '/api/v1/get/domain-admin/all', jsonp: false, error: function () { console.log('Cannot draw domain admin table'); }, success: function (data) { $.each(data, function (i, item) { item.action = '
' + ' ' + lang.edit + '' + ' ' + lang.remove + '' + '
'; }); $('#domainadminstable').footable({ "columns": [ {"sorted": true,"name":"username","title":lang.username,"style":{"width":"250px"}}, {"name":"selected_domains","title":lang.admin_domains,"breakpoints":"xs sm"}, {"name":"tfa_active","title":"TFA", "filterable": false,"style":{"maxWidth":"80px","width":"80px"}}, {"name":"active","filterable": false,"style":{"maxWidth":"80px","width":"80px"},"title":lang.active}, {"name":"action","filterable": false,"sortable": false,"style":{"text-align":"right","maxWidth":"180px","width":"180px"},"type":"html","title":lang.action,"breakpoints":"xs sm"} ], "rows": data, "empty": lang.empty, "paging": { "enabled": true, "limit": 5, "size": pagination_size }, "filtering": { "enabled": true, "position": "left", "placeholder": lang.filter_table }, "sorting": { "enabled": true } }); } }); // Draw fwd hosts table $.ajax({ dataType: 'json', url: '/api/v1/get/fwdhost/all', jsonp: false, error: function () { console.log('Cannot draw forwarding hosts table'); }, success: function (data) { $.each(data, function (i, item) { item.action = '
' + ' ' + lang.remove + '' + '
'; if (item.keep_spam == "yes") { item.keep_spam = lang.no; } else { item.keep_spam = lang.yes; } item.chkbox = ''; }); $('#forwardinghoststable').footable({ "columns": [ {"name":"chkbox","title":"","style":{"maxWidth":"40px","width":"40px"},"filterable": false,"sortable": false,"type":"html"}, {"name":"host","type":"text","title":lang.host,"style":{"width":"250px"}}, {"name":"source","title":lang.source,"breakpoints":"xs sm"}, {"name":"keep_spam","title":lang.spamfilter, "type": "text","style":{"maxWidth":"80px","width":"80px"}}, {"name":"action","filterable": false,"sortable": false,"style":{"text-align":"right","maxWidth":"180px","width":"180px"},"type":"html","title":lang.action,"breakpoints":"xs sm"} ], "rows": data, "empty": lang.empty, "paging": { "enabled": true, "limit": 5, "size": pagination_size }, "sorting": { "enabled": true } }); } }); $(document).on('click', '#delete_fwdhosts', function(e) { e.preventDefault(); var id = $(this).closest("form").attr('data-id'); if (typeof multi_data[id] == "undefined") return; data_array = multi_data[id]; if (Object.keys(data_array).length !== 0) { $(document).on('show.bs.modal','#ConfirmDeleteModal', function () { $("#ItemsToDelete").empty(); for (var i in data_array) { $("#ItemsToDelete").append("
  • " + data_array[i] + "
  • "); } }) $('#ConfirmDeleteModal').modal({ backdrop: 'static', keyboard: false }) .one('click', '#IsConfirmed', function(e) { $.ajax({ type: "POST", dataType: "json", data: { "forwardinghost": JSON.stringify(data_array) }, url: '/api/v1/delete/fwdhost', jsonp: false, complete: function (data) { window.location.href = window.location.href; } }); }) .one('click', '#isCanceled', function(e) { $('#ConfirmDeleteModal').modal('hide'); });; } }); $(document).on('click', '#delete_dkim_key', function(e) { e.preventDefault(); var dkim_domain = $(this).data('dkim-domain'); var dkim_selector = $(this).data('dkim-selector'); $(document).on('show.bs.modal','#ConfirmDeleteModal', function () { $("#ItemsToDelete").empty(); $("#ItemsToDelete").append("
  • " + dkim_domain + ", " + dkim_selector + "
  • "); }) $('#ConfirmDeleteModal').modal({ backdrop: 'static', keyboard: false }) .one('click', '#IsConfirmed', function(e) { $.ajax({ type: "POST", dataType: "json", data: { "domains": JSON.stringify(dkim_domain) }, url: '/api/v1/delete/dkim', jsonp: false, complete: function (data) { window.location.href = window.location.href; } }); }) .one('click', '#isCanceled', function(e) { $('#ConfirmDeleteModal').modal('hide'); });; }); $("#refresh_dovecot_log").on('click', function(e) { function unix_time_format(tm) { var date = new Date(tm ? tm * 1000 : 0); return date.toLocaleString(); } e.preventDefault(); if (typeof ft_dovecot_logs != 'undefined') { ft_dovecot_logs.destroy(); } $.ajax({ dataType: 'json', url: '/api/v1/get/logs/dovecot/1000', jsonp: false, error: function () { console.log('Cannot draw dovecot log table'); }, success: function (data) { $.each(data, function (i, item) { var danger_class = ["emerg", "alert", "crit"]; var warning_class = ["warning"]; var info_class = ["notice", "info", "debug"]; if (jQuery.inArray(item.priority, danger_class) !== -1) { item.priority = '' + item.priority + ''; } else if (jQuery.inArray(item.priority, warning_class) !== -1) { item.priority = '' + item.priority + ''; } else if (jQuery.inArray(item.priority, info_class) !== -1) { item.priority = '' + item.priority + ''; } }); ft_dovecot_logs = FooTable.init("#dovecot_log", { "columns": [ {"name":"time","formatter":function unix_time_format(tm) {var date = new Date(tm ? tm * 1000 : 0); return date.toLocaleString();},"title":lang.time,"style":{"width":"170px"}}, {"name":"priority","title":lang.priority,"style":{"width":"80px"}}, {"name":"message","title":lang.message}, ], "rows": data, "empty": lang.empty, "paging": { "enabled": true, "limit": 5, "size": pagination_size }, "filtering": { "enabled": true, "position": "left", "placeholder": lang.filter_table }, "sorting": { "enabled": true } }); } }); }); $("#refresh_postfix_log").on('click', function(e) { function unix_time_format(tm) { var date = new Date(tm ? tm * 1000 : 0); return date.toLocaleString(); } e.preventDefault(); if (typeof ft_postfix_logs != 'undefined') { ft_postfix_logs.destroy(); } $.ajax({ dataType: 'json', url: '/api/v1/get/logs/postfix/1000', jsonp: false, error: function () { console.log('Cannot draw postfix log table'); }, success: function (data) { $.each(data, function (i, item) { var danger_class = ["emerg", "alert", "crit"]; var warning_class = ["warning"]; var info_class = ["notice", "info", "debug"]; if (jQuery.inArray(item.priority, danger_class) !== -1) { item.priority = '' + item.priority + ''; } else if (jQuery.inArray(item.priority, warning_class) !== -1) { item.priority = '' + item.priority + ''; } else if (jQuery.inArray(item.priority, info_class) !== -1) { item.priority = '' + item.priority + ''; } }); ft_postfix_logs = FooTable.init("#postfix_log", { "columns": [ {"name":"time","formatter":function unix_time_format(tm) { var date = new Date(tm ? tm * 1000 : 0); return date.toLocaleString();},"title":lang.time,"style":{"width":"170px"}}, {"name":"priority","title":lang.priority,"style":{"width":"80px"}}, {"name":"message","title":lang.message}, ], "rows": data, "empty": lang.empty, "paging": { "enabled": true, "limit": 5, "size": pagination_size }, "filtering": { "enabled": true, "position": "left", "placeholder": lang.filter_table }, "sorting": { "enabled": true } }); } }); }); $("#refresh_dovecot_log").trigger('click'); $("#refresh_postfix_log").trigger('click'); });