@opengeoweb/workspace 12.1.1 → 12.2.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 +830 -607
- package/package.json +16 -16
- package/src/lib/api/viewpresets-api/api.d.ts +4 -0
- package/src/lib/api/workspace-api/api.d.ts +3 -3
- package/src/lib/api/workspace-api/hooks.d.ts +2 -2
- package/src/lib/components/ViewPresetsFormDialog/ViewPresetsFormDialogConnect.d.ts +2 -2
- package/src/lib/components/WorkspacePresetsFormDialog/WorkspacePresetsForm.d.ts +2 -2
- package/src/lib/components/WorkspacePresetsFormDialog/WorkspacePresetsFormDialog.d.ts +2 -2
- package/src/lib/components/WorkspaceSelectList/WorkspaceSelectList.d.ts +2 -2
- package/src/lib/components/WorkspaceView/WorkspaceTileConnect.d.ts +1 -1
- package/src/lib/hooks/useFetchViewPresets.d.ts +1 -0
- package/src/lib/store/viewPresets/selectors.d.ts +2 -2
- package/src/lib/store/viewPresets/types.d.ts +10 -7
- package/src/lib/store/viewPresets/utils.d.ts +1 -1
- package/src/lib/store/viewPresetsList/selectors.d.ts +1 -1
- package/src/lib/store/viewPresetsList/types.d.ts +3 -2
- package/src/lib/store/workspace/selectors.d.ts +3 -3
- package/src/lib/store/workspace/types.d.ts +19 -9
- package/src/lib/store/workspace/utils.d.ts +2 -2
- package/src/lib/store/workspaceList/listener.d.ts +2 -2
- package/src/lib/store/workspaceList/reducer.d.ts +20 -2
- package/src/lib/store/workspaceList/selectors.d.ts +10 -10
- package/src/lib/store/workspaceList/types.d.ts +11 -10
- package/src/lib/store/workspaceList/utils.d.ts +4 -4
- package/src/lib/utils/api.d.ts +3 -3
- package/src/lib/utils/utils.d.ts +3 -2
package/index.esm.js
CHANGED
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
import { createEntityAdapter, createSlice, createSelector, createListenerMiddleware, combineReducers, configureStore } from '@reduxjs/toolkit';
|
|
2
|
-
import { syncGroupsTypes, syncGroupsActions, layerActions, mapActions, uiActions, genericActions, layerTypes, mapEnums, selectorMemoizationOptions, genericSelectors, mapSelectors, syncGroupsSelectors, routerActions, createViewObjectForNewMap, mapListener, serviceListener, layersListener, syncGroupsListener, openlayersListener,
|
|
2
|
+
import { syncGroupsTypes, syncGroupsActions, layerActions, mapActions, uiActions, genericActions, layerTypes, mapEnums, selectorMemoizationOptions, genericSelectors, mapSelectors, syncGroupsSelectors, routerActions, createViewObjectForNewMap, mapListener, serviceListener, layersListener, syncGroupsListener, openlayersListener, uiReducer, loadingIndicatorReducer, syncGroupsReducer, layerReducer, serviceReducer, mapReducer, loadingIndicatorSelectors, uiTypes, linkComponentTypesConstants, uiSelectors } from '@opengeoweb/store';
|
|
3
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
|
-
import { chunk, cloneDeep, pick, isEmpty, isEqual, isString } from 'lodash';
|
|
5
|
-
import { getLeaves, MosaicContext, getAndAssertNodeAtPathExists,
|
|
4
|
+
import { chunk, cloneDeep, union, pick, isEmpty, isEqual, isString } from 'lodash';
|
|
5
|
+
import { getLeaves, createBalancedTreeFromLeaves, MosaicContext, getAndAssertNodeAtPathExists, MosaicWindow, Mosaic } from 'react-mosaic-component';
|
|
6
6
|
import { timeSeriesActions, TimeSeriesTypes, timeSeriesSelectors, timeSeriesReducer } from '@opengeoweb/timeseries';
|
|
7
|
-
import { publicWarningActions,
|
|
8
|
-
import {
|
|
7
|
+
import { publicWarningActions, warningsTranslations, WARN_NAMESPACE, publicWarningsSelectors } from '@opengeoweb/warnings';
|
|
8
|
+
import { PROJECTION, getAxiosErrorMessage, isAxiosAuthError, isAxiosError as isAxiosError$1, safelyInitI18nForTestsAndStories, sharedTranslations, SHARED_NAMESPACE, ConfirmationServiceProvider, usePrevious, AlertBanner, SystemScope, CustomTooltip, SearchHighlight, ToggleMenu, CustomIconButton, Filter, LastUpdateTime, renderCounter, CustomDialog, ToolContainer, CustomToggleButton, useConfirmationDialog, 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,
|
|
12
|
+
import { ThemeWrapper, lightTheme, SharedPresetsMyUser, SharedPresetsOtherUsers, Delete, Preset, PresetWorkspace, PresetTiles, CloudLoading, CloudIdle, Link, LinkOff, SplitVertical, SplitHorizontal, Expand, UnExpand, Close, WebAssetOff, Exclamation } from '@opengeoweb/theme';
|
|
13
13
|
import { Provider, useDispatch, useSelector, useStore, shallowEqual } from 'react-redux';
|
|
14
|
-
import {
|
|
14
|
+
import { useTranslation, I18nextProvider } from 'react-i18next';
|
|
15
15
|
import { AuthenticationProvider, useAuthenticationContext, GEOWEB_ROLE_PRESETS_ADMIN } from '@opengeoweb/authentication';
|
|
16
16
|
import { QueryClient, QueryClientProvider, useMutation } from '@tanstack/react-query';
|
|
17
17
|
import i18n from 'i18next';
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
20
|
-
import {
|
|
18
|
+
import { webmapReactTranslations, WEBMAP_REACT_NAMESPACE } from '@opengeoweb/webmap-react';
|
|
19
|
+
import { coreTranslations, CORE_NAMESPACE } from '@opengeoweb/core';
|
|
20
|
+
import { formFieldsTranslations, FORM_FIELDS_NAMESPACE, ReactHookFormTextField, ReactHookFormHiddenInput, ReactHookFormProvider, defaultFormOptions } from '@opengeoweb/form-fields';
|
|
21
21
|
import * as React from 'react';
|
|
22
22
|
import React__default, { useCallback, useEffect } from 'react';
|
|
23
|
-
import {
|
|
23
|
+
import { LinearProgress, Typography, styled, ListItemIcon, ListItem, ListItemButton, ListItemText, Grid2, Box, Menu, ListSubheader, MenuItem, useTheme, List, Checkbox, 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';
|
|
@@ -78,8 +78,11 @@ var en = {
|
|
|
78
78
|
"workspace-list-success-edit": "Workspace \"{{TITLE}}\" successfully edited",
|
|
79
79
|
"workspace-list-success-save": "Workspace \"{{TITLE}}\" successfully saved",
|
|
80
80
|
"workspace-list-success-reset": "Workspace \"{{TITLE}}\" has been reset succesfully",
|
|
81
|
+
"workspace-list-success-share": "Workspace \"{{TITLE}}\" succesfully shared",
|
|
82
|
+
"workspace-list-success-unshare": "Workspace \"{{TITLE}}\" succesfully unshared",
|
|
81
83
|
"workspace-save-error": "Failed to save workspace \"{{TITLE}}\"",
|
|
82
84
|
"workspace-error-generic": "Something went wrong, try again",
|
|
85
|
+
"workspace-error-auth": "Error related to authentication",
|
|
83
86
|
"workspace-viewpreset-success-delete": "Map preset \"{{TITLE}}\" successfully deleted",
|
|
84
87
|
"workspace-viewpreset-success-save-as": "New map preset \"{{TITLE}}\" successfully saved",
|
|
85
88
|
"workspace-viewpreset-success-edit": "Map preset \"{{TITLE}}\" successfully edited",
|
|
@@ -105,7 +108,9 @@ var en = {
|
|
|
105
108
|
"workspace-link-location-header": "Location",
|
|
106
109
|
"workspace-link": "Link",
|
|
107
110
|
"workspace-dialog-confirm-reset-view-message": "The view will be reset and all changes will be lost. Are you sure you want to continue?",
|
|
108
|
-
"workspace-viewpreset-success-reset": "View preset \"{{TITLE}}\" has been reset succesfully"
|
|
111
|
+
"workspace-viewpreset-success-reset": "View preset \"{{TITLE}}\" has been reset succesfully",
|
|
112
|
+
"workspace-viewpreset-success-share": "View preset \"{{TITLE}}\" has been successfully shared",
|
|
113
|
+
"workspace-viewpreset-success-unshare": "View preset \"{{TITLE}}\" has been successfully unshared"
|
|
109
114
|
};
|
|
110
115
|
var fi = {
|
|
111
116
|
"workspace-menu": "Workspace menu",
|
|
@@ -157,9 +162,11 @@ var fi = {
|
|
|
157
162
|
"workspace-list-success-duplicate": "Workspace \"{{TITLE}}\" tallennettu onnistuneesti",
|
|
158
163
|
"workspace-list-success-edit": "Workspacea \"{{TITLE}}\" muokattu onnistuneesti",
|
|
159
164
|
"workspace-list-success-reset": "ei käännetty",
|
|
165
|
+
"workspace-list-success-share": "ei kannetty",
|
|
160
166
|
"workspace-list-success-save": "Workspace \"{{TITLE}}\" tallennettu onnistuneesti",
|
|
161
167
|
"workspace-save-error": "Workspacen \"{{TITLE}}\" tallentaminen epäonnistui",
|
|
162
168
|
"workspace-error-generic": "Jotain meni mönkään. Yritä uudelleen.",
|
|
169
|
+
"workspace-error-auth": "ei kaannetty",
|
|
163
170
|
"workspace-viewpreset-success-delete": "Map preset \"{{TITLE}}\" poistettu onnistuneesti",
|
|
164
171
|
"workspace-viewpreset-success-save-as": "Uusi map preset \"{{TITLE}}\" tallennettu onnistuneesti",
|
|
165
172
|
"workspace-viewpreset-success-edit": "Map presettiä \"{{TITLE}}\" muokattu onnistuneesti",
|
|
@@ -183,7 +190,9 @@ var fi = {
|
|
|
183
190
|
"workspace-link-location-header": "Sijainti",
|
|
184
191
|
"workspace-link": "Link",
|
|
185
192
|
"workspace-dialog-confirm-reset-view-message": "ei käännetty",
|
|
186
|
-
"workspace-viewpreset-success-reset": "ei käännetty"
|
|
193
|
+
"workspace-viewpreset-success-reset": "ei käännetty",
|
|
194
|
+
"workspace-viewpreset-success-share": "ei käännetty",
|
|
195
|
+
"workspace-viewpreset-success-unshare": "ei käännetty"
|
|
187
196
|
};
|
|
188
197
|
var no = {
|
|
189
198
|
"workspace-menu": "Arbeidsflater",
|
|
@@ -197,7 +206,7 @@ var no = {
|
|
|
197
206
|
"workspace-save-as": "Lagre som",
|
|
198
207
|
"workspace-edit": "Endre (navn og sammendrag)",
|
|
199
208
|
"workspace-share": "Del",
|
|
200
|
-
"workspace-stop-share": "
|
|
209
|
+
"workspace-stop-share": "Stopp deling",
|
|
201
210
|
"geoweb-welcome": "Velkommen til GeoWeb. Åpne et forhåndsvalg for å åpne nye vinduer",
|
|
202
211
|
"workspace-modified-new": "modifisert",
|
|
203
212
|
"workspace-modified-existing": "ikke lagret",
|
|
@@ -234,10 +243,13 @@ var no = {
|
|
|
234
243
|
"workspace-list-success-delete": "Arbeidsflaten \"{{TITLE}}\" er slettet",
|
|
235
244
|
"workspace-list-success-duplicate": "Arbeidsflaten \"{{TITLE}}\" er lagret",
|
|
236
245
|
"workspace-list-success-edit": "Arbeidsflaten \"{{TITLE}}\" er endret",
|
|
237
|
-
"workspace-list-success-reset": "
|
|
246
|
+
"workspace-list-success-reset": "Arbeidsflaten \"{{TITLE}}\" er tilbakestilt",
|
|
247
|
+
"workspace-list-success-share": "Arbeidsflaten \"{{TITLE}}\" er delt",
|
|
248
|
+
"workspace-list-success-unshare": "Arbeidsflaten \"{{TITLE}}\" deles ikke lenger",
|
|
238
249
|
"workspace-list-success-save": "Arbeidsflaten \"{{TITLE}}\" er lagret",
|
|
239
250
|
"workspace-save-error": "Feilet i å lagre arbeidsflaten \"{{TITLE}}\"",
|
|
240
251
|
"workspace-error-generic": "Noe feilet, prøv igjen",
|
|
252
|
+
"workspace-error-auth": "Autentiseringsfeil",
|
|
241
253
|
"workspace-viewpreset-success-delete": "Snarvei \"{{TITLE}}\" er slettet",
|
|
242
254
|
"workspace-viewpreset-success-save-as": "Ny snarvei \"{{TITLE}}\" er lagret",
|
|
243
255
|
"workspace-viewpreset-success-edit": "Snarvei \"{{TITLE}}\" er endret",
|
|
@@ -260,8 +272,10 @@ var no = {
|
|
|
260
272
|
"workspace-dialog-confirm-delete-user": "Arbeidsflaten blir slettet, men alle vinduer som er brukt vil forbli intakte.",
|
|
261
273
|
"workspace-link-location-header": "Lokasjon",
|
|
262
274
|
"workspace-link": "Link",
|
|
263
|
-
"workspace-dialog-confirm-reset-view-message": "
|
|
264
|
-
"workspace-viewpreset-success-reset": "
|
|
275
|
+
"workspace-dialog-confirm-reset-view-message": "Endringer i dette vinduet blir tapt. Er du sikker på at du vil fortsette?",
|
|
276
|
+
"workspace-viewpreset-success-reset": "Vinduet er tilbakestilt",
|
|
277
|
+
"workspace-viewpreset-success-share": "Vinduet \"{{TITLE}}\" har blitt delt",
|
|
278
|
+
"workspace-viewpreset-success-unshare": "Vinduet \"{{TITLE}}\" deles ikke lenger"
|
|
265
279
|
};
|
|
266
280
|
var nl = {
|
|
267
281
|
"workspace-menu": "Workspace menu",
|
|
@@ -313,9 +327,11 @@ var nl = {
|
|
|
313
327
|
"workspace-list-success-duplicate": "Workspace \"{{TITLE}}\" succesvol opgeslagen",
|
|
314
328
|
"workspace-list-success-edit": "Workspace \"{{TITLE}}\" succesvol aangepast",
|
|
315
329
|
"workspace-list-success-reset": "Workspace\"{{TITLE}}\" succesvol hersteld naar origineel",
|
|
330
|
+
"workspace-list-success-share": "niet vertaald",
|
|
316
331
|
"workspace-list-success-save": "Workspace \"{{TITLE}}\" succesvol opgeslagen",
|
|
317
332
|
"workspace-save-error": "Workspace opslaan \"{{TITLE}}\" mislukt",
|
|
318
333
|
"workspace-error-generic": "Er is iets mis gegaan, probeer het opnieuw",
|
|
334
|
+
"workspace-error-auth": "niet vertaald",
|
|
319
335
|
"workspace-viewpreset-success-delete": "Map preset \"{{TITLE}}\" succesvol verwijderd",
|
|
320
336
|
"workspace-viewpreset-success-save-as": "Nieuwe map preset \"{{TITLE}}\" succesvol opgeslagen",
|
|
321
337
|
"workspace-viewpreset-success-edit": "Map preset \"{{TITLE}}\" succesvol aangepast",
|
|
@@ -342,7 +358,9 @@ var nl = {
|
|
|
342
358
|
"workspace-link-location-header": "Locatie",
|
|
343
359
|
"workspace-link": "Link",
|
|
344
360
|
"workspace-dialog-confirm-reset-view-message": "De viewpreset zal worden hersteld en alle aanpassing zullen worden verwijderd. Weet je zeker dat je door wilt gaan?",
|
|
345
|
-
"workspace-viewpreset-success-reset": "Viewpreset \"{{TITLE}}\" succesvol hersteld naar origineel"
|
|
361
|
+
"workspace-viewpreset-success-reset": "Viewpreset \"{{TITLE}}\" succesvol hersteld naar origineel",
|
|
362
|
+
"workspace-viewpreset-success-share": "niet vertaald",
|
|
363
|
+
"workspace-viewpreset-success-unshare": "niet vertaald"
|
|
346
364
|
};
|
|
347
365
|
var workspaceTranslations = {
|
|
348
366
|
en: en,
|
|
@@ -383,7 +401,7 @@ function _objectWithoutPropertiesLoose(r, e) {
|
|
|
383
401
|
if (null == r) return {};
|
|
384
402
|
var t = {};
|
|
385
403
|
for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
|
|
386
|
-
if (e.indexOf(n)
|
|
404
|
+
if (-1 !== e.indexOf(n)) continue;
|
|
387
405
|
t[n] = r[n];
|
|
388
406
|
}
|
|
389
407
|
return t;
|
|
@@ -406,9 +424,9 @@ function _regeneratorRuntime() {
|
|
|
406
424
|
function define(t, e, r) {
|
|
407
425
|
return Object.defineProperty(t, e, {
|
|
408
426
|
value: r,
|
|
409
|
-
enumerable:
|
|
410
|
-
configurable:
|
|
411
|
-
writable:
|
|
427
|
+
enumerable: true,
|
|
428
|
+
configurable: true,
|
|
429
|
+
writable: true
|
|
412
430
|
}), t[e];
|
|
413
431
|
}
|
|
414
432
|
try {
|
|
@@ -501,7 +519,7 @@ function _regeneratorRuntime() {
|
|
|
501
519
|
if ("throw" === i) throw a;
|
|
502
520
|
return {
|
|
503
521
|
value: t,
|
|
504
|
-
done:
|
|
522
|
+
done: true
|
|
505
523
|
};
|
|
506
524
|
}
|
|
507
525
|
for (n.method = i, n.arg = a;;) {
|
|
@@ -552,7 +570,7 @@ function _regeneratorRuntime() {
|
|
|
552
570
|
function Context(t) {
|
|
553
571
|
this.tryEntries = [{
|
|
554
572
|
tryLoc: "root"
|
|
555
|
-
}], t.forEach(pushTryEntry, this), this.reset(
|
|
573
|
+
}], t.forEach(pushTryEntry, this), this.reset(true);
|
|
556
574
|
}
|
|
557
575
|
function values(e) {
|
|
558
576
|
if (e || "" === e) {
|
|
@@ -562,8 +580,8 @@ function _regeneratorRuntime() {
|
|
|
562
580
|
if (!isNaN(e.length)) {
|
|
563
581
|
var o = -1,
|
|
564
582
|
i = function next() {
|
|
565
|
-
for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done =
|
|
566
|
-
return next.value = t, next.done =
|
|
583
|
+
for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = false, next;
|
|
584
|
+
return next.value = t, next.done = true, next;
|
|
567
585
|
};
|
|
568
586
|
return i.next = i;
|
|
569
587
|
}
|
|
@@ -572,10 +590,10 @@ function _regeneratorRuntime() {
|
|
|
572
590
|
}
|
|
573
591
|
return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", {
|
|
574
592
|
value: GeneratorFunctionPrototype,
|
|
575
|
-
configurable:
|
|
593
|
+
configurable: true
|
|
576
594
|
}), o(GeneratorFunctionPrototype, "constructor", {
|
|
577
595
|
value: GeneratorFunction,
|
|
578
|
-
configurable:
|
|
596
|
+
configurable: true
|
|
579
597
|
}), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) {
|
|
580
598
|
var e = "function" == typeof t && t.constructor;
|
|
581
599
|
return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name));
|
|
@@ -604,17 +622,17 @@ function _regeneratorRuntime() {
|
|
|
604
622
|
return r.reverse(), function next() {
|
|
605
623
|
for (; r.length;) {
|
|
606
624
|
var t = r.pop();
|
|
607
|
-
if (t in e) return next.value = t, next.done =
|
|
625
|
+
if (t in e) return next.value = t, next.done = false, next;
|
|
608
626
|
}
|
|
609
|
-
return next.done =
|
|
627
|
+
return next.done = true, next;
|
|
610
628
|
};
|
|
611
629
|
}, e.values = values, Context.prototype = {
|
|
612
630
|
constructor: Context,
|
|
613
631
|
reset: function (e) {
|
|
614
|
-
if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done =
|
|
632
|
+
if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = false, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);
|
|
615
633
|
},
|
|
616
634
|
stop: function () {
|
|
617
|
-
this.done =
|
|
635
|
+
this.done = true;
|
|
618
636
|
var t = this.tryEntries[0].completion;
|
|
619
637
|
if ("throw" === t.type) throw t.arg;
|
|
620
638
|
return this.rval;
|
|
@@ -633,10 +651,10 @@ function _regeneratorRuntime() {
|
|
|
633
651
|
var c = n.call(i, "catchLoc"),
|
|
634
652
|
u = n.call(i, "finallyLoc");
|
|
635
653
|
if (c && u) {
|
|
636
|
-
if (this.prev < i.catchLoc) return handle(i.catchLoc,
|
|
654
|
+
if (this.prev < i.catchLoc) return handle(i.catchLoc, true);
|
|
637
655
|
if (this.prev < i.finallyLoc) return handle(i.finallyLoc);
|
|
638
656
|
} else if (c) {
|
|
639
|
-
if (this.prev < i.catchLoc) return handle(i.catchLoc,
|
|
657
|
+
if (this.prev < i.catchLoc) return handle(i.catchLoc, true);
|
|
640
658
|
} else {
|
|
641
659
|
if (!u) throw Error("try statement without catch or finally");
|
|
642
660
|
if (this.prev < i.finallyLoc) return handle(i.finallyLoc);
|
|
@@ -956,22 +974,25 @@ var PresetFilterType;
|
|
|
956
974
|
* Copyright 2023 - Finnish Meteorological Institute (FMI)
|
|
957
975
|
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
958
976
|
* */
|
|
959
|
-
var
|
|
977
|
+
var personalFilterState = {
|
|
960
978
|
label: 'shared-filter-my-presets',
|
|
961
979
|
id: PresetFilterType.personal,
|
|
962
980
|
isSelected: true,
|
|
963
981
|
isDisabled: false
|
|
964
|
-
}
|
|
982
|
+
};
|
|
983
|
+
var systemFilterState = {
|
|
965
984
|
label: 'shared-filter-system-presets',
|
|
966
985
|
id: PresetFilterType.system,
|
|
967
986
|
isSelected: true,
|
|
968
987
|
isDisabled: false
|
|
969
|
-
}
|
|
988
|
+
};
|
|
989
|
+
var sharedFilterState = {
|
|
970
990
|
label: 'shared-filter-shared-presets',
|
|
971
991
|
id: PresetFilterType.shared,
|
|
972
992
|
isSelected: true,
|
|
973
993
|
isDisabled: false
|
|
974
|
-
}
|
|
994
|
+
};
|
|
995
|
+
var defaultPresetFilterState = [personalFilterState, systemFilterState, sharedFilterState];
|
|
975
996
|
var workspaceListAdapter = createEntityAdapter();
|
|
976
997
|
var initialState$3 = Object.assign({
|
|
977
998
|
isFetching: false,
|
|
@@ -979,7 +1000,7 @@ var initialState$3 = Object.assign({
|
|
|
979
1000
|
isWorkspaceListDialogOpen: false
|
|
980
1001
|
}, workspaceListAdapter.getInitialState(), {
|
|
981
1002
|
searchQuery: '',
|
|
982
|
-
workspaceListFilters:
|
|
1003
|
+
workspaceListFilters: defaultPresetFilterState
|
|
983
1004
|
});
|
|
984
1005
|
var slice$3 = createSlice({
|
|
985
1006
|
initialState: initialState$3,
|
|
@@ -1039,8 +1060,13 @@ var slice$3 = createSlice({
|
|
|
1039
1060
|
},
|
|
1040
1061
|
onErrorWorkspacePresetAction: function onErrorWorkspacePresetAction(draft, action) {
|
|
1041
1062
|
var error = action.payload.error;
|
|
1042
|
-
draft.workspaceActionDialog
|
|
1043
|
-
|
|
1063
|
+
if (draft.workspaceActionDialog) {
|
|
1064
|
+
draft.workspaceActionDialog.isFetching = false;
|
|
1065
|
+
draft.workspaceActionDialog.error = error;
|
|
1066
|
+
} else {
|
|
1067
|
+
// fallback if dialog isn't open (e.g. SHARE action)
|
|
1068
|
+
draft.error = error;
|
|
1069
|
+
}
|
|
1044
1070
|
},
|
|
1045
1071
|
toggleWorkspaceDialog: function toggleWorkspaceDialog(draft, action) {
|
|
1046
1072
|
var isListDialogOpen = action.payload.isWorkspaceListDialogOpen;
|
|
@@ -1144,21 +1170,19 @@ var PresetAction;
|
|
|
1144
1170
|
* */
|
|
1145
1171
|
var viewPresetsListFilterOptions = [{
|
|
1146
1172
|
label: 'shared-filter-my-presets',
|
|
1147
|
-
id:
|
|
1148
|
-
type: 'scope',
|
|
1173
|
+
id: PresetFilterType.personal,
|
|
1149
1174
|
isSelected: true,
|
|
1150
1175
|
isDisabled: false
|
|
1151
1176
|
}, {
|
|
1152
1177
|
label: 'shared-filter-system-presets',
|
|
1153
|
-
id:
|
|
1154
|
-
type: 'scope',
|
|
1178
|
+
id: PresetFilterType.system,
|
|
1155
1179
|
isSelected: true,
|
|
1156
1180
|
isDisabled: false
|
|
1157
1181
|
}, {
|
|
1158
1182
|
label: 'shared-filter-shared-presets',
|
|
1159
|
-
id:
|
|
1183
|
+
id: PresetFilterType.shared,
|
|
1160
1184
|
isSelected: true,
|
|
1161
|
-
isDisabled:
|
|
1185
|
+
isDisabled: false
|
|
1162
1186
|
}];
|
|
1163
1187
|
var viewPresetsAdapter = createEntityAdapter({
|
|
1164
1188
|
// we use panelId as id (panelId can be mapId or viewId)
|
|
@@ -1547,28 +1571,34 @@ var setDocumentTitle = function setDocumentTitle(workspaceTitle, appTitle) {
|
|
|
1547
1571
|
var fallbackAppTitle = appTitle || 'GeoWeb';
|
|
1548
1572
|
document.title = workspaceTitle ? workspaceTitle + " - " + fallbackAppTitle : fallbackAppTitle;
|
|
1549
1573
|
};
|
|
1550
|
-
var
|
|
1574
|
+
var filterAndSortPresets = function filterAndSortPresets(presets, selectedFilters, username) {
|
|
1551
1575
|
var isAllSelected = selectedFilters.every(function (filter) {
|
|
1552
1576
|
return filter.isSelected;
|
|
1553
1577
|
});
|
|
1554
|
-
if (isAllSelected) {
|
|
1555
|
-
return workspacePresets;
|
|
1556
|
-
}
|
|
1557
1578
|
var selectedIds = selectedFilters.filter(function (filter) {
|
|
1558
1579
|
return filter.isSelected;
|
|
1559
1580
|
}).map(function (filter) {
|
|
1560
1581
|
return filter.id;
|
|
1561
1582
|
});
|
|
1562
|
-
|
|
1563
|
-
return (
|
|
1564
|
-
|
|
1565
|
-
|
|
1566
|
-
|
|
1567
|
-
|
|
1568
|
-
|
|
1569
|
-
|
|
1570
|
-
|
|
1583
|
+
var filtered = isAllSelected ? presets : presets.filter(function (preset) {
|
|
1584
|
+
return selectedIds.includes(PresetFilterType.system) && preset.scope === 'system' || selectedIds.includes(PresetFilterType.personal) && preset.scope === 'user' && preset.username === username || selectedIds.includes(PresetFilterType.shared) && preset.username !== username && preset.is_shared;
|
|
1585
|
+
});
|
|
1586
|
+
var systemPresets = filtered.filter(function (preset) {
|
|
1587
|
+
return preset.scope === 'system';
|
|
1588
|
+
}).sort(function (a, b) {
|
|
1589
|
+
return a.title.localeCompare(b.title);
|
|
1590
|
+
});
|
|
1591
|
+
var personalPresets = filtered.filter(function (preset) {
|
|
1592
|
+
return preset.scope === 'user' && preset.username === username;
|
|
1593
|
+
}).sort(function (a, b) {
|
|
1594
|
+
return a.title.localeCompare(b.title);
|
|
1595
|
+
});
|
|
1596
|
+
var sharedPresets = filtered.filter(function (preset) {
|
|
1597
|
+
return preset.scope === 'user' && preset.username !== username;
|
|
1598
|
+
}).sort(function (a, b) {
|
|
1599
|
+
return a.title.localeCompare(b.title);
|
|
1571
1600
|
});
|
|
1601
|
+
return [].concat(systemPresets, personalPresets, sharedPresets);
|
|
1572
1602
|
};
|
|
1573
1603
|
|
|
1574
1604
|
/* *
|
|
@@ -1588,7 +1618,7 @@ var filterWorkspacePresets = function filterWorkspacePresets(workspacePresets, s
|
|
|
1588
1618
|
* Copyright 2023 - Finnish Meteorological Institute (FMI)
|
|
1589
1619
|
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
1590
1620
|
* */
|
|
1591
|
-
var getSnackbarMessage$1 = function getSnackbarMessage(action, title) {
|
|
1621
|
+
var getSnackbarMessage$1 = function getSnackbarMessage(action, title, is_shared) {
|
|
1592
1622
|
// Trim and add quotes
|
|
1593
1623
|
var trimmedTitle = "" + title.trim();
|
|
1594
1624
|
switch (action) {
|
|
@@ -1632,6 +1662,14 @@ var getSnackbarMessage$1 = function getSnackbarMessage(action, title) {
|
|
|
1632
1662
|
TITLE: trimmedTitle
|
|
1633
1663
|
}
|
|
1634
1664
|
};
|
|
1665
|
+
case WorkspacePresetAction.SHARE:
|
|
1666
|
+
return {
|
|
1667
|
+
type: snackbarTypes.SnackbarMessageType.TRANSLATABLE_MESSAGE,
|
|
1668
|
+
key: is_shared ? 'workspace-list-success-unshare' : 'workspace-list-success-share',
|
|
1669
|
+
params: {
|
|
1670
|
+
TITLE: trimmedTitle
|
|
1671
|
+
}
|
|
1672
|
+
};
|
|
1635
1673
|
default:
|
|
1636
1674
|
return {
|
|
1637
1675
|
type: snackbarTypes.SnackbarMessageType.TRANSLATABLE_MESSAGE,
|
|
@@ -1728,17 +1766,13 @@ var createCustomEmptyMapWorkspace = function createCustomEmptyMapWorkspace(empty
|
|
|
1728
1766
|
};
|
|
1729
1767
|
var constructFilterParams = function constructFilterParams(filters, searchQuery) {
|
|
1730
1768
|
// get filters
|
|
1731
|
-
var
|
|
1732
|
-
|
|
1733
|
-
|
|
1734
|
-
|
|
1735
|
-
|
|
1736
|
-
|
|
1737
|
-
|
|
1738
|
-
}, {
|
|
1739
|
-
scope: []
|
|
1740
|
-
}),
|
|
1741
|
-
scope = _filters$reduce.scope;
|
|
1769
|
+
var scope = filters.reduce(function (scopeList, filter) {
|
|
1770
|
+
if (filter.isSelected) {
|
|
1771
|
+
var _scope = filter.id === PresetFilterType.system ? 'system' : 'user';
|
|
1772
|
+
return union(scopeList, [_scope]);
|
|
1773
|
+
}
|
|
1774
|
+
return scopeList;
|
|
1775
|
+
}, []);
|
|
1742
1776
|
// get search
|
|
1743
1777
|
var search = getCleanSearchQuery(searchQuery);
|
|
1744
1778
|
return Object.assign({}, scope.length && {
|
|
@@ -2113,9 +2147,7 @@ var getViewPresetListSearchQueryForView = createSelector(getViewPresetById, func
|
|
|
2113
2147
|
// To ensure you retrieve the view preset list specific for your view (incl and excl filters), use getFilteredViewPresetListForView
|
|
2114
2148
|
var getViewPresetListFilterResultsForView = createSelector(getViewPresetById, function (viewPresetById) {
|
|
2115
2149
|
var filteredResults = (viewPresetById == null ? void 0 : viewPresetById.filterResults) || {
|
|
2116
|
-
entities: {}
|
|
2117
|
-
ids: []
|
|
2118
|
-
};
|
|
2150
|
+
entities: {}};
|
|
2119
2151
|
return Object.values(filteredResults.entities);
|
|
2120
2152
|
}, selectorMemoizationOptions);
|
|
2121
2153
|
|
|
@@ -2136,7 +2168,7 @@ var getViewPresetListFilterResultsForView = createSelector(getViewPresetById, fu
|
|
|
2136
2168
|
* Copyright 2023 - Finnish Meteorological Institute (FMI)
|
|
2137
2169
|
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
2138
2170
|
* */
|
|
2139
|
-
var getSnackbarMessage = function getSnackbarMessage(action, title) {
|
|
2171
|
+
var getSnackbarMessage = function getSnackbarMessage(action, title, is_shared) {
|
|
2140
2172
|
// Trim and add quotes
|
|
2141
2173
|
var trimmedTitle = title.trim();
|
|
2142
2174
|
switch (action) {
|
|
@@ -2172,6 +2204,14 @@ var getSnackbarMessage = function getSnackbarMessage(action, title) {
|
|
|
2172
2204
|
TITLE: trimmedTitle
|
|
2173
2205
|
}
|
|
2174
2206
|
};
|
|
2207
|
+
case PresetAction.SHARE:
|
|
2208
|
+
return {
|
|
2209
|
+
type: snackbarTypes.SnackbarMessageType.TRANSLATABLE_MESSAGE,
|
|
2210
|
+
key: is_shared ? 'workspace-viewpreset-success-unshare' : 'workspace-viewpreset-success-share',
|
|
2211
|
+
params: {
|
|
2212
|
+
TITLE: trimmedTitle
|
|
2213
|
+
}
|
|
2214
|
+
};
|
|
2175
2215
|
default:
|
|
2176
2216
|
return {
|
|
2177
2217
|
key: 'workspace-viewpreset-success-save',
|
|
@@ -4472,7 +4512,8 @@ var workspacePresetsList = [
|
|
|
4472
4512
|
date: "2022-06-01T12:34:27.787184",
|
|
4473
4513
|
scope: "user",
|
|
4474
4514
|
abstract: "Some abstract",
|
|
4475
|
-
viewType: "singleWindow"
|
|
4515
|
+
viewType: "singleWindow",
|
|
4516
|
+
username: "user.name"
|
|
4476
4517
|
},
|
|
4477
4518
|
{
|
|
4478
4519
|
id: "screenConfigD",
|
|
@@ -5441,15 +5482,16 @@ viewPresetsListener.startListening({
|
|
|
5441
5482
|
actionCreator: viewPresetActions.onSuccessViewPresetAction,
|
|
5442
5483
|
effect: function () {
|
|
5443
5484
|
var _effect3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(_ref7, listenerApi) {
|
|
5444
|
-
var payload, action, viewPresetId, title, panelId, activeMapPresetId, hasChanges, viewPresetFilters, viewPresetSearchQuery;
|
|
5485
|
+
var payload, action, viewPresetId, title, panelId, is_shared, activeMapPresetId, hasChanges, viewPresetFilters, viewPresetSearchQuery;
|
|
5445
5486
|
return _regeneratorRuntime().wrap(function _callee5$(_context5) {
|
|
5446
5487
|
while (1) switch (_context5.prev = _context5.next) {
|
|
5447
5488
|
case 0:
|
|
5448
5489
|
payload = _ref7.payload;
|
|
5449
5490
|
listenerApi.cancelActiveListeners();
|
|
5450
|
-
action = payload.action, viewPresetId = payload.viewPresetId, title = payload.title, panelId = payload.panelId;
|
|
5491
|
+
action = payload.action, viewPresetId = payload.viewPresetId, title = payload.title, panelId = payload.panelId; // eslint-disable-next-line @typescript-eslint/naming-convention
|
|
5492
|
+
is_shared = 'is_shared' in payload ? payload.is_shared : undefined;
|
|
5451
5493
|
try {
|
|
5452
|
-
listenerApi.dispatch(snackbarActions.openSnackbar(getSnackbarMessage(action, title)));
|
|
5494
|
+
listenerApi.dispatch(snackbarActions.openSnackbar(getSnackbarMessage(action, title, is_shared)));
|
|
5453
5495
|
activeMapPresetId = getViewPresetActiveId(listenerApi.getState(), panelId);
|
|
5454
5496
|
hasChanges = false; // if active preset has been deleted, select the empty new preset
|
|
5455
5497
|
if (action === PresetAction.DELETE && viewPresetId === activeMapPresetId) {
|
|
@@ -5481,7 +5523,7 @@ viewPresetsListener.startListening({
|
|
|
5481
5523
|
} catch (error) {
|
|
5482
5524
|
// TODO: use error handling of mapPreset https://gitlab.com/opengeoweb/opengeoweb/-/issues/3043
|
|
5483
5525
|
}
|
|
5484
|
-
case
|
|
5526
|
+
case 5:
|
|
5485
5527
|
case "end":
|
|
5486
5528
|
return _context5.stop();
|
|
5487
5529
|
}
|
|
@@ -5562,15 +5604,16 @@ workspaceListListener.startListening({
|
|
|
5562
5604
|
effect: function () {
|
|
5563
5605
|
var _effect2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(_ref2, listenerApi) {
|
|
5564
5606
|
var _listenerApi$getOrigi;
|
|
5565
|
-
var payload, currentWorkspaceId, action, workspaceId, title, workspaceFilters, searchQuery;
|
|
5607
|
+
var payload, currentWorkspaceId, action, workspaceId, title, is_shared, workspaceFilters, searchQuery;
|
|
5566
5608
|
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
5567
5609
|
while (1) switch (_context2.prev = _context2.next) {
|
|
5568
5610
|
case 0:
|
|
5569
5611
|
payload = _ref2.payload;
|
|
5570
5612
|
listenerApi.cancelActiveListeners();
|
|
5571
5613
|
currentWorkspaceId = (_listenerApi$getOrigi = listenerApi.getOriginalState().workspace) == null ? void 0 : _listenerApi$getOrigi.id;
|
|
5572
|
-
action = payload.action, workspaceId = payload.workspaceId, title = payload.title;
|
|
5573
|
-
|
|
5614
|
+
action = payload.action, workspaceId = payload.workspaceId, title = payload.title; // eslint-disable-next-line @typescript-eslint/naming-convention
|
|
5615
|
+
is_shared = 'is_shared' in payload ? payload.is_shared : undefined;
|
|
5616
|
+
listenerApi.dispatch(snackbarActions.openSnackbar(getSnackbarMessage$1(action, title, is_shared)));
|
|
5574
5617
|
// if active workspace has been deleted, empty out url
|
|
5575
5618
|
if ((action === WorkspacePresetAction.DELETE || action === WorkspacePresetAction.DELETE_SYSTEM_PRESET) && currentWorkspaceId && workspaceId === currentWorkspaceId) {
|
|
5576
5619
|
listenerApi.dispatch(routerActions.navigateToUrl({
|
|
@@ -5587,7 +5630,7 @@ workspaceListListener.startListening({
|
|
|
5587
5630
|
workspaceFilters = getWorkspaceListFilters(listenerApi.getState());
|
|
5588
5631
|
searchQuery = getWorkspaceListSearchQuery(listenerApi.getState());
|
|
5589
5632
|
listenerApi.dispatch(workspaceListActions.fetchWorkspaceList(constructFilterParams(workspaceFilters, searchQuery)));
|
|
5590
|
-
case
|
|
5633
|
+
case 11:
|
|
5591
5634
|
case "end":
|
|
5592
5635
|
return _context2.stop();
|
|
5593
5636
|
}
|
|
@@ -5603,7 +5646,7 @@ workspaceListListener.startListening({
|
|
|
5603
5646
|
actionCreator: workspaceListActions.submitFormWorkspaceActionDialogOptions,
|
|
5604
5647
|
effect: function () {
|
|
5605
5648
|
var _effect3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(_ref3, listenerApi) {
|
|
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;
|
|
5649
|
+
var payload, workspaceApi, presetId, presetAction, data, emptyMapPresetTitle, emptyWorkspacePresetTitle, scope, _yield$workspaceApi$g2, originalData, workspaceDataNewTitle, isSaveWorkspaceAction, isSaveAsWorkspaceAction, hasWorkspaceAlreadyBeenSaved, workspaceId, viewPresetResults, hasError, _hasError$message, errorMessage, workspaceData, newWorkspace, message, category;
|
|
5607
5650
|
return _regeneratorRuntime().wrap(function _callee4$(_context4) {
|
|
5608
5651
|
while (1) switch (_context4.prev = _context4.next) {
|
|
5609
5652
|
case 0:
|
|
@@ -5645,7 +5688,7 @@ workspaceListListener.startListening({
|
|
|
5645
5688
|
isSaveWorkspaceAction = presetAction === WorkspacePresetAction.SAVE_SYSTEM_PRESET || presetAction === WorkspacePresetAction.SAVE;
|
|
5646
5689
|
isSaveAsWorkspaceAction = presetAction === WorkspacePresetAction.SAVE_SYSTEM_PRESET_AS || presetAction === WorkspacePresetAction.SAVE_AS;
|
|
5647
5690
|
if (!(isSaveWorkspaceAction || isSaveAsWorkspaceAction)) {
|
|
5648
|
-
_context4.next =
|
|
5691
|
+
_context4.next = 44;
|
|
5649
5692
|
break;
|
|
5650
5693
|
}
|
|
5651
5694
|
hasWorkspaceAlreadyBeenSaved = getWorkspaceDialogIsSaved(listenerApi.getState());
|
|
@@ -5730,15 +5773,20 @@ workspaceListListener.startListening({
|
|
|
5730
5773
|
return view.message;
|
|
5731
5774
|
});
|
|
5732
5775
|
if (!hasError) {
|
|
5733
|
-
_context4.next =
|
|
5776
|
+
_context4.next = 38;
|
|
5734
5777
|
break;
|
|
5735
5778
|
}
|
|
5736
5779
|
// maybe we can use another action, but this resets fetching of the form
|
|
5780
|
+
errorMessage = (_hasError$message = hasError == null ? void 0 : hasError.message) != null ? _hasError$message : 'An error occurred';
|
|
5737
5781
|
listenerApi.dispatch(workspaceListActions.onErrorWorkspacePresetAction({
|
|
5738
|
-
error:
|
|
5782
|
+
error: {
|
|
5783
|
+
type: WorkspaceListErrorType.VERBATIM_ERROR,
|
|
5784
|
+
message: errorMessage,
|
|
5785
|
+
category: WorkspaceListErrorCategory.GENERIC
|
|
5786
|
+
}
|
|
5739
5787
|
}));
|
|
5740
5788
|
return _context4.abrupt("return");
|
|
5741
|
-
case
|
|
5789
|
+
case 38:
|
|
5742
5790
|
workspaceData = getWorkspaceData(listenerApi.getState());
|
|
5743
5791
|
newWorkspace = Object.assign({}, workspaceData, {
|
|
5744
5792
|
id: workspaceId,
|
|
@@ -5746,9 +5794,9 @@ workspaceListListener.startListening({
|
|
|
5746
5794
|
"abstract": data["abstract"],
|
|
5747
5795
|
scope: scope
|
|
5748
5796
|
});
|
|
5749
|
-
_context4.next =
|
|
5797
|
+
_context4.next = 42;
|
|
5750
5798
|
return workspaceApi.saveWorkspacePreset(workspaceId, newWorkspace);
|
|
5751
|
-
case
|
|
5799
|
+
case 42:
|
|
5752
5800
|
listenerApi.dispatch(workspaceListActions.onSuccessWorkspacePresetAction({
|
|
5753
5801
|
action: presetAction,
|
|
5754
5802
|
workspaceId: workspaceId,
|
|
@@ -5759,7 +5807,7 @@ workspaceListListener.startListening({
|
|
|
5759
5807
|
listenerApi.dispatch(routerActions.navigateToUrl({
|
|
5760
5808
|
url: getWorkspaceRouteUrl(workspaceId)
|
|
5761
5809
|
}));
|
|
5762
|
-
case
|
|
5810
|
+
case 44:
|
|
5763
5811
|
// Reset
|
|
5764
5812
|
if (presetAction === WorkspacePresetAction.RESET) {
|
|
5765
5813
|
// In case we're resetting the `New workspace` preset
|
|
@@ -5782,10 +5830,10 @@ workspaceListListener.startListening({
|
|
|
5782
5830
|
scope: scope
|
|
5783
5831
|
}));
|
|
5784
5832
|
}
|
|
5785
|
-
_context4.next =
|
|
5833
|
+
_context4.next = 52;
|
|
5786
5834
|
break;
|
|
5787
|
-
case
|
|
5788
|
-
_context4.prev =
|
|
5835
|
+
case 47:
|
|
5836
|
+
_context4.prev = 47;
|
|
5789
5837
|
_context4.t0 = _context4["catch"](3);
|
|
5790
5838
|
message = isAxiosError$1(_context4.t0) ? getAxiosErrorMessage(_context4.t0) : _context4.t0.message;
|
|
5791
5839
|
category = isAxiosAuthError(_context4.t0) ? WorkspaceListErrorCategory.AUTH : WorkspaceListErrorCategory.GENERIC;
|
|
@@ -5796,11 +5844,11 @@ workspaceListListener.startListening({
|
|
|
5796
5844
|
message: message
|
|
5797
5845
|
}
|
|
5798
5846
|
}));
|
|
5799
|
-
case
|
|
5847
|
+
case 52:
|
|
5800
5848
|
case "end":
|
|
5801
5849
|
return _context4.stop();
|
|
5802
5850
|
}
|
|
5803
|
-
}, _callee4, null, [[3,
|
|
5851
|
+
}, _callee4, null, [[3, 47]]);
|
|
5804
5852
|
}));
|
|
5805
5853
|
function effect(_x5, _x6) {
|
|
5806
5854
|
return _effect3.apply(this, arguments);
|
|
@@ -5914,20 +5962,25 @@ var getFilteredViewPresetListForView = createSelector(getViewPresetsList, getVie
|
|
|
5914
5962
|
* */
|
|
5915
5963
|
var WORKSPACE_NAMESPACE = 'workspace';
|
|
5916
5964
|
var initWorkspaceTestI18n = function initWorkspaceTestI18n() {
|
|
5917
|
-
|
|
5918
|
-
void i18n.use(initReactI18next).init({
|
|
5919
|
-
lng: 'en',
|
|
5965
|
+
safelyInitI18nForTestsAndStories(i18n, WORKSPACE_NAMESPACE, [{
|
|
5920
5966
|
ns: WORKSPACE_NAMESPACE,
|
|
5921
|
-
|
|
5922
|
-
|
|
5923
|
-
|
|
5924
|
-
|
|
5925
|
-
|
|
5926
|
-
|
|
5927
|
-
|
|
5928
|
-
|
|
5929
|
-
|
|
5930
|
-
|
|
5967
|
+
translations: workspaceTranslations
|
|
5968
|
+
}, {
|
|
5969
|
+
ns: SHARED_NAMESPACE,
|
|
5970
|
+
translations: sharedTranslations
|
|
5971
|
+
}, {
|
|
5972
|
+
ns: CORE_NAMESPACE,
|
|
5973
|
+
translations: coreTranslations
|
|
5974
|
+
}, {
|
|
5975
|
+
ns: WEBMAP_REACT_NAMESPACE,
|
|
5976
|
+
translations: webmapReactTranslations
|
|
5977
|
+
}, {
|
|
5978
|
+
ns: FORM_FIELDS_NAMESPACE,
|
|
5979
|
+
translations: formFieldsTranslations
|
|
5980
|
+
}, {
|
|
5981
|
+
ns: WARN_NAMESPACE,
|
|
5982
|
+
translations: warningsTranslations
|
|
5983
|
+
}]);
|
|
5931
5984
|
};
|
|
5932
5985
|
var ns = [WORKSPACE_NAMESPACE, SHARED_NAMESPACE];
|
|
5933
5986
|
var useWorkspaceTranslation = function useWorkspaceTranslation() {
|
|
@@ -6108,290 +6161,111 @@ var ComponentsLookUpWrapper = function ComponentsLookUpWrapper(_ref) {
|
|
|
6108
6161
|
}, props));
|
|
6109
6162
|
};
|
|
6110
6163
|
|
|
6111
|
-
|
|
6112
|
-
|
|
6164
|
+
/* *
|
|
6165
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6166
|
+
* you may not use this file except in compliance with the License.
|
|
6167
|
+
* You may obtain a copy of the License at
|
|
6168
|
+
*
|
|
6169
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
6170
|
+
*
|
|
6171
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
6172
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
6173
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
6174
|
+
* See the License for the specific language governing permissions and
|
|
6175
|
+
* limitations under the License.
|
|
6176
|
+
*
|
|
6177
|
+
* Copyright 2025 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
6178
|
+
* Copyright 2025 - Finnish Meteorological Institute (FMI)
|
|
6179
|
+
* Copyright 2025 - The Norwegian Meteorological Institute (MET Norway)
|
|
6180
|
+
* */
|
|
6181
|
+
var useFetchViewPresets = function useFetchViewPresets(panelId) {
|
|
6113
6182
|
var dispatch = useDispatch();
|
|
6114
|
-
var
|
|
6115
|
-
|
|
6116
|
-
var
|
|
6117
|
-
|
|
6118
|
-
|
|
6119
|
-
|
|
6120
|
-
return mapSelectors.getAllMapIds(store);
|
|
6121
|
-
});
|
|
6122
|
-
var viewsById = useSelector(getViewsById);
|
|
6123
|
-
var selectedMapIds = useSelector(function (store) {
|
|
6124
|
-
return genericSelectors.getLinkedMaps(store, panelId);
|
|
6183
|
+
var _useAuthenticationCon = useAuthenticationContext(),
|
|
6184
|
+
currentRole = _useAuthenticationCon.currentRole;
|
|
6185
|
+
var isAdmin = (currentRole == null ? void 0 : currentRole.name) === GEOWEB_ROLE_PRESETS_ADMIN.name;
|
|
6186
|
+
var lastAdmin = usePrevious(isAdmin);
|
|
6187
|
+
var viewPresetListFilters = useSelector(function (store) {
|
|
6188
|
+
return getViewPresetListFiltersForView(store, panelId);
|
|
6125
6189
|
});
|
|
6126
|
-
var
|
|
6127
|
-
return
|
|
6190
|
+
var viewPresetListSearchQuery = useSelector(function (store) {
|
|
6191
|
+
return getViewPresetListSearchQueryForView(store, panelId);
|
|
6128
6192
|
});
|
|
6129
|
-
var
|
|
6130
|
-
|
|
6131
|
-
|
|
6132
|
-
|
|
6133
|
-
|
|
6134
|
-
|
|
6135
|
-
|
|
6136
|
-
|
|
6137
|
-
|
|
6138
|
-
|
|
6139
|
-
|
|
6140
|
-
|
|
6141
|
-
|
|
6142
|
-
|
|
6143
|
-
|
|
6193
|
+
var prevSearch = usePrevious(viewPresetListSearchQuery);
|
|
6194
|
+
var fetchViewPresets = useCallback(function (params) {
|
|
6195
|
+
dispatch(viewPresetActions.fetchViewPresets(params));
|
|
6196
|
+
}, [dispatch]);
|
|
6197
|
+
useEffect(function () {
|
|
6198
|
+
if (viewPresetListSearchQuery !== prevSearch || isAdmin !== lastAdmin || !!viewPresetListFilters) {
|
|
6199
|
+
var filterParams = constructFilterParams(viewPresetListFilters, viewPresetListSearchQuery);
|
|
6200
|
+
fetchViewPresets({
|
|
6201
|
+
filterParams: filterParams,
|
|
6202
|
+
panelId: panelId
|
|
6203
|
+
});
|
|
6204
|
+
}
|
|
6205
|
+
}, [fetchViewPresets, panelId, prevSearch, viewPresetListSearchQuery, viewPresetListFilters, isAdmin, lastAdmin]);
|
|
6206
|
+
useEffect(function () {
|
|
6207
|
+
if (isAdmin !== lastAdmin && lastAdmin !== undefined) {
|
|
6208
|
+
// reset list filter when user changes role
|
|
6209
|
+
var filters = [{
|
|
6210
|
+
id: PresetFilterType.system,
|
|
6211
|
+
isSelected: true
|
|
6212
|
+
}, {
|
|
6213
|
+
id: PresetFilterType.personal,
|
|
6214
|
+
isSelected: !isAdmin
|
|
6215
|
+
}, {
|
|
6216
|
+
id: PresetFilterType.shared,
|
|
6217
|
+
isSelected: !isAdmin
|
|
6218
|
+
}];
|
|
6219
|
+
dispatch(viewPresetActions.setFilterChips({
|
|
6220
|
+
panelId: panelId,
|
|
6221
|
+
filters: filters
|
|
6222
|
+
}));
|
|
6223
|
+
}
|
|
6224
|
+
}, [dispatch, isAdmin, lastAdmin, panelId]);
|
|
6225
|
+
};
|
|
6226
|
+
|
|
6227
|
+
var ViewLoading = function ViewLoading(_ref) {
|
|
6228
|
+
var viewPresetId = _ref.viewPresetId;
|
|
6229
|
+
var _useWorkspaceTranslat = useWorkspaceTranslation(),
|
|
6230
|
+
t = _useWorkspaceTranslat.t;
|
|
6144
6231
|
return jsxs(Fragment, {
|
|
6145
|
-
children: [
|
|
6146
|
-
|
|
6147
|
-
|
|
6148
|
-
tooltipTitle: "Link " + viewComponentType,
|
|
6232
|
+
children: [jsx(LinearProgress, {
|
|
6233
|
+
"data-testid": "loading-bar",
|
|
6234
|
+
color: "secondary",
|
|
6149
6235
|
sx: {
|
|
6150
|
-
|
|
6151
|
-
|
|
6236
|
+
position: 'absolute',
|
|
6237
|
+
width: '100%',
|
|
6238
|
+
top: 0
|
|
6239
|
+
}
|
|
6240
|
+
}), jsxs(Typography, {
|
|
6241
|
+
sx: {
|
|
6242
|
+
margin: 1
|
|
6152
6243
|
},
|
|
6153
|
-
children:
|
|
6154
|
-
"data-testid": "link-icon",
|
|
6155
|
-
style: {
|
|
6156
|
-
fill: anchorEl ? 'white' : undefined,
|
|
6157
|
-
backgroundColor: anchorEl ? '#186DFF' : undefined
|
|
6158
|
-
}
|
|
6159
|
-
}) : jsx(LinkOff, {
|
|
6160
|
-
"data-testid": "link-off-icon",
|
|
6161
|
-
style: {
|
|
6162
|
-
fill: anchorEl ? 'white' : undefined,
|
|
6163
|
-
backgroundColor: anchorEl ? '#186DFF' : undefined
|
|
6164
|
-
}
|
|
6165
|
-
})
|
|
6166
|
-
}), jsxs(Menu, {
|
|
6167
|
-
id: "map-select-menu",
|
|
6168
|
-
"data-testid": "map-select-menu",
|
|
6169
|
-
anchorEl: anchorEl,
|
|
6170
|
-
open: Boolean(anchorEl),
|
|
6171
|
-
onClose: handleMenuClose,
|
|
6172
|
-
keepMounted: true,
|
|
6173
|
-
children: [jsxs(Typography, {
|
|
6174
|
-
variant: "h6",
|
|
6175
|
-
style: {
|
|
6176
|
-
padding: '10px 15px 0',
|
|
6177
|
-
fontWeight: 'bold'
|
|
6178
|
-
},
|
|
6179
|
-
children: [t('workspace-link'), " - ", t('workspace-link-location-header')]
|
|
6180
|
-
}), jsx(List, {
|
|
6181
|
-
dense: true,
|
|
6182
|
-
children: maps.map(function (mapId) {
|
|
6183
|
-
var _viewsById$mapId;
|
|
6184
|
-
var labelId = "checkbox-link-label-" + mapId;
|
|
6185
|
-
return jsx(ListItem, {
|
|
6186
|
-
onClick: function onClick() {
|
|
6187
|
-
return handleMapSelect(mapId);
|
|
6188
|
-
},
|
|
6189
|
-
disablePadding: true,
|
|
6190
|
-
dense: true,
|
|
6191
|
-
divider: true,
|
|
6192
|
-
children: jsxs(ListItemButton, {
|
|
6193
|
-
role: "checkbox",
|
|
6194
|
-
dense: true,
|
|
6195
|
-
sx: {
|
|
6196
|
-
margin: 0,
|
|
6197
|
-
padding: '0 16px'
|
|
6198
|
-
},
|
|
6199
|
-
children: [jsx(ListItemIcon, {
|
|
6200
|
-
children: jsx(Checkbox, {
|
|
6201
|
-
edge: "start",
|
|
6202
|
-
tabIndex: -1,
|
|
6203
|
-
checked: selectedMapIds.includes(mapId),
|
|
6204
|
-
disableRipple: true,
|
|
6205
|
-
inputProps: {
|
|
6206
|
-
'aria-labelledby': labelId
|
|
6207
|
-
}
|
|
6208
|
-
})
|
|
6209
|
-
}), jsx(ListItemText, {
|
|
6210
|
-
id: labelId,
|
|
6211
|
-
primary: (_viewsById$mapId = viewsById[mapId]) == null ? void 0 : _viewsById$mapId.title,
|
|
6212
|
-
secondary: mapId
|
|
6213
|
-
})]
|
|
6214
|
-
})
|
|
6215
|
-
}, mapId);
|
|
6216
|
-
})
|
|
6217
|
-
})]
|
|
6244
|
+
children: [t('workspace-loading'), " ", viewPresetId]
|
|
6218
6245
|
})]
|
|
6219
6246
|
});
|
|
6220
6247
|
};
|
|
6221
|
-
|
|
6222
|
-
var
|
|
6223
|
-
|
|
6224
|
-
|
|
6225
|
-
|
|
6226
|
-
|
|
6227
|
-
var
|
|
6228
|
-
|
|
6229
|
-
|
|
6230
|
-
|
|
6231
|
-
|
|
6232
|
-
|
|
6233
|
-
|
|
6234
|
-
|
|
6235
|
-
|
|
6236
|
-
|
|
6237
|
-
|
|
6238
|
-
|
|
6239
|
-
|
|
6240
|
-
|
|
6241
|
-
|
|
6242
|
-
setStateAfterExpand = _React$useState[1];
|
|
6243
|
-
var _React$useState2 = React.useState(mosaicNode),
|
|
6244
|
-
stateBeforeExpand = _React$useState2[0],
|
|
6245
|
-
setStateBeforeExpand = _React$useState2[1];
|
|
6246
|
-
var _React$useState3 = React.useState(false),
|
|
6247
|
-
enableUnexpand = _React$useState3[0],
|
|
6248
|
-
setEnableUnexpand = _React$useState3[1];
|
|
6249
|
-
React.useEffect(function () {
|
|
6250
|
-
if (enableUnexpand) {
|
|
6251
|
-
if (stateAfterExpand === undefined) {
|
|
6252
|
-
setStateAfterExpand(mosaicNode);
|
|
6253
|
-
return;
|
|
6254
|
-
}
|
|
6255
|
-
if (!isEqual(mosaicNode, stateAfterExpand)) {
|
|
6256
|
-
setEnableUnexpand(false);
|
|
6257
|
-
setStateAfterExpand(undefined);
|
|
6258
|
-
}
|
|
6259
|
-
}
|
|
6260
|
-
}, [enableUnexpand, mosaicNode, stateAfterExpand]);
|
|
6261
|
-
var onClose = /*#__PURE__*/function () {
|
|
6262
|
-
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
6263
|
-
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
6264
|
-
while (1) switch (_context.prev = _context.next) {
|
|
6265
|
-
case 0:
|
|
6266
|
-
if (!shouldPreventCloseView) {
|
|
6267
|
-
_context.next = 6;
|
|
6268
|
-
break;
|
|
6269
|
-
}
|
|
6270
|
-
_context.next = 3;
|
|
6271
|
-
return confirmDialog({
|
|
6272
|
-
title: t('workspace-control-close-message-title'),
|
|
6273
|
-
description: t('workspace-control-close-message-description'),
|
|
6274
|
-
confirmLabel: t('workspace-control-close')
|
|
6275
|
-
});
|
|
6276
|
-
case 3:
|
|
6277
|
-
actions.remove(path);
|
|
6278
|
-
_context.next = 7;
|
|
6279
|
-
break;
|
|
6280
|
-
case 6:
|
|
6281
|
-
actions.remove(path);
|
|
6282
|
-
case 7:
|
|
6283
|
-
case "end":
|
|
6284
|
-
return _context.stop();
|
|
6285
|
-
}
|
|
6286
|
-
}, _callee);
|
|
6287
|
-
}));
|
|
6288
|
-
return function onClose() {
|
|
6289
|
-
return _ref2.apply(this, arguments);
|
|
6290
|
-
};
|
|
6291
|
-
}();
|
|
6292
|
-
return jsxs(Fragment, {
|
|
6293
|
-
children: [jsx(LinkMenuConnect, {
|
|
6294
|
-
panelId: panelId
|
|
6295
|
-
}), jsx(CustomIconButton, {
|
|
6296
|
-
"data-testid": "split-horizontal-btn",
|
|
6297
|
-
sx: buttonStyle,
|
|
6298
|
-
onClick: function onClick() {
|
|
6299
|
-
var newNode = createNode();
|
|
6300
|
-
var previousNode = getAndAssertNodeAtPathExists(actions.getRoot(), path);
|
|
6301
|
-
actions.replaceWith(path, {
|
|
6302
|
-
direction: 'column',
|
|
6303
|
-
first: previousNode,
|
|
6304
|
-
second: newNode
|
|
6305
|
-
});
|
|
6306
|
-
},
|
|
6307
|
-
tooltipTitle: t('workspace-control-split-horizontal'),
|
|
6308
|
-
children: jsx(SplitVertical, {})
|
|
6309
|
-
}), jsx(CustomIconButton, {
|
|
6310
|
-
"data-testid": "split-vertical-btn",
|
|
6311
|
-
sx: buttonStyle,
|
|
6312
|
-
onClick: function onClick() {
|
|
6313
|
-
var newNode = createNode();
|
|
6314
|
-
var previousNode = getAndAssertNodeAtPathExists(actions.getRoot(), path);
|
|
6315
|
-
actions.replaceWith(path, {
|
|
6316
|
-
direction: 'row',
|
|
6317
|
-
first: previousNode,
|
|
6318
|
-
second: newNode
|
|
6319
|
-
});
|
|
6320
|
-
},
|
|
6321
|
-
tooltipTitle: t('workspace-control-split-vertical'),
|
|
6322
|
-
children: jsx(SplitHorizontal, {})
|
|
6323
|
-
}), !enableUnexpand || isString(mosaicNode) ? jsx(CustomIconButton, {
|
|
6324
|
-
"data-testid": "expand-btn",
|
|
6325
|
-
sx: buttonStyle,
|
|
6326
|
-
onClick: function onClick() {
|
|
6327
|
-
setStateBeforeExpand(mosaicNode);
|
|
6328
|
-
setEnableUnexpand(true);
|
|
6329
|
-
actions.expand(path, 70);
|
|
6330
|
-
},
|
|
6331
|
-
tooltipTitle: t('workspace-control-expand'),
|
|
6332
|
-
children: jsx(Expand, {})
|
|
6333
|
-
}) : jsx(CustomIconButton, {
|
|
6334
|
-
"data-testid": "unexpand-btn",
|
|
6335
|
-
sx: buttonStyle,
|
|
6336
|
-
onClick: function onClick() {
|
|
6337
|
-
var stateBeforeExpandCopy = isString(stateBeforeExpand) ? stateBeforeExpand : Object.assign({}, stateBeforeExpand);
|
|
6338
|
-
actions.replaceWith([], stateBeforeExpandCopy);
|
|
6339
|
-
},
|
|
6340
|
-
tooltipTitle: t('workspace-control-unexpand'),
|
|
6341
|
-
children: jsx(UnExpand, {})
|
|
6342
|
-
}), jsx(CustomIconButton, {
|
|
6343
|
-
"data-testid": "close-btn",
|
|
6344
|
-
sx: buttonStyle,
|
|
6345
|
-
onClick: onClose,
|
|
6346
|
-
tooltipTitle: t('workspace-control-close'),
|
|
6347
|
-
id: "close-window-button",
|
|
6348
|
-
children: jsx(Close, {})
|
|
6349
|
-
})]
|
|
6350
|
-
});
|
|
6351
|
-
};
|
|
6352
|
-
|
|
6353
|
-
var ViewLoading = function ViewLoading(_ref) {
|
|
6354
|
-
var viewPresetId = _ref.viewPresetId;
|
|
6355
|
-
var _useWorkspaceTranslat = useWorkspaceTranslation(),
|
|
6356
|
-
t = _useWorkspaceTranslat.t;
|
|
6357
|
-
return jsxs(Fragment, {
|
|
6358
|
-
children: [jsx(LinearProgress, {
|
|
6359
|
-
"data-testid": "loading-bar",
|
|
6360
|
-
color: "secondary",
|
|
6361
|
-
sx: {
|
|
6362
|
-
position: 'absolute',
|
|
6363
|
-
width: '100%',
|
|
6364
|
-
top: 0
|
|
6365
|
-
}
|
|
6366
|
-
}), jsxs(Typography, {
|
|
6367
|
-
sx: {
|
|
6368
|
-
margin: 1
|
|
6369
|
-
},
|
|
6370
|
-
children: [t('workspace-loading'), " ", viewPresetId]
|
|
6371
|
-
})]
|
|
6372
|
-
});
|
|
6373
|
-
};
|
|
6374
|
-
var ViewError = function ViewError(_ref2) {
|
|
6375
|
-
var viewPresetId = _ref2.viewPresetId,
|
|
6376
|
-
mosaicNodeId = _ref2.mosaicNodeId;
|
|
6377
|
-
var dispatch = useDispatch();
|
|
6378
|
-
var _useWorkspaceTranslat2 = useWorkspaceTranslation(),
|
|
6379
|
-
t = _useWorkspaceTranslat2.t;
|
|
6380
|
-
var fetchWorkspaceViewPreset = React.useCallback(function () {
|
|
6381
|
-
dispatch(workspaceActions.fetchWorkspaceViewPreset({
|
|
6382
|
-
viewPresetId: viewPresetId,
|
|
6383
|
-
mosaicNodeId: mosaicNodeId
|
|
6384
|
-
}));
|
|
6385
|
-
}, [dispatch, viewPresetId, mosaicNodeId]);
|
|
6386
|
-
return jsx(AlertBanner, {
|
|
6387
|
-
title: t('workspace-viewpresets-fail-fetch', {
|
|
6388
|
-
VIEWPRESET_ID: viewPresetId
|
|
6389
|
-
}),
|
|
6390
|
-
shouldClose: true,
|
|
6391
|
-
actionButtonProps: {
|
|
6392
|
-
title: t('workspace-retry'),
|
|
6393
|
-
onClick: fetchWorkspaceViewPreset
|
|
6394
|
-
}
|
|
6248
|
+
var ViewError = function ViewError(_ref2) {
|
|
6249
|
+
var viewPresetId = _ref2.viewPresetId,
|
|
6250
|
+
mosaicNodeId = _ref2.mosaicNodeId;
|
|
6251
|
+
var dispatch = useDispatch();
|
|
6252
|
+
var _useWorkspaceTranslat2 = useWorkspaceTranslation(),
|
|
6253
|
+
t = _useWorkspaceTranslat2.t;
|
|
6254
|
+
var fetchWorkspaceViewPreset = React.useCallback(function () {
|
|
6255
|
+
dispatch(workspaceActions.fetchWorkspaceViewPreset({
|
|
6256
|
+
viewPresetId: viewPresetId,
|
|
6257
|
+
mosaicNodeId: mosaicNodeId
|
|
6258
|
+
}));
|
|
6259
|
+
}, [dispatch, viewPresetId, mosaicNodeId]);
|
|
6260
|
+
return jsx(AlertBanner, {
|
|
6261
|
+
title: t('workspace-viewpresets-fail-fetch', {
|
|
6262
|
+
VIEWPRESET_ID: viewPresetId
|
|
6263
|
+
}),
|
|
6264
|
+
shouldClose: true,
|
|
6265
|
+
actionButtonProps: {
|
|
6266
|
+
title: t('workspace-retry'),
|
|
6267
|
+
onClick: fetchWorkspaceViewPreset
|
|
6268
|
+
}
|
|
6395
6269
|
});
|
|
6396
6270
|
};
|
|
6397
6271
|
var defaultComponentsLookUp = function defaultComponentsLookUp(_ref3) {
|
|
@@ -6426,45 +6300,23 @@ var defaultComponentsLookUp = function defaultComponentsLookUp(_ref3) {
|
|
|
6426
6300
|
* See the License for the specific language governing permissions and
|
|
6427
6301
|
* limitations under the License.
|
|
6428
6302
|
*
|
|
6429
|
-
* Copyright
|
|
6430
|
-
* Copyright
|
|
6431
|
-
* Copyright
|
|
6303
|
+
* Copyright 2025 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
6304
|
+
* Copyright 2025 - Finnish Meteorological Institute (FMI)
|
|
6305
|
+
* Copyright 2025 - The Norwegian Meteorological Institute (MET Norway)
|
|
6432
6306
|
* */
|
|
6433
|
-
var
|
|
6434
|
-
|
|
6435
|
-
|
|
6436
|
-
|
|
6437
|
-
|
|
6438
|
-
|
|
6439
|
-
return getUniqueId(existingIds, count + 1);
|
|
6440
|
-
}
|
|
6441
|
-
return newId;
|
|
6442
|
-
};
|
|
6443
|
-
var createBalancedMosaicNode = function createBalancedMosaicNode(currentNode) {
|
|
6444
|
-
var leaves = getLeaves(currentNode);
|
|
6445
|
-
return createBalancedTreeFromLeaves(leaves);
|
|
6307
|
+
var config$1 = getConfig();
|
|
6308
|
+
var presetBaseUrl$1 = (config$1 == null ? void 0 : config$1.GW_PRESET_BACKEND_URL) || '';
|
|
6309
|
+
var getViewPreset = function getViewPreset(viewpresetId, auth) {
|
|
6310
|
+
return fetch(presetBaseUrl$1 + "/viewpreset/" + viewpresetId, {
|
|
6311
|
+
headers: getHeaders(auth)
|
|
6312
|
+
}).then(handleResponse);
|
|
6446
6313
|
};
|
|
6447
|
-
var
|
|
6448
|
-
|
|
6449
|
-
|
|
6450
|
-
|
|
6451
|
-
|
|
6452
|
-
|
|
6453
|
-
})) {
|
|
6454
|
-
dispatch(uiActions.setToggleOpenDialog({
|
|
6455
|
-
setOpen: false,
|
|
6456
|
-
type: uiTypes.DialogTypes.TimeSeriesManager
|
|
6457
|
-
}));
|
|
6458
|
-
dispatch(uiActions.setToggleOpenDialog({
|
|
6459
|
-
setOpen: false,
|
|
6460
|
-
type: uiTypes.DialogTypes.TimeSeriesSelect
|
|
6461
|
-
}));
|
|
6462
|
-
dispatch(uiActions.setToggleOpenDialog({
|
|
6463
|
-
setOpen: false,
|
|
6464
|
-
type: uiTypes.DialogTypes.TimeseriesInfo
|
|
6465
|
-
}));
|
|
6466
|
-
}
|
|
6467
|
-
}
|
|
6314
|
+
var updateViewPreset = function updateViewPreset(viewpresetId, data, auth) {
|
|
6315
|
+
return fetch(presetBaseUrl$1 + "/viewpreset/" + viewpresetId, {
|
|
6316
|
+
headers: getHeaders(auth),
|
|
6317
|
+
method: 'PUT',
|
|
6318
|
+
body: JSON.stringify(data)
|
|
6319
|
+
}).then(handleResponse);
|
|
6468
6320
|
};
|
|
6469
6321
|
|
|
6470
6322
|
var WORKSPACE_SELECT_LIST_ROW_HEIGHT = 46;
|
|
@@ -6528,19 +6380,25 @@ var WorkspaceSelectListRow = function WorkspaceSelectListRow(_ref) {
|
|
|
6528
6380
|
return _onClick(WorkspacePresetAction.DUPLICATE);
|
|
6529
6381
|
}
|
|
6530
6382
|
}];
|
|
6531
|
-
|
|
6532
|
-
|
|
6533
|
-
|
|
6534
|
-
|
|
6535
|
-
|
|
6536
|
-
|
|
6537
|
-
|
|
6538
|
-
|
|
6539
|
-
|
|
6540
|
-
|
|
6541
|
-
|
|
6542
|
-
|
|
6543
|
-
|
|
6383
|
+
// Show "Edit" if it's your own user-scoped preset OR you're an admin
|
|
6384
|
+
if (workspacePreset.scope === SystemScope.user && (auth == null ? void 0 : auth.username) === workspacePreset.username || isAdmin) {
|
|
6385
|
+
menuItems.push({
|
|
6386
|
+
text: t('workspace-edit'),
|
|
6387
|
+
action: function action() {
|
|
6388
|
+
return _onClick(WorkspacePresetAction.EDIT);
|
|
6389
|
+
}
|
|
6390
|
+
});
|
|
6391
|
+
}
|
|
6392
|
+
// Show "Share/Unshare" only if it's your own user-scoped preset
|
|
6393
|
+
if (workspacePreset.scope === SystemScope.user && (auth == null ? void 0 : auth.username) === workspacePreset.username) {
|
|
6394
|
+
menuItems.push({
|
|
6395
|
+
text: workspacePreset.is_shared ? t('workspace-stop-share') : t('workspace-share'),
|
|
6396
|
+
action: function action() {
|
|
6397
|
+
return _onClick(WorkspacePresetAction.SHARE);
|
|
6398
|
+
},
|
|
6399
|
+
isDisabled: false
|
|
6400
|
+
});
|
|
6401
|
+
}
|
|
6544
6402
|
return jsx(ListItem, {
|
|
6545
6403
|
disablePadding: true,
|
|
6546
6404
|
sx: {
|
|
@@ -6606,7 +6464,7 @@ var WorkspaceSelectListRow = function WorkspaceSelectListRow(_ref) {
|
|
|
6606
6464
|
menuItems: menuItems,
|
|
6607
6465
|
menuTitle: t('workspace-options'),
|
|
6608
6466
|
isDefaultOpen: isOptionsMenuOpen
|
|
6609
|
-
}), (workspacePreset.scope ===
|
|
6467
|
+
}), (workspacePreset.scope === SystemScope.user && (auth == null ? void 0 : auth.username) === workspacePreset.username || isAdmin) && workspacePreset.id && jsx(CustomIconButton, {
|
|
6610
6468
|
tooltipTitle: t('workspace-delete-tooltip'),
|
|
6611
6469
|
onClick: function onClick(event) {
|
|
6612
6470
|
event.stopPropagation();
|
|
@@ -6651,7 +6509,7 @@ var WorkspaceSelectList = function WorkspaceSelectList(_ref) {
|
|
|
6651
6509
|
return jsxs(Box, {
|
|
6652
6510
|
"data-testid": testIdPrefix + "-selectList",
|
|
6653
6511
|
sx: {
|
|
6654
|
-
height:
|
|
6512
|
+
height: '100%',
|
|
6655
6513
|
minHeight: MIN_HEIGHT_SCROLLABLE_LIST,
|
|
6656
6514
|
overflow: 'hidden'
|
|
6657
6515
|
},
|
|
@@ -6708,12 +6566,23 @@ var ViewPresetMenuListConnect = function ViewPresetMenuListConnect(_ref) {
|
|
|
6708
6566
|
var dispatch = useDispatch();
|
|
6709
6567
|
var _useAuthenticationCon = useAuthenticationContext(),
|
|
6710
6568
|
currentRole = _useAuthenticationCon.currentRole,
|
|
6711
|
-
isLoggedIn = _useAuthenticationCon.isLoggedIn
|
|
6569
|
+
isLoggedIn = _useAuthenticationCon.isLoggedIn,
|
|
6570
|
+
auth = _useAuthenticationCon.auth;
|
|
6571
|
+
var username = (auth == null ? void 0 : auth.username) || '';
|
|
6712
6572
|
var isAdmin = (currentRole == null ? void 0 : currentRole.name) === GEOWEB_ROLE_PRESETS_ADMIN.name;
|
|
6713
6573
|
var scope = !isAdmin ? 'user' : 'system';
|
|
6714
6574
|
var viewPresets = useSelector(function (store) {
|
|
6715
6575
|
return getFilteredViewPresetListForView(store, panelId);
|
|
6716
6576
|
});
|
|
6577
|
+
var viewPresetListFilters = useSelector(function (store) {
|
|
6578
|
+
return getViewPresetListFiltersForView(store, panelId, scope);
|
|
6579
|
+
});
|
|
6580
|
+
var viewPresetListSearchQuery = useSelector(function (store) {
|
|
6581
|
+
return getViewPresetListSearchQueryForView(store, panelId);
|
|
6582
|
+
});
|
|
6583
|
+
var filteredPresets = React.useMemo(function () {
|
|
6584
|
+
return filterAndSortPresets(viewPresets, viewPresetListFilters, username);
|
|
6585
|
+
}, [viewPresets, viewPresetListFilters, username]);
|
|
6717
6586
|
var activeViewPresetId = useSelector(function (store) {
|
|
6718
6587
|
return getViewPresetActiveId(store, panelId);
|
|
6719
6588
|
});
|
|
@@ -6729,12 +6598,6 @@ var ViewPresetMenuListConnect = function ViewPresetMenuListConnect(_ref) {
|
|
|
6729
6598
|
var currentWarningsPreset = useSelector(function (store) {
|
|
6730
6599
|
return publicWarningsSelectors.getWarningsPresetById(store, panelId);
|
|
6731
6600
|
});
|
|
6732
|
-
var viewPresetListFilters = useSelector(function (store) {
|
|
6733
|
-
return getViewPresetListFiltersForView(store, panelId, scope);
|
|
6734
|
-
});
|
|
6735
|
-
var viewPresetListSearchQuery = useSelector(function (store) {
|
|
6736
|
-
return getViewPresetListSearchQueryForView(store, panelId);
|
|
6737
|
-
});
|
|
6738
6601
|
var relatedSyncGroupIds = useSelector(function (store) {
|
|
6739
6602
|
return syncGroupsSelectors.getAllTargetGroupsForSource(store, {
|
|
6740
6603
|
sourceId: panelId
|
|
@@ -6811,6 +6674,26 @@ var ViewPresetMenuListConnect = function ViewPresetMenuListConnect(_ref) {
|
|
|
6811
6674
|
});
|
|
6812
6675
|
break;
|
|
6813
6676
|
}
|
|
6677
|
+
case WorkspacePresetAction.SHARE:
|
|
6678
|
+
{
|
|
6679
|
+
void getViewPreset(presetId, auth).then(function (preset) {
|
|
6680
|
+
return void updateViewPreset(presetId, Object.assign({}, preset, {
|
|
6681
|
+
is_shared: !preset.is_shared
|
|
6682
|
+
}), auth).then(function () {
|
|
6683
|
+
dispatch(viewPresetActions.onSuccessViewPresetAction({
|
|
6684
|
+
panelId: panelId,
|
|
6685
|
+
viewPresetId: presetId,
|
|
6686
|
+
action: PresetAction.SHARE,
|
|
6687
|
+
title: preset.title,
|
|
6688
|
+
scope: scope,
|
|
6689
|
+
"abstract": preset["abstract"],
|
|
6690
|
+
is_shared: preset.is_shared
|
|
6691
|
+
}));
|
|
6692
|
+
fetchViewPresets();
|
|
6693
|
+
});
|
|
6694
|
+
});
|
|
6695
|
+
break;
|
|
6696
|
+
}
|
|
6814
6697
|
case WorkspacePresetAction.DELETE_SYSTEM_PRESET:
|
|
6815
6698
|
case WorkspacePresetAction.DELETE:
|
|
6816
6699
|
{
|
|
@@ -6845,13 +6728,13 @@ var ViewPresetMenuListConnect = function ViewPresetMenuListConnect(_ref) {
|
|
|
6845
6728
|
panelId: panelId
|
|
6846
6729
|
}));
|
|
6847
6730
|
}, [dispatch, panelId]);
|
|
6848
|
-
var onClickFilterChip = function onClickFilterChip(id,
|
|
6731
|
+
var onClickFilterChip = function onClickFilterChip(id, selected) {
|
|
6849
6732
|
if (id === 'all') {
|
|
6850
|
-
if (
|
|
6733
|
+
if (selected) {
|
|
6851
6734
|
setSelectAllFilterChip();
|
|
6852
6735
|
}
|
|
6853
6736
|
} else {
|
|
6854
|
-
toggleSelectFilterChip(id,
|
|
6737
|
+
toggleSelectFilterChip(id, selected);
|
|
6855
6738
|
}
|
|
6856
6739
|
};
|
|
6857
6740
|
var isAllSelectedForFilters = viewPresetListFilters.every(function (filter) {
|
|
@@ -6882,28 +6765,66 @@ var ViewPresetMenuListConnect = function ViewPresetMenuListConnect(_ref) {
|
|
|
6882
6765
|
}
|
|
6883
6766
|
})), jsxs(Box, {
|
|
6884
6767
|
sx: {
|
|
6768
|
+
display: 'flex',
|
|
6769
|
+
flexDirection: 'column',
|
|
6770
|
+
flexGrow: 1,
|
|
6771
|
+
minHeight: 0,
|
|
6885
6772
|
padding: 1,
|
|
6886
6773
|
height: '100%'
|
|
6887
6774
|
},
|
|
6888
|
-
children: [!error &&
|
|
6889
|
-
|
|
6890
|
-
|
|
6891
|
-
|
|
6892
|
-
|
|
6893
|
-
|
|
6894
|
-
|
|
6895
|
-
|
|
6896
|
-
|
|
6897
|
-
|
|
6898
|
-
|
|
6899
|
-
|
|
6900
|
-
|
|
6901
|
-
|
|
6902
|
-
|
|
6903
|
-
|
|
6904
|
-
|
|
6905
|
-
|
|
6906
|
-
|
|
6775
|
+
children: [!error && jsxs(Box, {
|
|
6776
|
+
sx: {
|
|
6777
|
+
flexShrink: 0,
|
|
6778
|
+
display: 'flex',
|
|
6779
|
+
flexDirection: 'column',
|
|
6780
|
+
gap: 1,
|
|
6781
|
+
marginBottom: 1
|
|
6782
|
+
},
|
|
6783
|
+
children: [jsx(Box, {
|
|
6784
|
+
sx: {
|
|
6785
|
+
display: 'flex',
|
|
6786
|
+
flexWrap: 'wrap',
|
|
6787
|
+
gap: 1,
|
|
6788
|
+
width: '100%'
|
|
6789
|
+
},
|
|
6790
|
+
children: jsx(Filter, {
|
|
6791
|
+
filters: viewPresetListFilters,
|
|
6792
|
+
onClickFilterChip: onClickFilterChip,
|
|
6793
|
+
isAllSelected: isAllSelectedForFilters,
|
|
6794
|
+
searchQuery: viewPresetListSearchQuery,
|
|
6795
|
+
onSearch: onSearchFilter
|
|
6796
|
+
})
|
|
6797
|
+
}), jsx(Box, {
|
|
6798
|
+
sx: {
|
|
6799
|
+
display: 'flex',
|
|
6800
|
+
justifyContent: 'flex-start'
|
|
6801
|
+
},
|
|
6802
|
+
children: jsx(LastUpdateTime, {
|
|
6803
|
+
onPressRefresh: function onPressRefresh() {
|
|
6804
|
+
return fetchViewPresets();
|
|
6805
|
+
},
|
|
6806
|
+
hideLabel: true
|
|
6807
|
+
})
|
|
6808
|
+
})]
|
|
6809
|
+
}), jsx(Box, {
|
|
6810
|
+
sx: {
|
|
6811
|
+
flexGrow: 1,
|
|
6812
|
+
minHeight: 0
|
|
6813
|
+
},
|
|
6814
|
+
children: jsx(WorkspaceSelectList, {
|
|
6815
|
+
workspacePresets: filteredPresets,
|
|
6816
|
+
currentSelectedId: activeViewPresetId || undefined,
|
|
6817
|
+
onClickWorkspacePreset: selectViewPreset,
|
|
6818
|
+
onClickWorkspacePresetOption: onClickViewPresetOption,
|
|
6819
|
+
newPreset: Object.assign({}, getEmptyWorkspaceListItem(t), {
|
|
6820
|
+
title: t('workspace-mappreset-new')
|
|
6821
|
+
}),
|
|
6822
|
+
hideNewWorkspace: shouldHideNewWorkspace,
|
|
6823
|
+
searchQuery: viewPresetListSearchQuery,
|
|
6824
|
+
testIdPrefix: "viewpreset",
|
|
6825
|
+
isAdmin: isAdmin,
|
|
6826
|
+
isEditable: isLoggedIn
|
|
6827
|
+
})
|
|
6907
6828
|
})]
|
|
6908
6829
|
})]
|
|
6909
6830
|
});
|
|
@@ -7246,118 +7167,372 @@ var WorkspaceViewTitleConnectNoMemo = function WorkspaceViewTitleConnectNoMemo(_
|
|
|
7246
7167
|
initialProps: constructInitialProps(),
|
|
7247
7168
|
"abstract": presetAbstract
|
|
7248
7169
|
}
|
|
7249
|
-
});
|
|
7250
|
-
}, [activeViewPresetId, constructInitialProps, openViewPresetsDialog, panelId, t, title, presetAbstract]);
|
|
7251
|
-
var onReset = React.useCallback(function () {
|
|
7252
|
-
openViewPresetsDialog({
|
|
7253
|
-
title: t('workspace-reset-title'),
|
|
7254
|
-
action: PresetAction.RESET,
|
|
7255
|
-
viewPresetId: activeViewPresetId,
|
|
7256
|
-
panelId: panelId,
|
|
7257
|
-
formValues: {
|
|
7258
|
-
title: title
|
|
7170
|
+
});
|
|
7171
|
+
}, [activeViewPresetId, constructInitialProps, openViewPresetsDialog, panelId, t, title, presetAbstract]);
|
|
7172
|
+
var onReset = React.useCallback(function () {
|
|
7173
|
+
openViewPresetsDialog({
|
|
7174
|
+
title: t('workspace-reset-title'),
|
|
7175
|
+
action: PresetAction.RESET,
|
|
7176
|
+
viewPresetId: activeViewPresetId,
|
|
7177
|
+
panelId: panelId,
|
|
7178
|
+
formValues: {
|
|
7179
|
+
title: title
|
|
7180
|
+
}
|
|
7181
|
+
});
|
|
7182
|
+
}, [activeViewPresetId, openViewPresetsDialog, panelId, t, title]);
|
|
7183
|
+
var toggleViewPresetDialog = React.useCallback(function (_ref3) {
|
|
7184
|
+
var panelId = _ref3.panelId,
|
|
7185
|
+
isViewPresetDialogOpen = _ref3.isViewPresetDialogOpen;
|
|
7186
|
+
dispatch(viewPresetActions.toggleViewPresetListDialog({
|
|
7187
|
+
panelId: panelId,
|
|
7188
|
+
isViewPresetListDialogOpen: isViewPresetDialogOpen
|
|
7189
|
+
}));
|
|
7190
|
+
}, [dispatch]);
|
|
7191
|
+
var onClickOpenViewPreset = React.useCallback(function () {
|
|
7192
|
+
toggleViewPresetDialog({
|
|
7193
|
+
panelId: panelId,
|
|
7194
|
+
isViewPresetDialogOpen: !isViewPresetDialogOpen
|
|
7195
|
+
});
|
|
7196
|
+
}, [isViewPresetDialogOpen, panelId, toggleViewPresetDialog]);
|
|
7197
|
+
var style = React.useMemo(function () {
|
|
7198
|
+
return customIconStyles(theme, isViewPresetDialogOpen);
|
|
7199
|
+
}, [isViewPresetDialogOpen, theme]);
|
|
7200
|
+
var presetIcon = React.useMemo(function () {
|
|
7201
|
+
return jsx(Preset, {});
|
|
7202
|
+
}, []);
|
|
7203
|
+
renderCounter.count(WorkspaceViewTitleConnectNoMemo.name);
|
|
7204
|
+
var currentViewScope = viewScope || 'system';
|
|
7205
|
+
var isEnabled = (currentViewScope === 'user' || isAdmin && currentViewScope === 'system') && activeViewPresetId !== '' && isLoggedIn;
|
|
7206
|
+
return jsxs(Fragment, {
|
|
7207
|
+
children: [jsx(CustomIconButton, {
|
|
7208
|
+
"data-testid": "open-viewpresets",
|
|
7209
|
+
sx: style,
|
|
7210
|
+
variant: "tool",
|
|
7211
|
+
onClick: onClickOpenViewPreset,
|
|
7212
|
+
tooltipTitle: t('workspace-viewpreset-menu'),
|
|
7213
|
+
isSelected: isViewPresetDialogOpen,
|
|
7214
|
+
children: presetIcon
|
|
7215
|
+
}), jsx(WorkspaceOptions, {
|
|
7216
|
+
panelId: panelId,
|
|
7217
|
+
title: fullTitle,
|
|
7218
|
+
hasChanges: hasViewPresetChanges || isNewActive,
|
|
7219
|
+
handleSave: isEnabled ? onSave : undefined,
|
|
7220
|
+
handleDelete: isEnabled ? onDelete : undefined,
|
|
7221
|
+
handleSaveAs: isLoggedIn ? onSaveAs : undefined,
|
|
7222
|
+
handleEdit: isEnabled ? onEdit : undefined,
|
|
7223
|
+
handleReset: onReset,
|
|
7224
|
+
id: viewPresetOptionId,
|
|
7225
|
+
isAdmin: isAdmin
|
|
7226
|
+
}), jsx(LoadingIndicatorConnect, {
|
|
7227
|
+
panelId: panelId
|
|
7228
|
+
})]
|
|
7229
|
+
});
|
|
7230
|
+
};
|
|
7231
|
+
var WorkspaceViewTitleConnect = /*#__PURE__*/React.memo(WorkspaceViewTitleConnectNoMemo);
|
|
7232
|
+
|
|
7233
|
+
/* *
|
|
7234
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
7235
|
+
* you may not use this file except in compliance with the License.
|
|
7236
|
+
* You may obtain a copy of the License at
|
|
7237
|
+
*
|
|
7238
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
7239
|
+
*
|
|
7240
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
7241
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
7242
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
7243
|
+
* See the License for the specific language governing permissions and
|
|
7244
|
+
* limitations under the License.
|
|
7245
|
+
*
|
|
7246
|
+
* Copyright 2023 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
7247
|
+
* Copyright 2023 - Finnish Meteorological Institute (FMI)
|
|
7248
|
+
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
7249
|
+
* */
|
|
7250
|
+
var getUniqueId = function getUniqueId(existingIds, count) {
|
|
7251
|
+
if (count === void 0) {
|
|
7252
|
+
count = 1;
|
|
7253
|
+
}
|
|
7254
|
+
var newId = count + "_screen";
|
|
7255
|
+
if (existingIds.indexOf(newId) !== -1) {
|
|
7256
|
+
return getUniqueId(existingIds, count + 1);
|
|
7257
|
+
}
|
|
7258
|
+
return newId;
|
|
7259
|
+
};
|
|
7260
|
+
var createBalancedMosaicNode = function createBalancedMosaicNode(currentNode) {
|
|
7261
|
+
var leaves = getLeaves(currentNode);
|
|
7262
|
+
return createBalancedTreeFromLeaves(leaves);
|
|
7263
|
+
};
|
|
7264
|
+
var closeTimeSeriesDialogsWhenChangingPreset = function closeTimeSeriesDialogsWhenChangingPreset(componentTypes, dispatch) {
|
|
7265
|
+
if (componentTypes) {
|
|
7266
|
+
if (componentTypes.length > 0 && !componentTypes.some(function (componentType) {
|
|
7267
|
+
return componentType.toLowerCase().includes('viewloading');
|
|
7268
|
+
}) && !componentTypes.some(function (componentType) {
|
|
7269
|
+
return componentType.toLowerCase().includes('timeseries');
|
|
7270
|
+
})) {
|
|
7271
|
+
dispatch(uiActions.setToggleOpenDialog({
|
|
7272
|
+
setOpen: false,
|
|
7273
|
+
type: uiTypes.DialogTypes.TimeSeriesManager
|
|
7274
|
+
}));
|
|
7275
|
+
dispatch(uiActions.setToggleOpenDialog({
|
|
7276
|
+
setOpen: false,
|
|
7277
|
+
type: uiTypes.DialogTypes.TimeSeriesSelect
|
|
7278
|
+
}));
|
|
7279
|
+
dispatch(uiActions.setToggleOpenDialog({
|
|
7280
|
+
setOpen: false,
|
|
7281
|
+
type: uiTypes.DialogTypes.TimeseriesInfo
|
|
7282
|
+
}));
|
|
7283
|
+
}
|
|
7284
|
+
}
|
|
7285
|
+
};
|
|
7286
|
+
|
|
7287
|
+
var LinkMenuConnect = function LinkMenuConnect(_ref) {
|
|
7288
|
+
var panelId = _ref.panelId;
|
|
7289
|
+
var dispatch = useDispatch();
|
|
7290
|
+
var _useWorkspaceTranslat = useWorkspaceTranslation(),
|
|
7291
|
+
t = _useWorkspaceTranslat.t;
|
|
7292
|
+
var _React$useState = React__default.useState(null),
|
|
7293
|
+
anchorEl = _React$useState[0],
|
|
7294
|
+
setAnchorEl = _React$useState[1];
|
|
7295
|
+
var maps = useSelector(function (store) {
|
|
7296
|
+
return mapSelectors.getAllMapIds(store);
|
|
7297
|
+
});
|
|
7298
|
+
var viewsById = useSelector(getViewsById);
|
|
7299
|
+
var selectedMapIds = useSelector(function (store) {
|
|
7300
|
+
return genericSelectors.getLinkedMaps(store, panelId);
|
|
7301
|
+
});
|
|
7302
|
+
var viewComponentType = useSelector(function (store) {
|
|
7303
|
+
return getViewComponentType(store, panelId);
|
|
7304
|
+
});
|
|
7305
|
+
var handleLinkViews = function handleLinkViews(event) {
|
|
7306
|
+
setAnchorEl(event.currentTarget);
|
|
7307
|
+
};
|
|
7308
|
+
var handleMenuClose = function handleMenuClose() {
|
|
7309
|
+
setAnchorEl(null);
|
|
7310
|
+
};
|
|
7311
|
+
var handleMapSelect = function handleMapSelect(mapId) {
|
|
7312
|
+
var updatedMapIds = selectedMapIds.includes(mapId) ? selectedMapIds.filter(function (id) {
|
|
7313
|
+
return id !== mapId;
|
|
7314
|
+
}) : [].concat(selectedMapIds, [mapId]);
|
|
7315
|
+
dispatch(genericActions.updateLinkedMap({
|
|
7316
|
+
panelId: panelId,
|
|
7317
|
+
mapIds: updatedMapIds
|
|
7318
|
+
}));
|
|
7319
|
+
};
|
|
7320
|
+
return jsxs(Fragment, {
|
|
7321
|
+
children: [linkComponentTypesConstants.supportedComponentTypesForLinking.includes(viewComponentType) && jsx(CustomIconButton, {
|
|
7322
|
+
onClick: handleLinkViews,
|
|
7323
|
+
"data-testid": "icon-button",
|
|
7324
|
+
tooltipTitle: "Link " + viewComponentType,
|
|
7325
|
+
sx: {
|
|
7326
|
+
marginLeft: 0.5,
|
|
7327
|
+
marginRight: 0.5
|
|
7328
|
+
},
|
|
7329
|
+
children: selectedMapIds.length > 0 ? jsx(Link, {
|
|
7330
|
+
"data-testid": "link-icon",
|
|
7331
|
+
style: {
|
|
7332
|
+
fill: anchorEl ? 'white' : undefined,
|
|
7333
|
+
backgroundColor: anchorEl ? '#186DFF' : undefined
|
|
7334
|
+
}
|
|
7335
|
+
}) : jsx(LinkOff, {
|
|
7336
|
+
"data-testid": "link-off-icon",
|
|
7337
|
+
style: {
|
|
7338
|
+
fill: anchorEl ? 'white' : undefined,
|
|
7339
|
+
backgroundColor: anchorEl ? '#186DFF' : undefined
|
|
7340
|
+
}
|
|
7341
|
+
})
|
|
7342
|
+
}), jsxs(Menu, {
|
|
7343
|
+
id: "map-select-menu",
|
|
7344
|
+
"data-testid": "map-select-menu",
|
|
7345
|
+
anchorEl: anchorEl,
|
|
7346
|
+
open: Boolean(anchorEl),
|
|
7347
|
+
onClose: handleMenuClose,
|
|
7348
|
+
keepMounted: true,
|
|
7349
|
+
children: [jsxs(Typography, {
|
|
7350
|
+
variant: "h6",
|
|
7351
|
+
style: {
|
|
7352
|
+
padding: '10px 15px 0',
|
|
7353
|
+
fontWeight: 'bold'
|
|
7354
|
+
},
|
|
7355
|
+
children: [t('workspace-link'), " - ", t('workspace-link-location-header')]
|
|
7356
|
+
}), jsx(List, {
|
|
7357
|
+
dense: true,
|
|
7358
|
+
children: maps.map(function (mapId) {
|
|
7359
|
+
var _viewsById$mapId;
|
|
7360
|
+
var labelId = "checkbox-link-label-" + mapId;
|
|
7361
|
+
return jsx(ListItem, {
|
|
7362
|
+
onClick: function onClick() {
|
|
7363
|
+
return handleMapSelect(mapId);
|
|
7364
|
+
},
|
|
7365
|
+
disablePadding: true,
|
|
7366
|
+
dense: true,
|
|
7367
|
+
divider: true,
|
|
7368
|
+
children: jsxs(ListItemButton, {
|
|
7369
|
+
role: "checkbox",
|
|
7370
|
+
dense: true,
|
|
7371
|
+
sx: {
|
|
7372
|
+
margin: 0,
|
|
7373
|
+
padding: '0 16px'
|
|
7374
|
+
},
|
|
7375
|
+
children: [jsx(ListItemIcon, {
|
|
7376
|
+
children: jsx(Checkbox, {
|
|
7377
|
+
edge: "start",
|
|
7378
|
+
tabIndex: -1,
|
|
7379
|
+
checked: selectedMapIds.includes(mapId),
|
|
7380
|
+
disableRipple: true,
|
|
7381
|
+
inputProps: {
|
|
7382
|
+
'aria-labelledby': labelId
|
|
7383
|
+
}
|
|
7384
|
+
})
|
|
7385
|
+
}), jsx(ListItemText, {
|
|
7386
|
+
id: labelId,
|
|
7387
|
+
primary: (_viewsById$mapId = viewsById[mapId]) == null ? void 0 : _viewsById$mapId.title,
|
|
7388
|
+
secondary: mapId
|
|
7389
|
+
})]
|
|
7390
|
+
})
|
|
7391
|
+
}, mapId);
|
|
7392
|
+
})
|
|
7393
|
+
})]
|
|
7394
|
+
})]
|
|
7395
|
+
});
|
|
7396
|
+
};
|
|
7397
|
+
|
|
7398
|
+
var buttonStyle = {
|
|
7399
|
+
marginLeft: 0.5,
|
|
7400
|
+
marginRight: 0.5
|
|
7401
|
+
};
|
|
7402
|
+
var WorkspaceControls = function WorkspaceControls(_ref) {
|
|
7403
|
+
var panelId = _ref.panelId,
|
|
7404
|
+
createNode = _ref.createNode,
|
|
7405
|
+
path = _ref.path,
|
|
7406
|
+
_ref$shouldPreventClo = _ref.shouldPreventCloseView,
|
|
7407
|
+
shouldPreventCloseView = _ref$shouldPreventClo === void 0 ? false : _ref$shouldPreventClo;
|
|
7408
|
+
var confirmDialog = useConfirmationDialog();
|
|
7409
|
+
var _React$useContext = React.useContext(MosaicContext),
|
|
7410
|
+
actions = _React$useContext.mosaicActions;
|
|
7411
|
+
var _useWorkspaceTranslat = useWorkspaceTranslation(),
|
|
7412
|
+
t = _useWorkspaceTranslat.t;
|
|
7413
|
+
var mosaicNode = useSelector(function (store) {
|
|
7414
|
+
return getMosaicNode(store);
|
|
7415
|
+
});
|
|
7416
|
+
var _React$useState = React.useState(),
|
|
7417
|
+
stateAfterExpand = _React$useState[0],
|
|
7418
|
+
setStateAfterExpand = _React$useState[1];
|
|
7419
|
+
var _React$useState2 = React.useState(mosaicNode),
|
|
7420
|
+
stateBeforeExpand = _React$useState2[0],
|
|
7421
|
+
setStateBeforeExpand = _React$useState2[1];
|
|
7422
|
+
var _React$useState3 = React.useState(false),
|
|
7423
|
+
enableUnexpand = _React$useState3[0],
|
|
7424
|
+
setEnableUnexpand = _React$useState3[1];
|
|
7425
|
+
React.useEffect(function () {
|
|
7426
|
+
if (enableUnexpand) {
|
|
7427
|
+
if (stateAfterExpand === undefined) {
|
|
7428
|
+
setStateAfterExpand(mosaicNode);
|
|
7429
|
+
return;
|
|
7430
|
+
}
|
|
7431
|
+
if (!isEqual(mosaicNode, stateAfterExpand)) {
|
|
7432
|
+
setEnableUnexpand(false);
|
|
7433
|
+
setStateAfterExpand(undefined);
|
|
7259
7434
|
}
|
|
7260
|
-
}
|
|
7261
|
-
}, [
|
|
7262
|
-
var
|
|
7263
|
-
var
|
|
7264
|
-
|
|
7265
|
-
|
|
7266
|
-
|
|
7267
|
-
|
|
7435
|
+
}
|
|
7436
|
+
}, [enableUnexpand, mosaicNode, stateAfterExpand]);
|
|
7437
|
+
var onClose = /*#__PURE__*/function () {
|
|
7438
|
+
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
7439
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
7440
|
+
while (1) switch (_context.prev = _context.next) {
|
|
7441
|
+
case 0:
|
|
7442
|
+
if (!shouldPreventCloseView) {
|
|
7443
|
+
_context.next = 6;
|
|
7444
|
+
break;
|
|
7445
|
+
}
|
|
7446
|
+
_context.next = 3;
|
|
7447
|
+
return confirmDialog({
|
|
7448
|
+
title: t('workspace-control-close-message-title'),
|
|
7449
|
+
description: t('workspace-control-close-message-description'),
|
|
7450
|
+
confirmLabel: t('workspace-control-close')
|
|
7451
|
+
});
|
|
7452
|
+
case 3:
|
|
7453
|
+
actions.remove(path);
|
|
7454
|
+
_context.next = 7;
|
|
7455
|
+
break;
|
|
7456
|
+
case 6:
|
|
7457
|
+
actions.remove(path);
|
|
7458
|
+
case 7:
|
|
7459
|
+
case "end":
|
|
7460
|
+
return _context.stop();
|
|
7461
|
+
}
|
|
7462
|
+
}, _callee);
|
|
7268
7463
|
}));
|
|
7269
|
-
|
|
7270
|
-
|
|
7271
|
-
|
|
7272
|
-
|
|
7273
|
-
isViewPresetDialogOpen: !isViewPresetDialogOpen
|
|
7274
|
-
});
|
|
7275
|
-
}, [isViewPresetDialogOpen, panelId, toggleViewPresetDialog]);
|
|
7276
|
-
var style = React.useMemo(function () {
|
|
7277
|
-
return customIconStyles(theme, isViewPresetDialogOpen);
|
|
7278
|
-
}, [isViewPresetDialogOpen, theme]);
|
|
7279
|
-
var presetIcon = React.useMemo(function () {
|
|
7280
|
-
return jsx(Preset, {});
|
|
7281
|
-
}, []);
|
|
7282
|
-
renderCounter.count(WorkspaceViewTitleConnectNoMemo.name);
|
|
7283
|
-
var currentViewScope = viewScope || 'system';
|
|
7284
|
-
var isEnabled = (currentViewScope === 'user' || isAdmin && currentViewScope === 'system') && activeViewPresetId !== '' && isLoggedIn;
|
|
7464
|
+
return function onClose() {
|
|
7465
|
+
return _ref2.apply(this, arguments);
|
|
7466
|
+
};
|
|
7467
|
+
}();
|
|
7285
7468
|
return jsxs(Fragment, {
|
|
7286
|
-
children: [jsx(
|
|
7287
|
-
"data-testid": "open-viewpresets",
|
|
7288
|
-
sx: style,
|
|
7289
|
-
variant: "tool",
|
|
7290
|
-
onClick: onClickOpenViewPreset,
|
|
7291
|
-
tooltipTitle: t('workspace-viewpreset-menu'),
|
|
7292
|
-
isSelected: isViewPresetDialogOpen,
|
|
7293
|
-
children: presetIcon
|
|
7294
|
-
}), jsx(WorkspaceOptions, {
|
|
7295
|
-
panelId: panelId,
|
|
7296
|
-
title: fullTitle,
|
|
7297
|
-
hasChanges: hasViewPresetChanges || isNewActive,
|
|
7298
|
-
handleSave: isEnabled ? onSave : undefined,
|
|
7299
|
-
handleDelete: isEnabled ? onDelete : undefined,
|
|
7300
|
-
handleSaveAs: isLoggedIn ? onSaveAs : undefined,
|
|
7301
|
-
handleEdit: isEnabled ? onEdit : undefined,
|
|
7302
|
-
handleReset: onReset,
|
|
7303
|
-
id: viewPresetOptionId,
|
|
7304
|
-
isAdmin: isAdmin
|
|
7305
|
-
}), jsx(LoadingIndicatorConnect, {
|
|
7469
|
+
children: [jsx(LinkMenuConnect, {
|
|
7306
7470
|
panelId: panelId
|
|
7471
|
+
}), jsx(CustomIconButton, {
|
|
7472
|
+
"data-testid": "split-horizontal-btn",
|
|
7473
|
+
sx: buttonStyle,
|
|
7474
|
+
onClick: function onClick() {
|
|
7475
|
+
var newNode = createNode();
|
|
7476
|
+
var previousNode = getAndAssertNodeAtPathExists(actions.getRoot(), path);
|
|
7477
|
+
actions.replaceWith(path, {
|
|
7478
|
+
direction: 'column',
|
|
7479
|
+
first: previousNode,
|
|
7480
|
+
second: newNode
|
|
7481
|
+
});
|
|
7482
|
+
},
|
|
7483
|
+
tooltipTitle: t('workspace-control-split-horizontal'),
|
|
7484
|
+
children: jsx(SplitVertical, {})
|
|
7485
|
+
}), jsx(CustomIconButton, {
|
|
7486
|
+
"data-testid": "split-vertical-btn",
|
|
7487
|
+
sx: buttonStyle,
|
|
7488
|
+
onClick: function onClick() {
|
|
7489
|
+
var newNode = createNode();
|
|
7490
|
+
var previousNode = getAndAssertNodeAtPathExists(actions.getRoot(), path);
|
|
7491
|
+
actions.replaceWith(path, {
|
|
7492
|
+
direction: 'row',
|
|
7493
|
+
first: previousNode,
|
|
7494
|
+
second: newNode
|
|
7495
|
+
});
|
|
7496
|
+
},
|
|
7497
|
+
tooltipTitle: t('workspace-control-split-vertical'),
|
|
7498
|
+
children: jsx(SplitHorizontal, {})
|
|
7499
|
+
}), !enableUnexpand || isString(mosaicNode) ? jsx(CustomIconButton, {
|
|
7500
|
+
"data-testid": "expand-btn",
|
|
7501
|
+
sx: buttonStyle,
|
|
7502
|
+
onClick: function onClick() {
|
|
7503
|
+
setStateBeforeExpand(mosaicNode);
|
|
7504
|
+
setEnableUnexpand(true);
|
|
7505
|
+
actions.expand(path, 70);
|
|
7506
|
+
},
|
|
7507
|
+
tooltipTitle: t('workspace-control-expand'),
|
|
7508
|
+
children: jsx(Expand, {})
|
|
7509
|
+
}) : jsx(CustomIconButton, {
|
|
7510
|
+
"data-testid": "unexpand-btn",
|
|
7511
|
+
sx: buttonStyle,
|
|
7512
|
+
onClick: function onClick() {
|
|
7513
|
+
var stateBeforeExpandCopy = isString(stateBeforeExpand) ? stateBeforeExpand : Object.assign({}, stateBeforeExpand);
|
|
7514
|
+
actions.replaceWith([], stateBeforeExpandCopy);
|
|
7515
|
+
},
|
|
7516
|
+
tooltipTitle: t('workspace-control-unexpand'),
|
|
7517
|
+
children: jsx(UnExpand, {})
|
|
7518
|
+
}), jsx(CustomIconButton, {
|
|
7519
|
+
"data-testid": "close-btn",
|
|
7520
|
+
sx: buttonStyle,
|
|
7521
|
+
onClick: onClose,
|
|
7522
|
+
tooltipTitle: t('workspace-control-close'),
|
|
7523
|
+
id: "close-window-button",
|
|
7524
|
+
children: jsx(Close, {})
|
|
7307
7525
|
})]
|
|
7308
7526
|
});
|
|
7309
7527
|
};
|
|
7310
|
-
var WorkspaceViewTitleConnect = /*#__PURE__*/React.memo(WorkspaceViewTitleConnectNoMemo);
|
|
7311
7528
|
|
|
7312
|
-
var
|
|
7313
|
-
var
|
|
7314
|
-
|
|
7315
|
-
|
|
7316
|
-
|
|
7317
|
-
var isAdmin = (currentRole == null ? void 0 : currentRole.name) === GEOWEB_ROLE_PRESETS_ADMIN.name;
|
|
7318
|
-
var scope = !isAdmin ? 'user' : 'system';
|
|
7319
|
-
var lastAdmin = usePrevious(isAdmin);
|
|
7320
|
-
var viewPresetListFilters = useSelector(function (store) {
|
|
7321
|
-
return getViewPresetListFiltersForView(store, panelId, scope);
|
|
7322
|
-
});
|
|
7323
|
-
var viewPresetListSearchQuery = useSelector(function (store) {
|
|
7324
|
-
return getViewPresetListSearchQueryForView(store, panelId);
|
|
7325
|
-
});
|
|
7326
|
-
var fetchViewPresets = React.useCallback(function (filterParams) {
|
|
7327
|
-
dispatch(viewPresetActions.fetchViewPresets({
|
|
7328
|
-
panelId: panelId,
|
|
7329
|
-
filterParams: filterParams
|
|
7330
|
-
}));
|
|
7331
|
-
}, [dispatch, panelId]);
|
|
7332
|
-
React.useEffect(function () {
|
|
7333
|
-
var filterParams = constructFilterParams(viewPresetListFilters, viewPresetListSearchQuery);
|
|
7334
|
-
fetchViewPresets(filterParams);
|
|
7335
|
-
}, [fetchViewPresets, viewPresetListFilters, viewPresetListSearchQuery]);
|
|
7336
|
-
React.useEffect(function () {
|
|
7337
|
-
if (isAdmin !== lastAdmin && lastAdmin !== undefined) {
|
|
7338
|
-
// reset list filter when user changes role
|
|
7339
|
-
var filters = [{
|
|
7340
|
-
id: 'system',
|
|
7341
|
-
isSelected: true
|
|
7342
|
-
}, {
|
|
7343
|
-
id: 'user',
|
|
7344
|
-
isSelected: !isAdmin
|
|
7345
|
-
}];
|
|
7346
|
-
dispatch(viewPresetActions.setFilterChips({
|
|
7347
|
-
panelId: panelId,
|
|
7348
|
-
filters: filters
|
|
7349
|
-
}));
|
|
7350
|
-
}
|
|
7351
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
7352
|
-
}, [isAdmin]);
|
|
7353
|
-
return null;
|
|
7354
|
-
};
|
|
7355
|
-
var WorkspaceTileConnect = /*#__PURE__*/React.memo(function (_ref2) {
|
|
7356
|
-
var _ref2$mosaicNodeId = _ref2.mosaicNodeId,
|
|
7357
|
-
mosaicNodeId = _ref2$mosaicNodeId === void 0 ? '' : _ref2$mosaicNodeId,
|
|
7358
|
-
path = _ref2.path,
|
|
7359
|
-
componentsLookUp = _ref2.componentsLookUp;
|
|
7529
|
+
var WorkspaceTileConnect = /*#__PURE__*/React.memo(function (_ref) {
|
|
7530
|
+
var _ref$mosaicNodeId = _ref.mosaicNodeId,
|
|
7531
|
+
mosaicNodeId = _ref$mosaicNodeId === void 0 ? '' : _ref$mosaicNodeId,
|
|
7532
|
+
path = _ref.path,
|
|
7533
|
+
componentsLookUp = _ref.componentsLookUp;
|
|
7360
7534
|
var dispatch = useDispatch();
|
|
7535
|
+
useFetchViewPresets(mosaicNodeId);
|
|
7361
7536
|
var view = useSelector(function (store) {
|
|
7362
7537
|
return getViewById(store, mosaicNodeId);
|
|
7363
7538
|
});
|
|
@@ -7379,23 +7554,23 @@ var WorkspaceTileConnect = /*#__PURE__*/React.memo(function (_ref2) {
|
|
|
7379
7554
|
var addView = React.useCallback(function (view) {
|
|
7380
7555
|
dispatch(workspaceActions.setNewWorkspaceView(view));
|
|
7381
7556
|
}, [dispatch]);
|
|
7382
|
-
var registerView = React.useCallback(function (
|
|
7383
|
-
var panelId =
|
|
7384
|
-
mapPresetId =
|
|
7557
|
+
var registerView = React.useCallback(function (_ref2) {
|
|
7558
|
+
var panelId = _ref2.panelId,
|
|
7559
|
+
mapPresetId = _ref2.mapPresetId;
|
|
7385
7560
|
dispatch(viewPresetActions.registerViewPreset({
|
|
7386
7561
|
panelId: panelId,
|
|
7387
7562
|
viewPresetId: mapPresetId
|
|
7388
7563
|
}));
|
|
7389
7564
|
}, [dispatch]);
|
|
7390
|
-
var unregisterView = React.useCallback(function (
|
|
7391
|
-
var panelId =
|
|
7565
|
+
var unregisterView = React.useCallback(function (_ref3) {
|
|
7566
|
+
var panelId = _ref3.panelId;
|
|
7392
7567
|
dispatch(viewPresetActions.unregisterViewPreset({
|
|
7393
7568
|
panelId: panelId
|
|
7394
7569
|
}));
|
|
7395
7570
|
}, [dispatch]);
|
|
7396
|
-
var toggleViewPresetDialog = React.useCallback(function (
|
|
7397
|
-
var panelId =
|
|
7398
|
-
isViewPresetDialogOpen =
|
|
7571
|
+
var toggleViewPresetDialog = React.useCallback(function (_ref4) {
|
|
7572
|
+
var panelId = _ref4.panelId,
|
|
7573
|
+
isViewPresetDialogOpen = _ref4.isViewPresetDialogOpen;
|
|
7399
7574
|
dispatch(viewPresetActions.toggleViewPresetListDialog({
|
|
7400
7575
|
panelId: panelId,
|
|
7401
7576
|
isViewPresetListDialogOpen: isViewPresetDialogOpen
|
|
@@ -7486,9 +7661,7 @@ var WorkspaceTileConnect = /*#__PURE__*/React.memo(function (_ref2) {
|
|
|
7486
7661
|
title: errorViewPreset,
|
|
7487
7662
|
shouldClose: true
|
|
7488
7663
|
})
|
|
7489
|
-
}), defaultComponentsLookupResult, genericComponentsLookupResult, jsx(
|
|
7490
|
-
panelId: mosaicNodeId
|
|
7491
|
-
}), jsx(ViewPresetMenu, {
|
|
7664
|
+
}), defaultComponentsLookupResult, genericComponentsLookupResult, jsx(ViewPresetMenu, {
|
|
7492
7665
|
panelId: mosaicNodeId,
|
|
7493
7666
|
closeMenu: function closeMenu() {
|
|
7494
7667
|
toggleViewPresetDialog({
|
|
@@ -7731,6 +7904,7 @@ var createWorkspace = function createWorkspace(data, auth) {
|
|
|
7731
7904
|
};
|
|
7732
7905
|
|
|
7733
7906
|
var WorkspaceSelectListConnect = function WorkspaceSelectListConnect() {
|
|
7907
|
+
var _GENERIC$AUTH$error$c;
|
|
7734
7908
|
var _useAuthenticationCon = useAuthenticationContext(),
|
|
7735
7909
|
currentRole = _useAuthenticationCon.currentRole,
|
|
7736
7910
|
isLoggedIn = _useAuthenticationCon.isLoggedIn,
|
|
@@ -7741,7 +7915,7 @@ var WorkspaceSelectListConnect = function WorkspaceSelectListConnect() {
|
|
|
7741
7915
|
});
|
|
7742
7916
|
var selectedFilters = useSelector(getWorkspaceListFilters);
|
|
7743
7917
|
var filteredPresets = React.useMemo(function () {
|
|
7744
|
-
return
|
|
7918
|
+
return filterAndSortPresets(workspacePresets, selectedFilters, username);
|
|
7745
7919
|
}, [workspacePresets, selectedFilters, username]);
|
|
7746
7920
|
var isAdmin = (currentRole == null ? void 0 : currentRole.name) === GEOWEB_ROLE_PRESETS_ADMIN.name;
|
|
7747
7921
|
var scope = !isAdmin ? 'user' : 'system';
|
|
@@ -7869,13 +8043,27 @@ var WorkspaceSelectListConnect = function WorkspaceSelectListConnect() {
|
|
|
7869
8043
|
case WorkspacePresetAction.SHARE:
|
|
7870
8044
|
{
|
|
7871
8045
|
void getWorkspace(presetId, auth).then(function (preset) {
|
|
7872
|
-
return
|
|
8046
|
+
return updateWorkspace(presetId, Object.assign({}, preset, {
|
|
7873
8047
|
is_shared: !preset.is_shared
|
|
7874
8048
|
}), auth).then(function () {
|
|
8049
|
+
dispatch(workspaceListActions.onSuccessWorkspacePresetAction({
|
|
8050
|
+
workspaceId: presetId,
|
|
8051
|
+
action: WorkspacePresetAction.SHARE,
|
|
8052
|
+
title: presetTitle,
|
|
8053
|
+
scope: scope,
|
|
8054
|
+
is_shared: preset.is_shared
|
|
8055
|
+
}));
|
|
7875
8056
|
fetchWorkspaceList();
|
|
8057
|
+
})["catch"](function (error) {
|
|
8058
|
+
dispatch(workspaceListActions.onErrorWorkspacePresetAction({
|
|
8059
|
+
error: {
|
|
8060
|
+
message: "" + error,
|
|
8061
|
+
type: WorkspaceListErrorType.VERBATIM_ERROR,
|
|
8062
|
+
category: WorkspaceListErrorCategory.GENERIC
|
|
8063
|
+
}
|
|
8064
|
+
}));
|
|
7876
8065
|
});
|
|
7877
8066
|
});
|
|
7878
|
-
// TODO
|
|
7879
8067
|
break;
|
|
7880
8068
|
}
|
|
7881
8069
|
}
|
|
@@ -7887,8 +8075,9 @@ var WorkspaceSelectListConnect = function WorkspaceSelectListConnect() {
|
|
|
7887
8075
|
return jsxs(Box, {
|
|
7888
8076
|
"data-testid": "workspace-selectlist-connect",
|
|
7889
8077
|
style: {
|
|
7890
|
-
|
|
7891
|
-
|
|
8078
|
+
display: 'flex',
|
|
8079
|
+
flexDirection: 'column',
|
|
8080
|
+
height: '100%'
|
|
7892
8081
|
},
|
|
7893
8082
|
tabIndex: 0,
|
|
7894
8083
|
children: [isFetching && jsx(LinearProgress, {
|
|
@@ -7905,7 +8094,10 @@ var WorkspaceSelectListConnect = function WorkspaceSelectListConnect() {
|
|
|
7905
8094
|
whiteSpace: 'normal'
|
|
7906
8095
|
},
|
|
7907
8096
|
children: jsx(AlertBanner, Object.assign({
|
|
7908
|
-
title:
|
|
8097
|
+
title: (_GENERIC$AUTH$error$c = {
|
|
8098
|
+
GENERIC: '',
|
|
8099
|
+
AUTH: t('workspace-error-auth')
|
|
8100
|
+
}[error.category]) != null ? _GENERIC$AUTH$error$c : t('workspace-error-fetch'),
|
|
7909
8101
|
info: error.type === WorkspaceListErrorType.TRANSLATABLE_ERROR ? t(error.key, error.params) : error.message,
|
|
7910
8102
|
shouldClose: true
|
|
7911
8103
|
}, error.category === WorkspaceListErrorCategory.GENERIC && {
|
|
@@ -7918,24 +8110,55 @@ var WorkspaceSelectListConnect = function WorkspaceSelectListConnect() {
|
|
|
7918
8110
|
}))
|
|
7919
8111
|
}), jsxs(Box, {
|
|
7920
8112
|
sx: {
|
|
8113
|
+
display: 'flex',
|
|
8114
|
+
flexDirection: 'column',
|
|
8115
|
+
height: '100%',
|
|
7921
8116
|
padding: 1,
|
|
7922
|
-
|
|
8117
|
+
overflow: 'hidden'
|
|
7923
8118
|
},
|
|
7924
|
-
children: [!error &&
|
|
7925
|
-
|
|
7926
|
-
|
|
7927
|
-
|
|
7928
|
-
|
|
7929
|
-
|
|
7930
|
-
|
|
7931
|
-
|
|
7932
|
-
|
|
7933
|
-
|
|
7934
|
-
|
|
7935
|
-
|
|
7936
|
-
|
|
7937
|
-
|
|
7938
|
-
|
|
8119
|
+
children: [!error && jsxs(Box, {
|
|
8120
|
+
sx: {
|
|
8121
|
+
marginBottom: 1
|
|
8122
|
+
},
|
|
8123
|
+
children: [jsx(Box, {
|
|
8124
|
+
sx: {
|
|
8125
|
+
display: 'flex',
|
|
8126
|
+
width: '100%'
|
|
8127
|
+
},
|
|
8128
|
+
children: jsx(Filter, {
|
|
8129
|
+
filters: workspaceListFilters,
|
|
8130
|
+
onClickFilterChip: onClickFilterChip,
|
|
8131
|
+
isAllSelected: isAllSelected,
|
|
8132
|
+
searchQuery: workspaceSearchQuery,
|
|
8133
|
+
onSearch: searchFilter
|
|
8134
|
+
})
|
|
8135
|
+
}), jsx(Box, {
|
|
8136
|
+
sx: {
|
|
8137
|
+
display: 'flex',
|
|
8138
|
+
justifyContent: 'flex-start'
|
|
8139
|
+
},
|
|
8140
|
+
children: jsx(LastUpdateTime, {
|
|
8141
|
+
onPressRefresh: function onPressRefresh() {
|
|
8142
|
+
return fetchWorkspaceList();
|
|
8143
|
+
},
|
|
8144
|
+
hideLabel: true
|
|
8145
|
+
})
|
|
8146
|
+
})]
|
|
8147
|
+
}), jsx(Box, {
|
|
8148
|
+
sx: {
|
|
8149
|
+
flexGrow: 1,
|
|
8150
|
+
minHeight: 0
|
|
8151
|
+
},
|
|
8152
|
+
children: jsx(WorkspaceSelectList, {
|
|
8153
|
+
workspacePresets: filteredPresets,
|
|
8154
|
+
currentSelectedId: currentView.id || '',
|
|
8155
|
+
onClickWorkspacePreset: onClickWorkspacePreset,
|
|
8156
|
+
onClickWorkspacePresetOption: onClickWorkspacePresetOption,
|
|
8157
|
+
hideNewWorkspace: shouldHideNewWorkspace,
|
|
8158
|
+
isEditable: isLoggedIn,
|
|
8159
|
+
isAdmin: isAdmin,
|
|
8160
|
+
searchQuery: workspaceSearchQuery
|
|
8161
|
+
})
|
|
7939
8162
|
})]
|
|
7940
8163
|
})]
|
|
7941
8164
|
});
|
|
@@ -8070,13 +8293,13 @@ var useFetchWorkspacePresets = function useFetchWorkspacePresets() {
|
|
|
8070
8293
|
if (isAdmin !== lastAdmin && lastAdmin !== undefined) {
|
|
8071
8294
|
// reset list filter when user changes role
|
|
8072
8295
|
var filters = [{
|
|
8073
|
-
id:
|
|
8296
|
+
id: PresetFilterType.system,
|
|
8074
8297
|
isSelected: true
|
|
8075
8298
|
}, {
|
|
8076
|
-
id:
|
|
8299
|
+
id: PresetFilterType.personal,
|
|
8077
8300
|
isSelected: !isAdmin
|
|
8078
8301
|
}, {
|
|
8079
|
-
id:
|
|
8302
|
+
id: PresetFilterType.shared,
|
|
8080
8303
|
isSelected: !isAdmin
|
|
8081
8304
|
}];
|
|
8082
8305
|
dispatch(workspaceListActions.setFilterChips(filters));
|
|
@@ -8424,7 +8647,7 @@ var validateTitle$1 = function validateTitle(value) {
|
|
|
8424
8647
|
return !value.trim().length ? 'This field is required' : true;
|
|
8425
8648
|
};
|
|
8426
8649
|
var emptyWorkspacePreset = {
|
|
8427
|
-
scope:
|
|
8650
|
+
scope: SystemScope.user,
|
|
8428
8651
|
title: '',
|
|
8429
8652
|
"abstract": ''
|
|
8430
8653
|
};
|