Skip to content
Snippets Groups Projects
  1. Jun 11, 2021
  2. May 18, 2021
  3. May 17, 2021
  4. May 14, 2021
  5. May 12, 2021
  6. May 03, 2021
  7. Apr 08, 2021
  8. Apr 02, 2021
    • Yassine Doghri's avatar
      feat(fediverse): implement activitypub protocols + update user interface · 2f525c0f
      Yassine Doghri authored
      - add "ActivityPub" library to handle server to server federation and basic
        client to server protocols using activitypub:
        - add webfinger endpoint to look for actor
        - add actor definition with inbox / outbox / followers
        - remote follow an actor
        - create notes with possible preview cards
        - interract with favourites, reblogs and replies
        - block incoming actors and/or domains
        - broadcast/schedule activities to fediverse followers using a cron task
      - For castopod, the podcast is the actor:
        - overwrite the activitypub library for castopod's specific needs
        - perform basic interactions administrating a podcast to interact with fediverse users:
          - create notes with episode attachment
          - favourite and share a note + reply
          - add specific castopod_namespaces for podcasts and episodes definitions
      - overwrite CodeIgniter's Route service to include alternate-content option for
        activitystream requests
      - update episode publication logic:
        - remove publication inputs in create / edit episode form
        - publish / schedule or unpublish an episode after creation
        - the podcaster publishes a note when publishing an episode
      - Javascript / Typescript modules:
        - fix Dropdown.ts to keep dropdown menu in foreground
        - add Modal.ts for funding links modal
        - add Toggler.ts to toggle various css states in ui
      - User Interface:
        - update tailwindcss to v2
        - use castopod's pine and rose colors
        - update public layout to a 3 column layout
        - add pages in public for podcast activity, episode list and notes
        - update episode page to include linked notes
        - remove previous and next episodes from episode pages
        - show different public views depending on whether user is authenticated or not
        - use Kumbh Sans and Montserrat fonts
      - update CodeIgniter's config files
      - with CodeIgniter's new requirements, update docker environments are now based on
        php v7.3 image
      - move Image entity to Libraries
      - update composer and npm packages to latest versions
      
      closes #69 #65 #85, fixes #51 #91 #92 #88
      2f525c0f
  9. Mar 19, 2021
  10. Feb 27, 2021
  11. Dec 23, 2020
  12. Dec 09, 2020
  13. Dec 07, 2020
  14. Nov 24, 2020
  15. Oct 29, 2020
  16. 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
  17. Oct 15, 2020
    • Yassine Doghri's avatar
      fix: set episode guid upon episode creation · ad8b153f
      Yassine Doghri authored
      fixes #48
      ad8b153f
    • 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
    • Yassine Doghri's avatar
      feat(public-ui): adapt public podcast and episode pages to wireframes · 40a0535f
      Yassine Doghri authored
      - 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
      40a0535f
    • Yassine Doghri's avatar
      refactor: rewrite form pages using form helper · a1a28de7
      Yassine Doghri authored
      - add installGateway to app config
      - update route names and groups
      - remove `author_name` and `author_email` from `episodes` table
      - remove `author_name` and `author_email` from `podcasts` table
      - remove `owner_id` + add `created_by` and `updated_by` fields in `podcasts` and `episodes` tables
      - remove unnecessary comments in database fields
      - remove confirm password inputs from auth forms for better ux
      - rename `pub_date` field to `published_at` and add publication time field in episode form
      
      closes #14, #28
      a1a28de7
    • Yassine Doghri's avatar
      fix: declare typed properties in PHPDoc for php<7.4 · 14dd44d0
      Yassine Doghri authored
      - fixes error when running castopod on php<7.4
      
      fixes #23
      14dd44d0
    • Yassine Doghri's avatar
      feat: add breadcrumb in admin area · 7fb1de2c
      Yassine Doghri authored
      - add Breadcrumb library and service
      - update authorizations
      - add missing routes to avoid 404 links in breadcrumb
      - add svg_helper globally in base controller
      - update purgecss config to check .ts files
      
      closes #17
      7fb1de2c
    • 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
      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(cache): add podcast and episode pages to cache + clear them after insert or update · da0f0472
      Yassine Doghri authored
      - throw not found page error if no podcast in podcast controller
      - delete unnecessary unknownuseragents view
      da0f0472
    • Yassine Doghri's avatar
      feat: edit + delete podcast and episode · ac5f0c73
      Yassine Doghri authored
      - refactor model / entity and controller logic for DRY code
      - update episodes and podcasts
      migrations
      - define callbacks for podcast and episode models for enclosure update and cache
      clearing
      ac5f0c73
    • 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: write id3v2 tags to episode's audio file · 4651d01a
      Yassine Doghri authored
      - add $mediaRoot parameter in app config
      - add and refactor helpers : id3, media and url
      - add basic vscode settings for code formatting in devcontainer.json
      - set post_max_size to Dockerfile
      4651d01a
    • 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
Loading