| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
| |
- Add Footer component with [email protected] contact email
- Update main layout to include footer at bottom of all pages
- Use flexbox layout to ensure footer stays at bottom
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <[email protected]>
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
- Replace default Next.js favicon with FCT university favicon
- Downloaded from https://www.fct.unl.pt/sites/default/files/favicon_3.ico
- 64x64 PNG format with transparent background
- Improves branding consistency with FCT Drive purpose
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <[email protected]>
|
| |
|
|
|
|
|
|
|
|
| |
- Change searchParams from object to Promise<object> in HistoryPageProps
- Await searchParams resolution in HistoryPage component
- Fixes TypeScript compilation error during build process
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <[email protected]>
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
- Create /history page showing drive activity with server-side rendering
- Display timestamp, action, user, path, and file size in table format
- Add pagination (50 entries per page) using URL query parameters
- Sort entries by timestamp descending (most recent first)
- Add History button to drive header for easy navigation
- Use existing UI components and styling patterns
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <[email protected]>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Create server-side AuthButtons component that renders login/logout based on auth state
- Add DriveHeader component for title and auth buttons (server-side)
- Restructure DriveDirectoryClient to focus on breadcrumbs/actions/files only
- Remove client-side auth state management from DriveDirectoryClient
- Add /api/logout route handler for server-side logout flow
- Update DriveDirectoryView to compose header and directory components
- Preserve existing TinyAuth integration and dev mode bypass
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <[email protected]>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
- Created auth_types.ts for type definitions
- Created auth_shared.ts for utility functions and endpoints
- Updated auth.ts to focus on session management
- Fixed all auth import statements throughout codebase
- Updated login redirect to use Auth_tinyauth_public_endpoint properly
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <[email protected]>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
- Replace HTTP fetch with direct function import
- Remove environment-dependent URL construction
- Fix 'Failed to parse URL from /api/storage' error in production
- Import fetchStorageData directly from lib/storage
- Enable static rendering for /drive page
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <[email protected]>
|
| |
|
|
|
|
|
|
|
|
| |
- Import fetchStorageData from lib/storage instead of duplicating logic
- Simplify API route by removing duplicate implementation
- Maintain same API response format
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <[email protected]>
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
- Add /api/storage endpoint that fetches live data from fctdrive drive-size and df commands
- Implement 10-second caching to avoid excessive system calls
- Create StorageUsage component with two-color bar showing active drive usage vs total disk usage
- Update drive pages to fetch and pass storage data server-side
- Replace hardcoded storage values with real system data
- Display active drive usage (blue), other disk usage (gray), and available space
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <[email protected]>
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
- Add fctdrive stat command to get blob IDs from paths
- Add Drive_stat function to drive_server.ts for backend integration
- Create /download/[...path] endpoint that redirects to /blob/{blobId}
- Update UI file links to use /download/ paths instead of direct blob links
- Update permalinks to use immutable /blob/{blobId} URLs
- Fix host preservation in redirects for remote access
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <[email protected]>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
- Add Drive_rename function to drive_server.ts for backend integration
- Create /api/rename endpoint with proper authentication and error handling
- Update handleRename function to call API instead of placeholder TODO
- Test rename functionality for both files and directories
- Update CLAUDE.md to note fctdrive is available in PATH
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <[email protected]>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
- New /api/mkdir endpoint for authenticated folder creation
- Create Folder button positioned left of Upload Files button
- Modal dialog with input validation and keyboard shortcuts
- Proper error handling and success notifications
- Uses existing CLI Drive_mkdir function for backend operations
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <[email protected]>
|
| |
|
|
|
|
|
|
|
|
| |
- Add URL decoding in upload endpoint for path parameter
- Add URL decoding for path segments in drive page navigation
- Ensures proper handling of directories/files with spaces and unicode chars
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <[email protected]>
|
| |
|
|
|
|
|
|
|
|
|
| |
- Add /api/delete endpoint with authentication checks
- Update DriveDirectoryClient to use actual delete API
- Replace placeholder TODO with working delete functionality
- Include proper error handling and user feedback
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <[email protected]>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Create new /api/upload endpoint for file uploads with path query parameter
- Simplify DriveDirectoryClient upload logic to use POST instead of PUT
- Remove complex path encoding and AUTH header handling from client
- Remove unused /api/fs endpoint entirely - no longer needed
- Maintain all existing upload functionality (file size limits, auth, etc.)
- Test uploads to root directory and subdirectories - both working perfectly
Benefits:
- Cleaner API surface with single-purpose endpoints
- Simpler client code with less complexity
- Better separation of concerns
- Maintained backward compatibility for user experience
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <[email protected]>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Remove old UI components: file-drive.tsx, history-view.tsx
- Remove unused API endpoints: /api/tree, /api/log, /api/fs/route.ts
- Rename /v2 routes to /drive routes for cleaner URLs
- Rename V2* components to Drive* components (V2DirectoryView -> DriveDirectoryView, etc.)
- Update all breadcrumb and navigation references from /v2 to /drive
- Redirect root path to /drive instead of old UI
- Keep /api/fs/[...path] and /api/directories for uploads and move functionality
- Preserve Drive_* server functions for potential future use
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <[email protected]>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
- Convert page components to async server components using Drive_ls()
- Split V2DirectoryView into server component (data processing) and V2DirectoryClient (interactivity)
- Remove client-side useEffect + fetch API calls for directory listing
- Data now loaded server-side and passed as props for better static rendering
- Mutations still use page refresh to show updated data
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <[email protected]>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Add /v2 route structure with dynamic nested directory pages
- Create V2DirectoryView component with breadcrumb navigation
- Add V2MoveDialog with directory search and flat list display
- Implement single upload button for current directory context
- Add /api/directories endpoint for move dialog directory picker
- Fix breadcrumb decoding to show readable names instead of URL encoding
- Add file sorting: directories first, then files, all alphabetically
- Improve performance by loading only current directory contents
- Add ScrollArea component and @radix-ui/react-scroll-area dependency
- Ensure proper URL encoding/decoding flow to prevent malformed paths
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <[email protected]>
|
| |
|
|
|
|
|
|
|
|
| |
- Added DriveLogEntry type for log entries with timestamp, log_id, email, action, path, blob_id, size
- Implemented Drive_log function that executes fctdrive log and parses tab-separated output
- Created /api/log GET endpoint that returns JSON array of all log entries
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <[email protected]>
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
- Remove FileItem interface and 300+ lines of mock data
- Eliminate transformTreeNodes() conversion function
- Update component to use DriveTreeNode[] directly
- Rename /api/list to /api/tree with server-side tree building
- Add Drive_tree() function and DriveTreeNode types
- Significantly reduce code complexity and memory usage
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <[email protected]>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Created unified /api/fs/[...path] endpoint with full REST methods:
- GET: List directory contents or file info
- POST: Create directories using Drive_mkdir()
- PUT: Upload files with multipart form data
- DELETE: Remove files/directories using Drive_remove()
- Added /api/fs route for root directory listing
- Added Drive_mkdir() function to drive_server.ts using fctdrive mkdir command
- Removed legacy /api/delete and /api/upload endpoints
- Updated CLAUDE.md with comprehensive API documentation and examples
- All endpoints support authentication with AUTH: 1 header in development
- Proper error handling, file size validation, and cache revalidation
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <[email protected]>
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
- Added Drive_remove() function to drive_server.ts using fctdrive remove command
- Created /api/delete route with POST method, JSON body input, and authentication
- Added development mode AUTH header bypass for testing authenticated endpoints
- Updated CLAUDE.md with API testing instructions using AUTH: 1 header
- Endpoint validates user authentication and upload permissions before deletion
- Returns success response even for non-existent files (CLI ignores them)
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <[email protected]>
|
| |
|
|
|
|
|
|
|
|
| |
- Added /api/list route that returns all files/directories recursively from root
- Increased maxBuffer to 50MB in Drive_ls to handle large directory listings
- Fixes ENOBUFS error when listing entire drive contents
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <[email protected]>
|
| | |
|
| | |
|
| | |
|
| |
|