main field show in imported
This commit is contained in:
parent
6460454201
commit
df075dd76a
@ -463,13 +463,13 @@
|
|||||||
const row = data[rowIndex];
|
const row = data[rowIndex];
|
||||||
|
|
||||||
switch (col.type) {
|
switch (col.type) {
|
||||||
case "main_field":
|
case "main_field": {
|
||||||
div.innerHTML = createInputHTML(
|
const val = getDetailValue(rowIndex, col.key);
|
||||||
col,
|
|
||||||
row.mainFieldValue || "",
|
div.innerHTML = createInputHTML(col, val || "", rowIndex);
|
||||||
rowIndex,
|
|
||||||
);
|
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
case "status": {
|
case "status": {
|
||||||
const st = row.status || "i";
|
const st = row.status || "i";
|
||||||
|
|||||||
@ -55,15 +55,22 @@ if (empty($allMappings)) {
|
|||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Trova il campo main_field
|
// Find up to 2 main fields
|
||||||
$mainFieldMapping = null;
|
$mainFieldMappings = [];
|
||||||
|
|
||||||
foreach ($allMappings as $mapping) {
|
foreach ($allMappings as $mapping) {
|
||||||
if ($mapping['main_field'] == 1 && $mapping['is_visible_import'] == 1) {
|
if ((string)$mapping['main_field'] === '1' && (int)$mapping['is_visible_import'] === 1) {
|
||||||
$mainFieldMapping = $mapping;
|
$mainFieldMappings[] = $mapping;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (count($mainFieldMappings) >= 2) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Backward compatibility: first main field
|
||||||
|
$mainFieldMapping = $mainFieldMappings[0] ?? null;
|
||||||
|
|
||||||
// Recupera l'idclient di default dal template (se presente)
|
// Recupera l'idclient di default dal template (se presente)
|
||||||
$template_stmt = $pdo->prepare("SELECT idclient FROM excel_templates WHERE id = ?");
|
$template_stmt = $pdo->prepare("SELECT idclient FROM excel_templates WHERE id = ?");
|
||||||
$template_stmt->execute([$template_id]);
|
$template_stmt->execute([$template_id]);
|
||||||
@ -224,11 +231,18 @@ foreach ($importedData as $index => $row) {
|
|||||||
$rowObj['details'][(string)$d['mapping_id']] = $d['field_value'] ?? '';
|
$rowObj['details'][(string)$d['mapping_id']] = $d['field_value'] ?? '';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Main field value
|
// Main field values
|
||||||
|
foreach ($mainFieldMappings as $mainMapping) {
|
||||||
|
$mainDetail = array_filter($rowDetails, fn($d) => $d['mapping_id'] == $mainMapping['id']);
|
||||||
|
$mainDetail = reset($mainDetail) ?: ['field_value' => $mainMapping['manual_default'] ?? ''];
|
||||||
|
|
||||||
|
$rowObj['details'][(string)$mainMapping['id']] =
|
||||||
|
$mainDetail['field_value'] ?? $mainMapping['manual_default'] ?? '';
|
||||||
|
}
|
||||||
|
|
||||||
|
// Backward compatibility: first main value
|
||||||
if ($mainFieldMapping) {
|
if ($mainFieldMapping) {
|
||||||
$mainDetail = array_filter($rowDetails, fn($d) => $d['mapping_id'] == $mainFieldMapping['id']);
|
$rowObj['mainFieldValue'] = $rowObj['details'][(string)$mainFieldMapping['id']] ?? '';
|
||||||
$mainDetail = reset($mainDetail) ?: ['field_value' => $mainFieldMapping['manual_default'] ?? ''];
|
|
||||||
$rowObj['mainFieldValue'] = $mainDetail['field_value'] ?? $mainFieldMapping['manual_default'] ?? '';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$rowObj['_dirty'] = false;
|
$rowObj['_dirty'] = false;
|
||||||
@ -238,16 +252,16 @@ foreach ($importedData as $index => $row) {
|
|||||||
// Build columns in display order
|
// Build columns in display order
|
||||||
$gridColumns = [];
|
$gridColumns = [];
|
||||||
|
|
||||||
// 1. Main field
|
// 1. Main fields, maximum 2
|
||||||
if ($mainFieldMapping) {
|
foreach ($mainFieldMappings as $mainMapping) {
|
||||||
$gridColumns[] = [
|
$gridColumns[] = [
|
||||||
'type' => 'main_field',
|
'type' => 'main_field',
|
||||||
'key' => (string)$mainFieldMapping['id'],
|
'key' => (string)$mainMapping['id'],
|
||||||
'label' => $mainFieldMapping['field_label'],
|
'label' => $mainMapping['field_label'],
|
||||||
'dataType' => $mainFieldMapping['data_type'],
|
'dataType' => $mainMapping['data_type'],
|
||||||
'isManual' => (bool)$mainFieldMapping['is_manual'],
|
'isManual' => (bool)$mainMapping['is_manual'],
|
||||||
'isRequired' => (bool)$mainFieldMapping['is_required'],
|
'isRequired' => (bool)$mainMapping['is_required'],
|
||||||
'fieldId' => $mainFieldMapping['field_id'] ?? null,
|
'fieldId' => $mainMapping['field_id'] ?? null,
|
||||||
'width' => 150,
|
'width' => 150,
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
@ -343,6 +357,7 @@ $gridMeta = [
|
|||||||
'timeLabels' => $timeLabels,
|
'timeLabels' => $timeLabels,
|
||||||
'columns' => $gridColumns,
|
'columns' => $gridColumns,
|
||||||
'mainFieldMapping' => $mainFieldMapping,
|
'mainFieldMapping' => $mainFieldMapping,
|
||||||
|
'mainFieldMappings' => $mainFieldMappings,
|
||||||
'totalRows' => count($gridDataArray),
|
'totalRows' => count($gridDataArray),
|
||||||
];
|
];
|
||||||
|
|
||||||
@ -669,7 +684,33 @@ $gridMeta = [
|
|||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.grid-row .grid-header:nth-child(2) {
|
<?php if (isset($mainFieldMappings) && count($mainFieldMappings) >= 2): ?>
|
||||||
|
|
||||||
|
/* Sticky second Main column - only when the template has 2 Main fields */
|
||||||
|
.grid-top .grid-cell:nth-child(3),
|
||||||
|
#gridHeaderContainer .grid-header:nth-child(3),
|
||||||
|
.grid-row .grid-cell:nth-child(3) {
|
||||||
|
position: sticky !important;
|
||||||
|
left: 360px;
|
||||||
|
z-index: 7;
|
||||||
|
background: white;
|
||||||
|
overflow: visible;
|
||||||
|
flex-shrink: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#gridHeaderContainer .grid-header:nth-child(3) {
|
||||||
|
background-color: #e9ecef;
|
||||||
|
}
|
||||||
|
|
||||||
|
.grid-row:nth-child(even) .grid-cell:nth-child(3) {
|
||||||
|
background-color: #f8f9fa;
|
||||||
|
}
|
||||||
|
|
||||||
|
.grid-row:hover .grid-cell:nth-child(3) {
|
||||||
|
background-color: #e9ecef;
|
||||||
|
}
|
||||||
|
|
||||||
|
<?php endif; ?>.grid-row .grid-header:nth-child(2) {
|
||||||
background-color: #e9ecef;
|
background-color: #e9ecef;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user