gitea源码

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