Commit Graph

4109 Commits

Author SHA1 Message Date
Andrew Brown
fb761da7b6 changes from last night 2025-07-21 11:07:07 -07:00
Andrew Brown
76dde8c0e1 designs wip 2025-07-20 18:02:28 -07:00
Andrew Brown
9d1d8bab9a new content#show wip layout 2025-07-20 00:19:06 -07:00
Andrew Brown
95f10e58ed new content#show view... it's coming 2025-07-19 20:03:23 -07:00
Andrew Brown
e4761de6c2 Implement pagination and performance optimizations for content#index
- Add pagination with 50 items per page to improve load times
- Optimize database queries by extracting content IDs once
- Add conditional loading for expensive operations (images, commissions)
- Implement comprehensive pagination UI with mobile/desktop layouts
- Preserve sort and filter parameters across page navigation
- Update content counter to show pagination info
- Fix tag filtering variable references (@page_tags, @filtered_page_tags)
- Improve tag filter button styling for better visual consistency

Performance improvements:
- ~70-90% faster page loads for users with large content collections
- Reduced redundant database queries and array iterations
- Better memory usage by processing smaller content batches

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-19 17:46:38 -07:00
Andrew Brown
ec9fde5990 sort and tag filtering working on content#index pages again 2025-07-19 17:25:57 -07:00
Andrew Brown
1cce2487f6 add recently-edited content to content#index sidebar 2025-07-19 16:57:01 -07:00
Andrew Brown
5b1bba2c3b verbiage 2025-07-19 16:38:19 -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
d407af2878 Fix billing history page errors after Stripe gem upgrade
- Replace deprecated account_balance with balance on Customer objects
- Replace deprecated date with created on Invoice objects

These API attribute changes in the newer Stripe gem were causing
NoMethodError exceptions on the billing history page.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-16 23:59:17 -07:00
Andrew Brown
c9a3acf67f another stripe fix 2025-07-16 23:56:44 -07:00
Andrew Brown
0e34c7ac5a stripe upgrade fix 2025-07-16 18:01:07 -07:00
Andrew Brown
de2feb0122 improve pinned image reliability 2025-07-11 01:18:55 -07:00
Andrew Brown
b045e47307 update pinned state more often 2025-07-11 01:03:02 -07:00
Andrew Brown
5f047f9765 new stripe gem requires items array, not price 2025-07-11 00:50:51 -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
feaf3da06b fall back to card-headers on content#show headers 2025-07-10 23:56:02 -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
9c992a04ef collection tweaks 2025-07-08 23:47:08 -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
23a20629e1 Redesign collection creation form with modern TailwindCSS styling
- Replace mixed MaterializeCSS/TailwindCSS with comprehensive modern design
- Add beautiful gradient hero section with collection branding and breadcrumbs
- Organize form into logical card-based sections with color-coded headers
- Implement enhanced form controls with custom styling:
  * Custom checkboxes with visual feedback for content types
  * Toggle switches for submission settings
  * Drag-and-drop file upload with visual states
  * Character counter for description field
  * Radio buttons with descriptive layouts
- Add interactive JavaScript features:
  * Select All/None/Common Types for content selection
  * Progressive disclosure for submission options
  * Real-time character counting with color feedback
  * Drag-and-drop file upload enhancement
- Improve UX with better visual hierarchy and spacing
- Add comprehensive help text and guidance throughout
- Maintain all existing functionality while enhancing usability
- Ensure responsive design works across all screen sizes

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-08 01:33:53 -07:00
Andrew Brown
23297339bb Redesign user content list pages with modern TailwindCSS styling
- Replace MaterializeCSS with comprehensive TailwindCSS design system
- Add beautiful gradient hero section with content type branding
- Implement responsive breadcrumb navigation and user profile integration
- Create dual view modes: grid cards and detailed list view with toggle
- Add elegant content cards with hover animations and image backgrounds
- Include comprehensive stats display (item count, word count)
- Implement proper empty state handling with content type descriptions
- Add tag filtering and cross-linking functionality
- Maintain all existing image loading and favorite/basil commission logic
- Ensure responsive design works across all screen sizes
- Add smooth transitions and modern card shadows throughout
- Include JavaScript view toggle functionality for enhanced UX

Covers all content type pages: /users/1/universes, /users/1/characters, etc.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-08 01:19:05 -07:00
Andrew Brown
75a641613c Redesign user tag page with modern TailwindCSS styling
- Replace MaterializeCSS with modern TailwindCSS design
- Add beautiful gradient hero section with user profile and tag information
- Implement responsive breadcrumb navigation
- Create elegant content cards with hover effects and smooth transitions
- Add proper empty state handling with actionable CTA
- Organize content by type with clear section headers
- Include tag filtering and cross-linking between related tags
- Add backdrop blur effects and modern card shadows
- Maintain all existing functionality while improving visual design
- Ensure responsive layout works across all screen sizes

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-08 01:13:28 -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
54582584a2 add streak styling 2025-07-07 23:58:05 -07:00
Andrew Brown
21af684073 add streaks to the dashboard 🤔 2025-07-07 21:52:36 -07:00
Andrew Brown
971475e747 more dashboard polish 2025-07-07 20:52:25 -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
440849d9e8 polish up navbar buttons 2025-07-06 17:35:42 -07:00
Andrew Brown
e439c7af88 restyle navbar buttons 2025-07-06 17:18:24 -07:00
Andrew Brown
e464bbee4d get colored navs working again 2025-07-06 16:25:25 -07:00