Commit Graph

400 Commits

Author SHA1 Message Date
Yassine Doghri
11c916fe43 feat(themes): set different default banner per theme 2022-01-20 14:51:31 +00:00
Yassine Doghri
e4e7e0005e fix(themes): update themes stylesheet route and remove css extension
removing the css extension prevents having the file hijacked by the web server config
2022-01-20 11:26:18 +00:00
Yassine Doghri
8f999ce2f7 fix(pages): add locale to page cache 2022-01-19 18:41:00 +00:00
Yassine Doghri
8721719cd7 feat(vite): add vite config to decouple it from CI_ENVIRONMENT 2022-01-19 18:31:57 +00:00
Yassine Doghri
6e4acc64ad fix(images): set default mimetype if none is specified when getting size info 2022-01-19 12:09:12 +00:00
Yassine Doghri
17fb29b209 fix: set localized slug_field key as string in french language 2022-01-19 11:39:13 +00:00
Yassine Doghri
9303e51bc5 feat: add task to housekeeping setting for resetting all instance counts
set two toggle switches to run housekeeping tasks seperately if needed
2022-01-14 17:42:55 +00:00
Yassine Doghri
89dee41d58 feat: add housekeeping task to run after migrations
add run housekeeping button in general settings page
2022-01-13 16:02:14 +00:00
Yassine Doghri
38899124ec fix: rewrite regenerate image function to use saveSizes method from Image entity 2022-01-11 10:51:10 +00:00
Yassine Doghri
241366130e chore(clips): clear video clip and soundbite cache on delete 2022-01-10 16:52:12 +00:00
Yassine Doghri
bd61752be2 feat(meta-tags): add activitypub alternate links to podcast, episode, comment and post pages 2022-01-10 16:05:16 +00:00
Yassine Doghri
3ce07e455d feat(video-clips): generate subtitles clip using transcript json to have subtitles accross video 2022-01-10 14:22:55 +00:00
Yassine Doghri
958c1213ed chore: update codeigniter4 after 4.1.7 hot fix release 2022-01-10 10:31:47 +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
1670558473 feat: add basic stats on podcast about page
number of seasons and episodes + publication date of the first episode
2022-01-06 16:52: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
6e9451a110 fix: define podcast_id and platform_slug as foreign keys in podcasts_plaforms table
update discord logo
2022-01-04 16:37:59 +00:00
Yassine Doghri
1fc3da139e chore: update CodeIgniter to latest dev version after 4.1.6 2022-01-04 15:40:27 +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
ad5cd2c2e9 refactor: replace popperjs with floating-ui 2021-12-31 09:42:52 +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
057559183c refactor(migrations): replace 191 value with more relevant one 2021-12-29 12:10:13 +00:00
Yassine Doghri
a9989d841a fix(import): save media files during podcast import + set missing media fields 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
b09acf6c65 build: update dependencies to latest
remove console.logs + add @github/hotkey to replace markdown toolbar shortcuts
2021-12-29 12:10:11 +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
71a063dac3 feat(video-clips): allow episodeNumbering text to stand in the indent of episodeTitle paragraph 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
5c529a83aa feat(settings): add theme settings to set an accent color for all public pages
set 6 base accent colors: pine, lake, jacaranda, crimson, amber and onyx
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
5c56f3e6f0 feat(settings): add general config for instance (site name, description and icon) 2021-12-29 12:04:01 +00:00
Yassine Doghri
776eec6f0d fix: remove fixed size from podcast sidebar + rearrange account info + space out import radio inputs 2021-12-29 12:03:17 +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
8208ab6785 feat: style file inputs using tailwind's file class 2021-12-29 12:03:17 +00:00
Yassine Doghri
f0205ec274 feat: toggle podcast sidebar on smaller screens
update tailwind to v3.0.0-alpha with its official plugins (forms, typography)
2021-12-29 12:03:15 +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
2c0efc6563 feat: simplify podcast page's layout for better ux 2021-12-29 12:01:40 +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
Yassine Doghri
b9db936461 fix: pass timezone to relative time component to show the localized time in the UI 2021-12-29 12:00:55 +00:00
Yassine Doghri
abb7fbac27 feat: add DropdownMenu component + remove global audio player in admin 2021-12-29 12:00:55 +00:00
Yassine Doghri
d60498c1be feat(admin): make header stick on scroll and show title + action buttons using css only 2021-12-29 12:00:53 +00:00
Yassine Doghri
99a3b8d33e fix: set episode numbers during import + remove all custom form_helpers + minor ui issues 2021-12-29 11:58:06 +00:00
Yassine Doghri
b05d177f1b fix: update MarkdownEditor component + restyle Button and other components 2021-12-29 11:55:43 +00:00
Yassine Doghri
746b518789 refactor: replace ui function components with class components + fix
soundbites js
2021-12-29 11:55:43 +00:00
Yassine Doghri
5413d09737 style: update app layout and map view styles 2021-12-29 11:55:43 +00:00
Yassine Doghri
bfa11d007d feat(fonts): replace Montserrat with Inter for better readablity 2021-12-29 11:55:43 +00:00
Yassine Doghri
e64548b982 feat: replace form helper functions with components in admin template 2021-12-29 11:55:43 +00:00
Yassine Doghri
6536729546 feat: integrate stylized form components and update podcast edit page 2021-12-29 11:55:43 +00:00
Yassine Doghri
23bdc6f8e3 feat: add heading component + update ecs rules to fix views 2021-12-29 11:55:43 +00:00
Yassine Doghri
a50abc138d feat: update pine colors + create charts components 2021-12-29 11:55:43 +00:00
Yassine Doghri
d86142ebe7 feat(admin): update admin layout for better ux + update brand pine colors 2021-12-29 11:55:41 +00:00
Yassine Doghri
7a276764e6 feat(themes): add ViewThemes library to set views in root themes folder
app, admin, install and authentication views are now located in root themes/ folder
2021-12-29 11:54:52 +00:00
Yassine Doghri
58c8839902 refactor(componentrenderer): update locateView using a lookupModules property in config 2021-12-29 11:54:52 +00:00
Yassine Doghri
a95de8bab0 feat(components): add custom view renderer with ComponentRenderer adapted from bonfire2
- update Component class structure and remove component helper function and ComponentLoader
- update residual activitypub naming to fediverse
2021-12-29 11:54:50 +00:00
Yassine Doghri
5083cd2fda refactor(modules): extract castopod parts into a modules/ folder for a scalable HMVC structure
- create Admin, Analytics, Auth, Fediverse and Install modules in the root modules/ folder
- rename
ActivityPub to Fediverse
2021-12-29 11:54:22 +00:00
Yassine Doghri
94872f2338 feat(ui): create ViewComponents library to enable building class and view files components
- replace some helper components and forms with class components in the ui
- create viewcomponents
service and load the component function to be used in views
2021-12-29 11:54:22 +00:00
Yassine Doghri
fcecbe1c68 fix(comments): add comment view partials for public pages 2021-12-29 11:54:22 +00:00
Yassine Doghri
0c187ef7a9 feat(comments): add like / undo like to comment + add comment page 2021-12-29 11:54:22 +00:00
Yassine Doghri
bb4752c35e feat(comments): add comments to episodes + update naming of status to post
- remove confusing counts for episode (total favourites, total reblogs)
- add comments section to
episode page to display episode comments + post replies linked to the episode
2021-12-29 11:54:22 +00:00
Yassine Doghri
3ff1364906 chore: update php dependencies to latest 2021-12-29 11:54:20 +00:00
Yassine Doghri
f15f26240c feat: add codemirror to display xml editor for custom rss field
- replace hardcoded label values for play_episode_button component
2021-12-29 11:37:16 +00:00
Yassine Doghri
578022b8c5 feat: replace slug field with interactive permalink component
- create permalink-edit web component with slug editing and permalink copy functionalities
- add
@github/clipboard-copy-element
- update npm packages
- replace vscode extension lit-html with
lit-plugin to get css intellisense
2021-12-29 11:37:16 +00:00
Yassine Doghri
230e139e43 feat: make displayed publication time as relative time using @github/time-elements 2021-12-29 11:37:16 +00:00
Yassine Doghri
0e14eb4d3f feat: add js audio player on podcast, admin and embeddable player pages + fix admon episodes ux
- use vimejs as audio player
- add global audio player + play episode buttons on public pages
-
refactor admin episodes list from a grid to a data table
- arrange episode cards to be more
readable

closes #131
2021-12-29 11:37:16 +00:00
Yassine Doghri
b72e7c8691 fix: expire default query cache upon scheduled episode publication
fix #81
2021-12-29 11:37:16 +00:00
Yassine Doghri
7fdea63de7 fix(persons): set person picture as optional for better ux
- use default avatar image if person image is not set
- add thumbnail and medium default avatar
images
- set default avatar images directly in public/media folder
- remove public/media's root
folder from .gitignore
- remove unnecessary copy:images script and cpy-cli package

closes #125
2021-12-29 11:37:16 +00:00
Yassine Doghri
0dd3b7e0bf fix(rss): do not escape podcast and episode titles in the xml
- add parameter to prevent escaping value in SimpleRSSElement's addChild method
- clean prosemirror residue (typedef + DEPENDENCIES.md)
- remove type definition generation in tsconfig

fixes #138, #71
2021-12-29 11:37:16 +00:00
Yassine Doghri
9ec1cb93da fix(md-editor): build new markdown editor with lit + github/markdown-toolbar-element
- create markdown-write-preview + markdown-preview webcomponents using lit
- create
form_markdown_editor helper form component
- simplify form_dropdown and form_multiselect
components
- fix partner fields display

fixes #93, #94, #120
2021-12-29 11:37:16 +00:00
Yassine Doghri
910d457cf8 feat(select): enhance select input with choices.js
- select fields come with a search field
- update language names by fixing missing caps in
LanguageSeeder
- add parent to categoryOptions
2021-12-29 11:37:16 +00:00
Yassine Doghri
9dd4c7741e fix: rename podcast name to podcast handle to clarify field usage
- podcast name was too vague and didn't come clearly for users: handle is more relevant
- update
package.json dependencies and remove unnused packages

