Skip to content

Commit 15b0852

Browse files
committed
enable / disable filters
1 parent b730fc7 commit 15b0852

File tree

7 files changed

+320
-88
lines changed

7 files changed

+320
-88
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%;
@@ -68,4 +73,118 @@ div#filter-toolbar-search-filters {
6873

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

0 commit comments

Comments
 (0)