mirror of
https://github.com/apache/superset.git
synced 2026-04-19 16:14:52 +00:00
feat(dashboards): Filter status indicators (#10936)
* Initial commit of new filters badge. * refactor applied/rejected filters code * finished filter indicators * filter badge tested * unnecessary imports * formatting and types * fixes * license * code quality tweaks * state management for showing focused filter scope * clean up filter key extraction code * remove unnecessary styles * temp css to demonstrate highlighting * fix focused filter logic * no more color badges * new toys for highlighting dash components (#11144) * tweak style for the filter chart when filter is focused * style: Filters p0 css2 (#11151) * nixing background tweak * src paths * another quick theme color * src paths, adjusting pill icon color, changing icons, showing applied/busted counts * linting stuff * fixing and tweaking tests * show filter indicator when filters are not active * chart title bar cleanup * open the right panel when popover opens * unused import * fix EditableTitle tests * margin on dashboard header * show the chart dropdown menu * fix blur filter breaking dropdowns * style tweak - no pointer events when irrelevant charts are blurred * fix box shadow on filter highlight * it's an array * attempt fixing e2e * style: filters p0 icon churn (#11215) * new filters icon * icon styling * bigger icons in list views * better sizing of table actions and favStars * more icon sizing... * fixing more button size jankiness * linting * Filters performance (#11255) * fixing time filter "ok" button * making unset filter menu collapsible * sort alphabetically * fix highlighting when removing items * try a flex layout (for browser render perf) * more specific transitioning * temp: comment out some code as a test * temp: comment out more code * temp: remove possibly expensive computations from ChartHolder * Revert "temp: comment out some code as a test" This reverts commit309b880e90. * Revert "temp: comment out more code" This reverts commit64c88b2cba. * Revert "temp: remove possibly expensive computations from ChartHolder" This reverts commit37ce0214f0. * experiment: upgrade react-select to v3 * Revert "experiment: upgrade react-select to v3" This reverts commitc3972ba486. * fix the damn problem * remove code used for testing purposes * awful hack to avoid adding a class to a container * approaching infinity... and not beyond! * fix ref forwarding * add theme to tests as necessary * fix(extra-filters): add logic for identifying applied extra filters (#11325) * fix: use dashboard id for stable cache key (#11293) * fix: button translations missing (#11187) * button translations missing * blank space before text * feat: update time_compare description and choices (#11294) * feat: update time_compare description and choices * Update sections.jsx * fix(extra-filters): add logic for identifying applied extra filters * lint Co-authored-by: Jesse Yang <jesse.yang@airbnb.com> Co-authored-by: rubenSastre <ruben.sastre@decathlon.com> Co-authored-by: Erik Ritter <erik.ritter@airbnb.com> * address design feedback * slight tweak to panel logic, keep panels open that user has opened * rearrange code to be more graceful * fix: bump superset-ui/core (#11385) * use is_dttm instead of is_temporal * types, names * only show unset filter panel if there are unset filters * fix highlighting the filter control * fix filterbox layout * translations * fix cypress * actually add the test attribute * Update superset-frontend/src/dashboard/components/DashboardBuilder.jsx Co-authored-by: Evan Rusackas <evan@preset.io> * Update superset-frontend/src/dashboard/components/DashboardBuilder.jsx Co-authored-by: Evan Rusackas <evan@preset.io> * formatting * add link comment to hack * Update superset-frontend/src/dashboard/components/gridComponents/ChartHolder.jsx Co-authored-by: Evan Rusackas <evan@preset.io> * stop importing lodash * Update superset-frontend/src/dashboard/components/gridComponents/ChartHolder.jsx Co-authored-by: Evan Rusackas <evan@preset.io> * Update superset-frontend/src/dashboard/components/FiltersBadge/Styles.tsx Co-authored-by: Evan Rusackas <evan@preset.io> * Update superset-frontend/src/dashboard/components/FiltersBadge/Styles.tsx Co-authored-by: Evan Rusackas <evan@preset.io> * Update superset-frontend/src/dashboard/components/FiltersBadge/Styles.tsx Co-authored-by: Evan Rusackas <evan@preset.io> * Update superset-frontend/src/dashboard/components/FiltersBadge/Styles.tsx Co-authored-by: Evan Rusackas <evan@preset.io> * skip broken test * Update superset-frontend/src/dashboard/components/FiltersBadge/Styles.tsx Co-authored-by: Evan Rusackas <evan@preset.io> * Update superset-frontend/src/dashboard/components/FiltersBadge/Styles.tsx Co-authored-by: Evan Rusackas <evan@preset.io> * adjust colors of titles * linting * no indicators when chart is loading * support all time fields * fix lock file Co-authored-by: Natalie Ruhe <natalie@preset.io> Co-authored-by: Evan Rusackas <evan@preset.io> Co-authored-by: Ville Brofeldt <33317356+villebro@users.noreply.github.com> Co-authored-by: Jesse Yang <jesse.yang@airbnb.com> Co-authored-by: rubenSastre <ruben.sastre@decathlon.com> Co-authored-by: Erik Ritter <erik.ritter@airbnb.com> Co-authored-by: Ville Brofeldt <ville.v.brofeldt@gmail.com>
This commit is contained in:
committed by
GitHub
parent
e9dba18466
commit
18658f45be
@@ -27,6 +27,7 @@ import {
|
||||
SET_UNSAVED_CHANGES,
|
||||
TOGGLE_EXPAND_SLICE,
|
||||
TOGGLE_FAVE_STAR,
|
||||
UNSET_FOCUSED_FILTER_FIELD,
|
||||
} from 'src/dashboard/actions/dashboardState';
|
||||
|
||||
import dashboardStateReducer from 'src/dashboard/reducers/dashboardState';
|
||||
@@ -145,21 +146,34 @@ describe('dashboardState reducer', () => {
|
||||
).toBeGreaterThanOrEqual(lastModifiedTime);
|
||||
});
|
||||
|
||||
it('should clear focused filter field', () => {
|
||||
it('should clear the focused filter field', () => {
|
||||
const initState = {
|
||||
focusedFilterField: {
|
||||
chartId: 1,
|
||||
column: 'column_1',
|
||||
},
|
||||
};
|
||||
|
||||
const cleared = dashboardStateReducer(initState, {
|
||||
type: UNSET_FOCUSED_FILTER_FIELD,
|
||||
chartId: 1,
|
||||
column: 'column_1',
|
||||
});
|
||||
|
||||
expect(cleared.focusedFilterField).toBeNull();
|
||||
});
|
||||
|
||||
it('should only clear focused filter when the fields match', () => {
|
||||
// dashboard only has 1 focused filter field at a time,
|
||||
// but when user switch different filter boxes,
|
||||
// browser didn't always fire onBlur and onFocus events in order.
|
||||
// so in redux state focusedFilterField prop is a queue,
|
||||
// we always shift first element in the queue
|
||||
|
||||
// init state: has 1 focus field
|
||||
const initState = {
|
||||
focusedFilterField: [
|
||||
{
|
||||
chartId: 1,
|
||||
column: 'column_1',
|
||||
},
|
||||
],
|
||||
focusedFilterField: {
|
||||
chartId: 1,
|
||||
column: 'column_1',
|
||||
},
|
||||
};
|
||||
// when user switching filter,
|
||||
// browser focus on new filter first,
|
||||
@@ -170,10 +184,12 @@ describe('dashboardState reducer', () => {
|
||||
column: 'column_2',
|
||||
});
|
||||
const step2 = dashboardStateReducer(step1, {
|
||||
type: SET_FOCUSED_FILTER_FIELD,
|
||||
type: UNSET_FOCUSED_FILTER_FIELD,
|
||||
chartId: 1,
|
||||
column: 'column_1',
|
||||
});
|
||||
|
||||
expect(step2.focusedFilterField.slice(-1).pop()).toEqual({
|
||||
expect(step2.focusedFilterField).toEqual({
|
||||
chartId: 2,
|
||||
column: 'column_2',
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user