Files
VITEC-website/packages/vitec/Resources/Public/Css/backend-import.css
Oliver Rasche 5e3be3ec42 Backend module: CSV import for the VITEC domain models
New "VITEC Import" module under Web: one import page per domain model
(v1: Market, Solution, Product - registry-driven, adding a model is one
config entry). Workflow: upload a CSV (delimiter and encoding are
auto-detected, including German-Excel semicolon/Windows-1252), map CSV
columns to DB fields, persist the mapping per model together with the
identity field used for matching (new table tx_vitec_import_mapping,
no TCA - pure tool configuration), review a unified list of CSV rows
matched against the DB records (new / update with differing fields /
unchanged / db-only), then apply the checked rows through DataHandler.

Each importable row carries an editable JSON payload textarea - what
is written is the textarea content, not the raw CSV, so editors can
fix values right in the review step. The parsed CSV travels through
the form as a hidden JSON field: no session state, no temp files.
Importable fields are derived from TCA at runtime (scalar types only;
files, categories and other relations are excluded - a flat CSV
cannot carry them). Payloads are whitelisted against that field list
on apply; new records require a storage pid (prefilled from existing
records). BE user permissions apply via DataHandler.

The module ships its own CSS (backend-import.css, loaded only by
this module) using the frontend button palette from _vitec.scss:
orange #f47937 for primary actions, navy #26358c for secondary
actions and structure. The stray <h2>Hi</h2> debug leftover in the
shared backend layout is removed (also affects the OG Image module).

Deliberately out of v1: import log with three-way compare (protection
against overwriting manual edits), images/relations, multiple saved
mappings per model.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-07 12:59:49 +02:00

106 lines
2.7 KiB
CSS

/**
* VITEC Import module - look & feel aligned with the frontend button
* palette (Resources/Public/SCSS/_vitec.scss):
* orange #f47937 (hover #db6324) - primary actions
* navy #26358c (hover #1e2a70) - secondary actions / structure
* graphite #313131 - neutral emphasis
* light #cccccc / #eeeeee - muted
* Loaded only by the import module (ImportController), scoped to
* .vitec-administration so other modules stay untouched.
*/
.vitec-administration h2 {
color: #26358c;
}
/* --- buttons ------------------------------------------------------- */
.vitec-administration .btn-primary {
background-color: #f47937;
border-color: #f47937;
color: #ffffff;
}
.vitec-administration .btn-primary:hover,
.vitec-administration .btn-primary:focus,
.vitec-administration .btn-primary:active {
background-color: #db6324;
border-color: #db6324;
color: #ffffff;
}
.vitec-administration .btn-default {
background-color: #ffffff;
border: 1px solid #26358c;
color: #26358c;
}
.vitec-administration .btn-default:hover,
.vitec-administration .btn-default:focus {
background-color: #26358c;
border-color: #26358c;
color: #ffffff;
}
/* --- model tabs ---------------------------------------------------- */
.vitec-administration .nav-tabs .nav-link {
color: #26358c;
}
.vitec-administration .nav-tabs .nav-link.active {
color: #0d0d0d;
font-weight: 600;
border-bottom: 3px solid #f47937;
}
/* --- cards & tables ------------------------------------------------ */
.vitec-administration .card {
border: 1px solid #d8dbe6;
}
.vitec-administration .card-header {
background-color: #26358c;
color: #ffffff;
}
.vitec-administration thead th {
border-bottom: 2px solid #26358c;
}
/* --- status badges -------------------------------------------------- */
.vitec-administration .vitec-badge {
display: inline-block;
padding: 2px 9px;
border-radius: 3px;
font-size: 11px;
font-weight: 600;
line-height: 1.6;
}
.vitec-administration .vitec-badge-new {
background-color: #f47937;
color: #ffffff;
}
.vitec-administration .vitec-badge-update {
background-color: #26358c;
color: #ffffff;
}
.vitec-administration .vitec-badge-unchanged {
background-color: #cccccc;
color: #0d0d0d;
}
.vitec-administration .vitec-badge-dbonly {
background-color: #eeeeee;
color: #313131;
border: 1px solid #cccccc;
}
.vitec-administration .vitec-badge-info {
background-color: #313131;
color: #ffffff;
}
/* --- form focus (frontend uses a 3px orange outline) ---------------- */
.vitec-administration .form-control:focus,
.vitec-administration .form-select:focus {
border-color: #f47937;
box-shadow: 0 0 0 3px rgba(244, 121, 55, 0.35);
}