Skip to content

Commit d033ea5

Browse files
committed
fix
1 parent 70685a9 commit d033ea5

File tree

8 files changed

+208
-209
lines changed

8 files changed

+208
-209
lines changed

templates/base/footer.tmpl

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,10 @@
55
<div>
66
{{end}}
77

8-
{{template "custom/body_inner_post" .}}
9-
8+
{{template "custom/body_inner_post" .}}
109
</div>
11-
1210
{{template "custom/body_outer_post" .}}
13-
1411
{{template "base/footer_content" .}}
15-
16-
<script src="{{AssetUrlPrefix}}/js/index.js?v={{AssetVersion}}" onerror="alert('Failed to load asset files from ' + this.src + '. Please make sure the asset files can be accessed.')"></script>
17-
1812
{{template "custom/footer" .}}
1913
</body>
2014
</html>

templates/base/head_script.tmpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,4 +46,4 @@ If you introduce mistakes in it, Gitea JavaScript code wouldn't run correctly.
4646
{{/* in case some pages don't render the pageData, we make sure it is an object to prevent null access */}}
4747
window.config.pageData = window.config.pageData || {};
4848
</script>
49-
<script src="{{AssetUrlPrefix}}/js/webcomponents.js?v={{AssetVersion}}"></script>
49+
<script src="{{AssetUrlPrefix}}/js/index.js?v={{AssetVersion}}" onerror="alert('Failed to load asset files from ' + this.src + '. Please make sure the asset files can be accessed.')"></script>

web_src/js/globals.d.ts

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -50,17 +50,12 @@ interface Element {
5050
_tippy: import('tippy.js').Instance;
5151
}
5252