closes #126
2021-12-29 11:37:16 +00:00
semantic-release-bot
3a0a76d705 chore(release): 1.0.0-alpha.80 [skip ci]
# [1.0.0-alpha.80](https://code.podlibre.org/podlibre/castopod-host/compare/v1.0.0-alpha.79...v1.0.0-alpha.80) (2021-12-29)

### Bug Fixes

* add application/octet-stream mimetype to mp3 and m4a extensions to prevent ext_in error ([339bef8](339bef878e)), closes [#145](https://code.podlibre.org/podlibre/castopod-host/issues/145)
2021-12-29 10:08:43 +00:00
Yassine Doghri
339bef878e fix: add application/octet-stream mimetype to mp3 and m4a extensions to prevent ext_in error
fixes #145
2021-12-29 09:46:32 +00:00
semantic-release-bot
ece476b388 chore(release): 1.0.0-alpha.79 [skip ci]
# [1.0.0-alpha.79](https://code.podlibre.org/podlibre/castopod-host/compare/v1.0.0-alpha.78...v1.0.0-alpha.79) (2021-12-20)

### Bug Fixes

* **import:** set episode and season numbers to null when not present in item tag ([3211398](3211398c78))
2021-12-20 16:42:51 +00:00
Yassine Doghri
3211398c78 fix(import): set episode and season numbers to null when not present in item tag
update getid3 to latest dev branch
2021-12-20 16:31:03 +00:00
semantic-release-bot
548234aa4d chore(release): 1.0.0-alpha.78 [skip ci]
# [1.0.0-alpha.78](https://code.podlibre.org/podlibre/castopod-host/compare/v1.0.0-alpha.77...v1.0.0-alpha.78) (2021-12-15)

### Bug Fixes

* **import:** add extension when downloading file without + truncate slug if too long ([c5f18bb](c5f18bb6dc))
2021-12-15 16:08:58 +00:00
Yassine Doghri
c5f18bb6dc fix(import): add extension when downloading file without + truncate slug if too long 2021-12-15 15:44:58 +00:00
semantic-release-bot
d86315ed94 chore(release): 1.0.0-alpha.77 [skip ci]
# [1.0.0-alpha.77](https://code.podlibre.org/podlibre/castopod-host/compare/v1.0.0-alpha.76...v1.0.0-alpha.77) (2021-11-23)

### Bug Fixes

* **cors:** add preflight option routes for episode, podcast and status objects ([a281abf](a281abfda4))
* **podcast-import:** move guid attribute declaration for Episode entity to include slug data ([5d02ae3](5d02ae3990))
2021-11-23 11:03:31 +00:00
Yassine Doghri
5d02ae3990 fix(podcast-import): move guid attribute declaration for Episode entity to include slug data 2021-11-22 17:01:40 +00:00
Yassine Doghri
a281abfda4 fix(cors): add preflight option routes for episode, podcast and status objects 2021-11-22 14:35:44 +00:00