File tree Expand file tree Collapse file tree 4 files changed +33
-16
lines changed Expand file tree Collapse file tree 4 files changed +33
-16
lines changed Original file line number Diff line number Diff line change @@ -908,6 +908,7 @@ token_name = Token Name
908908generate_token = Generate Token
909909generate_token_success = Your new token has been generated. Copy it now as it will not be shown again.
910910generate_token_name_duplicate = <strong>%s</strong> has been used as an application name already. Please use a new one.
911+ generate_token_name_required = Token Name is required.
911912delete_token = Delete
912913access_token_deletion = Delete Access Token
913914access_token_deletion_cancel_action = Cancel
Original file line number Diff line number Diff line change 5555 </h5>
5656 <form id="scoped-access-form" class="ui form ignore-dirty" action="{{.Link}}" method="post">
5757 {{.CsrfTokenHtml}}
58- <div class="field {{if .Err_Name}}error{{end}}">
59- <label for="name">{{ctx.Locale.Tr "settings.token_name"}}</label>
60- <input id="name" name="name" value="{{.name}}" autofocus required maxlength="255">
61- </div>
58+ <div class="field">
59+ <label for="name">{{ctx.Locale.Tr "settings.token_name"}}</label>
60+ <div id="scoped-access-token-name">
61+ <input id="name" name="name" value="{{.name}}" autofocus required maxlength="255">
62+ </div>
63+ </div>
6264 <div class="field">
6365 <label>{{ctx.Locale.Tr "settings.repo_and_org_access"}}</label>
6466 <label class="tw-cursor-pointer">
9092 {{ctx.Locale.Tr "settings.generate_token"}}
9193 </button>
9294 </form>{{/* Fomantic ".ui.form .warning.message" is hidden by default, so put the warning message out of the form*/}}
95+ <div id="token-name-warning" class="ui warning message center tw-hidden">
96+ {{ctx.Locale.Tr "settings.generate_token_name_required"}}
97+ </div>
9398 <div id="scoped-access-warning" class="ui warning message center tw-hidden">
9499 {{ctx.Locale.Tr "settings.at_least_one_permission"}}
95100 </div>
Original file line number Diff line number Diff line change @@ -38,20 +38,31 @@ onUnmounted(() => {
3838function onClickSubmit(e : Event ) {
3939 e .preventDefault ();
4040
41+ const nameInput = document .querySelector <HTMLInputElement >(' #name' );
42+ const nameWarning = document .querySelector (' #token-name-warning' );
43+ if (! nameInput ?.value .trim ()) {
44+ showElem (nameWarning );
45+ return ;
46+ }
47+ hideElem (nameWarning );
48+
4149 const warningEl = document .querySelector (' #scoped-access-warning' );
42- // check that at least one scope has been selected
50+ let hasSelectedScope = false ;
51+
4352 for (const el of document .querySelectorAll <HTMLInputElement >(' .access-token-select' )) {
4453 if (el .value ) {
45- // Hide the error if it was visible from previous attempt.
46- hideElem (warningEl );
47- // Submit the form.
48- document .querySelector <HTMLFormElement >(' #scoped-access-form' ).submit ();
49- // Don't show the warning.
50- return ;
54+ hasSelectedScope = true ;
55+ break ;
5156 }
5257 }
53- // no scopes selected, show validation error
54- showElem (warningEl );
58+
59+ if (! hasSelectedScope ) {
60+ showElem (warningEl );
61+ return ;
62+ }
63+
64+ hideElem (warningEl );
65+ document .querySelector <HTMLFormElement >(' #scoped-access-form' )?.submit ();
5566}
5667 </script >
5768
Original file line number Diff line number Diff line change @@ -4,17 +4,17 @@ export async function initScopedAccessTokenCategories() {
44 const el = document . querySelector ( '#scoped-access-token-selector' ) ;
55 if ( ! el ) return ;
66
7- const { default : ScopedAccessTokenSelector } = await import ( /* webpackChunkName: "scoped-access-token-selector " */ '../components/ScopedAccessTokenSelector .vue' ) ;
7+ const { default : ScopedAccessTokenForm } = await import ( /* webpackChunkName: "scoped-access-token-form " */ '../components/ScopedAccessTokenForm .vue' ) ;
88 try {
9- const View = createApp ( ScopedAccessTokenSelector , {
9+ const View = createApp ( ScopedAccessTokenForm , {
1010 isAdmin : JSON . parse ( el . getAttribute ( 'data-is-admin' ) ) ,
1111 noAccessLabel : el . getAttribute ( 'data-no-access-label' ) ,
1212 readLabel : el . getAttribute ( 'data-read-label' ) ,
1313 writeLabel : el . getAttribute ( 'data-write-label' ) ,
1414 } ) ;
1515 View . mount ( el ) ;
1616 } catch ( err ) {
17- console . error ( 'ScopedAccessTokenSelector failed to load' , err ) ;
17+ console . error ( 'ScopedAccessTokenForm failed to load' , err ) ;
1818 el . textContent = el . getAttribute ( 'data-locale-component-failed-to-load' ) ;
1919 }
2020}
You can’t perform that action at this time.
0 commit comments