const subcategory = $link.data('subcategory');
const $row = $link.closest('tr');
const filters = getFilterData();
- filters['month'] = getMonthByWeek(filters['week'], filters['year'], true)
+ filters['month'] = getMonthByWeek(filters['week'], filters['year'], true);
filters.category = category;
filters.subcategory = subcategory;
alert('Нет планограммы для выбранного периода');
}
+ // Функция генерации текста для title
+ function generateTitleString(titleObj) {
+ if (!titleObj || typeof titleObj !== 'object') return '';
+ let parts = [];
+
+ for (const [type, groups] of Object.entries(titleObj)) {
+ if (typeof groups !== 'object') continue;
+ let groupParts = [];
+ for (const [group, value] of Object.entries(groups)) {
+ groupParts.push(`${group}: ${value}`);
+ }
+ parts.push(`${type} — ${groupParts.join(', ')}`);
+ }
+
+ return parts.join(' | ');
+ }
+
response.forEach(item => {
const tr = $('<tr class="inserted-row"></tr>');
val.store_id,
{
quantity: val.quantity,
- id: val.id
+ id: val.id,
+ title: val.title || {}
}
]));
const isVisible = $(`table tbody tr:first td:eq(${index})`).is(':visible');
if (!isVisible) return;
- const val = valuesMap[storeId] || {quantity: '', id: ''};
+ const val = valuesMap[storeId] || {quantity: '', id: '', title: {}};
+ const tooltipTitle = $('<div>').text(generateTitleString(val.title)).html(); // экранирование
const td = $(`
<td data-store-id="${storeId}">
data-id="${val.id}"
data-guid="${item.product_id}"
data-store_id="${storeId}"
+ title="${tooltipTitle}"
data-bs-toggle="tooltip" data-bs-placement="top"
- data-original-value="${val.quantity}"
- >
+ data-original-value="${val.quantity}">
<button class="reject-btn border-0 bg-transparent cursor-pointer">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
<path d="M20 11v5a1 1 0 0 1-2 0v-4H7.414l1.293 1.293a1 1 0 0 1-1.414 1.414l-3-3a1 1 0 0 1 0-1.416l3-3a1 1 0 1 1 1.414 1.416L7.414 10H19a1 1 0 0 1 1 1z"
$row.after(tr);
});
+
+ // Инициализация Bootstrap tooltips
+ $('[data-bs-toggle="tooltip"]').tooltip();
})
.fail(xhr => alert('Ошибка: ' + xhr.responseText))
.always(() => {