@overmap-ai/core 1.0.71-fields.12 → 1.0.71-fields.2
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 +188 -182
- package/dist/overmap-core.js.map +1 -1
- package/dist/overmap-core.umd.cjs +188 -182
- package/dist/overmap-core.umd.cjs.map +1 -1
- package/dist/sdk/services/AssetTypeFieldValuesAttachmentService.d.ts +3 -2
- package/dist/sdk/services/AssetTypeFieldValuesService.d.ts +2 -2
- package/dist/sdk/services/FormService.d.ts +2 -2
- package/dist/store/slices/assetTypeFieldValuesSlice.d.ts +0 -1
- package/dist/store/slices/formRevisionSlice.d.ts +2 -1
- package/dist/store/slices/formSlice.d.ts +3 -1
- package/dist/store/slices/formSubmissionSlice.d.ts +2 -0
- package/dist/store/slices/issueTypeFieldsSlice.d.ts +2 -3
- package/package.json +1 -1
package/dist/overmap-core.js
CHANGED
|
@@ -2104,6 +2104,17 @@ const selectFormRevisionsOfForm = restructureCreateSelectorWithArgs(
|
|
|
2104
2104
|
}
|
|
2105
2105
|
)
|
|
2106
2106
|
);
|
|
2107
|
+
const selectLatestFormRevisionByForm = createSelector([selectFormRevisionMapping], (revisions) => {
|
|
2108
|
+
const latestRevisions = {};
|
|
2109
|
+
for (const revision of Object.values(revisions)) {
|
|
2110
|
+
const formId = revision.form;
|
|
2111
|
+
const currentLatestRevision = latestRevisions[formId];
|
|
2112
|
+
if (!currentLatestRevision || currentLatestRevision.revision < revision.revision) {
|
|
2113
|
+
latestRevisions[formId] = revision;
|
|
2114
|
+
}
|
|
2115
|
+
}
|
|
2116
|
+
return latestRevisions;
|
|
2117
|
+
});
|
|
2107
2118
|
const formRevisionReducer = formRevisionsSlice.reducer;
|
|
2108
2119
|
const formAdapter = createModelAdapter((form) => form.offline_id);
|
|
2109
2120
|
const initialState$n = formAdapter.getInitialState({});
|
|
@@ -2128,9 +2139,6 @@ const selectFormMapping = (state) => {
|
|
|
2128
2139
|
const selectForms = createSelector([selectFormMapping], (formsMapping) => {
|
|
2129
2140
|
return Object.values(formsMapping);
|
|
2130
2141
|
});
|
|
2131
|
-
const selectFormById = (formId) => (state) => {
|
|
2132
|
-
return state.formReducer.instances[formId];
|
|
2133
|
-
};
|
|
2134
2142
|
const selectFilteredForms = restructureCreateSelectorWithArgs(
|
|
2135
2143
|
createSelector(
|
|
2136
2144
|
[
|
|
@@ -2156,6 +2164,15 @@ const selectFilteredForms = restructureCreateSelectorWithArgs(
|
|
|
2156
2164
|
{ memoizeOptions: { equalityCheck: shallowEqual } }
|
|
2157
2165
|
)
|
|
2158
2166
|
);
|
|
2167
|
+
const selectFormById = (formId) => (state) => {
|
|
2168
|
+
return state.formReducer.instances[formId];
|
|
2169
|
+
};
|
|
2170
|
+
const selectFormsCount = createSelector([selectFormMapping], (formsMapping) => {
|
|
2171
|
+
return Object.keys(formsMapping).length;
|
|
2172
|
+
});
|
|
2173
|
+
const selectGeneralFormCount = createSelector([selectFormMapping], (formsMapping) => {
|
|
2174
|
+
return Object.values(formsMapping).length;
|
|
2175
|
+
});
|
|
2159
2176
|
const submissionAdapter = createModelAdapter((submission) => submission.offline_id);
|
|
2160
2177
|
const initialState$m = submissionAdapter.getInitialState({});
|
|
2161
2178
|
const formSubmissionSlice = createSlice({
|
|
@@ -2217,6 +2234,43 @@ const selectFormSubmissionsOfForm = restructureCreateSelectorWithArgs(
|
|
|
2217
2234
|
}
|
|
2218
2235
|
)
|
|
2219
2236
|
);
|
|
2237
|
+
const selectFormSubmissionsByFormRevisions = createSelector([selectFormRevisionMapping, selectFormSubmissions], (revisions, submissions) => {
|
|
2238
|
+
var _a2;
|
|
2239
|
+
const submissionMapping = {};
|
|
2240
|
+
for (const revisionId in revisions) {
|
|
2241
|
+
submissionMapping[revisionId] = [];
|
|
2242
|
+
}
|
|
2243
|
+
for (const submission of submissions) {
|
|
2244
|
+
(_a2 = submissionMapping[submission.form_revision]) == null ? void 0 : _a2.push(submission);
|
|
2245
|
+
}
|
|
2246
|
+
return submissionMapping;
|
|
2247
|
+
});
|
|
2248
|
+
const selectSortedFormSubmissionsOfForm = restructureCreateSelectorWithArgs(
|
|
2249
|
+
createSelector(
|
|
2250
|
+
[
|
|
2251
|
+
selectFormRevisionMapping,
|
|
2252
|
+
selectFormSubmissionsByFormRevisions,
|
|
2253
|
+
(_state, formId) => formId
|
|
2254
|
+
],
|
|
2255
|
+
(revisionsMapping, submissionsByRevision, formId) => {
|
|
2256
|
+
const submissionsByFormRevisions = {};
|
|
2257
|
+
for (const revisionId in revisionsMapping) {
|
|
2258
|
+
const revision = revisionsMapping[revisionId];
|
|
2259
|
+
const submissionsOfRevision = submissionsByRevision[revisionId];
|
|
2260
|
+
if (revision && submissionsOfRevision && revision.form === formId) {
|
|
2261
|
+
submissionsByFormRevisions[revisionId] = submissionsOfRevision.sort(
|
|
2262
|
+
(a, b) => a.submitted_at < b.submitted_at ? -1 : 1
|
|
2263
|
+
);
|
|
2264
|
+
}
|
|
2265
|
+
}
|
|
2266
|
+
return Object.entries(submissionsByFormRevisions).sort((a, b) => {
|
|
2267
|
+
const aRevision = revisionsMapping[a[0]];
|
|
2268
|
+
const bRevision = revisionsMapping[b[0]];
|
|
2269
|
+
return formRevisionSortFn(aRevision, bRevision);
|
|
2270
|
+
}).map(([_revisionId, submissions]) => submissions).flat();
|
|
2271
|
+
}
|
|
2272
|
+
)
|
|
2273
|
+
);
|
|
2220
2274
|
const selectFormSubmissionsOfIssue = restructureCreateSelectorWithArgs(
|
|
2221
2275
|
createSelector(
|
|
2222
2276
|
[selectFormSubmissions, (_state, issueId) => issueId],
|
|
@@ -2984,56 +3038,12 @@ const selectIssueAssociationsOfAsset = restructureCreateSelectorWithArgs(
|
|
|
2984
3038
|
)
|
|
2985
3039
|
);
|
|
2986
3040
|
const issueAssociationReducer = issueAssociationSlice.reducer;
|
|
2987
|
-
const issueTypeFieldValuesAdapter = createModelAdapter(
|
|
2988
|
-
(fieldValues) => fieldValues.offline_id
|
|
2989
|
-
);
|
|
2990
|
-
const initialState$7 = issueTypeFieldValuesAdapter.getInitialState({});
|
|
2991
|
-
const issueTypeFieldValuesSlice = createSlice({
|
|
2992
|
-
name: "issueTypeFieldValues",
|
|
2993
|
-
initialState: initialState$7,
|
|
2994
|
-
extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$7)),
|
|
2995
|
-
reducers: {
|
|
2996
|
-
initializeIssueTypeFieldValues: issueTypeFieldValuesAdapter.initialize,
|
|
2997
|
-
addIssueTypeFieldValues: issueTypeFieldValuesAdapter.addOne,
|
|
2998
|
-
addIssueTypeFieldValuesMany: issueTypeFieldValuesAdapter.addMany,
|
|
2999
|
-
setIssueTypeFieldValues: issueTypeFieldValuesAdapter.setOne,
|
|
3000
|
-
setIssueTypeFieldValuesMany: issueTypeFieldValuesAdapter.setMany,
|
|
3001
|
-
updateIssueTypeFieldValues: issueTypeFieldValuesAdapter.updateOne,
|
|
3002
|
-
updateIssueTypeFieldValuesMany: issueTypeFieldValuesAdapter.updateMany,
|
|
3003
|
-
deleteIssueTypeFieldValues: issueTypeFieldValuesAdapter.deleteOne,
|
|
3004
|
-
deleteIssueTypeFieldValuesMany: issueTypeFieldValuesAdapter.deleteMany
|
|
3005
|
-
}
|
|
3006
|
-
});
|
|
3007
|
-
const {
|
|
3008
|
-
initializeIssueTypeFieldValues,
|
|
3009
|
-
addIssueTypeFieldValues,
|
|
3010
|
-
addIssueTypeFieldValuesMany,
|
|
3011
|
-
setIssueTypeFieldValues,
|
|
3012
|
-
setIssueTypeFieldValuesMany,
|
|
3013
|
-
updateIssueTypeFieldValues,
|
|
3014
|
-
updateIssueTypeFieldValuesMany,
|
|
3015
|
-
deleteIssueTypeFieldValues,
|
|
3016
|
-
deleteIssueTypeFieldValuesMany
|
|
3017
|
-
} = issueTypeFieldValuesSlice.actions;
|
|
3018
|
-
const selectIssueTypeFieldValuesMapping = (state) => state.issueTypeFieldValuesReducer.instances;
|
|
3019
|
-
const selectIssueTypeFieldValues = createSelector([selectIssueTypeFieldValuesMapping], (fieldValuesMapping) => {
|
|
3020
|
-
return Object.values(fieldValuesMapping);
|
|
3021
|
-
});
|
|
3022
|
-
const selectIssueTypeFieldValuesOfIssue = restructureCreateSelectorWithArgs(
|
|
3023
|
-
createSelector([selectIssueTypeFieldValues, (_state, issueId) => issueId], (fieldValues, issueId) => {
|
|
3024
|
-
return fallbackToEmptyArray(fieldValues.filter((fieldValue) => fieldValue.issue === issueId));
|
|
3025
|
-
})
|
|
3026
|
-
);
|
|
3027
|
-
const selectIssueTypeFieldValuesById = (fieldValuesId) => (state) => {
|
|
3028
|
-
return state.issueTypeFieldValuesReducer.instances[fieldValuesId];
|
|
3029
|
-
};
|
|
3030
|
-
const issueTypeFieldValuesReducer = issueTypeFieldValuesSlice.reducer;
|
|
3031
3041
|
const issueTypeFieldsAdapter = createModelAdapter((fields) => fields.offline_id);
|
|
3032
|
-
const initialState$
|
|
3042
|
+
const initialState$7 = issueTypeFieldsAdapter.getInitialState({});
|
|
3033
3043
|
const issueTypeFieldsSlice = createSlice({
|
|
3034
3044
|
name: "issueTypeFields",
|
|
3035
|
-
initialState: initialState$
|
|
3036
|
-
extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$
|
|
3045
|
+
initialState: initialState$7,
|
|
3046
|
+
extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$7)),
|
|
3037
3047
|
reducers: {
|
|
3038
3048
|
initializeIssueTypeFields: issueTypeFieldsAdapter.initialize,
|
|
3039
3049
|
addIssueTypeFields: issueTypeFieldsAdapter.addOne,
|
|
@@ -3066,26 +3076,59 @@ const selectIssueTypeFieldsOfIssueType = restructureCreateSelectorWithArgs(
|
|
|
3066
3076
|
return fallbackToEmptyArray(fields.filter((field) => field.issue_type === issueTypeId));
|
|
3067
3077
|
})
|
|
3068
3078
|
);
|
|
3069
|
-
const
|
|
3079
|
+
const selectLatestIssueTypeFieldsOfAssetType = restructureCreateSelectorWithArgs(
|
|
3070
3080
|
createSelector([selectIssueTypeFields, (_state, id) => id], (fields, id) => {
|
|
3071
|
-
return fields.filter((field) => field.issue_type === id).sort((a, b) => a.submitted_at
|
|
3081
|
+
return fields.filter((field) => field.issue_type === id).sort((a, b) => a.submitted_at < b.submitted_at ? -1 : 1)[0];
|
|
3072
3082
|
})
|
|
3073
3083
|
);
|
|
3074
|
-
const selectIssueTypeValuesOfIssueType = restructureCreateSelectorWithArgs(
|
|
3075
|
-
createSelector(
|
|
3076
|
-
[selectIssueTypeFields, selectIssueTypeFieldValues, (_state, id) => id],
|
|
3077
|
-
(fields, fieldValues, id) => {
|
|
3078
|
-
const fieldsIds = new Set(
|
|
3079
|
-
fields.filter((field) => field.issue_type === id).map((field) => field.offline_id)
|
|
3080
|
-
);
|
|
3081
|
-
return fallbackToEmptyArray(fieldValues.filter((values) => fieldsIds.has(values.fields_revision)));
|
|
3082
|
-
}
|
|
3083
|
-
)
|
|
3084
|
-
);
|
|
3085
3084
|
const selectIssueTypeFieldsById = (fieldsId) => (state) => {
|
|
3086
3085
|
return state.issueTypeFieldsReducer.instances[fieldsId];
|
|
3087
3086
|
};
|
|
3088
3087
|
const issueTypeFieldsReducer = issueTypeFieldsSlice.reducer;
|
|
3088
|
+
const issueTypeFieldValuesAdapter = createModelAdapter(
|
|
3089
|
+
(fieldValues) => fieldValues.offline_id
|
|
3090
|
+
);
|
|
3091
|
+
const initialState$6 = issueTypeFieldValuesAdapter.getInitialState({});
|
|
3092
|
+
const issueTypeFieldValuesSlice = createSlice({
|
|
3093
|
+
name: "issueTypeFieldValues",
|
|
3094
|
+
initialState: initialState$6,
|
|
3095
|
+
extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$6)),
|
|
3096
|
+
reducers: {
|
|
3097
|
+
initializeIssueTypeFieldValues: issueTypeFieldValuesAdapter.initialize,
|
|
3098
|
+
addIssueTypeFieldValues: issueTypeFieldValuesAdapter.addOne,
|
|
3099
|
+
addIssueTypeFieldValuesMany: issueTypeFieldValuesAdapter.addMany,
|
|
3100
|
+
setIssueTypeFieldValues: issueTypeFieldValuesAdapter.setOne,
|
|
3101
|
+
setIssueTypeFieldValuesMany: issueTypeFieldValuesAdapter.setMany,
|
|
3102
|
+
updateIssueTypeFieldValues: issueTypeFieldValuesAdapter.updateOne,
|
|
3103
|
+
updateIssueTypeFieldValuesMany: issueTypeFieldValuesAdapter.updateMany,
|
|
3104
|
+
deleteIssueTypeFieldValues: issueTypeFieldValuesAdapter.deleteOne,
|
|
3105
|
+
deleteIssueTypeFieldValuesMany: issueTypeFieldValuesAdapter.deleteMany
|
|
3106
|
+
}
|
|
3107
|
+
});
|
|
3108
|
+
const {
|
|
3109
|
+
initializeIssueTypeFieldValues,
|
|
3110
|
+
addIssueTypeFieldValues,
|
|
3111
|
+
addIssueTypeFieldValuesMany,
|
|
3112
|
+
setIssueTypeFieldValues,
|
|
3113
|
+
setIssueTypeFieldValuesMany,
|
|
3114
|
+
updateIssueTypeFieldValues,
|
|
3115
|
+
updateIssueTypeFieldValuesMany,
|
|
3116
|
+
deleteIssueTypeFieldValues,
|
|
3117
|
+
deleteIssueTypeFieldValuesMany
|
|
3118
|
+
} = issueTypeFieldValuesSlice.actions;
|
|
3119
|
+
const selectIssueTypeFieldValuesMapping = (state) => state.issueTypeFieldValuesReducer.instances;
|
|
3120
|
+
const selectIssueTypeFieldValues = createSelector([selectIssueTypeFieldValuesMapping], (fieldValuesMapping) => {
|
|
3121
|
+
return Object.values(fieldValuesMapping);
|
|
3122
|
+
});
|
|
3123
|
+
const selectIssueTypeFieldValuesOfIssue = restructureCreateSelectorWithArgs(
|
|
3124
|
+
createSelector([selectIssueTypeFieldValues, (_state, issueId) => issueId], (fieldValues, issueId) => {
|
|
3125
|
+
return fallbackToEmptyArray(fieldValues.filter((fieldValue) => fieldValue.issue === issueId));
|
|
3126
|
+
})
|
|
3127
|
+
);
|
|
3128
|
+
const selectIssueTypeFieldValuesById = (fieldValuesId) => (state) => {
|
|
3129
|
+
return state.issueTypeFieldValuesReducer.instances[fieldValuesId];
|
|
3130
|
+
};
|
|
3131
|
+
const issueTypeFieldValuesReducer = issueTypeFieldValuesSlice.reducer;
|
|
3089
3132
|
const issueTypeFieldsAttachmentAdapter = createModelAdapter(
|
|
3090
3133
|
(attachment) => attachment.offline_id
|
|
3091
3134
|
);
|
|
@@ -3228,7 +3271,7 @@ const selectAssetTypeFieldsOfAssetType = restructureCreateSelectorWithArgs(
|
|
|
3228
3271
|
);
|
|
3229
3272
|
const selectLatestAssetTypeFieldsOfAssetType = restructureCreateSelectorWithArgs(
|
|
3230
3273
|
createSelector([selectAssetTypeFields, (_state, id) => id], (fields, id) => {
|
|
3231
|
-
return fields.filter((field) => field.asset_type === id).sort((a, b) => a.submitted_at
|
|
3274
|
+
return fields.filter((field) => field.asset_type === id).sort((a, b) => a.submitted_at < b.submitted_at ? -1 : 1)[0];
|
|
3232
3275
|
})
|
|
3233
3276
|
);
|
|
3234
3277
|
const selectAssetTypeFieldsById = (fieldsId) => (state) => {
|
|
@@ -3275,17 +3318,6 @@ const selectAssetTypeFieldValuesOfAsset = restructureCreateSelectorWithArgs(
|
|
|
3275
3318
|
return fallbackToEmptyArray(fieldValues.filter((fieldValue) => fieldValue.asset === assetId));
|
|
3276
3319
|
})
|
|
3277
3320
|
);
|
|
3278
|
-
const selectAssetTypeValuesOfAssetType = restructureCreateSelectorWithArgs(
|
|
3279
|
-
createSelector(
|
|
3280
|
-
[selectAssetTypeFields, selectAssetTypeFieldValues, (_state, id) => id],
|
|
3281
|
-
(fields, fieldValues, id) => {
|
|
3282
|
-
const fieldsIds = new Set(
|
|
3283
|
-
fields.filter((field) => field.asset_type === id).map((field) => field.offline_id)
|
|
3284
|
-
);
|
|
3285
|
-
return fallbackToEmptyArray(fieldValues.filter((values) => fieldsIds.has(values.fields_revision)));
|
|
3286
|
-
}
|
|
3287
|
-
)
|
|
3288
|
-
);
|
|
3289
3321
|
const selectAssetTypeFieldValuesById = (fieldValuesId) => (state) => {
|
|
3290
3322
|
return state.assetTypeFieldValuesReducer.instances[fieldValuesId];
|
|
3291
3323
|
};
|
|
@@ -5277,7 +5309,15 @@ class IssueTypeService extends BaseApiService {
|
|
|
5277
5309
|
const promise = this.enqueueRequest({
|
|
5278
5310
|
method: HttpMethod.POST,
|
|
5279
5311
|
url: "/issue-types/",
|
|
5280
|
-
|
|
5312
|
+
// Sending only whats needed here
|
|
5313
|
+
payload: {
|
|
5314
|
+
offline_id: offlineIssueType.offline_id,
|
|
5315
|
+
submitted_at: offlineIssueType.submitted_at,
|
|
5316
|
+
icon: offlineIssueType.icon,
|
|
5317
|
+
color: offlineIssueType.color,
|
|
5318
|
+
name: offlineIssueType.name,
|
|
5319
|
+
description: offlineIssueType.description
|
|
5320
|
+
},
|
|
5281
5321
|
blockers: [],
|
|
5282
5322
|
blocks: [offlineIssueType.offline_id]
|
|
5283
5323
|
});
|
|
@@ -5697,7 +5737,9 @@ class FormService extends BaseUploadService {
|
|
|
5697
5737
|
method: HttpMethod.POST,
|
|
5698
5738
|
url: "/forms/",
|
|
5699
5739
|
payload: {
|
|
5700
|
-
|
|
5740
|
+
// Sending exactly what is currently needed for the endpoint
|
|
5741
|
+
offline_id: offlineForm.offline_id,
|
|
5742
|
+
submitted_at: offlineForm.submitted_at,
|
|
5701
5743
|
initial_revision: {
|
|
5702
5744
|
offline_id: offlineFormRevision.offline_id,
|
|
5703
5745
|
submitted_at: offlineFormRevision.submitted_at,
|
|
@@ -5706,7 +5748,10 @@ class FormService extends BaseUploadService {
|
|
|
5706
5748
|
fields: offlineFormRevision.fields
|
|
5707
5749
|
}
|
|
5708
5750
|
},
|
|
5709
|
-
blockers: [
|
|
5751
|
+
blockers: [
|
|
5752
|
+
...payload.project ? [payload.project.toString()] : [],
|
|
5753
|
+
...payload.organization ? [payload.organization.toString()] : []
|
|
5754
|
+
],
|
|
5710
5755
|
blocks: [offlineForm.offline_id, offlineFormRevision.offline_id]
|
|
5711
5756
|
});
|
|
5712
5757
|
void formPromise.catch((e) => {
|
|
@@ -6660,8 +6705,7 @@ class DocumentAttachmentService extends BaseAttachmentService {
|
|
|
6660
6705
|
file_name: offlineAttachment.file_name,
|
|
6661
6706
|
file_sha1: offlineAttachment.file_sha1,
|
|
6662
6707
|
file_extension: filePayload.extension,
|
|
6663
|
-
description: offlineAttachment.description
|
|
6664
|
-
document: documentId
|
|
6708
|
+
description: offlineAttachment.description
|
|
6665
6709
|
});
|
|
6666
6710
|
sha1ToAttachmentIds[filePayload.sha1].push(offlineAttachment.offline_id);
|
|
6667
6711
|
}
|
|
@@ -7560,39 +7604,24 @@ class AssetTypeFieldValuesService extends BaseApiService {
|
|
|
7560
7604
|
return [offlineAssetTypeFieldValues, promise];
|
|
7561
7605
|
}
|
|
7562
7606
|
bulkAdd(payload, batchSize) {
|
|
7563
|
-
var _a2;
|
|
7564
7607
|
const submittedAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
7565
7608
|
const { values } = separateFilesFromValues(payload.values);
|
|
7566
|
-
const
|
|
7567
|
-
const
|
|
7568
|
-
|
|
7569
|
-
for (const batch of batches) {
|
|
7570
|
-
const assetTypeFieldValuesPayloads = [];
|
|
7571
|
-
for (const payload2 of batch) {
|
|
7572
|
-
const offlineAssetTypeFieldValues = offline({
|
|
7573
|
-
...payload2,
|
|
7574
|
-
values: separateFilesFromValues(payload2.values).values,
|
|
7575
|
-
created_by: (_a2 = this.client.store.getState().userReducer.currentUser) == null ? void 0 : _a2.id,
|
|
7576
|
-
submitted_at: submittedAt
|
|
7577
|
-
});
|
|
7578
|
-
offlineAssetTypeFieldValuesMany.push(offlineAssetTypeFieldValues);
|
|
7579
|
-
assetTypeFieldValuesPayloads.push({
|
|
7580
|
-
offline_id: offlineAssetTypeFieldValues.offline_id,
|
|
7581
|
-
asset: payload2.asset,
|
|
7582
|
-
fields_revision: payload2.fields_revision,
|
|
7583
|
-
published_at: payload2.published_at,
|
|
7584
|
-
values: offlineAssetTypeFieldValues.values
|
|
7585
|
-
});
|
|
7586
|
-
}
|
|
7587
|
-
batchPayloads.push({
|
|
7609
|
+
const payloadsBatches = chunkArray(payload.payloads, batchSize);
|
|
7610
|
+
const bulkAddPayloads = payloadsBatches.map((batch) => {
|
|
7611
|
+
return {
|
|
7588
7612
|
submitted_at: submittedAt,
|
|
7589
7613
|
values,
|
|
7590
|
-
field_values:
|
|
7591
|
-
|
|
7592
|
-
|
|
7593
|
-
|
|
7614
|
+
field_values: batch.map((payload2) => {
|
|
7615
|
+
const { values: values2 } = separateFilesFromValues(payload2.values);
|
|
7616
|
+
return offline({
|
|
7617
|
+
...payload2,
|
|
7618
|
+
values: values2
|
|
7619
|
+
});
|
|
7620
|
+
})
|
|
7621
|
+
};
|
|
7622
|
+
});
|
|
7594
7623
|
const promises = [];
|
|
7595
|
-
for (const payload2 of
|
|
7624
|
+
for (const payload2 of bulkAddPayloads) {
|
|
7596
7625
|
const assetIds = payload2.field_values.map((x) => x.asset);
|
|
7597
7626
|
const assetTypeFieldsIds = payload2.field_values.map((x) => x.fields_revision);
|
|
7598
7627
|
const assetTypeFieldValuesIds = payload2.field_values.map((x) => x.offline_id);
|
|
@@ -7607,11 +7636,9 @@ class AssetTypeFieldValuesService extends BaseApiService {
|
|
|
7607
7636
|
promises.push(promise);
|
|
7608
7637
|
}
|
|
7609
7638
|
void Promise.all(promises).then((results) => {
|
|
7610
|
-
this.dispatch(
|
|
7611
|
-
}).catch(() => {
|
|
7612
|
-
this.dispatch(deleteAssetTypeFieldValuesMany(offlineAssetTypeFieldValuesMany.map((x) => x.offline_id)));
|
|
7639
|
+
this.dispatch(addAssetTypeFieldValuesMany(results.flat()));
|
|
7613
7640
|
});
|
|
7614
|
-
return
|
|
7641
|
+
return promises;
|
|
7615
7642
|
}
|
|
7616
7643
|
update(payload) {
|
|
7617
7644
|
const { store } = this.client;
|
|
@@ -7635,13 +7662,7 @@ class AssetTypeFieldValuesService extends BaseApiService {
|
|
|
7635
7662
|
description: "Delete asset type field values",
|
|
7636
7663
|
method: HttpMethod.PATCH,
|
|
7637
7664
|
url: `/asset-type-field-values/${payload.offline_id}/`,
|
|
7638
|
-
payload
|
|
7639
|
-
...payload,
|
|
7640
|
-
values: {
|
|
7641
|
-
...assetTypeFieldValues.values,
|
|
7642
|
-
...values
|
|
7643
|
-
}
|
|
7644
|
-
},
|
|
7665
|
+
payload,
|
|
7645
7666
|
blockers: [
|
|
7646
7667
|
updatedAssetTypeFieldValues.offline_id,
|
|
7647
7668
|
updatedAssetTypeFieldValues.fields_revision,
|
|
@@ -7695,63 +7716,54 @@ class AssetTypeFieldValuesService extends BaseApiService {
|
|
|
7695
7716
|
}
|
|
7696
7717
|
}
|
|
7697
7718
|
class AssetTypeFieldValuesAttachmentService extends BaseUploadService {
|
|
7698
|
-
async bulkAdd(payloads
|
|
7719
|
+
async bulkAdd(payloads) {
|
|
7699
7720
|
var _a2;
|
|
7700
7721
|
const submittedAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
7701
7722
|
const createdBy = (_a2 = this.client.store.getState().userReducer.currentUser) == null ? void 0 : _a2.id;
|
|
7702
|
-
const
|
|
7723
|
+
const filePayloads = {};
|
|
7703
7724
|
const offlineAssetTypeFieldValuesAttachments = [];
|
|
7704
|
-
const
|
|
7705
|
-
for (const
|
|
7706
|
-
const
|
|
7707
|
-
const
|
|
7708
|
-
|
|
7709
|
-
|
|
7710
|
-
|
|
7711
|
-
|
|
7712
|
-
|
|
7713
|
-
|
|
7714
|
-
|
|
7715
|
-
|
|
7716
|
-
|
|
7717
|
-
file_sha1: filePayload.sha1,
|
|
7718
|
-
created_by: createdBy,
|
|
7719
|
-
field_values: fieldValuesId,
|
|
7720
|
-
submitted_at: submittedAt,
|
|
7721
|
-
field_identifier: fieldIdentifier
|
|
7722
|
-
});
|
|
7723
|
-
offlineAssetTypeFieldValuesAttachments.push(offlineAssetTypeFieldValuesAttachment);
|
|
7724
|
-
const attachmentPayload = {
|
|
7725
|
-
offline_id: offlineAssetTypeFieldValuesAttachment.offline_id,
|
|
7726
|
-
file_name: file.name,
|
|
7727
|
-
file_sha1: filePayload.sha1,
|
|
7728
|
-
file_extension: filePayload.extension,
|
|
7729
|
-
field_identifier: fieldIdentifier,
|
|
7730
|
-
field_values: fieldValuesId
|
|
7731
|
-
};
|
|
7732
|
-
attachmentPayloads.push(attachmentPayload);
|
|
7733
|
-
}
|
|
7734
|
-
batchPayloads.push({
|
|
7725
|
+
const attachmentPayloads = [];
|
|
7726
|
+
for (const payload of payloads) {
|
|
7727
|
+
const { fieldValuesId, fieldIdentifier, file } = payload;
|
|
7728
|
+
const filePayload = await this.getFilePayload(file);
|
|
7729
|
+
if (!(filePayload.sha1 in filePayloads))
|
|
7730
|
+
filePayloads[filePayload.sha1] = filePayload;
|
|
7731
|
+
const offlineAssetTypeFieldValuesAttachment = offline({
|
|
7732
|
+
file: URL.createObjectURL(file),
|
|
7733
|
+
file_type: file.type,
|
|
7734
|
+
file_name: file.name,
|
|
7735
|
+
file_sha1: filePayload.sha1,
|
|
7736
|
+
created_by: createdBy,
|
|
7737
|
+
field_values: fieldValuesId,
|
|
7735
7738
|
submitted_at: submittedAt,
|
|
7736
|
-
|
|
7737
|
-
files: Object.values(filePayloads)
|
|
7739
|
+
field_identifier: fieldIdentifier
|
|
7738
7740
|
});
|
|
7741
|
+
offlineAssetTypeFieldValuesAttachments.push(offlineAssetTypeFieldValuesAttachment);
|
|
7742
|
+
const attachmentPayload = {
|
|
7743
|
+
offline_id: offlineAssetTypeFieldValuesAttachment.offline_id,
|
|
7744
|
+
file_name: file.name,
|
|
7745
|
+
file_sha1: filePayload.sha1,
|
|
7746
|
+
file_extension: filePayload.extension,
|
|
7747
|
+
field_identifier: fieldIdentifier,
|
|
7748
|
+
field_values: fieldValuesId
|
|
7749
|
+
};
|
|
7750
|
+
attachmentPayloads.push(attachmentPayload);
|
|
7739
7751
|
}
|
|
7740
7752
|
this.dispatch(addAssetTypeFieldValuesAttachments(offlineAssetTypeFieldValuesAttachments));
|
|
7741
|
-
const
|
|
7742
|
-
|
|
7743
|
-
|
|
7744
|
-
|
|
7745
|
-
|
|
7746
|
-
|
|
7747
|
-
|
|
7748
|
-
|
|
7749
|
-
}
|
|
7753
|
+
const promise = this.enqueueRequest({
|
|
7754
|
+
description: "Add asset type field values attachments",
|
|
7755
|
+
method: HttpMethod.POST,
|
|
7756
|
+
url: "/asset-type-field-values-attachments/bulk/",
|
|
7757
|
+
payload: {
|
|
7758
|
+
submitted_at: submittedAt,
|
|
7759
|
+
attachments: attachmentPayloads,
|
|
7760
|
+
files: Object.values(filePayloads)
|
|
7761
|
+
},
|
|
7762
|
+
blockers: offlineAssetTypeFieldValuesAttachments.map((attachment) => attachment.field_values),
|
|
7763
|
+
blocks: offlineAssetTypeFieldValuesAttachments.map((attachment) => attachment.offline_id)
|
|
7750
7764
|
});
|
|
7751
|
-
|
|
7752
|
-
|
|
7753
|
-
this.processPresignedUrls(res.presigned_urls);
|
|
7754
|
-
const attachments = result.flatMap((res) => res.attachments);
|
|
7765
|
+
promise.then(({ presigned_urls, attachments }) => {
|
|
7766
|
+
this.processPresignedUrls(presigned_urls);
|
|
7755
7767
|
this.dispatch(updateAssetTypeFieldValuesAttachments(attachments));
|
|
7756
7768
|
}).catch((error) => {
|
|
7757
7769
|
this.dispatch(
|
|
@@ -7761,10 +7773,7 @@ class AssetTypeFieldValuesAttachmentService extends BaseUploadService {
|
|
|
7761
7773
|
);
|
|
7762
7774
|
throw error;
|
|
7763
7775
|
});
|
|
7764
|
-
return [
|
|
7765
|
-
offlineAssetTypeFieldValuesAttachments,
|
|
7766
|
-
promises.map((promise) => promise.then(({ attachments }) => attachments))
|
|
7767
|
-
];
|
|
7776
|
+
return [offlineAssetTypeFieldValuesAttachments, promise.then(({ attachments }) => attachments)];
|
|
7768
7777
|
}
|
|
7769
7778
|
async bulkDelete(ids) {
|
|
7770
7779
|
const { store } = this.client;
|
|
@@ -7787,7 +7796,7 @@ class AssetTypeFieldValuesAttachmentService extends BaseUploadService {
|
|
|
7787
7796
|
}
|
|
7788
7797
|
async refreshStore(projectId) {
|
|
7789
7798
|
const result = await this.enqueueRequest({
|
|
7790
|
-
description: "
|
|
7799
|
+
description: "Gfet asset type field values attachments",
|
|
7791
7800
|
method: HttpMethod.GET,
|
|
7792
7801
|
url: "/asset-type-field-values-attachments/",
|
|
7793
7802
|
queryParams: {
|
|
@@ -8058,13 +8067,7 @@ class IssueTypeFieldValuesService extends BaseApiService {
|
|
|
8058
8067
|
description: "Update issue type field values",
|
|
8059
8068
|
method: HttpMethod.PATCH,
|
|
8060
8069
|
url: `/issue-type-field-values/${payload.offline_id}/`,
|
|
8061
|
-
payload
|
|
8062
|
-
...payload,
|
|
8063
|
-
values: {
|
|
8064
|
-
...issueTypeFieldValues.values,
|
|
8065
|
-
...values
|
|
8066
|
-
}
|
|
8067
|
-
},
|
|
8070
|
+
payload,
|
|
8068
8071
|
blockers: [
|
|
8069
8072
|
updatedIssueTypeFieldValues.offline_id,
|
|
8070
8073
|
updatedIssueTypeFieldValues.fields_revision,
|
|
@@ -8546,7 +8549,6 @@ export {
|
|
|
8546
8549
|
selectAssetTypeFieldsMapping,
|
|
8547
8550
|
selectAssetTypeFieldsOfAssetType,
|
|
8548
8551
|
selectAssetTypeStagesMapping,
|
|
8549
|
-
selectAssetTypeValuesOfAssetType,
|
|
8550
8552
|
selectAssetTypes,
|
|
8551
8553
|
selectAssetTypesByIds,
|
|
8552
8554
|
selectAssetTypesMapping,
|
|
@@ -8604,11 +8606,14 @@ export {
|
|
|
8604
8606
|
selectFormSubmissionAttachmentsMapping,
|
|
8605
8607
|
selectFormSubmissionById,
|
|
8606
8608
|
selectFormSubmissions,
|
|
8609
|
+
selectFormSubmissionsByFormRevisions,
|
|
8607
8610
|
selectFormSubmissionsMapping,
|
|
8608
8611
|
selectFormSubmissionsOfAsset,
|
|
8609
8612
|
selectFormSubmissionsOfForm,
|
|
8610
8613
|
selectFormSubmissionsOfIssue,
|
|
8611
8614
|
selectForms,
|
|
8615
|
+
selectFormsCount,
|
|
8616
|
+
selectGeneralFormCount,
|
|
8612
8617
|
selectGeoImageById,
|
|
8613
8618
|
selectGeoImageMapping,
|
|
8614
8619
|
selectGeoImages,
|
|
@@ -8645,7 +8650,6 @@ export {
|
|
|
8645
8650
|
selectIssueTypeFieldsMapping,
|
|
8646
8651
|
selectIssueTypeFieldsOfIssueType,
|
|
8647
8652
|
selectIssueTypeMapping,
|
|
8648
|
-
selectIssueTypeValuesOfIssueType,
|
|
8649
8653
|
selectIssueTypes,
|
|
8650
8654
|
selectIssueTypesByIds,
|
|
8651
8655
|
selectIssueTypesOfOrganization,
|
|
@@ -8655,8 +8659,9 @@ export {
|
|
|
8655
8659
|
selectIssuesOfIssueType,
|
|
8656
8660
|
selectIssuesOfIssueTypeCount,
|
|
8657
8661
|
selectLatestAssetTypeFieldsOfAssetType,
|
|
8662
|
+
selectLatestFormRevisionByForm,
|
|
8658
8663
|
selectLatestFormRevisionOfForm,
|
|
8659
|
-
|
|
8664
|
+
selectLatestIssueTypeFieldsOfAssetType,
|
|
8660
8665
|
selectLatestRetryTime,
|
|
8661
8666
|
selectLicense,
|
|
8662
8667
|
selectLicenseForProject,
|
|
@@ -8693,6 +8698,7 @@ export {
|
|
|
8693
8698
|
selectProjectsOfOrganization,
|
|
8694
8699
|
selectRehydrated,
|
|
8695
8700
|
selectRootDocuments,
|
|
8701
|
+
selectSortedFormSubmissionsOfForm,
|
|
8696
8702
|
selectSortedOrganizationUsers,
|
|
8697
8703
|
selectSortedProjectUsers,
|
|
8698
8704
|
selectStageFormIdsFromStageIds,
|