feat: Add Google Taxonomy integration and product editing enhancements

- Implemented Google Taxonomy loading via AJAX in main_view.php, allowing users to select categories for products.
- Enhanced product editing modal to include fields for product title, description, and Google category selection.
- Updated AJAX calls to save product data, including custom title, description, and selected Google category.
- Added character count validation for product title input.
- Integrated Select2 for improved category selection UI.
- Created google-taxonomy.php to fetch and cache Google Taxonomy data, ensuring efficient retrieval and fallback mechanisms.
- Removed outdated custom feed XML file.
- Updated layout-logged.php to include necessary Select2 styles and scripts.
This commit is contained in:
2025-11-20 23:46:21 +01:00
parent 92ce677f7c
commit f5db5263ab
11 changed files with 1424 additions and 38 deletions

View File

@@ -1335,4 +1335,75 @@ table {
.comment-form .hint {
font-size: 12px;
color: #666;
}
/* === Select2 w modalu "Edytuj produkt" === */
/* pełna szerokość i taki sam odstęp jak inne pola */
.jconfirm-box .form-group .select2-container {
width: 100% !important;
margin-top: 8px;
}
/* wygląd "inputa" */
.jconfirm-box .select2-container--default .select2-selection--single {
background-color: #fff;
border: 1px solid #ced4da;
/* jak bootstrapowe inputy */
border-radius: 3px;
min-height: 42px;
/* wysokość podobna do pola tytułu/opisu */
display: flex;
align-items: center;
padding: 4px 12px;
box-shadow: none;
transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out;
font-size: 14px;
}
/* tekst w środku */
.jconfirm-box .select2-container--default .select2-selection--single .select2-selection__rendered {
padding-left: 0;
line-height: 1.4;
color: #495057;
}
/* placeholder */
.jconfirm-box .select2-container--default .select2-selection--single .select2-selection__placeholder {
color: #adb5bd;
}
/* strzałka po prawej wyrównanie */
.jconfirm-box .select2-container--default .select2-selection--single .select2-selection__arrow {
height: 100%;
right: 8px;
}
/* efekt hover/focus jak na form-control */
.jconfirm-box .select2-container--default.select2-container--focus .select2-selection--single,
.jconfirm-box .select2-container--default .select2-selection--single:hover {
border-color: #80bdff;
box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, .25);
outline: 0;
}
/* dropdown (lista kategorii) */
.jconfirm-box .select2-container .select2-dropdown {
border-color: #ced4da;
border-radius: 0 0 3px 3px;
font-size: 14px;
}
/* pole wyszukiwania w dropdownie */
.jconfirm-box .select2-container .select2-search--dropdown .select2-search__field {
padding: 6px 10px;
border-radius: 3px;
border: 1px solid #ced4da;
font-size: 14px;
}
/* podświetlenie zaznaczonej pozycji */
.jconfirm-box .select2-container--default .select2-results__option--highlighted[aria-selected] {
background-color: #007bff;
color: #fff;
}