95 Commits

Author SHA1 Message Date
Yassine Doghri
f981937645 fix: add downloads_count to episodes table, computed every hour
This removes computing latency when retrieving episodes list with download count in admin.
The more
analytics records, the more it took to calculate the sum of hits to get the downloads count for each
episode.
2024-12-29 13:24:42 +00:00
Yassine Doghri
d3a98db6d0 feat(plugins): add defaultValue for all field types 2024-12-19 12:33:57 +00:00
Yassine Doghri
85704bfbe0 refactor: rename controller methods for views and actions to be more consistent
add PermalinkEditor component
2024-12-18 16:05:25 +00:00
Yassine Doghri
8cf9c6dc83 feat(plugins): add html field type + CodeEditor component + rework html head generation
update php and js packages to latest
2024-12-17 15:11:45 +00:00
Yassine Doghri
b869acb3a9 refactor: remove fields from podcast and episode entities to be replaced with plugins 2024-12-15 17:34:36 +00:00
Yassine Doghri
11ccd0ebe7 feat(plugins): add group field type + multiple option to render field arrays
- update docs
- render hint and helper options for all fields
- replace option's hint with
description
2024-12-10 15:57:06 +00:00
Yassine Doghri
63f93f585b fix: update select and multi-select options to value/label arrays
add hint to select options + update dependencies to latest
2024-11-06 13:19:59 +00:00
Yassine Doghri
a83afb0004 fix(episode): do not change slug when editing episode title
fixes #513
2024-11-06 13:19:59 +00:00
Yassine Doghri
8f8c61eaae docs(plugins): add experimental plugins section + plugins:create command to create plugin via CLI 2024-06-14 15:53:33 +00:00
Yassine Doghri
80d2c48ee2 feat(plugins): add before channel/item hooks to allow podcast/episode data edit when generating rss 2024-06-14 15:53:33 +00:00
Yassine Doghri
b62b483ad9 feat(plugins): abstract settings form for general, podcast and episode types
update filter permission logic for replacing router param
2024-06-14 15:53:33 +00:00
Yassine Doghri
6f833fc76a feat(plugins): add new field types + validate & cast user data before storing settings
+ refactor form fields components
2024-06-14 15:53:33 +00:00
Yassine Doghri
dfb7888aeb feat(plugins): add aside with plugin metadata next to plugin's readme
- enhance plugin card ui
- refactor components to be more consistent
- invert toggler label for better UX
- edit view components regex
2024-06-14 15:53:33 +00:00
Yassine Doghri
89ac92fb41 feat(plugins): add settings page for podcast and episode if defined in the plugin's manifest
- rename options to settings
2024-06-14 15:53:32 +00:00
Yassine Doghri
bb628f355f refactor: add modules folder to phpstan paths + fix errors 2024-04-28 16:41:24 +00:00
Yassine Doghri
51b064d67a refactor(icons): use php-icons library to load and display icons 2024-04-26 17:57:25 +00:00
Guy Martin
7071b4b6f4 feat: support VTT transcript file format in addition to SRT
closes #433
2024-02-09 16:34:50 +00:00
Yassine Doghri
3cb5ffd25b fix(i18n): escape language strings in form fields to prevent them from disappearing
fixes #412
2024-01-24 16:48:23 +00:00
Ewen Korr
0bd7ddea58 feat(admin): emphasize unprivileged items in sidebar with "prohibited" icon 2024-01-15 14:34:11 +00:00
Yassine Doghri
1861d67971 fix(podcast-form): move fediverse section below author section 2023-11-29 16:00:28 +00:00
Yassine Doghri
dff85168b3 fix: move monetization outside of podcast form + add broadcast section to podcast menu 2023-11-17 17:29:05 +00:00
Yassine Doghri
f4ffa30ec4 fix(admin): remove episode title truncation + display description in two lines in episode list
fixes #386
2023-11-17 17:29:05 +00:00
Yassine Doghri
02132dc466 fix(persons): set roles field as optional + set Cast > Host as default value
fixes #347
2023-11-17 17:29:05 +00:00
Yassine Doghri
b047a3c670 fix(admin-ux): hide navigation submenus in details panel for easier scanning 2023-11-17 17:29:05 +00:00
Yassine Doghri
ae57601c83 fix: update Router to include latest CI changes with alternate-content logic 2023-09-09 10:23:34 +00:00
Yassine Doghri
7ff1dbe903 fix: remove fediverse prefix to prevent migration error + load routes during podcast import
refactor migration queries to use forge functions
2023-09-09 10:23:34 +00:00
Yassine Doghri
b4f1b916bf fix(routes): overwrite RouteCollection to include all routes + update js and php dependencies 2023-09-09 10:23:34 +00:00
Yassine Doghri
aa68386667 fix(audio-clipper): init segment position on firstUpdate + improve UX by adding ghost handle
- clean web components and js modules
- update js dependencies to latest

fixes #351
2023-07-01 13:46:03 +00:00
Yassine Doghri
d8e1d4031d feat(import): run podcast imports' processes asynchronously using tasks
- use codeigniter4/tasks project to handle cron tasks
- use yassinedoghri/podcast-feed project to parse feeds for imports
2023-06-21 16:17:11 +00:00
Yassine Doghri
2a50f6e4d2 style: update ecs config to align associative arrays arrows
update composer dependencies to latest
2023-06-12 15:12:49 +00:00
Yassine Doghri
4665741425 fix(embed): set height of player iframe from config 2023-05-21 10:24:57 +00:00
Yassine Doghri
a76724a8cf fix(s3): add proxy to serve images from s3 to client
refs #321
2023-04-13 11:46:31 +00:00
Yassine Doghri
d93fc98469 feat(media): add s3 to manage media files
Users may choose between filesystem (FS) or S3 to store and manage their media files
2023-03-16 13:00:05 +00:00
Yassine Doghri
b63c1dc9b1 feat: add downloads count to episode list 2023-02-28 16:53:58 +00:00
Yassine Doghri
84a6447fd4 ci: fix lint and formatting issues 2023-02-22 16:29:45 +00:00
Yassine Doghri
16527ed529 feat(analytics): add OP3 analytics service option + update episode audio url 2022-12-09 15:04:42 +00:00
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