aboutsummaryrefslogtreecommitdiff
path: root/web_src
diff options
context:
space:
mode:
authorZettat1232023-03-11 00:42:38 +0800
committerGitHub2023-03-10 10:42:38 -0600
commit3de9e63fd04d61e08fcbdec035c9f138347d9f37 (patch)
tree32bb66811664eedfb75392bb42a7ad4c907c7efb /web_src
parent5155ec35c571de8df62318df78c78cebc20e1aa0 (diff)
Hide target selector if tag exists when creating new release (#23171)
Close #22649. |status|screenshot| |-|-| |empty tag name|<img src="https://user-images.githubusercontent.com/15528715/221490165-fd3abd2e-6dc5-4562-bece-d1d6a305479e.png" width="300px"/>| |new tag|<img src="https://user-images.githubusercontent.com/15528715/221490450-49b2a48e-b206-49f4-bd79-34b1ea64156f.png" width="300px"/>| |existing tag|<img src="https://user-images.githubusercontent.com/15528715/221490301-4d1879dd-4947-4abc-9b9a-e77be1806981.png" width="300px"/>|
Diffstat (limited to 'web_src')
-rw-r--r--web_src/js/features/repo-release.js39
-rw-r--r--web_src/js/index.js4
2 files changed, 39 insertions, 4 deletions
diff --git a/web_src/js/features/repo-release.js b/web_src/js/features/repo-release.js
index a061c6b23..a230d7765 100644
--- a/web_src/js/features/repo-release.js
+++ b/web_src/js/features/repo-release.js
@@ -3,7 +3,7 @@ import {attachTribute} from './tribute.js';
import {initCompMarkupContentPreviewTab} from './comp/MarkupContentPreview.js';
import {initEasyMDEImagePaste} from './comp/ImagePaste.js';
import {createCommentEasyMDE} from './comp/EasyMDE.js';
-import {hideElem} from '../utils/dom.js';
+import {hideElem, showElem} from '../utils/dom.js';
export function initRepoRelease() {
$(document).on('click', '.remove-rel-attach', function() {
@@ -14,8 +14,43 @@ export function initRepoRelease() {
});
}
+export function initRepoReleaseNew() {
+ const $repoReleaseNew = $('.repository.new.release');
+ if (!$repoReleaseNew.length) return;
-export function initRepoReleaseEditor() {
+ initTagNameEditor();
+ initRepoReleaseEditor();
+}
+
+function initTagNameEditor() {
+ const el = document.getElementById('tag-name-editor');
+ if (!el) return;
+
+ const existingTags = JSON.parse(el.getAttribute('data-existing-tags'));
+ if (!Array.isArray(existingTags)) return;
+
+ const defaultTagHelperText = el.getAttribute('data-tag-helper');
+ const newTagHelperText = el.getAttribute('data-tag-helper-new');
+ const existingTagHelperText = el.getAttribute('data-tag-helper-existing');
+
+ document.getElementById('tag-name').addEventListener('keyup', (e) => {
+ const value = e.target.value;
+ if (existingTags.includes(value)) {
+ // If the tag already exists, hide the target branch selector.
+ hideElem('#tag-target-selector');
+ document.getElementById('tag-helper').innerText = existingTagHelperText;
+ } else {
+ showElem('#tag-target-selector');
+ if (value) {
+ document.getElementById('tag-helper').innerText = newTagHelperText;
+ } else {
+ document.getElementById('tag-helper').innerText = defaultTagHelperText;
+ }
+ }
+ });
+}
+
+function initRepoReleaseEditor() {
const $editor = $('.repository.new.release .content-editor');
if ($editor.length === 0) {
return;
diff --git a/web_src/js/index.js b/web_src/js/index.js
index 611c09d2b..6b4f4ef3e 100644
--- a/web_src/js/index.js
+++ b/web_src/js/index.js
@@ -76,7 +76,7 @@ import {
import {initViewedCheckboxListenerFor} from './features/pull-view-file.js';
import {initOrgTeamSearchRepoBox, initOrgTeamSettings} from './features/org-team.js';
import {initUserAuthWebAuthn, initUserAuthWebAuthnRegister} from './features/user-auth-webauthn.js';
-import {initRepoRelease, initRepoReleaseEditor} from './features/repo-release.js';
+import {initRepoRelease, initRepoReleaseNew} from './features/repo-release.js';
import {initRepoEditor} from './features/repo-editor.js';
import {initCompSearchUserBox} from './features/comp/SearchUserBox.js';
import {initInstall} from './features/install.js';
@@ -179,7 +179,7 @@ $(document).ready(() => {
initRepoPullRequestAllowMaintainerEdit();
initRepoPullRequestReview();
initRepoRelease();
- initRepoReleaseEditor();
+ initRepoReleaseNew();
initRepoSettingGitHook();
initRepoSettingSearchTeamBox();
initRepoSettingsCollaboration();