summaryrefslogtreecommitdiffstats
path: root/templates/base/head_script.tmpl
diff options
context:
space:
mode:
authorDaniel Baumann <daniel@debian.org>2024-10-18 20:33:49 +0200
committerDaniel Baumann <daniel@debian.org>2024-12-12 23:57:56 +0100
commite68b9d00a6e05b3a941f63ffb696f91e554ac5ec (patch)
tree97775d6c13b0f416af55314eb6a89ef792474615 /templates/base/head_script.tmpl
parentInitial commit. (diff)
downloadforgejo-e68b9d00a6e05b3a941f63ffb696f91e554ac5ec.tar.xz
forgejo-e68b9d00a6e05b3a941f63ffb696f91e554ac5ec.zip
Adding upstream version 9.0.3.
Signed-off-by: Daniel Baumann <daniel@debian.org>
Diffstat (limited to 'templates/base/head_script.tmpl')
-rw-r--r--templates/base/head_script.tmpl50
1 files changed, 50 insertions, 0 deletions
diff --git a/templates/base/head_script.tmpl b/templates/base/head_script.tmpl
new file mode 100644
index 0000000..22e08e9
--- /dev/null
+++ b/templates/base/head_script.tmpl
@@ -0,0 +1,50 @@
+{{/*
+==== 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>
+ {{/* before our JS code gets loaded, use arrays to store errors, then the arrays will be switched to our error handler later */}}
+ window.addEventListener('error', function(e) {window._globalHandlerErrors=window._globalHandlerErrors||[]; window._globalHandlerErrors.push(e);});
+ window.addEventListener('unhandledrejection', function(e) {window._globalHandlerErrors=window._globalHandlerErrors||[]; window._globalHandlerErrors.push(e);});
+ window.config = {
+ appUrl: '{{AppUrl}}',
+ appSubUrl: '{{AppSubUrl}}',
+ assetVersionEncoded: encodeURIComponent('{{AssetVersion}}'), // will be used in URL construction directly
+ assetUrlPrefix: '{{AssetUrlPrefix}}',
+ runModeIsProd: {{.RunModeIsProd}},
+ customEmojis: {{CustomEmojis}},
+ csrfToken: '{{.CsrfToken}}',
+ pageData: {{.PageData}},
+ notificationSettings: {{NotificationSettings}}, {{/*a map provided by NewFuncMap in helper.go*/}}
+ enableTimeTracking: {{EnableTimetracking}},
+ {{if or .Participants .Assignees .MentionableTeams}}
+ mentionValues: 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: {{ctx.Locale.Tr "copy_success"}},
+ copy_error: {{ctx.Locale.Tr "copy_error"}},
+ error_occurred: {{ctx.Locale.Tr "error.occurred"}},
+ network_error: {{ctx.Locale.Tr "error.network_error"}},
+ remove_label_str: {{ctx.Locale.Tr "remove_label_str"}},
+ modal_confirm: {{ctx.Locale.Tr "modal.confirm"}},
+ modal_cancel: {{ctx.Locale.Tr "modal.cancel"}},
+ more_items: {{ctx.Locale.Tr "more_items"}},
+ },
+ };
+ {{/* 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>