diff options
author | zeripath <art27@cantab.net> | 2021-03-12 17:12:14 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-03-12 18:12:14 +0100 |
commit | 3e7dccdf476758e6e8bfe18044588e36b5d22884 (patch) | |
tree | fd0976e416c53d6b6cf443d2cd7f02929620cc9d /web_src | |
parent | 33c2c49627455bd19d411ecd858c2ca2eceab731 (diff) | |
download | gitea-3e7dccdf476758e6e8bfe18044588e36b5d22884.tar.gz gitea-3e7dccdf476758e6e8bfe18044588e36b5d22884.zip |
Fix excluding more than two labels on issues list (#14962) (#14973)
Backport #14962
Fix #14840
Signed-off-by: Andrew Thornton <art27@cantab.net>
Co-authored-by: Norwin Roosen <git@nroo.de>
Co-authored-by: jaqra <48099350+jaqra@users.noreply.github.com>
Co-authored-by: Norwin Roosen <git@nroo.de>
Co-authored-by: jaqra <48099350+jaqra@users.noreply.github.com>
Diffstat (limited to 'web_src')
-rw-r--r-- | web_src/js/index.js | 30 |
1 files changed, 12 insertions, 18 deletions
diff --git a/web_src/js/index.js b/web_src/js/index.js index 2bfa691d63..b7a31c575b 100644 --- a/web_src/js/index.js +++ b/web_src/js/index.js @@ -3592,18 +3592,21 @@ function initIssueList() { fullTextSearch: true }); + function excludeLabel (item) { + const href = $(item).attr('href'); + const id = $(item).data('label-id'); + + const regStr = `labels=((?:-?[0-9]+%2c)*)(${id})((?:%2c-?[0-9]+)*)&`; + const newStr = 'labels=$1-$2$3&'; + + window.location = href.replace(new RegExp(regStr), newStr); + } + $('.menu a.label-filter-item').each(function () { $(this).on('click', function (e) { if (e.altKey) { e.preventDefault(); - - const href = $(this).attr('href'); - const id = $(this).data('label-id'); - - const regStr = `labels=(-?[0-9]+%2c)*(${id})(%2c-?[0-9]+)*&`; - const newStr = 'labels=$1-$2$3&'; - - window.location = href.replace(new RegExp(regStr), newStr); + excludeLabel(this); } }); }); @@ -3611,17 +3614,8 @@ function initIssueList() { $('.menu .ui.dropdown.label-filter').on('keydown', (e) => { if (e.altKey && e.keyCode === 13) { const selectedItems = $('.menu .ui.dropdown.label-filter .menu .item.selected'); - if (selectedItems.length > 0) { - const item = $(selectedItems[0]); - - const href = item.attr('href'); - const id = item.data('label-id'); - - const regStr = `labels=(-?[0-9]+%2c)*(${id})(%2c-?[0-9]+)*&`; - const newStr = 'labels=$1-$2$3&'; - - window.location = href.replace(new RegExp(regStr), newStr); + excludeLabel($(selectedItems[0])); } } }); |