mirror of
https://github.com/apache/superset.git
synced 2024-09-18 11:39:49 -04:00
feat: adding dashboard toggle fullscreen button (#10840)
This commit is contained in:
parent
a3519b42cb
commit
af75bee582
@ -66,9 +66,9 @@ describe('HeaderActionsDropdown', () => {
|
|||||||
expect(wrapper.find(SaveModal)).not.toExist();
|
expect(wrapper.find(SaveModal)).not.toExist();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should render two MenuItems', () => {
|
it('should render four MenuItems', () => {
|
||||||
const wrapper = setup(overrideProps);
|
const wrapper = setup(overrideProps);
|
||||||
expect(wrapper.find(MenuItem)).toHaveLength(3);
|
expect(wrapper.find(MenuItem)).toHaveLength(4);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should render the RefreshIntervalModal', () => {
|
it('should render the RefreshIntervalModal', () => {
|
||||||
@ -100,9 +100,9 @@ describe('HeaderActionsDropdown', () => {
|
|||||||
expect(wrapper.find(SaveModal)).toExist();
|
expect(wrapper.find(SaveModal)).toExist();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should render three MenuItems', () => {
|
it('should render four MenuItems', () => {
|
||||||
const wrapper = setup(overrideProps);
|
const wrapper = setup(overrideProps);
|
||||||
expect(wrapper.find(MenuItem)).toHaveLength(3);
|
expect(wrapper.find(MenuItem)).toHaveLength(4);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should render the RefreshIntervalModal', () => {
|
it('should render the RefreshIntervalModal', () => {
|
||||||
|
@ -31,5 +31,15 @@ describe('getChartIdsFromLayout', () => {
|
|||||||
expect(url).toBe(
|
expect(url).toBe(
|
||||||
'path?preselect_filters=%7B%2235%22%3A%7B%22key%22%3A%5B%22value%22%5D%7D%7D',
|
'path?preselect_filters=%7B%2235%22%3A%7B%22key%22%3A%5B%22value%22%5D%7D%7D',
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const urlWithHash = getDashboardUrl('path', filters, 'iamhashtag');
|
||||||
|
expect(urlWithHash).toBe(
|
||||||
|
'path?preselect_filters=%7B%2235%22%3A%7B%22key%22%3A%5B%22value%22%5D%7D%7D#iamhashtag',
|
||||||
|
);
|
||||||
|
|
||||||
|
const urlWithStandalone = getDashboardUrl('path', filters, '', true);
|
||||||
|
expect(urlWithStandalone).toBe(
|
||||||
|
'path?preselect_filters=%7B%2235%22%3A%7B%22key%22%3A%5B%22value%22%5D%7D%7D&standalone=true',
|
||||||
|
);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -226,6 +226,25 @@ class HeaderActionsDropdown extends React.PureComponent {
|
|||||||
{t('Download as image')}
|
{t('Download as image')}
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
|
{!editMode && (
|
||||||
|
<MenuItem
|
||||||
|
onClick={() => {
|
||||||
|
const hasStandalone = window.location.search.includes(
|
||||||
|
'standalone=true',
|
||||||
|
);
|
||||||
|
const url = getDashboardUrl(
|
||||||
|
window.location.pathname,
|
||||||
|
getActiveFilters(),
|
||||||
|
window.location.hash,
|
||||||
|
!hasStandalone,
|
||||||
|
);
|
||||||
|
window.location.replace(url);
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
{t('Toggle FullScreen')}
|
||||||
|
</MenuItem>
|
||||||
|
)}
|
||||||
</DropdownButton>
|
</DropdownButton>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -18,11 +18,17 @@
|
|||||||
*/
|
*/
|
||||||
import serializeActiveFilterValues from './serializeActiveFilterValues';
|
import serializeActiveFilterValues from './serializeActiveFilterValues';
|
||||||
|
|
||||||
export default function getDashboardUrl(pathname, filters = {}, hash = '') {
|
export default function getDashboardUrl(
|
||||||
|
pathname,
|
||||||
|
filters = {},
|
||||||
|
hash = '',
|
||||||
|
standalone = false,
|
||||||
|
) {
|
||||||
// convert flattened { [id_column]: values } object
|
// convert flattened { [id_column]: values } object
|
||||||
// to nested filter object
|
// to nested filter object
|
||||||
const obj = serializeActiveFilterValues(filters);
|
const obj = serializeActiveFilterValues(filters);
|
||||||
const preselectFilters = encodeURIComponent(JSON.stringify(obj));
|
const preselectFilters = encodeURIComponent(JSON.stringify(obj));
|
||||||
const hashSection = hash ? `#${hash}` : '';
|
const hashSection = hash ? `#${hash}` : '';
|
||||||
return `${pathname}?preselect_filters=${preselectFilters}${hashSection}`;
|
const standaloneParam = standalone ? '&standalone=true' : '';
|
||||||
|
return `${pathname}?preselect_filters=${preselectFilters}${standaloneParam}${hashSection}`;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user