Skip to content

Fix: ijinkan upload video pada tinymce#1029

Merged
affandii06 merged 7 commits into
rilis-devfrom
fix/tinymce_media
May 7, 2026
Merged

Fix: ijinkan upload video pada tinymce#1029
affandii06 merged 7 commits into
rilis-devfrom
fix/tinymce_media

Conversation

@pandigresik
Copy link
Copy Markdown
Contributor

@pandigresik pandigresik commented May 6, 2026

PR Description: Enable Media Embedding in TinyMCE Editor

Deskripsi Singkat

Perbaikan ini memungkinkan pengguna untuk menyisipkan dan menampilkan video (termasuk YouTube, Vimeo, dan file video lokal) di dalam editor TinyMCE tanpacontent yang disanitasi oleh HTMLPurifier. Sebelum perbaikan ini, tag <iframe> dan <video> akan dihapus atau diblokir saat disimpan ke database.

Perubahan yang Dilakukan

1. app/Policies/CustomCSPPolicy.php

Menambahkan Content Security Policy directive untuk FRAME agar browser mengizinkan embedding dari YouTube:

->addDirective(Directive::FRAME, [
    'self',
    'https://www.youtube.com',
    'http://www.youtube.com'
]);

2. config/file-manager.php

  • maxUploadFileSize: ditingkatkan dari 1024 KB ke 5120 KB (5 MB)
  • allowFileTypes: ditambahkan format video ['mp4', 'mkv', 'mov'] untuk upload video langsung ke file manager

3. config/purifier.php (FILE BARU)

Konfigurasi HTMLPurifier untuk mengizinkan:

  • Tag <iframe> dengan atribut: src, width, height, frameborder, allowfullscreen
  • Tag <video> dan <source> dengan atribut lengkap
  • Domain yang diizinkan: YouTube (embed, watch, youtu.be), Vimeo, Facebook, Instagram, Twitter
  • CSS properties yang diizinkan untuk styling

4. package.json & package-lock.json

Upgrade TinyMCE dari versi ^6.7.0 ke ^8.5.0

5. resources/views/partials/asset_tinymce.blade.php

  • Menambahkan license_key: 'gpl' (required untuk TinyMCE v8)
  • Mengubah skin: 'tinymce-5' menjadi skin: false (TinyMCE v8 tidak memerlukan skin bawaan)

6. vite.config.js

Menambahkan path alias @tinymce untuk resolve modul TinyMCE

7. public/build/assets/ & public/vendor/tinymce/

Build assets dan vendor files untuk TinyMCE v8

Alasan Perubahan

  1. Masalah: Pengguna tidak dapat menyisipkan video dari YouTube atau upload video lokal karena:

    • HTMLPurifier menghapus tag <iframe> dan <video>
    • CSP memblokir embedding dari domain eksternal
    • File manager tidak mendukung format video
  2. Solusi:

    • Konfigurasi ulang HTMLPurifier untuk mengizinkan tag media
    • Tambah CSP exception untuk YouTube
    • Perbarui TinyMCE ke v8 yang memiliki perbaikan dan fitur baru
    • Tambah dukungan upload format video

Dampak Perubahan

  • Positif:

    • Pengguna dapat menyisipkan video YouTube/Vimeo via embed code
    • Pengguna dapat upload video langsung ke file manager
    • Editor TinyMCE menjadi lebih kompatibel dengan TinyMCE v8
  • Hal yang perlu diperhatikan:

    • Apakah ada conflict dengan plugin/theme custom TinyMCE?
    • Apakah perlu rebuild assets di production?

Steps to Reproduce

  1. Buka halaman tambah/edit artikel
  2. Klik tombol "Sisipkan Video" atau paste embed code YouTube
  3. Simpan dan publikasikan
  4. Buka artikel - video tidak muncul karena dihapus oleh purifier

