@zohodesk/library-platform 1.1.3-exp.3 → 1.1.3-exp.4
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/es/bc/zhttp/Errors.js +14 -0
- package/es/bc/zhttp/index.js +3 -1
- package/es/bc/zlist/Constants.js +8 -1
- package/es/bc/zlist/Events.js +140 -0
- package/es/bc/zlist/index.js +2 -1
- package/es/bc/zrecord/Constants.js +3 -1
- package/es/cc/component/FallbackView.js +1 -0
- package/es/cc/fields/currency/Model.js +2 -0
- package/es/cc/fields/field/Properties.js +1 -1
- package/es/cc/fields/formula/Model.js +5 -0
- package/es/cc/index.js +1 -0
- package/es/cc/link/Properties.js +0 -1
- package/es/cc/table-connected/ErrorEventType.js +32 -0
- package/es/cc/table-connected/Events.js +96 -0
- package/es/cc/table-connected/Properties.js +16 -0
- package/es/cc/table-connected/SdkContract.js +120 -0
- package/es/cc/table-connected/constants/Events.js +2 -0
- package/es/cc/table-connected/index.js +3 -1
- package/es/cc/table-list/Constants.js +4 -0
- package/es/cc/table-list/Properties.js +25 -0
- package/es/cc/table-list/row/Properties.js +44 -0
- package/es/index.js +2 -1
- package/es/library/custom-component/adapters/gateways/event-manager/EventManager.js +116 -4
- package/es/library/custom-component/applications/interfaces/gateways/ISchemaValidator.js +1 -0
- package/es/library/custom-component/applications/usecases/InitializeUseCase.js +3 -2
- package/es/library/custom-component/applications/usecases/UpdatePropertyUseCase.js +3 -2
- package/es/library/custom-component/domain/entities/Component.js +16 -3
- package/es/library/custom-component/domain/entities/Properties.js +19 -1
- package/es/library/custom-component/frameworks/json-schema-validator/Validator.js +36 -1
- package/es/library/custom-component/frameworks/ui/CreateCustomComponent.js +23 -11
- package/es/library/custom-component/frameworks/ui/DependencyFactory.js +4 -3
- package/es/library/dot/components/table-list/frameworks/hooks/useDropIndicator.js +8 -0
- package/es/library/dot/components/table-list/frameworks/hooks/useRowData.js +15 -0
- package/es/library/dot/components/table-list/frameworks/hooks/useTableRowReorder.js +105 -0
- package/es/library/dot/components/table-list/frameworks/ui/TableListView.js +85 -15
- package/es/library/dot/components/table-list/frameworks/ui/css/TableList.module.css +240 -1
- package/es/library/dot/components/table-list/frameworks/ui/sub-components/Header.js +28 -4
- package/es/library/dot/components/table-list/frameworks/ui/sub-components/Rows.js +25 -9
- package/es/library/dot/components/table-list/frameworks/ui/sub-components/header/MassAction.js +11 -2
- package/es/library/dot/components/table-list/frameworks/ui/sub-components/row/Row.js +50 -8
- package/es/library/dot/components/table-list/frameworks/ui/sub-components/row/RowSelection.js +6 -1
- package/es/library/dot/components/table-list/frameworks/utils/getHeaderClasses.js +37 -0
- package/es/library/dot/components/table-list/frameworks/utils/getTableListClassName.js +37 -0
- package/es/library/dot/components/table-list/frameworks/utils/reOrder.js +90 -0
- package/es/library/dot/legacy-to-new-arch/text-area/frameworks/ui/TextAreaView.js +1 -1
- package/es/platform/client-actions/components/action-event-mediator/frameworks/ui/ClientActionsAdapter.js +96 -0
- package/es/platform/client-actions/components/action-event-mediator/frameworks/ui/EventHandlersFactory.js +11 -3
- package/es/platform/client-actions/template-resolver/index.js +1 -0
- package/es/platform/client-actions/translators/context-resolver/index.js +6 -6
- package/es/platform/components/table-connected/adapters/controllers/ColumnChooserOpenedController.js +1 -1
- package/es/platform/components/table-connected/adapters/controllers/ReOrderFinishController.js +21 -0
- package/es/platform/components/table-connected/adapters/resources/ErrorPrinter.js +20 -0
- package/es/platform/components/table-connected/adapters/resources/SmartTableResource.js +85 -0
- package/es/platform/components/table-connected/frameworks/ErrorEventHandlersFactory.js +126 -0
- package/es/platform/components/table-connected/frameworks/EventHandlersFactory.js +39 -3
- package/es/platform/components/table-connected/frameworks/ListSdkFactory.js +4 -2
- package/es/platform/components/table-connected/frameworks/TableConnectedFactory.js +2 -0
- package/es/platform/components/table-connected/frameworks/TableConnectedView.js +8 -2
- package/es/platform/data-source/http-template/reOrderRecord.js +44 -0
- package/es/platform/data-source/index.js +2 -0
- package/es/platform/sdk/application/interfaces/gateways/AbstractResource.js +1 -2
- package/es/platform/sdk/domain/entities/ResourceManager.js +1 -1
- package/es/platform/zdata-source/domain/entities/DataSource.js +18 -12
- package/es/platform/zfield/domain/entities/fields-manager/FieldsManager.js +7 -1
- package/es/platform/zform/adapters/presenter/FormTranslator.js +6 -127
- package/es/platform/zform/adapters/presenter/translators/SectionTranslator.js +32 -0
- package/es/platform/zform/adapters/presenter/translators/fields/BooleanFieldTranslator.js +20 -0
- package/es/platform/zform/adapters/presenter/translators/fields/CurrencyFieldTranslator.js +29 -0
- package/es/platform/zform/adapters/presenter/translators/fields/DateFieldTranslator.js +20 -0
- package/es/platform/zform/adapters/presenter/translators/fields/DateTimeFieldTranslator.js +21 -0
- package/es/platform/zform/adapters/presenter/translators/fields/DecimalFieldTranslator.js +29 -0
- package/es/platform/zform/adapters/presenter/translators/fields/EmailFieldTranslator.js +30 -0
- package/es/platform/zform/adapters/presenter/translators/fields/LookUpFieldTranslator.js +30 -0
- package/es/platform/zform/adapters/presenter/translators/fields/MultiselectFieldTranslator.js +29 -0
- package/es/platform/zform/adapters/presenter/translators/fields/NumberFieldTranslator.js +30 -0
- package/es/platform/zform/adapters/presenter/translators/fields/PercentageFieldTranslator.js +30 -0
- package/es/platform/zform/adapters/presenter/translators/fields/PhoneFieldTranslator.js +29 -0
- package/es/platform/zform/adapters/presenter/translators/fields/PicklistFieldTranslator.js +29 -0
- package/es/platform/zform/adapters/presenter/translators/fields/TextAreaFieldTranslator.js +30 -0
- package/es/platform/zform/adapters/presenter/translators/fields/TextFieldTranslator.js +27 -0
- package/es/platform/zform/adapters/presenter/translators/fields/URLFieldTranslator.js +30 -0
- package/es/platform/zform/adapters/presenter/translators/fields/index.js +15 -0
- package/es/platform/zform/applications/usecases/MyFormSuccessUseCase.js +3 -1
- package/es/platform/zform/domain/ZField.js +61 -16
- package/es/platform/zform/domain/ZSection.js +20 -7
- package/es/platform/zhttp/applications/usecases/FetchUseCase.js +111 -66
- package/es/platform/zlist/adapters/controllers/FieldExecuteFailedController.js +25 -0
- package/es/platform/zlist/adapters/controllers/ReOrderController.js +25 -0
- package/es/platform/zlist/adapters/controllers/ReOrderFailedController.js +26 -0
- package/es/platform/zlist/adapters/gateways/Repository.js +12 -2
- package/es/platform/zlist/adapters/gateways/Service.js +8 -0
- package/es/platform/zlist/adapters/presenters/TableTranslator.js +15 -4
- package/es/platform/zlist/adapters/presenters/translators/ColumnTranslator.js +11 -12
- package/es/platform/zlist/adapters/presenters/translators/EmptyViewModel.js +2 -1
- package/es/platform/zlist/adapters/presenters/translators/Header.js +3 -2
- package/es/platform/zlist/adapters/presenters/translators/HeadersTranslator.js +3 -2
- package/es/platform/zlist/adapters/presenters/translators/fields/CurrencyFieldTranslator.js +1 -0
- package/es/platform/zlist/adapters/presenters/translators/fields/FormulaFieldTranslator.js +3 -0
- package/es/platform/zlist/adapters/presenters/utils/DefaultClientActions.js +1 -1
- package/es/platform/zlist/applications/entities-factory/ListFactory.js +3 -2
- package/es/platform/zlist/applications/interfaces/input/ReOrderRecordUseCaseInput.js +1 -0
- package/es/platform/zlist/applications/usecases/FetchMoreUseCase.js +1 -1
- package/es/platform/zlist/applications/usecases/ReOrderFailedUseCase.js +22 -0
- package/es/platform/zlist/applications/usecases/ReOrderUseCase.js +25 -0
- package/es/platform/zlist/applications/usecases/RecordExecuteFailedUseCase.js +3 -2
- package/es/platform/zlist/applications/usecases/RecordSuccessCallbackUsecase.js +24 -3
- package/es/platform/zlist/domain/entities/List.js +61 -48
- package/es/platform/zlist/domain/entities/ListErrorState.js +167 -0
- package/es/platform/zlist/frameworks/EventHandlersFactory.js +13 -3
- package/es/platform/zlist/frameworks/ZListBehaviourFactory.js +6 -0
- package/es/platform/zrecord/domain/entities/GetReOrderRecordsStrategy.js +40 -0
- package/es/platform/zrecord/domain/entities/RecordsManager.js +3 -1
- package/package.json +6 -3
|
@@ -15,11 +15,55 @@ import DeleteMultipleRecordUseCase from "../../../../zlist/applications/usecases
|
|
|
15
15
|
import RecordUpdateUseCase from "../../../../zlist/applications/usecases/RecordUpdateUseCase";
|
|
16
16
|
import UpdateMultipleRecordUseCase from "../../../../zlist/applications/usecases/UpdateMultipleRecordUseCase";
|
|
17
17
|
import GetContextUseCase from "../../../../zlist/applications/usecases/GetContextUseCase";
|
|
18
|
+
import ReOrderUseCase from "../../../../zlist/applications/usecases/ReOrderUseCase";
|
|
19
|
+
import { SdkContracts } from "../../../../../cc/table-connected/SdkContract";
|
|
20
|
+
import Validator from "../../../../../library/custom-component/frameworks/json-schema-validator/Validator";
|
|
21
|
+
import ErrorPrinter from "./ErrorPrinter";
|
|
18
22
|
export class SmartTableResource extends AbstractResource {
|
|
19
23
|
initialize() {}
|
|
20
24
|
|
|
21
25
|
destroy() {}
|
|
22
26
|
|
|
27
|
+
safeValidateInput(meta, input) {
|
|
28
|
+
try {
|
|
29
|
+
const result = Validator.validate(meta, input);
|
|
30
|
+
return result;
|
|
31
|
+
} catch (error) {
|
|
32
|
+
return {
|
|
33
|
+
isValid: false,
|
|
34
|
+
errors: [{
|
|
35
|
+
dataPath: '',
|
|
36
|
+
keyword: 'internal',
|
|
37
|
+
message: 'invalid schema'
|
|
38
|
+
}]
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
validateInput(methodName, input, meta) {
|
|
44
|
+
const {
|
|
45
|
+
isValid,
|
|
46
|
+
errors
|
|
47
|
+
} = this.safeValidateInput(meta, input);
|
|
48
|
+
|
|
49
|
+
if (!isValid) {
|
|
50
|
+
const title = `%c Invalid sdk input for %c${methodName}`;
|
|
51
|
+
const styles = ['color: red; font-weight: bold;', 'color: #FF6F61; font-weight: bold;'];
|
|
52
|
+
ErrorPrinter.displaySchemaErrors({
|
|
53
|
+
msg: title,
|
|
54
|
+
styles
|
|
55
|
+
}, errors, '');
|
|
56
|
+
throw {
|
|
57
|
+
code: 'ValidationError',
|
|
58
|
+
message: `Invalid input for ${methodName}`,
|
|
59
|
+
details: {
|
|
60
|
+
methodName,
|
|
61
|
+
errors
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
23
67
|
getRecordDependencies() {
|
|
24
68
|
const dependencies = {
|
|
25
69
|
repository: new ZRecordRepository(),
|
|
@@ -82,6 +126,9 @@ export class SmartTableResource extends AbstractResource {
|
|
|
82
126
|
}
|
|
83
127
|
|
|
84
128
|
getRecord(recordId) {
|
|
129
|
+
this.validateInput('getRecord', {
|
|
130
|
+
recordId
|
|
131
|
+
}, SdkContracts.getRecordInputMeta);
|
|
85
132
|
const {
|
|
86
133
|
getData,
|
|
87
134
|
setData
|
|
@@ -96,6 +143,9 @@ export class SmartTableResource extends AbstractResource {
|
|
|
96
143
|
}
|
|
97
144
|
|
|
98
145
|
getContext(variableName) {
|
|
146
|
+
this.validateInput('getContext', {
|
|
147
|
+
variableName
|
|
148
|
+
}, SdkContracts.getContextInputMeta);
|
|
99
149
|
const {
|
|
100
150
|
getData,
|
|
101
151
|
setData
|
|
@@ -110,6 +160,9 @@ export class SmartTableResource extends AbstractResource {
|
|
|
110
160
|
}
|
|
111
161
|
|
|
112
162
|
deleteRecord(recordId) {
|
|
163
|
+
this.validateInput('deleteRecord', {
|
|
164
|
+
recordId
|
|
165
|
+
}, SdkContracts.deleteRecordInputMeta);
|
|
113
166
|
const {
|
|
114
167
|
dispatch
|
|
115
168
|
} = this.dependencies;
|
|
@@ -129,6 +182,10 @@ export class SmartTableResource extends AbstractResource {
|
|
|
129
182
|
|
|
130
183
|
deleteRecords(recordIds) {
|
|
131
184
|
let shouldFetch = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
185
|
+
this.validateInput('deleteRecords', {
|
|
186
|
+
recordIds,
|
|
187
|
+
shouldFetch
|
|
188
|
+
}, SdkContracts.deleteRecordsInputMeta);
|
|
132
189
|
const {
|
|
133
190
|
dispatch
|
|
134
191
|
} = this.dependencies;
|
|
@@ -149,6 +206,11 @@ export class SmartTableResource extends AbstractResource {
|
|
|
149
206
|
|
|
150
207
|
updateRecord(recordId, record) {
|
|
151
208
|
let shouldFetch = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
|
|
209
|
+
this.validateInput('updateRecord', {
|
|
210
|
+
recordId,
|
|
211
|
+
record,
|
|
212
|
+
shouldFetch
|
|
213
|
+
}, SdkContracts.updateRecordInputMeta);
|
|
152
214
|
const {
|
|
153
215
|
dispatch
|
|
154
216
|
} = this.dependencies;
|
|
@@ -170,6 +232,10 @@ export class SmartTableResource extends AbstractResource {
|
|
|
170
232
|
|
|
171
233
|
updateRecords(recordsMap) {
|
|
172
234
|
let shouldFetch = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
235
|
+
this.validateInput('updateRecords', {
|
|
236
|
+
recordsMap,
|
|
237
|
+
shouldFetch
|
|
238
|
+
}, SdkContracts.updateRecordsInputMeta);
|
|
173
239
|
const {
|
|
174
240
|
dispatch
|
|
175
241
|
} = this.dependencies;
|
|
@@ -189,6 +255,9 @@ export class SmartTableResource extends AbstractResource {
|
|
|
189
255
|
}
|
|
190
256
|
|
|
191
257
|
selectRecords(ids) {
|
|
258
|
+
this.validateInput('selectRecords', {
|
|
259
|
+
ids
|
|
260
|
+
}, SdkContracts.selectRecordsInputMeta);
|
|
192
261
|
const {
|
|
193
262
|
dispatch
|
|
194
263
|
} = this.dependencies;
|
|
@@ -201,6 +270,9 @@ export class SmartTableResource extends AbstractResource {
|
|
|
201
270
|
}
|
|
202
271
|
|
|
203
272
|
deselectRecords(ids) {
|
|
273
|
+
this.validateInput('deselectRecords', {
|
|
274
|
+
ids
|
|
275
|
+
}, SdkContracts.deselectRecordsInputMeta);
|
|
204
276
|
const {
|
|
205
277
|
dispatch
|
|
206
278
|
} = this.dependencies;
|
|
@@ -234,4 +306,17 @@ export class SmartTableResource extends AbstractResource {
|
|
|
234
306
|
});
|
|
235
307
|
}
|
|
236
308
|
|
|
309
|
+
reOrderRecord(fromIndex, toIndex) {
|
|
310
|
+
const {
|
|
311
|
+
dispatch
|
|
312
|
+
} = this.dependencies;
|
|
313
|
+
const dependencies = this.getListDependencies();
|
|
314
|
+
const usecase = this.createUseCase(dependencies, ReOrderUseCase);
|
|
315
|
+
usecase.execute({
|
|
316
|
+
newIndex: toIndex,
|
|
317
|
+
oldIndex: fromIndex,
|
|
318
|
+
dispatch
|
|
319
|
+
});
|
|
320
|
+
}
|
|
321
|
+
|
|
237
322
|
}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { ZLIST_FETCH_MORE_RECORDS_FAILED, ZLIST_INITIAL_AVAILABLE_FIELDS_FETCH_FAILED, ZLIST_INITIAL_CLIENT_ACTIONS_FETCH_FAILED, ZLIST_INITIAL_RECORDS_FETCH_FAILED, ZLIST_INITIAL_SELECTED_FIELDS_FETCH_FAILED, ZLIST_RECORD_DELETE_FAILED, ZLIST_RECORD_UPDATE_FAILED } from "../../../../bc/zlist/Constants";
|
|
2
|
+
import { ERROR_OCCURRED } from "../../../../cc/table-connected/constants/Events";
|
|
3
|
+
import { ErrorCode } from "../../../../cc/table-connected/ErrorEventType";
|
|
4
|
+
export default class ErrorEventHandlersFactory {
|
|
5
|
+
static create() {
|
|
6
|
+
return {
|
|
7
|
+
[ZLIST_FETCH_MORE_RECORDS_FAILED]: _ref => {
|
|
8
|
+
let {
|
|
9
|
+
action,
|
|
10
|
+
dispatch
|
|
11
|
+
} = _ref;
|
|
12
|
+
return dispatch({
|
|
13
|
+
type: ERROR_OCCURRED,
|
|
14
|
+
payload: {
|
|
15
|
+
code: ErrorCode.FETCH_MORE_RECORDS_FAILED,
|
|
16
|
+
message: action.payload.error.message,
|
|
17
|
+
errorDetails: {
|
|
18
|
+
from: action.payload.from,
|
|
19
|
+
limit: action.payload.limit,
|
|
20
|
+
error: action.payload.error
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
},
|
|
25
|
+
[ZLIST_INITIAL_AVAILABLE_FIELDS_FETCH_FAILED]: _ref2 => {
|
|
26
|
+
let {
|
|
27
|
+
action,
|
|
28
|
+
dispatch
|
|
29
|
+
} = _ref2;
|
|
30
|
+
return dispatch({
|
|
31
|
+
type: ERROR_OCCURRED,
|
|
32
|
+
payload: {
|
|
33
|
+
code: ErrorCode.INITIAL_AVAILABLE_FIELDS_FETCH_FAILED,
|
|
34
|
+
message: action.payload.error.message,
|
|
35
|
+
errorDetails: {
|
|
36
|
+
error: action.payload.error
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
},
|
|
41
|
+
[ZLIST_INITIAL_CLIENT_ACTIONS_FETCH_FAILED]: _ref3 => {
|
|
42
|
+
let {
|
|
43
|
+
action,
|
|
44
|
+
dispatch
|
|
45
|
+
} = _ref3;
|
|
46
|
+
return dispatch({
|
|
47
|
+
type: ERROR_OCCURRED,
|
|
48
|
+
payload: {
|
|
49
|
+
code: ErrorCode.INITIAL_CLIENT_ACTIONS_FETCH_FAILED,
|
|
50
|
+
message: action.payload.error.message,
|
|
51
|
+
errorDetails: {
|
|
52
|
+
error: action.payload.error
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
},
|
|
57
|
+
[ZLIST_INITIAL_RECORDS_FETCH_FAILED]: _ref4 => {
|
|
58
|
+
let {
|
|
59
|
+
action,
|
|
60
|
+
dispatch
|
|
61
|
+
} = _ref4;
|
|
62
|
+
return dispatch({
|
|
63
|
+
type: ERROR_OCCURRED,
|
|
64
|
+
payload: {
|
|
65
|
+
code: ErrorCode.INITIAL_RECORDS_FETCH_FAILED,
|
|
66
|
+
message: action.payload.error.message,
|
|
67
|
+
errorDetails: {
|
|
68
|
+
error: action.payload.error
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
},
|
|
73
|
+
[ZLIST_INITIAL_SELECTED_FIELDS_FETCH_FAILED]: _ref5 => {
|
|
74
|
+
let {
|
|
75
|
+
action,
|
|
76
|
+
dispatch
|
|
77
|
+
} = _ref5;
|
|
78
|
+
return dispatch({
|
|
79
|
+
type: ERROR_OCCURRED,
|
|
80
|
+
payload: {
|
|
81
|
+
code: ErrorCode.INITIAL_SELECTED_FIELDS_FETCH_FAILED,
|
|
82
|
+
message: action.payload.error.message,
|
|
83
|
+
errorDetails: {
|
|
84
|
+
error: action.payload.error
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
},
|
|
89
|
+
[ZLIST_RECORD_DELETE_FAILED]: _ref6 => {
|
|
90
|
+
let {
|
|
91
|
+
action,
|
|
92
|
+
dispatch
|
|
93
|
+
} = _ref6;
|
|
94
|
+
return dispatch({
|
|
95
|
+
type: ERROR_OCCURRED,
|
|
96
|
+
payload: {
|
|
97
|
+
code: ErrorCode.RECORD_DELETE_FAILED,
|
|
98
|
+
message: action.payload.error.message,
|
|
99
|
+
errorDetails: {
|
|
100
|
+
recordId: action.payload.recordId,
|
|
101
|
+
error: action.payload.error
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
},
|
|
106
|
+
[ZLIST_RECORD_UPDATE_FAILED]: _ref7 => {
|
|
107
|
+
let {
|
|
108
|
+
action,
|
|
109
|
+
dispatch
|
|
110
|
+
} = _ref7;
|
|
111
|
+
return dispatch({
|
|
112
|
+
type: ERROR_OCCURRED,
|
|
113
|
+
payload: {
|
|
114
|
+
code: ErrorCode.RECORD_UPDATE_FAILED,
|
|
115
|
+
message: action.payload.error.message,
|
|
116
|
+
errorDetails: {
|
|
117
|
+
recordId: action.payload.recordId,
|
|
118
|
+
error: action.payload.error
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
}
|
|
@@ -10,15 +10,18 @@ import ResizeStartController from "../adapters/controllers/ResizeStartController
|
|
|
10
10
|
import ResizeByMouseController from "../adapters/controllers/ResizeByMouseController";
|
|
11
11
|
import ResizeEndController from "../adapters/controllers/ResizeEndController";
|
|
12
12
|
import { ResizeFinishController } from "../adapters/controllers/ResizeFinishController";
|
|
13
|
+
import { ReOrderFinishController } from "../adapters/controllers/ReOrderFinishController";
|
|
13
14
|
import ScrollController from "../adapters/controllers/ScrollController";
|
|
14
15
|
import ColumnChooserUpdateController from "../adapters/controllers/ColumnChooserUpdateController";
|
|
15
16
|
import ColumnChooserOpenedController from "../adapters/controllers/ColumnChooserOpenedController";
|
|
16
17
|
import { platformSDK } from "../../../sdk/frameworks/Sdk";
|
|
18
|
+
import ErrorEventHandlersFactory from "./ErrorEventHandlersFactory";
|
|
17
19
|
const {
|
|
18
20
|
TABLE_LIST_RESIZE_START_REQUESTED,
|
|
19
21
|
TABLE_LIST_RESIZE_MOVE_REQUESTED,
|
|
20
22
|
TABLE_LIST_RESIZE_END_REQUESTED,
|
|
21
|
-
TABLE_LIST_SCROLLED
|
|
23
|
+
TABLE_LIST_SCROLLED,
|
|
24
|
+
TABLE_LIST_ROW_DRAG_END
|
|
22
25
|
} = TableListEventConstants;
|
|
23
26
|
|
|
24
27
|
function createHandlerWithSdk(handler) {
|
|
@@ -44,7 +47,8 @@ export default class EventHandlersFactory {
|
|
|
44
47
|
}
|
|
45
48
|
|
|
46
49
|
static create(eventHandlers) {
|
|
47
|
-
|
|
50
|
+
const wrapped = EventHandlersFactory.getSdkWrappedEventHandler(eventHandlers);
|
|
51
|
+
const defaultEventHandlers = {
|
|
48
52
|
NAVIGATION: NavigationHandler,
|
|
49
53
|
[RESIZE_FINISHED]: new ResizeFinishController().handle,
|
|
50
54
|
[TABLE_LIST_RESIZE_START_REQUESTED]: new ResizeStartController().handle,
|
|
@@ -92,10 +96,42 @@ export default class EventHandlersFactory {
|
|
|
92
96
|
type: SmartTableConstants.Events.SELECTION_LIMIT_EXCEEDED,
|
|
93
97
|
payload: action.payload
|
|
94
98
|
});
|
|
95
|
-
}
|
|
99
|
+
},
|
|
100
|
+
[TABLE_LIST_ROW_DRAG_END]: new ReOrderFinishController().handle
|
|
96
101
|
};
|
|
102
|
+
return mergeEventHandlers([defaultEventHandlers, ErrorEventHandlersFactory.create(), wrapped]);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
function mergeEventHandlers(eventHandlersList) {
|
|
108
|
+
const mergedEventHandlers = {};
|
|
109
|
+
const allEventNames = new Set();
|
|
110
|
+
|
|
111
|
+
for (const handlers of eventHandlersList) {
|
|
112
|
+
Object.keys(handlers).forEach(eventName => allEventNames.add(eventName));
|
|
97
113
|
}
|
|
98
114
|
|
|
115
|
+
for (const eventName of allEventNames) {
|
|
116
|
+
mergedEventHandlers[eventName] = createMergedHandler(eventHandlersList, eventName);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
return mergedEventHandlers;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
function createMergedHandler(eventHandlersList, eventName) {
|
|
123
|
+
return function () {
|
|
124
|
+
for (const handlers of eventHandlersList) {
|
|
125
|
+
const handler = handlers[eventName];
|
|
126
|
+
|
|
127
|
+
if (typeof handler === 'function') {
|
|
128
|
+
try {
|
|
129
|
+
handler(...arguments);
|
|
130
|
+
} catch {// Silently ignore errors
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
};
|
|
99
135
|
}
|
|
100
136
|
|
|
101
137
|
function NavigationHandler(event) {
|
|
@@ -15,7 +15,8 @@ export default class ListSdkFactory {
|
|
|
15
15
|
updateRecords: function (recordsMap) {
|
|
16
16
|
let shouldFetch = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
17
17
|
return smartTable.updateRecords(recordsMap, shouldFetch);
|
|
18
|
-
}
|
|
18
|
+
},
|
|
19
|
+
reOrderRecord: (fromIndex, toIndex) => smartTable.reOrderRecord(fromIndex, toIndex)
|
|
19
20
|
};
|
|
20
21
|
}
|
|
21
22
|
|
|
@@ -47,7 +48,8 @@ export default class ListSdkFactory {
|
|
|
47
48
|
selectRecords: selectionSdks.selectRecords,
|
|
48
49
|
deselectRecords: selectionSdks.deselectRecords,
|
|
49
50
|
selectAllRecords: selectionSdks.selectAllRecords,
|
|
50
|
-
deselectAllRecords: selectionSdks.deselectAllRecords
|
|
51
|
+
deselectAllRecords: selectionSdks.deselectAllRecords,
|
|
52
|
+
reOrderRecord: recordSdks.reOrderRecord
|
|
51
53
|
}
|
|
52
54
|
};
|
|
53
55
|
}
|
|
@@ -33,6 +33,7 @@ function combineDataSourceWithDefault(dataSource) {
|
|
|
33
33
|
};
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
+
import { SmartTableEventsContracts } from "../../../../cc/table-connected";
|
|
36
37
|
export default class TableConnectedFactory {
|
|
37
38
|
static create(_ref) {
|
|
38
39
|
let {
|
|
@@ -52,6 +53,7 @@ export default class TableConnectedFactory {
|
|
|
52
53
|
return createCustomComponent({
|
|
53
54
|
name: name,
|
|
54
55
|
View: View,
|
|
56
|
+
events: SmartTableEventsContracts,
|
|
55
57
|
properties: Properties,
|
|
56
58
|
eventHandlers: EventHandlersFactory.create(eventHandlers),
|
|
57
59
|
transformState: TableTranslator.transformState,
|
|
@@ -8,6 +8,7 @@ function View(_ref, ref) {
|
|
|
8
8
|
} = _ref;
|
|
9
9
|
const {
|
|
10
10
|
isLoading,
|
|
11
|
+
isReOrderLoading,
|
|
11
12
|
data = [],
|
|
12
13
|
rowActionsConfig,
|
|
13
14
|
rowCursor,
|
|
@@ -15,10 +16,12 @@ function View(_ref, ref) {
|
|
|
15
16
|
selection,
|
|
16
17
|
emptyStateUiType,
|
|
17
18
|
focussedRow,
|
|
18
|
-
keyboardControlsConfig
|
|
19
|
+
keyboardControlsConfig,
|
|
20
|
+
reOrderConfig
|
|
19
21
|
} = state.viewModel;
|
|
20
22
|
const {
|
|
21
|
-
resizerState
|
|
23
|
+
resizerState,
|
|
24
|
+
isError
|
|
22
25
|
} = state.viewModel;
|
|
23
26
|
const {
|
|
24
27
|
preferences,
|
|
@@ -28,7 +31,10 @@ function View(_ref, ref) {
|
|
|
28
31
|
autoColumnSizing
|
|
29
32
|
} = preferences ? preferences : {};
|
|
30
33
|
return /*#__PURE__*/React.createElement(TableList, {
|
|
34
|
+
reOrderConfig: reOrderConfig,
|
|
35
|
+
isReOrderLoading: isReOrderLoading,
|
|
31
36
|
data: data,
|
|
37
|
+
isError: isError,
|
|
32
38
|
rowCursor: rowCursor,
|
|
33
39
|
sortBy: sortBy,
|
|
34
40
|
resizerState: resizerState,
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
const reOrderRecord = {
|
|
2
|
+
name: 'records',
|
|
3
|
+
api: '/{{servicePrefix}}/{{orgName}}/api/v1/{{moduleName}}/reorder',
|
|
4
|
+
parameters: `{}`,
|
|
5
|
+
type: 'POST',
|
|
6
|
+
transformer: data => data,
|
|
7
|
+
getResponse: _ref => {
|
|
8
|
+
let {
|
|
9
|
+
payload
|
|
10
|
+
} = _ref;
|
|
11
|
+
let {
|
|
12
|
+
oldIndex,
|
|
13
|
+
newIndex
|
|
14
|
+
} = payload;
|
|
15
|
+
return {
|
|
16
|
+
oldIndex,
|
|
17
|
+
newIndex,
|
|
18
|
+
status: 'success'
|
|
19
|
+
}; // return Promise.reject({
|
|
20
|
+
// status: 500,
|
|
21
|
+
// error: "Something went wrong",
|
|
22
|
+
// });
|
|
23
|
+
},
|
|
24
|
+
requestBody: '{ "oldIndex": {{oldIndex}}, "newIndex": {{newIndex}} }',
|
|
25
|
+
properties: {
|
|
26
|
+
moduleName: {
|
|
27
|
+
required: true,
|
|
28
|
+
typeMetadata: {
|
|
29
|
+
schema: {
|
|
30
|
+
type: 'string'
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
recordId: {
|
|
35
|
+
required: true,
|
|
36
|
+
typeMetadata: {
|
|
37
|
+
schema: {
|
|
38
|
+
type: 'string'
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
export default reOrderRecord;
|
|
@@ -5,6 +5,7 @@ import deleteRecords from "./http-template/deleteRecords";
|
|
|
5
5
|
import getAvailableFields from "./http-template/getAvailableFields";
|
|
6
6
|
import getSelectedFields from "./http-template/getSelectedFields";
|
|
7
7
|
import getClientActions from "./http-template/getClientActions";
|
|
8
|
+
import reOrderRecord from "./http-template/reOrderRecord";
|
|
8
9
|
import { RecordApiActionName } from "../../bc/zrecord/Constants";
|
|
9
10
|
import deleteRecord from "./http-template/deleteRecord";
|
|
10
11
|
import fetchMyLayouts from "./http-template/fetchMyFormLayout";
|
|
@@ -22,6 +23,7 @@ let dataSource = {
|
|
|
22
23
|
[RecordApiActionName.DELETE_RECORD]: deleteRecord,
|
|
23
24
|
[RecordApiActionName.CREATE_RECORD]: createRecord,
|
|
24
25
|
[RecordApiActionName.GET_CLIENTACTIONS]: getClientActions,
|
|
26
|
+
[RecordApiActionName.GET_REORDERRECORD]: reOrderRecord,
|
|
25
27
|
getAvailableFields,
|
|
26
28
|
getSelectedFields,
|
|
27
29
|
updateSelectedFields,
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
export { SdkResourceDependencies };
|
|
3
|
+
// export { SdkResourceDependencies };
|
|
5
4
|
export class AbstractResource {
|
|
6
5
|
constructor() {
|
|
7
6
|
_defineProperty(this, "dependencies", void 0);
|
|
@@ -78,7 +78,7 @@ export class ResourceManager {
|
|
|
78
78
|
resourceInstances
|
|
79
79
|
} = this;
|
|
80
80
|
const instance = (_resourceInstances$re3 = resourceInstances[resourceName]) === null || _resourceInstances$re3 === void 0 ? void 0 : _resourceInstances$re3[instanceName];
|
|
81
|
-
instance.updateDependencies({
|
|
81
|
+
instance && instance.updateDependencies({
|
|
82
82
|
state,
|
|
83
83
|
dispatch,
|
|
84
84
|
updateState
|
|
@@ -76,21 +76,27 @@ export default class DataSource {
|
|
|
76
76
|
const {
|
|
77
77
|
actionName
|
|
78
78
|
} = fullMetaData;
|
|
79
|
-
const {
|
|
80
|
-
type,
|
|
81
|
-
metaData
|
|
82
|
-
} = fullMetaData[DATA_SOURCE_FAILURE];
|
|
83
79
|
const actions = [];
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
80
|
+
let failureMetaData = {};
|
|
81
|
+
|
|
82
|
+
if (fullMetaData[DATA_SOURCE_FAILURE]) {
|
|
83
|
+
const {
|
|
84
|
+
type,
|
|
85
|
+
metaData
|
|
86
|
+
} = fullMetaData[DATA_SOURCE_FAILURE];
|
|
87
|
+
failureMetaData = metaData;
|
|
88
|
+
type && actions.push({
|
|
89
|
+
type,
|
|
90
|
+
metaData: failureMetaData,
|
|
91
|
+
payload: {
|
|
92
|
+
error
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
|
|
91
97
|
actions.push({
|
|
92
98
|
type: DATA_SOURCE_EXECUTE_FAILED,
|
|
93
|
-
metaData,
|
|
99
|
+
metaData: failureMetaData,
|
|
94
100
|
payload: {
|
|
95
101
|
actionName,
|
|
96
102
|
error
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { FIELD_FETCH_FAILURE, FIELD_FETCH_NO_CONTENT, FIELD_FETCH_SUCCESS } from "../../../../../bc/zfield/Constants";
|
|
2
2
|
import FieldApiName from "../interfaces/FieldApiName";
|
|
3
3
|
import { DATA_SOURCE_EXECUTE } from "../../../../../bc/zdata-source/Constants";
|
|
4
|
-
import { DATA_SOURCE_SUCCESS } from "../../../../../bc/zdata-source/Symbols";
|
|
4
|
+
import { DATA_SOURCE_FAILURE, DATA_SOURCE_SUCCESS } from "../../../../../bc/zdata-source/Symbols";
|
|
5
5
|
|
|
6
6
|
class FieldManager {
|
|
7
7
|
constructor(fields, selectedFields, isFieldsFetching, isSelectedFieldsFetching) {
|
|
@@ -52,6 +52,12 @@ class FieldManager {
|
|
|
52
52
|
metaData: {
|
|
53
53
|
apiName
|
|
54
54
|
}
|
|
55
|
+
},
|
|
56
|
+
[DATA_SOURCE_FAILURE]: {
|
|
57
|
+
metaData: {
|
|
58
|
+
apiName,
|
|
59
|
+
actionName: apiName
|
|
60
|
+
}
|
|
55
61
|
}
|
|
56
62
|
}
|
|
57
63
|
};
|