gitlab-ce/app/assets/javascripts/projects/settings_service_desk/index.js

55 lines
1.5 KiB
JavaScript

import { GlToast } from '@gitlab/ui';
import Vue from 'vue';
import { parseBoolean } from '~/lib/utils/common_utils';
import ServiceDeskRoot from './components/service_desk_root.vue';
Vue.use(GlToast);
export default () => {
const el = document.querySelector('.js-service-desk-setting-root');
if (!el) {
return false;
}
const {
serviceDeskEmail,
serviceDeskEmailEnabled,
enabled,
issueTrackerEnabled,
endpoint,
incomingEmail,
outgoingName,
projectKey,
reopenIssueOnExternalParticipantNote,
addExternalParticipantsFromCc,
selectedTemplate,
selectedFileTemplateProjectId,
templates,
publicProject,
customEmailEndpoint,
} = el.dataset;
return new Vue({
el,
provide: {
serviceDeskEmail,
serviceDeskEmailEnabled: parseBoolean(serviceDeskEmailEnabled),
endpoint,
initialIncomingEmail: incomingEmail,
initialIsEnabled: parseBoolean(enabled),
isIssueTrackerEnabled: parseBoolean(issueTrackerEnabled),
outgoingName,
projectKey,
reopenIssueOnExternalParticipantNote: parseBoolean(reopenIssueOnExternalParticipantNote),
addExternalParticipantsFromCc: parseBoolean(addExternalParticipantsFromCc),
selectedTemplate,
selectedFileTemplateProjectId: parseInt(selectedFileTemplateProjectId, 10) || null,
templates: JSON.parse(templates),
publicProject: parseBoolean(publicProject),
customEmailEndpoint,
},
render: (createElement) => createElement(ServiceDeskRoot),
});
};