@opengeoweb/workspace 10.0.0 → 10.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 CHANGED
@@ -1,6 +1,6 @@
1
1
  import { createEntityAdapter, createSlice, createSelector, createListenerMiddleware, combineReducers, configureStore } from '@reduxjs/toolkit';
2
- import { syncGroupsTypes, syncGroupsActions, layerActions, mapStoreActions, uiActions, genericActions, mapActions, layerTypes, mapEnums, selectorMemoizationOptions, genericSelectors, mapSelectors, syncGroupsSelectors, routerActions, coreModuleReducersMap, routerReducersMap, coreModuleMiddlewares, routerMiddlewares, linkComponentTypesConstants, uiTypes, loadingIndicatorSelectors, uiSelectors } from '@opengeoweb/store';
3
- import { createApiInstance, createNonAuthApiInstance, getApi, createFakeApiInstance, ApiProvider, useApiContext } from '@opengeoweb/api';
2
+ import { syncGroupsTypes, syncGroupsActions, layerActions, mapActions, uiActions, genericActions, layerTypes, mapEnums, selectorMemoizationOptions, genericSelectors, mapSelectors, syncGroupsSelectors, routerActions, coreModuleReducersMap, routerReducersMap, coreModuleMiddlewares, routerMiddlewares, linkComponentTypesConstants, uiTypes, loadingIndicatorSelectors, uiSelectors } from '@opengeoweb/store';
3
+ import { createApiInstance, createNonAuthApiInstance, getApi, createFakeApiInstance, ApiProvider, useApiContext, useAuthenticationContext as useAuthenticationContext$1, GEOWEB_ROLE_PRESETS_ADMIN as GEOWEB_ROLE_PRESETS_ADMIN$1 } from '@opengeoweb/api';
4
4
  import _, { chunk, cloneDeep, pick, isEmpty, isEqual, isString } from 'lodash';
5
5
  import { getLeaves, MosaicContext, getAndAssertNodeAtPathExists, createBalancedTreeFromLeaves, MosaicWindow, Mosaic } from 'react-mosaic-component';
6
6
  import { timeSeriesActions, TimeSeriesTypes, timeSeriesSelectors, timeSeriesReducersMap, timeSeriesMiddlewares } from '@opengeoweb/timeseries';
