@opengeoweb/workspace 12.0.0 → 12.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.esm.js +471 -242
- package/package.json +28 -44
- package/src/lib/Workspace.stories.d.ts +10 -19
- package/src/lib/WorkspaceAdmin.stories.d.ts +1 -0
- package/src/lib/api/workspace-api/api.d.ts +6 -0
- package/src/lib/api/workspace-api/fakeApi.d.ts +1 -0
- package/src/lib/api/workspace-api/hooks.d.ts +11 -0
- package/src/lib/components/Providers/Providers.d.ts +6 -2
- package/src/lib/components/ViewPresetMenu/ViewPresetMenu.stories.d.ts +6 -21
- package/src/lib/components/ViewPresetMenu/ViewPresetsError.stories.d.ts +1 -0
- package/src/lib/components/ViewPresetsFormDialog/ViewPresetsFormDialog.d.ts +1 -1
- package/src/lib/components/ViewPresetsFormDialog/ViewPresetsFormDialog.stories.d.ts +11 -22
- package/src/lib/components/WorkspaceDetail/WorkspaceDetail.stories.d.ts +1 -0
- package/src/lib/components/WorkspaceDetail/WorkspaceDetailError.stories.d.ts +1 -1
- package/src/lib/components/WorkspaceMenu/WorkspaceMenu.stories.d.ts +7 -13
- package/src/lib/components/WorkspaceMenu/WorkspaceMenuButton.stories.d.ts +7 -23
- package/src/lib/components/WorkspaceOptions/WorkspaceOptions.stories.d.ts +10 -39
- package/src/lib/components/WorkspacePresetsFormDialog/WorkspacePresetsForm.d.ts +2 -1
- package/src/lib/components/WorkspacePresetsFormDialog/WorkspacePresetsFormDialog.stories.d.ts +22 -72
- package/src/lib/components/WorkspaceSelectList/WorkspaceSelectListError.stories.d.ts +1 -0
- package/src/lib/components/WorkspaceSelectList/WorkspaceSelectListRow.stories.d.ts +8 -19
- package/src/lib/components/WorkspaceTopBar/WorkspaceTopBar.stories.d.ts +11 -53
- package/src/lib/hooks/useFetchWorkspacePresets.d.ts +1 -0
- package/src/lib/store/viewPresets/reducer.d.ts +3 -3
- package/src/lib/store/viewPresets/types.d.ts +3 -3
- package/src/lib/store/workspace/types.d.ts +6 -2
- package/src/lib/store/workspaceList/reducer.d.ts +1 -1
- package/src/lib/store/workspaceList/selectors.d.ts +9 -0
- package/src/lib/store/workspaceList/types.d.ts +5 -2
- package/src/lib/storyUtils/StoryWrapper.d.ts +1 -3
- package/src/lib/storyUtils/componentsLookUp.stories.d.ts +22 -49
- package/src/lib/utils/api.d.ts +0 -1
- package/src/lib/utils/fakeApi.stories.d.ts +1 -0
- package/src/lib/utils/utils.d.ts +3 -0
package/index.esm.js
CHANGED
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
import { createEntityAdapter, createSlice, createSelector, createListenerMiddleware, combineReducers, configureStore } from '@reduxjs/toolkit';
|
|
2
2
|
import { syncGroupsTypes, syncGroupsActions, layerActions, mapActions, uiActions, genericActions, layerTypes, mapEnums, selectorMemoizationOptions, genericSelectors, mapSelectors, syncGroupsSelectors, routerActions, createViewObjectForNewMap, mapListener, serviceListener, layersListener, syncGroupsListener, openlayersListener, mapReducer, serviceReducer, layerReducer, syncGroupsReducer, loadingIndicatorReducer, uiReducer, linkComponentTypesConstants, uiTypes, loadingIndicatorSelectors, uiSelectors } from '@opengeoweb/store';
|
|
3
|
-
import { createApiInstance, createNonAuthApiInstance, getApi, createFakeApiInstance, ApiProvider, useApiContext, useAuthenticationContext as useAuthenticationContext$1, GEOWEB_ROLE_PRESETS_ADMIN as GEOWEB_ROLE_PRESETS_ADMIN$1 } from '@opengeoweb/api';
|
|
3
|
+
import { createApiInstance, createNonAuthApiInstance, getApi, createFakeApiInstance, ApiProvider, getConfig, getHeaders, handleResponse, useApiContext, useAuthenticationContext as useAuthenticationContext$1, GEOWEB_ROLE_PRESETS_ADMIN as GEOWEB_ROLE_PRESETS_ADMIN$1 } from '@opengeoweb/api';
|
|
4
4
|
import { chunk, cloneDeep, pick, isEmpty, isEqual, isString } from 'lodash';
|
|
5
5
|
import { getLeaves, MosaicContext, getAndAssertNodeAtPathExists, createBalancedTreeFromLeaves, MosaicWindow, Mosaic } from 'react-mosaic-component';
|
|
6
6
|
import { timeSeriesActions, TimeSeriesTypes, timeSeriesSelectors, timeSeriesReducer } from '@opengeoweb/timeseries';
|
|
7
7
|
import { publicWarningActions, WARN_NAMESPACE, warningsTranslations, publicWarningsSelectors } from '@opengeoweb/warnings';
|
|
8
|
-
import { PROJECTION, getAxiosErrorMessage, isAxiosAuthError, isAxiosError as isAxiosError$1, SHARED_NAMESPACE, sharedTranslations, ConfirmationServiceProvider, CustomIconButton, useConfirmationDialog, AlertBanner,
|
|
8
|
+
import { PresetScope, PROJECTION, getAxiosErrorMessage, isAxiosAuthError, isAxiosError as isAxiosError$1, SHARED_NAMESPACE, sharedTranslations, ConfirmationServiceProvider, CustomIconButton, useConfirmationDialog, AlertBanner, CustomTooltip, SearchHighlight, ToggleMenu, DEFAULT_FILTER_HEIGHT, Filter, renderCounter, CustomDialog, ToolContainer, CustomToggleButton, usePrevious, ConfirmationButtons } from '@opengeoweb/shared';
|
|
9
9
|
import { snackbarTypes, snackbarActions, snackbarListener, snackbarReducer, SnackbarWrapperConnect } from '@opengeoweb/snackbar';
|
|
10
10
|
import { isAxiosError } from 'axios';
|
|
11
11
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
12
|
-
import { ThemeWrapper, lightTheme, Link, LinkOff, SplitVertical, SplitHorizontal, Expand, UnExpand, Close, Delete, Preset, PresetWorkspace, PresetTiles, CloudLoading, CloudIdle, WebAssetOff, Exclamation } from '@opengeoweb/theme';
|
|
12
|
+
import { ThemeWrapper, lightTheme, Link, LinkOff, SplitVertical, SplitHorizontal, Expand, UnExpand, Close, SharedPresetsMyUser, SharedPresetsOtherUsers, Delete, Preset, PresetWorkspace, PresetTiles, CloudLoading, CloudIdle, WebAssetOff, Exclamation } from '@opengeoweb/theme';
|
|
13
13
|
import { Provider, useDispatch, useSelector, useStore, shallowEqual } from 'react-redux';
|
|
14
14
|
import { initReactI18next, useTranslation, I18nextProvider } from 'react-i18next';
|
|
15
15
|
import { AuthenticationProvider, useAuthenticationContext, GEOWEB_ROLE_PRESETS_ADMIN } from '@opengeoweb/authentication';
|
|
16
|
-
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
|
|
16
|
+
import { QueryClient, QueryClientProvider, useMutation } from '@tanstack/react-query';
|
|
17
17
|
import i18n from 'i18next';
|
|
18
18
|
import { WEBMAP_REACT_NAMESPACE, webmapReactTranslations } from '@opengeoweb/webmap-react';
|
|
19
19
|
import { CORE_NAMESPACE, coreTranslations } from '@opengeoweb/core';
|
|
20
20
|
import { FORM_FIELDS_NAMESPACE, formFieldsTranslations, ReactHookFormTextField, ReactHookFormHiddenInput, ReactHookFormProvider, defaultFormOptions } from '@opengeoweb/form-fields';
|
|
21
21
|
import * as React from 'react';
|
|
22
|
-
import React__default, { useCallback } from 'react';
|
|
23
|
-
import { Menu, Typography, List, ListItem, ListItemButton, ListItemIcon, Checkbox, ListItemText, LinearProgress, Grid2, Box, ListSubheader, MenuItem, useTheme, FormGroup, FormControlLabel, Tabs } from '@mui/material';
|
|
22
|
+
import React__default, { useCallback, useEffect } from 'react';
|
|
23
|
+
import { Menu, Typography, List, ListItem, ListItemButton, ListItemIcon, Checkbox, ListItemText, LinearProgress, styled, Grid2, Box, ListSubheader, MenuItem, useTheme, FormGroup, FormControlLabel, Tabs } from '@mui/material';
|
|
24
24
|
import 'react-mosaic-component/react-mosaic-component.css';
|
|
25
25
|
import AutoSizer from 'react-virtualized-auto-sizer';
|
|
26
26
|
import { FixedSizeList } from 'react-window';
|
|
@@ -731,9 +731,6 @@ var getApiRoutes$1 = function getApiRoutes(axiosInstance) {
|
|
|
731
731
|
return getIdFromUrl(headerLocation);
|
|
732
732
|
});
|
|
733
733
|
},
|
|
734
|
-
deleteWorkspacePreset: function deleteWorkspacePreset(workspacePresetId) {
|
|
735
|
-
return axiosInstance["delete"]("/workspacepreset/" + workspacePresetId);
|
|
736
|
-
},
|
|
737
734
|
// view presets
|
|
738
735
|
getViewPresets: function getViewPresets(params) {
|
|
739
736
|
return axiosInstance.get('/viewpreset', {
|
|
@@ -908,6 +905,40 @@ var WorkspaceErrorType;
|
|
|
908
905
|
WorkspaceErrorType["SAVE"] = "SAVE";
|
|
909
906
|
})(WorkspaceErrorType || (WorkspaceErrorType = {}));
|
|
910
907
|
|
|
908
|
+
/* *
|
|
909
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
910
|
+
* you may not use this file except in compliance with the License.
|
|
911
|
+
* You may obtain a copy of the License at
|
|
912
|
+
*
|
|
913
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
914
|
+
*
|
|
915
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
916
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
917
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
918
|
+
* See the License for the specific language governing permissions and
|
|
919
|
+
* limitations under the License.
|
|
920
|
+
*
|
|
921
|
+
* Copyright 2023 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
922
|
+
* Copyright 2023 - Finnish Meteorological Institute (FMI)
|
|
923
|
+
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
924
|
+
* */
|
|
925
|
+
var WorkspaceListErrorCategory;
|
|
926
|
+
(function (WorkspaceListErrorCategory) {
|
|
927
|
+
WorkspaceListErrorCategory["AUTH"] = "AUTH";
|
|
928
|
+
WorkspaceListErrorCategory["GENERIC"] = "GENERIC";
|
|
929
|
+
})(WorkspaceListErrorCategory || (WorkspaceListErrorCategory = {}));
|
|
930
|
+
var WorkspaceListErrorType;
|
|
931
|
+
(function (WorkspaceListErrorType) {
|
|
932
|
+
WorkspaceListErrorType["TRANSLATABLE_ERROR"] = "TRANSLATABLE_ERROR";
|
|
933
|
+
WorkspaceListErrorType["VERBATIM_ERROR"] = "VERBATIM_ERROR";
|
|
934
|
+
})(WorkspaceListErrorType || (WorkspaceListErrorType = {}));
|
|
935
|
+
var PresetFilterType;
|
|
936
|
+
(function (PresetFilterType) {
|
|
937
|
+
PresetFilterType["personal"] = "personal";
|
|
938
|
+
PresetFilterType["shared"] = "shared";
|
|
939
|
+
PresetFilterType["system"] = "system";
|
|
940
|
+
})(PresetFilterType || (PresetFilterType = {}));
|
|
941
|
+
|
|
911
942
|
/* *
|
|
912
943
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
913
944
|
* you may not use this file except in compliance with the License.
|
|
@@ -927,14 +958,17 @@ var WorkspaceErrorType;
|
|
|
927
958
|
* */
|
|
928
959
|
var workspaceListFilterOptions = [{
|
|
929
960
|
label: 'shared-filter-my-presets',
|
|
930
|
-
id:
|
|
931
|
-
type: 'scope',
|
|
961
|
+
id: PresetFilterType.personal,
|
|
932
962
|
isSelected: true,
|
|
933
963
|
isDisabled: false
|
|
934
964
|
}, {
|
|
935
965
|
label: 'shared-filter-system-presets',
|
|
936
|
-
id:
|
|
937
|
-
|
|
966
|
+
id: PresetFilterType.system,
|
|
967
|
+
isSelected: true,
|
|
968
|
+
isDisabled: false
|
|
969
|
+
}, {
|
|
970
|
+
label: 'shared-filter-shared-presets',
|
|
971
|
+
id: PresetFilterType.shared,
|
|
938
972
|
isSelected: true,
|
|
939
973
|
isDisabled: false
|
|
940
974
|
}];
|
|
@@ -1110,16 +1144,21 @@ var PresetAction;
|
|
|
1110
1144
|
* */
|
|
1111
1145
|
var viewPresetsListFilterOptions = [{
|
|
1112
1146
|
label: 'shared-filter-my-presets',
|
|
1113
|
-
id:
|
|
1147
|
+
id: PresetScope.user,
|
|
1114
1148
|
type: 'scope',
|
|
1115
1149
|
isSelected: true,
|
|
1116
1150
|
isDisabled: false
|
|
1117
1151
|
}, {
|
|
1118
1152
|
label: 'shared-filter-system-presets',
|
|
1119
|
-
id:
|
|
1153
|
+
id: PresetScope.system,
|
|
1120
1154
|
type: 'scope',
|
|
1121
1155
|
isSelected: true,
|
|
1122
1156
|
isDisabled: false
|
|
1157
|
+
}, {
|
|
1158
|
+
label: 'shared-filter-shared-presets',
|
|
1159
|
+
id: PresetScope.shared,
|
|
1160
|
+
isSelected: true,
|
|
1161
|
+
isDisabled: true
|
|
1123
1162
|
}];
|
|
1124
1163
|
var viewPresetsAdapter = createEntityAdapter({
|
|
1125
1164
|
// we use panelId as id (panelId can be mapId or viewId)
|
|
@@ -1508,6 +1547,29 @@ var setDocumentTitle = function setDocumentTitle(workspaceTitle, appTitle) {
|
|
|
1508
1547
|
var fallbackAppTitle = appTitle || 'GeoWeb';
|
|
1509
1548
|
document.title = workspaceTitle ? workspaceTitle + " - " + fallbackAppTitle : fallbackAppTitle;
|
|
1510
1549
|
};
|
|
1550
|
+
var filterWorkspacePresets = function filterWorkspacePresets(workspacePresets, selectedFilters, username) {
|
|
1551
|
+
var isAllSelected = selectedFilters.every(function (filter) {
|
|
1552
|
+
return filter.isSelected;
|
|
1553
|
+
});
|
|
1554
|
+
if (isAllSelected) {
|
|
1555
|
+
return workspacePresets;
|
|
1556
|
+
}
|
|
1557
|
+
var selectedIds = selectedFilters.filter(function (filter) {
|
|
1558
|
+
return filter.isSelected;
|
|
1559
|
+
}).map(function (filter) {
|
|
1560
|
+
return filter.id;
|
|
1561
|
+
});
|
|
1562
|
+
return workspacePresets.filter(function (preset) {
|
|
1563
|
+
return (
|
|
1564
|
+
// System
|
|
1565
|
+
selectedIds.includes('system') && preset.scope === 'system' ||
|
|
1566
|
+
// Personal
|
|
1567
|
+
selectedIds.includes('personal') && preset.username === username ||
|
|
1568
|
+
// Shared
|
|
1569
|
+
selectedIds.includes('shared') && preset.username !== username && preset.is_shared
|
|
1570
|
+
);
|
|
1571
|
+
});
|
|
1572
|
+
};
|
|
1511
1573
|
|
|
1512
1574
|
/* *
|
|
1513
1575
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -1667,7 +1729,7 @@ var createCustomEmptyMapWorkspace = function createCustomEmptyMapWorkspace(empty
|
|
|
1667
1729
|
var constructFilterParams = function constructFilterParams(filters, searchQuery) {
|
|
1668
1730
|
// get filters
|
|
1669
1731
|
var _filters$reduce = filters.reduce(function (filterList, filter) {
|
|
1670
|
-
if (filter.isSelected && filter.type === 'scope') {
|
|
1732
|
+
if (filter.isSelected && 'type' in filter && filter.type === 'scope') {
|
|
1671
1733
|
return Object.assign({}, filter, {
|
|
1672
1734
|
scope: filterList.scope.concat(filter.id)
|
|
1673
1735
|
});
|
|
@@ -4519,17 +4581,13 @@ var filterWorkspacePresetList = function filterWorkspacePresetList(params) {
|
|
|
4519
4581
|
return workspacePresetsList;
|
|
4520
4582
|
}
|
|
4521
4583
|
return workspacePresetsList.reduce(function (list, workspacePresetRaw) {
|
|
4522
|
-
var _params$scope;
|
|
4523
4584
|
var workspacePreset = workspacePresetRaw;
|
|
4524
|
-
if (params
|
|
4525
|
-
|
|
4526
|
-
|
|
4527
|
-
|
|
4528
|
-
|
|
4529
|
-
|
|
4530
|
-
return hasResult ? list.concat(workspacePreset) : list;
|
|
4531
|
-
}
|
|
4532
|
-
return list.concat(workspacePreset);
|
|
4585
|
+
if (params.search) {
|
|
4586
|
+
var searchQuery = getCleanSearchQuery(params.search);
|
|
4587
|
+
var hasResult = searchQuery.split(',').every(function (query) {
|
|
4588
|
+
return workspacePreset.title.toLowerCase().includes(query.toLowerCase()) || workspacePreset["abstract"].toLowerCase().includes(query.toLowerCase());
|
|
4589
|
+
});
|
|
4590
|
+
return hasResult ? list.concat(workspacePreset) : list;
|
|
4533
4591
|
}
|
|
4534
4592
|
return list;
|
|
4535
4593
|
}, []);
|
|
@@ -4539,9 +4597,9 @@ var filterViewPresetList = function filterViewPresetList(params) {
|
|
|
4539
4597
|
return viewPresetsList;
|
|
4540
4598
|
}
|
|
4541
4599
|
return viewPresetsList.reduce(function (list, viewPresetRaw) {
|
|
4542
|
-
var _params$
|
|
4600
|
+
var _params$scope;
|
|
4543
4601
|
var workspacePreset = viewPresetRaw;
|
|
4544
|
-
if (params != null && (_params$
|
|
4602
|
+
if (params != null && (_params$scope = params.scope) != null && _params$scope.includes(workspacePreset.scope)) {
|
|
4545
4603
|
return list.concat(workspacePreset);
|
|
4546
4604
|
}
|
|
4547
4605
|
return list;
|
|
@@ -4590,11 +4648,6 @@ var getApiRoutes = function getApiRoutes(axiosInstance) {
|
|
|
4590
4648
|
return null;
|
|
4591
4649
|
});
|
|
4592
4650
|
},
|
|
4593
|
-
deleteWorkspacePreset: function deleteWorkspacePreset(workspacePresetId) {
|
|
4594
|
-
// eslint-disable-next-line no-console
|
|
4595
|
-
console.log('api: delete workspace preset', workspacePresetId);
|
|
4596
|
-
return axiosInstance["delete"]("/workspacepreset/" + workspacePresetId);
|
|
4597
|
-
},
|
|
4598
4651
|
// view presets
|
|
4599
4652
|
getViewPresets: function getViewPresets(params) {
|
|
4600
4653
|
return axiosInstance.get('/viewpreset', {
|
|
@@ -5073,34 +5126,6 @@ workspaceListener.startListening({
|
|
|
5073
5126
|
}()
|
|
5074
5127
|
});
|
|
5075
5128
|
|
|
5076
|
-
/* *
|
|
5077
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5078
|
-
* you may not use this file except in compliance with the License.
|
|
5079
|
-
* You may obtain a copy of the License at
|
|
5080
|
-
*
|
|
5081
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
5082
|
-
*
|
|
5083
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
5084
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
5085
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
5086
|
-
* See the License for the specific language governing permissions and
|
|
5087
|
-
* limitations under the License.
|
|
5088
|
-
*
|
|
5089
|
-
* Copyright 2023 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
5090
|
-
* Copyright 2023 - Finnish Meteorological Institute (FMI)
|
|
5091
|
-
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
5092
|
-
* */
|
|
5093
|
-
var WorkspaceListErrorCategory;
|
|
5094
|
-
(function (WorkspaceListErrorCategory) {
|
|
5095
|
-
WorkspaceListErrorCategory["AUTH"] = "AUTH";
|
|
5096
|
-
WorkspaceListErrorCategory["GENERIC"] = "GENERIC";
|
|
5097
|
-
})(WorkspaceListErrorCategory || (WorkspaceListErrorCategory = {}));
|
|
5098
|
-
var WorkspaceListErrorType;
|
|
5099
|
-
(function (WorkspaceListErrorType) {
|
|
5100
|
-
WorkspaceListErrorType["TRANSLATABLE_ERROR"] = "TRANSLATABLE_ERROR";
|
|
5101
|
-
WorkspaceListErrorType["VERBATIM_ERROR"] = "VERBATIM_ERROR";
|
|
5102
|
-
})(WorkspaceListErrorType || (WorkspaceListErrorType = {}));
|
|
5103
|
-
|
|
5104
5129
|
/* *
|
|
5105
5130
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5106
5131
|
* you may not use this file except in compliance with the License.
|
|
@@ -5119,7 +5144,7 @@ var WorkspaceListErrorType;
|
|
|
5119
5144
|
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
5120
5145
|
* */
|
|
5121
5146
|
var getWorkspaceListStore = function getWorkspaceListStore(store) {
|
|
5122
|
-
if (store && store.workspaceList) {
|
|
5147
|
+
if (store != null && store.workspaceList) {
|
|
5123
5148
|
return store.workspaceList;
|
|
5124
5149
|
}
|
|
5125
5150
|
return null;
|
|
@@ -5148,6 +5173,10 @@ var getWorkspaceListError = createSelector(getWorkspaceListStore, function (stor
|
|
|
5148
5173
|
}, function (state) {
|
|
5149
5174
|
return (state == null ? void 0 : state.error) || undefined;
|
|
5150
5175
|
}, selectorMemoizationOptions);
|
|
5176
|
+
var getWorkspaceActionFormValues = createSelector(getWorkspaceListStore, function (store) {
|
|
5177
|
+
var _store$workspaceActio;
|
|
5178
|
+
return ((_store$workspaceActio = store.workspaceActionDialog) == null ? void 0 : _store$workspaceActio.formValues) || {};
|
|
5179
|
+
}, selectorMemoizationOptions);
|
|
5151
5180
|
var getWorkspaceActionDialogDetails = createSelector(getWorkspaceListStore, getWorkspaceState, getViewPresetsStore, function (workspaceListState, workspaceState, viewpresetState) {
|
|
5152
5181
|
var dialog = (workspaceListState == null ? void 0 : workspaceListState.workspaceActionDialog) || false;
|
|
5153
5182
|
if (dialog) {
|
|
@@ -5532,16 +5561,18 @@ workspaceListListener.startListening({
|
|
|
5532
5561
|
actionCreator: workspaceListActions.onSuccessWorkspacePresetAction,
|
|
5533
5562
|
effect: function () {
|
|
5534
5563
|
var _effect2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(_ref2, listenerApi) {
|
|
5535
|
-
var
|
|
5564
|
+
var _listenerApi$getOrigi;
|
|
5565
|
+
var payload, currentWorkspaceId, action, workspaceId, title, workspaceFilters, searchQuery;
|
|
5536
5566
|
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
5537
5567
|
while (1) switch (_context2.prev = _context2.next) {
|
|
5538
5568
|
case 0:
|
|
5539
5569
|
payload = _ref2.payload;
|
|
5540
5570
|
listenerApi.cancelActiveListeners();
|
|
5571
|
+
currentWorkspaceId = (_listenerApi$getOrigi = listenerApi.getOriginalState().workspace) == null ? void 0 : _listenerApi$getOrigi.id;
|
|
5541
5572
|
action = payload.action, workspaceId = payload.workspaceId, title = payload.title;
|
|
5542
5573
|
listenerApi.dispatch(snackbarActions.openSnackbar(getSnackbarMessage$1(action, title)));
|
|
5543
5574
|
// if active workspace has been deleted, empty out url
|
|
5544
|
-
if ((action === WorkspacePresetAction.DELETE || action === WorkspacePresetAction.DELETE_SYSTEM_PRESET) &&
|
|
5575
|
+
if ((action === WorkspacePresetAction.DELETE || action === WorkspacePresetAction.DELETE_SYSTEM_PRESET) && currentWorkspaceId && workspaceId === currentWorkspaceId) {
|
|
5545
5576
|
listenerApi.dispatch(routerActions.navigateToUrl({
|
|
5546
5577
|
url: getWorkspaceRouteUrl()
|
|
5547
5578
|
}));
|
|
@@ -5556,7 +5587,7 @@ workspaceListListener.startListening({
|
|
|
5556
5587
|
workspaceFilters = getWorkspaceListFilters(listenerApi.getState());
|
|
5557
5588
|
searchQuery = getWorkspaceListSearchQuery(listenerApi.getState());
|
|
5558
5589
|
listenerApi.dispatch(workspaceListActions.fetchWorkspaceList(constructFilterParams(workspaceFilters, searchQuery)));
|
|
5559
|
-
case
|
|
5590
|
+
case 10:
|
|
5560
5591
|
case "end":
|
|
5561
5592
|
return _context2.stop();
|
|
5562
5593
|
}
|
|
@@ -5572,7 +5603,7 @@ workspaceListListener.startListening({
|
|
|
5572
5603
|
actionCreator: workspaceListActions.submitFormWorkspaceActionDialogOptions,
|
|
5573
5604
|
effect: function () {
|
|
5574
5605
|
var _effect3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(_ref3, listenerApi) {
|
|
5575
|
-
var payload, workspaceApi, presetId, presetAction, data, emptyMapPresetTitle, emptyWorkspacePresetTitle, scope,
|
|
5606
|
+
var payload, workspaceApi, presetId, presetAction, data, emptyMapPresetTitle, emptyWorkspacePresetTitle, scope, _yield$workspaceApi$g2, originalData, workspaceDataNewTitle, isSaveWorkspaceAction, isSaveAsWorkspaceAction, hasWorkspaceAlreadyBeenSaved, workspaceId, viewPresetResults, hasError, workspaceData, newWorkspace, message, category;
|
|
5576
5607
|
return _regeneratorRuntime().wrap(function _callee4$(_context4) {
|
|
5577
5608
|
while (1) switch (_context4.prev = _context4.next) {
|
|
5578
5609
|
case 0:
|
|
@@ -5582,73 +5613,26 @@ workspaceListListener.startListening({
|
|
|
5582
5613
|
_context4.prev = 3;
|
|
5583
5614
|
presetId = payload.presetId, presetAction = payload.presetAction, data = payload.data, emptyMapPresetTitle = payload.emptyMapPresetTitle, emptyWorkspacePresetTitle = payload.emptyWorkspacePresetTitle;
|
|
5584
5615
|
scope = data.scope || 'user'; // duplicate
|
|
5585
|
-
if (
|
|
5586
|
-
|
|
5587
|
-
|
|
5588
|
-
|
|
5589
|
-
isNewWorkspace = presetId === getEmptyMapWorkspace().id;
|
|
5590
|
-
if (!isNewWorkspace) {
|
|
5591
|
-
_context4.next = 12;
|
|
5592
|
-
break;
|
|
5593
|
-
}
|
|
5594
|
-
_context4.t0 = {
|
|
5595
|
-
data: emptyWorkspaceBEData
|
|
5596
|
-
};
|
|
5597
|
-
_context4.next = 15;
|
|
5598
|
-
break;
|
|
5599
|
-
case 12:
|
|
5600
|
-
_context4.next = 14;
|
|
5601
|
-
return workspaceApi.getWorkspacePreset(presetId);
|
|
5602
|
-
case 14:
|
|
5603
|
-
_context4.t0 = _context4.sent;
|
|
5604
|
-
case 15:
|
|
5605
|
-
_ref4 = _context4.t0;
|
|
5606
|
-
presetToDuplicate = _ref4.data;
|
|
5607
|
-
fullPreset = Object.assign({}, presetToDuplicate, data);
|
|
5608
|
-
_context4.next = 20;
|
|
5609
|
-
return workspaceApi.saveWorkspacePresetAs(fullPreset);
|
|
5610
|
-
case 20:
|
|
5611
|
-
newId = _context4.sent;
|
|
5612
|
-
listenerApi.dispatch(workspaceListActions.onSuccessWorkspacePresetAction({
|
|
5613
|
-
workspaceId: newId,
|
|
5614
|
-
action: presetAction,
|
|
5615
|
-
title: data.title,
|
|
5616
|
-
scope: scope
|
|
5617
|
-
}));
|
|
5618
|
-
case 22:
|
|
5619
|
-
if (!(presetAction === WorkspacePresetAction.DELETE || presetAction === WorkspacePresetAction.DELETE_SYSTEM_PRESET)) {
|
|
5620
|
-
_context4.next = 27;
|
|
5621
|
-
break;
|
|
5622
|
-
}
|
|
5623
|
-
_context4.next = 25;
|
|
5624
|
-
return workspaceApi.deleteWorkspacePreset(presetId);
|
|
5625
|
-
case 25:
|
|
5626
|
-
selectedWorkspace = getWorkspaceState(listenerApi.getState());
|
|
5627
|
-
listenerApi.dispatch(workspaceListActions.onSuccessWorkspacePresetAction({
|
|
5628
|
-
workspaceId: presetId,
|
|
5629
|
-
action: presetAction,
|
|
5630
|
-
title: data.title,
|
|
5631
|
-
currentActiveWorkspaceId: selectedWorkspace.id,
|
|
5632
|
-
scope: scope,
|
|
5633
|
-
emptyWorkspacePresetTitle: emptyWorkspacePresetTitle
|
|
5634
|
-
}));
|
|
5635
|
-
case 27:
|
|
5616
|
+
if (presetAction === WorkspacePresetAction.DUPLICATE) ;
|
|
5617
|
+
// delete
|
|
5618
|
+
if (presetAction === WorkspacePresetAction.DELETE || presetAction === WorkspacePresetAction.DELETE_SYSTEM_PRESET) ;
|
|
5619
|
+
// edit
|
|
5636
5620
|
if (!(presetAction === WorkspacePresetAction.EDIT)) {
|
|
5637
|
-
_context4.next =
|
|
5621
|
+
_context4.next = 17;
|
|
5638
5622
|
break;
|
|
5639
5623
|
}
|
|
5640
|
-
_context4.next =
|
|
5624
|
+
_context4.next = 11;
|
|
5641
5625
|
return workspaceApi.getWorkspacePreset(presetId);
|
|
5642
|
-
case
|
|
5626
|
+
case 11:
|
|
5643
5627
|
_yield$workspaceApi$g2 = _context4.sent;
|
|
5644
5628
|
originalData = _yield$workspaceApi$g2.data;
|
|
5645
5629
|
workspaceDataNewTitle = Object.assign({}, originalData, {
|
|
5646
5630
|
title: data.title,
|
|
5647
5631
|
"abstract": data["abstract"]
|
|
5648
5632
|
});
|
|
5649
|
-
_context4.next =
|
|
5633
|
+
_context4.next = 16;
|
|
5650
5634
|
return workspaceApi.saveWorkspacePreset(presetId, workspaceDataNewTitle);
|
|
5651
|
-
case
|
|
5635
|
+
case 16:
|
|
5652
5636
|
listenerApi.dispatch(workspaceListActions.onSuccessWorkspacePresetAction({
|
|
5653
5637
|
workspaceId: presetId,
|
|
5654
5638
|
action: presetAction,
|
|
@@ -5656,39 +5640,39 @@ workspaceListListener.startListening({
|
|
|
5656
5640
|
"abstract": data["abstract"],
|
|
5657
5641
|
scope: scope
|
|
5658
5642
|
}));
|
|
5659
|
-
case
|
|
5643
|
+
case 17:
|
|
5660
5644
|
// save (as) user/system presets
|
|
5661
5645
|
isSaveWorkspaceAction = presetAction === WorkspacePresetAction.SAVE_SYSTEM_PRESET || presetAction === WorkspacePresetAction.SAVE;
|
|
5662
5646
|
isSaveAsWorkspaceAction = presetAction === WorkspacePresetAction.SAVE_SYSTEM_PRESET_AS || presetAction === WorkspacePresetAction.SAVE_AS;
|
|
5663
5647
|
if (!(isSaveWorkspaceAction || isSaveAsWorkspaceAction)) {
|
|
5664
|
-
_context4.next =
|
|
5648
|
+
_context4.next = 43;
|
|
5665
5649
|
break;
|
|
5666
5650
|
}
|
|
5667
5651
|
hasWorkspaceAlreadyBeenSaved = getWorkspaceDialogIsSaved(listenerApi.getState());
|
|
5668
5652
|
workspaceId = presetId;
|
|
5669
5653
|
if (!(!hasWorkspaceAlreadyBeenSaved && isSaveAsWorkspaceAction)) {
|
|
5670
|
-
_context4.next =
|
|
5654
|
+
_context4.next = 26;
|
|
5671
5655
|
break;
|
|
5672
5656
|
}
|
|
5673
|
-
_context4.next =
|
|
5657
|
+
_context4.next = 25;
|
|
5674
5658
|
return workspaceApi.saveWorkspacePresetAs(data);
|
|
5675
|
-
case
|
|
5659
|
+
case 25:
|
|
5676
5660
|
workspaceId = _context4.sent;
|
|
5677
|
-
case
|
|
5661
|
+
case 26:
|
|
5678
5662
|
if (!isSaveWorkspaceAction) {
|
|
5679
|
-
_context4.next =
|
|
5663
|
+
_context4.next = 29;
|
|
5680
5664
|
break;
|
|
5681
5665
|
}
|
|
5682
|
-
_context4.next =
|
|
5666
|
+
_context4.next = 29;
|
|
5683
5667
|
return workspaceApi.saveWorkspacePreset(workspaceId, data);
|
|
5684
|
-
case
|
|
5668
|
+
case 29:
|
|
5685
5669
|
// lock the workspace
|
|
5686
5670
|
listenerApi.dispatch(workspaceListActions.onSuccessWorkspaceSaveDialog({
|
|
5687
5671
|
presetId: workspaceId
|
|
5688
5672
|
}));
|
|
5689
|
-
_context4.next =
|
|
5673
|
+
_context4.next = 32;
|
|
5690
5674
|
return Promise.all(data.views.map( /*#__PURE__*/function () {
|
|
5691
|
-
var
|
|
5675
|
+
var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(view) {
|
|
5692
5676
|
var viewPresetEntity, shouldUpdateView, canUpdateView, _payload, _payload2;
|
|
5693
5677
|
return _regeneratorRuntime().wrap(function _callee3$(_context3) {
|
|
5694
5678
|
while (1) switch (_context3.prev = _context3.next) {
|
|
@@ -5737,16 +5721,16 @@ workspaceListListener.startListening({
|
|
|
5737
5721
|
}, _callee3);
|
|
5738
5722
|
}));
|
|
5739
5723
|
return function (_x7) {
|
|
5740
|
-
return
|
|
5724
|
+
return _ref4.apply(this, arguments);
|
|
5741
5725
|
};
|
|
5742
5726
|
}()));
|
|
5743
|
-
case
|
|
5727
|
+
case 32:
|
|
5744
5728
|
viewPresetResults = _context4.sent;
|
|
5745
5729
|
hasError = viewPresetResults.find(function (view) {
|
|
5746
5730
|
return view.message;
|
|
5747
5731
|
});
|
|
5748
5732
|
if (!hasError) {
|
|
5749
|
-
_context4.next =
|
|
5733
|
+
_context4.next = 37;
|
|
5750
5734
|
break;
|
|
5751
5735
|
}
|
|
5752
5736
|
// maybe we can use another action, but this resets fetching of the form
|
|
@@ -5754,7 +5738,7 @@ workspaceListListener.startListening({
|
|
|
5754
5738
|
error: undefined
|
|
5755
5739
|
}));
|
|
5756
5740
|
return _context4.abrupt("return");
|
|
5757
|
-
case
|
|
5741
|
+
case 37:
|
|
5758
5742
|
workspaceData = getWorkspaceData(listenerApi.getState());
|
|
5759
5743
|
newWorkspace = Object.assign({}, workspaceData, {
|
|
5760
5744
|
id: workspaceId,
|
|
@@ -5762,9 +5746,9 @@ workspaceListListener.startListening({
|
|
|
5762
5746
|
"abstract": data["abstract"],
|
|
5763
5747
|
scope: scope
|
|
5764
5748
|
});
|
|
5765
|
-
_context4.next =
|
|
5749
|
+
_context4.next = 41;
|
|
5766
5750
|
return workspaceApi.saveWorkspacePreset(workspaceId, newWorkspace);
|
|
5767
|
-
case
|
|
5751
|
+
case 41:
|
|
5768
5752
|
listenerApi.dispatch(workspaceListActions.onSuccessWorkspacePresetAction({
|
|
5769
5753
|
action: presetAction,
|
|
5770
5754
|
workspaceId: workspaceId,
|
|
@@ -5775,7 +5759,7 @@ workspaceListListener.startListening({
|
|
|
5775
5759
|
listenerApi.dispatch(routerActions.navigateToUrl({
|
|
5776
5760
|
url: getWorkspaceRouteUrl(workspaceId)
|
|
5777
5761
|
}));
|
|
5778
|
-
case
|
|
5762
|
+
case 43:
|
|
5779
5763
|
// Reset
|
|
5780
5764
|
if (presetAction === WorkspacePresetAction.RESET) {
|
|
5781
5765
|
// In case we're resetting the `New workspace` preset
|
|
@@ -5798,13 +5782,13 @@ workspaceListListener.startListening({
|
|
|
5798
5782
|
scope: scope
|
|
5799
5783
|
}));
|
|
5800
5784
|
}
|
|
5801
|
-
_context4.next =
|
|
5785
|
+
_context4.next = 51;
|
|
5802
5786
|
break;
|
|
5803
|
-
case
|
|
5804
|
-
_context4.prev =
|
|
5805
|
-
_context4.
|
|
5806
|
-
message = isAxiosError$1(_context4.
|
|
5807
|
-
category = isAxiosAuthError(_context4.
|
|
5787
|
+
case 46:
|
|
5788
|
+
_context4.prev = 46;
|
|
5789
|
+
_context4.t0 = _context4["catch"](3);
|
|
5790
|
+
message = isAxiosError$1(_context4.t0) ? getAxiosErrorMessage(_context4.t0) : _context4.t0.message;
|
|
5791
|
+
category = isAxiosAuthError(_context4.t0) ? WorkspaceListErrorCategory.AUTH : WorkspaceListErrorCategory.GENERIC;
|
|
5808
5792
|
listenerApi.dispatch(workspaceListActions.onErrorWorkspacePresetAction({
|
|
5809
5793
|
error: {
|
|
5810
5794
|
type: WorkspaceListErrorType.VERBATIM_ERROR,
|
|
@@ -5812,11 +5796,11 @@ workspaceListListener.startListening({
|
|
|
5812
5796
|
message: message
|
|
5813
5797
|
}
|
|
5814
5798
|
}));
|
|
5815
|
-
case
|
|
5799
|
+
case 51:
|
|
5816
5800
|
case "end":
|
|
5817
5801
|
return _context4.stop();
|
|
5818
5802
|
}
|
|
5819
|
-
}, _callee4, null, [[3,
|
|
5803
|
+
}, _callee4, null, [[3, 46]]);
|
|
5820
5804
|
}));
|
|
5821
5805
|
function effect(_x5, _x6) {
|
|
5822
5806
|
return _effect3.apply(this, arguments);
|
|
@@ -6031,32 +6015,27 @@ var defaultAuthConfig = {
|
|
|
6031
6015
|
},
|
|
6032
6016
|
sessionStorageProvider: null
|
|
6033
6017
|
};
|
|
6034
|
-
|
|
6018
|
+
// wrapper without theme and i18n
|
|
6019
|
+
var WorkspaceStoreWrapper = function WorkspaceStoreWrapper(_ref3) {
|
|
6035
6020
|
var children = _ref3.children,
|
|
6036
6021
|
_ref3$store = _ref3.store,
|
|
6037
6022
|
store = _ref3$store === void 0 ? createMockStore() : _ref3$store,
|
|
6038
6023
|
_ref3$createApi = _ref3.createApi,
|
|
6039
6024
|
createApi$1 = _ref3$createApi === void 0 ? createApi : _ref3$createApi,
|
|
6040
|
-
theme = _ref3.theme,
|
|
6041
6025
|
_ref3$auth = _ref3.auth,
|
|
6042
6026
|
auth = _ref3$auth === void 0 ? defaultAuthConfig : _ref3$auth;
|
|
6043
|
-
return jsx(
|
|
6044
|
-
|
|
6045
|
-
|
|
6046
|
-
|
|
6047
|
-
|
|
6048
|
-
|
|
6049
|
-
|
|
6050
|
-
|
|
6051
|
-
|
|
6052
|
-
|
|
6053
|
-
children: jsx(
|
|
6054
|
-
|
|
6055
|
-
children: jsx(SnackbarWrapperConnect, {
|
|
6056
|
-
children: jsx(ConfirmationServiceProvider, {
|
|
6057
|
-
children: children
|
|
6058
|
-
})
|
|
6059
|
-
})
|
|
6027
|
+
return jsx(AuthenticationProvider, {
|
|
6028
|
+
value: auth,
|
|
6029
|
+
children: jsx(QueryClientProvider, {
|
|
6030
|
+
client: queryClient,
|
|
6031
|
+
children: jsx(ApiProvider, {
|
|
6032
|
+
createApi: createApi$1,
|
|
6033
|
+
name: API_NAME,
|
|
6034
|
+
children: jsx(Provider, {
|
|
6035
|
+
store: store,
|
|
6036
|
+
children: jsx(SnackbarWrapperConnect, {
|
|
6037
|
+
children: jsx(ConfirmationServiceProvider, {
|
|
6038
|
+
children: children
|
|
6060
6039
|
})
|
|
6061
6040
|
})
|
|
6062
6041
|
})
|
|
@@ -6064,8 +6043,29 @@ var WorkspaceWrapperProviderWithStore = function WorkspaceWrapperProviderWithSto
|
|
|
6064
6043
|
})
|
|
6065
6044
|
});
|
|
6066
6045
|
};
|
|
6067
|
-
var
|
|
6068
|
-
var children = _ref4.children
|
|
6046
|
+
var WorkspaceWrapperProviderWithStore = function WorkspaceWrapperProviderWithStore(_ref4) {
|
|
6047
|
+
var children = _ref4.children,
|
|
6048
|
+
_ref4$store = _ref4.store,
|
|
6049
|
+
store = _ref4$store === void 0 ? createMockStore() : _ref4$store,
|
|
6050
|
+
_ref4$createApi = _ref4.createApi,
|
|
6051
|
+
createApi$1 = _ref4$createApi === void 0 ? createApi : _ref4$createApi,
|
|
6052
|
+
theme = _ref4.theme,
|
|
6053
|
+
_ref4$auth = _ref4.auth,
|
|
6054
|
+
auth = _ref4$auth === void 0 ? defaultAuthConfig : _ref4$auth;
|
|
6055
|
+
return jsx(WorkspaceThemeProvider, {
|
|
6056
|
+
theme: theme,
|
|
6057
|
+
children: jsx(WorkspaceI18nProvider, {
|
|
6058
|
+
children: jsx(WorkspaceStoreWrapper, {
|
|
6059
|
+
store: store,
|
|
6060
|
+
createApi: createApi$1,
|
|
6061
|
+
auth: auth,
|
|
6062
|
+
children: children
|
|
6063
|
+
})
|
|
6064
|
+
})
|
|
6065
|
+
});
|
|
6066
|
+
};
|
|
6067
|
+
var WorkspaceI18nProvider = function WorkspaceI18nProvider(_ref5) {
|
|
6068
|
+
var children = _ref5.children;
|
|
6069
6069
|
initWorkspaceTestI18n();
|
|
6070
6070
|
return jsx(I18nextProvider, {
|
|
6071
6071
|
i18n: i18n,
|
|
@@ -6485,6 +6485,12 @@ var getPresetIcon = function getPresetIcon(preset) {
|
|
|
6485
6485
|
});
|
|
6486
6486
|
}
|
|
6487
6487
|
};
|
|
6488
|
+
var ShareIcon = styled(ListItemIcon)(function () {
|
|
6489
|
+
return {
|
|
6490
|
+
minWidth: '32px !important',
|
|
6491
|
+
paddingTop: '3px'
|
|
6492
|
+
};
|
|
6493
|
+
});
|
|
6488
6494
|
var WorkspaceSelectListRow = function WorkspaceSelectListRow(_ref) {
|
|
6489
6495
|
var workspacePreset = _ref.workspacePreset,
|
|
6490
6496
|
isSelected = _ref.isSelected,
|
|
@@ -6500,34 +6506,40 @@ var WorkspaceSelectListRow = function WorkspaceSelectListRow(_ref) {
|
|
|
6500
6506
|
searchQuery = _ref$searchQuery === void 0 ? '' : _ref$searchQuery,
|
|
6501
6507
|
_ref$testIdPrefix = _ref.testIdPrefix,
|
|
6502
6508
|
testIdPrefix = _ref$testIdPrefix === void 0 ? 'workspace' : _ref$testIdPrefix;
|
|
6509
|
+
var _useAuthenticationCon = useAuthenticationContext(),
|
|
6510
|
+
auth = _useAuthenticationCon.auth;
|
|
6503
6511
|
var _useWorkspaceTranslat = useWorkspaceTranslation(),
|
|
6504
6512
|
t = _useWorkspaceTranslat.t;
|
|
6505
|
-
var
|
|
6506
|
-
|
|
6507
|
-
|
|
6508
|
-
|
|
6509
|
-
|
|
6510
|
-
|
|
6511
|
-
|
|
6512
|
-
|
|
6513
|
+
var shareIcon = React__default.useMemo(function () {
|
|
6514
|
+
if (workspacePreset.is_shared) {
|
|
6515
|
+
if (workspacePreset.username === (auth == null ? void 0 : auth.username)) {
|
|
6516
|
+
return jsx(SharedPresetsMyUser, {});
|
|
6517
|
+
}
|
|
6518
|
+
return jsx(SharedPresetsOtherUsers, {});
|
|
6519
|
+
}
|
|
6520
|
+
return null;
|
|
6521
|
+
}, [workspacePreset.is_shared, workspacePreset.username, auth == null ? void 0 : auth.username]);
|
|
6522
|
+
var _onClick = function onClick(action) {
|
|
6523
|
+
return onClickWorkspacePresetOption(workspacePreset.id, action, workspacePreset);
|
|
6513
6524
|
};
|
|
6514
6525
|
var menuItems = [{
|
|
6515
6526
|
text: t('workspace-duplicate'),
|
|
6516
|
-
action:
|
|
6527
|
+
action: function action() {
|
|
6528
|
+
return _onClick(WorkspacePresetAction.DUPLICATE);
|
|
6529
|
+
}
|
|
6517
6530
|
}];
|
|
6518
6531
|
(workspacePreset.scope === PresetScope.user || isAdmin) && menuItems.push({
|
|
6519
6532
|
text: t('workspace-edit'),
|
|
6520
|
-
action:
|
|
6521
|
-
|
|
6522
|
-
|
|
6523
|
-
text: t('workspace-share'),
|
|
6524
|
-
action: onShare,
|
|
6525
|
-
isDisabled: true
|
|
6533
|
+
action: function action() {
|
|
6534
|
+
return _onClick(WorkspacePresetAction.EDIT);
|
|
6535
|
+
}
|
|
6526
6536
|
});
|
|
6527
|
-
workspacePreset.scope === PresetScope.
|
|
6528
|
-
text: t('workspace-stop-share'),
|
|
6529
|
-
action:
|
|
6530
|
-
|
|
6537
|
+
workspacePreset.scope === PresetScope.user && (auth == null ? void 0 : auth.username) === workspacePreset.username && menuItems.push({
|
|
6538
|
+
text: workspacePreset.is_shared ? t('workspace-stop-share') : t('workspace-share'),
|
|
6539
|
+
action: function action() {
|
|
6540
|
+
return _onClick(WorkspacePresetAction.SHARE);
|
|
6541
|
+
},
|
|
6542
|
+
isDisabled: false
|
|
6531
6543
|
});
|
|
6532
6544
|
return jsx(ListItem, {
|
|
6533
6545
|
disablePadding: true,
|
|
@@ -6565,6 +6577,8 @@ var WorkspaceSelectListRow = function WorkspaceSelectListRow(_ref) {
|
|
|
6565
6577
|
"aria-label": testIdPrefix,
|
|
6566
6578
|
children: [jsx(ListItemIcon, {
|
|
6567
6579
|
children: getPresetIcon(workspacePreset)
|
|
6580
|
+
}), shareIcon && jsx(ShareIcon, {
|
|
6581
|
+
children: shareIcon
|
|
6568
6582
|
}), jsx(CustomTooltip, {
|
|
6569
6583
|
title: workspacePreset.title,
|
|
6570
6584
|
children: jsx(ListItemText, {
|
|
@@ -6596,7 +6610,7 @@ var WorkspaceSelectListRow = function WorkspaceSelectListRow(_ref) {
|
|
|
6596
6610
|
tooltipTitle: t('workspace-delete-tooltip'),
|
|
6597
6611
|
onClick: function onClick(event) {
|
|
6598
6612
|
event.stopPropagation();
|
|
6599
|
-
|
|
6613
|
+
_onClick(isAdmin ? WorkspacePresetAction.DELETE_SYSTEM_PRESET : WorkspacePresetAction.DELETE);
|
|
6600
6614
|
},
|
|
6601
6615
|
variant: "tool",
|
|
6602
6616
|
sx: {
|
|
@@ -7671,17 +7685,69 @@ var WorkspaceViewConnect = function WorkspaceViewConnect(_ref) {
|
|
|
7671
7685
|
});
|
|
7672
7686
|
};
|
|
7673
7687
|
|
|
7688
|
+
/* *
|
|
7689
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
7690
|
+
* you may not use this file except in compliance with the License.
|
|
7691
|
+
* You may obtain a copy of the License at
|
|
7692
|
+
*
|
|
7693
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
7694
|
+
*
|
|
7695
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
7696
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
7697
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
7698
|
+
* See the License for the specific language governing permissions and
|
|
7699
|
+
* limitations under the License.
|
|
7700
|
+
*
|
|
7701
|
+
* Copyright 2025 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
7702
|
+
* Copyright 2025 - Finnish Meteorological Institute (FMI)
|
|
7703
|
+
* Copyright 2025 - The Norwegian Meteorological Institute (MET Norway)
|
|
7704
|
+
* */
|
|
7705
|
+
var config = getConfig();
|
|
7706
|
+
var presetBaseUrl = (config == null ? void 0 : config.GW_PRESET_BACKEND_URL) || '';
|
|
7707
|
+
var getWorkspace = function getWorkspace(workspaceId, auth) {
|
|
7708
|
+
return fetch(presetBaseUrl + "/workspacepreset/" + workspaceId, {
|
|
7709
|
+
headers: getHeaders(auth)
|
|
7710
|
+
}).then(handleResponse);
|
|
7711
|
+
};
|
|
7712
|
+
var deleteWorkspace = function deleteWorkspace(workspaceId, auth) {
|
|
7713
|
+
return fetch(presetBaseUrl + "/workspacepreset/" + workspaceId, {
|
|
7714
|
+
headers: getHeaders(auth),
|
|
7715
|
+
method: 'DELETE'
|
|
7716
|
+
}).then(handleResponse);
|
|
7717
|
+
};
|
|
7718
|
+
var updateWorkspace = function updateWorkspace(workspaceId, data, auth) {
|
|
7719
|
+
return fetch(presetBaseUrl + "/workspacepreset/" + workspaceId, {
|
|
7720
|
+
headers: getHeaders(auth),
|
|
7721
|
+
method: 'PUT',
|
|
7722
|
+
body: JSON.stringify(data)
|
|
7723
|
+
}).then(handleResponse);
|
|
7724
|
+
};
|
|
7725
|
+
var createWorkspace = function createWorkspace(data, auth) {
|
|
7726
|
+
return fetch(presetBaseUrl + "/workspacepreset", {
|
|
7727
|
+
headers: getHeaders(auth),
|
|
7728
|
+
method: 'POST',
|
|
7729
|
+
body: JSON.stringify(data)
|
|
7730
|
+
}).then(handleResponse);
|
|
7731
|
+
};
|
|
7732
|
+
|
|
7674
7733
|
var WorkspaceSelectListConnect = function WorkspaceSelectListConnect() {
|
|
7675
7734
|
var _useAuthenticationCon = useAuthenticationContext(),
|
|
7676
|
-
currentRole = _useAuthenticationCon.currentRole
|
|
7735
|
+
currentRole = _useAuthenticationCon.currentRole,
|
|
7736
|
+
isLoggedIn = _useAuthenticationCon.isLoggedIn,
|
|
7737
|
+
auth = _useAuthenticationCon.auth;
|
|
7738
|
+
var username = (auth == null ? void 0 : auth.username) || '';
|
|
7739
|
+
var workspacePresets = useSelector(function (store) {
|
|
7740
|
+
return getWorkspaceList(store);
|
|
7741
|
+
});
|
|
7742
|
+
var selectedFilters = useSelector(getWorkspaceListFilters);
|
|
7743
|
+
var filteredPresets = React.useMemo(function () {
|
|
7744
|
+
return filterWorkspacePresets(workspacePresets, selectedFilters, username);
|
|
7745
|
+
}, [workspacePresets, selectedFilters, username]);
|
|
7677
7746
|
var isAdmin = (currentRole == null ? void 0 : currentRole.name) === GEOWEB_ROLE_PRESETS_ADMIN.name;
|
|
7678
7747
|
var scope = !isAdmin ? 'user' : 'system';
|
|
7679
7748
|
var currentView = useSelector(function (store) {
|
|
7680
7749
|
return getWorkspaceState(store);
|
|
7681
7750
|
});
|
|
7682
|
-
var workspacePresets = useSelector(function (store) {
|
|
7683
|
-
return getWorkspaceList(store);
|
|
7684
|
-
});
|
|
7685
7751
|
var workspaceListFilters = useSelector(function (store) {
|
|
7686
7752
|
return getWorkspaceListFilters(store, scope);
|
|
7687
7753
|
});
|
|
@@ -7694,15 +7760,13 @@ var WorkspaceSelectListConnect = function WorkspaceSelectListConnect() {
|
|
|
7694
7760
|
var error = useSelector(function (store) {
|
|
7695
7761
|
return getWorkspaceListError(store);
|
|
7696
7762
|
});
|
|
7697
|
-
var _useAuthenticationCon2 = useAuthenticationContext(),
|
|
7698
|
-
isLoggedIn = _useAuthenticationCon2.isLoggedIn;
|
|
7699
7763
|
var dispatch = useDispatch();
|
|
7700
7764
|
var _useWorkspaceTranslat = useWorkspaceTranslation(),
|
|
7701
7765
|
t = _useWorkspaceTranslat.t;
|
|
7702
7766
|
var fetchWorkspaceList = React.useCallback(function () {
|
|
7703
|
-
var filterParams = constructFilterParams(
|
|
7767
|
+
var filterParams = constructFilterParams([], workspaceSearchQuery);
|
|
7704
7768
|
dispatch(workspaceListActions.fetchWorkspaceList(filterParams));
|
|
7705
|
-
}, [dispatch,
|
|
7769
|
+
}, [dispatch, workspaceSearchQuery]);
|
|
7706
7770
|
var fetchWorkspace = React.useCallback(function (workspaceId) {
|
|
7707
7771
|
dispatch(workspaceActions.fetchWorkspace({
|
|
7708
7772
|
workspaceId: workspaceId
|
|
@@ -7804,6 +7868,13 @@ var WorkspaceSelectListConnect = function WorkspaceSelectListConnect() {
|
|
|
7804
7868
|
}
|
|
7805
7869
|
case WorkspacePresetAction.SHARE:
|
|
7806
7870
|
{
|
|
7871
|
+
void getWorkspace(presetId, auth).then(function (preset) {
|
|
7872
|
+
return void updateWorkspace(presetId, Object.assign({}, preset, {
|
|
7873
|
+
is_shared: !preset.is_shared
|
|
7874
|
+
}), auth).then(function () {
|
|
7875
|
+
fetchWorkspaceList();
|
|
7876
|
+
});
|
|
7877
|
+
});
|
|
7807
7878
|
// TODO
|
|
7808
7879
|
break;
|
|
7809
7880
|
}
|
|
@@ -7857,7 +7928,7 @@ var WorkspaceSelectListConnect = function WorkspaceSelectListConnect() {
|
|
|
7857
7928
|
searchQuery: workspaceSearchQuery,
|
|
7858
7929
|
onSearch: searchFilter
|
|
7859
7930
|
}), jsx(WorkspaceSelectList, {
|
|
7860
|
-
workspacePresets:
|
|
7931
|
+
workspacePresets: filteredPresets,
|
|
7861
7932
|
currentSelectedId: currentView.id || '',
|
|
7862
7933
|
onClickWorkspacePreset: onClickWorkspacePreset,
|
|
7863
7934
|
onClickWorkspacePresetOption: onClickWorkspacePresetOption,
|
|
@@ -7960,54 +8031,73 @@ var WorkspaceMenuButton = function WorkspaceMenuButton(_ref) {
|
|
|
7960
8031
|
});
|
|
7961
8032
|
};
|
|
7962
8033
|
|
|
7963
|
-
|
|
8034
|
+
/* *
|
|
8035
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
8036
|
+
* you may not use this file except in compliance with the License.
|
|
8037
|
+
* You may obtain a copy of the License at
|
|
8038
|
+
*
|
|
8039
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
8040
|
+
*
|
|
8041
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
8042
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
8043
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
8044
|
+
* See the License for the specific language governing permissions and
|
|
8045
|
+
* limitations under the License.
|
|
8046
|
+
*
|
|
8047
|
+
* Copyright 2025 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
8048
|
+
* Copyright 2025 - Finnish Meteorological Institute (FMI)
|
|
8049
|
+
* Copyright 2025 - The Norwegian Meteorological Institute (MET Norway)
|
|
8050
|
+
* */
|
|
8051
|
+
var useFetchWorkspacePresets = function useFetchWorkspacePresets() {
|
|
7964
8052
|
var dispatch = useDispatch();
|
|
7965
8053
|
var _useAuthenticationCon = useAuthenticationContext(),
|
|
7966
8054
|
currentRole = _useAuthenticationCon.currentRole;
|
|
7967
8055
|
var isAdmin = (currentRole == null ? void 0 : currentRole.name) === GEOWEB_ROLE_PRESETS_ADMIN.name;
|
|
7968
|
-
var scope = !isAdmin ? 'user' : 'system';
|
|
7969
8056
|
var lastAdmin = usePrevious(isAdmin);
|
|
7970
|
-
var workspaceListFilters = useSelector(function (store) {
|
|
7971
|
-
return getWorkspaceListFilters(store, scope);
|
|
7972
|
-
});
|
|
7973
8057
|
var workspaceSearchQuery = useSelector(getWorkspaceListSearchQuery);
|
|
7974
|
-
var
|
|
8058
|
+
var prevSearch = usePrevious(workspaceSearchQuery);
|
|
8059
|
+
var fetchWorkspacePresets = useCallback(function (params) {
|
|
7975
8060
|
dispatch(workspaceListActions.fetchWorkspaceList(params));
|
|
7976
8061
|
}, [dispatch]);
|
|
7977
|
-
|
|
7978
|
-
|
|
7979
|
-
|
|
7980
|
-
|
|
7981
|
-
|
|
8062
|
+
useEffect(function () {
|
|
8063
|
+
if (workspaceSearchQuery !== prevSearch) {
|
|
8064
|
+
workspaceSearchQuery.trim() === '' ? fetchWorkspacePresets({}) : fetchWorkspacePresets({
|
|
8065
|
+
search: workspaceSearchQuery
|
|
8066
|
+
});
|
|
8067
|
+
}
|
|
8068
|
+
}, [fetchWorkspacePresets, prevSearch, workspaceSearchQuery]);
|
|
8069
|
+
useEffect(function () {
|
|
7982
8070
|
if (isAdmin !== lastAdmin && lastAdmin !== undefined) {
|
|
7983
8071
|
// reset list filter when user changes role
|
|
7984
8072
|
var filters = [{
|
|
7985
8073
|
id: 'system',
|
|
7986
8074
|
isSelected: true
|
|
7987
8075
|
}, {
|
|
7988
|
-
id: '
|
|
8076
|
+
id: 'personal',
|
|
8077
|
+
isSelected: !isAdmin
|
|
8078
|
+
}, {
|
|
8079
|
+
id: 'shared',
|
|
7989
8080
|
isSelected: !isAdmin
|
|
7990
8081
|
}];
|
|
7991
8082
|
dispatch(workspaceListActions.setFilterChips(filters));
|
|
7992
8083
|
}
|
|
7993
8084
|
}, [dispatch, isAdmin, lastAdmin]);
|
|
7994
|
-
return null;
|
|
7995
8085
|
};
|
|
8086
|
+
|
|
7996
8087
|
var WorkspaceMenuButtonConnect = function WorkspaceMenuButtonConnect() {
|
|
7997
8088
|
var dispatch = useDispatch();
|
|
8089
|
+
var isWorkspaceListDialogOpen = useSelector(function (store) {
|
|
8090
|
+
return getIsWorkspaceListDialogOpen(store);
|
|
8091
|
+
});
|
|
8092
|
+
useFetchWorkspacePresets();
|
|
7998
8093
|
var setListDialogOpen = React__default.useCallback(function (isListDialogOpen) {
|
|
7999
8094
|
dispatch(workspaceListActions.toggleWorkspaceDialog({
|
|
8000
8095
|
isWorkspaceListDialogOpen: isListDialogOpen
|
|
8001
8096
|
}));
|
|
8002
8097
|
}, [dispatch]);
|
|
8003
|
-
|
|
8004
|
-
|
|
8005
|
-
|
|
8006
|
-
return jsxs(Fragment, {
|
|
8007
|
-
children: [jsx(FetchWorkspacePresets, {}), jsx(WorkspaceMenuButton, {
|
|
8008
|
-
showMenu: isWorkspaceListDialogOpen,
|
|
8009
|
-
onToggleDialog: setListDialogOpen
|
|
8010
|
-
})]
|
|
8098
|
+
return jsx(WorkspaceMenuButton, {
|
|
8099
|
+
showMenu: isWorkspaceListDialogOpen,
|
|
8100
|
+
onToggleDialog: setListDialogOpen
|
|
8011
8101
|
});
|
|
8012
8102
|
};
|
|
8013
8103
|
|
|
@@ -8325,7 +8415,8 @@ var WorkspaceViewPresetsFormFields = function WorkspaceViewPresetsFormFields(_re
|
|
|
8325
8415
|
};
|
|
8326
8416
|
|
|
8327
8417
|
var _excluded$3 = ["title", "abstract"];
|
|
8328
|
-
var
|
|
8418
|
+
var ERROR_DUPLICATE_TITLE_BE = 'Preset title already in use, please choose a different title';
|
|
8419
|
+
var ERROR_LONG_TITLE_BE = 'Preset title cannot exceed 100 characters';
|
|
8329
8420
|
var validateTitle$1 = function validateTitle(value) {
|
|
8330
8421
|
if (!value) {
|
|
8331
8422
|
return true;
|
|
@@ -8361,6 +8452,7 @@ var WorkspacePresetsForm = function WorkspacePresetsForm(_ref) {
|
|
|
8361
8452
|
value: otherFormValues[name]
|
|
8362
8453
|
};
|
|
8363
8454
|
});
|
|
8455
|
+
var shouldShowTitleError = (error == null ? void 0 : error.type) === WorkspaceListErrorType.VERBATIM_ERROR && (error.message === ERROR_DUPLICATE_TITLE_BE || error.message === ERROR_LONG_TITLE_BE);
|
|
8364
8456
|
React__default.useEffect(function () {
|
|
8365
8457
|
// autoFocus
|
|
8366
8458
|
var field = document.querySelector("[name=\"" + titleField + "\"]");
|
|
@@ -8368,12 +8460,12 @@ var WorkspacePresetsForm = function WorkspacePresetsForm(_ref) {
|
|
|
8368
8460
|
}, []);
|
|
8369
8461
|
React__default.useEffect(function () {
|
|
8370
8462
|
// set title error on title field
|
|
8371
|
-
if (
|
|
8463
|
+
if (shouldShowTitleError) {
|
|
8372
8464
|
setError(titleField, {
|
|
8373
8465
|
message: error.message
|
|
8374
8466
|
});
|
|
8375
8467
|
}
|
|
8376
|
-
}, [error, setError]);
|
|
8468
|
+
}, [error, setError, shouldShowTitleError]);
|
|
8377
8469
|
var onSubmitForm = function onSubmitForm(event) {
|
|
8378
8470
|
event.preventDefault();
|
|
8379
8471
|
onSubmit();
|
|
@@ -8383,7 +8475,7 @@ var WorkspacePresetsForm = function WorkspacePresetsForm(_ref) {
|
|
|
8383
8475
|
var isDisabled = hasSavedWorkspace || isLoading;
|
|
8384
8476
|
var shouldShowViewPresetForm = action === WorkspacePresetAction.SAVE_SYSTEM_PRESET || action === WorkspacePresetAction.SAVE_SYSTEM_PRESET_AS || action === WorkspacePresetAction.SAVE_AS || action === WorkspacePresetAction.SAVE;
|
|
8385
8477
|
return jsxs(Fragment, {
|
|
8386
|
-
children: [error && !
|
|
8478
|
+
children: [error && !shouldShowTitleError && jsx(Box, {
|
|
8387
8479
|
sx: {
|
|
8388
8480
|
marginBottom: 2
|
|
8389
8481
|
},
|
|
@@ -8408,7 +8500,7 @@ var WorkspacePresetsForm = function WorkspacePresetsForm(_ref) {
|
|
|
8408
8500
|
},
|
|
8409
8501
|
disabled: isDisabled,
|
|
8410
8502
|
defaultValue: title,
|
|
8411
|
-
error:
|
|
8503
|
+
error: shouldShowTitleError
|
|
8412
8504
|
})
|
|
8413
8505
|
}), jsx(ReactHookFormTextField, {
|
|
8414
8506
|
name: "abstract",
|
|
@@ -8619,12 +8711,104 @@ var WorkspacePresetsFormDialogWrapper = function WorkspacePresetsFormDialogWrapp
|
|
|
8619
8711
|
});
|
|
8620
8712
|
};
|
|
8621
8713
|
|
|
8714
|
+
/* *
|
|
8715
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
8716
|
+
* you may not use this file except in compliance with the License.
|
|
8717
|
+
* You may obtain a copy of the License at
|
|
8718
|
+
*
|
|
8719
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
8720
|
+
*
|
|
8721
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
8722
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
8723
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
8724
|
+
* See the License for the specific language governing permissions and
|
|
8725
|
+
* limitations under the License.
|
|
8726
|
+
*
|
|
8727
|
+
* Copyright 2025 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
8728
|
+
* Copyright 2025 - Finnish Meteorological Institute (FMI)
|
|
8729
|
+
* Copyright 2025 - The Norwegian Meteorological Institute (MET Norway)
|
|
8730
|
+
* */
|
|
8731
|
+
var onWorkspaceApiError = function onWorkspaceApiError(dispatch, error, t) {
|
|
8732
|
+
dispatch(workspaceListActions.onErrorWorkspacePresetAction({
|
|
8733
|
+
error: {
|
|
8734
|
+
message: error.message + " " + t('workspace-error-generic'),
|
|
8735
|
+
type: WorkspaceListErrorType.VERBATIM_ERROR,
|
|
8736
|
+
category: error.message === 'Authentication context not found' ? WorkspaceListErrorCategory.AUTH : WorkspaceListErrorCategory.GENERIC
|
|
8737
|
+
}
|
|
8738
|
+
}));
|
|
8739
|
+
};
|
|
8740
|
+
var useDeleteWorkspacePreset = function useDeleteWorkspacePreset() {
|
|
8741
|
+
var _useAuthenticationCon = useAuthenticationContext(),
|
|
8742
|
+
auth = _useAuthenticationCon.auth;
|
|
8743
|
+
var _useSelector = useSelector(getWorkspaceActionFormValues),
|
|
8744
|
+
title = _useSelector.title;
|
|
8745
|
+
var _useWorkspaceTranslat = useWorkspaceTranslation(),
|
|
8746
|
+
t = _useWorkspaceTranslat.t;
|
|
8747
|
+
var dispatch = useDispatch();
|
|
8748
|
+
return useMutation({
|
|
8749
|
+
mutationFn: function mutationFn(_ref) {
|
|
8750
|
+
var id = _ref.id;
|
|
8751
|
+
if (!auth) {
|
|
8752
|
+
throw new Error('Authentication context not found');
|
|
8753
|
+
}
|
|
8754
|
+
return deleteWorkspace(id, auth);
|
|
8755
|
+
},
|
|
8756
|
+
onSuccess: function onSuccess(data, variables) {
|
|
8757
|
+
dispatch(workspaceListActions.onSuccessWorkspacePresetAction({
|
|
8758
|
+
workspaceId: variables.id,
|
|
8759
|
+
action: WorkspacePresetAction.DELETE,
|
|
8760
|
+
emptyWorkspacePresetTitle: t('workspace-new'),
|
|
8761
|
+
title: title
|
|
8762
|
+
}));
|
|
8763
|
+
},
|
|
8764
|
+
onError: function onError(error) {
|
|
8765
|
+
onWorkspaceApiError(dispatch, error, t);
|
|
8766
|
+
}
|
|
8767
|
+
});
|
|
8768
|
+
};
|
|
8769
|
+
var useCreateWorkspacePreset = function useCreateWorkspacePreset() {
|
|
8770
|
+
var _useAuthenticationCon2 = useAuthenticationContext(),
|
|
8771
|
+
auth = _useAuthenticationCon2.auth;
|
|
8772
|
+
var _useWorkspaceTranslat2 = useWorkspaceTranslation(),
|
|
8773
|
+
t = _useWorkspaceTranslat2.t;
|
|
8774
|
+
var dispatch = useDispatch();
|
|
8775
|
+
return useMutation({
|
|
8776
|
+
mutationFn: function mutationFn(_ref2) {
|
|
8777
|
+
var data = _ref2.data;
|
|
8778
|
+
if (!auth) {
|
|
8779
|
+
throw new Error('Authentication context not found');
|
|
8780
|
+
}
|
|
8781
|
+
return createWorkspace(data, auth);
|
|
8782
|
+
},
|
|
8783
|
+
onSuccess: function onSuccess(data, variables) {
|
|
8784
|
+
var location = data == null ? void 0 : data.get('location');
|
|
8785
|
+
var newId = getIdFromUrl(location);
|
|
8786
|
+
var scope = variables.data.scope || 'user';
|
|
8787
|
+
dispatch(workspaceListActions.onSuccessWorkspacePresetAction({
|
|
8788
|
+
workspaceId: newId,
|
|
8789
|
+
action: variables.action || WorkspacePresetAction.SAVE_AS,
|
|
8790
|
+
title: variables.data.title,
|
|
8791
|
+
scope: scope
|
|
8792
|
+
}));
|
|
8793
|
+
},
|
|
8794
|
+
onError: function onError(error) {
|
|
8795
|
+
onWorkspaceApiError(dispatch, error, t);
|
|
8796
|
+
}
|
|
8797
|
+
});
|
|
8798
|
+
};
|
|
8799
|
+
|
|
8622
8800
|
var WorkspaceTabConnect = function WorkspaceTabConnect(_ref) {
|
|
8623
8801
|
var workspaceId = _ref.workspaceId,
|
|
8624
8802
|
appTitle = _ref.appTitle;
|
|
8625
8803
|
var dispatch = useDispatch();
|
|
8626
8804
|
var _useWorkspaceTranslat = useWorkspaceTranslation(),
|
|
8627
8805
|
t = _useWorkspaceTranslat.t;
|
|
8806
|
+
var _useAuthenticationCon = useAuthenticationContext(),
|
|
8807
|
+
auth = _useAuthenticationCon.auth;
|
|
8808
|
+
var _useDeleteWorkspacePr = useDeleteWorkspacePreset(),
|
|
8809
|
+
deleteWorkspace = _useDeleteWorkspacePr.mutate;
|
|
8810
|
+
var _useCreateWorkspacePr = useCreateWorkspacePreset(),
|
|
8811
|
+
createWorkspace = _useCreateWorkspacePr.mutate;
|
|
8628
8812
|
var title = useSelector(function (store) {
|
|
8629
8813
|
return getSelectedWorkspaceTitle(store);
|
|
8630
8814
|
});
|
|
@@ -8634,15 +8818,58 @@ var WorkspaceTabConnect = function WorkspaceTabConnect(_ref) {
|
|
|
8634
8818
|
var closeWorkspaceActionDialog = React.useCallback(function () {
|
|
8635
8819
|
dispatch(workspaceListActions.closeWorkspaceActionDialogOptions());
|
|
8636
8820
|
}, [dispatch]);
|
|
8637
|
-
var onSubmitForm = function
|
|
8638
|
-
|
|
8639
|
-
|
|
8640
|
-
|
|
8641
|
-
|
|
8642
|
-
|
|
8643
|
-
|
|
8821
|
+
var onSubmitForm = /*#__PURE__*/function () {
|
|
8822
|
+
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(presetAction, presetId, data) {
|
|
8823
|
+
var oldWorkspace;
|
|
8824
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
8825
|
+
while (1) switch (_context.prev = _context.next) {
|
|
8826
|
+
case 0:
|
|
8827
|
+
_context.t0 = presetAction;
|
|
8828
|
+
_context.next = _context.t0 === WorkspacePresetAction.DELETE ? 3 : _context.t0 === WorkspacePresetAction.DELETE_SYSTEM_PRESET ? 3 : _context.t0 === WorkspacePresetAction.DUPLICATE ? 5 : 15;
|
|
8829
|
+
break;
|
|
8830
|
+
case 3:
|
|
8831
|
+
deleteWorkspace({
|
|
8832
|
+
id: presetId
|
|
8833
|
+
});
|
|
8834
|
+
return _context.abrupt("break", 16);
|
|
8835
|
+
case 5:
|
|
8836
|
+
if (!presetId) {
|
|
8837
|
+
_context.next = 11;
|
|
8838
|
+
break;
|
|
8839
|
+
}
|
|
8840
|
+
_context.next = 8;
|
|
8841
|
+
return getWorkspace(presetId, auth);
|
|
8842
|
+
case 8:
|
|
8843
|
+
_context.t1 = _context.sent;
|
|
8844
|
+
_context.next = 12;
|
|
8845
|
+
break;
|
|
8846
|
+
case 11:
|
|
8847
|
+
_context.t1 = emptyWorkspaceBEData;
|
|
8848
|
+
case 12:
|
|
8849
|
+
oldWorkspace = _context.t1;
|
|
8850
|
+
createWorkspace({
|
|
8851
|
+
data: Object.assign({}, oldWorkspace, data),
|
|
8852
|
+
action: presetAction
|
|
8853
|
+
});
|
|
8854
|
+
return _context.abrupt("break", 16);
|
|
8855
|
+
case 15:
|
|
8856
|
+
dispatch(workspaceListActions.submitFormWorkspaceActionDialogOptions({
|
|
8857
|
+
presetAction: presetAction,
|
|
8858
|
+
presetId: presetId,
|
|
8859
|
+
data: data,
|
|
8860
|
+
emptyMapPresetTitle: t('workspace-mappreset-new'),
|
|
8861
|
+
emptyWorkspacePresetTitle: t('workspace-new')
|
|
8862
|
+
}));
|
|
8863
|
+
case 16:
|
|
8864
|
+
case "end":
|
|
8865
|
+
return _context.stop();
|
|
8866
|
+
}
|
|
8867
|
+
}, _callee);
|
|
8644
8868
|
}));
|
|
8645
|
-
|
|
8869
|
+
return function onSubmitForm(_x, _x2, _x3) {
|
|
8870
|
+
return _ref2.apply(this, arguments);
|
|
8871
|
+
};
|
|
8872
|
+
}();
|
|
8646
8873
|
var presetId = typeof dialogDetails === 'object' && dialogDetails.presetId;
|
|
8647
8874
|
var action = typeof dialogDetails === 'object' && dialogDetails.action;
|
|
8648
8875
|
var formValues = typeof dialogDetails === 'object' && dialogDetails.formValues;
|
|
@@ -8830,7 +9057,9 @@ var ViewPresetsFormDialog = function ViewPresetsFormDialog(_ref) {
|
|
|
8830
9057
|
}
|
|
8831
9058
|
}, [isOpen]);
|
|
8832
9059
|
React__default.useEffect(function () {
|
|
8833
|
-
|
|
9060
|
+
if (formValues) {
|
|
9061
|
+
reset(formValues);
|
|
9062
|
+
}
|
|
8834
9063
|
}, [formValues, reset]);
|
|
8835
9064
|
var getConfirmLabel = function getConfirmLabel(action) {
|
|
8836
9065
|
switch (action) {
|
|
@@ -8973,9 +9202,10 @@ var ViewPresetsFormDialog = function ViewPresetsFormDialog(_ref) {
|
|
|
8973
9202
|
description: "",
|
|
8974
9203
|
onClose: onClose,
|
|
8975
9204
|
onSubmit: onSubmit,
|
|
8976
|
-
|
|
9205
|
+
resizableDefaultSize: {
|
|
8977
9206
|
width: '330px'
|
|
8978
9207
|
},
|
|
9208
|
+
isResizable: true,
|
|
8979
9209
|
actions: jsx(ConfirmationButtons, {
|
|
8980
9210
|
onClose: onClose,
|
|
8981
9211
|
cancelLabel: t('workspace-cancel'),
|
|
@@ -9035,18 +9265,17 @@ var ViewPresetsFormDialogConnect = function ViewPresetsFormDialogConnect(_ref) {
|
|
|
9035
9265
|
}));
|
|
9036
9266
|
};
|
|
9037
9267
|
var isOpen = dialogOptions !== undefined;
|
|
9038
|
-
|
|
9039
|
-
return null;
|
|
9040
|
-
}
|
|
9041
|
-
return jsx(ViewPresetsFormDialogWrapper, Object.assign({
|
|
9268
|
+
return jsx(ViewPresetsFormDialogWrapper, {
|
|
9042
9269
|
isOpen: isOpen,
|
|
9043
9270
|
onClose: onClose,
|
|
9044
9271
|
onSuccess: onSuccess,
|
|
9045
|
-
viewComponentType: viewComponentType
|
|
9046
|
-
}, dialogOptions, {
|
|
9272
|
+
viewComponentType: viewComponentType,
|
|
9047
9273
|
formValues: dialogOptions == null ? void 0 : dialogOptions.formValues,
|
|
9274
|
+
action: (dialogOptions == null ? void 0 : dialogOptions.action) || PresetAction.SAVE,
|
|
9275
|
+
title: (dialogOptions == null ? void 0 : dialogOptions.title) || '',
|
|
9276
|
+
viewPresetId: (dialogOptions == null ? void 0 : dialogOptions.viewPresetId) || '',
|
|
9048
9277
|
onReset: onReset
|
|
9049
|
-
})
|
|
9278
|
+
});
|
|
9050
9279
|
};
|
|
9051
9280
|
|
|
9052
9281
|
var WorkspaceDetail = function WorkspaceDetail(_ref) {
|
|
@@ -9166,4 +9395,4 @@ var WorkspaceDetail = function WorkspaceDetail(_ref) {
|
|
|
9166
9395
|
});
|
|
9167
9396
|
};
|
|
9168
9397
|
|
|
9169
|
-
export { ComponentsLookUpWrapper, DemoWrapper, PresetAction, ViewPresetErrorComponent, ViewPresetErrorType, WORKSPACE_NAMESPACE, WorkspaceDetail, WorkspaceErrorType, WorkspaceI18nProvider, WorkspaceModuleProvider, WorkspacePresetAction, WorkspaceTopBar, WorkspaceViewConnect, WorkspaceWrapperProviderWithStore, createBalancedMosaicNode, createCustomEmptyMapWorkspace, defaultAuthConfig, getEmptyMapWorkspace, getWorkspaceRouteUrl, selectors$1 as selectors, viewPresetActions, viewPresetsListReducer, viewPresetsListener, viewPresetsReducer, workspaceActions, workspaceListActions, workspaceListListener, workspaceListReducer, workspaceListener, workspaceMiddlewares, workspaceReducer, workspaceReducersMap, routes as workspaceRoutes, workspaceTranslations };
|
|
9398
|
+
export { ComponentsLookUpWrapper, DemoWrapper, PresetAction, ViewPresetErrorComponent, ViewPresetErrorType, WORKSPACE_NAMESPACE, WorkspaceDetail, WorkspaceErrorType, WorkspaceI18nProvider, WorkspaceModuleProvider, WorkspacePresetAction, WorkspaceStoreWrapper, WorkspaceThemeProvider, WorkspaceTopBar, WorkspaceViewConnect, WorkspaceWrapperProviderWithStore, createBalancedMosaicNode, createCustomEmptyMapWorkspace, defaultAuthConfig, getEmptyMapWorkspace, getWorkspaceRouteUrl, selectors$1 as selectors, viewPresetActions, viewPresetsListReducer, viewPresetsListener, viewPresetsReducer, workspaceActions, workspaceListActions, workspaceListListener, workspaceListReducer, workspaceListener, workspaceMiddlewares, workspaceReducer, workspaceReducersMap, routes as workspaceRoutes, workspaceTranslations };
|