211 Commits

Author SHA1 Message Date
Yassine Doghri
94cea0ce91 feat: set min PHP version to 8.4
update CI4 to 4.6.0 + use codeigniter-vite and vite-plugin-codeigniter to load assets
2025-03-14 12:54:51 +00:00
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
f288a750f5 fix: typo in EpisodeController remap function to get episode
- fix defaultValue being empty string when cast as array
- fix initial styles for select to reduce
content layout shift
2024-12-29 13:21:50 +00:00
Yassine Doghri
8402cc29d2 feat(rss): add option for 301 redirect to new feed url 2024-12-25 11:22:13 +00:00
Yassine Doghri
34be5bccab refactor(plugins): create Field objects per field type in settings forms + handle rendering in class
update manifest.schema.json to have defaultValue type differ based on field type
2024-12-23 15:35:47 +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
fa6967e65c refactor: update codigniter-icons to v1.0.1 2024-11-06 13:19:59 +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
37ee6d35b4 fix(icons): set correct names for lock and lock-unlock icons in premium banner 2024-11-06 13:19:58 +00:00
Yassine Doghri
fc9ea7597e feat(plugins): add minCastopodVersion to denote incompatibility with previous Castopod versions 2024-07-05 16:47:01 +00:00
Yassine Doghri
fee7905935 feat(plugins): load and display LICENSE.md file if found in plugin's directory 2024-07-05 16:44:35 +00:00
Yassine Doghri
0ba0a25b11 fix(audio-player): set player icons to default instead of missing Castopod's 2024-07-04 14:44:17 +00:00
Aonrud
322836254e fix: broken icon call in frontend default pages template 2024-07-04 13:27:36 +00:00
Yassine Doghri
e9c04548de build: update CI to 4.5.3 + php and js dependencies to latest 2024-07-04 13:27:10 +00:00
Yassine Doghri
5d35524875 fix: set correct icons parameters in map and funding links views
fixes #500
2024-07-04 13:26: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
91dc8c8325 test(plugins): add test suite for Plugins service 2024-06-14 15:53:33 +00:00
Yassine Doghri
2035c39fd1 feat(plugins): register plugins using Plugin.php file instead of namespace + simplify i18n structure 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
8ec79097bb feat(plugins): display errors when plugin is invalid instead of crashing 2024-06-14 15:53:33 +00:00
Yassine Doghri
45ac2a4be9 feat(plugins): handle empty states and long strings in UI 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
82714e7155 style(buttons): add tint to variants 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
e6bfdfc390 feat(plugins): load README.md file to view plugin's instructions in UI 2024-06-14 15:53:32 +00:00
Yassine Doghri
1510e36c0a feat(plugins): load and validate plugin manifest.json 2024-06-14 15:53:32 +00:00
Yassine Doghri
b5eddf351f feat(plugins): add json schema definition for plugin manifest 2024-06-14 15:53:32 +00:00
Yassine Doghri
896f00661f refactor(plugins): redefine plugins folder structure to vendor/package 2024-06-14 15:53:32 +00:00
Yassine Doghri
9a80de4068 feat(plugins): uninstall plugins via CLI and admin UI 2024-06-14 15:53:32 +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
3d8aedf9c3 feat(plugins): add options to manifest for building forms and storing plugin settings 2024-06-14 15:53:32 +00:00
Yassine Doghri
27d2a1b0ff feat(plugins): activate / deactivate plugin using settings table
+ load plugin icon
+ add pagination
+ autoload plugins in Config/Autoload.php to handle plugin
i18n
+ style plugin cards
2024-06-14 15:53:32 +00:00
Yassine Doghri
eb7ad2f7e1 fix(import): rewrite download_file helper to output curl response directly to file
This prevents memory exhaustion when downloading large files
2024-06-05 18:46:34 +00:00
Yassine Doghri
bb628f355f refactor: add modules folder to phpstan paths + fix errors 2024-04-28 16:41:24 +00:00
Yassine Doghri
7a6d9df6db feat: set owner email to hidden by default in podcast create form 2024-04-28 10:19:35 +00:00
Yassine Doghri
51b064d67a refactor(icons): use php-icons library to load and display icons 2024-04-26 17:57:25 +00:00
Yassine Doghri
fe73e9fae9 fix(platforms): add platforms service + reduce memory consumption when rendering platform cards 2024-04-26 10:45:30 +00:00
Yassine Doghri
303a900f66 refactor(platforms): move platforms data in code instead of database
refs #457
2024-04-24 14:47:05 +00:00
Guy Martin (Dwev)
57e459e187 feat: support podcast:txt tag with verify use case
closes #468
2024-04-24 10:03:20 +00:00
Guy Martin (Dwev)
4d141fceae feat: add transcript display to episode page
+ fix transcript parser

closes #411
2024-04-17 09:13:07 +00:00
Yassine Doghri
a343de4cf6 fix(chapters): use episode cover when chapter img is an empty string
fixes #444
2024-02-21 14:14:29 +00:00
Yassine Doghri
419bb04716 fix(podcast-import): rollback transaction before exception is thrown
This allows errors' messages to resurface and prevent the script of having the generic "Process was
killed." error.

fixes #429, closes #319, #443, #438
2024-02-19 11:08:00 +00:00
Yassine Doghri
d0a94dd2cb chore: update php and js dependencies to latest 2024-02-17 13:01:39 +00:00
Guy Martin
87cc437e1e feat: display chapters in episode's public page
closes #423
2024-02-17 12:02:38 +00:00