diff options
Diffstat (limited to 'templates/base/head_script.tmpl')
-rw-r--r-- | templates/base/head_script.tmpl | 50 |
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> |