Commit Graph

1388 Commits

Author SHA1 Message Date
Andrew Brown
ec9fde5990 sort and tag filtering working on content#index pages again 2025-07-19 17:25:57 -07:00
Andrew Brown
96b99eee8d update guides 2025-07-18 13:19:21 -07:00
Andrew Brown
3891a91993 new help docs 2025-07-17 15:58:21 -07:00
Andrew Brown
755bcab0af billing pages 2025-07-17 12:42:05 -07:00
Andrew Brown
9419b3014c Merge branch 'master' into tailwind-redesign 2025-07-17 00:26:08 -07:00
Andrew Brown
de2feb0122 improve pinned image reliability 2025-07-11 01:18:55 -07:00
Andrew Brown
d69f8f80c7 more stripe safety 2025-07-11 00:37:50 -07:00
Andrew Brown
cd8c948fcd stripe safety 2025-07-11 00:27:16 -07:00
Andrew Brown
537a235923 fix pinning images edge case 2025-07-11 00:15:49 -07:00
Andrew Brown
ac96a001a8 Fix Stripe subscription errors by migrating deprecated sources API to payment_methods API
- Migrate from deprecated sources API to modern payment_methods API in SubscriptionsController
- Update subscription plan modifications to use Subscription.modify instead of direct assignment
- Fix payment method creation/deletion to use PaymentMethod.create/detach instead of sources
- Update view templates to use new payment_methods data structure
- Migrate price.id usage from deprecated plan.id in data integrity tasks
- Add comprehensive test suite with proper Stripe API stubs
- Add missing test gems: rspec-rails, webmock, factory_bot_rails, shoulda-matchers

This resolves Error 500 when users try to upgrade to Premium subscriptions.
The original error was: NoMethodError - undefined method 'total_count' for nil:NilClass
caused by stripe_customer.sources.total_count when sources API returned nil.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-10 23:40:36 -07:00
Andrew Brown
7f5e744f0a stream and some start on forums 2025-07-10 22:06:31 -07:00
Andrew Brown
df088d195a new stream design 2025-07-10 02:27:42 -07:00
Andrew Brown
0a027681c7 some navbar, some collection, polish 2025-07-10 01:41:31 -07:00
Andrew Brown
e36587e346 Complete collections redesign with production-ready features
Major redesign of Collections system including:

## Collections Index Page Redesign
- Replace massive hero with streamlined editorial header
- Implement fully functional tab navigation (Featured, My Collections, Following, Open for Submissions)
- Add professional collection cards with rich metadata display
- Create responsive mobile navigation with horizontal scroll
- Add editorial newspaper aesthetic with amber color scheme
- Include SEO optimization and accessibility features

## Content-Type Specific Collection Pages
- Filter editor's picks by content type on /collections/:id/:content_type pages
- Add content-type specific theming with dynamic colors and icons
- Update masthead with content-type focused titles and breadcrumbs
- Highlight active content type in navigation pills
- Change section titles to be content-type specific ("Featured Characters", "Published Character Pages")

## Collection Card Component
- Create comprehensive collection card partial with error handling
- Display collection stats, content types, submission status
- Add hover effects and professional styling
- Handle nil values gracefully for production safety

## Technical Improvements
- Fix JavaScript class handling issues that prevented tab switching
- Add smooth transitions and loading states
- Implement mobile-optimized navigation with touch scrolling
- Include proper focus states for accessibility
- Add comprehensive error handling for nil collection data
- Update billing redirect flow for upgrade buttons

The Collections feature now provides a professional, newspaper-style editorial experience where getting published feels prestigious and exclusive.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-09 01:08:19 -07:00
Andrew Brown
75239dc707 add pagination on page collection infinite scroll 2025-07-09 00:03:52 -07:00
Andrew Brown
1414308e82 style collections and add editors picks 2025-07-08 23:17:22 -07:00
Andrew Brown
190da7f0cc Implement multi-step wizard and live preview for collection creation
Major UX improvements that significantly enhance the collection creation experience:

## Multi-Step Wizard Features:
- 4-step progressive workflow: Basics → Visual → Content → Settings
- Interactive step navigation with progress indicator
- Visual step completion states (active, completed, disabled)
- Form validation before allowing step progression
- Keyboard navigation support (Ctrl+Arrow keys)
- Auto-save functionality with visual feedback

## Live Preview Panel:
- Real-time preview updates as users type and make selections
- Split-screen layout with form on left, preview on right
- Desktop/mobile preview toggle functionality
- Dynamic content type visualization
- Privacy and submission status preview
- Theme preview with color scheme changes

## Enhanced Form Experience:
- Progressive disclosure of form sections
- Smart content type selection (All/None/Common shortcuts)
- Theme selection with visual previews
- Character counter with color-coded warnings
- Better error handling and validation feedback
- "Save Draft" functionality for work-in-progress

## Technical Implementation:
- Comprehensive JavaScript controller for wizard logic
- Stimulus-compatible data attributes for future enhancement
- Responsive design that works on mobile and desktop
- Accessibility improvements with proper ARIA labels
- Performance optimizations with debounced auto-save

## User Experience Benefits:
- Reduces cognitive load by breaking complex form into steps
- Provides immediate visual feedback on choices
- Prevents data loss with auto-save
- Makes collection creation feel guided and intuitive
- Significantly improves completion rates through better UX flow

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-08 10:18:17 -07:00
Andrew Brown
11d6f033ea Fix polymorphic association loading error in user profiles
- Replace problematic joins on polymorphic content_page association
- Filter content page shares in Ruby instead of SQL to avoid polymorphic join issues
- Update activity streak calculation to work with filtered array instead of ActiveRecord relation
- Maintain privacy filtering by checking content_page.privacy in Ruby

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-08 01:01:35 -07:00
Andrew Brown
e87e818915 Implement privacy filtering and remove edit activities from user profiles
- Filter all content to show only public items on profile pages
- Remove "made an edit" activities from activity feeds and timeline
- Update activity streak calculation to use only content shares
- Clean up UI references to edit activities in overview and activity tabs
- Fix polymorphic association loading issue in content page shares
- Ensure tag filtering only shows public content across all content types

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-08 00:56:24 -07:00
Andrew Brown
21af684073 add streaks to the dashboard 🤔 2025-07-07 21:52:36 -07:00
Andrew Brown
0baec4f9ad more dashboard styling + restyle recent_content page 2025-07-07 20:39:01 -07:00
Andrew Brown
3ce3481a1a wip dashboard redesign (again lol) 2025-07-07 19:59:04 -07:00
Andrew Brown
7c06b27f60 clean up dashboard 2025-07-07 00:14:01 -07:00
Andrew Brown
ada4b03f92 Consolidate attributes editor and fix dashboard image errors
- Merged duplicate attributes editors into single route
- Removed /plan/:content_type/attributes-tailwind route and controller method
- Moved modern Tailwind attributes editor to main /attributes route
- Fixed dashboard ArgumentError: Nil location provided. Can't build URI
- Enhanced HasImageUploads concern with better Active Storage handling
- Added nil-safety guards to header_asset_for method
- Improved caching logic to prevent nil value storage

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-07 00:10:33 -07:00
Andrew Brown
a381a4a3f3 universe docs/help 2025-07-06 23:34:13 -07:00
Andrew Brown
c3bb6f453b Implement dynamic navbar autocomplete search functionality
- Add real-time autocomplete endpoint with fast name-only queries
- Replace static search form with interactive Alpine.js component
- Include 300ms debounced search with keyboard navigation support
- Add instructional help dropdown when search input is focused but empty
- Implement proper content type icons with hex colors instead of CSS classes
- Add database indexes for optimized name searches across all content types
- Support arrow key navigation, Enter to select/search, Escape to close
- Maintain full search functionality as fallback for comprehensive results

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-06 22:49:33 -07:00
Andrew Brown
96500df2ec polish search 2025-07-06 19:38:37 -07:00
Andrew Brown
d1fc5cb459 implement database-agnostic multi-word search functionality
- Replace PostgreSQL ILIKE with cross-database LOWER/LIKE queries
- Add multi-word search support with AND logic (e.g., "red dragon" finds "dragon with red scales")
- Search both Attribute values and entity name columns for comprehensive results
- Add database-aware search indexes (GIN for PostgreSQL, standard for SQLite)
- Implement result pagination and improved relevance sorting
- Fix SQLite compatibility for development environments

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-06 19:10:21 -07:00
Andrew Brown
419285c08a add documentation about templates 2025-07-05 18:28:21 -07:00
Andrew Brown
e0a511b50f fix field deletion & tone down header styling 2025-07-05 17:38:20 -07:00
Andrew Brown
e1c397d8f8 add more export formats and fill out import template section 2025-07-04 23:39:01 -07:00
Andrew Brown
f9f19386de more template editor tweaks 2025-07-03 23:10:38 -07:00
Andrew Brown
f2811388d7 template editor tweaks from claudy 2025-07-03 16:55:33 -07:00
Andrew Brown
df56671ed3 new template editor 2025-07-02 22:35:56 -07:00
Andrew Brown
fd7c5b7b6b move universe selector into sidebar 2025-07-02 00:12:16 -07:00
Andrew Brown
ca3db787f3 Fix route helper reference in document analyses controller 2025-07-01 01:12:31 -07:00
Andrew Brown
95ad08a039 Add document analysis landing page and dashboard hub
- Created a landing page for logged-out users showcasing document analysis features
- Built a functional dashboard hub for logged-in users with analysis tools and insights
- Added new routes and controller actions to handle both views
- Updated sidebar link to point to the new analysis hub
- Added analysis count badge to sidebar navigation

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-01 01:10:32 -07:00
Andrew Brown
a3be81b0f0 claude take the wheel: resolve all the materialize-->tailwind merge conflicts 2025-06-30 23:45:40 -07:00
Andrew Brown
11136b9115 Revert "Start free Basil month"
This reverts commit b0a2e1e2e9.
2025-06-30 23:10:14 -07:00
Andrew Brown
37e5647a67 metadata on artfight2025 directory 2025-06-30 20:44:57 -07:00
Andrew Brown
1956c7aad8 Add comprehensive tests for FoldersController
This commit adds test coverage for the FoldersController, including tests for:
- Authentication requirements
- Creating folders and subfolders
- Updating folders
- Viewing folders
- Filtering by favorites and tags
- Deleting folders
- Security (preventing access to other users' folders)

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-30 12:18:28 -07:00
Andrew Brown
4f1abc82cd release polish 2025-06-30 01:30:13 -07:00
Andrew Brown
572960255c unify logic for content#show / content#edit / content#gallery image lists 2025-06-27 15:46:21 -07:00
Andrew Brown
f72a1c894c fix from last night 2025-06-27 11:03:29 -07:00
Andrew Brown
31a1e1dd09 silly claude 2025-06-26 23:41:20 -07:00
Andrew Brown
307bb4137d galleries cleanup & image reordering 2025-06-26 22:48:49 -07:00
Andrew Brown
0f57473bd9 new gallery ui 2025-06-25 18:49:03 -07:00
Andrew Brown
ca550d569b new full gallery page + polishing up artfight integration 2025-06-24 23:01:44 -07:00
Andrew Brown
574cfcd6ff Add site-wide ArtFight2025 tag browsing page
- Created new /browse/tag/ArtFight2025 endpoint
- Added browse controller for site-wide content display
- Fixed tag slug case-sensitivity for reliable content retrieval
- Implemented a design that highlights the ArtFight2025 tag
- Show all content tags on each card for context
- Prioritize character display at the top of search results

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-23 23:28:50 -07:00
Andrew Brown
83197ced56 add new tags page to profiles 2025-06-23 21:51:26 -07:00