fix: EKAP dokümanları açılmıyor — yeni sekme tıklama anında açılıyor, boşluklu İKN'ler düzeltildi
İki ayrı neden vardı:
1) window.open sunucu yanıtından SONRA çağrılıyordu; Safari, PWA ve sıkı ayarlı
Chrome bunu açılır-pencere sayıp sessizce engelliyordu — düğme "çalışmıyor"
görünüyordu. Sekme artık tıklamanın hemen içinde boş açılır, adres gelince
yönlendirilir. Engellenirse gerçek bir bağlantı (a href) gösterilir; bağlantı
tıklaması hiçbir tarayıcıda engellenmez.
2) ilan.gov.tr bazı kayıtlarda İKN'yi başta/sonda boşluk ve kesme boşluğu (nbsp)
ile veriyor (" 2026/1622878"). Bu 50 kayıtta panel "EKAP formatında değil"
deyip düğmeyi hiç göstermiyordu. İKN artık alınırken boşluksuz saklanıyor;
panel ve doküman araması da savunma amaçlı temizliyor.
Ayrıca: "EKAP'ta 0 doküman kayıtlı" yanıltıcı metni kaldırıldı (EKAP arama
kaydı sayıyı vermiyor), EKAP'ın önce güvenlik doğrulaması istediği açıklandı.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
@@ -16,7 +16,7 @@ const UA = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (
|
||||
|
||||
/** IKN'den taze bir EKAP kaydı bulur (id token anlıktır, saklanamaz). */
|
||||
export async function findByIkn(ikn) {
|
||||
const [yil, sayi] = String(ikn || '').split('/');
|
||||
const [yil, sayi] = String(ikn || '').replace(/[\s\u00a0]+/g, '').split('/');
|
||||
if (!yil || !sayi) throw new Error('Geçersiz İKN');
|
||||
const r = await searchTenders({ iknYili: Number(yil), iknSayi: Number(sayi), take: 1 });
|
||||
const t = r.list[0];
|
||||
|
||||
+4
-1
@@ -162,7 +162,10 @@ function mapAd(ad) {
|
||||
const cityUpper = (ad.addressCityName || '').toLocaleUpperCase('tr-TR');
|
||||
const sehir = titleCaseTr(ad.addressCityName || '');
|
||||
const tarih = getFilter(ad, 'İhale ve Teklif Açma Tarihi') || '';
|
||||
const ikn = getFilter(ad, 'İhale Kayıt No') || ad.adNo || '';
|
||||
// İKN'yi boşluksuz sakla: ilan.gov.tr bazı kayıtlarda başa/sona boşluk ve
|
||||
// kesme boşluğu (nbsp) koyuyor; " 2026/1622878" EKAP formatı sayılmıyor ve
|
||||
// doküman/analiz düğmeleri kapanıyordu (havuzda 50 kayıt).
|
||||
const ikn = String(getFilter(ad, 'İhale Kayıt No') || ad.adNo || '').replace(/[\s\u00a0]+/g, '');
|
||||
const usul = getFilter(ad, 'İhale Usulü') || 'Belirtilmemiş';
|
||||
const ihaleTuru = getFilter(ad, 'İhale Türü') || '';
|
||||
const searchBase = `${ad.title || ''} ${ad.advertiserName || ''}`; // yalnızca arama için
|
||||
|
||||
Reference in New Issue
Block a user