

@aaron-ford
- Member Since
- Nov 16, 2024
- Lessons Completed
- 64
- Comments Contributed
- 17
- Hours Watched
- 10.02
Recent Activity
Here's what @aaron-ford has been up to this past year
-
Completed lesson Storing Lesson Order Changes & Handling Cross-Module Drag & Drops
-
Completed lesson Storing Module Order Changes from Vue Draggable
-
Completed lesson Patching Tag Changes for our Modules & Lessons
-
-
Commented on post Editing & Deleting Course Lessons
Sorry for all the questions. I am getting a lock timeout error when I try to delete. I copied your destroy_lesson code from the repo to make sure our files matched and still get it. I get it trying to delete any lesson. I built my DB fresh and reseeded, just in case. If I remove the await decrement lesson I can delete lessons just fine, just for some reason the lessons are locked when trying to increment:
ERROR (5078): updatelessons
setorder
=order
- 1 where (`module_id` = 1 andorder
> 1) and (`organization_id` = 1) - Lock wait timeout exceeded; try restarting transaction.The query looks right, it seems to be trying to update the right data. Any ideas?
-
Completed lesson Editing & Deleting Course Lessons
-
Replied to Hi Aaron!It sounds like your organization is undefined within...
Thanks! I found it. A typo… was missing the in organization. That's why you don't code late at night.
-
Commented on post Creating & Listing Sortable Course Lessons
The line
statusId: props.organization.statuses.at(0)?.id
works fine in my SortableModules, but in the SortableLessons, it is breaking the page due to 'Cannot read properties of undefined (reading 'statuses').' I have looked through all the files I thought could be related, but haven't found any differences. Any suggestions on what could be causing it?
-
Completed lesson Creating & Listing Sortable Course Lessons
-
Completed lesson Creating, Editing, & Deleting Course Modules
-
Completed lesson Querying & Listing Sortable Course Modules
-
Completed lesson The Tag Selector
-
Completed lesson Showing A Course's Details
-
Completed lesson Deleting Courses
-
Completed lesson Editing & Updating Courses
-
Completed lesson Creating A New Course
-
Replied to Yep! I'm working on updating lesson 1.4 of this series this ...
Thanks. Just a note, I tried npx shadcn-vue@radix add table and it failed with an error 'Failed to fetch base color from registry.' I had to run it with a version (npx [email protected] add table) to get it to install, despite the many warnings.
-
Replied to It looks like shadcn updated recently to use Reka instead of...
I found npx [email protected] add table, that seems to install it, though it does give a bunch of warnings:
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: '[email protected]',
npm WARN EBADENGINE required: { node: '>=20.18.1' },
npm WARN EBADENGINE current: { node: 'v20.11.0', npm: '10.5.1' }
npm WARN EBADENGINE }
npm WARN deprecated [email protected]: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
npm WARN deprecated [email protected]: See https://github.com/lydell/source-map-resolve#deprecated
npm WARN deprecated [email protected]: Glob versions prior to v9 are no longer supported
I'll try and continue with this, but if there's a better way, please let me know. Thanks!
-
Commented on post Querying & Listing An Organization's Courses
It looks like shadcn updated recently to use Reka instead of Radix. I tried following the upgrade instructions at https://www.shadcn-vue.com/docs/changelog#update-your-project, by adding
"ui": "~/components/ui", "lib": "~/lib", "composables": "~/composables"
Copied!to the components.json file, and then trying to reinstall the components, but I still get the same message as before:
An invalid components.json file was found at /plotmycourse.
Before you can add components, you must create a valid components.json file by running the init command.
Learn more at https://shadcn-vue.com/docs/components-json.
Should I just delete the components.json file and run the init? Or what is the best route forward for continuity with the course?
-
Completed lesson Querying & Listing An Organization's Courses
-
Completed lesson Replicating Behaviors for Access Levels & Statuses
-
Completed lesson Creating A Reusable Sorting Vue Component
-
Completed lesson How To Create A Custom VineJS Validation Rule
-
Commented on post Replacing A Course's Deleted Difficulty
Is AdonisJS set up to handle soft deletes? If you didn't want to replace the difficulty and maintain the original relationships? Or if you wanted to delete a course or organization for some reason, and not lose any records you might have to things like users grades?
Also, I feel like I've occasionally seen warnings in the code that I think are due to FormInput type group (remember me on the login page) not having a label or a v-model attribute. Should a group type have those attributes? Or should they be made optional in the FormInput's defined props?
-
Completed lesson Sorting Difficulties with Drag & Drop
-
Completed lesson Reusable VineJS Exists In Organization Validation
-
Completed lesson Replacing A Course's Deleted Difficulty
-
Completed lesson Confirming & Deleting Difficulties
-
Completed lesson Updating Difficulties
-
Replied to Yeah, if I'm following correctly, you could probably achieve...
Thanks! I simplified it by adding an is_default column to the organization_users table.
-
Commented on post Setting & Loading the User's Active Organization
Is there a simple way to query on a relation's relation? For example, if you wanted to have a setting called 'default organization' defined in a settings table, and you assign that setting to a user in a user_settings table, can you query the related organization where the user's user_settings.settings_id = settings.id where settings.name = 'default organization?' Or would you just use joins on anything more complicated than one relation away? Hopefully that makes sense. The purpose is to set it up where if there's an active organization Id and the user is assigned to that organization, use it. Otherwise, see if they have a default organization Id set in their settings and use that. If those both fail, grab the first organization from their list.
-
Completed lesson Listing & Creating Difficulties
-
Completed lesson The Confirm Delete Dialog & Deleting the Active Organization
-
Completed lesson Editing the Active Organization
-
Completed lesson Creating A UseResourceActions Composable
-
Completed lesson Switching Between Organizations
-
Completed lesson The Form Dialog Component & Adding Organizations
-
Commented on post Listing the User's Organizations
From a UI perspective, if someone has a lot of organizations, would you just let the list grow long, or is there a good way to limit the dropdown length and have the menu scroll after a certain point?
-
Completed lesson Creating A Layout
-
Completed lesson Listing the User's Organizations
-
Completed lesson Setting & Loading the User's Active Organization
-
-
Replied to That's odd - do the tailwind classes work okay? Maybe your colors...
I think the button color is coming from inertia_layout.edge. I might have installed dark mode or something in my initial setup, but if I change it to match yours, I get a bunch of errors. I might just ignore it for now. I don't know if that affects the red color of the error. My app.css matches. Thanks for the help!
-
Completed lesson Form Validation & Displaying Errors
-
Completed lesson Inertia Form Basics
-
Completed lesson What Code Can & Can't Be Shared Between AdonisJS & Inertia
-
Completed lesson Partial and Lazy Data Loading and Evaluation
-
Completed lesson Global Components and Hydration Mismatch in Action
-
Completed lesson The Link Component and Programmatic Linking
-
Completed lesson Linking Between Pages & Page State Flow
-
Completed lesson Sharing Data from AdonisJS to Vue via Inertia
-
Completed lesson Setting Up TailwindCSS, Shadcn-Vue, and Automatic Component Imports
-
Completed lesson Creating Our AdonisJS App With InertiaJS
-
Completed lesson Server-Side Rendering (SSR) vs Client-Side Rendering (CSR)
-
Completed lesson The Flow of Pages and Page Props
-
Completed lesson Specifying Page Titles & Meta Tags
-
Completed lesson Default Layouts & Overwriting the Default Layout
-
Commented on post Forgot Password & Password Reset
When you say we might want to add a referrer policy to this page, how do we do that?
-
Completed lesson Forgot Password & Password Reset
-
Commented on post Logging In Users & Displaying Exceptions
I have
<Alert v-if="exceptions.E_INVALID_CREDENTIALS" variant="destructive" class="mb-6">
but the destructive doesn't seem to change my error to be red. Any idea why? Also, my buttons have always been purple instead of black for some reason, maybe that is related?
-
Completed lesson Adding the Remember Me Token
-
Completed lesson Logging In Users & Displaying Exceptions
-
Completed lesson Onboarding Newly Registered Users
-
Completed lesson Logging Out Users
-
Completed lesson Splitting Our Routes Between Auth & Web
-
Completed lesson User Registration with InertiaJS
-
Completed lesson Creating A Toast Message Manager
-
Commented on post Typing Lucid Models in Inertia with DTOs
The import for the UserDto works fine in my inertia.js file, but it can't be found in the AppLayout.vue file. Did I miss something? I tried going back over it and I think I followed all the steps.
-
Completed lesson Completing Our AppLayout & Navigation Bar
-
Completed lesson Typing Lucid Models in Inertia with DTOs
-
Completed lesson Seeding Our Initial Database Data
-
Completed lesson Creating A Lucid Model Mixin for our Organization Relationship
-
Commented on post Defining Our Lucid Models & Relationships
If we want to define single or multi column indexes for our tables, do we do that in the migrations files?
-
Completed lesson Defining Our Lucid Models & Relationships
-
Completed lesson Defining Our Migrations & Foreign Keys
-
Completed lesson Understanding Our Database Schema
-
Completed lesson What Are Some of Inertia's Limitations
-
Completed lesson Cross-Site Request Forgery (CSRF) Protection in InertiaJS
-
Completed lesson Creating A FormInput Vue Component
-
Completed lesson Common useForm Methods & Options
-
Completed lesson The useForm Helper
-
Account created Welcome to Adocasts, @aaron-ford!