admin.js 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. window.addEventListener('DOMContentLoaded', () => {
  2. $('#loglevel').change(function() {
  3. $.post(OC.generateUrl('/settings/admin/log/level'), { level: $(this).val() }, () => {
  4. OC.Log.reload()
  5. })
  6. })
  7. $('#mail_smtpauth').change(function() {
  8. if (!this.checked) {
  9. $('#mail_credentials').addClass('hidden')
  10. } else {
  11. $('#mail_credentials').removeClass('hidden')
  12. }
  13. })
  14. $('#mail_smtpmode').change(function() {
  15. if ($(this).val() !== 'smtp') {
  16. $('#setting_smtpauth').addClass('hidden')
  17. $('#setting_smtphost').addClass('hidden')
  18. $('#mail_smtpsecure_label').addClass('hidden')
  19. $('#mail_smtpsecure').addClass('hidden')
  20. $('#mail_credentials').addClass('hidden')
  21. $('#mail_sendmailmode_label, #mail_sendmailmode').removeClass('hidden')
  22. } else {
  23. $('#setting_smtpauth').removeClass('hidden')
  24. $('#setting_smtphost').removeClass('hidden')
  25. $('#mail_smtpsecure_label').removeClass('hidden')
  26. $('#mail_smtpsecure').removeClass('hidden')
  27. if ($('#mail_smtpauth').is(':checked')) {
  28. $('#mail_credentials').removeClass('hidden')
  29. }
  30. $('#mail_sendmailmode_label, #mail_sendmailmode').addClass('hidden')
  31. }
  32. })
  33. const changeEmailSettings = function() {
  34. if (OC.PasswordConfirmation.requiresPasswordConfirmation()) {
  35. OC.PasswordConfirmation.requirePasswordConfirmation(changeEmailSettings)
  36. return
  37. }
  38. OC.msg.startSaving('#mail_settings_msg')
  39. $.ajax({
  40. url: OC.generateUrl('/settings/admin/mailsettings'),
  41. type: 'POST',
  42. data: $('#mail_general_settings_form').serialize(),
  43. success: () => {
  44. OC.msg.finishedSuccess('#mail_settings_msg', t('settings', 'Saved'))
  45. },
  46. error: (xhr) => {
  47. OC.msg.finishedError('#mail_settings_msg', xhr.responseJSON)
  48. },
  49. })
  50. }
  51. const toggleEmailCredentials = function() {
  52. if (OC.PasswordConfirmation.requiresPasswordConfirmation()) {
  53. OC.PasswordConfirmation.requirePasswordConfirmation(toggleEmailCredentials)
  54. return
  55. }
  56. OC.msg.startSaving('#mail_settings_msg')
  57. $.ajax({
  58. url: OC.generateUrl('/settings/admin/mailsettings/credentials'),
  59. type: 'POST',
  60. data: $('#mail_credentials_settings').serialize(),
  61. success: () => {
  62. OC.msg.finishedSuccess('#mail_settings_msg', t('settings', 'Saved'))
  63. },
  64. error: (xhr) => {
  65. OC.msg.finishedError('#mail_settings_msg', xhr.responseJSON)
  66. },
  67. })
  68. }
  69. $('#mail_general_settings_form').change(changeEmailSettings)
  70. $('#mail_credentials_settings_submit').click(toggleEmailCredentials)
  71. $('#mail_smtppassword').click(() => {
  72. if (this.type === 'text' && this.value === '********') {
  73. this.type = 'password'
  74. this.value = ''
  75. }
  76. })
  77. $('#sendtestemail').click((event) => {
  78. event.preventDefault()
  79. OC.msg.startAction('#sendtestmail_msg', t('settings', 'Sending…'))
  80. $.ajax({
  81. url: OC.generateUrl('/settings/admin/mailtest'),
  82. type: 'POST',
  83. success: () => {
  84. OC.msg.finishedSuccess('#sendtestmail_msg', t('settings', 'Email sent'))
  85. },
  86. error: (xhr) => {
  87. OC.msg.finishedError('#sendtestmail_msg', xhr.responseJSON)
  88. },
  89. })
  90. })
  91. const setupChecks = () => {
  92. // run setup checks then gather error messages
  93. $.when(
  94. OC.SetupChecks.checkSetup(),
  95. ).then((messages) => {
  96. const $el = $('#postsetupchecks')
  97. $('#security-warning-state-loading').addClass('hidden')
  98. let hasMessages = false
  99. const $errorsEl = $el.find('.errors')
  100. const $warningsEl = $el.find('.warnings')
  101. const $infoEl = $el.find('.info')
  102. for (let i = 0; i < messages.length; i++) {
  103. switch (messages[i].type) {
  104. case OC.SetupChecks.MESSAGE_TYPE_INFO:
  105. $infoEl.append('<li>' + messages[i].msg + '</li>')
  106. break
  107. case OC.SetupChecks.MESSAGE_TYPE_WARNING:
  108. $warningsEl.append('<li>' + messages[i].msg + '</li>')
  109. break
  110. case OC.SetupChecks.MESSAGE_TYPE_ERROR:
  111. default:
  112. $errorsEl.append('<li>' + messages[i].msg + '</li>')
  113. }
  114. }
  115. if ($errorsEl.find('li').length > 0) {
  116. $errorsEl.removeClass('hidden')
  117. hasMessages = true
  118. }
  119. if ($warningsEl.find('li').length > 0) {
  120. $warningsEl.removeClass('hidden')
  121. hasMessages = true
  122. }
  123. if ($infoEl.find('li').length > 0) {
  124. $infoEl.removeClass('hidden')
  125. hasMessages = true
  126. }
  127. if (hasMessages) {
  128. $('#postsetupchecks-hint').removeClass('hidden')
  129. if ($errorsEl.find('li').length > 0) {
  130. $('#security-warning-state-failure').removeClass('hidden')
  131. } else {
  132. $('#security-warning-state-warning').removeClass('hidden')
  133. }
  134. } else {
  135. const securityWarning = $('#security-warning')
  136. if (securityWarning.children('ul').children().length === 0) {
  137. $('#security-warning-state-ok').removeClass('hidden')
  138. } else {
  139. $('#security-warning-state-failure').removeClass('hidden')
  140. }
  141. }
  142. })
  143. }
  144. if (document.getElementById('security-warning') !== null) {
  145. setupChecks()
  146. }
  147. })