diff options
author | silverwind <me@silverwind.io> | 2024-07-07 17:32:30 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-07-07 15:32:30 +0000 |
commit | 5791a73e75b630db3cade3e606c45eb8d8a641cb (patch) | |
tree | 3042132ac6f486723ff2ae42245a5b8a09d98c72 /web_src/js/features/common-page.js | |
parent | 5115c278ff8f3f8beebb172ce20a939a10476dfd (diff) | |
download | gitea-5791a73e75b630db3cade3e606c45eb8d8a641cb.tar.gz gitea-5791a73e75b630db3cade3e606c45eb8d8a641cb.zip |
Convert frontend code to typescript (#31559)
None of the frontend js/ts files was touched besides these two commands
(edit: no longer true, I touched one file in
https://github.com/go-gitea/gitea/pull/31559/commits/61105d0618e285d97e95044bfb64415f364a4526
because of a deprecation that was not showing before the rename).
`tsc` currently reports 778 errors, so I have disabled it in CI as
planned.
Everything appears to work fine.
Diffstat (limited to 'web_src/js/features/common-page.js')
-rw-r--r-- | web_src/js/features/common-page.js | 93 |
1 files changed, 0 insertions, 93 deletions
diff --git a/web_src/js/features/common-page.js b/web_src/js/features/common-page.js deleted file mode 100644 index 7e89807df4..0000000000 --- a/web_src/js/features/common-page.js +++ /dev/null @@ -1,93 +0,0 @@ -import $ from 'jquery'; -import {GET} from '../modules/fetch.js'; -import {showGlobalErrorMessage} from '../bootstrap.js'; - -const {appUrl} = window.config; - -export function initHeadNavbarContentToggle() { - const navbar = document.querySelector('#navbar'); - const btn = document.querySelector('#navbar-expand-toggle'); - if (!navbar || !btn) return; - - btn.addEventListener('click', () => { - const isExpanded = btn.classList.contains('active'); - navbar.classList.toggle('navbar-menu-open', !isExpanded); - btn.classList.toggle('active', !isExpanded); - }); -} - -export function initFootLanguageMenu() { - async function linkLanguageAction() { - const $this = $(this); - await GET($this.data('url')); - window.location.reload(); - } - - $('.language-menu a[lang]').on('click', linkLanguageAction); -} - -export function initGlobalDropdown() { - // Semantic UI modules. - const $uiDropdowns = $('.ui.dropdown'); - - // do not init "custom" dropdowns, "custom" dropdowns are managed by their own code. - $uiDropdowns.filter(':not(.custom)').dropdown(); - - // The "jump" means this dropdown is mainly used for "menu" purpose, - // clicking an item will jump to somewhere else or trigger an action/function. - // When a dropdown is used for non-refresh actions with tippy, - // it must have this "jump" class to hide the tippy when dropdown is closed. - $uiDropdowns.filter('.jump').dropdown({ - action: 'hide', - onShow() { - // hide associated tooltip while dropdown is open - this._tippy?.hide(); - this._tippy?.disable(); - }, - onHide() { - this._tippy?.enable(); - - // hide all tippy elements of items after a while. eg: use Enter to click "Copy Link" in the Issue Context Menu - setTimeout(() => { - const $dropdown = $(this); - if ($dropdown.dropdown('is hidden')) { - $(this).find('.menu > .item').each((_, item) => { - item._tippy?.hide(); - }); - } - }, 2000); - }, - }); - - // Special popup-directions, prevent Fomantic from guessing the popup direction. - // With default "direction: auto", if the viewport height is small, Fomantic would show the popup upward, - // if the dropdown is at the beginning of the page, then the top part would be clipped by the window view. - // eg: Issue List "Sort" dropdown - // But we can not set "direction: downward" for all dropdowns, because there is a bug in dropdown menu positioning when calculating the "left" position, - // which would make some dropdown popups slightly shift out of the right viewport edge in some cases. - // eg: the "Create New Repo" menu on the navbar. - $uiDropdowns.filter('.upward').dropdown('setting', 'direction', 'upward'); - $uiDropdowns.filter('.downward').dropdown('setting', 'direction', 'downward'); -} - -export function initGlobalTabularMenu() { - $('.ui.menu.tabular:not(.custom) .item').tab({autoTabActivation: false}); -} - -/** - * Too many users set their ROOT_URL to wrong value, and it causes a lot of problems: - * * Cross-origin API request without correct cookie - * * Incorrect href in <a> - * * ... - * So we check whether current URL starts with AppUrl(ROOT_URL). - * If they don't match, show a warning to users. - */ -export function checkAppUrl() { - const curUrl = window.location.href; - // some users visit "https://domain/gitea" while appUrl is "https://domain/gitea/", there should be no warning - if (curUrl.startsWith(appUrl) || `${curUrl}/` === appUrl) { - return; - } - showGlobalErrorMessage(`Your ROOT_URL in app.ini is "${appUrl}", it's unlikely matching the site you are visiting. -Mismatched ROOT_URL config causes wrong URL links for web UI/mail content/webhook notification/OAuth2 sign-in.`, 'warning'); -} |