Skip to content

Commit fd95710

Browse files
authored
#2247 - Show pending indicator when new unsaved resource is exited (#2306)
1 parent f3f9a2d commit fd95710

File tree

4 files changed

+414
-19
lines changed

4 files changed

+414
-19
lines changed

geonode_mapstore_client/client/js/epics/gnresource.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -329,9 +329,10 @@ const resourceTypes = {
329329
newResourceObservable: (options) =>
330330
Observable.defer(() => getNewGeoStoryConfig())
331331
.switchMap((gnGeoStory) => {
332+
const currentStory = options.data || {...gnGeoStory, sections: [{...gnGeoStory.sections[0], id: uuid(),
333+
contents: [{...gnGeoStory.sections[0].contents[0], id: uuid()}]}]};
332334
return Observable.of(
333-
setCurrentStory(options.data || {...gnGeoStory, sections: [{...gnGeoStory.sections[0], id: uuid(),
334-
contents: [{...gnGeoStory.sections[0].contents[0], id: uuid()}]}]}),
335+
setCurrentStory({...currentStory, defaultGeoStoryConfig: {...currentStory}}),
335336
setEditing(true),
336337
setGeoStoryResource({
337338
canEdit: true

geonode_mapstore_client/client/js/epics/gnsave.js

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,8 @@ import {
3939
enableMapThumbnailViewer,
4040
updateResource,
4141
manageLinkedResource,
42-
setSelectedLayer
42+
setSelectedLayer,
43+
setResourcePathParameters
4344
} from '@js/actions/gnresource';
4445
import {
4546
getResourceByPk,
@@ -92,6 +93,7 @@ import {
9293
ProcessStatus
9394
} from '@js/utils/ResourceServiceUtils';
9495
import { updateNode, updateSettingsParams } from '@mapstore/framework/actions/layers';
96+
import { setControlProperty } from '@mapstore/framework/actions/controls';
9597
import { layersSelector, getSelectedLayer as getSelectedNode } from '@mapstore/framework/selectors/layers';
9698
import { styleServiceSelector, getUpdatedLayer, selectedStyleSelector } from '@mapstore/framework/selectors/styleeditor';
9799
import LayersAPI from '@mapstore/framework/api/geoserver/Layers';
@@ -239,9 +241,17 @@ export const gnSaveContent = (action$, store) =>
239241
const sourcepk = get(state, 'router.location.pathname', '').split('/').pop();
240242
return Observable.of(manageLinkedResource({resourceType: contentType, source: sourcepk, target: resource.pk, processType: ProcessTypes.LINK_RESOURCE}));
241243
}
242-
window.location.href = parseDevHostname(resource?.detail_url);
243-
window.location.reload();
244-
return Observable.empty();
244+
return Observable.concat(
245+
Observable.of(
246+
setResourcePathParameters({pk: resource?.pk}),
247+
setControlProperty(ProcessTypes.COPY_RESOURCE, 'value', undefined)
248+
),
249+
Observable.defer(() => {
250+
window.location.href = parseDevHostname(resource?.detail_url);
251+
window.location.reload();
252+
return Observable.empty();
253+
})
254+
);
245255
}
246256
const selectedLayer = getSelectedNode(state);
247257
const currentStyle = selectedLayer?.availableStyles?.find(({ name }) => selectedLayer?.style?.includes(name));

0 commit comments

Comments
 (0)