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