diff --git a/data/web/js/build/014-mailcow.js b/data/web/js/build/014-mailcow.js
index 7468310f..80854e13 100644
--- a/data/web/js/build/014-mailcow.js
+++ b/data/web/js/build/014-mailcow.js
@@ -55,14 +55,14 @@ $(document).ready(function() {
// tooltips
$(function () {
- $('[data-toggle="tooltip"]').tooltip()
+ $('[data-bs-toggle="tooltip"]').tooltip()
});
// remember last navigation pill
(function () {
'use strict';
- if ($('a[data-toggle="tab"]').length) {
- $('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
+ if ($('a[data-bs-toggle="tab"]').length) {
+ $('a[data-bs-toggle="tab"]').on('shown.bs.tab', function (e) {
if ($(this).data('dont-remember') == 1) {
return true;
}
@@ -119,7 +119,7 @@ $(document).ready(function() {
shake(password_field);
}
else {
- $(hibp_result).attr('class', 'hibp-out label label-info');
+ $(hibp_result).attr('class', 'hibp-out badge fs-5 bg-info');
$(hibp_result).text(lang_footer.loading);
var password_digest = $.sha1($(password_field).val())
var digest_five = password_digest.substring(0, 5).toUpperCase();
@@ -130,16 +130,16 @@ $(document).ready(function() {
type: 'GET',
success: function(res) {
if (res.search(compl_digest) > -1){
- $(hibp_result).removeClass('label label-info').addClass('label label-danger');
+ $(hibp_result).removeClass('badge fs-5 bg-info').addClass('badge fs-5 bg-danger');
$(hibp_result).text(lang_footer.hibp_nok)
} else {
- $(hibp_result).removeClass('label label-info').addClass('label label-success');
+ $(hibp_result).removeClass('badge fs-5 bg-info').addClass('badge fs-5 bg-success');
$(hibp_result).text(lang_footer.hibp_ok)
}
$(hibp_field).removeClass('task-running');
},
error: function(xhr, status, error) {
- $(hibp_result).removeClass('label label-info').addClass('label label-warning');
+ $(hibp_result).removeClass('badge fs-5 bg-info').addClass('badge fs-5 bg-warning');
$(hibp_result).text('API error: ' + xhr.responseText)
$(hibp_field).removeClass('task-running');
}
@@ -150,8 +150,8 @@ $(document).ready(function() {
// Disable disallowed inputs
$('[data-acl="0"]').each(function(event){
if ($(this).is("a")) {
- $(this).removeAttr("data-toggle");
- $(this).removeAttr("data-target");
+ $(this).removeAttr("data-bs-toggle");
+ $(this).removeAttr("data-bs-target");
$(this).removeAttr("data-action");
$(this).click(function(event) {
event.preventDefault();
@@ -166,8 +166,8 @@ $(document).ready(function() {
if ($(this).hasClass('btn-group')) {
$(this).find('a').each(function(){
$(this).removeClass('dropdown-toggle')
- .removeAttr('data-toggle')
- .removeAttr('data-target')
+ .removeAttr('data-bs-toggle')
+ .removeAttr('data-bs-target')
.removeAttr('data-action')
.removeAttr('id')
.attr("disabled", true);
@@ -182,7 +182,7 @@ $(document).ready(function() {
} else if ($(this).hasClass('input-group')) {
$(this).find('input').each(function() {
$(this).removeClass('dropdown-toggle')
- .removeAttr('data-toggle')
+ .removeAttr('data-bs-toggle')
.attr("disabled", true);
$(this).click(function(event) {
event.preventDefault();
@@ -252,25 +252,4 @@ $(document).ready(function() {
})
});
})
-
- // responsive tabs
- $('.responsive-tabs').tabCollapse({
- tabsClass: 'hidden-xs',
- accordionClass: 'js-tabcollapse-panel-group visible-xs'
- });
- $(document).on("shown.bs.collapse shown.bs.tab", function (e) {
- var target = $(e.target);
- if($(window).width() <= 767) {
- var offset = target.offset().top - 112;
- $("html, body").stop().animate({
- scrollTop: offset
- }, 100);
- }
- if(target.hasClass('panel-collapse')){
- var id = e.target.id.replace(/-collapse$/g, '');
- if(id){
- localStorage.setItem('lastTag', '#'+id);
- }
- }
- });
});
diff --git a/data/web/js/site/admin.js b/data/web/js/site/admin.js
index eac7b21a..e1ddc1ba 100644
--- a/data/web/js/site/admin.js
+++ b/data/web/js/site/admin.js
@@ -64,7 +64,7 @@ jQuery(function($){
eval(draw_table + '()');
});
function table_admin_ready(ft, name) {
- heading = ft.$el.parents('.panel').find('.panel-heading')
+ heading = ft.$el.parents('.card').find('.card-header')
var ft_paging = ft.use(FooTable.Paging)
$(heading).children('.table-lines').text(function(){
return ft_paging.totalRows;
@@ -282,8 +282,8 @@ jQuery(function($){
if (table == 'relayhoststable') {
$.each(data, function (i, item) {
item.action = '
';
if (item.used_by_mailboxes == '') { item.in_use_by = item.used_by_domains; }
@@ -294,14 +294,14 @@ jQuery(function($){
} else if (table == 'transportstable') {
$.each(data, function (i, item) {
if (item.is_mx_based) {
- item.destination = ' ' + item.destination + '
';
+ item.destination = ' ' + item.destination + '
';
}
if (item.username) {
item.username = ' ' + item.username;
}
item.action = '';
item.chkbox = '';
@@ -314,7 +314,7 @@ jQuery(function($){
});
item.recipients = rcpts.join('
');
item.action = '';
});
} else if (table == 'forwardinghoststable') {
@@ -327,7 +327,7 @@ jQuery(function($){
} else if (table == 'oauth2clientstable') {
$.each(data, function (i, item) {
item.action = '';
item.scope = "profile";
@@ -340,7 +340,7 @@ jQuery(function($){
item.selected_domains = item.selected_domains.toString().replace(/,/g, "
");
item.chkbox = '';
item.action = '';
@@ -354,7 +354,7 @@ jQuery(function($){
}
item.chkbox = '';
item.action = '';
});
@@ -483,11 +483,11 @@ jQuery(function($){
if (type == "app_link") {
cols = ' | ';
cols += ' | ';
- cols += '' + lang.remove_row + ' | ';
+ cols += '' + lang.remove_row + ' | ';
} else if (type == "f2b_regex") {
cols = ' | ';
cols += ' | ';
- cols += '' + lang.remove_row + ' | ';
+ cols += '' + lang.remove_row + ' | ';
}
row.append(cols);
table_id.append(row);
diff --git a/data/web/js/site/debug.js b/data/web/js/site/debug.js
index 8f2aa663..8f4c0f65 100644
--- a/data/web/js/site/debug.js
+++ b/data/web/js/site/debug.js
@@ -57,7 +57,7 @@ jQuery(function($){
eval(draw_table + '()');
});
function table_log_ready(ft, name) {
- heading = ft.$el.parents('.panel').find('.panel-heading')
+ heading = ft.$el.parents('.card').find('.card-header')
var ft_paging = ft.use(FooTable.Paging)
$('.refresh_table').prop("disabled", false);
$(heading).children('.table-lines').text(function(){
@@ -573,7 +573,7 @@ jQuery(function($){
},
"ready.ft.table": function(e, ft){
table_log_ready(ft, 'rspamd_history');
- heading = ft.$el.parents('.panel').find('.panel-heading')
+ heading = ft.$el.parents('.card').find('.card-header')
$(heading).children('.table-lines').text(function(){
var ft_paging = ft.use(FooTable.Paging)
return ft_paging.totalRows;
@@ -634,13 +634,13 @@ jQuery(function($){
"value": scan_time
};
if (item.action === 'clean' || item.action === 'no action') {
- item.action = "" + item.action + "
";
+ item.action = "" + item.action + "
";
} else if (item.action === 'rewrite subject' || item.action === 'add header' || item.action === 'probable spam') {
- item.action = "" + item.action + "
";
+ item.action = "" + item.action + "
";
} else if (item.action === 'spam' || item.action === 'reject') {
- item.action = "" + item.action + "
";
+ item.action = "" + item.action + "
";
} else {
- item.action = "" + item.action + "
";
+ item.action = "" + item.action + "
";
}
var score_content;
if (item.score < item.required_score) {
@@ -667,13 +667,13 @@ jQuery(function($){
}
item.ua = '' + item.ua + '';
if (item.service == "activesync") {
- item.service = 'ActiveSync';
+ item.service = 'ActiveSync';
}
else if (item.service == "imap") {
- item.service = 'IMAP, SMTP, Cal-/CardDAV';
+ item.service = 'IMAP, SMTP, Cal-/CardDAV';
}
else {
- item.service = '' + escapeHtml(item.service) + '';
+ item.service = '' + escapeHtml(item.service) + '';
}
});
} else if (table == 'watchdog') {
@@ -681,13 +681,13 @@ jQuery(function($){
if (item.message == null) {
item.message = 'Health level: ' + item.lvl + '% (' + item.hpnow + '/' + item.hptotal + ')';
if (item.hpdiff < 0) {
- item.trend = ' ' + item.hpdiff + '';
+ item.trend = ' ' + item.hpdiff + '';
}
else if (item.hpdiff == 0) {
- item.trend = ' ' + item.hpdiff + '';
+ item.trend = ' ' + item.hpdiff + '';
}
else {
- item.trend = ' ' + item.hpdiff + '';
+ item.trend = ' ' + item.hpdiff + '';
}
}
else {
@@ -701,13 +701,13 @@ jQuery(function($){
item.user = escapeHtml(item.user);
item.call = escapeHtml(item.call);
item.task = '' + item.task + '
';
- item.type = '' + item.type + '';
+ item.type = '' + item.type + '';
});
} else if (table == 'sasl_log_table') {
$.each(data, function (i, item) {
if (item === null) { return true; }
item.username = escapeHtml(item.username);
- item.service = '' + item.service.toUpperCase() + '
';
+ item.service = '' + item.service.toUpperCase() + '
';
});
} else if (table == 'general_syslog') {
$.each(data, function (i, item) {
@@ -726,20 +726,20 @@ jQuery(function($){
var warning_class = ["warning", "warn"];
var info_class = ["notice", "info", "debug"];
if (jQuery.inArray(item.priority, danger_class) !== -1) {
- item.priority = '' + item.priority + '';
+ item.priority = '' + item.priority + '';
} else if (jQuery.inArray(item.priority, warning_class) !== -1) {
- item.priority = '' + item.priority + '';
+ item.priority = '' + item.priority + '';
} else if (jQuery.inArray(item.priority, info_class) !== -1) {
- item.priority = '' + item.priority + '';
+ item.priority = '' + item.priority + '';
}
});
} else if (table == 'apilog') {
$.each(data, function (i, item) {
if (item === null) { return true; }
if (item.method == 'GET') {
- item.method = '' + item.method + '';
+ item.method = '' + item.method + '';
} else if (item.method == 'POST') {
- item.method = '' + item.method + '';
+ item.method = '' + item.method + '';
}
item.data = escapeHtml(item.data);
});
@@ -770,7 +770,7 @@ jQuery(function($){
return;
}
if (ft = FooTable.get($('#' + log_table))) {
- var heading = ft.$el.parents('.panel').find('.panel-heading')
+ var heading = ft.$el.parents('.card').find('.card-header')
var ft_paging = ft.use(FooTable.Paging)
var load_rows = (ft_paging.totalRows + 1) + '-' + (ft_paging.totalRows + new_nrows)
$.get('/api/v1/get/logs/' + log_url + '/' + load_rows).then(function(data){
@@ -796,7 +796,7 @@ jQuery(function($){
draw_sasl_logs();
draw_netfilter_logs();
draw_rspamd_history();
- $('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
+ $('a[data-bs-toggle="tab"]').on('shown.bs.tab', function (e) {
var target = $(e.target).attr("href");
if (target == '#tab-rspamd-history') {
rspamd_pie_graph();
diff --git a/data/web/js/site/mailbox.js b/data/web/js/site/mailbox.js
index 745c4f21..a9e64bf8 100644
--- a/data/web/js/site/mailbox.js
+++ b/data/web/js/site/mailbox.js
@@ -61,7 +61,7 @@ $(document).ready(function() {
var table_id = $(parent_ul).data('table-id');
FooTable.get('#' + table_id).pageSize(new_size);
//$(this).parent().addClass('active').siblings().removeClass('active')
- heading = $(this).parents('.panel').find('.panel-heading')
+ heading = $(this).parents('.card').find('.card-header')
var n_results = $(heading).children('.table-lines').text().split(' / ')[1];
$(heading).children('.table-lines').text(function(){
if (new_size > n_results) {
@@ -258,7 +258,7 @@ jQuery(function($){
.tooltip();
}
$('.refresh_table').prop("disabled", false);
- heading = ft.$el.parents('.panel').find('.panel-heading')
+ heading = ft.$el.parents('.card').find('.card-header')
var ft_paging = ft.use(FooTable.Paging)
$(heading).children('.table-lines').text(function(){
var total_rows = ft_paging.totalRows;
@@ -321,22 +321,22 @@ jQuery(function($){
item.chkbox = '';
item.action = '';
+ ' DNS';
}
else {
- item.action += ' ' + lang.edit + '' +
- ' DNS';
+ item.action += ' ' + lang.edit + '' +
+ ' DNS';
}
if (item.backupmx == 1) {
if (item.relay_unknown_only == 1) {
- item.domain_name = 'Relay Non-Local
' + item.domain_name;
+ item.domain_name = 'Relay Non-Local
' + item.domain_name;
} else if (item.relay_all_recipients == 1) {
- item.domain_name = 'Relay All
' + item.domain_name;
+ item.domain_name = 'Relay All
' + item.domain_name;
} else {
- item.domain_name = 'Relay
' + item.domain_name;
+ item.domain_name = 'Relay
' + item.domain_name;
}
}
});
@@ -405,9 +405,9 @@ jQuery(function($){
},
"formatter": function(value){
res = value.split("/");
- return 'IMAP @ ' + unix_time_format(Number(res[0])) + '
' +
- 'POP3 @ ' + unix_time_format(Number(res[1])) + '
' +
- 'SMTP @ ' + unix_time_format(Number(res[2])) + '
';
+ return 'IMAP @ ' + unix_time_format(Number(res[0])) + '
' +
+ 'POP3 @ ' + unix_time_format(Number(res[1])) + '
' +
+ 'SMTP @ ' + unix_time_format(Number(res[2])) + '
';
}},
{"name":"last_pw_change","filterable": false,"title":lang.last_pw_change,"breakpoints":"all"},
{"name":"quarantine_notification","filterable": false,"title":lang.quarantine_notification,"breakpoints":"all"},
@@ -479,7 +479,7 @@ jQuery(function($){
if (ALLOW_ADMIN_EMAIL_LOGIN) btnSize = 'btn-xs-quart';
item.action = '' +
'';
item.chkbox = '';
if(item.parent_is_backupmx == '1') {
- item.target_domain = '' + item.target_domain + ' ' + lang.alias_domain_backupmx + '
';
+ item.target_domain = '' + item.target_domain + ' ' + lang.alias_domain_backupmx + '
';
} else {
item.target_domain = '' + item.target_domain + '';
}
@@ -1004,7 +1004,7 @@ jQuery(function($){
},
success: function (data) {
$.each(data, function (i, item) {
- item.log = '' + lang.open_logs + ''
+ item.log = '' + lang.open_logs + ''
item.user2 = escapeHtml(item.user2);
if (!item.exclude > 0) {
item.exclude = '-';
@@ -1013,14 +1013,14 @@ jQuery(function($){
}
item.server_w_port = escapeHtml(item.user1) + '@' + item.host1 + ':' + item.port1;
item.action = '';
item.chkbox = '';
if (item.is_running == 1) {
- item.is_running = '' + lang.running + '';
+ item.is_running = '' + lang.running + '';
} else {
- item.is_running = '' + lang.waiting + '';
+ item.is_running = '' + lang.waiting + '';
}
if (!item.last_run > 0) {
item.last_run = lang.waiting;
@@ -1096,14 +1096,14 @@ jQuery(function($){
success: function (data) {
$.each(data, function (i, item) {
if (item.active == 1) {
- item.active = '' + lang.active + '';
+ item.active = '' + lang.active + '';
} else {
- item.active = '' + lang.inactive + '';
+ item.active = '' + lang.inactive + '';
}
item.script_data = '' + escapeHtml(item.script_data) + '
'
- item.filter_type = '' + item.filter_type.charAt(0).toUpperCase() + item.filter_type.slice(1).toLowerCase() + '
'
+ item.filter_type = '' + item.filter_type.charAt(0).toUpperCase() + item.filter_type.slice(1).toLowerCase() + '
'
item.action = '';
item.chkbox = ''
diff --git a/data/web/js/site/qhandler.js b/data/web/js/site/qhandler.js
index 4d32547b..31ac569c 100644
--- a/data/web/js/site/qhandler.js
+++ b/data/web/js/site/qhandler.js
@@ -40,17 +40,17 @@ jQuery(function($){
if (value.score > 0) highlightClass = 'negative'
else if (value.score < 0) highlightClass = 'positive'
else highlightClass = 'neutral'
- $('#qid_detail_symbols').append('' + value.name + ' (' + value.score + ')');
+ $('#qid_detail_symbols').append('' + value.name + ' (' + value.score + ')');
});
- $('[data-toggle="tooltip"]').tooltip()
+ $('[data-bs-toggle="tooltip"]').tooltip()
}
if (typeof data.score !== 'undefined' && typeof data.action !== 'undefined') {
if (data.action === "add header") {
- $('#qid_detail_score').append('' + data.score + ' - ' + lang.junk_folder + '');
+ $('#qid_detail_score').append('' + data.score + ' - ' + lang.junk_folder + '');
} else if (data.action === "reject") {
- $('#qid_detail_score').append('' + data.score + ' - ' + lang.rejected + '');
+ $('#qid_detail_score').append('' + data.score + ' - ' + lang.rejected + '');
} else if (data.action === "rewrite subject") {
- $('#qid_detail_score').append('' + data.score + ' - ' + lang.rewrite_subject + '');
+ $('#qid_detail_score').append('' + data.score + ' - ' + lang.rewrite_subject + '');
}
}
if (typeof data.recipients !== 'undefined') {
diff --git a/data/web/js/site/quarantine.js b/data/web/js/site/quarantine.js
index 57bd4cc1..4b37390a 100644
--- a/data/web/js/site/quarantine.js
+++ b/data/web/js/site/quarantine.js
@@ -15,7 +15,7 @@ jQuery(function($){
var table_id = $(parent_ul).data('table-id');
FooTable.get('#' + table_id).pageSize(new_size);
//$(this).parent().addClass('active').siblings().removeClass('active')
- heading = $(this).parents('.panel').find('.panel-heading')
+ heading = $(this).parents('.card').find('.card-header')
var n_results = $(heading).children('.table-lines').text().split(' / ')[1];
$(heading).children('.table-lines').text(function(){
if (new_size > n_results) {
@@ -33,7 +33,7 @@ jQuery(function($){
});
function table_quarantine_ready(ft, name) {
$('.refresh_table').prop("disabled", false);
- heading = ft.$el.parents('.panel').find('.panel-heading')
+ heading = ft.$el.parents('.card').find('.card-header')
var ft_paging = ft.use(FooTable.Paging)
$(heading).children('.table-lines').text(function(){
var total_rows = ft_paging.totalRows;
@@ -78,16 +78,16 @@ jQuery(function($){
item.score = '-';
}
if (item.virus_flag > 0) {
- item.virus = '' + lang.high_danger + '';
+ item.virus = '' + lang.high_danger + '';
} else {
- item.virus = '' + lang.neutral_danger + '';
+ item.virus = '' + lang.neutral_danger + '';
}
if (item.action === "reject") {
- item.rspamdaction = '' + lang.rejected + '';
+ item.rspamdaction = '' + lang.rejected + '';
} else if (item.action === "add header") {
- item.rspamdaction = '' + lang.junk_folder + '';
+ item.rspamdaction = '' + lang.junk_folder + '';
} else if (item.action === "rewrite subject") {
- item.rspamdaction = '' + lang.rewrite_subject + '';
+ item.rspamdaction = '' + lang.rewrite_subject + '';
}
if(item.notified > 0) {
item.notified = '✔';
@@ -175,9 +175,9 @@ jQuery(function($){
if (value.score > 0) highlightClass = 'negative'
else if (value.score < 0) highlightClass = 'positive'
else highlightClass = 'neutral'
- $('#qid_detail_symbols').append('' + value.name + ' (' + value.score + ')');
+ $('#qid_detail_symbols').append('' + value.name + ' (' + value.score + ')');
});
- $('[data-toggle="tooltip"]').tooltip()
+ $('[data-bs-toggle="tooltip"]').tooltip()
}
if (typeof data.fuzzy_hashes === 'object' && data.fuzzy_hashes !== null && data.fuzzy_hashes.length !== 0) {
$.each(data.fuzzy_hashes, function (index, value) {
@@ -188,11 +188,11 @@ jQuery(function($){
}
if (typeof data.score !== 'undefined' && typeof data.action !== 'undefined') {
if (data.action == "add header") {
- $('#qid_detail_score').append('' + data.score + ' - ' + lang.junk_folder + '');
+ $('#qid_detail_score').append('' + data.score + ' - ' + lang.junk_folder + '');
} else if (data.action == "reject") {
- $('#qid_detail_score').append('' + data.score + ' - ' + lang.rejected + '');
+ $('#qid_detail_score').append('' + data.score + ' - ' + lang.rejected + '');
} else if (data.action == "rewrite subject") {
- $('#qid_detail_score').append('' + data.score + ' - ' + lang.rewrite_subject + '');
+ $('#qid_detail_score').append('' + data.score + ' - ' + lang.rewrite_subject + '');
}
}
if (typeof data.recipients !== 'undefined') {
diff --git a/data/web/js/site/user.js b/data/web/js/site/user.js
index 8fd7b47f..f601d61c 100644
--- a/data/web/js/site/user.js
+++ b/data/web/js/site/user.js
@@ -101,7 +101,7 @@ jQuery(function($){
$.each(data.sasl, function (i, item) {
var datetime = new Date(item.datetime.replace(/-/g, "/"));
var local_datetime = datetime.toLocaleDateString(undefined, {year: "numeric", month: "2-digit", day: "2-digit", hour: "2-digit", minute: "2-digit", second: "2-digit"});
- var service = '' + item.service.toUpperCase() + '
';
+ var service = '' + item.service.toUpperCase() + '
';
var app_password = item.app_password ? ' ' + escapeHtml(item.app_password_name || "App") + '' : '';
var real_rip = item.real_rip.startsWith("Web") ? item.real_rip : '' + item.real_rip + "";
var ip_location = item.location ? ' ' : '';
@@ -200,7 +200,7 @@ jQuery(function($){
success: function (data) {
$.each(data, function (i, item) {
item.user1 = escapeHtml(item.user1);
- item.log = '' + lang.open_logs + ''
+ item.log = '' + lang.open_logs + ''
if (!item.exclude > 0) {
item.exclude = '-';
} else {
@@ -209,7 +209,7 @@ jQuery(function($){
item.server_w_port = escapeHtml(item.user1 + '@' + item.host1 + ':' + item.port1);
if (acl_data.syncjobs === 1) {
item.action = '';
item.chkbox = '';
@@ -219,9 +219,9 @@ jQuery(function($){
item.chkbox = '';
}
if (item.is_running == 1) {
- item.is_running = '' + lang.running + '';
+ item.is_running = '' + lang.running + '';
} else {
- item.is_running = '' + lang.waiting + '';
+ item.is_running = '' + lang.waiting + '';
}
if (!item.last_run > 0) {
item.last_run = lang.waiting;
@@ -284,7 +284,7 @@ jQuery(function($){
item.protocols = item.protocols.join(" ")
if (acl_data.app_passwds === 1) {
item.action = '';
item.chkbox = '';