@zohodesk/library-platform 1.1.3-exp.3 → 1.1.3-temp-1
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/zlist/Constants.js +3 -1
- package/es/bc/zrecord/Constants.js +3 -1
- package/es/cc/table-connected/Properties.js +16 -0
- 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/dot/components/table-list/frameworks/hooks/useDropIndicator.js +8 -0
- package/es/library/dot/components/table-list/frameworks/hooks/useRowData.js +8 -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 +241 -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/ReOrderFinishController.js +21 -0
- package/es/platform/components/table-connected/adapters/resources/SmartTableResource.js +14 -0
- package/es/platform/components/table-connected/frameworks/EventHandlersFactory.js +5 -2
- package/es/platform/components/table-connected/frameworks/ListSdkFactory.js +4 -2
- package/es/platform/components/table-connected/frameworks/TableConnectedView.js +5 -1
- 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/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 +30 -0
- package/es/platform/zform/adapters/presenter/translators/fields/DateFieldTranslator.js +21 -0
- package/es/platform/zform/adapters/presenter/translators/fields/DateTimeFieldTranslator.js +21 -0
- package/es/platform/zform/adapters/presenter/translators/fields/DecimalFieldTranslator.js +30 -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 +30 -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 +66 -17
- package/es/platform/zform/domain/ZSection.js +20 -7
- 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 +7 -0
- package/es/platform/zlist/adapters/gateways/Service.js +8 -0
- package/es/platform/zlist/adapters/presenters/TableTranslator.js +6 -2
- package/es/platform/zlist/adapters/presenters/translators/ColumnTranslator.js +9 -10
- package/es/platform/zlist/adapters/presenters/utils/DefaultClientActions.js +1 -1
- package/es/platform/zlist/applications/interfaces/input/ReOrderRecordUseCaseInput.js +1 -0
- 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/RecordSuccessCallbackUsecase.js +24 -3
- package/es/platform/zlist/domain/entities/List.js +66 -2
- package/es/platform/zlist/frameworks/EventHandlersFactory.js +7 -3
- package/es/platform/zlist/frameworks/ZListBehaviourFactory.js +2 -1
- 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
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import AbstractController from "./AbstractController";
|
|
2
|
+
export default class ReOrderController extends AbstractController {
|
|
3
|
+
handle(event) {
|
|
4
|
+
const {
|
|
5
|
+
state,
|
|
6
|
+
updateState,
|
|
7
|
+
dispatch,
|
|
8
|
+
action
|
|
9
|
+
} = event;
|
|
10
|
+
const {
|
|
11
|
+
newIndex,
|
|
12
|
+
oldIndex
|
|
13
|
+
} = action.payload;
|
|
14
|
+
const {
|
|
15
|
+
reOrderUseCase
|
|
16
|
+
} = this.service;
|
|
17
|
+
reOrderUseCase.updateDependency(state, updateState);
|
|
18
|
+
reOrderUseCase.execute({
|
|
19
|
+
dispatch,
|
|
20
|
+
newIndex,
|
|
21
|
+
oldIndex
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import AbstractController from "./AbstractController";
|
|
2
|
+
export default class ReOrderController extends AbstractController {
|
|
3
|
+
handle(event) {
|
|
4
|
+
const {
|
|
5
|
+
state,
|
|
6
|
+
updateState,
|
|
7
|
+
dispatch,
|
|
8
|
+
action
|
|
9
|
+
} = event;
|
|
10
|
+
const {
|
|
11
|
+
newIndex,
|
|
12
|
+
oldIndex
|
|
13
|
+
} = action.payload;
|
|
14
|
+
const {
|
|
15
|
+
reOrderFailedUseCase
|
|
16
|
+
} = this.service;
|
|
17
|
+
reOrderFailedUseCase.updateDependency(state, updateState);
|
|
18
|
+
reOrderFailedUseCase.execute({
|
|
19
|
+
dispatch,
|
|
20
|
+
newIndex,
|
|
21
|
+
oldIndex,
|
|
22
|
+
metaData: action.metaData
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
}
|
|
@@ -13,6 +13,8 @@ import RecordExecuteFailedUseCase from "../../applications/usecases/RecordExecut
|
|
|
13
13
|
import UpdateSuccessUseCase from "../../applications/usecases/UpdateSuccessUseCase";
|
|
14
14
|
import DeleteSuccessUseCase from "../../applications/usecases/DeleteSuccessUseCase";
|
|
15
15
|
import RecordSuccessCallbackUsecase from "../../applications/usecases/RecordSuccessCallbackUsecase";
|
|
16
|
+
import ReOrderUseCase from "../../applications/usecases/ReOrderUseCase";
|
|
17
|
+
import ReOrderFailedUseCase from "../../applications/usecases/ReOrderFailedUseCase";
|
|
16
18
|
|
|
17
19
|
class Service {
|
|
18
20
|
constructor(dependencies) {
|
|
@@ -44,6 +46,10 @@ class Service {
|
|
|
44
46
|
|
|
45
47
|
_defineProperty(this, "deleteSuccessUseCase", void 0);
|
|
46
48
|
|
|
49
|
+
_defineProperty(this, "reOrderUseCase", void 0);
|
|
50
|
+
|
|
51
|
+
_defineProperty(this, "reOrderFailedUseCase", void 0);
|
|
52
|
+
|
|
47
53
|
this.initializeUseCase = new InitializeUseCase(this.dependencies);
|
|
48
54
|
this.propertiesChangeUseCase = new PropertiesChangeUseCase(this.dependencies);
|
|
49
55
|
this.fetchMoreUseCase = new FetchMoreUseCase(this.dependencies);
|
|
@@ -57,6 +63,8 @@ class Service {
|
|
|
57
63
|
this.recordUpdateUseCase = new RecordUpdateUseCase(this.dependencies);
|
|
58
64
|
this.updateSuccessUseCase = new UpdateSuccessUseCase(this.dependencies);
|
|
59
65
|
this.deleteSuccessUseCase = new DeleteSuccessUseCase(this.dependencies);
|
|
66
|
+
this.reOrderUseCase = new ReOrderUseCase(this.dependencies);
|
|
67
|
+
this.reOrderFailedUseCase = new ReOrderFailedUseCase(this.dependencies);
|
|
60
68
|
}
|
|
61
69
|
|
|
62
70
|
}
|
|
@@ -26,7 +26,8 @@ export default class TableTranslator {
|
|
|
26
26
|
} = state;
|
|
27
27
|
const {
|
|
28
28
|
componentMapping,
|
|
29
|
-
context
|
|
29
|
+
context,
|
|
30
|
+
reOrderConfig
|
|
30
31
|
} = properties;
|
|
31
32
|
const {
|
|
32
33
|
localStorage: localStorageBehaviour,
|
|
@@ -48,7 +49,8 @@ export default class TableTranslator {
|
|
|
48
49
|
} = fallbackToDefault(behaviours, {}); // FIX: behaviours should be available by default
|
|
49
50
|
|
|
50
51
|
const {
|
|
51
|
-
sortBy
|
|
52
|
+
sortBy,
|
|
53
|
+
isReOrderLoading
|
|
52
54
|
} = fallbackToDefault(zlist, {}); // FIX: zlist should be available by default
|
|
53
55
|
|
|
54
56
|
const {
|
|
@@ -103,6 +105,7 @@ export default class TableTranslator {
|
|
|
103
105
|
properties,
|
|
104
106
|
behaviours,
|
|
105
107
|
viewModel: {
|
|
108
|
+
reOrderConfig,
|
|
106
109
|
selection: SelectionTranslator(state),
|
|
107
110
|
focussedRow: focussedIndex,
|
|
108
111
|
sortBy,
|
|
@@ -120,6 +123,7 @@ export default class TableTranslator {
|
|
|
120
123
|
},
|
|
121
124
|
keyboardControlsConfig,
|
|
122
125
|
isLoading,
|
|
126
|
+
isReOrderLoading,
|
|
123
127
|
emptyStateUiType: componentMapping.emptyState || '',
|
|
124
128
|
data: fields.length ? data : {
|
|
125
129
|
headers: EMPTY_ARRAY,
|
|
@@ -34,7 +34,8 @@ function ColumnTranslator(field, record, fieldComponentMapping, fieldActions, co
|
|
|
34
34
|
console.warn(`The string format for componentMapping will soon be deprecated. Please update to the new JSON format. REF : ${JSON.stringify(fieldEntry)}`);
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
|
|
37
|
+
let tempValue = undefined;
|
|
38
|
+
let value = isCustomField ? (_record$cf = record.cf) === null || _record$cf === void 0 ? void 0 : _record$cf[name] : record[name];
|
|
38
39
|
const actions = ClientActionsTranslator.transform(fieldActions, {
|
|
39
40
|
field,
|
|
40
41
|
record
|
|
@@ -56,7 +57,12 @@ function ColumnTranslator(field, record, fieldComponentMapping, fieldActions, co
|
|
|
56
57
|
}
|
|
57
58
|
|
|
58
59
|
if (field.type == "LookUp") {
|
|
59
|
-
value
|
|
60
|
+
// temp fix for when lookup field don't have value !object
|
|
61
|
+
tempValue = typeof value !== 'object' ? {
|
|
62
|
+
name: value,
|
|
63
|
+
id: value
|
|
64
|
+
} : value;
|
|
65
|
+
tempValue.url = getLookupUrlConstructions({
|
|
60
66
|
field,
|
|
61
67
|
value,
|
|
62
68
|
context
|
|
@@ -72,7 +78,7 @@ function ColumnTranslator(field, record, fieldComponentMapping, fieldActions, co
|
|
|
72
78
|
if (fieldEntry && typeof fieldEntry === 'object') {
|
|
73
79
|
let data = {
|
|
74
80
|
actions,
|
|
75
|
-
...fieldTranslator(field, finalValue, {
|
|
81
|
+
...fieldTranslator(field, tempValue ? tempValue : finalValue, {
|
|
76
82
|
recordId: record.id
|
|
77
83
|
})
|
|
78
84
|
};
|
|
@@ -82,16 +88,9 @@ function ColumnTranslator(field, record, fieldComponentMapping, fieldActions, co
|
|
|
82
88
|
context
|
|
83
89
|
});
|
|
84
90
|
data.type = fieldEntry.UIComponentName;
|
|
85
|
-
console.log(data, "====>>> custom field modal");
|
|
86
91
|
return data;
|
|
87
92
|
}
|
|
88
93
|
|
|
89
|
-
console.log({
|
|
90
|
-
actions,
|
|
91
|
-
...fieldTranslator(field, finalValue, {
|
|
92
|
-
recordId: record.id
|
|
93
|
-
})
|
|
94
|
-
}, "====>>> normal pre-defined field modal");
|
|
95
94
|
return {
|
|
96
95
|
actions,
|
|
97
96
|
...fieldTranslator(field, finalValue, {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import AbstractUseCase from "./AbstractUseCase";
|
|
2
|
+
|
|
3
|
+
class ReOrderFailedUseCase extends AbstractUseCase {
|
|
4
|
+
execute(input) {
|
|
5
|
+
const {
|
|
6
|
+
metaData
|
|
7
|
+
} = input;
|
|
8
|
+
const {
|
|
9
|
+
repository,
|
|
10
|
+
presenter
|
|
11
|
+
} = this.dependencies;
|
|
12
|
+
const list = repository.getList();
|
|
13
|
+
|
|
14
|
+
if (metaData.isReOrder) {
|
|
15
|
+
list.reOrderEnded();
|
|
16
|
+
presenter.updateView(list.toObject());
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export default ReOrderFailedUseCase;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import AbstractUseCase from "./AbstractUseCase";
|
|
2
|
+
|
|
3
|
+
class ReOrderUseCase extends AbstractUseCase {
|
|
4
|
+
execute(input) {
|
|
5
|
+
const {
|
|
6
|
+
dispatch,
|
|
7
|
+
newIndex,
|
|
8
|
+
oldIndex
|
|
9
|
+
} = input;
|
|
10
|
+
const {
|
|
11
|
+
repository,
|
|
12
|
+
presenter
|
|
13
|
+
} = this.dependencies;
|
|
14
|
+
const list = repository.getList();
|
|
15
|
+
list.reOrderStarted();
|
|
16
|
+
presenter.updateView(list.toObject());
|
|
17
|
+
dispatch(list.getReOrderRecordAction({
|
|
18
|
+
newIndex,
|
|
19
|
+
oldIndex
|
|
20
|
+
}));
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export default ReOrderUseCase;
|
|
@@ -1,18 +1,39 @@
|
|
|
1
|
+
import { SET_RECORDS } from "../../../../bc/zrecord/Constants";
|
|
1
2
|
import AbstractUseCase from "./AbstractUseCase";
|
|
2
3
|
|
|
3
4
|
class RecordSuccessCallbackUsecase extends AbstractUseCase {
|
|
4
|
-
execute(
|
|
5
|
-
|
|
5
|
+
execute(_ref) {
|
|
6
|
+
var _metaData$sourceMetaD;
|
|
7
|
+
|
|
8
|
+
let {
|
|
6
9
|
dispatch,
|
|
7
10
|
payload,
|
|
8
11
|
metaData
|
|
9
|
-
} =
|
|
12
|
+
} = _ref;
|
|
10
13
|
const {
|
|
11
14
|
repository,
|
|
12
15
|
presenter
|
|
13
16
|
} = this.dependencies;
|
|
14
17
|
const list = repository.getList();
|
|
15
18
|
|
|
19
|
+
if ((_metaData$sourceMetaD = metaData.sourceMetaData) !== null && _metaData$sourceMetaD !== void 0 && _metaData$sourceMetaD.isReOrder) {
|
|
20
|
+
list.reOrderEnded();
|
|
21
|
+
presenter.updateView(list.toObject()); // convert to separate use-case
|
|
22
|
+
|
|
23
|
+
const {
|
|
24
|
+
oldIndex,
|
|
25
|
+
newIndex
|
|
26
|
+
} = payload.response;
|
|
27
|
+
const records = repository.getRecords();
|
|
28
|
+
const reordered = oldIndex === newIndex ? records : list.arrayMoveImmutable(records, oldIndex, newIndex);
|
|
29
|
+
dispatch({
|
|
30
|
+
type: SET_RECORDS,
|
|
31
|
+
payload: {
|
|
32
|
+
records: reordered
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
|
|
16
37
|
if (list.isAcknowledgeBySortBy(metaData)) {
|
|
17
38
|
list.setSortBy(metaData);
|
|
18
39
|
presenter.updateView(list.toObject());
|
|
@@ -1,26 +1,36 @@
|
|
|
1
1
|
import { RECORD_EXECUTE, RECORD_FETCH_MORE, RECORD_REFETCH, RecordApiActionName } from "../../../../bc/zrecord/Constants";
|
|
2
2
|
import { FIELD_EXECUTE, FIELD_REFETCH } from "../../../../bc/zfield/Constants";
|
|
3
|
-
import { ZLIST_RECORD_DELETE_FAILED, ZLIST_RECORD_DELETE_SUCCEEDED, ZLIST_RECORD_UPDATE_FAILED, ZLIST_RECORD_UPDATE_SUCCEEDED } from "../../../../bc/zlist/Constants";
|
|
3
|
+
import { ZLIST_RECORD_DELETE_FAILED, ZLIST_RECORD_DELETE_SUCCEEDED, ZLIST_RECORD_UPDATE_FAILED, ZLIST_RECORD_UPDATE_SUCCEEDED, ZLIST_RECORD_REORDER_FAILED } from "../../../../bc/zlist/Constants";
|
|
4
4
|
import { CLIENTACTION_BEHAVIOUR_EXECUTE } from "../../../client-actions/bc/zclient-actions/Constants";
|
|
5
5
|
import { SmartTableConstants } from "../../../../cc/table-connected";
|
|
6
6
|
import SortBy from "./SortBy";
|
|
7
7
|
|
|
8
8
|
class List {
|
|
9
|
-
constructor(limit, sortBy, query, context, errorRecordFailed) {
|
|
9
|
+
constructor(limit, sortBy, query, context, isReOrderLoading, errorRecordFailed) {
|
|
10
10
|
this.limit = limit;
|
|
11
11
|
this.sortBy = sortBy;
|
|
12
12
|
this.query = query;
|
|
13
13
|
this.context = context;
|
|
14
|
+
this.isReOrderLoading = isReOrderLoading;
|
|
14
15
|
this.errorRecordFailed = errorRecordFailed;
|
|
15
16
|
}
|
|
16
17
|
|
|
17
18
|
toObject() {
|
|
18
19
|
return {
|
|
19
20
|
sortBy: this.sortBy.toObject(),
|
|
21
|
+
isReOrderLoading: this.isReOrderLoading,
|
|
20
22
|
errorRecordFailed: this.errorRecordFailed
|
|
21
23
|
};
|
|
22
24
|
}
|
|
23
25
|
|
|
26
|
+
reOrderStarted() {
|
|
27
|
+
this.isReOrderLoading = true;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
reOrderEnded() {
|
|
31
|
+
this.isReOrderLoading = false;
|
|
32
|
+
}
|
|
33
|
+
|
|
24
34
|
setSortBy(sortBy) {
|
|
25
35
|
this.sortBy = new SortBy(sortBy.id, sortBy.name, sortBy.order);
|
|
26
36
|
}
|
|
@@ -265,6 +275,21 @@ class List {
|
|
|
265
275
|
});
|
|
266
276
|
}
|
|
267
277
|
|
|
278
|
+
if (actionName === RecordApiActionName.GET_REORDERRECORD) {
|
|
279
|
+
const {
|
|
280
|
+
error
|
|
281
|
+
} = payload;
|
|
282
|
+
actions.push({
|
|
283
|
+
type: ZLIST_RECORD_REORDER_FAILED,
|
|
284
|
+
payload: {
|
|
285
|
+
error
|
|
286
|
+
},
|
|
287
|
+
metaData: {
|
|
288
|
+
isReOrder: true
|
|
289
|
+
}
|
|
290
|
+
});
|
|
291
|
+
}
|
|
292
|
+
|
|
268
293
|
return actions;
|
|
269
294
|
}
|
|
270
295
|
|
|
@@ -282,6 +307,28 @@ class List {
|
|
|
282
307
|
};
|
|
283
308
|
}
|
|
284
309
|
|
|
310
|
+
getReOrderRecordAction(_ref2) {
|
|
311
|
+
let {
|
|
312
|
+
newIndex,
|
|
313
|
+
oldIndex
|
|
314
|
+
} = _ref2;
|
|
315
|
+
const props = this.createApiProps();
|
|
316
|
+
return {
|
|
317
|
+
type: RECORD_EXECUTE,
|
|
318
|
+
metaData: {
|
|
319
|
+
isReOrder: true
|
|
320
|
+
},
|
|
321
|
+
payload: {
|
|
322
|
+
actionName: RecordApiActionName.GET_REORDERRECORD,
|
|
323
|
+
props: { ...props,
|
|
324
|
+
newIndex,
|
|
325
|
+
oldIndex
|
|
326
|
+
},
|
|
327
|
+
apiName: 'records'
|
|
328
|
+
}
|
|
329
|
+
};
|
|
330
|
+
}
|
|
331
|
+
|
|
285
332
|
createMoreRecordFetchAction() {
|
|
286
333
|
const props = this.createApiProps();
|
|
287
334
|
return {
|
|
@@ -348,6 +395,23 @@ class List {
|
|
|
348
395
|
};
|
|
349
396
|
}
|
|
350
397
|
|
|
398
|
+
arrayMoveImmutable(data, fromIndex, toIndex) {
|
|
399
|
+
if (fromIndex === toIndex) {
|
|
400
|
+
return [...data];
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
const newOrder = [...data];
|
|
404
|
+
const startIndex = fromIndex < 0 ? newOrder.length + fromIndex : fromIndex;
|
|
405
|
+
const endIndex = toIndex < 0 ? newOrder.length + toIndex : toIndex;
|
|
406
|
+
|
|
407
|
+
if (startIndex >= 0 && startIndex < newOrder.length) {
|
|
408
|
+
const [item] = newOrder.splice(startIndex, 1);
|
|
409
|
+
newOrder.splice(endIndex, 0, item);
|
|
410
|
+
}
|
|
411
|
+
|
|
412
|
+
return newOrder;
|
|
413
|
+
}
|
|
414
|
+
|
|
351
415
|
createAvailableFieldsRefetchAction() {
|
|
352
416
|
const props = this.createApiProps();
|
|
353
417
|
return {
|
|
@@ -4,7 +4,7 @@ import Service from "../adapters/gateways/Service";
|
|
|
4
4
|
import Repository from "../adapters/gateways/Repository";
|
|
5
5
|
import MountController from "../adapters/controllers/MountController";
|
|
6
6
|
import PropertiesChangeController from "../adapters/controllers/PropertiesChangeController";
|
|
7
|
-
import { ZLIST_DELETE_RECORD, ZLIST_DELETE_RECORDS, ZLIST_FETCH_MORE, ZLIST_RECORD_DELETE_SUCCEEDED, ZLIST_RECORD_UPDATE, ZLIST_RECORD_UPDATE_SUCCEEDED, ZLIST_SORT } from "../../../bc/zlist/Constants";
|
|
7
|
+
import { ZLIST_DELETE_RECORD, ZLIST_DELETE_RECORDS, ZLIST_FETCH_MORE, ZLIST_RECORD_DELETE_SUCCEEDED, ZLIST_RECORD_UPDATE, ZLIST_RECORD_UPDATE_SUCCEEDED, ZLIST_SORT, ZLIST_RECORD_REORDER, ZLIST_RECORD_REORDER_FAILED } from "../../../bc/zlist/Constants";
|
|
8
8
|
import FetchMoreController from "../adapters/controllers/FetchMoreController";
|
|
9
9
|
import SortController from "../adapters/controllers/SortController";
|
|
10
10
|
import FieldChangeController from "../adapters/controllers/FieldChangeController";
|
|
@@ -20,6 +20,8 @@ import UpdateSuccessController from "../adapters/controllers/UpdateSuccessContro
|
|
|
20
20
|
import DeleteSuccessController from "../adapters/controllers/DeleteSuccessController";
|
|
21
21
|
import Presenter from "../adapters/presenters/Presenters";
|
|
22
22
|
import RecordSuccessCallbackController from "../adapters/controllers/RecordSuccessCallbackController";
|
|
23
|
+
import ReOrderController from "../adapters/controllers/ReOrderController";
|
|
24
|
+
import ReOrderFailedController from "../adapters/controllers/ReOrderFailedController";
|
|
23
25
|
export default class ActionHandlersFactory {
|
|
24
26
|
static create() {
|
|
25
27
|
const repository = new Repository();
|
|
@@ -44,8 +46,10 @@ export default class ActionHandlersFactory {
|
|
|
44
46
|
[RECORD_EXECUTE_SUCCESS_CALLBACK]: new RecordSuccessCallbackController(service).handle,
|
|
45
47
|
[ZLIST_RECORD_UPDATE_SUCCEEDED]: new UpdateSuccessController(service).handle,
|
|
46
48
|
// ({ dispatch, action }) => dispatch({ type: 'SMART_TABLE#RECORD_UPDATED', payload: action.payload }),
|
|
47
|
-
[ZLIST_RECORD_DELETE_SUCCEEDED]: new DeleteSuccessController(service).handle
|
|
48
|
-
|
|
49
|
+
[ZLIST_RECORD_DELETE_SUCCEEDED]: new DeleteSuccessController(service).handle,
|
|
50
|
+
// ({ dispatch, action }) => dispatch({ type: 'SMART_TABLE#RECORD_DELETED', payload: { id: action.payload.id } })
|
|
51
|
+
[ZLIST_RECORD_REORDER]: new ReOrderController(service).handle,
|
|
52
|
+
[ZLIST_RECORD_REORDER_FAILED]: new ReOrderFailedController(service).handle
|
|
49
53
|
};
|
|
50
54
|
}
|
|
51
55
|
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { RECORD_EXECUTE_FAILED, RECORD_EXECUTE_SUCCEEDED, RECORD_EXECUTE_SUCCEEDED_NO_CONTENT } from "../../../../bc/zrecord/Constants";
|
|
2
|
+
export default class ReOrderRecordStrategy {
|
|
3
|
+
createSuccessEvents(response, metaData) {
|
|
4
|
+
const events = [];
|
|
5
|
+
let {
|
|
6
|
+
oldIndex,
|
|
7
|
+
newIndex
|
|
8
|
+
} = metaData.props;
|
|
9
|
+
events.push({
|
|
10
|
+
type: RECORD_EXECUTE_SUCCEEDED,
|
|
11
|
+
payload: {
|
|
12
|
+
oldIndex,
|
|
13
|
+
newIndex
|
|
14
|
+
},
|
|
15
|
+
metaData
|
|
16
|
+
});
|
|
17
|
+
return events;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
createNoContentEvents(metaData) {
|
|
21
|
+
const events = [];
|
|
22
|
+
events.push({
|
|
23
|
+
type: RECORD_EXECUTE_SUCCEEDED_NO_CONTENT,
|
|
24
|
+
payload: {},
|
|
25
|
+
metaData
|
|
26
|
+
});
|
|
27
|
+
return events;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
createFailureEvents(error, metaData) {
|
|
31
|
+
const events = [];
|
|
32
|
+
events.push({
|
|
33
|
+
type: RECORD_EXECUTE_FAILED,
|
|
34
|
+
payload: {},
|
|
35
|
+
metaData
|
|
36
|
+
});
|
|
37
|
+
return events;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
}
|
|
@@ -5,11 +5,13 @@ import UpdateRecordStrategy from "./UpdateRecordStrategy";
|
|
|
5
5
|
import DeleteRecordStrategy from "./DeleteRecordStrategy";
|
|
6
6
|
import DeleteMultipleRecordStrategy from "./DeleteMultipleRecordStrategy";
|
|
7
7
|
import GetRecordsStrategy from "./GetRecordsStrategy";
|
|
8
|
+
import GetReOrderRecordsStrategy from "./GetReOrderRecordsStrategy";
|
|
8
9
|
const recordExecuteStrategiesMap = {
|
|
9
10
|
[RecordApiActionName.UPDATE_RECORD]: new UpdateRecordStrategy(),
|
|
10
11
|
[RecordApiActionName.DELETE_RECORD]: new DeleteRecordStrategy(),
|
|
11
12
|
[RecordApiActionName.DELETE_RECORDS]: new DeleteMultipleRecordStrategy(),
|
|
12
|
-
[RecordApiActionName.GET_RECORDS]: new GetRecordsStrategy()
|
|
13
|
+
[RecordApiActionName.GET_RECORDS]: new GetRecordsStrategy(),
|
|
14
|
+
[RecordApiActionName.GET_REORDERRECORD]: new GetReOrderRecordsStrategy()
|
|
13
15
|
};
|
|
14
16
|
export default class RecordsManager {
|
|
15
17
|
constructor(records) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zohodesk/library-platform",
|
|
3
|
-
"version": "1.1.3-
|
|
3
|
+
"version": "1.1.3-temp-1",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "es/index.js",
|
|
6
6
|
"files": [
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"@typescript-eslint/parser": "^7.11.0",
|
|
45
45
|
"@zoho/SecurityJS": "5.0.2",
|
|
46
46
|
"@zohodesk-private/css-variable-migrator": "^1.0.7",
|
|
47
|
-
"@zohodesk-private/desk-components": "1.3
|
|
47
|
+
"@zohodesk-private/desk-components": "1.0.0-temp-53.3",
|
|
48
48
|
"@zohodesk-private/node-plugins": "1.1.9",
|
|
49
49
|
"@zohodesk/a11y": "2.2.6",
|
|
50
50
|
"@zohodesk/codestandard-analytics": "0.0.2",
|
|
@@ -52,6 +52,7 @@
|
|
|
52
52
|
"@zohodesk/components": "1.2.62",
|
|
53
53
|
"@zohodesk/dot": "1.7.8",
|
|
54
54
|
"@zohodesk/eslint-plugin-architecturerules": "0.0.5-exp-3",
|
|
55
|
+
"@zohodesk/eslint-plugin-no-hardcoding": "1.0.6",
|
|
55
56
|
"@zohodesk/hooks": "2.0.5",
|
|
56
57
|
"@zohodesk/icons": "1.0.72",
|
|
57
58
|
"@zohodesk/layout": "3.1.0",
|
|
@@ -75,7 +76,7 @@
|
|
|
75
76
|
"typescript": "4.9.5"
|
|
76
77
|
},
|
|
77
78
|
"peerDependencies": {
|
|
78
|
-
"@zohodesk-private/desk-components": "1.3
|
|
79
|
+
"@zohodesk-private/desk-components": "1.0.0-temp-53.3",
|
|
79
80
|
"@zohodesk/a11y": "2.2.6",
|
|
80
81
|
"@zohodesk/components": "1.2.62",
|
|
81
82
|
"@zohodesk/dot": "1.7.8",
|
|
@@ -89,7 +90,9 @@
|
|
|
89
90
|
"react-sortable-hoc": "1.11.0"
|
|
90
91
|
},
|
|
91
92
|
"dependencies": {
|
|
93
|
+
"@zohodesk/i18n": "^1.0.0-beta.33",
|
|
92
94
|
"ajv": "6.12.6",
|
|
95
|
+
"array-move": "^4.0.0",
|
|
93
96
|
"jsep": "0.3.5",
|
|
94
97
|
"object-path-immutable": "4.1.2"
|
|
95
98
|
}
|