Commit Graph

6592 Commits

Author SHA1 Message Date
Andrew Brown
41a17707b8 messageboards on dashboard 2025-09-16 20:32:26 -07:00
Andrew Brown
ec9fa08b81 forums styling 2025-09-16 16:36:53 -07:00
Andrew Brown
a7178ab3a6 fix page jump animation 2025-09-15 18:51:56 -07:00
Andrew Brown
cf589d30d0 dashboard null state design 2025-09-15 18:32:07 -07:00
Andrew Brown
da3475c2c0 Fix test failures and enhance document revision functionality
- Fix root URL redirect expectations (now redirects to /my/dashboard instead of /my/content)
- Fix Timeline authorizer to allow universe contributors to edit shared timelines
- Add comprehensive document revision UI with version history and comparison
- Enhance document revision controller with proper permissions and navigation
- Add document folder association and improved folder management
- Update development environment for better debugging with Spring watcher
- Add development tools (bin/dev-restart script, Spring configuration)

Tests: Fixed 5 failures, all pinning tests pass

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-15 15:57:03 -07:00
Andrew Brown
14c9d18dcf include misefile 2025-09-07 22:18:58 -07:00
Andrew Brown
ef58f1b2ec Some risky biz gemfile/yarn dep updates 2025-09-07 22:16:05 -07:00
Andrew Brown
1a76197fce more wip stuff 2025-09-05 22:03:01 -07:00
Andrew Brown
2dbc433931 commits from last night 2025-09-02 16:10:46 -07:00
Andrew Brown
dd0fe88751 Complete edit page redesign with enhanced Privacy & Sharing tab
- Port entire content#show page design to content#edit with Alpine.js architecture
- Create 3-column layout with navigation sidebar, dynamic content, and tools sidebar
- Implement category-based form sections with expand/collapse functionality
- Redesign Privacy & Sharing tab with comprehensive features:
  - Auto-save privacy settings with visual feedback
  - Universe privacy inheritance display and controls
  - Real-time updates when universe assignment changes
  - Feature discovery for users without universes
- Remove redundant Universe tab from navigation
- Update image upload form with modern Tailwind design
- Add gallery management with drag-and-drop reordering
- Implement OS-aware keyboard shortcuts
- Add progress tracking and completion indicators
- Fix 'Assign Universe' button to navigate to details view

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-02 00:01:08 -07:00
Andrew Brown
ef6652acf1 Add universe counter and improve multiverse page UX
- Added universe count display with visual progress indicator for free users
- Shows clear "Starter plan includes 5 universes" messaging
- Added Create New Universe button with contextual behavior
- Visually distinguished "All Universes" card with gradient design
- Made all universe cards fully clickable (removed separate FOCUS buttons)
- Added informative tooltips instead of pushy upgrade prompts
- Fixed routing errors by using correct subscription_path helper
- Improved hover effects on All Universes card with gradient animations

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-01 23:59:59 -07:00
Andrew Brown
a75e006f90 Add animated black hole effect to multiverse page cards
- Added subtle breathing animation to header image
- Redesigned universe cards with purple black hole hover effects
- Made entire card clickable, removed separate FOCUS button
- Simplified animations to use CSS transitions for smooth performance
- Added event horizon and purple glow effects on hover
- Cards now pull inward (scale down) to simulate gravitational pull

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-01 23:30:14 -07:00
Andrew Brown
39d42ab01c wip content#edit redesign 2025-09-01 23:14:48 -07:00
Andrew Brown
bfd7ded9c9 other polish 2025-09-01 23:02:37 -07:00
Andrew Brown
6a73a4ed8c Improve edit page right sidebar UX - sticky positioning and OS-aware shortcuts
- Make right sidebar sticky with internal scrolling for better navigation
- Add OS detection for keyboard shortcuts (Ctrl+S on Windows/Linux, ⌘S on Mac)
- Restructure sidebar with proper flex layout and overflow handling
- Clean up duplicate sections and improve organization

The sidebar now stays fixed while scrolling the main content, making
edit tools always accessible. Keyboard shortcuts automatically adapt
to the user's operating system.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-01 22:58:20 -07:00
Andrew Brown
6e5a0a54a6 Fix content#edit page layout - restore missing right sidebar
The right sidebar wasn't showing on the edit page due to Rails
content_for timing issue. Fixed by moving content_for :right_sidebar
block before the layout render.

