added checkbox Hide NC price (Purchase price)
This commit is contained in:
@@ -2,6 +2,15 @@
|
||||
* Price Display Toggle Template
|
||||
* Module: B2bpayments
|
||||
*}
|
||||
{if $is_admin == '1'}
|
||||
<div class="nc-display-switcher">
|
||||
<label class="form-check-label">
|
||||
<input type="checkbox" id="ncDisplayToggle" />
|
||||
{l s='Isključi NC' d='Modules.B2bpayments.ShopBreadcrumb'}
|
||||
</label>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<div class="price-display-switcher">
|
||||
<div id="price-display-switcher" class="payments-selection">
|
||||
<select id="priceDisplayToggle" name="price_display_preference" class="custom-select">
|
||||
@@ -135,4 +144,77 @@
|
||||
}, 100);
|
||||
});
|
||||
</script>
|
||||
|
||||
<script>
|
||||
// --- NC handling ---
|
||||
(function() {
|
||||
const STORAGE_KEY = 'ncHidePreference'; // Pohranjujemo je li NC skriven
|
||||
|
||||
/**
|
||||
* Primjenjuje vidljivost NC elemenata.
|
||||
* @param {boolean} hideNc - Ako je true, sakrij NC. Ako je false, prikaži NC.
|
||||
*/
|
||||
function applyNcVisibility(hideNc) {
|
||||
const ncElements = document.querySelectorAll('.ncrender');
|
||||
ncElements.forEach(el => {
|
||||
el.style.display = hideNc ? 'none' : '';
|
||||
});
|
||||
}
|
||||
|
||||
function saveNcPreference(hideNc) {
|
||||
try {
|
||||
localStorage.setItem(STORAGE_KEY, hideNc ? 'true' : 'false');
|
||||
} catch (e) {
|
||||
console.error('NC Toggle: LocalStorage greška', e);
|
||||
}
|
||||
}
|
||||
|
||||
function loadNcPreference() {
|
||||
try {
|
||||
// DEFAULT: Vraćamo false (nije skriveno -> prikazano je)
|
||||
const saved = localStorage.getItem(STORAGE_KEY);
|
||||
return saved === 'true';
|
||||
} catch (e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
function refreshNcState() {
|
||||
const isHidden = loadNcPreference();
|
||||
applyNcVisibility(isHidden);
|
||||
}
|
||||
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
const ncCheckbox = document.getElementById('ncDisplayToggle');
|
||||
const isHidden = loadNcPreference();
|
||||
|
||||
// 1. Postavi stanje checkboxa (označen ako je skriveno) i primijeni vidljivost
|
||||
if (ncCheckbox) {
|
||||
ncCheckbox.checked = isHidden;
|
||||
ncCheckbox.addEventListener('change', (e) => {
|
||||
const hideNc = e.target.checked;
|
||||
saveNcPreference(hideNc);
|
||||
applyNcVisibility(hideNc);
|
||||
});
|
||||
}
|
||||
|
||||
// Primijeni na početnom učitavanju
|
||||
applyNcVisibility(isHidden);
|
||||
|
||||
// 2. PrestaShop AJAX listeneri
|
||||
let attempts = 0;
|
||||
const psCheck = setInterval(() => {
|
||||
if (typeof prestashop !== 'undefined' && prestashop.on) {
|
||||
clearInterval(psCheck);
|
||||
|
||||
prestashop.on('updatedProduct', () => setTimeout(refreshNcState, 50));
|
||||
prestashop.on('updateProductList', () => setTimeout(refreshNcState, 50));
|
||||
} else if (attempts > 50) {
|
||||
clearInterval(psCheck);
|
||||
}
|
||||
attempts++;
|
||||
}, 100);
|
||||
});
|
||||
})();
|
||||
</script>
|
||||
{/literal}
|
||||
Reference in New Issue
Block a user