diff --git a/public/src/admin/settings/email.js b/public/src/admin/settings/email.js index e1598c2c0b..c1b3ee33b5 100644 --- a/public/src/admin/settings/email.js +++ b/public/src/admin/settings/email.js @@ -9,15 +9,23 @@ define('admin/settings/email', ['ace/ace', 'alerts', 'admin/settings'], function configureEmailTester(); configureEmailEditor(); handleDigestHourChange(); - handleSmtpServiceChange(); - $(window).on('action:admin.settingsLoaded action:admin.settingsSaved', handleDigestHourChange); - $(window).on('action:admin.settingsSaved', function () { - socket.emit('admin.user.restartJobs'); - }); - $('[id="email:smtpTransport:service"]').change(handleSmtpServiceChange); + $(window).off('action:admin.settingsLoaded', onSettingsLoaded) + .on('action:admin.settingsLoaded', onSettingsLoaded); + $(window).off('action:admin.settingsSaved', onSettingsSaved) + .on('action:admin.settingsSaved', onSettingsSaved); }; + function onSettingsLoaded() { + handleDigestHourChange(); + handleSmtpServiceChange(); + } + + function onSettingsSaved() { + handleDigestHourChange(); + socket.emit('admin.user.restartJobs'); + } + function configureEmailTester() { $('button[data-action="email.test"]').off('click').on('click', function () { socket.emit('admin.email.test', { template: $('#test-email').val() }, function (err) { @@ -106,20 +114,26 @@ define('admin/settings/email', ['ace/ace', 'alerts', 'admin/settings'], function } function handleSmtpServiceChange() { - const isCustom = $('[id="email:smtpTransport:service"]').val() === 'nodebb-custom-smtp'; - $('[id="email:smtpTransport:custom-service"]')[isCustom ? 'slideDown' : 'slideUp'](isCustom); - - const enabledEl = document.getElementById('email:smtpTransport:enabled'); - if (enabledEl) { - if (!enabledEl.checked) { - enabledEl.closest('label').classList.toggle('is-checked', true); - enabledEl.checked = true; - alerts.alert({ - message: '[[admin/settings/email:smtp-transport.auto-enable-toast]]', - timeout: 5000, - }); - } + function toggleCustomService() { + const isCustom = $('[id="email:smtpTransport:service"]').val() === 'nodebb-custom-smtp'; + $('[id="email:smtpTransport:custom-service"]')[isCustom ? 'slideDown' : 'slideUp'](isCustom); } + toggleCustomService(); + $('[id="email:smtpTransport:service"]').change(function () { + toggleCustomService(); + + const enabledEl = document.getElementById('email:smtpTransport:enabled'); + if (enabledEl) { + if (!enabledEl.checked) { + $('label[for="email:smtpTransport:enabled"]').toggleClass('is-checked', true); + enabledEl.checked = true; + alerts.alert({ + message: '[[admin/settings/email:smtp-transport.auto-enable-toast]]', + timeout: 5000, + }); + } + } + }); } return module; diff --git a/src/views/admin/settings/email.tpl b/src/views/admin/settings/email.tpl index 4d8dcf27b1..86145d0c69 100644 --- a/src/views/admin/settings/email.tpl +++ b/src/views/admin/settings/email.tpl @@ -150,7 +150,7 @@ [[admin/settings/email:smtp-transport.gmail-warning2]]

-