1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
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,
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,
addExternalParticipantsFromCc: parseBoolean(addExternalParticipantsFromCc),
selectedTemplate,
selectedFileTemplateProjectId: parseInt(selectedFileTemplateProjectId, 10) || null,
templates: JSON.parse(templates),
publicProject: parseBoolean(publicProject),
customEmailEndpoint,
},
render: (createElement) => createElement(ServiceDeskRoot),
});
};
|