diff options
author | ThibG <thib@sitedethib.com> | 2019-08-26 18:24:10 +0200 |
---|---|---|
committer | Eugen Rochko <eugen@zeonfederated.com> | 2019-08-26 18:24:10 +0200 |
commit | fd3d45d38f289815bed0adc7eaa3b15894ddb8fb (patch) | |
tree | 3e6aa8edc5ee27b28f6a0a23cb0365e8b8e72dce /app/javascript/mastodon/utils | |
parent | 2b853158dc50fca1c83ff30e9a74642bf655bf6a (diff) |
Add confirmation modal when logging out from the web app (#11671)
* [WiP] Add a confirmation modal before logging out from the web interface * Add confirmation to logout link in getting started footer * Please CodeClimate
Diffstat (limited to 'app/javascript/mastodon/utils')
-rw-r--r-- | app/javascript/mastodon/utils/log_out.js | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/app/javascript/mastodon/utils/log_out.js b/app/javascript/mastodon/utils/log_out.js new file mode 100644 index 000000000..b43417f4b --- /dev/null +++ b/app/javascript/mastodon/utils/log_out.js @@ -0,0 +1,33 @@ +import Rails from 'rails-ujs'; + +export const logOut = () => { + const form = document.createElement('form'); + + const methodInput = document.createElement('input'); + methodInput.setAttribute('name', '_method'); + methodInput.setAttribute('value', 'delete'); + methodInput.setAttribute('type', 'hidden'); + form.appendChild(methodInput); + + const csrfToken = Rails.csrfToken(); + const csrfParam = Rails.csrfParam(); + + if (csrfParam && csrfToken) { + const csrfInput = document.createElement('input'); + csrfInput.setAttribute('name', csrfParam); + csrfInput.setAttribute('value', csrfToken); + csrfInput.setAttribute('type', 'hidden'); + form.appendChild(csrfInput); + } + + const submitButton = document.createElement('input'); + submitButton.setAttribute('type', 'submit'); + form.appendChild(submitButton); + + form.method = 'post'; + form.action = '/auth/sign_out'; + form.style.display = 'none'; + + document.body.appendChild(form); + submitButton.click(); +}; |