Skip to content

Commit ca10012

Browse files
authored
Merge pull request #173 from jpinsonneau/347
NETOBSERV-347 UX filtering: be able to turn off an active filter
2 parents 18131fd + 181acaf commit ca10012

File tree

7 files changed

+309
-89
lines changed

7 files changed

+309
-89
lines changed

web/src/components/filters/__tests__/filters-toolbar.spec.tsx

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,4 @@
1-
import {
2-
Accordion,
3-
AccordionItem,
4-
Button,
5-
Dropdown,
6-
Toolbar,
7-
ToolbarFilter,
8-
ToolbarItem
9-
} from '@patternfly/react-core';
1+
import { Accordion, AccordionItem, Button, Dropdown, Toolbar, ToolbarItem } from '@patternfly/react-core';
102
import { mount, shallow } from 'enzyme';
113
import * as React from 'react';
124
import { Filter } from '../../../model/filters';
@@ -47,17 +39,17 @@ describe('<FiltersToolbar />', () => {
4739

4840
it('should render filters', async () => {
4941
const wrapper = shallow(<FiltersToolbar {...props} />);
50-
expect(wrapper.find(ToolbarFilter)).toHaveLength(props.filters!.length);
42+
expect(wrapper.find('.custom-chip-group')).toHaveLength(props.filters!.length);
5143

5244
//add a bunch of filters
5345
props.filters = FiltersSample;
5446
wrapper.setProps({ filters: props.filters });
55-
expect(wrapper.find(ToolbarFilter)).toHaveLength(props.filters.length);
47+
expect(wrapper.find('.custom-chip-group')).toHaveLength(props.filters.length);
5648

5749
//update props to set a single filter
5850
props.filters = [FiltersSample[0]];
5951
wrapper.setProps({ filters: props.filters });
60-
expect(wrapper.find(ToolbarFilter)).toHaveLength(props.filters.length);
52+
expect(wrapper.find('.custom-chip-group')).toHaveLength(props.filters.length);
6153
});
6254

6355
it('should open and close', async () => {

web/src/components/filters/filters-toolbar.css

Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,11 @@ button.pf-c-button.pf-m-link.pf-m-inline:empty {
5656
padding: 5px 0px 0px 5px;
5757
}
5858

59+
#filters {
60+
width: 100%;
61+
margin-top: 1em;
62+
}
63+
5964
/* force new row for forced filters group*/
6065
#forced-filters {
6166
flex-basis: 100%;
@@ -69,4 +74,118 @@ div#filter-toolbar-search-filters {
6974

7075
.pf-c-toolbar__item.pf-m-align-right {
7176
margin-right: 0;
77+
}
78+
79+
.custom-chip-group,
80+
.custom-chip {
81+
border-radius: 3px;
82+
box-shadow: 0 0.0625rem 0.125rem 0 rgb(3 3 3 / 12%), 0 0 0.125rem 0 rgb(3 3 3 / 6%);
83+
display: inline-flex;
84+
align-items: center;
85+
}
86+
87+
.custom-chip-group {
88+
padding: 0.2em 0.5em 0.2em 0.5em;
89+
margin: 0 1em 0 0;
90+
color: #000;
91+
background-color: #f0f0f0;
92+
}
93+
94+
.custom-chip-group>p {
95+
font-size: 0.85rem;
96+
}
97+
98+
.custom-chip {
99+
min-height: 2em;
100+
padding: 0;
101+
padding-left: 1em;
102+
margin-right: 0.5em;
103+
color: #000;
104+
background-color: #fff;
105+
}
106+
107+
.disabled-group,
108+
.disabled-value {
109+
opacity: 0.75;
110+
}
111+
112+
.custom-chip-group.disabled-group,
113+
.custom-chip-group.disabled-group>button,
114+
.custom-chip-group.disabled-group>* {
115+
color: #000;
116+
background-color: #D2D2D2;
117+
}
118+
119+
.custom-chip.disabled-value,
120+
.custom-chip.disabled-value>button,
121+
.custom-chip.disabled-value>* {
122+
color: #fff;
123+
background-color: #6A6E73;
124+
}
125+
126+
.pf-theme-dark .custom-chip-group,
127+
.pf-theme-dark .custom-chip-group>button,
128+
.pf-theme-dark .custom-chip-group>* {
129+
color: #fff;
130+
background-color: #004080;
131+
}
132+
133+
.pf-theme-dark .custom-chip,
134+
.pf-theme-dark .custom-chip>button,
135+
.pf-theme-dark .custom-chip>* {
136+
color: #fff;
137+
background-color: #06c;
138+
}
139+
140+
.pf-theme-dark .custom-chip-group.disabled-group,
141+
.pf-theme-dark .custom-chip-group.disabled-group>button,
142+
.pf-theme-dark .custom-chip-group.disabled-group>* {
143+
color: #fff;
144+
background-color: #6A6E73;
145+
}
146+
147+
.pf-theme-dark .custom-chip.disabled-value,
148+
.pf-theme-dark .custom-chip.disabled-value>button,
149+
.pf-theme-dark .custom-chip.disabled-value>* {
150+
color: #000;
151+
background-color: #D2D2D2;
152+
}
153+
154+
.custom-chip>p {
155+
font-size: 0.75rem;
156+
}
157+
158+
.custom-chip-group>*:hover {
159+
color: #06c;
160+
}
161+
162+
.custom-chip>*:hover {
163+
color: #004080;
164+
}
165+
166+
.custom-chip-group.disabled-group>*:hover,
167+
.custom-chip.disabled-value>*:hover {
168+
color: #4F5255
169+
}
170+
171+
.custom-chip-group>button,
172+
.custom-chip>button {
173+
padding: 0.3em 0.5em 0.3em 0.5em;
174+
}
175+
176+
.custom-chip-group>p,
177+
.custom-chip>p {
178+
cursor: pointer;
179+
user-select: none;
180+
max-width: 18ch;
181+
margin-right: 0.5rem;
182+
overflow: hidden;
183+
display: inline-block;
184+
text-align: center;
185+
text-overflow: ellipsis;
186+
white-space: nowrap;
187+
}
188+
189+
#clear-all-filters-button {
190+
padding: 0;
72191
}

0 commit comments

Comments
 (0)