feat(address): add address management system for physical products- create Address model with country enum and has_many :orders association
- add AddressController with CRUD operations supporting JSON and HTML formats
- add AddressesController with create, update, destroy actions and reload parameter
- add address association to Order model (belongs_to :address, required: false)
- add physical attribute to Product model with physical? helper method
- update User model to use has_many :address association with nested attributes
- add migrations for addresses table and order address reference (address_id)
- add address modal UI with form for creating addresses (HTML/JS)
- add address picker and delete functionality in user edit view
- add address selection dropdown for physical product orders in order forms
- add address display in order details view
- add CSS styles for address modal, form elements, and utility classes
- add JavaScript for modal interactions, address deletion, and form submission
- add trash-bin.svg icon for delete button
- update routes to include destroy action for addresses
refactor(order): improve address handling in order creation
- fix conditional logic for accessory cost calculation (separate if blocks)
- add address assignment for physical products during order creation
- update product form to include physical item checkbox
fix(validation): improve form field warning animations
- add fade-out transition for field validation warnings via fade-out class
- add timer-based warning auto-clear functionality (3s delay, 400ms fade)
- add transition properties for border-color and box-shadow on field-invalid
style(application): add CSS utility classes and address styling
- add transition properties for field-invalid class (border-color, box-shadow)
- add fade-out animation for field-validation-warning (opacity transition)
- add .apf-section-darken, .address-trigger-btn, .del-btn utility classes
- add .inline, .jsb, .w100p, .g2r layout utility classes
Comments 0
No comments yet. Be the first!
Sign in to join the conversation.