Proje: Okul Platform · Hub: Okul Platform — Decisions

Karar

Panel’in WYSIWYG editörü Summernote v0.5.1 (2014)v0.8.20 (2022, son 0.8.x) olarak yükseltildi. Tüm panel sayfalarında aynı asset kullanılıyor.

Sebep

panel/college/edit sayfasında editörün toolbar butonlarının (bold, italic, link, liste, resim vs.) ve resim ekleme özelliğinin çalışmadığı bildirildi. Kök neden: kullanılan Summernote sürümü v0.5.1 (10+ yıllık) — modern tarayıcılarla uyumsuz, çoğu toolbar butonu kırık.

Neden 0.8.20 (0.9.x değil)

  • Panel stack’i Bootstrap 3.3.6 + jQuery 2.1.3 kullanıyor.
  • Summernote 0.8.20 son 0.8.x sürümü ve bs3 default theme’i ile gelir (dist/summernote.min.js ve dist/summernote.min.css doğrudan BS3 buildidir — -bs3 suffix yok).
  • 0.9.x sadece Bootstrap 4/5 destekler; panel’i BS5’e taşımadan geçilemez.

Değişiklikler

Self-host edilen vendor dosyaları (/public/assets/customer/js/editors/summernote/):

  • summernote.js, summernote.min.js → v0.8.20 ile değiştirildi
  • summernote.min.css (yeni — v0.8.x ayrı CSS gerektirir)
  • font/summernote.{eot,ttf,woff,woff2} (yeni — toolbar ikonları için)
  • lang/summernote-tr-TR.min.js (yeni — Türkçe arayüz)

Blade template’leri (6 dosya): summernote.min.css link’i + Türkçe lang script eklendi, duplicate JS load’ları temizlendi, lang: 'tr-TR' opsiyonu eklendi.

Breaking API değişiklikleri (kod güncellendi)

v0.5.1 → v0.8 API farkları:

  1. Callbacks artık callbacks: {} altında:

    // ESKİ (v0.5)
    summernote({ onImageUpload: function(files, editor, welEditable) {} })
    // YENİ (v0.8)
    summernote({ callbacks: { onImageUpload: function(files) {} } })
  2. editor.insertImage(welEditable, url) kaldırıldı:

    // YENİ
    $('#editor').summernote('insertImage', url);
  3. .note-editable class’ı v0.8’de hala vartab_section.note-editable üzerinden value okuyan form submit kodu değişmeden çalışıyor.

Etkilenen sayfalar

  • panel/college/edit (asıl sorun)
  • panel/academia/add, panel/academia/edit
  • panel/mail/py_report, panel/mail/product-expired, panel/mail/okulcomtr_nedir

Riskler / dikkat

  • Toolbar default v0.8’de daha geniş — eski toolbar’a kıyasla user’a daha çok buton görünür. Eğer kısıtlama istenirse toolbar opsiyonu ile config edilebilir.
  • Image upload endpoint’i sadece academia.api.image.upload mevcut; college editor için image upload backend’i yok, default base64 inline davranışı çalışıyor.
  • Build pipeline etkilenmiyor — bu dosyalar Mix tarafından üretilmiyor, doğrudan committed vendor asset.