Testing Checklist

  • Cek upload file video (mp4, mkv, mov) ke file manager - berhasil
  • Cek insert YouTube embed code di TinyMCE - video muncul di frontend
  • Cek insert Vimeo embed code di TinyMCE - video muncul di frontend
  • Cek insert tag video HTML5 (
  • Cek sanitasi HTML masih berfungsi - XSS attack dicegah
  • Cek CSP tidak memblokir konten legitimate
  • Cek TinyMCE editor berfungsi normal (text formatting, image insert, dll)

Related Issue

Screenshot / Video

simplescreenrecorder-2026-05-06_09.11.46.mp4

@pandigresik pandigresik requested a review from affandii06 May 6, 2026 02:13
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 6, 2026

🔄 AI PR Review sedang antri di server...

Proses review akan segera dimulai di background — hasil akan muncul sebagai komentar setelah selesai.
Powered by CrewAI · PR #1029

@affandii06 affandii06 merged commit b55ea70 into rilis-dev May 7, 2026
@affandii06 affandii06 deleted the fix/tinymce_media branch May 7, 2026 06:48
affandii06 added a commit that referenced this pull request May 22, 2026
* Fix/detail statistik pangan tidak tampil (#989)

* fix: data detail statistik tidak tampil

* fix: perbaikan detail presisi statistik pangan

* fix: perbaikan detail presisi statistik pangan

* Tambahkan test

* hapus

* fix: tambahkan link detail untuk belum mengisi, jumlah dan total agar seragam

* perbaikan judul

* perbaikan filter tahun

* [ci skip] memutahirkan catatan rilis

---------

Co-authored-by: Ahmad Affandi <caspianp98@yahoo.com>

* Feat: detail statistik presisi sandang (#1014)

* fix: data detail statistik tidak tampil

* fix: perbaikan detail presisi statistik pangan

* fix: perbaikan detail presisi statistik pangan

* Tambahkan test

* hapus

* fix: tambahkan link detail untuk belum mengisi, jumlah dan total agar seragam

* feat: detail statistik sandang

* perbaikan sesuai rekomendasi AI review

* perbaiki test

* perbaikan judul

* perbaikan test

* perbaikan filter tahun

* [ci skip] memutahirkan catatan rilis

---------

Co-authored-by: Ahmad Affandi <caspianp98@yahoo.com>

* Merge Pull Request Feat: detail statistik papan (#1016)

* simpan dulu

* feat: detail presisi papan

* tambahkan test

* perbaikan mengikuti rekomendasi AI review

* perbaikan filter tahun

---------

Co-authored-by: Ahmad Affandi <caspianp98@yahoo.com>

* Merge Pull Request From feat: detail statistik pendidikan (#1017)

* feat: detail statistik pendidikan

* perbaikan sesuai rekomendasi AI review

* perbaikan test

* perbaikan filter tahun

* [ci skip] memutahirkan catatan rilis

---------

Co-authored-by: Ahmad Affandi <caspianp98@yahoo.com>

* Merge Pull Request From Feat: detail statistik ketenagakeerjaan (#1019)

* simpan dulu

* feat: detail  statistik ketenagakerjaan

* perbaikan filter tahun

* perbaikan filter tahun

* [ci skip] memutahirkan catatan rilis

---------

Co-authored-by: Ahmad Affandi <caspianp98@yahoo.com>

* Merge Pull Request From feat: detail statistik keagamaan (#1020)

* feat: detail statistik keagamaan

* [ci skip] memutahirkan catatan rilis

---------

Co-authored-by: Ahmad Affandi <caspianp98@yahoo.com>

* Merge Pull Request From fix: tinymce pada artikel (#1022)

* fix: tinymce pada artikel

* [ci skip] memutahirkan catatan rilis

---------

Co-authored-by: Ahmad Affandi <caspianp98@yahoo.com>

* Merge Pull Request From fix: error ketika halaman login menampilkan captcha (#1024)

* fix: error ketika halaman login menampilkan captcha

* [ci skip] memutahirkan catatan rilis

---------

Co-authored-by: Ahmad Affandi <caspianp98@yahoo.com>

* Merge Pull Request From Validasi kategori artikel ketika membuat artikel baru (#1027)

* validasi kategori artikel ketika membuat artikel baru

* [ci skip] memutahirkan catatan rilis

---------

Co-authored-by: Ahmad Affandi <caspianp98@yahoo.com>

* Merge Pull Request From Fix: ijinkan upload video pada tinymce (#1029)

* fix: tinymce pada artikel

* fix: ijinkan upload video pada tinymce

* allow tag video

* perbaikan config

* upgrade versi tinymce

* [ci skip] memutahirkan catatan rilis

---------

Co-authored-by: Ahmad Affandi <caspianp98@yahoo.com>

* Merge Pull Request From Perbaiki tekan enter di form kategori membuat refresh halaman (#1028)

* perbaiki tekan enter membuat refresh halaman

* sesuaikan label aksi tertukar di tabel kategori

* perbaiki tombol simpan melalui cursor

* [ci skip] memutahirkan catatan rilis

---------

Co-authored-by: Ahmad Affandi <caspianp98@yahoo.com>

* Merge Pull Request From Validasi kategori artikel ketika membuat artikel cms baru (#1035)

* Validasi kategori artikel ketika membuat artikel cms baru

* test

* [ci skip] memutahirkan catatan rilis

---------

Co-authored-by: Ahmad Affandi <caspianp98@yahoo.com>

* Feat/detail statistik jaminan sosial (#1030)

* feat: Detail statistik Jaminan Sosial

* simpan dulu

* [ci skip] memutahirkan catatan rilis

---------

Co-authored-by: Ahmad Affandi <caspianp98@yahoo.com>

* Merge Pull Request From feat: detail statistik kesehatan (#1034)

* feat: detail kesehatan

* [ci skip] memutahirkan catatan rilis

---------

Co-authored-by: Ahmad Affandi <caspianp98@yahoo.com>

* Merge Pull Request From feat: detail statistik seni (#1036)

* feat: detail statistik seni

* perbaikan judul

* tambahkan judul

* [ci skip] memutahirkan catatan rilis

---------

Co-authored-by: Ahmad Affandi <caspianp98@yahoo.com>

* Merge Pull Request From fix: gambar logo desa pada website desa aktif (#1038)

* fix: gambar logo desa pada website desa aktif

* fix: gambar logo desa pada website desa aktif

* ikuti rekomendasi AI review

* perbaiki test

* [ci skip] memutahirkan catatan rilis

---------

Co-authored-by: Ahmad Affandi <caspianp98@yahoo.com>

* Merge Pull Request From fix: perbaikan tampilan website ketika slider belum diisi (#1040)

* fix: perbaikan tampilan website ketika slider belum diisi

* [ci skip] memutahirkan catatan rilis

---------

Co-authored-by: Ahmad Affandi <caspianp98@yahoo.com>

* Merge Pull Request From feat: datatable debounce (#1042)

* feat: datatable debounce

* [ci skip] memutahirkan catatan rilis

---------

Co-authored-by: Ahmad Affandi <caspianp98@yahoo.com>

* rilis v2605.0.1

---------

Co-authored-by: ahmad afandi <ahmad.afandi85@gmail.com>
Co-authored-by: Ahmad Affandi <caspianp98@yahoo.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants