diff --git a/pos.php b/pos.php
index 28d4491..7a9c5d5 100644
--- a/pos.php
+++ b/pos.php
@@ -448,13 +448,13 @@ require __DIR__ . '/includes/header.php';
- $item):
+ $item):
$itemSkuRaw = (string) $sku;
$primaryNameRaw = trim((string) (current_lang() === 'ar' ? ($item['name_ar'] ?? '') : ($item['name_en'] ?? '')));
$fallbackNameRaw = trim((string) (current_lang() === 'ar' ? ($item['name_en'] ?? '') : ($item['name_ar'] ?? '')));
$itemNameRaw = $primaryNameRaw !== ''
? $primaryNameRaw
- : ($fallbackNameRaw !== '' ? $fallbackNameRaw : ('SKU ' . $itemSkuRaw));
+ : ($fallbackNameRaw !== '' ? $fallbackNameRaw : (tr('صنف ' . $itemSkuRaw, 'Item ' . $itemSkuRaw)));
$searchBits = [
(string) ($item['name_ar'] ?? ''),
(string) ($item['name_en'] ?? ''),
@@ -474,7 +474,7 @@ require __DIR__ . '/includes/header.php';
$isRecentlyAdded = $createdAtStamp && $createdAtStamp >= strtotime('-7 days');
$createdLabel = $createdAtStamp ? date('Y-m-d', $createdAtStamp) : '';
?>
-
+
= $itemName ?>
-
= h(currency((float)$item['price'])) ?>
@@ -769,21 +763,32 @@ document.getElementById('posBarcode').addEventListener('keypress', function(e) {
}
});
+const INITIAL_PRODUCT_LIMIT = 100;
+
function applyFilters() {
const q = document.getElementById('posSearch').value.toLowerCase().trim();
const activeCat = document.querySelector('.cat-btn.active').dataset.cat;
-
+ let visibleCount = 0;
+
document.querySelectorAll('.product-card').forEach(card => {
const searchable = (card.dataset.search || card.dataset.name || '').toLowerCase();
const cat = card.dataset.cat;
-
+
const matchesSearch = q === '' || searchable.includes(q);
const matchesCat = (activeCat === 'all' || cat === activeCat);
-
- card.hidden = !(matchesSearch && matchesCat);
+ const matches = matchesSearch && matchesCat;
+ const withinInitialLimit = q !== '' || visibleCount < INITIAL_PRODUCT_LIMIT;
+
+ card.hidden = !(matches && withinInitialLimit);
+
+ if (matches) {
+ visibleCount += 1;
+ }
});
}
+applyFilters();
+
// Cart Logic
function addToCart(sku) {
if (!catalogData[sku]) return;