Commit be4bf013 authored by DevPilot's avatar DevPilot

fix(ui): كل بحث في النظام بقى بيستخدم نواة التطبيع العربي

سبع شاشات كانت بتعمل بحث بـ toLowerCase().indexOf — يعني «احمد» ما
بتلاقيش «أحمد» و«المطابقه» ما بتلاقيش «المطابقة». أهمهم دليل الحسابات
(٧٣٣ حساب) والمدينون والدائنون والحسابات البنكية ومراكز التكلفة.

دلوقتي كلهم على ArabicSearch: تطبيع الهمزات والتشكيل والأرقام العربية،
ومطابقة تقريبية بتتحمّل الأخطاء المطبعية. ودليل الحسابات بيطبّع نص كل
صف مرة واحدة بدل كل ضغطة زرار.
parent d7e46851
...@@ -53,10 +53,13 @@ ...@@ -53,10 +53,13 @@
</div> </div>
</div> </div>
<script> <script>
function __m(q,h){return !q||(window.ArabicSearch?window.ArabicSearch.score(q,window.ArabicSearch.normalize(h))>0:(h||'').toLowerCase().indexOf(q)!==-1);}
function __n(v){return window.ArabicSearch?window.ArabicSearch.normalize(v):(v||'').toLowerCase();}
(function(){ (function(){
var s=document.getElementById('ba-search'),rows=document.querySelectorAll('#ba-tbody tr[data-search]'); var s=document.getElementById('ba-search'),rows=document.querySelectorAll('#ba-tbody tr[data-search]');
function f(){var q=(s.value||'').toLowerCase();rows.forEach(function(r){ function f(){var q=__n(s.value);rows.forEach(function(r){
r.style.display=!q||(r.getAttribute('data-search')||'').toLowerCase().indexOf(q)!==-1?'':'none';});} r.style.display=__m(q,r.getAttribute('data-search'))?'':'none';});}
if(s)s.addEventListener('input',f); if(s)s.addEventListener('input',f);
})(); })();
</script> </script>
......
...@@ -93,16 +93,25 @@ ...@@ -93,16 +93,25 @@
var typeEl = document.getElementById('coa-type-filter'); var typeEl = document.getElementById('coa-type-filter');
var countEl = document.getElementById('coa-count'); var countEl = document.getElementById('coa-count');
var rows = document.querySelectorAll('.coa-row'); var rows = document.querySelectorAll('.coa-row');
var AS = window.ArabicSearch;
// بنطبّع نص كل صف مرة واحدة — الدليل فيه مئات الحسابات، وتطبيعه في كل
// ضغطة زرار بيبوّظ الاستجابة.
rows.forEach(function (row) {
var raw = (row.getAttribute('data-code') || '') + ' '
+ (row.getAttribute('data-name') || '') + ' '
+ (row.getAttribute('data-desc') || '');
row.__text = AS ? AS.normalize(raw) : raw.toLowerCase();
});
function filter() { function filter() {
var q = (searchEl.value || '').toLowerCase(); var raw = searchEl.value || '';
var q = AS ? AS.normalize(raw) : raw.toLowerCase();
var t = typeEl.value; var t = typeEl.value;
var shown = 0; var shown = 0;
rows.forEach(function(row) { rows.forEach(function(row) {
var code = (row.getAttribute('data-code') || '').toLowerCase();
var name = (row.getAttribute('data-name') || '').toLowerCase();
var desc = (row.getAttribute('data-desc') || '').toLowerCase();
var type = row.getAttribute('data-type') || ''; var type = row.getAttribute('data-type') || '';
var matchSearch = !q || code.indexOf(q) !== -1 || name.indexOf(q) !== -1 || desc.indexOf(q) !== -1; var matchSearch = !q || (AS ? AS.score(q, row.__text) > 0 : row.__text.indexOf(q) !== -1);
var matchType = !t || type === t; var matchType = !t || type === t;
if (matchSearch && matchType) { row.style.display = ''; shown++; } if (matchSearch && matchType) { row.style.display = ''; shown++; }
else { row.style.display = 'none'; } else { row.style.display = 'none'; }
......
...@@ -63,10 +63,13 @@ ...@@ -63,10 +63,13 @@
</div> </div>
</div> </div>
<script> <script>
function __m(q,h){return !q||(window.ArabicSearch?window.ArabicSearch.score(q,window.ArabicSearch.normalize(h))>0:(h||'').toLowerCase().indexOf(q)!==-1);}
function __n(v){return window.ArabicSearch?window.ArabicSearch.normalize(v):(v||'').toLowerCase();}
(function(){ (function(){
var s=document.getElementById('cc-search'),t=document.getElementById('cc-type'),rows=document.querySelectorAll('#cc-tbody tr[data-code]'); var s=document.getElementById('cc-search'),t=document.getElementById('cc-type'),rows=document.querySelectorAll('#cc-tbody tr[data-code]');
function f(){var q=(s.value||'').toLowerCase(),tv=t.value;rows.forEach(function(r){ function f(){var q=__n(s.value),tv=t.value;rows.forEach(function(r){
var mc=!q||(r.getAttribute('data-code')||'').toLowerCase().indexOf(q)!==-1||(r.getAttribute('data-name')||'').toLowerCase().indexOf(q)!==-1; var mc=__m(q,(r.getAttribute('data-code')||'')+' '+(r.getAttribute('data-name')||''));
var mt=!tv||r.getAttribute('data-type')===tv;r.style.display=mc&&mt?'':'none';});} var mt=!tv||r.getAttribute('data-type')===tv;r.style.display=mc&&mt?'':'none';});}
if(s)s.addEventListener('input',f);if(t)t.addEventListener('change',f); if(s)s.addEventListener('input',f);if(t)t.addEventListener('change',f);
})(); })();
......
...@@ -132,11 +132,14 @@ ...@@ -132,11 +132,14 @@
</div> </div>
</div> </div>
<script> <script>
function __m(q,h){return !q||(window.ArabicSearch?window.ArabicSearch.score(q,window.ArabicSearch.normalize(h))>0:(h||'').toLowerCase().indexOf(q)!==-1);}
function __n(v){return window.ArabicSearch?window.ArabicSearch.normalize(v):(v||'').toLowerCase();}
(function(){ (function(){
var s=document.getElementById('fy-search'),st=document.getElementById('fy-status'); var s=document.getElementById('fy-search'),st=document.getElementById('fy-status');
var rows=document.querySelectorAll('#fy-tbody tr[data-name]'); var rows=document.querySelectorAll('#fy-tbody tr[data-name]');
function f(){var q=(s.value||'').toLowerCase(),sv=st.value; function f(){var q=__n(s.value),sv=st.value;
rows.forEach(function(r){var ms=!q||(r.getAttribute('data-name')||'').toLowerCase().indexOf(q)!==-1; rows.forEach(function(r){var ms=__m(q,r.getAttribute('data-name'));
var mt=!sv||r.getAttribute('data-status')===sv;r.style.display=ms&&mt?'':'none';});} var mt=!sv||r.getAttribute('data-status')===sv;r.style.display=ms&&mt?'':'none';});}
if(s)s.addEventListener('input',f);if(st)st.addEventListener('change',f); if(s)s.addEventListener('input',f);if(st)st.addEventListener('change',f);
})(); })();
......
...@@ -88,11 +88,14 @@ ...@@ -88,11 +88,14 @@
</div> </div>
</div> </div>
<script> <script>
function __m(q,h){return !q||(window.ArabicSearch?window.ArabicSearch.score(q,window.ArabicSearch.normalize(h))>0:(h||'').toLowerCase().indexOf(q)!==-1);}
function __n(v){return window.ArabicSearch?window.ArabicSearch.normalize(v):(v||'').toLowerCase();}
(function(){ (function(){
var s=document.getElementById('ap-search'),st=document.getElementById('ap-status'),c=document.getElementById('ap-count'); var s=document.getElementById('ap-search'),st=document.getElementById('ap-status'),c=document.getElementById('ap-count');
var rows=document.querySelectorAll('#ap-tbody tr[data-search]'); var rows=document.querySelectorAll('#ap-tbody tr[data-search]');
function f(){var q=(s.value||'').toLowerCase(),sv=st.value,n=0; function f(){var q=__n(s.value),sv=st.value,n=0;
rows.forEach(function(r){var ms=!q||(r.getAttribute('data-search')||'').toLowerCase().indexOf(q)!==-1; rows.forEach(function(r){var ms=__m(q,r.getAttribute('data-search'));
var mo=sv!=='overdue'||r.getAttribute('data-overdue')==='1'; var mo=sv!=='overdue'||r.getAttribute('data-overdue')==='1';
if(ms&&mo){r.style.display='';n++;}else{r.style.display='none';}}); if(ms&&mo){r.style.display='';n++;}else{r.style.display='none';}});
c.textContent=(q||sv)?'('+n+' نتيجة)':'';} c.textContent=(q||sv)?'('+n+' نتيجة)':'';}
......
...@@ -110,11 +110,14 @@ ...@@ -110,11 +110,14 @@
</div> </div>
</div> </div>
<script> <script>
function __m(q,h){return !q||(window.ArabicSearch?window.ArabicSearch.score(q,window.ArabicSearch.normalize(h))>0:(h||'').toLowerCase().indexOf(q)!==-1);}
function __n(v){return window.ArabicSearch?window.ArabicSearch.normalize(v):(v||'').toLowerCase();}
(function(){ (function(){
var s=document.getElementById('ar-search'),t=document.getElementById('ar-type'),st=document.getElementById('ar-status'),c=document.getElementById('ar-count'); var s=document.getElementById('ar-search'),t=document.getElementById('ar-type'),st=document.getElementById('ar-status'),c=document.getElementById('ar-count');
var rows=document.querySelectorAll('#ar-tbody tr[data-search]'); var rows=document.querySelectorAll('#ar-tbody tr[data-search]');
function f(){var q=(s.value||'').toLowerCase(),tv=t.value,sv=st.value,n=0; function f(){var q=__n(s.value),tv=t.value,sv=st.value,n=0;
rows.forEach(function(r){var ms=!q||(r.getAttribute('data-search')||'').toLowerCase().indexOf(q)!==-1; rows.forEach(function(r){var ms=__m(q,r.getAttribute('data-search'));
var mt=!tv||r.getAttribute('data-type')===tv; var mt=!tv||r.getAttribute('data-type')===tv;
var mo=sv!=='overdue'||r.getAttribute('data-overdue')==='1'; var mo=sv!=='overdue'||r.getAttribute('data-overdue')==='1';
if(ms&&mt&&mo){r.style.display='';n++;}else{r.style.display='none';}}); if(ms&&mt&&mo){r.style.display='';n++;}else{r.style.display='none';}});
......
...@@ -392,12 +392,14 @@ ...@@ -392,12 +392,14 @@
document.getElementById('btnStep2Back').addEventListener('click', function() { setStep(1); }); document.getElementById('btnStep2Back').addEventListener('click', function() { setStep(1); });
document.getElementById('unitSearchInput').addEventListener('input', function() { document.getElementById('unitSearchInput').addEventListener('input', function() {
var q = this.value.toLowerCase(); var AS = window.ArabicSearch;
var q = AS ? AS.normalize(this.value) : this.value.toLowerCase();
document.querySelectorAll('#facilitiesList > div').forEach(function(group) { document.querySelectorAll('#facilitiesList > div').forEach(function(group) {
var cards = group.querySelectorAll('.unit-card'); var cards = group.querySelectorAll('.unit-card');
var anyVisible = false; var anyVisible = false;
cards.forEach(function(card) { cards.forEach(function(card) {
var match = (card.dataset.unitName + ' ' + card.dataset.facilityName).toLowerCase().indexOf(q) >= 0; var hay = card.dataset.unitName + ' ' + card.dataset.facilityName;
var match = !q || (AS ? AS.score(q, AS.normalize(hay)) > 0 : hay.toLowerCase().indexOf(q) >= 0);
card.style.display = match ? '' : 'none'; card.style.display = match ? '' : 'none';
if (match) anyVisible = true; if (match) anyVisible = true;
}); });
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment