@overmap-ai/core 1.0.35-projects-licensing.11 → 1.0.35-projects-licensing.12
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/dist/overmap-core.js +47 -4
- package/dist/overmap-core.js.map +1 -1
- package/dist/overmap-core.umd.cjs +47 -4
- package/dist/overmap-core.umd.cjs.map +1 -1
- package/dist/sdk/services/ProjectService.d.ts +2 -3
- package/dist/store/slices/licenseSlice.d.ts +1 -0
- package/dist/store/slices/projectSlice.d.ts +7 -1
- package/dist/typings/models/license.d.ts +1 -1
- package/dist/typings/models/projects.d.ts +2 -0
- package/package.json +1 -1
package/dist/overmap-core.js
CHANGED
|
@@ -2566,6 +2566,20 @@ const projectSlice = createSlice({
|
|
|
2566
2566
|
} else {
|
|
2567
2567
|
throw new Error("Accept project invite: user is not in this project");
|
|
2568
2568
|
}
|
|
2569
|
+
},
|
|
2570
|
+
updateActiveProjectIssuesCount: (state, action) => {
|
|
2571
|
+
if (state.activeProjectId) {
|
|
2572
|
+
state.projects[state.activeProjectId].issues_count += action.payload;
|
|
2573
|
+
} else {
|
|
2574
|
+
throw new Error("Update issues count: no active project");
|
|
2575
|
+
}
|
|
2576
|
+
},
|
|
2577
|
+
updateActiveProjectFormSubmissionsCount: (state, action) => {
|
|
2578
|
+
if (state.activeProjectId) {
|
|
2579
|
+
state.projects[state.activeProjectId].form_submissions_count += action.payload;
|
|
2580
|
+
} else {
|
|
2581
|
+
throw new Error("Update form submissions count: no active project");
|
|
2582
|
+
}
|
|
2569
2583
|
}
|
|
2570
2584
|
}
|
|
2571
2585
|
});
|
|
@@ -2576,7 +2590,9 @@ const {
|
|
|
2576
2590
|
setActiveProjectId,
|
|
2577
2591
|
setCreateProjectType,
|
|
2578
2592
|
deleteProject,
|
|
2579
|
-
acceptProjectInvite
|
|
2593
|
+
acceptProjectInvite,
|
|
2594
|
+
updateActiveProjectIssuesCount,
|
|
2595
|
+
updateActiveProjectFormSubmissionsCount
|
|
2580
2596
|
} = projectSlice.actions;
|
|
2581
2597
|
const selectProjects = (state) => state.projectReducer.projects;
|
|
2582
2598
|
const selectActiveProjectId = (state) => state.projectReducer.activeProjectId;
|
|
@@ -2685,13 +2701,19 @@ const selectActiveLicense = createSelector(
|
|
|
2685
2701
|
return activeLicense ?? null;
|
|
2686
2702
|
}
|
|
2687
2703
|
);
|
|
2704
|
+
const selectLicenseForProject = restructureCreateSelectorWithArgs(
|
|
2705
|
+
createSelector(
|
|
2706
|
+
[selectLicenses, (_state, projectId) => projectId],
|
|
2707
|
+
(licenses, projectId) => Object.values(licenses).find((license) => license.project === projectId) ?? null
|
|
2708
|
+
)
|
|
2709
|
+
);
|
|
2688
2710
|
const selectActiveStatusLicenses = createSelector(
|
|
2689
2711
|
[selectLicenses],
|
|
2690
2712
|
(licenses) => Object.values(licenses).filter((license) => license.is_active)
|
|
2691
2713
|
);
|
|
2692
2714
|
const selectLicencesMapping = createSelector(
|
|
2693
2715
|
[selectLicenses],
|
|
2694
|
-
(licenses) => Object.values(licenses).reduce((accum, license) => ({ ...accum, [license.project]: license }), {})
|
|
2716
|
+
(licenses) => Object.values(licenses).filter((license) => license.project).reduce((accum, license) => ({ ...accum, [license.project]: license }), {})
|
|
2695
2717
|
);
|
|
2696
2718
|
const licenseReducer = licenseSlice.reducer;
|
|
2697
2719
|
const initialState$7 = {
|
|
@@ -4830,6 +4852,7 @@ class IssueService extends BaseApiService {
|
|
|
4830
4852
|
});
|
|
4831
4853
|
store.dispatch(addIssue(issuePayload));
|
|
4832
4854
|
store.dispatch(addToRecentIssues(issuePayload.offline_id));
|
|
4855
|
+
store.dispatch(updateActiveProjectIssuesCount(1));
|
|
4833
4856
|
const promise = this.enqueueRequest({
|
|
4834
4857
|
description: "Create issue",
|
|
4835
4858
|
method: HttpMethod.POST,
|
|
@@ -4856,6 +4879,7 @@ class IssueService extends BaseApiService {
|
|
|
4856
4879
|
});
|
|
4857
4880
|
}
|
|
4858
4881
|
store.dispatch(removeIssue(issuePayload.offline_id));
|
|
4882
|
+
store.dispatch(store.dispatch(updateActiveProjectIssuesCount(-1)));
|
|
4859
4883
|
throw error2;
|
|
4860
4884
|
});
|
|
4861
4885
|
return [issuePayload, promise];
|
|
@@ -4894,7 +4918,8 @@ class IssueService extends BaseApiService {
|
|
|
4894
4918
|
return [fullIssue, promise];
|
|
4895
4919
|
}
|
|
4896
4920
|
async remove(id) {
|
|
4897
|
-
const
|
|
4921
|
+
const { store } = this.client;
|
|
4922
|
+
const state = store.getState();
|
|
4898
4923
|
const backup = state.issueReducer.issues[id];
|
|
4899
4924
|
if (!backup) {
|
|
4900
4925
|
throw new Error(`No issue with id ${id} found in the store`);
|
|
@@ -4902,6 +4927,7 @@ class IssueService extends BaseApiService {
|
|
|
4902
4927
|
const attachments = Object.values(state.issueReducer.attachments).filter((a) => a.issue_id === id);
|
|
4903
4928
|
const attachmentsOfIssue = selectPhotoAttachmentsOfIssue(id)(state);
|
|
4904
4929
|
this.client.store.dispatch(removeIssue(id));
|
|
4930
|
+
store.dispatch(updateActiveProjectIssuesCount(-1));
|
|
4905
4931
|
if (attachmentsOfIssue) {
|
|
4906
4932
|
this.client.store.dispatch(removeAttachmentsOfIssue(id));
|
|
4907
4933
|
}
|
|
@@ -4916,6 +4942,7 @@ class IssueService extends BaseApiService {
|
|
|
4916
4942
|
} catch (e) {
|
|
4917
4943
|
this.client.store.dispatch(addIssue(backup));
|
|
4918
4944
|
this.client.store.dispatch(addAttachments(attachments));
|
|
4945
|
+
store.dispatch(updateActiveProjectIssuesCount(1));
|
|
4919
4946
|
throw e;
|
|
4920
4947
|
}
|
|
4921
4948
|
}
|
|
@@ -4991,7 +5018,9 @@ class MainService extends BaseApiService {
|
|
|
4991
5018
|
owner_organization: projectData.organization_owner,
|
|
4992
5019
|
owner_user: projectData.user_owner,
|
|
4993
5020
|
bounds: projectData.bounds,
|
|
4994
|
-
invited: projectData.invited || false
|
|
5021
|
+
invited: projectData.invited || false,
|
|
5022
|
+
issues_count: projectData.issues_count,
|
|
5023
|
+
form_submissions_count: projectData.form_submissions_count
|
|
4995
5024
|
});
|
|
4996
5025
|
if (currentProjectId === projectData.id && !projectData.invited) {
|
|
4997
5026
|
isProjectIdValid = true;
|
|
@@ -5322,6 +5351,7 @@ class ProjectService extends BaseApiService {
|
|
|
5322
5351
|
if (!project) {
|
|
5323
5352
|
throw new Error("Expected project to exist");
|
|
5324
5353
|
}
|
|
5354
|
+
const license = selectLicenseForProject(project.id);
|
|
5325
5355
|
const activeProjectId = state.projectReducer.activeProjectId;
|
|
5326
5356
|
if (activeProjectId === projectId) {
|
|
5327
5357
|
store.dispatch({ type: "project/setActiveProjectId", payload: null });
|
|
@@ -5332,6 +5362,9 @@ class ProjectService extends BaseApiService {
|
|
|
5332
5362
|
store.dispatch(removeProjectAccessesOfProject(project.id));
|
|
5333
5363
|
store.dispatch({ type: "rehydrated/setRehydrated", payload: false });
|
|
5334
5364
|
store.dispatch(deleteProject(project));
|
|
5365
|
+
if (license) {
|
|
5366
|
+
store.dispatch(updateLicense({ ...license, project: null }));
|
|
5367
|
+
}
|
|
5335
5368
|
try {
|
|
5336
5369
|
await this.enqueueRequest({
|
|
5337
5370
|
description: "Delete project",
|
|
@@ -5347,6 +5380,9 @@ class ProjectService extends BaseApiService {
|
|
|
5347
5380
|
store.dispatch(addOrReplaceProjectFiles(filesToDelete));
|
|
5348
5381
|
store.dispatch(setActiveProjectId(activeProjectId));
|
|
5349
5382
|
store.dispatch({ type: "rehydrated/setRehydrated", payload: true });
|
|
5383
|
+
if (license) {
|
|
5384
|
+
store.dispatch(updateLicense({ ...license, project: project.id }));
|
|
5385
|
+
}
|
|
5350
5386
|
throw e;
|
|
5351
5387
|
}
|
|
5352
5388
|
}
|
|
@@ -5652,9 +5688,11 @@ class UserFormSubmissionService extends BaseApiService {
|
|
|
5652
5688
|
store.dispatch(addUserFormSubmission(offlineResultWithoutFiles));
|
|
5653
5689
|
void promise.then((result) => {
|
|
5654
5690
|
store.dispatch(addUserFormSubmission(result));
|
|
5691
|
+
store.dispatch(store.dispatch(updateActiveProjectIssuesCount(1)));
|
|
5655
5692
|
return result;
|
|
5656
5693
|
}).catch(() => {
|
|
5657
5694
|
store.dispatch(deleteUserFormSubmission(payload.offline_id));
|
|
5695
|
+
store.dispatch(store.dispatch(updateActiveProjectIssuesCount(-1)));
|
|
5658
5696
|
});
|
|
5659
5697
|
const settledPromise = Promise.all([promise, ...attachFilesPromises]).then(() => promise);
|
|
5660
5698
|
return [fullOfflineResult, settledPromise];
|
|
@@ -5664,6 +5702,7 @@ class UserFormSubmissionService extends BaseApiService {
|
|
|
5664
5702
|
const state = store.getState();
|
|
5665
5703
|
const submission = state.userFormReducer.submissions[submissionId];
|
|
5666
5704
|
store.dispatch(deleteUserFormSubmission(submissionId));
|
|
5705
|
+
store.dispatch(updateActiveProjectIssuesCount(-1));
|
|
5667
5706
|
try {
|
|
5668
5707
|
return await this.enqueueRequest({
|
|
5669
5708
|
description: "Delete user form submissions",
|
|
@@ -5675,6 +5714,7 @@ class UserFormSubmissionService extends BaseApiService {
|
|
|
5675
5714
|
} catch (e) {
|
|
5676
5715
|
if (submission) {
|
|
5677
5716
|
store.dispatch(addUserFormSubmission(submission));
|
|
5717
|
+
store.dispatch(store.dispatch(updateActiveProjectIssuesCount(1)));
|
|
5678
5718
|
}
|
|
5679
5719
|
throw e;
|
|
5680
5720
|
}
|
|
@@ -11709,6 +11749,7 @@ export {
|
|
|
11709
11749
|
selectLatestRevisionByFormId,
|
|
11710
11750
|
selectLicencesMapping,
|
|
11711
11751
|
selectLicense,
|
|
11752
|
+
selectLicenseForProject,
|
|
11712
11753
|
selectLicenses,
|
|
11713
11754
|
selectMainWorkspace,
|
|
11714
11755
|
selectMapStyle,
|
|
@@ -11824,6 +11865,8 @@ export {
|
|
|
11824
11865
|
unhideAllCategories,
|
|
11825
11866
|
unhideCategory,
|
|
11826
11867
|
updateActiveOrganization,
|
|
11868
|
+
updateActiveProjectFormSubmissionsCount,
|
|
11869
|
+
updateActiveProjectIssuesCount,
|
|
11827
11870
|
updateAttachment,
|
|
11828
11871
|
updateComponent,
|
|
11829
11872
|
updateIssue,
|