diff options
author | sillyguodong <33891828+sillyguodong@users.noreply.github.com> | 2024-08-20 00:56:17 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-08-19 12:56:17 -0400 |
commit | 5d2afc6e4fc541bc31ba3e82a9999bdf3d0fce71 (patch) | |
tree | d1793c9721d291cdae357e4b3e42508f8648ab34 | |
parent | fe9a631939f36d6a7b30a1ec74e012d029f80daf (diff) | |
download | gitea-5d2afc6e4fc541bc31ba3e82a9999bdf3d0fce71.tar.gz gitea-5d2afc6e4fc541bc31ba3e82a9999bdf3d0fce71.zip |
fix the component of access token list not mounted (#31824) (#31868)
-rw-r--r-- | templates/user/settings/applications.tmpl | 14 | ||||
-rw-r--r-- | web_src/js/components/ScopedAccessTokenSelector.vue | 13 | ||||
-rw-r--r-- | web_src/js/features/scoped-access-token.js | 20 | ||||
-rw-r--r-- | web_src/js/index.js | 2 |
4 files changed, 28 insertions, 21 deletions
diff --git a/templates/user/settings/applications.tmpl b/templates/user/settings/applications.tmpl index 3c1934dd8b..65525aac2b 100644 --- a/templates/user/settings/applications.tmpl +++ b/templates/user/settings/applications.tmpl @@ -77,13 +77,13 @@ <p class="activity meta"> <i>{{ctx.Locale.Tr "settings.access_token_desc" (HTMLFormat `href="%s/api/swagger" target="_blank"` AppSubUrl) (`href="https://docs.gitea.com/development/oauth2-provider#scopes" target="_blank"`|SafeHTML)}}</i> </p> - <div class="scoped-access-token-mount"> - <scoped-access-token-selector - :is-admin="{{if .IsAdmin}}true{{else}}false{{end}}" - no-access-label="{{ctx.Locale.Tr "settings.permission_no_access"}}" - read-label="{{ctx.Locale.Tr "settings.permission_read"}}" - write-label="{{ctx.Locale.Tr "settings.permission_write"}}" - ></scoped-access-token-selector> + <div id="scoped-access-token-selector" + data-is-admin="{{if .IsAdmin}}true{{else}}false{{end}}" + data-no-access-label="{{ctx.Locale.Tr "settings.permission_no_access"}}" + data-read-label="{{ctx.Locale.Tr "settings.permission_read"}}" + data-write-label="{{ctx.Locale.Tr "settings.permission_write"}}" + data-locale-component-failed-to-load="{{ctx.Locale.Tr "graphs.component_failed_to_load"}}" + > </div> </details> <button id="scoped-access-submit" class="ui primary button"> diff --git a/web_src/js/components/ScopedAccessTokenSelector.vue b/web_src/js/components/ScopedAccessTokenSelector.vue index 103cc525ad..326afba4e5 100644 --- a/web_src/js/components/ScopedAccessTokenSelector.vue +++ b/web_src/js/components/ScopedAccessTokenSelector.vue @@ -1,5 +1,4 @@ <script> -import {createApp} from 'vue'; import {hideElem, showElem} from '../utils/dom.js'; const sfc = { @@ -73,18 +72,6 @@ const sfc = { }; export default sfc; - -/** - * Initialize category toggle sections - */ -export function initScopedAccessTokenCategories() { - for (const el of document.getElementsByClassName('scoped-access-token-mount')) { - createApp({}) - .component('scoped-access-token-selector', sfc) - .mount(el); - } -} - </script> <template> <div v-for="category in categories" :key="category" class="field tw-pl-1 tw-pb-1 access-token-category"> diff --git a/web_src/js/features/scoped-access-token.js b/web_src/js/features/scoped-access-token.js new file mode 100644 index 0000000000..c498d4c011 --- /dev/null +++ b/web_src/js/features/scoped-access-token.js @@ -0,0 +1,20 @@ +import {createApp} from 'vue'; + +export async function initScopedAccessTokenCategories() { + const el = document.querySelector('#scoped-access-token-selector'); + if (!el) return; + + const {default: ScopedAccessTokenSelector} = await import(/* webpackChunkName: "scoped-access-token-selector" */'../components/ScopedAccessTokenSelector.vue'); + try { + const View = createApp(ScopedAccessTokenSelector, { + isAdmin: JSON.parse(el.getAttribute('data-is-admin')), + noAccessLabel: el.getAttribute('data-no-access-label'), + readLabel: el.getAttribute('data-read-label'), + writeLabel: el.getAttribute('data-write-label'), + }); + View.mount(el); + } catch (err) { + console.error('ScopedAccessTokenSelector failed to load', err); + el.textContent = el.getAttribute('data-locale-component-failed-to-load'); + } +} diff --git a/web_src/js/index.js b/web_src/js/index.js index 1867556eee..4c3852b406 100644 --- a/web_src/js/index.js +++ b/web_src/js/index.js @@ -2,7 +2,6 @@ import './bootstrap.js'; import {initRepoActivityTopAuthorsChart} from './components/RepoActivityTopAuthors.vue'; -import {initScopedAccessTokenCategories} from './components/ScopedAccessTokenSelector.vue'; import {initDashboardRepoList} from './components/DashboardRepoList.vue'; import {initGlobalCopyToClipboardListener} from './features/clipboard.js'; @@ -88,6 +87,7 @@ import {initDirAuto} from './modules/dirauto.js'; import {initRepositorySearch} from './features/repo-search.js'; import {initColorPickers} from './features/colorpicker.js'; import {initAdminSelfCheck} from './features/admin/selfcheck.js'; +import {initScopedAccessTokenCategories} from './features/scoped-access-token.js'; // Init Gitea's Fomantic settings initGiteaFomantic(); |