@@ -37,8 +37,7 @@ var en = {
37
37
  "workspce-clear": "Clear",
38
38
  "workspace-save": "Save",
39
39
  "workspace-save-as": "Save as",
40
- "workspace-edit": "Edit (name)",
41
- "workspace-edit-both": "Edit (name and abstract)",
40
+ "workspace-edit": "Edit (name and abstract)",
42
41
  "geoweb-welcome": "Welcome to GeoWeb. Please use one of the presets to open up new views",
43
42
  "workspace-modified-new": "modified",
44
43
  "workspace-modified-existing": "not saved",
@@ -96,14 +95,16 @@ var en = {
96
95
  "workspace-admin-save-new-viewpreset": "This new viewpreset will be added to the system presets.",
97
96
  "workspace-admin-save-new-viewpreset-warning": "Saving changes to this system preset will impact other presets.",
98
97
  "workspace-admin-save-new-viewpreset-title": "Save new system viewpreset",
99
- "workspace-admin-reset-workspace": "Reset",
100
- "workspace-admin-reset-workspace-title": "Reset to original",
98
+ "workspace-reset": "Reset",
99
+ "workspace-reset-title": "Reset to original",
101
100
  "workspace-dialog-delete-system": "Delete system workspace",
102
101
  "workspace-dialog-confirm-delete-system": "The system workspace will be deleted, but all the view presets used will remain intact.",
103
102
  "workspace-dialog-confirm-delete-user": "The workspace will be deleted, but all the view presets used will remain intact.",
104
103
  "workspace-list-success-delete-system": "\"{{TITLE}}\" has been successfully removed from the system's workspaces.",
105
104
  "workspace-link-location-header": "Location",
106
- "workspace-link": "Link"
105
+ "workspace-link": "Link",
106
+ "workspace-dialog-confirm-reset-view-message": "The view will be reset and all changes will be lost. Are you sure you want to continue?",
107
+ "workspace-viewpreset-success-reset": "View preset \"{{TITLE}}\" has been reset succesfully"
107
108
  };
108
109
  var fi = {
109
110
  "workspace-menu": "Workspace menu",
@@ -115,8 +116,7 @@ var fi = {
115
116
  "workspce-clear": "Tyhjennä",
116
117
  "workspace-save": "Tallenna",
117
118
  "workspace-save-as": "Tallenna nimellä",
118
- "workspace-edit": "Muokkaa (nimeä)",
119
- "workspace-edit-both": "Muokkaa (nimeä ja tiivistelmää)",
119
+ "workspace-edit": "Muokkaa (nimeä ja tiivistelmää)",
120
120
  "geoweb-welcome": "Tervetuloa Geoweb-sovellukseen. Valitse jokin preset avataksesi uusia näkymiä",
121
121
  "workspace-modified-new": "muokattu",
122
122
  "workspace-modified-existing": "ei tallennettu",
@@ -173,12 +173,14 @@ var fi = {
173
173
  "workspace-admin-save-new-viewpreset": "ei käännetty",
174
174
  "workspace-admin-save-new-viewpreset-warning": "ei käännetty",
175
175
  "workspace-admin-save-new-viewpreset-title": "ei käännetty",
176
- "workspace-admin-reset-workspace": "ei käännetty",
177
- "workspace-admin-reset-workspace-title": "ei käännetty",
176
+ "workspace-reset": "Palauta alkuperäinen",
177
+ "workspace-reset-title": "ei käännetty",
178
178
  "workspace-dialog-confirm-delete-system": "ei käännetty",
179
179
  "workspace-dialog-confirm-delete-user": "Workspace poistetaan, mutta kaikki view presetit säilyvät tallennettuina.",
180
180
  "workspace-link-location-header": "Sijainti",
181
- "workspace-link": "Link"
181
+ "workspace-link": "Link",
182
+ "workspace-dialog-confirm-reset-view-message": "ei käännetty",
183
+ "workspace-viewpreset-success-reset": "ei käännetty"
182
184
  };
183
185
  var no = {
184
186
  "workspace-menu": "Arbeidsrommeny",
@@ -190,8 +192,7 @@ var no = {
190
192
  "workspce-clear": "Tøm",
191
193
  "workspace-save": "Lagre",
192
194
  "workspace-save-as": "Lagre som",
193
- "workspace-edit": "Endre (navn)",
194
- "workspace-edit-both": "Endre (navn og abstrakt)",
195
+ "workspace-edit": "Endre (navn og abstrakt)",
195
196
  "geoweb-welcome": "Velkommen til GeoWeb. Åpne et forhåndsvalg for å åpne nye vinduer",
196
197
  "workspace-modified-new": "modifisert",
197
198
  "workspace-modified-existing": "ikke lagret",
@@ -248,12 +249,14 @@ var no = {
248
249
  "workspace-admin-save-new-viewpreset": "Denne nye vinduet blir algt til systemets forhåndsinnstillinger.",
249
250
  "workspace-admin-save-new-viewpreset-warning": "Lagring av endringer til denne systempreset vil påvirke andre presets.",
250
251
  "workspace-admin-save-new-viewpreset-title": "Lagre ny systempreset",
251
- "workspace-admin-reset-workspace": "Tilbakestill",
252
- "workspace-admin-reset-workspace-title": "Tilbakestill til original",
252
+ "workspace-reset": "Tilbakestill",
253
+ "workspace-reset-title": "Tilbakestill til original",
253
254
  "workspace-dialog-confirm-delete-system": "Systemets arbeidsrom vil bli slettet, men alle vinduer som er brukt vil forbli intakte.",
254
255
  "workspace-dialog-confirm-delete-user": "Arbeidsrommet blir slettet, men alle vinduer som er brukt vil forbli intakte.",
255
256
  "workspace-link-location-header": "Lokasjon",
256
- "workspace-link": "Link"
257
+ "workspace-link": "Link",
258
+ "workspace-dialog-confirm-reset-view-message": "Ikke oversatt",
259
+ "workspace-viewpreset-success-reset": "Ikke oversatt"
257
260
  };
258
261
  var nl = {
259
262
  "workspace-menu": "Workspace menu",
@@ -265,8 +268,7 @@ var nl = {
265
268
  "workspce-clear": "Wissen",
266
269
  "workspace-save": "Opslaan",
267
270
  "workspace-save-as": "Opslaan als",
268
- "workspace-edit": "Aanpassen (naam)",
269
- "workspace-edit-both": "Aanpassen (naam en abstract)",
271
+ "workspace-edit": "Aanpassen (naam en abstract)",
270
272
  "geoweb-welcome": "Welkom bij GeoWeb. Kies een van de presets om een nieuw venster te openen",
271
273
  "workspace-modified-new": "bewerkt",
272
274
  "workspace-modified-existing": "niet opgeslagen",
@@ -303,7 +305,7 @@ var nl = {
303
305
  "workspace-list-success-delete": "Workspace \"{{TITLE}}\" succesvol verwijderd",
304
306
  "workspace-list-success-duplicate": "Workspace \"{{TITLE}}\" succesvol opgeslagen",
305
307
  "workspace-list-success-edit": "Workspace \"{{TITLE}}\" succesvol aangepast",
306
- "workspace-list-success-reset": "Workspace\"{{TITLE}}\" herstelt naar origineel ",
308
+ "workspace-list-success-reset": "Workspace\"{{TITLE}}\" succesvol hersteld naar origineel",
307
309
  "workspace-list-success-save": "Workspace \"{{TITLE}}\" succesvol opgeslagen",
308
310
  "workspace-save-error": "Workspace opslaan \"{{TITLE}}\" mislukt",
309
311
  "workspace-error-generic": "Er is iets mis gegaan, probeer het opnieuw",
@@ -323,15 +325,17 @@ var nl = {
323
325
  "workspace-admin-save-new-viewpreset": "Deze nieuwe viewpreset zal worden toegevoegd aan de systeem presets.",
324
326
  "workspace-admin-save-new-viewpreset-warning": "Het opslaan van wijzigingen aan systeem presets kan leiden tot veranderingen in andere presets.",
325
327
  "workspace-admin-save-new-viewpreset-title": "Opslaan als systeem viewpreset",
326
- "workspace-admin-reset-workspace": "Workspace herstellen",
327
- "workspace-admin-reset-workspace-title": "Herstellen naar origineel",
328
+ "workspace-reset": "Herstellen",
329
+ "workspace-reset-title": "Herstellen naar origineel",
328
330
  "workspace-dialog-delete-system": "Verwijder systeem workspace",
329
331
  "workspace-dialog-confirm-delete-system": "Deze systeem workspace zal worden verwijderd, maar alle gebruikte viewpresets zullen intact blijven.",
330
332
  "workspace-dialog-confirm-reset-personal-message": "De workspace zal worden hersteld en alle aanpassing zullen worden verwijderd. Weet je zeker dat je door wilt gaan?",
331
333
  "workspace-list-success-delete-system": "\"{{TITLE}}\" is succesvol verwijderd uit de systeem workspaces.",
332
334
  "workspace-dialog-confirm-delete-user": "Deze workspace zal worden verwijderd, maar alle gebruikte view presets zullen intact blijven.",
333
335
  "workspace-link-location-header": "Locatie",
334
- "workspace-link": "Link"
336
+ "workspace-link": "Link",
337
+ "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?",
338
+ "workspace-viewpreset-success-reset": "Viewpreset \"{{TITLE}}\" succesvol hersteld naar origineel"
335
339
  };
336
340
  var workspaceTranslations = {
337
341
  en: en,
@@ -1064,6 +1068,7 @@ var PresetAction;
1064
1068
  PresetAction["SAVE_AS"] = "Save as";
1065
1069
  PresetAction["SHARE"] = "Share";
1066
1070
  PresetAction["EDIT"] = "Edit";
1071
+ PresetAction["RESET"] = "Reset";
1067
1072
  })(PresetAction || (PresetAction = {}));
1068
1073
 
1069
1074
  /* *
@@ -1105,7 +1110,7 @@ var viewPresetsAdapter = createEntityAdapter({
1105
1110
  var initialState$2 = viewPresetsAdapter.getInitialState();
1106
1111
  var warningsPresetChangeActions = [publicWarningActions.setWarningFilters];
1107
1112
  var syncGroupChangeActions = [syncGroupsActions.syncGroupRemoveTarget, syncGroupsActions.syncGroupAddTarget];
1108
- var mapPresetChangeActions = [layerActions.setBaseLayers, layerActions.layerDelete, layerActions.addLayer, layerActions.duplicateMapLayer, layerActions.layerChangeEnabled, layerActions.layerChangeName, layerActions.layerChangeStyle, layerActions.layerChangeOpacity, layerActions.layerChangeDimension, mapStoreActions.layerMoveLayer, mapStoreActions.setAutoLayerId, mapStoreActions.toggleAutoUpdate, mapStoreActions.mapStartAnimation, mapStoreActions.mapStopAnimation, mapStoreActions.toggleTimeSliderIsVisible, mapStoreActions.setTimeStep, mapStoreActions.setAnimationDelay, mapStoreActions.toggleTimestepAuto, mapStoreActions.setAnimationStartTime, mapStoreActions.setAnimationEndTime, uiActions.setActiveMapIdForDialog, uiActions.setToggleOpenDialog, genericActions.setBbox, mapActions.setBbox];
1113
+ var mapPresetChangeActions = [layerActions.setBaseLayers, layerActions.layerDelete, layerActions.addLayer, layerActions.duplicateMapLayer, layerActions.layerChangeEnabled, layerActions.layerChangeName, layerActions.layerChangeStyle, layerActions.layerChangeOpacity, layerActions.layerChangeDimension, mapActions.layerMoveLayer, mapActions.setAutoLayerId, mapActions.toggleAutoUpdate, mapActions.mapStartAnimation, mapActions.mapStopAnimation, mapActions.toggleTimeSliderIsVisible, mapActions.setTimeStep, mapActions.setTimeSliderSpan, mapActions.toggleTimeSpanAuto, mapActions.setAnimationDelay, mapActions.toggleTimestepAuto, mapActions.setAnimationStartTime, mapActions.setAnimationEndTime, uiActions.setActiveMapIdForDialog, uiActions.setToggleOpenDialog, genericActions.setBbox, mapActions.setBbox];
1109
1114
  var timeSeriesPresetChangeActions = [timeSeriesActions.addParameter, timeSeriesActions.addPlot, timeSeriesActions.deleteParameter, timeSeriesActions.deletePlot, timeSeriesActions.moveParameter, timeSeriesActions.movePlot, timeSeriesActions.toggleParameter, timeSeriesActions.togglePlot, timeSeriesActions.patchParameter, timeSeriesActions.updateTitle];
1110
1115
  var supportedMapActionOrigins = [layerTypes.LayerActionOrigin.layerManager, layerTypes.LayerActionOrigin.wmsLoader, mapEnums.MapActionOrigin.map];
1111
1116
  var supportedTimeSeriesActionOrigins = [TimeSeriesTypes.TimeSeriesActionOrigin.timeSeriesManager, TimeSeriesTypes.TimeSeriesActionOrigin.timeSeriesSelect];
@@ -1900,34 +1905,40 @@ var slice$1 = createSlice({
1900
1905
  var _action$payload5 = action.payload,
1901
1906
  panelId = _action$payload5.panelId,
1902
1907
  title = _action$payload5.title,
1903
- presetAction = _action$payload5.action;
1908
+ presetAction = _action$payload5.action,
1909
+ scope = _action$payload5.scope,
1910
+ _abstract = _action$payload5["abstract"];
1904
1911
  var entity = draft.views.byId[panelId];
1905
1912
  if (entity && presetAction !== PresetAction.DELETE) {
1906
1913
  entity.title = title;
1907
- entity.scope = 'user';
1914
+ entity.scope = scope || 'user';
1915
+ entity["abstract"] = _abstract;
1908
1916
  }
1909
1917
  });
1910
1918
  workspacePresetChangeActions.map(function (action) {
1911
1919
  return builder.addCase(action, function (draft, payload) {
1912
- var _payload$payload;
1913
- var hasChanges = action !== syncGroupsActions.syncGroupAddGroup && action !== syncGroupsActions.syncGroupToggleIsTimeScrollingEnabled || ((_payload$payload = payload.payload) == null ? void 0 : _payload$payload.origin) === 'user';
1920
+ var _payload$payload, _payload$payload2;
1921
+ var isResetViewPreset = action === viewPresetActions.selectViewPreset && ((_payload$payload = payload.payload) == null ? void 0 : _payload$payload.shouldReset);
1922
+ var isSyncGroupAction = action === syncGroupsActions.syncGroupAddGroup || action === syncGroupsActions.syncGroupToggleIsTimeScrollingEnabled;
1923
+ var isUserOrigin = isSyncGroupAction && ((_payload$payload2 = payload.payload) == null ? void 0 : _payload$payload2.origin) === 'user';
1924
+ var hasChanges = !isResetViewPreset && !isSyncGroupAction || isUserOrigin;
1914
1925
  draft.hasChanges = hasChanges;
1915
1926
  // reset title and scope when setting empty activeViewPresetId
1916
1927
  if (action.type === viewPresetActions.setActiveViewPresetId.type) {
1917
- var _payload$payload2 = payload.payload,
1918
- panelId = _payload$payload2.panelId,
1919
- viewPresetId = _payload$payload2.viewPresetId;
1928
+ var _payload$payload3 = payload.payload,
1929
+ panelId = _payload$payload3.panelId,
1930
+ viewPresetId = _payload$payload3.viewPresetId;
1920
1931
  var entity = draft.views.byId[panelId];
1921
1932
  if (entity && viewPresetId === '') {
1922
1933
  entity.title = '';
1923
1934
  entity.scope = 'system';
1935
+ entity["abstract"] = '';
1924
1936
  }
1925
1937
  }
1926
1938
  });
1927
1939
  });
1928
1940
  }
1929
1941
  });
1930
- // eslint-disable-next-line prefer-destructuring
1931
1942
  var reducer$1 = slice$1.reducer;
1932
1943
  var workspaceActions = Object.assign({}, slice$1.actions);
1933
1944
 
@@ -1963,17 +1974,17 @@ var selectors$2 = viewPresetsAdapter.getSelectors(function (state) {
1963
1974
  });
1964
1975
  var getViewPresets = selectors$2.selectAll,
1965
1976
  getViewPresetById = selectors$2.selectById;
1966
- var getViewPresetsIsFetching = createSelector(getViewPresetById, function (store, panelId) {
1977
+ var getViewPresetsIsFetching = createSelector(getViewPresetById, function (_store, panelId) {
1967
1978
  return panelId;
1968
1979
  }, function (viewPreset) {
1969
1980
  return (viewPreset == null ? void 0 : viewPreset.isFetching) || false;
1970
1981
  }, selectorMemoizationOptions);
1971
- var getViewPresetsError = createSelector(getViewPresetById, function (store, panelId) {
1982
+ var getViewPresetsError = createSelector(getViewPresetById, function (_store, panelId) {
1972
1983
  return panelId;
1973
1984
  }, function (viewPreset) {
1974
1985
  return viewPreset == null ? void 0 : viewPreset.error;
1975
1986
  }, selectorMemoizationOptions);
1976
- var getViewPresetDetailError = createSelector(getViewPresetsError, function (store, panelId) {
1987
+ var getViewPresetDetailError = createSelector(getViewPresetsError, function (_store, panelId) {
1977
1988
  return panelId;
1978
1989
  }, function (error) {
1979
1990
  if (error && error.component === 'PRESET_DETAIL') {
@@ -1981,12 +1992,12 @@ var getViewPresetDetailError = createSelector(getViewPresetsError, function (sto
1981
1992
  }
1982
1993
  return undefined;
1983
1994
  }, selectorMemoizationOptions);
1984
- var getViewPresetHasChanges = createSelector(getViewPresetById, function (store, panelId) {
1995
+ var getViewPresetHasChanges = createSelector(getViewPresetById, function (_store, panelId) {
1985
1996
  return panelId;
1986
1997
  }, function (viewPreset) {
1987
1998
  return viewPreset == null ? void 0 : viewPreset.hasChanges;
1988
1999
  }, selectorMemoizationOptions);
1989
- var getViewPresetActiveId = createSelector(getViewPresetById, function (store, panelId) {
2000
+ var getViewPresetActiveId = createSelector(getViewPresetById, function (_store, panelId) {
1990
2001
  return panelId;
1991
2002
  }, function (viewPreset) {
1992
2003
  return viewPreset == null ? void 0 : viewPreset.activeViewPresetId;
@@ -2004,7 +2015,7 @@ var getDialogOptions = createSelector(getViewPresetsStore, function (store) {
2004
2015
  }, function (store) {
2005
2016
  return store.viewPresetDialog || undefined;
2006
2017
  }, selectorMemoizationOptions);
2007
- var getIsViewPresetListDialogOpen = createSelector(getViewPresetById, function (store, panelId) {
2018
+ var getIsViewPresetListDialogOpen = createSelector(getViewPresetById, function (_store, panelId) {
2008
2019
  return panelId;
2009
2020
  }, function (viewPreset) {
2010
2021
  return (viewPreset == null ? void 0 : viewPreset.isViewPresetListDialogOpen) || false;
@@ -2026,7 +2037,7 @@ var getViewPresetListFiltersForView = createSelector(getViewPresetById, function
2026
2037
  }
2027
2038
  return filters;
2028
2039
  }, selectorMemoizationOptions);
2029
- var getViewPresetListSearchQueryForView = createSelector(getViewPresetById, function (store, panelId) {
2040
+ var getViewPresetListSearchQueryForView = createSelector(getViewPresetById, function (_store, panelId) {
2030
2041
  return panelId;
2031
2042
  }, function (viewPreset) {
2032
2043
  return (viewPreset == null ? void 0 : viewPreset.searchQuery) || '';
@@ -2086,6 +2097,14 @@ var getSnackbarMessage = function getSnackbarMessage(action, title) {
2086
2097
  TITLE: trimmedTitle
2087
2098
  }
2088
2099
  };
2100
+ case PresetAction.RESET:
2101
+ return {
2102
+ key: 'workspace-viewpreset-success-reset',
2103
+ type: snackbarTypes.SnackbarMessageType.TRANSLATABLE_MESSAGE,
2104
+ params: {
2105
+ TITLE: trimmedTitle
2106
+ }
2107
+ };
2089
2108
  default:
2090
2109
  return {
2091
2110
  key: 'workspace-viewpreset-success-save',
@@ -3087,6 +3106,7 @@ var viewPresetsListFullContent = [
3087
3106
  {
3088
3107
  id: "radar",
3089
3108
  title: "Radar",
3109
+ abstract: "abstract radar",
3090
3110
  componentType: "Map",
3091
3111
  initialProps: {
3092
3112
  mapPreset: {
@@ -4308,6 +4328,7 @@ var viewPresetsListFullContent = [
4308
4328
  var viewPresetsList = [
4309
4329
  {
4310
4330
  title: "Radar",
4331
+ abstract: "abstract radar",
4311
4332
  id: "radar",
4312
4333
  date: "2022-06-01T12:34:27.787184",
4313
4334
  scope: "system"
@@ -4478,7 +4499,8 @@ var viewPresetsList = [
4478
4499
  title: "Cap Warnings",
4479
4500
  id: "capView",
4480
4501
  date: "2022-06-01T12:34:27.787184",
4481
- scope: "system"
4502
+ scope: "system",
4503
+ abstract: "abstract cap"
4482
4504
  },
4483
4505
  {
4484
4506
  title: "Warning List",
@@ -4642,7 +4664,7 @@ var createApi = function createApi() {
4642
4664
 
4643
4665
  var workspaceListener = createListenerMiddleware();
4644
4666
  workspaceListener.startListening({
4645
- actionCreator: mapStoreActions.registerMap,
4667
+ actionCreator: mapActions.registerMap,
4646
4668
  effect: function () {
4647
4669
  var _effect = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(_ref, listenerApi) {
4648
4670
  var payload, mapId, viewType, _workspaceState$views, workspaceState, mapPresetId;
@@ -4673,7 +4695,7 @@ workspaceListener.startListening({
4673
4695
  }()
4674
4696
  });
4675
4697
  workspaceListener.startListening({
4676
- actionCreator: mapStoreActions.unregisterMap,
4698
+ actionCreator: mapActions.unregisterMap,
4677
4699
  effect: function () {
4678
4700
  var _effect2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(_ref2, listenerApi) {
4679
4701
  var payload, mapId, viewType;
@@ -5409,7 +5431,7 @@ viewPresetsListener.startListening({
5409
5431
  panelId = payload.panelId, _payload$viewPresetId = payload.viewPresetId, viewPresetId = _payload$viewPresetId === void 0 ? '' : _payload$viewPresetId;
5410
5432
  isMapAnimating = mapSelectors.isAnimating(listenerApi.getState(), panelId);
5411
5433
  if (isMapAnimating) {
5412
- listenerApi.dispatch(mapStoreActions.mapStopAnimation({
5434
+ listenerApi.dispatch(mapActions.mapStopAnimation({
5413
5435
  mapId: panelId
5414
5436
  }));
5415
5437
  }
@@ -5421,7 +5443,7 @@ viewPresetsListener.startListening({
5421
5443
  }));
5422
5444
  } else {
5423
5445
  // new map preset selected
5424
- listenerApi.dispatch(mapStoreActions.setMapPreset({
5446
+ listenerApi.dispatch(mapActions.setMapPreset({
5425
5447
  mapId: panelId,
5426
5448
  initialProps: emptyViewPreset('Map').initialProps
5427
5449
  }));
@@ -5733,6 +5755,8 @@ workspaceListListener.startListening({
5733
5755
  case 0:
5734
5756
  viewPresetEntity = Object.assign({}, getViewPresetToSendToBackend(listenerApi.getState(), view.mosaicNodeId), {
5735
5757
  title: view.title
5758
+ }, view["abstract"] && {
5759
+ "abstract": view["abstract"]
5736
5760
  });
5737
5761
  shouldUpdateView = view.hasChanges && view.isSelected;
5738
5762
  canUpdateView = scope === 'system' || scope === viewPresetEntity.scope; // save existing views
@@ -5979,7 +6003,6 @@ var workspaceReducersMap = {
5979
6003
  };
5980
6004
  var workspaceMiddlewares = [viewPresetsListener.middleware, workspaceListener.middleware, workspaceListListener.middleware];
5981
6005
  var workspaceModuleConfig = {
5982
- id: 'workspace-module',
5983
6006
  reducersMap: workspaceReducersMap,
5984
6007
  middlewares: workspaceMiddlewares
5985
6008
  };
@@ -6163,12 +6186,12 @@ var WorkspaceModuleProvider = function WorkspaceModuleProvider(_ref) {
6163
6186
  });
6164
6187
  };
6165
6188
 
6166
- var _excluded$4 = ["component", "payload"];
6189
+ var _excluded$5 = ["component", "payload"];
6167
6190
  // takes a component and connects module methods with workspace store
6168
6191
  var ComponentsLookUpWrapper = function ComponentsLookUpWrapper(_ref) {
6169
6192
  var component = _ref.component,
6170
6193
  payload = _ref.payload,
6171
- props = _objectWithoutPropertiesLoose(_ref, _excluded$4);
6194
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$5);
6172
6195
  var RenderComponent = component;
6173
6196
  var dispatch = useDispatch();
6174
6197
  var viewId = payload.id;
@@ -6583,12 +6606,11 @@ var WorkspaceSelectListRow = function WorkspaceSelectListRow(_ref) {
6583
6606
  var onEdit = function onEdit() {
6584
6607
  onClickWorkspacePresetOption(workspacePreset.id, WorkspacePresetAction.EDIT, workspacePreset);
6585
6608
  };
6586
- var editTitle = testIdPrefix === 'viewpreset' ? 'workspace-edit' : 'workspace-edit-both';
6587
6609
  var menuItems = [{
6588
6610
  text: t('workspace-duplicate'),
6589
6611
  action: onDuplicate
6590
- }].concat(workspacePreset.scope === 'user' ? [{
6591
- text: t(editTitle),
6612
+ }].concat(workspacePreset.scope === 'user' || isAdmin ? [{
6613
+ text: t('workspace-edit'),
6592
6614
  action: onEdit
6593
6615
  }] : []);
6594
6616
  return jsx(ListItem, {
@@ -6647,7 +6669,7 @@ var WorkspaceSelectListRow = function WorkspaceSelectListRow(_ref) {
6647
6669
  marginLeft: 2
6648
6670
  },
6649
6671
  children: jsxs(Grid2, {
6650
- children: [!isAdmin && jsx(ToggleMenu, {
6672
+ children: [jsx(ToggleMenu, {
6651
6673
  buttonTestId: testIdPrefix + "-listOptionsButton",
6652
6674
  menuPosition: "right",
6653
6675
  menuItems: menuItems,
@@ -6846,7 +6868,8 @@ var ViewPresetMenuListConnect = function ViewPresetMenuListConnect(_ref) {
6846
6868
  panelId: panelId,
6847
6869
  formValues: {
6848
6870
  title: preset.title,
6849
- initialProps: constructInitialProps()
6871
+ initialProps: constructInitialProps(),
6872
+ "abstract": preset["abstract"]
6850
6873
  }
6851
6874
  });
6852
6875
  break;
@@ -6860,14 +6883,13 @@ var ViewPresetMenuListConnect = function ViewPresetMenuListConnect(_ref) {
6860
6883
  panelId: panelId,
6861
6884
  viewPresetId: presetId,
6862
6885
  formValues: {
6863
- title: presetTitle
6886
+ title: presetTitle,
6887
+ "abstract": preset["abstract"]
6864
6888
  }
6865
6889
  });
6866
6890
  break;
6867
6891
  }
6868
- // case WorkspacePresetAction.SAVE: {
6869
- // break;
6870
- // }
6892
+ case WorkspacePresetAction.DELETE_SYSTEM_PRESET:
6871
6893
  case WorkspacePresetAction.DELETE:
6872
6894
  {
6873
6895
  openViewPresetsDialog({
@@ -6914,8 +6936,6 @@ var ViewPresetMenuListConnect = function ViewPresetMenuListConnect(_ref) {
6914
6936
  return filter.isSelected;
6915
6937
  });
6916
6938
  var shouldHideNewWorkspace = !isAllSelectedForFilters || viewPresetListSearchQuery.length > 0;
6917
- // disable edit for admin users for now
6918
- var isEditable = isLoggedIn && !isAdmin;
6919
6939
  return jsxs("div", {
6920
6940
  "data-testid": "viewpreset-selectlist-connect",
6921
6941
  style: {
@@ -6957,10 +6977,11 @@ var ViewPresetMenuListConnect = function ViewPresetMenuListConnect(_ref) {
6957
6977
  newPreset: Object.assign({}, getEmptyWorkspaceListItem(t), {
6958
6978
  title: t('workspace-mappreset-new')
6959
6979
  }),
6960
- isEditable: isEditable,
6961
6980
  hideNewWorkspace: shouldHideNewWorkspace,
6962
6981
  searchQuery: viewPresetListSearchQuery,
6963
- testIdPrefix: "viewpreset"
6982
+ testIdPrefix: "viewpreset",
6983
+ isAdmin: isAdmin,
6984
+ isEditable: isLoggedIn
6964
6985
  })]
6965
6986
  })]
6966
6987
  });
@@ -7038,6 +7059,8 @@ var ViewPresetMenu = function ViewPresetMenu(_ref) {
7038
7059
  });
7039
7060
  };
7040
7061
 
7062
+ var workspacePresetOptionId = 'workspace-options-toolbutton';
7063
+ var viewPresetOptionId = 'viewpreset-options-toolbutton';
7041
7064
  var WorkspaceOptionsNoMemo = function WorkspaceOptionsNoMemo(_ref) {
7042
7065
  var title = _ref.title,
7043
7066
  activeTab = _ref.activeTab,
@@ -7047,15 +7070,14 @@ var WorkspaceOptionsNoMemo = function WorkspaceOptionsNoMemo(_ref) {
7047
7070
  handleSaveAs = _ref.handleSaveAs,
7048
7071
  handleEdit = _ref.handleEdit,
7049
7072
  handleDelete = _ref.handleDelete,
7050
- handleSaveSystemPresetAs = _ref.handleSaveSystemPresetAs,
7051
- handleResetWorkspace = _ref.handleResetWorkspace,
7073
+ handleReset = _ref.handleReset,
7052
7074
  _ref$hasChanges = _ref.hasChanges,
7053
7075
  hasChanges = _ref$hasChanges === void 0 ? false : _ref$hasChanges,
7054
7076
  _ref$isDisabled = _ref.isDisabled,
7055
7077
  isDisabled = _ref$isDisabled === void 0 ? false : _ref$isDisabled,
7056
7078
  panelId = _ref.panelId,
7057
7079
  _ref$id = _ref.id,
7058
- id = _ref$id === void 0 ? 'workspace-options-toolbutton' : _ref$id,
7080
+ id = _ref$id === void 0 ? workspacePresetOptionId : _ref$id,
7059
7081
  _ref$isAdmin = _ref.isAdmin,
7060
7082
  isAdmin = _ref$isAdmin === void 0 ? false : _ref$isAdmin;
7061
7083
  var _useWorkspaceTranslat = useWorkspaceTranslation(),
@@ -7072,32 +7094,22 @@ var WorkspaceOptionsNoMemo = function WorkspaceOptionsNoMemo(_ref) {
7072
7094
  setAnchorEl(document.getElementById(id));
7073
7095
  }
7074
7096
  }, [isDefaultOpen, id]);
7075
- var editTitle = id === 'viewpreset-options-toolbutton' ? t('workspace-edit') : t('workspace-edit-both');
7076
- var options = !isAdmin ? [{
7097
+ var isViewPresetsOptions = id === viewPresetOptionId;
7098
+ var saveAsTitle = isAdmin && !isViewPresetsOptions ? t('workspace-admin-save-new-workspace') : t('workspace-save-as');
7099
+ var isAdminWorkspaceOptions = isAdmin && id === workspacePresetOptionId;
7100
+ var options = [{
7077
7101
  title: t('workspace-save'),
7078
7102
  callback: handleSave
7079
7103
  }, {
7080
- title: t('workspace-save-as'),
7104
+ title: saveAsTitle,
7081
7105
  callback: handleSaveAs
7082
- }, {
7083
- title: editTitle,
7106
+ }].concat(!isAdminWorkspaceOptions ? [{
7107
+ title: t('workspace-edit'),
7084
7108
  callback: handleEdit
7085
- }].concat(handleResetWorkspace ? [{
7086
- title: t('workspace-admin-reset-workspace'),
7087
- callback: handleResetWorkspace
7088
- }] : [], [{
7089
- title: t('workspace-delete'),
7090
- callback: handleDelete
7091
- }]) : [{
7092
- title: t('workspace-save'),
7093
- callback: handleSave
7094
- }].concat(handleSaveSystemPresetAs ? [{
7095
- title: t('workspace-admin-save-new-workspace'),
7096
- callback: handleSaveSystemPresetAs
7097
- }] : [], handleResetWorkspace ? [{
7098
- title: t('workspace-admin-reset-workspace'),
7099
- callback: handleResetWorkspace
7100
7109
  }] : [], [{
7110
+ title: t('workspace-reset'),
7111
+ callback: handleReset
7112
+ }, {
7101
7113
  title: t('workspace-delete'),
7102
7114
  callback: handleDelete
7103
7115
  }]);
@@ -7217,6 +7229,7 @@ var LoadingIndicatorConnect = function LoadingIndicatorConnect(_ref) {
7217
7229
  });
7218
7230
  };
7219
7231
 
7232
+ var _excluded$4 = ["title", "scope"];
7220
7233
  var customIconStyles = function customIconStyles(theme, isViewPresetDialogOpen) {
7221
7234
  return {
7222
7235
  marginLeft: -1,
@@ -7241,17 +7254,19 @@ var WorkspaceViewTitleConnectNoMemo = function WorkspaceViewTitleConnectNoMemo(_
7241
7254
  var _useWorkspaceTranslat = useWorkspaceTranslation(),
7242
7255
  t = _useWorkspaceTranslat.t;
7243
7256
  var _useAuthenticationCon = useAuthenticationContext(),
7244
- currentRole = _useAuthenticationCon.currentRole;
7257
+ currentRole = _useAuthenticationCon.currentRole,
7258
+ isLoggedIn = _useAuthenticationCon.isLoggedIn;
7245
7259
  var isAdmin = (currentRole == null ? void 0 : currentRole.name) === GEOWEB_ROLE_PRESETS_ADMIN.name;
7246
7260
  var workspaceView = useSelector(function (store) {
7247
7261
  var _workspaceSelectors$g;
7248
7262
  var _ref2 = (_workspaceSelectors$g = getViewById(store, panelId)) != null ? _workspaceSelectors$g : {},
7249
7263
  title = _ref2.title,
7250
- scope = _ref2.scope;
7251
- return {
7264
+ scope = _ref2.scope,
7265
+ restProps = _objectWithoutPropertiesLoose(_ref2, _excluded$4);
7266
+ return Object.assign({
7252
7267
  title: title,
7253
7268
  scope: scope
7254
- };
7269
+ }, restProps);
7255
7270
  }, shallowEqual);
7256
7271
  var viewComponentType = useSelector(function (store) {
7257
7272
  return getViewComponentType(store, panelId);
@@ -7265,6 +7280,7 @@ var WorkspaceViewTitleConnectNoMemo = function WorkspaceViewTitleConnectNoMemo(_
7265
7280
  var relatedSyncGroupIds = useSelector(function (store) {
7266
7281
  return syncGroupsSelectors.getAllTargetGroupsForSource(store, panelId);
7267
7282
  });
7283
+ var presetAbstract = workspaceView == null ? void 0 : workspaceView["abstract"];
7268
7284
  var isNewActive = activeViewPresetId === '';
7269
7285
  var title = workspaceView.title || t('workspace-mappreset-new');
7270
7286
  var viewScope = workspaceView.scope;
@@ -7309,10 +7325,11 @@ var WorkspaceViewTitleConnectNoMemo = function WorkspaceViewTitleConnectNoMemo(_
7309
7325
  viewPresetId: activeViewPresetId,
7310
7326
  panelId: panelId,
7311
7327
  formValues: {
7312
- title: title
7328
+ title: title,
7329
+ "abstract": presetAbstract
7313
7330
  }
7314
7331
  });
7315
- }, [activeViewPresetId, openViewPresetsDialog, panelId, title, t]);
7332
+ }, [activeViewPresetId, openViewPresetsDialog, panelId, title, presetAbstract, t]);
7316
7333
  var onSaveAs = React.useCallback(function () {
7317
7334
  var formTitle = activeViewPresetId ? title : '';
7318
7335
  openViewPresetsDialog({
@@ -7322,10 +7339,11 @@ var WorkspaceViewTitleConnectNoMemo = function WorkspaceViewTitleConnectNoMemo(_
7322
7339
  panelId: panelId,
7323
7340
  formValues: {
7324
7341
  title: formTitle,
7325
- initialProps: constructInitialProps()
7342
+ initialProps: constructInitialProps(),
7343
+ "abstract": presetAbstract
7326
7344
  }
7327
7345
  });
7328
- }, [activeViewPresetId, constructInitialProps, openViewPresetsDialog, panelId, t, title]);
7346
+ }, [activeViewPresetId, constructInitialProps, openViewPresetsDialog, panelId, t, title, presetAbstract]);
7329
7347
  var onEdit = React.useCallback(function () {
7330
7348
  var formTitle = activeViewPresetId ? title : '';
7331
7349
  openViewPresetsDialog({
@@ -7335,10 +7353,22 @@ var WorkspaceViewTitleConnectNoMemo = function WorkspaceViewTitleConnectNoMemo(_
7335
7353
  viewPresetId: activeViewPresetId,
7336
7354
  formValues: {
7337
7355
  title: formTitle,
7338
- initialProps: constructInitialProps()
7356
+ initialProps: constructInitialProps(),
7357
+ "abstract": presetAbstract
7358
+ }
7359
+ });
7360
+ }, [activeViewPresetId, constructInitialProps, openViewPresetsDialog, panelId, t, title, presetAbstract]);
7361
+ var onReset = React.useCallback(function () {
7362
+ openViewPresetsDialog({
7363
+ title: t('workspace-reset-title'),
7364
+ action: PresetAction.RESET,
7365
+ viewPresetId: activeViewPresetId,
7366
+ panelId: panelId,
7367
+ formValues: {
7368
+ title: title
7339
7369
  }
7340
7370
  });
7341
- }, [activeViewPresetId, constructInitialProps, openViewPresetsDialog, panelId, t, title]);
7371
+ }, [activeViewPresetId, openViewPresetsDialog, panelId, t, title]);
7342
7372
  var toggleViewPresetDialog = React.useCallback(function (_ref3) {
7343
7373
  var panelId = _ref3.panelId,
7344
7374
  isViewPresetDialogOpen = _ref3.isViewPresetDialogOpen;
@@ -7360,6 +7390,8 @@ var WorkspaceViewTitleConnectNoMemo = function WorkspaceViewTitleConnectNoMemo(_
7360
7390
  return jsx(Preset, {});
7361
7391
  }, []);
7362
7392
  renderCounter.count(WorkspaceViewTitleConnectNoMemo.name);
7393
+ var currentViewScope = viewScope || 'system';
7394
+ var isEnabled = (currentViewScope === 'user' || isAdmin && currentViewScope === 'system') && activeViewPresetId !== '' && isLoggedIn;
7363
7395
  return jsxs(Fragment, {
7364
7396
  children: [jsx(CustomIconButton, {
7365
7397
  "data-testid": "open-viewpresets",
@@ -7373,11 +7405,12 @@ var WorkspaceViewTitleConnectNoMemo = function WorkspaceViewTitleConnectNoMemo(_
7373
7405
  panelId: panelId,
7374
7406
  title: fullTitle,
7375
7407
  hasChanges: hasViewPresetChanges || isNewActive,
7376
- handleSave: viewScope === 'user' ? onSave : undefined,
7377
- handleDelete: viewScope === 'user' ? onDelete : undefined,
7378
- handleSaveAs: onSaveAs,
7379
- handleEdit: viewScope === 'user' ? onEdit : undefined,
7380
- id: "viewpreset-options-toolbutton",
7408
+ handleSave: isEnabled ? onSave : undefined,
7409
+ handleDelete: isEnabled ? onDelete : undefined,
7410
+ handleSaveAs: isLoggedIn ? onSaveAs : undefined,
7411
+ handleEdit: isEnabled ? onEdit : undefined,
7412
+ handleReset: onReset,
7413
+ id: viewPresetOptionId,
7381
7414
  isAdmin: isAdmin
7382
7415
  }), jsx(LoadingIndicatorConnect, {
7383
7416
  panelId: panelId
@@ -8119,7 +8152,7 @@ var WorkspaceOptionsConnect = function WorkspaceOptionsConnect(_ref) {
8119
8152
  var onSaveSystemPreset = function onSaveSystemPreset() {
8120
8153
  return onSaveAction(WorkspacePresetAction.SAVE_SYSTEM_PRESET, 'system');
8121
8154
  };
8122
- var onResetWorkspace = function onResetWorkspace() {
8155
+ var onReset = function onReset() {
8123
8156
  setWorkspaceActionDialogOptions({
8124
8157
  action: WorkspacePresetAction.RESET,
8125
8158
  presetId: workspaceId,
@@ -8156,16 +8189,18 @@ var WorkspaceOptionsConnect = function WorkspaceOptionsConnect(_ref) {
8156
8189
  }
8157
8190
  return isAdmin ? onSaveSystemPreset : undefined;
8158
8191
  };
8192
+ var handleSaveAs = function handleSaveAs() {
8193
+ return isAdmin ? onSaveSystemPresetAs : onSaveAs;
8194
+ };
8159
8195
  return jsx(WorkspaceOptions, {
8160
8196
  hasChanges: hasChanges,
8161
8197
  title: fullTitle,
8162
8198
  activeTab: activeTab,
8163
8199
  handleDelete: getOnDelete(),
8164
- handleSaveAs: onSaveAs,
8200
+ handleSaveAs: handleSaveAs(),
8165
8201
  handleSave: handleSave(),
8166
8202
  handleEdit: isUserPreset ? onEdit : undefined,
8167
- handleSaveSystemPresetAs: isUserPreset ? undefined : onSaveSystemPresetAs,
8168
- handleResetWorkspace: onResetWorkspace,
8203
+ handleReset: onReset,
8169
8204
  isDisabled: !viewIds.length || !isLoggedIn,
8170
8205
  isAdmin: isAdmin
8171
8206
  });
@@ -8221,6 +8256,7 @@ var HelperText = function HelperText(_ref) {
8221
8256
  children: text
8222
8257
  });
8223
8258
  };
8259
+ var inputMargin = 2;
8224
8260
  var ViewPresetItem = function ViewPresetItem(_ref2) {
8225
8261
  var index = _ref2.index,
8226
8262
  viewPreset = _ref2.viewPreset,
@@ -8244,7 +8280,7 @@ var ViewPresetItem = function ViewPresetItem(_ref2) {
8244
8280
  error = viewPreset.error;
8245
8281
  var fieldNameTitle = "views." + index + ".title";
8246
8282
  React__default.useEffect(function () {
8247
- var suffix = isNew || viewPreset.scope === 'system' || isAdmin ? " " + viewPreset.mosaicNodeId : '';
8283
+ var suffix = isNew || viewPreset.scope === 'system' && !isAdmin ? " " + viewPreset.mosaicNodeId : '';
8248
8284
  var initialTitle = "" + viewPresetTitle + suffix;
8249
8285
  setValue("views." + index + ".title", initialTitle);
8250
8286
  // eslint-disable-next-line react-hooks/exhaustive-deps
@@ -8260,6 +8296,7 @@ var ViewPresetItem = function ViewPresetItem(_ref2) {
8260
8296
  }
8261
8297
  }, [error, fieldNameTitle, setError]);
8262
8298
  var shouldShowInput = isNew && isChecked || isChecked && !isAdmin && viewPreset.scope === 'system';
8299
+ var isInputDisabled = isLoading || !hasChanges;
8263
8300
  return jsxs(React__default.Fragment, {
8264
8301
  children: [jsx(FormControlLabel, {
8265
8302
  control: jsx(Checkbox, {}),
@@ -8290,11 +8327,23 @@ var ViewPresetItem = function ViewPresetItem(_ref2) {
8290
8327
  rules: {
8291
8328
  required: true
8292
8329
  },
8293
- disabled: isLoading || !hasChanges,
8330
+ disabled: isInputDisabled,
8294
8331
  sx: {
8295
- marginBottom: 2
8332
+ mb: inputMargin
8296
8333
  },
8297
8334
  error: error !== undefined
8335
+ }), jsx(ReactHookFormTextField, {
8336
+ name: "views." + index + ".abstract",
8337
+ label: t('workspace-dialog-abstract'),
8338
+ rules: {
8339
+ required: false
8340
+ },
8341
+ multiline: true,
8342
+ rows: 3,
8343
+ disabled: isInputDisabled,
8344
+ sx: {
8345
+ mb: inputMargin
8346
+ }
8298
8347
  }), jsx(HelperText, {
8299
8348
  text: t(getNewPresetWarningText(isAdmin, isNew))
8300
8349
  })]
@@ -8508,7 +8557,7 @@ var WorkspacePresetsFormDialog = function WorkspacePresetsFormDialog(_ref) {
8508
8557
  }
8509
8558
  case WorkspacePresetAction.RESET:
8510
8559
  {
8511
- return t('workspace-admin-reset-workspace');
8560
+ return t('workspace-reset');
8512
8561
  }
8513
8562
  default:
8514
8563
  {
@@ -8532,7 +8581,7 @@ var WorkspacePresetsFormDialog = function WorkspacePresetsFormDialog(_ref) {
8532
8581
  }
8533
8582
  case WorkspacePresetAction.EDIT:
8534
8583
  {
8535
- return t('workspace-edit-both');
8584
+ return t('workspace-edit');
8536
8585
  }
8537
8586
  case WorkspacePresetAction.SAVE:
8538
8587
  {
@@ -8548,7 +8597,7 @@ var WorkspacePresetsFormDialog = function WorkspacePresetsFormDialog(_ref) {
8548
8597
  }
8549
8598
  case WorkspacePresetAction.RESET:
8550
8599
  {
8551
- return t('workspace-admin-reset-workspace-title');
8600
+ return t('workspace-reset-title');
8552
8601
  }
8553
8602
  default:
8554
8603
  {
@@ -8700,6 +8749,7 @@ var validateTitle = function validateTitle(value) {
8700
8749
  // TODO: use translation from form-fields https://gitlab.com/opengeoweb/opengeoweb/-/issues/4240
8701
8750
  return !value.trim().length ? 'This field is required' : true;
8702
8751
  };
8752
+ var marginBottom = 2;
8703
8753
  var ViewPresetsForm = function ViewPresetsForm(_ref) {
8704
8754
  var viewComponentType = _ref.viewComponentType,
8705
8755
  error = _ref.error,
@@ -8730,7 +8780,7 @@ var ViewPresetsForm = function ViewPresetsForm(_ref) {
8730
8780
  return jsxs(Fragment, {
8731
8781
  children: [Boolean(error) && jsx(Box, {
8732
8782
  sx: {
8733
- marginBottom: 2
8783
+ mb: marginBottom
8734
8784
  },
8735
8785
  children: jsx(AlertBanner, {
8736
8786
  title: error
@@ -8747,7 +8797,18 @@ var ViewPresetsForm = function ViewPresetsForm(_ref) {
8747
8797
  validateTitle: validateTitle
8748
8798
  }
8749
8799
  },
8750
- defaultValue: title
8800
+ defaultValue: title,
8801
+ sx: {
8802
+ mb: marginBottom
8803
+ }
8804
+ }), jsx(ReactHookFormTextField, {
8805
+ name: "abstract",
8806
+ label: t('workspace-dialog-abstract'),
8807
+ rules: {
8808
+ required: false
8809
+ },
8810
+ multiline: true,
8811
+ rows: 3
8751
8812
  }), hiddenFields.map(function (_ref2) {
8752
8813
  var name = _ref2.name,
8753
8814
  value = _ref2.value;
@@ -8767,6 +8828,20 @@ var ViewPresetsForm = function ViewPresetsForm(_ref) {
8767
8828
  name: "title",
8768
8829
  defaultValue: title
8769
8830
  }, "title")]
8831
+ }), action === PresetAction.RESET && jsxs(Box, {
8832
+ children: [jsxs(Typography, {
8833
+ variant: "body1",
8834
+ children: [jsx(Exclamation, {
8835
+ sx: {
8836
+ top: '6px',
8837
+ position: 'relative',
8838
+ color: 'geowebColors.functional.warning'
8839
+ }
8840
+ }), t('workspace-dialog-confirm-reset-view-message')]
8841
+ }), jsx(ReactHookFormHiddenInput, {
8842
+ name: "title",
8843
+ defaultValue: title
8844
+ }, "title")]
8770
8845
  })]
8771
8846
  });
8772
8847
  };
@@ -8780,7 +8855,8 @@ var ViewPresetsFormDialog = function ViewPresetsFormDialog(_ref) {
8780
8855
  formValues = _ref.formValues,
8781
8856
  onSuccess = _ref.onSuccess,
8782
8857
  onClose = _ref.onClose,
8783
- title = _ref.title;
8858
+ title = _ref.title,
8859
+ onReset = _ref.onReset;
8784
8860
  var _useFormContext = useFormContext(),
8785
8861
  handleFormSubmit = _useFormContext.handleSubmit,
8786
8862
  reset = _useFormContext.reset;
@@ -8788,6 +8864,9 @@ var ViewPresetsFormDialog = function ViewPresetsFormDialog(_ref) {
8788
8864
  t = _useWorkspaceTranslat.t;
8789
8865
  var _useApiContext = useApiContext(),
8790
8866
  api = _useApiContext.api;
8867
+ var _useAuthenticationCon = useAuthenticationContext$1(),
8868
+ currentRole = _useAuthenticationCon.currentRole;
8869
+ var isAdmin = (currentRole == null ? void 0 : currentRole.name) === GEOWEB_ROLE_PRESETS_ADMIN$1.name;
8791
8870
  var _React$useState = React__default.useState(),
8792
8871
  error = _React$useState[0],
8793
8872
  setError = _React$useState[1];
@@ -8812,72 +8891,86 @@ var ViewPresetsFormDialog = function ViewPresetsFormDialog(_ref) {
8812
8891
  {
8813
8892
  return t('workspace-save');
8814
8893
  }
8894
+ case PresetAction.RESET:
8895
+ {
8896
+ return t('workspace-reset');
8897
+ }
8815
8898
  default:
8816
8899
  return t('workspace-save');
8817
8900
  }
8818
8901
  };
8819
8902
  var confirmLabel = getConfirmLabel(action);
8820
8903
  var onFormSubmit = /*#__PURE__*/function () {
8821
- var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(newFormValues) {
8822
- var newId, _yield$api$getViewPre, originalViewPreset, viewPresetEdited, message;
8904
+ var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(formValues) {
8905
+ var scope, handleSuccess, newFormValues, newId, _yield$api$getViewPre, originalViewPreset, viewPresetEdited, submitError, message;
8823
8906
  return _regeneratorRuntime().wrap(function _callee$(_context) {
8824
8907
  while (1) switch (_context.prev = _context.next) {
8825
8908
  case 0:
8826
- _context.prev = 0;
8909
+ scope = isAdmin ? 'system' : formValues.scope;
8910
+ handleSuccess = function handleSuccess(id) {
8911
+ setIsLoading(false);
8912
+ onClose();
8913
+ onSuccess(action, id, newFormValues.title, newFormValues["abstract"]);
8914
+ };
8915
+ newFormValues = Object.assign({}, formValues, {
8916
+ scope: scope
8917
+ });
8918
+ _context.prev = 3;
8827
8919
  setError(null);
8828
8920
  setIsLoading(true);
8829
8921
  _context.t0 = action;
8830
- _context.next = _context.t0 === PresetAction.SAVE_AS ? 6 : _context.t0 === PresetAction.DELETE ? 13 : _context.t0 === PresetAction.EDIT ? 19 : 30;
8922
+ _context.next = _context.t0 === PresetAction.SAVE_AS ? 9 : _context.t0 === PresetAction.DELETE ? 14 : _context.t0 === PresetAction.EDIT ? 18 : _context.t0 === PresetAction.RESET ? 27 : 30;
8831
8923
  break;
8832
- case 6:
8833
- _context.next = 8;
8924
+ case 9:
8925
+ _context.next = 11;
8834
8926
  return api.saveViewPresetAs(newFormValues);
8835
- case 8:
8927
+ case 11:
8836
8928
  newId = _context.sent;
8837
- setIsLoading(false);
8838
- onClose();
8839
- onSuccess(action, newId, newFormValues.title);
8929
+ handleSuccess(newId);
8840
8930
  return _context.abrupt("break", 31);
8841
- case 13:
8842
- _context.next = 15;
8931
+ case 14:
8932
+ _context.next = 16;
8843
8933
  return api.deleteViewPreset(viewPresetId);
8844
- case 15:
8845
- setIsLoading(false);
8846
- onClose();
8847
- onSuccess(action, viewPresetId, newFormValues.title);
8934
+ case 16:
8935
+ handleSuccess(viewPresetId);
8848
8936
  return _context.abrupt("break", 31);
8849
- case 19:
8850
- _context.next = 21;
8937
+ case 18:
8938
+ _context.next = 20;
8851
8939
  return api.getViewPreset(viewPresetId);
8852
- case 21:
8940
+ case 20:
8853
8941
  _yield$api$getViewPre = _context.sent;
8854
8942
  originalViewPreset = _yield$api$getViewPre.data;
8855
8943
  viewPresetEdited = Object.assign({}, originalViewPreset, {
8856
- title: newFormValues.title
8944
+ title: newFormValues.title,
8945
+ "abstract": newFormValues["abstract"],
8946
+ scope: scope
8857
8947
  });
8858
- _context.next = 26;
8948
+ _context.next = 25;
8859
8949
  return api.saveViewPreset(viewPresetId, viewPresetEdited);
8860
- case 26:
8861
- setIsLoading(false);
8862
- onClose();
8863
- onSuccess(action, viewPresetId, newFormValues.title);
8950
+ case 25:
8951
+ handleSuccess(viewPresetId);
8952
+ return _context.abrupt("break", 31);
8953
+ case 27:
8954
+ onReset(viewPresetId);
8955
+ handleSuccess(viewPresetId);
8864
8956
  return _context.abrupt("break", 31);
8865
8957
  case 30:
8866
8958
  return _context.abrupt("break", 31);
8867
8959
  case 31:
8868
- _context.next = 38;
8960
+ _context.next = 39;
8869
8961
  break;
8870
8962
  case 33:
8871
8963
  _context.prev = 33;
8872
- _context.t1 = _context["catch"](0);
8964
+ _context.t1 = _context["catch"](3);
8873
8965
  setIsLoading(false);
8874
- message = isAxiosError$1(_context.t1) ? getAxiosErrorMessage(_context.t1) : _context.t1.message;
8966
+ submitError = _context.t1;
8967
+ message = isAxiosError$1(submitError) ? getAxiosErrorMessage(submitError) : submitError.message;
8875
8968
  setError(message);
8876
- case 38:
8969
+ case 39:
8877
8970
  case "end":
8878
8971
  return _context.stop();
8879
8972
  }
8880
- }, _callee, null, [[0, 33]]);
8973
+ }, _callee, null, [[3, 33]]);
8881
8974
  }));
8882
8975
  return function onFormSubmit(_x) {
8883
8976
  return _ref2.apply(this, arguments);
@@ -8932,6 +9025,9 @@ var ViewPresetsFormDialog = function ViewPresetsFormDialog(_ref) {
8932
9025
  onClose: onClose,
8933
9026
  onSubmit: onSubmit,
8934
9027
  isLoading: isLoading,
9028
+ sx: {
9029
+ width: '330px'
9030
+ },
8935
9031
  content: jsx(ViewPresetsForm, {
8936
9032
  viewComponentType: viewComponentType,
8937
9033
  formValues: formValues,
@@ -8949,7 +9045,9 @@ var ViewPresetsFormDialogWrapper = function ViewPresetsFormDialogWrapper(_ref5)
8949
9045
  });
8950
9046
  };
8951
9047
 
8952
- var ViewPresetsFormDialogConnect = function ViewPresetsFormDialogConnect() {
9048
+ var ViewPresetsFormDialogConnect = function ViewPresetsFormDialogConnect(_ref) {
9049
+ var _ref$scope = _ref.scope,
9050
+ scope = _ref$scope === void 0 ? 'user' : _ref$scope;
8953
9051
  var dispatch = useDispatch();
8954
9052
  var dialogOptions = useSelector(function (store) {
8955
9053
  return getDialogOptions(store);
@@ -8958,18 +9056,27 @@ var ViewPresetsFormDialogConnect = function ViewPresetsFormDialogConnect() {
8958
9056
  var viewComponentType = useSelector(function (store) {
8959
9057
  return getViewComponentType(store, panelId);
8960
9058
  });
9059
+ var onReset = React__default.useCallback(function (viewPresetId) {
9060
+ dispatch(viewPresetActions.selectViewPreset({
9061
+ panelId: panelId,
9062
+ viewPresetId: viewPresetId,
9063
+ shouldReset: true
9064
+ }));
9065
+ }, [dispatch, panelId]);
8961
9066
  var closeDialog = React__default.useCallback(function () {
8962
9067
  dispatch(viewPresetActions.closeViewPresetDialog());
8963
9068
  }, [dispatch]);
8964
9069
  var onClose = function onClose() {
8965
9070
  closeDialog();
8966
9071
  };
8967
- var onSuccess = function onSuccess(action, newViewPresetId, title) {
9072
+ var onSuccess = function onSuccess(action, newViewPresetId, title, _abstract) {
8968
9073
  dispatch(viewPresetActions.onSuccessViewPresetAction({
8969
9074
  panelId: panelId,
8970
9075
  viewPresetId: newViewPresetId,
8971
9076
  action: action,
8972
- title: title
9077
+ title: title,
9078
+ scope: scope,
9079
+ "abstract": _abstract
8973
9080
  }));
8974
9081
  };
8975
9082
  var isOpen = dialogOptions !== undefined;
@@ -8982,15 +9089,14 @@ var ViewPresetsFormDialogConnect = function ViewPresetsFormDialogConnect() {
8982
9089
  onSuccess: onSuccess,
8983
9090
  viewComponentType: viewComponentType
8984
9091
  }, dialogOptions, {
8985
- formValues: dialogOptions == null ? void 0 : dialogOptions.formValues
9092
+ formValues: dialogOptions == null ? void 0 : dialogOptions.formValues,
9093
+ onReset: onReset
8986
9094
  }));
8987
9095
  };
8988
9096
 
8989
- var FetchInitialPresets = function FetchInitialPresets() {
9097
+ var FetchInitialPresets = function FetchInitialPresets(_ref) {
9098
+ var isAdmin = _ref.isAdmin;
8990
9099
  var dispatch = useDispatch();
8991
- var _useAuthenticationCon = useAuthenticationContext(),
8992
- currentRole = _useAuthenticationCon.currentRole;
8993
- var isAdmin = (currentRole == null ? void 0 : currentRole.name) === GEOWEB_ROLE_PRESETS_ADMIN.name;
8994
9100
  var fetchInitialPresets = React.useCallback(function (params) {
8995
9101
  dispatch(viewPresetActions.fetchInitialViewPresets(params));
8996
9102
  }, [dispatch]);
@@ -9003,16 +9109,19 @@ var FetchInitialPresets = function FetchInitialPresets() {
9003
9109
  }, [isAdmin]);
9004
9110
  return null;
9005
9111
  };
9006
- var WorkspaceDetail = function WorkspaceDetail(_ref) {
9007
- var initialWorkspaceId = _ref.initialWorkspaceId,
9008
- workspaceId = _ref.workspaceId,
9009
- children = _ref.children,
9010
- componentsLookUp = _ref.componentsLookUp,
9011
- _ref$isSnapshot = _ref.isSnapshot,
9012
- isSnapshot = _ref$isSnapshot === void 0 ? false : _ref$isSnapshot;
9112
+ var WorkspaceDetail = function WorkspaceDetail(_ref2) {
9113
+ var initialWorkspaceId = _ref2.initialWorkspaceId,
9114
+ workspaceId = _ref2.workspaceId,
9115
+ children = _ref2.children,
9116
+ componentsLookUp = _ref2.componentsLookUp,
9117
+ _ref2$isSnapshot = _ref2.isSnapshot,
9118
+ isSnapshot = _ref2$isSnapshot === void 0 ? false : _ref2$isSnapshot;
9013
9119
  var dispatch = useDispatch();
9014
9120
  var _useWorkspaceTranslat = useWorkspaceTranslation(),
9015
9121
  t = _useWorkspaceTranslat.t;
9122
+ var _useAuthenticationCon = useAuthenticationContext(),
9123
+ currentRole = _useAuthenticationCon.currentRole;
9124
+ var isAdmin = (currentRole == null ? void 0 : currentRole.name) === GEOWEB_ROLE_PRESETS_ADMIN.name;
9016
9125
  var error = useSelector(function (store) {
9017
9126
  return getWorkspaceError(store);
9018
9127
  });
@@ -9058,7 +9167,9 @@ var WorkspaceDetail = function WorkspaceDetail(_ref) {
9058
9167
  width: '100%',
9059
9168
  height: '100%'
9060
9169
  },
9061
- children: [jsx(FetchInitialPresets, {}), isLoading && jsx(LinearProgress, {
9170
+ children: [jsx(FetchInitialPresets, {
9171
+ isAdmin: isAdmin
9172
+ }), isLoading && jsx(LinearProgress, {
9062
9173
  "data-testid": "loading-bar",
9063
9174
  color: "secondary",
9064
9175
  sx: {
@@ -9111,7 +9222,9 @@ var WorkspaceDetail = function WorkspaceDetail(_ref) {
9111
9222
  componentsLookUp: componentsLookUp
9112
9223
  })
9113
9224
  })]
9114
- }), jsx(ViewPresetsFormDialogConnect, {})]
9225
+ }), jsx(ViewPresetsFormDialogConnect, {
9226
+ scope: isAdmin ? 'system' : 'user'
9227
+ })]
9115
9228
  });
9116
9229
  };
9117
9230