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.jsvedist/summernote.min.cssdoğrudan BS3 buildidir —-bs3suffix 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ştirildisummernote.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ı:
-
Callbacks artık
callbacks: {}altında:// ESKİ (v0.5) summernote({ onImageUpload: function(files, editor, welEditable) {} }) // YENİ (v0.8) summernote({ callbacks: { onImageUpload: function(files) {} } }) -
editor.insertImage(welEditable, url)kaldırıldı:// YENİ $('#editor').summernote('insertImage', url); -
.note-editableclass’ı v0.8’de hala var —tab_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/editpanel/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
toolbaropsiyonu ile config edilebilir. - Image upload endpoint’i sadece
academia.api.image.uploadmevcut; 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.
Related
- 2026-04-16-webpack-5-94-pin — panel’in build setup’ı ile ilgili pin kararı