345 Commits

Author SHA1 Message Date
Yassine Doghri
f295e9aa4c chore: update CodeIgniter to v4.5.6
+ update php dependencies to latest
2024-12-29 16:02:08 +00:00
Yassine Doghri
fc2e7a0d83 docs(api): add instructions to enable and use API 2024-12-29 14:03:23 +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
888d610c2d docs(api): add available operations based on openapi schema
use starlight-openapi plugin to generate docs

closes #536
2024-12-26 13:01:53 +00:00
Nate Ritter
775b302f7c fix(api): cast integers when creating episode 2024-12-25 11:29:11 +00:00
Nate Ritter
a90cdfdcdb feat(api): add Episode create and publish endpoints 2024-12-25 11:22:29 +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
08c7df2a5d fix(plugins): clear cache after activating or deactivating plugin 2024-12-23 16:09:17 +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
00bd4c02ee fix(plugins): delete relevant cache when submitting settings 2024-12-18 17:50:33 +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
f50098ec89 feat(image): add image size's width and height
escape plugin description + replace codeigniter-icons with php-icons v1.2
2024-11-07 12:56:46 +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
1667f5b202 build: update CI4 to v4.5.5 + php and js packages to latest 2024-11-06 13:19:59 +00:00
Yassine Doghri
1d7583d738 fix(fediverse): add "processing" and "failed" statuses to better manage broadcast load
fixes #511
2024-11-06 13:19:59 +00:00
Yassine Doghri
a68959c906 build: update CI4 to 4.5.4 + php and js dependencies to latest 2024-11-06 13:19:58 +00:00
Yassine Doghri
2b1bbf3430 fix(premium-podcasts): update query to validate subscription 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
crowdin
1c5fe1fea6 chore(i18n): new Crowdin updates 2024-07-04 13:54:43 +00:00
Yassine Doghri
a8c81b3fa1 fix(manifest): set repository url as required in docstring typings 2024-07-04 13:32:44 +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
e417d45b14 docs(plugins): fill up rest of manifest and hooks reference + creating a plugin 2024-06-14 15:53:33 +00:00
Yassine Doghri
cc6495dc7c refactor(plugins): set settings properties as fields objects 2024-06-14 15:53:33 +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
3a900bbab6 feat(plugins): add methods to easily retrieve general, podcast and episode settings in hooks methods 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
b5bd2db28f build(php): upgrade min php version to 8.3 2024-06-14 15:53:33 +00:00
Yassine Doghri
e2a90def88 test(plugins): add test cases for loading manifest data 2024-06-14 15:53:33 +00:00
Yassine Doghri
014facd5a1 refactor(plugins): rename manifest schema 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
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
e80a33bf2a feat(plugins): add siteHead hook to add custom meta tags to public pages 2024-06-14 15:53:32 +00:00