diff options
Diffstat (limited to 'app/assets/javascripts/incidents_settings/index.js')
-rw-r--r-- | app/assets/javascripts/incidents_settings/index.js | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/app/assets/javascripts/incidents_settings/index.js b/app/assets/javascripts/incidents_settings/index.js new file mode 100644 index 00000000000..80e7d07feca --- /dev/null +++ b/app/assets/javascripts/incidents_settings/index.js @@ -0,0 +1,46 @@ +import Vue from 'vue'; +import { parseBoolean } from '~/lib/utils/common_utils'; +import SettingsTabs from './components/incidents_settings_tabs.vue'; +import IncidentsSettingsService from './incidents_settings_service'; + +export default () => { + const el = document.querySelector('.js-incidents-settings'); + + if (!el) { + return null; + } + + const { + dataset: { + operationsSettingsEndpoint, + templates, + createIssue, + issueTemplateKey, + sendEmail, + pagerdutyActive, + pagerdutyWebhookUrl, + pagerdutyResetKeyPath, + }, + } = el; + + const service = new IncidentsSettingsService(operationsSettingsEndpoint, pagerdutyResetKeyPath); + return new Vue({ + el, + provide: { + service, + alertSettings: { + templates: JSON.parse(templates), + createIssue: parseBoolean(createIssue), + issueTemplateKey, + sendEmail: parseBoolean(sendEmail), + }, + pagerDutySettings: { + active: parseBoolean(pagerdutyActive), + webhookUrl: pagerdutyWebhookUrl, + }, + }, + render(createElement) { + return createElement(SettingsTabs); + }, + }); +}; |