Skip to content
Snippets Groups Projects
  1. Oct 22, 2020
    • Yassine Doghri's avatar
      feat(episodes): schedule episode with future publication_date by using cache expiration time · 4f1e773c
      Yassine Doghri authored
      - 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
      4f1e773c
  2. Oct 21, 2020
  3. Oct 15, 2020
    • Yassine Doghri's avatar
      feat: add alternate rss feed link tag to podcast page head · a973c097
      Yassine Doghri authored
      update composer packages to latest versions
      
      closes #35
      a973c097
    • Benjamin Bellamy's avatar
      feat: update analytics so to meet IABv2 requirements · 03e23a28
      Benjamin Bellamy authored and Yassine Doghri's avatar Yassine Doghri committed
      - 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
      03e23a28
    • Yassine Doghri's avatar
      feat: enhance admin ui with responsive design and ux improvements · 2d44b457
      Yassine Doghri authored
      - 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
      2d44b457
    • Yassine Doghri's avatar
      feat: create optimized & resized images upon upload · 02e4441f
      Yassine Doghri authored
      - 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
      02e4441f
    • Benjamin Bellamy's avatar
      feat: import podcast from an rss feed url · 9a5d5a15
      Benjamin Bellamy authored and Yassine Doghri's avatar Yassine Doghri committed
      * add podcast import form
      * add League\\HTMLToMarkdown
      * add guid field in podcast table
      * change podcast category from string to id
      
      closes #21
      9a5d5a15
    • Yassine Doghri's avatar
      feat: add install wizard form to bootstrap database and create the first superadmin user · cba871c5
      Yassine Doghri authored
      - generate .env file to configure instance's environment
      - add phpdotenv dependency to verify .env file
      - add AppSeeder to call all required seeds at once
      - add env and superadmin form views using form helpers
      
      closes #2
      cba871c5
    • Yassine Doghri's avatar
      refactor: add php_codesniffer to define castopod's coding style based on psr-1 · ed6e9530
      Yassine Doghri authored
      - add .editorconfig file
      - format all files to comply with castopod's coding style
      - switch parsedown dependency with commonmark library to better follow commonmark spec for markdown
      - add prettier command to format all project files at once
      
      closes #16
      ed6e9530
    • Yassine Doghri's avatar
      refactor(auth): change contributor's role logic to have it included in the users_podcasts table · 58364bfe
      Yassine Doghri authored
      - update myth-auth and codeigniter to latest develop changes
      - improve permission check: remove all
      dynamic permissions per podcast and overwrite myth-auth services and permission filter
      - remove
      unnecessary code because of myth-auth upgrade
      - refactor some controller code for better clarity
      -
      add remaining seeders in docs
      
      closes #19, #20
      58364bfe
    • Yassine Doghri's avatar
      refactor: update js files to typescript and replace parcel with rollup · e0da1151
      Yassine Doghri authored
      - add basic rollup config to bundle minified and browser compatible js
      - use babel to transpile
      typescript files to js
      - add static code checkers: eslint and stylelint
      - update package.json
      scripts
      - update DEPENDENCIES.md file to include rollup and popper
      - set html in rss feed
      description fields
      - update Podcast and Episode entities to add description_html attribute
      generated by parsing markdown to html using parsedown
      
      #9
      e0da1151
    • Yassine Doghri's avatar
      feat: enhance ui using javascript in admin area · c0e66d5f
      Yassine Doghri authored
      - bundle js using parcel
      - add markdown editor, html editor, dropdown and tooltip features using third-party packages
      - integrate optimized inline svg icons from RemixIcon using svgo and a php helper
      - add scripts in package.json to bundle icons, images, css and js
      - update tailwind config to add purgecss lookups and typography plugin
      - refactor views to add missing pages in user journey
      - update admin's holy grail layout using css grid
      c0e66d5f
    • Yassine Doghri's avatar
      feat: add user permissions and basic groups to handle authorizations · d58e5187
      Yassine Doghri authored
      - add AuthSeeder to bootstrap authorization data and remove UserSeeder
      - create a superadmin group having all authorizations
      - refactor routes and controller methods to separate get and post requests
      - refactor admin views with a title section in layout
      - add contributors section to podcasts to manage contributions (add, edit roles and remove)
      
      closes #3, #18
      d58e5187
    • Yassine Doghri's avatar
      feat(users): add myth-auth to handle users crud + add admin gateway only accessible by login · c63a0776
      Yassine Doghri authored
      - overwrite myth/auth config with castopod app needs
      - create custom views for users authentication
      - add admin area bootstrapped by admin controller
      - shift podcast and episodes crud to admin area
      - reorganize view layouts
      - update docs for database migration
      - add myth-auth to DEPENDENCIES.md
      
      closes #11
      c63a0776
    • Yassine Doghri's avatar
      feat(rss): generate rss feed from podcast entity · c815ecd6
      Yassine Doghri authored
      - refactor episode, podcast and category entities to add dynamic properties
      - refactor Routes when adding feed route
      - update migration files to better fit itunes' and rss' specs
      - update podcast and episode forms
      - add SimpleRSSElement class to Libraries
      - add rss_helper
      - update home controller to redirect if system has only one podcast
      c815ecd6
    • Benjamin Bellamy's avatar
      feat: add analytics and unknown useragents · ec92e65a
      Benjamin Bellamy authored and Yassine Doghri's avatar Yassine Doghri committed
      ec92e65a
    • Yassine Doghri's avatar
      feat(episodes): add create form and view pages for episode · f3b2c8b8
      Yassine Doghri authored
      - add james-heinrich/getid3 library as a dependency to composer.json
      - update DEPENDENCIES.md file
      - fix episodes table migration script
      - add js devDependencies: prettier, @prettier/plugin-php and lint-staged to automatically format staged files before commit
      - reformat all files to the prettier format
      - refactor code by separating some logic as helper functions
      - overwrite existing files when uploading new files with the same name
      
      fixes #1
      f3b2c8b8
    • Yassine Doghri's avatar
      feat: add npm for js dependencies + move src/ files to root folder · cbb83a6f
      Yassine Doghri authored
      - add node service in docker-compose.yml
      - update .devcontainer Dockerfile by adding node, npm and vim
      - init package.json for npm with tailwindcss, postcss, commitlint and commitizen as dev dependencies
      - update default layout main header and footer
      - replace CI's welcome_message.php with home.php listing all podcasts
      - add AUTHORS.md file
      - add docs folder in which to place castopod's technical documentation
      cbb83a6f
Loading