120 Commits

Author SHA1 Message Date
ea6d1b218c Add sample images section for quick background removal experience
- Add horizontal scrollable sample images gallery below upload area
- Implement click handler to load and process sample images
- Add 10 sample images with 1024x1024 resolution for better quality
- Style thumbnails with hover effects and centered layout
- Ensure symmetric padding and responsive design
2025-12-21 19:24:36 +08:00
37350a07e1 Remove notification bell icon from homepage header 2025-12-21 18:39:19 +08:00
bbf4527a12 feat: implement client-side image compression with Canvas API
- Add imageResize utility using native Canvas API
- Compress images to max 1024x1024px before upload
- Support contain mode for proportional scaling
- Integrate compression into file upload, drag-drop, and URL loading flows
- Optimize memory management with proper URL cleanup
- Skip compression for images already below target size
2025-12-21 18:34:06 +08:00
c3d9263aac enhance auth modals UX and add download login check 2025-12-21 17:45:03 +08:00
f8da7e84b6 add modal login/signup and unified UserMenu component for consistent user 2025-12-21 17:31:23 +08:00
3cfb936b54 update homepage styling and layout 2025-12-21 16:46:55 +08:00
d8ee975615 fix: align image container sizing and page width consistency 2025-12-21 16:20:52 +08:00
cf2c2022de fix: align image container sizing and page width consistency
- Set tool page max-width to 1400px to match remove_background page
- Fix single image view to use same sizing logic as comparison view
- Add dynamic size calculation for processing images to match result view
- Ensure images maintain aspect ratio instead of filling container width
2025-12-21 14:35:55 +08:00
8a4431075a Use free API endpoint for background removal tool (no authentication required)
- Switch to remove_background_from_file_free endpoint
- Remove auth headers and credentials from API call
2025-12-20 21:45:24 +08:00
6292b8b510 feat: add homepage background removal tool and fix whitelist multipart support
- Add HomePage.vue with background removal functionality
- Fix whitelist service to support multipart/form-data file uploads
- Remove unused imports
2025-12-20 21:17:06 +08:00
1d20385e96 Move menu management and settings to user dropdown menu
- Relocate Menu Management and Settings from sidebar to user dropdown menu in header
- Remove Profile menu item from user dropdown (not currently used)
- Remove Menu Management and Settings from default sidebar menu items
- Update menu filtering logic to reflect new menu structure
- Improve UX by following common SaaS design patterns
- Free up sidebar space for core business functionality
2025-12-19 23:43:34 +08:00
7ecc6277bc Fix menu filtering in MenuManager for non-system users
- Update MenuManager.vue to match menu.ts filtering logic
- Non-system users should only see Tool Marketplace in Development group
- Hide App Marketplace, Node Marketplace, and Agent Marketplace for non-system users
- Restore documentation comments in menu.ts
2025-12-19 23:23:28 +08:00
5416916f0f Add documentation for default menu visibility rules
- Add comment to getDefaultMenus() explaining menu visibility filtering
- Document that pagetype/workspace menus are System User only
- Document that App/Node/Agent marketplaces are System User only
- Ensure default menu documentation matches filtering logic
2025-12-19 23:21:56 +08:00
2a9e456b83 Hide marketplace menus for non-system users
- Restrict App Marketplace, Node Marketplace, and Agent Marketplace visibility to System Users only
- Non-system users can only see Tool Marketplace in the Development group
- Update comment to reflect the actual filtering logic
2025-12-19 23:16:10 +08:00
286a9aa21e Update upload hint text to explicitly indicate image upload
- Change 'Click or drag to upload' to 'Click or drag to upload image'
- Update translation key in PublishTool.vue and PublishApp.vue
- Add new translation entry in zh-CN.json
- Improve user clarity by explicitly stating image upload requirement
2025-12-19 23:11:41 +08:00
c49fa9feee feat: implement SEO optimization with relative URLs and structured data
- Add SEO meta tags (title, description, keywords, robots)
- Add Open Graph and Twitter Card meta tags
- Add JSON-LD structured data (WebPage schema)
- Use relative URLs for og:url, og:image, and canonical links to avoid hardcoded localhost addresses in prerendered HTML
- Support internationalized keywords with English defaults and Chinese translations
- Optimize for Chinese search engines (Baidu, 360, Sogou)

