Skip to content

Commit 2e7d202

Browse files
authored
fix the component of access token list not mounted (#31824)
try to fix #31771
1 parent acd7053 commit 2e7d202

File tree

4 files changed

+28
-21
lines changed

4 files changed

+28
-21
lines changed

templates/user/settings/applications.tmpl

+7-7
Original file line numberDiff line numberDiff line change
@@ -77,13 +77,13 @@
7777
<p class="activity meta">
7878
<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>
7979
</p>
80-
<div class="scoped-access-token-mount">
81-
<scoped-access-token-selector
82-
:is-admin="{{if .IsAdmin}}true{{else}}false{{end}}"
83-
no-access-label="{{ctx.Locale.Tr "settings.permission_no_access"}}"
84-
read-label="{{ctx.Locale.Tr "settings.permission_read"}}"
85-
write-label="{{ctx.Locale.Tr "settings.permission_write"}}"
86-
></scoped-access-token-selector>
80+
<div id="scoped-access-token-selector"
81+
data-is-admin="{{if .IsAdmin}}true{{else}}false{{end}}"
82+
data-no-access-label="{{ctx.Locale.Tr "settings.permission_no_access"}}"
83+
data-read-label="{{ctx.Locale.Tr "settings.permission_read"}}"
84+
data-write-label="{{ctx.Locale.Tr "settings.permission_write"}}"
85+
data-locale-component-failed-to-load="{{ctx.Locale.Tr "graphs.component_failed_to_load"}}"
86+
>
8787
</div>
8888
</details>
8989
<button id="scoped-access-submit" class="ui primary button">

web_src/js/components/ScopedAccessTokenSelector.vue

-13
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
<script lang="ts">
2-
import {createApp} from 'vue';
32
import {hideElem, showElem} from '../utils/dom.ts';
43
54
const sfc = {
@@ -73,18 +72,6 @@ const sfc = {
7372
};
7473
7574
export default sfc;
76-
77-
/**
78-
* Initialize category toggle sections
79-
*/
80-
export function initScopedAccessTokenCategories() {
81-
for (const el of document.querySelectorAll('.scoped-access-token-mount')) {
82-
createApp({})
83-
.component('scoped-access-token-selector', sfc)
84-
.mount(el);
85-
}
86-
}
87-
8875
</script>
8976
<template>
9077
<div v-for="category in categories" :key="category" class="field tw-pl-1 tw-pb-1 access-token-category">
+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import {createApp} from 'vue';
2+
3+
export async function initScopedAccessTokenCategories() {
4+
const el = document.querySelector('#scoped-access-token-selector');
5+
if (!el) return;
6+
7+
const {default: ScopedAccessTokenSelector} = await import(/* webpackChunkName: "scoped-access-token-selector" */'../components/ScopedAccessTokenSelector.vue');
8+
try {
9+
const View = createApp(ScopedAccessTokenSelector, {
10+
isAdmin: JSON.parse(el.getAttribute('data-is-admin')),
11+
noAccessLabel: el.getAttribute('data-no-access-label'),
12+
readLabel: el.getAttribute('data-read-label'),
13+
writeLabel: el.getAttribute('data-write-label'),
14+
});
15+
View.mount(el);
16+
} catch (err) {
17+
console.error('ScopedAccessTokenSelector failed to load', err);
18+
el.textContent = el.getAttribute('data-locale-component-failed-to-load');
19+
}
20+
}

web_src/js/index.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import './bootstrap.ts';
33
import './htmx.ts';
44

55
import {initRepoActivityTopAuthorsChart} from './components/RepoActivityTopAuthors.vue';
6-
import {initScopedAccessTokenCategories} from './components/ScopedAccessTokenSelector.vue';
76
import {initDashboardRepoList} from './components/DashboardRepoList.vue';
87

98
import {initGlobalCopyToClipboardListener} from './features/clipboard.ts';
@@ -80,6 +79,7 @@ import {initColorPickers} from './features/colorpicker.ts';
8079
import {initAdminSelfCheck} from './features/admin/selfcheck.ts';
8180
import {initOAuth2SettingsDisableCheckbox} from './features/oauth2-settings.ts';
8281
import {initGlobalFetchAction} from './features/common-fetch-action.ts';
82+
import {initScopedAccessTokenCategories} from './features/scoped-access-token.ts';
8383
import {
8484
initFootLanguageMenu,
8585
initGlobalDropdown,

0 commit comments

Comments
 (0)