Yassine Doghri
b07ac093b2
fix: validate slug length when submitting episode form + clean permalink edit prefix
2022-10-19 14:56:39 +00:00
Yassine Doghri
d783d16eb7
feat(episode): add form to allow editing episode's publication date to a past date
...
This allows podcasters to reorganize their published episodes as they see fit
closes #97
2022-10-14 14:37:03 +00:00
Yassine Doghri
3234500e2d
feat: add premium podcasts to manage subscriptions for premium episodes
...
closes #193
2022-09-28 15:02:09 +00:00
Yassine Doghri
b1a6c02e56
feat(admin): add instance wide dashboard with storage and bandwidth usage
...
* add DashboardCard component
* add instance wide podcasts and episodes numbers
* add app.storageLimit environment variable
* divide bytes by 1000 instead of 1024 in stats sql queries
closes #216
2022-07-06 15:29:15 +00:00
Ola Hneini
3d363f2efe
feat: add publish feature for podcasts and set draft by default
...
closes #128 , #220
2022-07-05 16:39:20 +00:00
Yassine Doghri
6be5d12877
feat(admin): add search form in podcast episodes list
...
closes #26
2022-06-17 12:52:36 +00:00
Ola Hneini
eb9ff522c2
feat(episodes): replace soft delete with permanent delete
...
+ add constraint to prevent deleting an episode when published
2022-05-05 15:48:16 +00:00
Yassine Doghri
bc6dea2f8a
fix: remove value escaping for form inputs and textareas
2022-04-01 16:35:34 +00:00
Ola Hneini
9ea5ca3169
fix: prefill description footer input when creating a new episode
2022-04-01 16:35:34 +00:00
Yassine Doghri
1253096197
fix: add explicit int conversion when formatting episode duration
2022-03-15 15:50:07 +00:00
Yassine Doghri
cd2e1e1dc3
fix(security): add csrf filter + prevent xss attacks by escaping user input
...
- update CI4 to v4.1.9's stable production package
- update php and js dependencies to latest
2022-03-04 14:36:32 +00:00
Yassine Doghri
9c4f60e00b
fix(markdown-editor): remove unnecessary buttons for podcast and episode editors + add extensions
...
update CommonMark to v2 + add Autolink, SmartPunct and DisallowedRawHtml extensions
2022-02-03 14:12:47 +00:00
Yassine Doghri
588590bd2c
fix(xml-editor): escape xml editor's content + restyle form sections to prevent overflowing
2022-01-23 16:53:23 +00:00
Yassine Doghri
db191ac31b
fix: add translation key for audio-clipper trim labels
2022-01-21 18:29:39 +00:00
Yassine Doghri
f0685e4479
perf: defer javascript + lazy load images for faster page loads
2022-01-21 18:07:43 +00:00
Yassine Doghri
7f7c878cb6
fix(video-clips): create unique temporary files for resources to be deleted after generation
...
- tempfile uniqueness ensures that each process lives in its independent context
- add
writable/temp folder to store video clips temporary resources
- add videoClipWorkers config to
Admin for specifying the number of ffmpeg processes to run in parallel
- update video clip preview
background to better suit the end result
2022-01-21 12:35:50 +00:00
Yassine Doghri
11c916fe43
feat(themes): set different default banner per theme
2022-01-20 14:51:31 +00:00
Yassine Doghri
00987610a0
feat(transcript): parse srt subtitles into json file + add max file size info below audio file input
...
remove episode form warning + add javascript validation when uploading a file to check if it's too
big to upload
2022-01-09 16:37:13 +00:00
Yassine Doghri
07d740b79f
feat: prefill season and episode numbers + set episode number as mandatory for serial podcasts
...
closes #134 , #136
2022-01-05 16:01:44 +00:00
Yassine Doghri
d0cb964b0f
refactor: harmonize redirects after submitting forms
...
go back to form after submitting an edit form
2022-01-05 14:58:53 +00:00
Yassine Doghri
de19317138
feat(soundbites): add soundbite list and creation forms with audio-clipper component
2022-01-03 13:52:07 +00:00
Yassine Doghri
602654b99b
fix(audio-clipper): add mouse position offset when stretching clip to prevent content from jumping
...
update Forms.Section component to adapt to full width
2022-01-02 14:11:05 +00:00
Yassine Doghri
6809789206
refactor: set episode and podcast type hints next to each option
2021-12-31 10:21:57 +00:00
Yassine Doghri
02557539e6
feat: add audio-clipper toolbar + add video-clip-previewer
2021-12-30 17:09:24 +00:00
Yassine Doghri
01a09dc447
fix(audio-clipper): show audio playing progress + put waveform behind audio clipper
2021-12-29 17:40:59 +00:00
Yassine Doghri
21d4251b9b
feat: add audio-clipper webcomponent (wip)
2021-12-29 12:10:13 +00:00
Yassine Doghri
7609bb6033
feat: add Noto Sans Mono font to use for durations + button to access new video clip form in list
2021-12-29 12:10:13 +00:00
Yassine Doghri
db0e4272bd
feat(video-clip): generate video clips in the bg using a cron job + add video clip page + tidy up UI
2021-12-29 12:10:13 +00:00
Yassine Doghri
42538dd757
feat(video-clip): add video-clip page with video preview + logs
2021-12-29 12:10:13 +00:00
Yassine Doghri
2065ebbee5
feat(video-clips): add route for scheduled video clips + list video clips with status
2021-12-29 12:10:13 +00:00
Yassine Doghri
2f6fdf9091
feat(clips): setup clip entities and model + save video clip to have it generated in the background
2021-12-29 12:10:13 +00:00
Yassine Doghri
58e2a00a87
feat(media): save audio, images, transcripts and chapters to media for episode and persons
2021-12-29 12:10:13 +00:00
Yassine Doghri
fafaa7e689
feat(media): clean media api + create an entity per media type
2021-12-29 12:10:13 +00:00
Yassine Doghri
6ecf2866cf
feat: add media entity and link documents, images and audio files to it
2021-12-29 12:09:32 +00:00
Yassine Doghri
1d1490b06a
feat(video-clips): add new themes + add castopod logo as a watermark
...
fix video colors to portray exact rgb values using libx264rgb encoding + image transparency issue
when overlaying images with php gd
2021-12-29 12:09:32 +00:00
Yassine Doghri
e462abf6d6
feat(video-clips): replace hardcoded colors with config's theme colors
2021-12-29 12:09:32 +00:00
Yassine Doghri
827ca03f61
refactor(color-themes): set themes declaration as a config property + generate css file dynamically
2021-12-29 12:09:32 +00:00
Yassine Doghri
3af404da3d
feat(video-clips): add dimensions for portrait and squared formats
2021-12-29 12:09:32 +00:00
Yassine Doghri
35aa7ea5d9
feat(video-clips): generate a 16:9 video using ffmpeg
2021-12-29 12:09:32 +00:00
Yassine Doghri
fee2c1c0d0
feat(pwa): add service-worker + webmanifest for each podcasts to have them install on devices
...
- configure service-worker using vite-plugin-pwa
- refactor Image entity to generate images of
different types based on size config
- add requirement for webp library for php gd to generate webp
images for instance
- add action to regenerate all instance images for eventual Images config
changes
- enhance google lighthouse metrics for pwa
2021-12-29 12:09:31 +00:00
Yassine Doghri
902f959b30
feat: add schema.org json-ld objects to podcasts, episodes, posts and comments pages
...
- refactor meta-tags by generating them in the controller and injecting them into the views
- use
`melbahja/seo` library to build opengraph and twitter meta-tags + schema.org objects
2021-12-29 12:06:13 +00:00
Yassine Doghri
a746a781b4
feat(themes): set generic css variables for colors to enable instance themes
...
- set new colors using the css variables for theming in tailwind.config.js
- replace admin and
public colors with new variable enabled colors
2021-12-29 12:06:10 +00:00
Yassine Doghri
4a8147bfbb
feat: add podcast banner field for each podcast + refactor images configuration
...
- rename image fields on podcast, episode and persons for better clarity
- set different sizes
config for podcast cover, banner and persons avatars
- add tiny size for covers
- fix responsive
on admin forms
2021-12-29 12:04:04 +00:00
Yassine Doghri
d0f9c6018f
feat: add replied to post or comment to reply element
2021-12-29 12:03:17 +00:00
Yassine Doghri
a505a1de56
feat: restyle episode and person cards + add focus style to interactive elements for a11y
...
fix components in follow and remote action pages by calling new instances directly
2021-12-29 12:02:53 +00:00
Yassine Doghri
025b2f42e6
refactor: replace "embeddable-player" occurrences to "embed"
2021-12-29 12:02:53 +00:00
Yassine Doghri
be5a28787f
fix(layouts): replace holy-grail layout with tailwind config + widen public podcast layout
...
- add rounded classes with conditional border-radius depending on screen width
- add ring-castopod
class to use on focus states
2021-12-29 12:02:51 +00:00
Yassine Doghri
932140077c
feat: redesign public podcast and episode pages + remove any information clutter for better ux
...
- add About podcast page
- use different layout for episode pages
- improve on user feedback with
design
- restructure app theme folders
- update js packages to latest versions
2021-12-29 12:02:14 +00:00
Yassine Doghri
e3bd9df00e
refactor: update podcast card style + create partial for public navigation
2021-12-29 12:01:42 +00:00
Yassine Doghri
f75bd76458
fix: unpublish episode before deleting it + add validation step before deletion
...
fixes #112 , closes #55
2021-12-29 12:00:55 +00:00