mirror of
https://github.com/apache/superset.git
synced 2024-09-16 02:29:39 -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();
|
||||
});
|
||||
|
||||
it('should render two MenuItems', () => {
|
||||
it('should render four MenuItems', () => {
|
||||
const wrapper = setup(overrideProps);
|
||||
expect(wrapper.find(MenuItem)).toHaveLength(3);
|
||||
expect(wrapper.find(MenuItem)).toHaveLength(4);
|
||||
});
|
||||
|
||||
it('should render the RefreshIntervalModal', () => {
|
||||
@ -100,9 +100,9 @@ describe('HeaderActionsDropdown', () => {
|
||||
expect(wrapper.find(SaveModal)).toExist();
|
||||
});
|
||||
|
||||
it('should render three MenuItems', () => {
|
||||
it('should render four MenuItems', () => {
|
||||
const wrapper = setup(overrideProps);
|
||||
expect(wrapper.find(MenuItem)).toHaveLength(3);
|
||||
expect(wrapper.find(MenuItem)).toHaveLength(4);
|
||||
});
|
||||
|
||||
it('should render the RefreshIntervalModal', () => {
|
||||
|
@ -31,5 +31,15 @@ describe('getChartIdsFromLayout', () => {
|
||||
expect(url).toBe(
|
||||
'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')}
|
||||
</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>
|
||||
);
|
||||
}
|
||||
|
@ -18,11 +18,17 @@
|
||||
*/
|
||||
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
|
||||
// to nested filter object
|
||||
const obj = serializeActiveFilterValues(filters);
|
||||
const preselectFilters = encodeURIComponent(JSON.stringify(obj));
|
||||
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