This ensures SEO metadata is properly captured in prerendered static HTML files without hardcoding development server URLs.
2025-12-19 22:25:58 +08:00
bbde769b49 feat: implement prerendering to generate static HTML files 2025-12-19 19:17:19 +08:00
d1f4ea1fd2 fix: handle EXIF orientation to prevent image auto-rotation 2025-12-07 06:40:59 +08:00
64abb30172 improve login and signup page UI consistency 2025-11-23 02:39:18 +08:00
34ec42d134 Fix logout cookie deletion: remove unsupported max_age parameter 2025-11-23 02:28:26 +08:00
d599021dd5 Add user registration with jingrow cloud integration 2025-11-23 02:24:20 +08:00
03d6b988e2 fix dynamic tool route loading in production 2025-11-22 19:57:14 +08:00
932b27a08d resolve dynamic tool route loading issue in production 2025-11-22 19:46:04 +08:00
e4407392bb migrate to Pydantic v2 and optimize Caddyfile 2025-11-22 19:02:04 +08:00
84b8c22942 configure Caddy via environment variables 2025-11-22 18:18:46 +08:00
77d50c4791 Set chunkSizeWarningLimit to 2000KB to suppress build warnings for
large chunks.
2025-11-22 17:34:16 +08:00
ccf0df543e build: increase chunk size warning limit to 2000KB
Set chunkSizeWarningLimit to 2000KB to suppress build warnings for
large chunks. This is acceptable as some third-party libraries (e.g.,
naive-ui) inherently require larger bundle sizes.
2025-11-22 17:33:29 +08:00
5bf84cfefd fix: suppress Vite dynamic import warning in dynamicRoutes
Add @vite-ignore comment to dynamic import statement to suppress
Vite's warning about unanalyzable dynamic imports. This is intentional
as the component path is determined at runtime for tool routes.
2025-11-22 16:44:09 +08:00
85058f51e7 fix(router): resolve Vue Router warning for dynamic tool routes
- Improve route existence check using router.resolve() for accurate nested route detection
- Register tool routes before router is used to prevent 'No match found' warnings
- Update beforeEach guard to handle dynamic route registration more reliably
2025-11-22 00:26:56 +08:00
994df7f237 redesign upload UI with simplified button style 2025-11-22 00:13:02 +08:00
b9c64510a7 add Chinese translations for URL input feature 2025-11-22 00:01:02 +08:00
870091a835 add paste image and URL input support 2025-11-21 23:54:43 +08:00
f702b8596a feat: Add "My Published Tools" page in Development menu
- Add MyPublishedTools component aligned with MyPublishedApps functionality
- Add backend API endpoints:
  - GET /jingrow/my-published-tools (list published tools with search, pagination, sorting)
  - POST /jingrow/delete-published-tool (delete published tool)
- Add route configuration for my-published-tools page
- Add menu item "My Published Tools" under Development group
- Add Chinese translations for all tool-related text
- Remove uppercase transformation for tool_name display in list

The new page provides the same functionality as "My Published Apps":
- Search and filter tools
- Sort by various criteria
- Pagination support
- View tool details
- Delete published tools
- Publish new tool button
2025-11-21 23:29:38 +08:00
964f65dc1d feat: auto-delete node folder when deleting LocalAiNode
- Override delete method in LocalAiNode to delete corresponding node folder
- Add _delete_node_folder helper function to remove node directory
- Import shutil module for directory removal
- Node folder at ai/nodes/{node_type}/ will be automatically deleted when node record is deleted
2025-11-21 23:00:52 +08:00
5066b09af6 resolve installation progress bar jitter in marketplace pages 2025-11-21 22:44:17 +08:00
d530cd715e auto-register routes for default tools 2025-11-21 22:36:01 +08:00
f00d8be566 enable deletion for default tools and remove hide functionality 2025-11-21 22:29:44 +08:00
d5e6e4c44e Update tool zip package structure to support new directory layout 2025-11-21 22:15:11 +08:00
d654838068 update ToolDetail.vue 2025-11-21 21:38:01 +08:00
7b150fc3b2 add remove_background tool 2025-11-21 21:30:25 +08:00
47517a1e55 Improve tool UI consistency and default styling 2025-11-21 21:12:01 +08:00
83baec614d Add tool publishing and improve tool marketplace UI 2025-11-21 20:55:13 +08:00
f7d9fa01d5 Add tool publishing functionality to marketplace 2025-11-21 20:21:15 +08:00
026b2a5f50 optimize marketplace search to manual trigger and title-only query 2025-11-21 19:00:41 +08:00
a2d3094495 add Chinese translations for Tool Marketplace and update button label 2025-11-21 18:12:41 +08:00
7d6db30662 replace JSON file metadata reading with database queries 2025-11-21 18:06:49 +08:00
c01bdf9a41 Use tool_name for route generation and convert underscores to hyphens 2025-11-21 17:40:37 +08:00
ea874654bd Fix tool route registration and page refresh issues 2025-11-21 17:28:20 +08:00
82dc1bfc7e Update dynamicRoutes.ts to properly convert componentPath relative
to src/views into import path relative to current file
2025-11-21 17:09:32 +08:00
0a702791df Add tool_name display in tool marketplace and fix alignment 2025-11-21 16:59:27 +08:00