subtab bug fix

This commit is contained in:
Ali 2026-01-12 18:51:42 +04:00
parent 9d57da7061
commit 994d44cdaf
1 changed files with 36 additions and 13 deletions

View File

@ -99,11 +99,11 @@ function setup_custom_subtabs(wrapper, currentDoctype) {
const parentName = childToParentMap[currentChild]; const parentName = childToParentMap[currentChild];
parentsToShow.push(parentName); parentsToShow.push(parentName);
// Show all siblings // Show all siblings - НЕ используем .show(), используем CSS класс
const siblings = subtabs[parentName] || []; const siblings = subtabs[parentName] || [];
siblings.forEach(sibling => { siblings.forEach(sibling => {
const siblingElement = wrapper.find(`.sub-tab[data-subtab-name="${sibling}"]`); const siblingElement = wrapper.find(`.sub-tab[data-subtab-name="${sibling}"]`);
siblingElement.show(); siblingElement.css('display', ''); // Убираем inline style
}); });
currentChild = parentName; currentChild = parentName;
@ -128,6 +128,7 @@ function setup_custom_subtabs(wrapper, currentDoctype) {
const clickedSubtab = clickedButton.closest(".sub-tab"); const clickedSubtab = clickedButton.closest(".sub-tab");
const subtabName = clickedSubtab.attr("data-subtab-name"); const subtabName = clickedSubtab.attr("data-subtab-name");
const targetId = clickedButton.attr("data-target-id") || clickedButton.attr("aria-controls"); const targetId = clickedButton.attr("data-target-id") || clickedButton.attr("aria-controls");
const parentContainerId = clickedSubtab.attr("data-parent-id");
// Temporarily disable shown.bs.tab handler // Temporarily disable shown.bs.tab handler
wrapper.off('shown.bs.tab.customsubtabs'); wrapper.off('shown.bs.tab.customsubtabs');
@ -137,6 +138,16 @@ function setup_custom_subtabs(wrapper, currentDoctype) {
wrapper.find("button.nav-link, a.nav-link").removeClass("active").attr("aria-selected", "false"); wrapper.find("button.nav-link, a.nav-link").removeClass("active").attr("aria-selected", "false");
wrapper.find(".tab-pane").removeClass("active show"); wrapper.find(".tab-pane").removeClass("active show");
// Скрыть все контейнеры субтабов, кроме родительского
wrapper.find(".sub-tab-container").each(function() {
const containerParentId = $(this).attr("data-parent-id");
if (containerParentId !== parentContainerId) {
$(this).addClass("subtab-hidden");
} else {
$(this).removeClass("subtab-hidden");
}
});
// Activate subtab // Activate subtab
clickedSubtab.addClass("active"); clickedSubtab.addClass("active");
clickedButton.addClass("active").attr("aria-selected", "true"); clickedButton.addClass("active").attr("aria-selected", "true");
@ -200,6 +211,18 @@ function setup_custom_subtabs(wrapper, currentDoctype) {
// Initialize handler // Initialize handler
setupMainTabHandler(); setupMainTabHandler();
// Инициализация: скрыть все контейнеры, кроме активного таба
const activeMainTab = wrapper.find("ul.form-tabs > li.nav-item.active:not(.sub-tab)").first();
const activeTabLink = getTabLink(activeMainTab);
const activeTabId = activeTabLink.attr("aria-controls");
wrapper.find(".sub-tab-container").each(function() {
const containerParentId = $(this).attr("data-parent-id");
if (containerParentId !== activeTabId) {
$(this).addClass("subtab-hidden");
}
});
// Mark as processed // Mark as processed
wrapper.attr('data-subtabs-processed', 'true'); wrapper.attr('data-subtabs-processed', 'true');
} }