Commit Graph

77 Commits

Author SHA1 Message Date
Benjamin Bellamy 8122ceaf8a fix: replace getWebEnclosureUrl with getEnclosureWebUrl 2020-10-26 17:26:41 +00:00
semantic-release-bot 0683ea94d8 chore(release): 1.0.0-alpha.11 [skip ci]
# [1.0.0-alpha.11](https://code.podlibre.org/podlibre/castopod/compare/v1.0.0-alpha.10...v1.0.0-alpha.11) (2020-10-26)

### Features

* add CDN url ([972bcbf](972bcbf65e)), closes [#37](https://code.podlibre.org/podlibre/castopod/issues/37)
2020-10-26 16:17:35 +00:00
Benjamin Bellamy 972bcbf65e feat: add CDN url
feat: rename ?s to ?_from to match podcastindex recommendation
feat: adust map height
feat: display pie chart on 1 column for small and medium screens
feat: handle empty rss user agent
fix: correct bug when importing episode with empty image
fix: add service to FakePodcastsAnalyticsSeeder, resize pie charts so that all lines fit
fix: set page title to ->title when it exists
fix: replace %20 with +

closes #37
2020-10-26 16:13:43 +00:00
semantic-release-bot 384b6b27a3 chore(release): 1.0.0-alpha.10 [skip ci]
# [1.0.0-alpha.10](https://code.podlibre.org/podlibre/castopod/compare/v1.0.0-alpha.9...v1.0.0-alpha.10) (2020-10-26)

### Bug Fixes

* **install:** redirect to host_url install route on instanceConfig validation error ([99250b1](99250b1868))
2020-10-26 15:29:29 +00:00
Yassine Doghri 99250b1868 fix(install): redirect to host_url install route on instanceConfig validation error 2020-10-26 15:21:21 +00:00
semantic-release-bot 414b23a3b7 chore(release): 1.0.0-alpha.9 [skip ci]
# [1.0.0-alpha.9](https://code.podlibre.org/podlibre/castopod/compare/v1.0.0-alpha.8...v1.0.0-alpha.9) (2020-10-26)

### Features

* display castopod version in admin footer ([9f2574e](9f2574e6fb)), closes [#68](https://code.podlibre.org/podlibre/castopod/issues/68)
2020-10-26 14:20:19 +00:00
Yassine Doghri 9f2574e6fb feat: display castopod version in admin footer
add CP_VERSION constant in app/Config/Constants.php that updates upon release through
prepare-release.sh script

closes #68
2020-10-26 11:48:17 +00:00
Yassine Doghri 4f1e773c0f feat(episodes): schedule episode with future publication_date by using cache expiration time
- merge publication date fields into one field instanciated with flatpickr datetime picker
- get user timezone to convert user publication_date input to UTC
- remove setPublishedAt() method from episode entity
- add publication pill component to display the episode publication date info
- clear cache after episode insert
- use CI is_really_writable() helper in install instead of is_writable()
- fix latest episodes layout
- update tsconfig to only include ts folders
- update DEPENDENCIES.md to include flatpickr
- add format_duration helper to format episode enclosure duration instead of translating it (causes
translation bug)
- add Time.ts module to convert UTC time to user localized time for episode publication dates
- fix some layout issues
- update php and js dependencies to latest versions

closes #47
2020-10-22 17:41:59 +00:00
Benjamin Bellamy 7202b9867b feat(analytics): add service name from rss user-agent
BREAKING CHANGE: analytics_podcasts_by_player table and analytics_podcasts procedure were updated
2020-10-21 16:04:18 +00:00
Yassine Doghri 9cec8a81cc fix(cache): add locale for podcast and episode pages + clear some persisting cache in models
fixes #42, #61
2020-10-20 15:39:20 +00:00
Benjamin Bellamy 72b301272e feat: add lock podcast according to the Podcastindex podcast-namespace to prevent unauthozized import 2020-10-20 13:46:00 +00:00
Benjamin Bellamy 78625c471b feat(analytics): add charts and data export 2020-10-20 09:32:03 +00:00
Benjamin Bellamy 1678794153 fix(analytics): remove charts empty values + remove useless language cache
fix(install): edit host_url helper and remove back() when create .env
2020-10-19 16:47:22 +00:00
Benjamin Bellamy 588b4d28da feat: add cumulative listening time charts 2020-10-19 10:33:23 +00:00
Yassine Doghri 50e32ff756 fix: replace website key for webpages in breadcrumb translate file 2020-10-15 20:22:33 +00:00
Yassine Doghri 96b39002eb chore: clean interactive rebase conflicts 2020-10-15 15:24:16 +00:00
Yassine Doghri d5f22fbb38 revert: use basic input file for episodes audio files instead of button for better UX
replace platform visible checkbox with switch
2020-10-15 14:42:33 +00:00
Yassine Doghri 7661734ed2 fix: add where condition to get episode count without deleted episodes
contain podcast page header info within an md width

fixes #67
2020-10-15 14:42:32 +00:00
Yassine Doghri e6197a4972 fix: comment all cache clean after page update to prevent analytics cache deletion 2020-10-15 14:42:31 +00:00
Yassine Doghri eb70bb4f70 fix: update purgecss content path for php helper files
- fix overshooting podcast name when too long in podcast sidebar
- update npm packages to latest versions

fixes #59
2020-10-15 14:42:30 +00:00
Yassine Doghri c39efc9489 fix: set episode duration translation to hardcoded english
- intl NumberFormatter doesn't work as it should with french language
- fix typo in episode french tranlation

fixes #64
2020-10-15 14:42:29 +00:00
Benjamin Bellamy 07eae83a00 feat: add map analytics, add episodes analytics, clean analytics page layout, translate countries 2020-10-15 14:42:28 +00:00
Benjamin Bellamy 196920d62f feat: add french translation 2020-10-15 14:42:25 +00:00
Yassine Doghri 93eb9e1056 style: update 404 and 500 error pages to use tailwindcss and Castopod mascot
- add back to previous page button to 404 page
- replace public/favicon.ico
2020-10-15 14:42:24 +00:00
Yassine Doghri a83417180c fix: fix layout bugs in admin and update translation files
fixes #40
2020-10-15 14:42:23 +00:00
Yassine Doghri e109df3004 fix: rename MyAccount controller file
Myaccount controller causes 404 page on certain systems

fixes #60
2020-10-15 14:42:22 +00:00
Yassine Doghri 6238a43863 fix: escape generated feed tag values and remove new lines from public pages meta description
fixes #57, #46
2020-10-15 14:42:21 +00:00
Yassine Doghri ad8b153f2a fix: set episode guid upon episode creation
fixes #48
2020-10-15 14:42:19 +00:00
Yassine Doghri 2426af7de8 fix(install): redirect to input baseUrl after instance config
install was redirecting to default baseUrl because `redirect->back()` uses the `site_url()` function

fix #53
2020-10-15 14:42:17 +00:00
Yassine Doghri 1c4a50442b feat: set podcast / episode description in the pages description meta tag
strip html tags from description_html attributes to generate text only description

closes #44
2020-10-15 14:42:15 +00:00
Benjamin Bellamy 4d3e9c8c02 fix: correct chart data 2020-10-15 14:42:14 +00:00
Yassine Doghri 769ea469c9 refactor: update install logic and add missing cache config step
- add `.env.example` and `INSTALL.md` to castopod bundle for installation docs
- update seeders to be silent on insert errors
- update install layout
- add manual config instructions when .env file is not writable
- fix eslint error in Charts.ts module

closes #32
2020-10-15 14:42:13 +00:00
Benjamin Bellamy 35f633b4c7 fix: re-order graph values 2020-10-15 14:42:11 +00:00
Benjamin Bellamy e53f819264 fix: correct percona compatibility issue 2020-10-15 14:42:10 +00:00
Benjamin Bellamy 3a4925816f feat: add unique listeners analytics
- add unique listener
- add some charts
- correct minor bugs
2020-10-15 14:42:09 +00:00
Benjamin Bellamy 9660aa97c8 fix: reorder fields as composite primary keys for analytics tables 2020-10-15 14:42:07 +00:00
Benjamin Bellamy ed69b2f500 fix: correct referrer bug 2020-10-15 14:42:06 +00:00
Yassine Doghri 6e503c8d61 fix(platforms): display platform link only when visible is toggled on
add condition to podcast page

fix #39
2020-10-15 14:42:05 +00:00
Yassine Doghri 2f07992e55 feat: display legal disclaimer and warning on podcast import page
updated podcast import translations

closes #34
2020-10-15 14:42:04 +00:00
Yassine Doghri a973c097d5 feat: add alternate rss feed link tag to podcast page head
update composer packages to latest versions

closes #35
2020-10-15 14:42:03 +00:00
Benjamin Bellamy 03e23a28bf feat: update analytics so to meet IABv2 requirements
- https://iabtechlab.com/wp-content/uploads/2017/12/Podcast_Measurement_v2-Dec-20-2017.pdf
  - no IP address is ever stored on the server. Only aggregate data is stored in the dababase.
  - rolling 24-hour window
  - castopod does not do pre-load
  - IP Blacklisting https://github.com/client9/ipcat
  - user-agent Filtering https://github.com/opawg/user-agents
  - ignores 2 bytes range "Range: 0-1" (performed by official Apple iOS Podcast app)
  - in case of partial content, adds up all requests to check >1mn was downloaded
  - identifying Uniques is done with a combination of IP Address and User Agent
- add AMcharts
- add some graphs
- add regions to analytics
- add ipcat blacklist
- enhance useragents performances
- add filesize and header size in order to calculate 1mn downloads
- update publisher ID3 field
- update castopod icon
- add disclaimer and warning import form translation
- update docs/setup-development.md

closes #10
2020-10-15 14:42:02 +00:00
Benjamin Bellamy 5417be0049 fix: remove required for other_categories field and add podcast_id to latest podcasts query 2020-10-15 14:41:57 +00:00
Yassine Doghri 2d44b457a0 feat: enhance admin ui with responsive design and ux improvements
- add podcast sidebar navigation
- add podcast dashboard with latest episodes
- add pagination to podcast episodes
- add components helper to reuse ui components (button, data_table, etc.)
- enhance podcast and episode forms by splitting them into form sections
- add hint tooltips to podcast and episode forms
- transform radio inputs as buttons for better ux
- replace explicit field by parental_advisory
- replace author field by publisher
- add podcasts_categories table to set multiple categories
- use choices.js to enhance multiselect fields
- update Language files
- update js dependencies to latest versions

closes #31, #9
2020-10-15 14:41:56 +00:00
Benjamin Bellamy 31b7828e77 fix: correction for servers with low int precision 2020-10-15 14:41:49 +00:00
Benjamin Bellamy d7b6794f68 fix: sort episodic podcasts by season 2020-10-15 14:41:49 +00:00
Benjamin Bellamy 1ef55d7315 fix: correct php-fpm issues 2020-10-15 14:41:47 +00:00
Yassine Doghri 02e4441f98 feat: create optimized & resized images upon upload
- resize uploaded image to thumbnail, medium, large, feed, and id3 formats
- set image url formats where adapted in views
- set format sizes and extensions in Images config file for customization
- add validation for image uploads: `min_dims` and `is_image_squared`
- update codeigniter4 and myth-auth php packages to latest develop versions
- update npm packages to latest versions
- update public/.htaccess

closes #6
2020-10-15 14:41:45 +00:00
Yassine Doghri 40a0535fc1 feat(public-ui): adapt public podcast and episode pages to wireframes
- adapt wireframes with responsive design
- refactor models methods to cache requests for faster queries
- update public controllers to cache pages while retaining analytics hits
- add platform links to podcast page
- add previous / next episodes in episode page
- update npm packages to latest versions

closes #30, #13
2020-10-15 14:41:43 +00:00
Yassine Doghri 2517808cd4 refactor: remove unnecessary permissions and update route filters
- add missing pages-manage permission
- remove some instance wide permissions for superadmin

closes #29
2020-10-15 14:41:41 +00:00
Yassine Doghri 043f49c784 feat: add platforms form in podcast settings
- set and remove platform links for a podcast
- remove unnecessary fields from platforms and platform_links tables
- add platforms svg icons to show in form
- update platform and auth seeders
- update svgo config for images
2020-10-15 14:41:39 +00:00