aboutsummaryrefslogtreecommitdiffstats
path: root/templates/base/head_script.tmpl
blob: d19fae629bd97d709c7aab77255b3a470cf38baa (plain)
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
{{/*
==== DO NOT EDIT ====
If you are customizing Gitea, please do not change this file.
If you introduce mistakes in it, Gitea JavaScript code wouldn't run correctly.
*/}}
<script>
	window.addEventListener('error', function(e) {window._globalHandlerErrors=window._globalHandlerErrors||[]; window._globalHandlerErrors.push(e);});
	window.config = {
		initCount: (window.config?.initCount ?? 0) + 1,
		appUrl: '{{AppUrl}}',
		appSubUrl: '{{AppSubUrl}}',
		assetVersionEncoded: encodeURIComponent('{{AssetVersion}}'), // will be used in URL construction directly
		assetUrlPrefix: '{{AssetUrlPrefix}}',
		runModeIsProd: {{.RunModeIsProd}},
		customEmojis: {{CustomEmojis}},
		useServiceWorker: {{UseServiceWorker}},
		csrfToken: '{{.CsrfToken}}',
		pageData: {{.PageData}},
		notificationSettings: {{NotificationSettings}}, {{/*a map provided by NewFuncMap in helper.go*/}}
		enableTimeTracking: {{EnableTimetracking}},
		{{if or .Participants .Assignees .MentionableTeams}}
		tributeValues: Array.from(new Map([
			{{- range .Participants -}}
				['{{.Name}}', {key: '{{.Name}} {{.FullName}}', value: '{{.Name}}', name: '{{.Name}}', fullname: '{{.FullName}}', avatar: '{{.AvatarLink $.Context}}'}],
			{{- end -}}
			{{- range .Assignees -}}
				['{{.Name}}', {key: '{{.Name}} {{.FullName}}', value: '{{.Name}}', name: '{{.Name}}', fullname: '{{.FullName}}', avatar: '{{.AvatarLink $.Context}}'}],
			{{- end -}}
			{{- range .MentionableTeams -}}
				['{{$.MentionableTeamsOrg}}/{{.Name}}', {key: '{{$.MentionableTeamsOrg}}/{{.Name}}', value: '{{$.MentionableTeamsOrg}}/{{.Name}}', name: '{{$.MentionableTeamsOrg}}/{{.Name}}', avatar: '{{$.MentionableTeamsOrgAvatar}}'}],
			{{- end -}}
		]).values()),
		{{end}}
		mermaidMaxSourceCharacters: {{MermaidMaxSourceCharacters}},
		{{/* this global i18n object should only contain general texts. for specialized texts, it should be provided inside the related modules by: (1) API response (2) HTML data-attribute (3) PageData */}}
		i18n: {
			copy_success: '{{.locale.Tr "copy_success"}}',
			copy_error: '{{.locale.Tr "copy_error"}}',
			error_occurred: '{{.locale.Tr "error.occurred"}}',
			network_error: '{{.locale.Tr "error.network_error"}}',
			remove_label_str: '{{.locale.Tr "remove_label_str"}}',
		},
	};
	{{/* in case some pages don't render the pageData, we make sure it is an object to prevent null access */}}
	window.config.pageData = window.config.pageData || {};
</script>
<script src="{{AssetUrlPrefix}}/js/webcomponents.js?v={{AssetVersion}}"></script>