inboxlookup_screen 1.0.7 → 1.0.9
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/package.json
CHANGED
|
@@ -146,9 +146,9 @@
|
|
|
146
146
|
margin-bottom: 4px;
|
|
147
147
|
}
|
|
148
148
|
|
|
149
|
-
.lookupscreenpopup-
|
|
150
|
-
height: 36px;
|
|
151
|
-
padding: 6px 8px;
|
|
149
|
+
.lookupscreenpopup-content>.form-group>input {
|
|
150
|
+
height: 36px !important;
|
|
151
|
+
padding: 6px 8px !important;
|
|
152
152
|
border: 1px solid #dcdcdc;
|
|
153
153
|
border-radius: 4px;
|
|
154
154
|
background: #f9f9f9;
|
|
@@ -9,27 +9,19 @@ import DataGrid, {
|
|
|
9
9
|
Item,
|
|
10
10
|
GroupItem, HeaderFilter, FilterRow,
|
|
11
11
|
} from 'devextreme-react/data-grid';
|
|
12
|
-
import Button from 'devextreme-react/button'; // <-- THIS import MUST be here
|
|
13
12
|
import CustomStore from 'devextreme/data/custom_store';
|
|
14
13
|
import Popup from 'devextreme-react/popup';
|
|
15
14
|
import 'devextreme/dist/css/dx.light.css';
|
|
16
15
|
|
|
17
|
-
|
|
18
16
|
const STORAGE_KEY = "ORDERS_MASTER_DETAIL_SEARCH_HISTORY";
|
|
19
|
-
const DEFAULT_SERVICE = {
|
|
20
|
-
CustomerId: 10,
|
|
21
|
-
projectId: 147,
|
|
22
|
-
id: 4, // any unique id for the list
|
|
23
|
-
status: "Active" // optional for left list rendering
|
|
24
|
-
};
|
|
25
17
|
|
|
26
|
-
const token = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiIwMDAwMDAwMy0wMDAwLTAwMDAtYzAwMC0wMDAwMDAwMDAwMDAiLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC9lNjZmMWU2Yi05Y2I5LTQyNTgtYTQyOS0xNzhjZWUzNTlhYTkvIiwiaWF0IjoxNzQ3NjI2MDM0LCJuYmYiOjE3NDc2MjYwMzQsImV4cCI6MTc0NzYyOTk1MCwiYWNjdCI6MCwiYWNyIjoiMSIsImFjcnMiOlsicDEiXSwiYWlvIjoiQVpRQWEvOFpBQUFBbGJ3R3dWeVZteXA3THJKZ0ZiRUFzTFhGQ3ZDRE9mOVBHRFZmVkhDTVIyTU9PVkUyaXNOdmtPVG9JWmdZSXg2Yi9tQkYyYnVTUmwrVW5jZVFkZ3E1RVlFSDNGWmFRYkxOMGFZK05YV2l2d2pLakdzcEJkQVREQTE3WDduQ0pmS0k5RUVtNVczTnFLNXY2QUdlZnpZRzBXMkp5d1pueVhwbVBSaEpZREpGbFdzaE9OWk1XSVNQaVdjN05Fb3gvc1IrIiwiYW1yIjpbInB3ZCIsIm1mYSJdLCJhcHBfZGlzcGxheW5hbWUiOiJmbG93LVNTTy1pbnRlZ3JhdGlvbiIsImFwcGlkIjoiOTAwN2UyYzQtM2VlOS00MWQ4LWJlNzEtM2FiZGQ0ZTc5MzIxIiwiYXBwaWRhY3IiOiIxIiwiZmFtaWx5X25hbWUiOiJNIiwiZ2l2ZW5fbmFtZSI6IkdhbnRoaW1hdGhpIiwiaWR0eXAiOiJ1c2VyIiwiaXBhZGRyIjoiMTU3LjUxLjEyNS43NSIsIm5hbWUiOiJHYW50aGltYXRoaSBNIiwib2lkIjoiNmJkNDZkNGEtNGM0ZS00Y2RlLWI5MDItNTJlN2FkYzE5NGRmIiwib25wcmVtX3NpZCI6IlMtMS01LTIxLTE3NzEzODE2ODEtMjQ0NzgzODAwMi0zNTE0ODIwOTgxLTE3MjA3OCIsInBsYXRmIjoiNSIsInB1aWQiOiIxMDAzMjAwMjJDMDlEQzgyIiwicmgiOiIxLkFWTUFheDV2NXJtY1dFS2tLUmVNN2pXYXFRTUFBQUFBQUFBQXdBQUFBQUFBQUFCVEFIeFRBQS4iLCJzY3AiOiJEaXJlY3RvcnkuUmVhZC5BbGwgVXNlci5SZWFkIFVzZXIuUmVhZC5BbGwgcHJvZmlsZSBvcGVuaWQgZW1haWwiLCJzaWQiOiIwMDRmMzk1OS0wYjE5LWZhMjUtNGUyNS0zNDI0MWU0NjljZTkiLCJzdWIiOiItV1gtSXQ5NGFDaUozN1l6UEszemdXYWxTYS1MMmJ4MDhsempxUzEyb1JRIiwidGVuYW50X3JlZ2lvbl9zY29wZSI6IkFTIiwidGlkIjoiZTY2ZjFlNmItOWNiOS00MjU4LWE0MjktMTc4Y2VlMzU5YWE5IiwidW5pcXVlX25hbWUiOiJnYW50aGltYXRoaS5tQGFjY2Vzc2hlYWx0aGNhcmUuY29tIiwidXBuIjoiZ2FudGhpbWF0aGkubUBhY2Nlc3NoZWFsdGhjYXJlLmNvbSIsInV0aSI6IjlfZDJSOGJjRFVlZERaeFdJaHdvQUEiLCJ2ZXIiOiIxLjAiLCJ3aWRzIjpbImI3OWZiZjRkLTNlZjktNDY4OS04MTQzLTc2YjE5NGU4NTUwOSJdLCJ4bXNfZnRkIjoiSVFudjZvNlNiS1FUbEpIT05mV1FXQWFxWW9XUHRnMmFoM19lX1VpbjlHa0JhMjl5WldGemIzVjBhQzFrYzIxeiIsInhtc19pZHJlbCI6IjEgMjIiLCJ4bXNfc3QiOnsic3ViIjoiQ2hwWms3bVpSX2N3UGdVUnV4ZndTb0tVQkVMNlJCaWZxMkJ5c1RhSTFyZyJ9LCJ4bXNfdGNkdCI6MTQwMTQ2MzYyNSwiVXNlclR5cGUiOjEsIlVzZXJJZCI6Nzc3NzIsIkVtcElkIjoiTTA5NDgwNTciLCJFbWFpbElkIjoiZ2FudGhpbWF0aGkubUBhY2Nlc3NoZWFsdGhjYXJlLmNvbSIsIk5hbWUiOiJHYW50aGltYXRoaSBNIiwiQXBwS2V5IjoiMjllMWEyYTAtOGU0My00NDNhLTk4MDQtMTM3MGIwN2I3ZWRkIiwiU2Vzc2lvbklkIjoiMGM5NzU3ZjktYTA1OC00MWE1LWE5M2YtOWY5MTZhMWU2ZmQxIiwiSWFtVVJMIjoiaHR0cHM6Ly91YXRfaWFtYXBpLmFjY2Vzc2hlYWx0aGNhcmUuY29tL2FwaSJ9.YPFSayPCfTBDaB2vEHhwR3TnvvstT5G3z3yIWYny_Sc'; // Replace with your token
|
|
27
|
-
const getFieldMetaAPI = (sheetId) =>
|
|
28
|
-
`http://localhost:5017/api/excel-sheets/${sheetId}/columns`;
|
|
29
18
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
19
|
+
const OrdersMasterDetail = ({ dataSource, keyExpr, token, BaseUrl, ProjectId }) => {
|
|
20
|
+
const DEFAULT_SERVICE = {
|
|
21
|
+
projectId: ProjectId,
|
|
22
|
+
id: 4,
|
|
23
|
+
status: "Active" // optional for left list rendering
|
|
24
|
+
};
|
|
33
25
|
const [orders, setOrders] = useState([]);
|
|
34
26
|
const [selectedOrder, setSelectedOrder] = useState(null);
|
|
35
27
|
const [selectedService, setSelectedService] = useState(DEFAULT_SERVICE);
|
|
@@ -41,7 +33,6 @@ const OrdersMasterDetail = ({ dataSource, keyExpr }) => {
|
|
|
41
33
|
const [category, setCategory] = useState(0);
|
|
42
34
|
const [status, setStatus] = useState(0);
|
|
43
35
|
const [filteredOrders, setFilteredOrders] = useState([]);
|
|
44
|
-
const [gridData, setGridData] = useState([]);
|
|
45
36
|
const searchTimeoutRef = useRef(null);
|
|
46
37
|
const [gridStore, setGridStore] = useState(null);
|
|
47
38
|
|
|
@@ -56,16 +47,9 @@ const OrdersMasterDetail = ({ dataSource, keyExpr }) => {
|
|
|
56
47
|
const [readOnlyFilters, setReadOnlyFilters] = useState(false);
|
|
57
48
|
const [gridInstance, setGridInstance] = useState(null);
|
|
58
49
|
const [autoExpandAll, setAutoExpandAll] = useState(true);
|
|
59
|
-
const [
|
|
60
|
-
const
|
|
61
|
-
|
|
62
|
-
const [proceedEnabled, setProceedEnabled] = useState(false); // ✅ NEW: control button enabled state
|
|
63
|
-
const [popupSummary, setPopupSummary] = useState({
|
|
64
|
-
type: '',
|
|
65
|
-
count: 0,
|
|
66
|
-
ids: [],
|
|
67
|
-
filters: []
|
|
68
|
-
});
|
|
50
|
+
const [proceedEnabled, setProceedEnabled] = useState(false);
|
|
51
|
+
const getFieldMetaAPI = (sheetId) =>
|
|
52
|
+
`${BaseUrl}api/LookupSheetMaster/GetColumns/${sheetId}`;
|
|
69
53
|
|
|
70
54
|
// ✅ Toast state
|
|
71
55
|
const [toastConfig, setToastConfig] = useState({
|
|
@@ -81,21 +65,26 @@ const OrdersMasterDetail = ({ dataSource, keyExpr }) => {
|
|
|
81
65
|
|
|
82
66
|
|
|
83
67
|
useEffect(() => {
|
|
84
|
-
if (!selectedService) return;
|
|
68
|
+
if (!selectedService) return;
|
|
85
69
|
|
|
86
70
|
const { projectId } = selectedService;
|
|
87
71
|
|
|
88
|
-
axios.get(
|
|
72
|
+
axios.get(`${BaseUrl}api/LookupSheetMaster/GetLatestSheetsByProject/${projectId}`, {
|
|
73
|
+
headers: {
|
|
74
|
+
Authorization: `Bearer ${token}`,
|
|
75
|
+
"Content-Type": "application/json",
|
|
76
|
+
},
|
|
77
|
+
})
|
|
89
78
|
.then(response => {
|
|
90
79
|
const data = response.data.map(item => ({
|
|
91
80
|
id: item.Id,
|
|
92
81
|
sheetName: item.SheetName,
|
|
93
82
|
fileId: item.FileId,
|
|
94
83
|
ProjectId: item.ProjectId,
|
|
95
|
-
status: "Active"
|
|
84
|
+
status: "Active"
|
|
96
85
|
}));
|
|
97
86
|
setOrders(data);
|
|
98
|
-
setFilteredOrders(data);
|
|
87
|
+
setFilteredOrders(data);
|
|
99
88
|
// setSelectedOrder(data.length ? data[0] : null);
|
|
100
89
|
|
|
101
90
|
})
|
|
@@ -111,11 +100,15 @@ const OrdersMasterDetail = ({ dataSource, keyExpr }) => {
|
|
|
111
100
|
const openLastViewedSheet = async () => {
|
|
112
101
|
try {
|
|
113
102
|
const res = await axios.get(
|
|
114
|
-
|
|
103
|
+
`${BaseUrl}api/LookupSheetMaster/GetLastViewedSheet`,
|
|
115
104
|
{
|
|
116
105
|
params: {
|
|
117
106
|
userId: 1,
|
|
118
|
-
projectId:
|
|
107
|
+
projectId: ProjectId
|
|
108
|
+
},
|
|
109
|
+
headers: {
|
|
110
|
+
Authorization: `Bearer ${token}`,
|
|
111
|
+
"Content-Type": "application/json"
|
|
119
112
|
}
|
|
120
113
|
}
|
|
121
114
|
);
|
|
@@ -126,7 +119,6 @@ const OrdersMasterDetail = ({ dataSource, keyExpr }) => {
|
|
|
126
119
|
const sheet = orders.find(o => o.id === lastViewedSheetId);
|
|
127
120
|
|
|
128
121
|
if (!sheet) return;
|
|
129
|
-
// ✅ EXACT SAME FLOW AS MANUAL CLICK
|
|
130
122
|
setSelectedOrder(sheet);
|
|
131
123
|
setSelectedService(sheet);
|
|
132
124
|
|
|
@@ -174,7 +166,7 @@ const OrdersMasterDetail = ({ dataSource, keyExpr }) => {
|
|
|
174
166
|
.map(p => `${p}=${encodeURIComponent(JSON.stringify(loadOptions[p]))}`)
|
|
175
167
|
.join("&");
|
|
176
168
|
|
|
177
|
-
const requestUrl =
|
|
169
|
+
const requestUrl = `${BaseUrl}api/LookupSheetMaster/GetData/${sheetId}?${queryString}`;
|
|
178
170
|
|
|
179
171
|
const response = await fetch(requestUrl, {
|
|
180
172
|
method: "POST",
|
|
@@ -211,13 +203,6 @@ const OrdersMasterDetail = ({ dataSource, keyExpr }) => {
|
|
|
211
203
|
[toastConfig, setToastConfig],
|
|
212
204
|
);
|
|
213
205
|
|
|
214
|
-
const onHiding = useCallback(() => {
|
|
215
|
-
setToastConfig({
|
|
216
|
-
...toastConfig,
|
|
217
|
-
isVisible: false,
|
|
218
|
-
});
|
|
219
|
-
}, [toastConfig, setToastConfig]);
|
|
220
|
-
|
|
221
206
|
const handleSearchChange = (value) => {
|
|
222
207
|
const safeValue = typeof value === "string" ? value : "";
|
|
223
208
|
|
|
@@ -250,8 +235,6 @@ const OrdersMasterDetail = ({ dataSource, keyExpr }) => {
|
|
|
250
235
|
});
|
|
251
236
|
|
|
252
237
|
const data = await res.json();
|
|
253
|
-
|
|
254
|
-
// Always keep FlowTaskId first
|
|
255
238
|
const flowTaskColumn = {
|
|
256
239
|
dataField: "RowNumber",
|
|
257
240
|
caption: "Sheet Row",
|
|
@@ -327,9 +310,9 @@ const OrdersMasterDetail = ({ dataSource, keyExpr }) => {
|
|
|
327
310
|
|
|
328
311
|
else if (selectAll && noneVisibleSelected) {
|
|
329
312
|
// ✅ "Deselect All"
|
|
330
|
-
e.component.clearSelection();
|
|
313
|
+
e.component.clearSelection();
|
|
331
314
|
setSelectAll(false);
|
|
332
|
-
setWasFullyDeselected(true);
|
|
315
|
+
setWasFullyDeselected(true);
|
|
333
316
|
setExcludedKeys([]);
|
|
334
317
|
setSelectedRowKeys([]);
|
|
335
318
|
setFinalCount(0);
|
|
@@ -392,58 +375,6 @@ const OrdersMasterDetail = ({ dataSource, keyExpr }) => {
|
|
|
392
375
|
}, 0);
|
|
393
376
|
}, [selectAll, excludedKeys, selectedRowKeys, gridInstance]);
|
|
394
377
|
|
|
395
|
-
|
|
396
|
-
const getFinalSelectedIds = async (extraPayload = {}) => {
|
|
397
|
-
const appliedFilters = Array.isArray(lastAppliedFilter) ? lastAppliedFilter : [];
|
|
398
|
-
const totalRows = gridInstance?.totalCount() || 0;
|
|
399
|
-
|
|
400
|
-
// Determine selectType and ids
|
|
401
|
-
let selectType = '';
|
|
402
|
-
let selectedIds = [];
|
|
403
|
-
let deselectedIds = [];
|
|
404
|
-
let selectionLabel = '';
|
|
405
|
-
let selectedCount = 0;
|
|
406
|
-
|
|
407
|
-
if (selectAll && excludedKeys.length === 0) {
|
|
408
|
-
selectType = 'ALL';
|
|
409
|
-
selectionLabel = 'All Rows Selected';
|
|
410
|
-
selectedCount = totalRows;
|
|
411
|
-
} else if (selectAll && excludedKeys.length > 0) {
|
|
412
|
-
selectType = 'EXCLUDE';
|
|
413
|
-
deselectedIds = excludedKeys;
|
|
414
|
-
selectionLabel = 'Deselected Rows';
|
|
415
|
-
selectedCount = excludedKeys.length;
|
|
416
|
-
} else {
|
|
417
|
-
selectType = 'INCLUDE';
|
|
418
|
-
selectedIds = selectedRowKeys;
|
|
419
|
-
selectionLabel = 'Selected Rows';
|
|
420
|
-
selectedCount = selectedRowKeys.length;
|
|
421
|
-
}
|
|
422
|
-
|
|
423
|
-
const payload = {
|
|
424
|
-
selectType,
|
|
425
|
-
selectedIds,
|
|
426
|
-
deselectedIds,
|
|
427
|
-
totalSelectedCount: selectedCount,
|
|
428
|
-
filters: appliedFilters.length > 0 ? appliedFilters : [],
|
|
429
|
-
...extraPayload, // Inject workspaceId, userId, etc.
|
|
430
|
-
};
|
|
431
|
-
|
|
432
|
-
console.log("📦 Final Selection Payload:", payload);
|
|
433
|
-
|
|
434
|
-
setPopupSummary(payload);
|
|
435
|
-
setPopupVisible(true);
|
|
436
|
-
setActionValue(null);
|
|
437
|
-
|
|
438
|
-
// Reset selection state
|
|
439
|
-
setSelectAll(false);
|
|
440
|
-
setExcludedKeys([]);
|
|
441
|
-
setSelectedRowKeys([]);
|
|
442
|
-
setFinalCount(0);
|
|
443
|
-
getUnSelected();
|
|
444
|
-
|
|
445
|
-
return selectedIds;
|
|
446
|
-
};
|
|
447
378
|
const formatRawFilterToReadableText = (filter) => {
|
|
448
379
|
if (!filter) return '';
|
|
449
380
|
|
|
@@ -547,50 +478,6 @@ const OrdersMasterDetail = ({ dataSource, keyExpr }) => {
|
|
|
547
478
|
}
|
|
548
479
|
};
|
|
549
480
|
|
|
550
|
-
const getUnSelected = () => {
|
|
551
|
-
const gridInstance = gridRef.current?.instance?.();
|
|
552
|
-
|
|
553
|
-
if (!gridInstance) return;
|
|
554
|
-
|
|
555
|
-
// ✅ Clear selection only (do not clear filters)
|
|
556
|
-
gridInstance.deselectAll();
|
|
557
|
-
|
|
558
|
-
// ✅ Reset your internal state
|
|
559
|
-
setSelectAll(false);
|
|
560
|
-
setExcludedKeys([]);
|
|
561
|
-
setSelectedRowKeys([]);
|
|
562
|
-
setShowCheckboxes(false);
|
|
563
|
-
setFinalCount(0);
|
|
564
|
-
setReadOnlyFilters(false);
|
|
565
|
-
};
|
|
566
|
-
|
|
567
|
-
const getClearSelected = () => {
|
|
568
|
-
const gridInstance = gridRef.current?.instance?.();
|
|
569
|
-
|
|
570
|
-
if (!gridInstance) return;
|
|
571
|
-
|
|
572
|
-
// ✅ Clear selection
|
|
573
|
-
gridInstance.deselectAll();
|
|
574
|
-
|
|
575
|
-
// ✅ Clear all filters (FilterRow + HeaderFilter)
|
|
576
|
-
const columns = gridInstance.getVisibleColumns();
|
|
577
|
-
columns.forEach((col) => {
|
|
578
|
-
gridInstance.columnOption(col.dataField, 'filterValue', null); // FilterRow
|
|
579
|
-
gridInstance.columnOption(col.dataField, 'filterValues', null); // HeaderFilter
|
|
580
|
-
});
|
|
581
|
-
|
|
582
|
-
gridInstance.clearFilter(); // apply filter clearing
|
|
583
|
-
|
|
584
|
-
// ✅ Reset your internal state
|
|
585
|
-
setSelectAll(false);
|
|
586
|
-
setExcludedKeys([]);
|
|
587
|
-
setSelectedRowKeys([]);
|
|
588
|
-
// setShowCheckboxes(false);
|
|
589
|
-
setFinalCount(0);
|
|
590
|
-
setReadOnlyFilters(false);
|
|
591
|
-
setActionValue(null);
|
|
592
|
-
|
|
593
|
-
};
|
|
594
481
|
|
|
595
482
|
useEffect(() => {
|
|
596
483
|
if (readOnlyFilters) {
|
|
@@ -613,33 +500,21 @@ const OrdersMasterDetail = ({ dataSource, keyExpr }) => {
|
|
|
613
500
|
const saveLastViewedSheet = async (sheet) => {
|
|
614
501
|
try {
|
|
615
502
|
await axios.post(
|
|
616
|
-
|
|
503
|
+
`${BaseUrl}api/LookupSheetMaster/UpdateLastViewedSheet`,
|
|
617
504
|
{
|
|
618
505
|
userId: 1, // replace with logged-in user id later
|
|
619
|
-
projectId:
|
|
506
|
+
projectId: ProjectId,
|
|
620
507
|
sheetId: sheet.id
|
|
621
|
-
}
|
|
622
|
-
);
|
|
623
|
-
} catch (error) {
|
|
624
|
-
console.error("Failed to save last viewed sheet", error);
|
|
625
|
-
}
|
|
626
|
-
};
|
|
627
|
-
// ✅ GET LAST VIEWED SHEET
|
|
628
|
-
const getLastViewedSheet = async (projectId) => {
|
|
629
|
-
try {
|
|
630
|
-
const response = await axios.get(
|
|
631
|
-
"http://localhost:5017/api/excel-sheets/last-viewed",
|
|
508
|
+
},
|
|
632
509
|
{
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
510
|
+
headers: {
|
|
511
|
+
Authorization: `Bearer ${token}`,
|
|
512
|
+
"Content-Type": "application/json"
|
|
636
513
|
}
|
|
637
514
|
}
|
|
638
515
|
);
|
|
639
|
-
return response.data; // expected: { sheetId: number }
|
|
640
516
|
} catch (error) {
|
|
641
|
-
console.error("Failed to
|
|
642
|
-
return null;
|
|
517
|
+
console.error("Failed to save last viewed sheet", error);
|
|
643
518
|
}
|
|
644
519
|
};
|
|
645
520
|
|
|
@@ -679,12 +554,6 @@ const OrdersMasterDetail = ({ dataSource, keyExpr }) => {
|
|
|
679
554
|
return () => window.removeEventListener("storage", handleStorageChange);
|
|
680
555
|
}, []);
|
|
681
556
|
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
/* ----------------------------
|
|
686
|
-
API call (tab close / logout only)
|
|
687
|
-
----------------------------- */
|
|
688
557
|
const updateSearchHistoryAPI = () => {
|
|
689
558
|
if (!searchHistoryRef.current.length) return;
|
|
690
559
|
|
|
@@ -697,9 +566,6 @@ const OrdersMasterDetail = ({ dataSource, keyExpr }) => {
|
|
|
697
566
|
);
|
|
698
567
|
};
|
|
699
568
|
|
|
700
|
-
/* ----------------------------
|
|
701
|
-
Tab switch & close
|
|
702
|
-
----------------------------- */
|
|
703
569
|
useEffect(() => {
|
|
704
570
|
const handleVisibilityChange = () => {
|
|
705
571
|
if (document.visibilityState === "hidden") {
|
|
@@ -725,35 +591,6 @@ const OrdersMasterDetail = ({ dataSource, keyExpr }) => {
|
|
|
725
591
|
|
|
726
592
|
gridInstance.searchByText(searchText);
|
|
727
593
|
};
|
|
728
|
-
const clearSearch = () => {
|
|
729
|
-
if (!gridInstance) return;
|
|
730
|
-
setSearchText("");
|
|
731
|
-
gridInstance.searchByText("");
|
|
732
|
-
};
|
|
733
|
-
|
|
734
|
-
const gridDataWithId = gridData.map((row, index) => ({
|
|
735
|
-
...row,
|
|
736
|
-
rowId: index + 1
|
|
737
|
-
}));
|
|
738
|
-
|
|
739
|
-
const handleColumnReorder = (e) => {
|
|
740
|
-
alert("bsvdchg")
|
|
741
|
-
console.log("selectedOrder", selectedOrder)
|
|
742
|
-
if (!selectedOrder) return;
|
|
743
|
-
|
|
744
|
-
const payload = {
|
|
745
|
-
sheetId: selectedOrder.id,
|
|
746
|
-
fieldName: e.column.dataField,
|
|
747
|
-
fromIndex: e.fromIndex,
|
|
748
|
-
toIndex: e.toIndex
|
|
749
|
-
};
|
|
750
|
-
|
|
751
|
-
axios.post(
|
|
752
|
-
"http://localhost:5017/api/excel-sheets/columns/reorder",
|
|
753
|
-
payload
|
|
754
|
-
).catch(err => console.error("Column reorder save failed", err));
|
|
755
|
-
};
|
|
756
|
-
|
|
757
594
|
|
|
758
595
|
useEffect(() => {
|
|
759
596
|
// If all filters are cleared → show all records
|
|
@@ -773,13 +610,9 @@ const OrdersMasterDetail = ({ dataSource, keyExpr }) => {
|
|
|
773
610
|
if (!key) return "";
|
|
774
611
|
|
|
775
612
|
return key
|
|
776
|
-
// Handle snake_case first
|
|
777
613
|
.replace(/_/g, " ")
|
|
778
|
-
// Add space between lowerCase -> UpperCase
|
|
779
614
|
.replace(/([a-z])([A-Z])/g, "$1 $2")
|
|
780
|
-
// Add space before last capital in acronyms (ID, URL, etc.)
|
|
781
615
|
.replace(/([A-Z]+)([A-Z][a-z])/g, "$1 $2")
|
|
782
|
-
// Capitalize first letter of each word
|
|
783
616
|
.replace(/\b\w/g, (c) => c.toUpperCase());
|
|
784
617
|
};
|
|
785
618
|
|
|
@@ -951,39 +784,6 @@ const OrdersMasterDetail = ({ dataSource, keyExpr }) => {
|
|
|
951
784
|
<GroupItem column="sheetId" summaryType="count" displayFormat="Count: {0}" />
|
|
952
785
|
</Summary>
|
|
953
786
|
|
|
954
|
-
{/* <Toolbar>
|
|
955
|
-
<Item name="groupPanel" location="before" />
|
|
956
|
-
|
|
957
|
-
<Item
|
|
958
|
-
location="after"
|
|
959
|
-
render={() => (
|
|
960
|
-
<Button
|
|
961
|
-
icon="arrowright"
|
|
962
|
-
text={`(${finalCount})`}
|
|
963
|
-
onClick={() => {
|
|
964
|
-
if (actionValue === "Assigned") {
|
|
965
|
-
setAssignPopupVisible(true);
|
|
966
|
-
} else {
|
|
967
|
-
getFinalSelectedIds();
|
|
968
|
-
setPopupVisible(true);
|
|
969
|
-
}
|
|
970
|
-
}}
|
|
971
|
-
disabled={!proceedEnabled}
|
|
972
|
-
/>
|
|
973
|
-
)}
|
|
974
|
-
/>
|
|
975
|
-
|
|
976
|
-
<Item
|
|
977
|
-
location="after"
|
|
978
|
-
render={() => (
|
|
979
|
-
<Button
|
|
980
|
-
icon="clearformat"
|
|
981
|
-
text="Clear"
|
|
982
|
-
onClick={getClearSelected}
|
|
983
|
-
/>
|
|
984
|
-
)}
|
|
985
|
-
/>
|
|
986
|
-
</Toolbar> */}
|
|
987
787
|
</DataGrid>
|
|
988
788
|
|
|
989
789
|
|