main field show in imported
This commit is contained in:
parent
6460454201
commit
df075dd76a
@ -463,13 +463,13 @@
|
||||
const row = data[rowIndex];
|
||||
|
||||
switch (col.type) {
|
||||
case "main_field":
|
||||
div.innerHTML = createInputHTML(
|
||||
col,
|
||||
row.mainFieldValue || "",
|
||||
rowIndex,
|
||||
);
|
||||
case "main_field": {
|
||||
const val = getDetailValue(rowIndex, col.key);
|
||||
|
||||
div.innerHTML = createInputHTML(col, val || "", rowIndex);
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case "status": {
|
||||
const st = row.status || "i";
|
||||
|
||||
@ -55,15 +55,22 @@ if (empty($allMappings)) {
|
||||
exit;
|
||||
}
|
||||
|
||||
// Trova il campo main_field
|
||||
$mainFieldMapping = null;
|
||||
// Find up to 2 main fields
|
||||
$mainFieldMappings = [];
|
||||
|
||||
foreach ($allMappings as $mapping) {
|
||||
if ($mapping['main_field'] == 1 && $mapping['is_visible_import'] == 1) {
|
||||
$mainFieldMapping = $mapping;
|
||||
if ((string)$mapping['main_field'] === '1' && (int)$mapping['is_visible_import'] === 1) {
|
||||
$mainFieldMappings[] = $mapping;
|
||||
}
|
||||
|
||||
if (count($mainFieldMappings) >= 2) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Backward compatibility: first main field
|
||||
$mainFieldMapping = $mainFieldMappings[0] ?? null;
|
||||
|
||||
// Recupera l'idclient di default dal template (se presente)
|
||||
$template_stmt = $pdo->prepare("SELECT idclient FROM excel_templates WHERE id = ?");
|
||||
$template_stmt->execute([$template_id]);
|
||||
@ -224,11 +231,18 @@ foreach ($importedData as $index => $row) {
|
||||
$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) {
|
||||
$mainDetail = array_filter($rowDetails, fn($d) => $d['mapping_id'] == $mainFieldMapping['id']);
|
||||
$mainDetail = reset($mainDetail) ?: ['field_value' => $mainFieldMapping['manual_default'] ?? ''];
|
||||
$rowObj['mainFieldValue'] = $mainDetail['field_value'] ?? $mainFieldMapping['manual_default'] ?? '';
|
||||
$rowObj['mainFieldValue'] = $rowObj['details'][(string)$mainFieldMapping['id']] ?? '';
|
||||
}
|
||||
|
||||
$rowObj['_dirty'] = false;
|
||||
@ -238,16 +252,16 @@ foreach ($importedData as $index => $row) {
|
||||
// Build columns in display order
|
||||
$gridColumns = [];
|
||||
|
||||
// 1. Main field
|
||||
if ($mainFieldMapping) {
|
||||
// 1. Main fields, maximum 2
|
||||
foreach ($mainFieldMappings as $mainMapping) {
|
||||
$gridColumns[] = [
|
||||
'type' => 'main_field',
|
||||
'key' => (string)$mainFieldMapping['id'],
|
||||
'label' => $mainFieldMapping['field_label'],
|
||||
'dataType' => $mainFieldMapping['data_type'],
|
||||
'isManual' => (bool)$mainFieldMapping['is_manual'],
|
||||
'isRequired' => (bool)$mainFieldMapping['is_required'],
|
||||
'fieldId' => $mainFieldMapping['field_id'] ?? null,
|
||||
'key' => (string)$mainMapping['id'],
|
||||
'label' => $mainMapping['field_label'],
|
||||
'dataType' => $mainMapping['data_type'],
|
||||
'isManual' => (bool)$mainMapping['is_manual'],
|
||||
'isRequired' => (bool)$mainMapping['is_required'],
|
||||
'fieldId' => $mainMapping['field_id'] ?? null,
|
||||
'width' => 150,
|
||||
];
|
||||
}
|
||||
@ -342,7 +356,8 @@ $gridMeta = [
|
||||
'slugMapping' => $slugMapping,
|
||||
'timeLabels' => $timeLabels,
|
||||
'columns' => $gridColumns,
|
||||
'mainFieldMapping' => $mainFieldMapping,
|
||||
'mainFieldMapping' => $mainFieldMapping,
|
||||
'mainFieldMappings' => $mainFieldMappings,
|
||||
'totalRows' => count($gridDataArray),
|
||||
];
|
||||
|
||||
@ -669,7 +684,33 @@ $gridMeta = [
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user