mirror of
https://github.com/mailcow/mailcow-dockerized.git
synced 2024-12-09 08:50:05 +08:00
Execute API calls only when needed
This commit is contained in:
parent
374cc64601
commit
fb10764167
@ -99,37 +99,6 @@ $(document).ready(function() {
|
||||
});
|
||||
auto_fill_quota($('#addSelectDomain').val());
|
||||
|
||||
// Read bcc local dests
|
||||
// Using ajax to not be a blocking moo
|
||||
$.get("/api/v1/get/bcc-destination-options", function(data){
|
||||
// Domains
|
||||
var optgroup = "<optgroup label='" + lang.domains + "'>";
|
||||
$.each(data.domains, function(index, domain){
|
||||
optgroup += "<option value='" + domain + "'>" + domain + "</option>"
|
||||
});
|
||||
optgroup += "</optgroup>"
|
||||
$('#bcc-local-dest').append(optgroup);
|
||||
// Alias domains
|
||||
var optgroup = "<optgroup label='" + lang.domain_aliases + "'>";
|
||||
$.each(data.alias_domains, function(index, alias_domain){
|
||||
optgroup += "<option value='" + alias_domain + "'>" + alias_domain + "</option>"
|
||||
});
|
||||
optgroup += "</optgroup>"
|
||||
$('#bcc-local-dest').append(optgroup);
|
||||
// Mailboxes and aliases
|
||||
$.each(data.mailboxes, function(mailbox, aliases){
|
||||
var optgroup = "<optgroup label='" + mailbox + "'>";
|
||||
$.each(aliases, function(index, alias){
|
||||
optgroup += "<option value='" + alias + "'>" + alias + "</option>"
|
||||
});
|
||||
optgroup += "</optgroup>"
|
||||
$('#bcc-local-dest').append(optgroup);
|
||||
});
|
||||
// Finish
|
||||
$('#bcc-local-dest').find('option:selected').remove();
|
||||
$('#bcc-local-dest').selectpicker('refresh');
|
||||
});
|
||||
|
||||
$(".goto_checkbox").click(function( event ) {
|
||||
$("form[data-id='add_alias'] .goto_checkbox").not(this).prop('checked', false);
|
||||
if ($("form[data-id='add_alias'] .goto_checkbox:checked").length > 0) {
|
||||
@ -610,6 +579,37 @@ jQuery(function($){
|
||||
});
|
||||
}
|
||||
function draw_bcc_table() {
|
||||
// Read bcc local dests
|
||||
// Using ajax to not be a blocking moo
|
||||
$.get("/api/v1/get/bcc-destination-options", function(data){
|
||||
// Domains
|
||||
var optgroup = "<optgroup label='" + lang.domains + "'>";
|
||||
$.each(data.domains, function(index, domain){
|
||||
optgroup += "<option value='" + domain + "'>" + domain + "</option>"
|
||||
});
|
||||
optgroup += "</optgroup>"
|
||||
$('#bcc-local-dest').append(optgroup);
|
||||
// Alias domains
|
||||
var optgroup = "<optgroup label='" + lang.domain_aliases + "'>";
|
||||
$.each(data.alias_domains, function(index, alias_domain){
|
||||
optgroup += "<option value='" + alias_domain + "'>" + alias_domain + "</option>"
|
||||
});
|
||||
optgroup += "</optgroup>"
|
||||
$('#bcc-local-dest').append(optgroup);
|
||||
// Mailboxes and aliases
|
||||
$.each(data.mailboxes, function(mailbox, aliases){
|
||||
var optgroup = "<optgroup label='" + mailbox + "'>";
|
||||
$.each(aliases, function(index, alias){
|
||||
optgroup += "<option value='" + alias + "'>" + alias + "</option>"
|
||||
});
|
||||
optgroup += "</optgroup>"
|
||||
$('#bcc-local-dest').append(optgroup);
|
||||
});
|
||||
// Finish
|
||||
$('#bcc-local-dest').find('option:selected').remove();
|
||||
$('#bcc-local-dest').selectpicker('refresh');
|
||||
});
|
||||
|
||||
ft_bcc_table = FooTable.init('#bcc_table', {
|
||||
"columns": [
|
||||
{"name":"chkbox","title":"","style":{"min-width":"60px","width":"60px"},"filterable": false,"sortable": false,"type":"html"},
|
||||
@ -1147,15 +1147,33 @@ jQuery(function($){
|
||||
event.stopPropagation();
|
||||
})
|
||||
|
||||
draw_domain_table();
|
||||
draw_mailbox_table();
|
||||
draw_resource_table();
|
||||
draw_alias_table();
|
||||
draw_aliasdomain_table();
|
||||
draw_sync_job_table();
|
||||
draw_filter_table();
|
||||
draw_bcc_table();
|
||||
draw_recipient_map_table();
|
||||
draw_tls_policy_table();
|
||||
// detect element visibility changes
|
||||
function onVisible(element, callback) {
|
||||
$(element).ready(function() {
|
||||
element_object = document.querySelector(element)
|
||||
new IntersectionObserver((entries, observer) => {
|
||||
entries.forEach(entry => {
|
||||
if(entry.intersectionRatio > 0) {
|
||||
callback(element_object);
|
||||
observer.disconnect();
|
||||
}
|
||||
});
|
||||
}).observe(element_object);
|
||||
});
|
||||
}
|
||||
|
||||
// Load only if the tab is visible
|
||||
onVisible("#tab-domains", () => draw_domain_table());
|
||||
onVisible("#tab-mailboxes", () => draw_mailbox_table());
|
||||
onVisible("#tab-resources", () => draw_resource_table());
|
||||
onVisible("#tab-mbox-aliases", () => draw_alias_table());
|
||||
onVisible("#tab-domain-aliases", () => draw_aliasdomain_table());
|
||||
onVisible("#tab-syncjobs", () => draw_sync_job_table());
|
||||
onVisible("#tab-filters", () => draw_filter_table());
|
||||
onVisible("#tab-bcc", () => {
|
||||
draw_bcc_table();
|
||||
draw_recipient_map_table();
|
||||
});
|
||||
onVisible("#tab-tls-policy", () => draw_tls_policy_table());
|
||||
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user