53-
type Writable<T> = { -readonly [K in keyof T]: T[K] };
54-
5553
interface Window {
5654
__webpack_public_path__: string;
5755
config: import('./web_src/js/types.ts').Config;
5856
$: typeof import('@types/jquery'),
5957
jQuery: typeof import('@types/jquery'),
60-
htmx: Omit<typeof import('htmx.org/dist/htmx.esm.js').default, 'config'> & {
61-
config?: Writable<typeof import('htmx.org').default.config>,
62-
process?: (elt: Element | string) => void,
63-
},
58+
htmx: typeof import('htmx.org').default,
6459
_globalHandlerErrors: Array<ErrorEvent & PromiseRejectionEvent> & {
6560
_inited: boolean,
6661
push: (e: ErrorEvent & PromiseRejectionEvent) => void | number,

web_src/js/globals.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,2 @@
11
import jquery from 'jquery';
2-
import htmx from 'htmx.org/dist/htmx.esm.js';
3-
42
window.$ = window.jQuery = jquery;
5-
window.htmx = htmx;

web_src/js/htmx.ts

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,26 @@
1-
import {showErrorToast} from './modules/toast.ts';
1+
import htmx from 'htmx.org';
22
import 'idiomorph/htmx';
33
import type {HtmxResponseInfo} from 'htmx.org';
4+
import {showErrorToast} from './modules/toast.ts';
45

56
type HtmxEvent = Event & {detail: HtmxResponseInfo};
67

7-
// https://htmx.org/reference/#config
8-
window.htmx.config.requestClass = 'is-loading';
9-
window.htmx.config.scrollIntoViewOnBoost = false;
8+
export function initHtmx() {
9+
window.htmx = htmx;
10+
11+
// https://htmx.org/reference/#config
12+
htmx.config.requestClass = 'is-loading';
13+
htmx.config.scrollIntoViewOnBoost = false;
1014

11-
// https://htmx.org/events/#htmx:sendError
12-
document.body.addEventListener('htmx:sendError', (event: Partial<HtmxEvent>) => {
13-
// TODO: add translations
14-
showErrorToast(`Network error when calling ${event.detail.requestConfig.path}`);
15-
});
15+
// https://htmx.org/events/#htmx:sendError
16+
document.body.addEventListener('htmx:sendError', (event: Partial<HtmxEvent>) => {
17+
// TODO: add translations
18+
showErrorToast(`Network error when calling ${event.detail.requestConfig.path}`);
19+
});
1620

17-
// https://htmx.org/events/#htmx:responseError
18-
document.body.addEventListener('htmx:responseError', (event: Partial<HtmxEvent>) => {
19-
// TODO: add translations
20-
showErrorToast(`Error ${event.detail.xhr.status} when calling ${event.detail.requestConfig.path}`);
21-
});
21+
// https://htmx.org/events/#htmx:responseError
22+
document.body.addEventListener('htmx:responseError', (event: Partial<HtmxEvent>) => {
23+
// TODO: add translations
24+
showErrorToast(`Error ${event.detail.xhr.status} when calling ${event.detail.requestConfig.path}`);
25+
});
26+
}

web_src/js/index-domready.ts

Lines changed: 178 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,178 @@
1+
import './globals.ts';
2+
import '../fomantic/build/fomantic.js';
3+
4+
import '../../node_modules/easymde/dist/easymde.min.css'; // TODO: lazy load in "switchToEasyMDE"
5+
6+
import {initHtmx} from './htmx.ts';
7+
import {initDashboardRepoList} from './features/dashboard.ts';
8+
import {initGlobalCopyToClipboardListener} from './features/clipboard.ts';
9+
import {initContextPopups} from './features/contextpopup.ts';
10+
import {initRepoGraphGit} from './features/repo-graph.ts';
11+
import {initHeatmap} from './features/heatmap.ts';
12+
import {initImageDiff} from './features/imagediff.ts';
13+
import {initRepoMigration} from './features/repo-migration.ts';
14+
import {initRepoProject} from './features/repo-projects.ts';
15+
import {initTableSort} from './features/tablesort.ts';
16+
import {initAdminUserListSearchForm} from './features/admin/users.ts';
17+
import {initAdminConfigs} from './features/admin/config.ts';
18+
import {initMarkupAnchors} from './markup/anchors.ts';
19+
import {initNotificationCount, initNotificationsTable} from './features/notification.ts';
20+
import {initRepoIssueContentHistory} from './features/repo-issue-content.ts';
21+
import {initStopwatch} from './features/stopwatch.ts';
22+
import {initFindFileInRepo} from './features/repo-findfile.ts';
23+
import {initMarkupContent} from './markup/content.ts';
24+
import {initRepoFileView} from './features/file-view.ts';
25+
import {initUserAuthOauth2, initUserCheckAppUrl} from './features/user-auth.ts';
26+
import {initRepoPullRequestAllowMaintainerEdit, initRepoPullRequestReview, initRepoIssueSidebarDependency, initRepoIssueFilterItemLabel} from './features/repo-issue.ts';
27+
import {initRepoEllipsisButton, initCommitStatuses} from './features/repo-commit.ts';
28+
import {initRepoTopicBar} from './features/repo-home.ts';
29+
import {initAdminCommon} from './features/admin/common.ts';
30+
import {initRepoCodeView} from './features/repo-code.ts';
31+
import {initSshKeyFormParser} from './features/sshkey-helper.ts';
32+
import {initUserSettings} from './features/user-settings.ts';
33+
import {initRepoActivityTopAuthorsChart, initRepoArchiveLinks} from './features/repo-common.ts';
34+
import {initRepoMigrationStatusChecker} from './features/repo-migrate.ts';
35+
import {initRepoDiffView} from './features/repo-diff.ts';
36+
import {initOrgTeam} from './features/org-team.ts';
37+
import {initUserAuthWebAuthn, initUserAuthWebAuthnRegister} from './features/user-auth-webauthn.ts';
38+
import {initRepoRelease, initRepoReleaseNew} from './features/repo-release.ts';
39+
import {initRepoEditor} from './features/repo-editor.ts';
40+
import {initCompSearchUserBox} from './features/comp/SearchUserBox.ts';
41+
import {initInstall} from './features/install.ts';
42+
import {initCompWebHookEditor} from './features/comp/WebHookEditor.ts';
43+
import {initRepoBranchButton} from './features/repo-branch.ts';
44+
import {initCommonOrganization} from './features/common-organization.ts';
45+
import {initRepoWikiForm} from './features/repo-wiki.ts';
46+
import {initRepository, initBranchSelectorTabs} from './features/repo-legacy.ts';
47+
import {initCopyContent} from './features/copycontent.ts';
48+
import {initCaptcha} from './features/captcha.ts';
49+
import {initRepositoryActionView} from './features/repo-actions.ts';
50+
import {initGlobalTooltips} from './modules/tippy.ts';
51+
import {initGiteaFomantic} from './modules/fomantic.ts';
52+
import {initSubmitEventPolyfill} from './utils/dom.ts';
53+
import {initRepoIssueList} from './features/repo-issue-list.ts';
54+
import {initCommonIssueListQuickGoto} from './features/common-issue-list.ts';
55+
import {initRepoContributors} from './features/contributors.ts';
56+
import {initRepoCodeFrequency} from './features/code-frequency.ts';
57+
import {initRepoRecentCommits} from './features/recent-commits.ts';
58+
import {initRepoDiffCommitBranchesAndTags} from './features/repo-diff-commit.ts';
59+
import {initGlobalSelectorObserver} from './modules/observer.ts';
60+
import {initRepositorySearch} from './features/repo-search.ts';
61+
import {initColorPickers} from './features/colorpicker.ts';
62+
import {initAdminSelfCheck} from './features/admin/selfcheck.ts';
63+
import {initOAuth2SettingsDisableCheckbox} from './features/oauth2-settings.ts';
64+
import {initGlobalFetchAction} from './features/common-fetch-action.ts';
65+
import {initFootLanguageMenu, initGlobalAvatarUploader, initGlobalDropdown, initGlobalInput, initGlobalTabularMenu, initHeadNavbarContentToggle} from './features/common-page.ts';
66+
import {initGlobalButtonClickOnEnter, initGlobalButtons, initGlobalDeleteButton} from './features/common-button.ts';
67+
import {initGlobalComboMarkdownEditor, initGlobalEnterQuickSubmit, initGlobalFormDirtyLeaveConfirm} from './features/common-form.ts';
68+
import {callInitFunctions} from './modules/init.ts';
69+
import {initRepoViewFileTree} from './features/repo-view-file-tree.ts';
70+
71+
const initStartTime = performance.now();
72+
const initPerformanceTracer = callInitFunctions([
73+
initHtmx,
74+
initSubmitEventPolyfill,
75+
initGiteaFomantic,
76+
77+
initGlobalAvatarUploader,
78+
initGlobalDropdown,
79+
initGlobalTabularMenu,
80+
initGlobalFetchAction,
81+
initGlobalTooltips,
82+
initGlobalButtonClickOnEnter,
83+
initGlobalButtons,
84+
initGlobalCopyToClipboardListener,
85+
initGlobalEnterQuickSubmit,
86+
initGlobalFormDirtyLeaveConfirm,
87+
initGlobalComboMarkdownEditor,
88+
initGlobalDeleteButton,
89+
initGlobalInput,
90+
91+
initCommonOrganization,
92+
initCommonIssueListQuickGoto,
93+
94+
initCompSearchUserBox,
95+
initCompWebHookEditor,
96+
97+
initInstall,
98+
99+
initHeadNavbarContentToggle,
100+
initFootLanguageMenu,
101+
102+
initContextPopups,
103+
initHeatmap,
104+
initImageDiff,
105+
initMarkupAnchors,
106+
initMarkupContent,
107+
initSshKeyFormParser,
108+
initStopwatch,
109+
initTableSort,
110+
initFindFileInRepo,
111+
initCopyContent,
112+
113+
initAdminCommon,
114+
initAdminUserListSearchForm,
115+
initAdminConfigs,
116+
initAdminSelfCheck,
117+
118+
initDashboardRepoList,
119+
120+
initNotificationCount,
121+
initNotificationsTable,
122+
123+
initOrgTeam,
124+
125+
initRepoActivityTopAuthorsChart,
126+
initRepoArchiveLinks,
127+
initRepoBranchButton,
128+
initRepoCodeView,
129+
initBranchSelectorTabs,
130+
initRepoEllipsisButton,
131+
initRepoDiffCommitBranchesAndTags,
132+
initRepoEditor,
133+
initRepoGraphGit,
134+
initRepoIssueContentHistory,
135+
initRepoIssueList,
136+
initRepoIssueFilterItemLabel,
137+
initRepoIssueSidebarDependency,
138+
initRepoMigration,
139+
initRepoMigrationStatusChecker,
140+
initRepoProject,
141+
initRepoPullRequestAllowMaintainerEdit,
142+
initRepoPullRequestReview,
143+
initRepoRelease,
144+
initRepoReleaseNew,
145+
initRepoTopicBar,
146+
initRepoViewFileTree,
147+
initRepoWikiForm,
148+
initRepository,
149+
initRepositoryActionView,
150+
initRepositorySearch,
151+
initRepoContributors,
152+
initRepoCodeFrequency,
153+
initRepoRecentCommits,
154+
155+
initCommitStatuses,
156+
initCaptcha,
157+
158+
initUserCheckAppUrl,
159+
initUserAuthOauth2,
160+
initUserAuthWebAuthn,
161+
initUserAuthWebAuthnRegister,
162+
initUserSettings,
163+
initRepoDiffView,
164+
initColorPickers,
165+
166+
initOAuth2SettingsDisableCheckbox,
167+
168+
initRepoFileView,
169+
]);
170+
171+
// it must be the last one, then the "querySelectorAll" only needs to be executed once for global init functions.
172+
initGlobalSelectorObserver(initPerformanceTracer);
173+
if (initPerformanceTracer) initPerformanceTracer.printResults();
174+
175+
const initDur = performance.now() - initStartTime;
176+
if (initDur > 500) {
177+
console.error(`slow init functions took ${initDur.toFixed(3)}ms`);
178+
}

0 commit comments

Comments
 (0)