diff options
Diffstat (limited to 'app/assets/javascripts/service_ping_consent.js')
-rw-r--r-- | app/assets/javascripts/service_ping_consent.js | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/app/assets/javascripts/service_ping_consent.js b/app/assets/javascripts/service_ping_consent.js new file mode 100644 index 00000000000..f145a1b30db --- /dev/null +++ b/app/assets/javascripts/service_ping_consent.js @@ -0,0 +1,35 @@ +import $ from 'jquery'; +import createFlash, { hideFlash } from './flash'; +import axios from './lib/utils/axios_utils'; +import { parseBoolean } from './lib/utils/common_utils'; +import { __ } from './locale'; + +export default () => { + $('body').on('click', '.js-service-ping-consent-action', (e) => { + e.preventDefault(); + e.stopImmediatePropagation(); // overwrite rails listener + + const { url, checkEnabled, servicePingEnabled } = e.target.dataset; + const data = { + application_setting: { + version_check_enabled: parseBoolean(checkEnabled), + service_ping_enabled: parseBoolean(servicePingEnabled), + }, + }; + + const hideConsentMessage = () => + hideFlash(document.querySelector('.service-ping-consent-message')); + + axios + .put(url, data) + .then(() => { + hideConsentMessage(); + }) + .catch(() => { + hideConsentMessage(); + createFlash({ + message: __('Something went wrong. Try again later.'), + }); + }); + }); +}; |