aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsillyguodong <33891828+sillyguodong@users.noreply.github.com>2024-08-20 00:56:17 +0800
committerGitHub <noreply@github.com>2024-08-19 12:56:17 -0400
commit5d2afc6e4fc541bc31ba3e82a9999bdf3d0fce71 (patch)
treed1793c9721d291cdae357e4b3e42508f8648ab34
parentfe9a631939f36d6a7b30a1ec74e012d029f80daf (diff)
downloadgitea-5d2afc6e4fc541bc31ba3e82a9999bdf3d0fce71.tar.gz
gitea-5d2afc6e4fc541bc31ba3e82a9999bdf3d0fce71.zip
fix the component of access token list not mounted (#31824) (#31868)
-rw-r--r--templates/user/settings/applications.tmpl14
-rw-r--r--web_src/js/components/ScopedAccessTokenSelector.vue13
-rw-r--r--web_src/js/features/scoped-access-token.js20
-rw-r--r--web_src/js/index.js2
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();