mirror of
https://github.com/go-gitea/gitea.git
synced 2026-04-04 01:24:56 +02:00
205 lines
7.7 KiB
TypeScript
205 lines
7.7 KiB
TypeScript
import '../fomantic/build/fomantic.js';
|
|
import '../css/index.css';
|
|
import type { HtmxResponseInfo } from 'htmx.org';
|
|
import { showErrorToast } from './modules/toast.ts';
|
|
|
|
import { initDashboardRepoList } from './features/dashboard.ts';
|
|
import { initGlobalCopyToClipboardListener } from './features/clipboard.ts';
|
|
import { initRepoGraphGit } from './features/repo-graph.ts';
|
|
import { initHeatmap } from './features/heatmap.ts';
|
|
import { initImageDiff } from './features/imagediff.ts';
|
|
import { initRepoMigration } from './features/repo-migration.ts';
|
|
import { initRepoProject } from './features/repo-projects.ts';
|
|
import { initTableSort } from './features/tablesort.ts';
|
|
import { initAdminUserListSearchForm } from './features/admin/users.ts';
|
|
import { initAdminConfigs } from './features/admin/config.ts';
|
|
import { initMarkupAnchors } from './markup/anchors.ts';
|
|
import { initNotificationCount } from './features/notification.ts';
|
|
import { initRepoIssueContentHistory } from './features/repo-issue-content.ts';
|
|
import { initStopwatch } from './features/stopwatch.ts';
|
|
import { initRepoFileSearch } from './features/repo-findfile.ts';
|
|
import { initMarkupContent } from './markup/content.ts';
|
|
import { initRepoFileView } from './features/file-view.ts';
|
|
import { initUserCheckAppUrl, initUserExternalLogins } from './features/user-auth.ts';
|
|
import { initRepoIssueFilterItemLabel, initRepoPullRequestReview } from './features/repo-issue.ts';
|
|
import { initCommitStatuses, initRepoEllipsisButton } from './features/repo-commit.ts';
|
|
import { initRepoTopicBar } from './features/repo-home.ts';
|
|
import { initAdminCommon } from './features/admin/common.ts';
|
|
import { initRepoCodeView } from './features/repo-code.ts';
|
|
import { initSshKeyFormParser } from './features/sshkey-helper.ts';
|
|
import { initUserSettings } from './features/user-settings.ts';
|
|
import { initRepoActivityTopAuthorsChart, initRepoArchiveLinks } from './features/repo-common.ts';
|
|
import { initRepoMigrationStatusChecker } from './features/repo-migrate.ts';
|
|
import { initRepoDiffView } from './features/repo-diff.ts';
|
|
import { initOrgTeam } from './features/org-team.ts';
|
|
import { initUserAuthWebAuthn, initUserAuthWebAuthnRegister } from './features/user-auth-webauthn.ts';
|
|
import { initRepoReleaseNew } from './features/repo-release.ts';
|
|
import { initRepoEditor } from './features/repo-editor.ts';
|
|
import { initCompSearchUserBox } from './features/comp/SearchUserBox.ts';
|
|
import { initInstall } from './features/install.ts';
|
|
import { initCompSearchTeamBox } from './features/comp/SearchTeamBox.ts'
|
|
import { initCompWebHookEditor } from './features/comp/WebHookEditor.ts';
|
|
import { initRepoBranchButton } from './features/repo-branch.ts';
|
|
import { initCommonOrganization } from './features/common-organization.ts';
|
|
import { initRepoWikiForm } from './features/repo-wiki.ts';
|
|
import { initBranchSelectorTabs, initRepository } from './features/repo-legacy.ts';
|
|
import { initCopyContent } from './features/copycontent.ts';
|
|
import { initCaptcha } from './features/captcha.ts';
|
|
import { initRepositoryActionView } from './features/repo-actions.ts';
|
|
import { initGlobalTooltips } from './modules/tippy.ts';
|
|
import { initGiteaFomantic } from './modules/fomantic.ts';
|
|
import { initSubmitEventPolyfill } from './utils/dom.ts';
|
|
import { initRepoIssueList } from './features/repo-issue-list.ts';
|
|
import { initCommonIssueListQuickGoto } from './features/common-issue-list.ts';
|
|
import { initRepoContributors } from './features/contributors.ts';
|
|
import { initRepoCodeFrequency } from './features/code-frequency.ts';
|
|
import { initRepoRecentCommits } from './features/recent-commits.ts';
|
|
import { initRepoDiffCommitBranchesAndTags } from './features/repo-diff-commit.ts';
|
|
import { initGlobalSelectorObserver } from './modules/observer.ts';
|
|
import { initRepositorySearch } from './features/repo-search.ts';
|
|
import { initColorPickers } from './features/colorpicker.ts';
|
|
import { initAdminSelfCheck } from './features/admin/selfcheck.ts';
|
|
import { initOAuth2SettingsDisableCheckbox } from './features/oauth2-settings.ts';
|
|
import { initGlobalFetchAction } from './features/common-fetch-action.ts';
|
|
import {
|
|
initCommmPageComponents,
|
|
initGlobalComponent,
|
|
initGlobalDropdown,
|
|
initGlobalInput
|
|
} from './features/common-page.ts';
|
|
import { initGlobalButtonClickOnEnter, initGlobalButtons, initGlobalDeleteButton } from './features/common-button.ts';
|
|
import {
|
|
initGlobalComboMarkdownEditor,
|
|
initGlobalEnterQuickSubmit,
|
|
initGlobalFormDirtyLeaveConfirm
|
|
} from './features/common-form.ts';
|
|
import { callInitFunctions } from './modules/init.ts';
|
|
import { initRepoViewFileTree } from './features/repo-view-file-tree.ts';
|
|
import { initActionsPermissionsForm } from './features/common-actions-permissions.ts';
|
|
import { initGlobalShortcut } from './modules/shortcut.ts';
|
|
import { initCommonGroup, initGroup } from "./features/group.ts";
|
|
|
|
const initStartTime = performance.now();
|
|
const initPerformanceTracer = callInitFunctions([
|
|
initSubmitEventPolyfill,
|
|
initGiteaFomantic,
|
|
|
|
initGlobalComponent,
|
|
initGlobalDropdown,
|
|
initGlobalFetchAction,
|
|
initGlobalTooltips,
|
|
initGlobalButtonClickOnEnter,
|
|
initGlobalButtons,
|
|
initGlobalCopyToClipboardListener,
|
|
initGlobalEnterQuickSubmit,
|
|
initGlobalFormDirtyLeaveConfirm,
|
|
initGlobalComboMarkdownEditor,
|
|
initGlobalDeleteButton,
|
|
initGlobalInput,
|
|
initGlobalShortcut,
|
|
|
|
initCommonOrganization,
|
|
initCommonIssueListQuickGoto,
|
|
|
|
initCompSearchUserBox,
|
|
initCompWebHookEditor,
|
|
initCompSearchTeamBox,
|
|
|
|
initInstall,
|
|
|
|
initCommmPageComponents,
|
|
|
|
initHeatmap,
|
|
initImageDiff,
|
|
initMarkupAnchors,
|
|
initMarkupContent,
|
|
initSshKeyFormParser,
|
|
initStopwatch,
|
|
initTableSort,
|
|
initRepoFileSearch,
|
|
initCopyContent,
|
|
|
|
initAdminCommon,
|
|
initAdminUserListSearchForm,
|
|
initAdminConfigs,
|
|
initAdminSelfCheck,
|
|
|
|
initDashboardRepoList,
|
|
|
|
initNotificationCount,
|
|
|
|
initOrgTeam,
|
|
|
|
initRepoActivityTopAuthorsChart,
|
|
initRepoArchiveLinks,
|
|
initRepoBranchButton,
|
|
initRepoCodeView,
|
|
initBranchSelectorTabs,
|
|
initRepoEllipsisButton,
|
|
initRepoDiffCommitBranchesAndTags,
|
|
initRepoEditor,
|
|
initRepoGraphGit,
|
|
initRepoIssueContentHistory,
|
|
initRepoIssueList,
|
|
initRepoIssueFilterItemLabel,
|
|
initRepoMigration,
|
|
initRepoMigrationStatusChecker,
|
|
initRepoProject,
|
|
initRepoPullRequestReview,
|
|
initRepoReleaseNew,
|
|
initRepoTopicBar,
|
|
initRepoViewFileTree,
|
|
initRepoWikiForm,
|
|
initRepository,
|
|
initRepositoryActionView,
|
|
initRepositorySearch,
|
|
initRepoContributors,
|
|
initRepoCodeFrequency,
|
|
initRepoRecentCommits,
|
|
|
|
initCommitStatuses,
|
|
initCaptcha,
|
|
|
|
initUserCheckAppUrl,
|
|
initUserExternalLogins,
|
|
initUserAuthWebAuthn,
|
|
initUserAuthWebAuthnRegister,
|
|
initUserSettings,
|
|
initRepoDiffView,
|
|
initColorPickers,
|
|
|
|
initOAuth2SettingsDisableCheckbox,
|
|
|
|
initRepoFileView,
|
|
|
|
initCommonGroup,
|
|
initGroup,
|
|
initActionsPermissionsForm,
|
|
]);
|
|
|
|
// it must be the last one, then the "querySelectorAll" only needs to be executed once for global init functions.
|
|
initGlobalSelectorObserver(initPerformanceTracer);
|
|
if (initPerformanceTracer) initPerformanceTracer.printResults();
|
|
|
|
const initDur = performance.now() - initStartTime;
|
|
if (initDur > 500) {
|
|
console.error(`slow init functions took ${initDur.toFixed(3)}ms`);
|
|
}
|
|
|
|
// https://htmx.org/events/#htmx:sendError
|
|
type HtmxEvent = Event & { detail: HtmxResponseInfo };
|
|
document.body.addEventListener('htmx:sendError',
|
|
(event) => {
|
|
// TODO: add translations
|
|
showErrorToast(`Network error when calling ${(event as HtmxEvent).detail.requestConfig.path}`);
|
|
});
|
|
// https://htmx.org/events/#htmx:responseError
|
|
document.body.addEventListener('htmx:responseError',
|
|
(event) => {
|
|
// TODO: add translations
|
|
showErrorToast(`Error ${(event as HtmxEvent).detail.xhr.status} when calling ${(event as HtmxEvent).detail.requestConfig.path}`);
|
|
});
|
|
|
|
|
|
document.dispatchEvent(new CustomEvent('gitea:index-ready'));
|