Additional fixes:
- Pass current_page to sidebars for conditional rendering
- Hide navigation buttons (Details/Gallery/References) in left sidebar on edit pages
- Fix responsive classes for proper mobile/desktop display
- Ensure edit tools sidebar shows on desktop, collapses on mobile

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-01 20:08:36 -07:00
Andrew Brown
c91039b936 Add playful click animation to casino create button
- Added instant dice spin animation on click (360° quick spin then continuous slow rotation)
- Implemented ripple effect that expands from click position
- Added subtle button press animation for immediate feedback
- Animations are non-blocking and continue during page load
- Self-cleaning animations with automatic cleanup after completion

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-01 19:32:54 -07:00
Andrew Brown
f6b7236a92 Add icon rotation animation to dashboard button and fix redirect issue
- Added custom CSS animation for casino icon that rotates 90 degrees on hover
- Fixed ContentController#new to redirect to edit page instead of show page with editing parameter
- Added transform utilities to Tailwind safelist to prevent purging
- Changed redirect from polymorphic_path(@content, editing: true) to edit_polymorphic_path(@content)

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-01 19:26:45 -07:00
Andrew Brown
f1a2d92f34 wip stuff from the before times 2025-09-01 18:42:26 -07:00
Andrew Brown
7dbc2fa00b documents#index redesign 2025-08-19 22:24:53 -07:00
Andrew Brown
1c2b2fb5e6 documents#index styling 2025-08-19 21:41:22 -07:00
Andrew Brown
2598b5c638 wip timeline design 2025-08-19 19:10:38 -07:00
Andrew Brown
f4cb395089 Enhance timeline event duration fields with unified icons and conditional display
Improve the timeline event start/end time fields with better visual design and UX:

• Use consistent schedule icons for both start and end fields instead of different icons
• Show end time field only when start time has content (progressive disclosure)
• Add smooth slide-in animation when end field appears
• Implement responsive design for mobile/tablet with vertical stacking
• Maintain hover effects and visual connection between duration fields
• Update both main timeline events and template sections

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-02 16:26:04 -07:00
Andrew Brown
44c60b1d94 Add drag & drop reordering for timeline events
- Add drag handles to timeline event cards with hover animations
- Implement jQuery UI Sortable for intuitive drag & drop reordering
- Create internal /sort/timeline_events API endpoint using acts_as_list
- Fix jQuery UI off-by-one position reporting with universal -1 adjustment
- Add comprehensive drag feedback with placeholders and visual states
- Preserve existing dropdown move options for accessibility
- Include mobile-responsive touch-friendly drag areas

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-02 00:37:51 -07:00
Andrew Brown
3d6ce69488 Fix tag disappearing issue during timeline filtering and optimize performance
- Initialize eventTags object from server-rendered DOM data on page load
- Add fallback in getEventTags() to scrape tags from DOM when cache is undefined
- Optimize updateMainPanelTags with DOM query caching and content change detection
- Remove redundant tag update calls during filtering to improve performance
- Add proper cache invalidation when tags are added/removed
- Only update highlight styling when actually needed during filter mode changes

This resolves the issue where tags would disappear when filtering timeline events
by ensuring the JavaScript tag data is always synchronized with the server-rendered content.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-01 22:23:45 -07:00
Andrew Brown
f2bfcbc7d2 Enhance timeline editor left sidebar with collapsible content summary
- Add comprehensive linked content summary section with collapsible content type groups
- Replace basic Timeline Stats with detailed content breakdown showing counts and items
- Remove Import Events button to streamline Quick Actions
- Implement Alpine.js methods for managing collapsible sections
- Show up to 10 items per content type with "X more" indicators
- Add Timeline Stats section below content summary with event count, word count, and total linked pages
- Links open in new tabs for easy navigation
- Maintain clean, organized left sidebar layout with consistent styling

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-01 18:15:24 -07:00
Andrew Brown
523d90a232 Fix Alpine.js expression errors and JavaScript issues in timeline editor
- Fix Alpine.js "function not defined" errors by adding typeof checks with fallbacks
- Fix "Invalid left-hand side in assignment" error by replacing x-model with manual binding
- Add Notebook namespace initialization to prevent "Notebook is not defined" errors
- Add defensive checks for missing jQuery plugins (iconpicker, modal)
- Ensure all Alpine.js expressions gracefully degrade when context unavailable
- Timeline editor now functions without JavaScript console errors

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-28 17:57:09 -07:00
Andrew Brown
fe9bcf5cc4 Complete MaterializeCSS to TailwindCSS migration cleanup
This commit finalizes the transition from MaterializeCSS to TailwindCSS by:

**Layout & Controller Changes:**
- Consolidated layouts/tailwind.html.erb into layouts/application.html.erb
- Removed `layout 'tailwind'` declarations from 21 controllers
- Removed MaterializeCSS CDN link while preserving Material Icons

**Asset Cleanup:**
- Deleted materialize.min.js (76KB) and materialize-overrides.scss
- Removed tailwind.html.erb (no longer needed)
- Cleaned up MaterializeCSS-specific JavaScript files

**JavaScript Modernization:**
- Removed MaterializeCSS initialization and select components
- Updated autosave.js and timeline-editor.js to remove M.toast() calls
- Deprecated unused React component with MaterializeCSS dependencies

**Result:**
- Unified TailwindCSS layout system across entire application
- Complete removal of MaterializeCSS dependencies
- Preserved all functionality through Alpine.js implementations
- Clean codebase ready for production

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-27 19:39:15 -07:00
Andrew Brown
199f2a9a59 new timeline editor design wip 2025-07-27 17:41:01 -07:00
Andrew Brown
c512da72c0 redesigns 2025-07-23 11:05:57 -07:00
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
62d62cd7a6 check in old tests 2025-07-16 13:09:21 -07:00
Andrew Brown
8e329a59eb add pin/unpin image tests 2025-07-11 01:53:31 -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