Commit f60a030e authored by Phil Hughes's avatar Phil Hughes

Fixed issue with filtering by label on issue not updating dropdown

parent 2f0826b1
...@@ -7,15 +7,28 @@ ...@@ -7,15 +7,28 @@
}, },
methods: { methods: {
filterByLabel: function (label, $event) { filterByLabel: function (label, $event) {
let labelToggleText = label.title;
const labelIndex = BoardsStore.state.filters['label_name'].indexOf(label.title); const labelIndex = BoardsStore.state.filters['label_name'].indexOf(label.title);
// $($event.target).tooltip('hide'); $($event.target).tooltip('hide');
if (labelIndex === -1) { if (labelIndex === -1) {
BoardsStore.state.filters['label_name'].push(label.title); BoardsStore.state.filters['label_name'].push(label.title);
$('.labels-filter').prepend(`<input type="hidden" name="label_name[]" value="${label.title}" />`);
} else { } else {
BoardsStore.state.filters['label_name'].splice(labelIndex, 1); BoardsStore.state.filters['label_name'].splice(labelIndex, 1);
labelToggleText = BoardsStore.state.filters['label_name'][0];
$(`.labels-filter input[name="label_name[]"][value="${label.title}"]`).remove();
} }
const selectedLabels = BoardsStore.state.filters['label_name'];
if (selectedLabels.length === 0) {
labelToggleText = 'Label';
} else if (selectedLabels.length > 1) {
labelToggleText = `${selectedLabels[0]} + ${selectedLabels.length - 1} more`;
}
$('.labels-filter .dropdown-toggle-text').text(labelToggleText);
BoardsStore.updateFiltersUrl(); BoardsStore.updateFiltersUrl();
} }
} }
......
...@@ -4,7 +4,8 @@ ...@@ -4,7 +4,8 @@
list: Object list: Object
}, },
methods: { methods: {
deleteBoard: function () { deleteBoard: function (e) {
e.stopImmediatePropagation();
$(this.$el).tooltip('hide'); $(this.$el).tooltip('hide');
if (confirm('Are you sure you want to delete this list?')) { if (confirm('Are you sure you want to delete this list?')) {
......
...@@ -31,11 +31,14 @@ ...@@ -31,11 +31,14 @@
this.removeBlankState(); this.removeBlankState();
}, },
updateNewListDropdown: function () { updateNewListDropdown: function () {
let data = $('.js-new-board-list').data('glDropdown'); const glDropdown = $('.js-new-board-list').data('glDropdown');
if (data) { if (glDropdown) {
data = data.renderedData; const renderedData = glDropdown.renderedData;
$('.js-new-board-list').data('glDropdown').renderData(data);
if (renderedData) {
glDropdown.renderData(renderedData);
}
} }
}, },
shouldAddBlankState: function () { shouldAddBlankState: function () {
......
...@@ -35,11 +35,9 @@ ...@@ -35,11 +35,9 @@
$(function() { $(function() {
var clipboard; var clipboard;
if ($('body').attr('data-page') !== 'projects:boards:show') {
clipboard = new Clipboard('[data-clipboard-target], [data-clipboard-text]'); clipboard = new Clipboard('[data-clipboard-target], [data-clipboard-text]');
clipboard.on('success', genericSuccess); clipboard.on('success', genericSuccess);
return clipboard.on('error', genericError); return clipboard.on('error', genericError);
}
}); });
}).call(this); }).call(this);
...@@ -376,6 +376,53 @@ describe 'Issue Boards', feature: true, js: true do ...@@ -376,6 +376,53 @@ describe 'Issue Boards', feature: true, js: true do
expect(page).to have_selector('.card', count: 0) expect(page).to have_selector('.card', count: 0)
end end
end end
it 'filters by clicking label button on issue' do
page.within '.issues-filters' do
click_button('Label')
page.within '.dropdown-menu-labels' do
click_link(bug.title)
find('.dropdown-menu-close').click
end
end
page.within(first('.board')) do
expect(page.find('.board-header')).to have_content('1')
expect(page).to have_selector('.card', count: 1)
end
page.within(all('.board')[1]) do
expect(page.find('.board-header')).to have_content('0')
expect(page).to have_selector('.card', count: 0)
end
page.within(first('.board')) do
page.within(first('.card')) do
click_button(bug.title)
end
expect(page).to have_selector('.card', count: 5)
end
page.within('.labels-filter') do
expect(find('.dropdown-toggle-text')).not_to have_content(bug.title)
end
end
it 'removes label filter by clicking label button on issue' do
page.within(first('.board')) do
page.within(first('.card')) do
click_button(bug.title)
end
expect(page).to have_selector('.card', count: 1)
end
page.within('.labels-filter') do
expect(find('.dropdown-toggle-text')).to have_content(bug.title)
end
end
end end
end end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment