Commit Graph

105 Commits

Author SHA1 Message Date
Tomas Dvorak 19e7ed6ea1 feat(ui): enhance file browser drag-and-drop and move functionality
Docker Images / Build and push (push) Failing after 15s
Refactor the file browser to improve the user experience and reliability of
folder management and item movement.

- Implement a dedicated drag handle wrapper to improve drag-and-drop
  precision and visual feedback.
- Improve drag-and-drop event handling to prevent accidental triggers
  and ensure correct visual states during drag operations.
- Refactor the move modal logic and styling for better clarity and
  usability.
- Fix folder menu closing logic to correctly handle outside clicks.
- Update CI workflow to ensure Docker is installed before building
  images.
2026-05-10 10:02:02 +02:00
Tomas Dvorak 8336c76705 fix(editor): correct templates, library import, and custom tools
- Move custom tools (checkbox, correct/incorrect, star) to floating
  canvas toolbar above native Excalidraw tools
- Fix correct/incorrect toggle: square text element cycling empty/
  check/cross with debounce to prevent double-firing
- Fix star rating: updates displayed stars on click
- Remove broken infinity-arrow feature entirely
- Fix autosave false "unsaved" on load by skipping first change
  after initial data normalization
- Fix presentation mode: remove opaque overlay blocking canvas,
  add pointer-events to only toolbar/thumbnails
- Fix to-do list add: full text area clickable via customData,
  correct spacing when inserting new tasks
- Add customData to all template "Add..." text elements so every
  template add button + text pair is fully clickable
- Expand generic add handler with role-specific creation for
  brainstorm, retro, swot, storymap, wireframe, timeline, api,
  sitemap, and persona templates
- Fix library import from libraries.excalidraw.com via #addLibrary
  hash: extract into reusable callback, listen to hashchange events,
  and offset imported elements to viewport center

Generated with [Devin](https://cli.devin.ai/docs)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-05-10 10:01:06 +02:00
Tomas Dvorak 910546230d refactor(editor): improve type safety and optimize build chunks
Docker Images / Build and push (push) Failing after 21s
Refactor the Editor component to replace `any` types with explicit interfaces for Excalidraw props, library items, and elements, improving type safety and developer experience.

Additionally, update the Vite configuration to implement manual chunking for large dependencies like Excalidraw, React, and Zustand to optimize bundle loading and improve build performance.
2026-05-09 19:27:36 +02:00
Tomas Dvorak 190be65e4f feat(ui): implement folder management and enhance editor functionality
Implements full folder CRUD operations in the file browser, including
renaming, deleting, and drag-and-drop reordering. Enhances the editor
with improved autosave logic and new template role toggling.

- Add folder management (create, update, delete, reorder) to API and UI
- Implement drag-and-drop functionality for folders in FileBrowser
- Add folder context menus and improved styling for Editor and FileBrowser
- Optimize editor autosave to only trigger on actual data changes
- Add support for 'correct-incorrect' template roles in the editor
2026-05-09 18:54:57 +02:00
Tomas Dvorak 71dda9d45d feat(editor): implement autosave functionality and enhance UI
Docker Images / Build and push (push) Failing after 17s
Implements an autosave mechanism to prevent data loss by periodically
sending snapshots of the drawing to the backend. This includes new
API endpoints on the server and updated frontend services.

Additionally, improves the editor experience with:
- Enhanced CSRF protection and origin validation in the backend.
- Fix for React "Maximum update depth exceeded" error during scene
  mutations using a mutation guard.
- New presentation slide thumbnails and navigation UI.
- Expanded template library with various brainstorming layouts.
- Refined dashboard statistics and layout styling.
- Improved sidebar logo using SVG for better scaling.
2026-05-02 15:15:37 +02:00
Tomas Dvorak b79c214ad2 style(ui): refactor component styling and remove hand-drawn aesthetic
Refactor the frontend styling to use consistent design tokens and remove the hand-drawn/rotated aesthetic in favor of a cleaner, more standard UI.

- Replace hardcoded colors and border radii with CSS variables (e.g., `--default-border-color`, `--border-radius-lg`).
- Remove `transform: rotate(...)` and manual `box-shadow` offsets from various components (Sidebar, Dashboard, TemplatePicker, etc.).
- Update `Dashboard` to use a standard `ProgressBar` instead of a hand-drawn SVG chart.
- Standardize font families to use `--ui-font`.
- Clean up `TemplatePicker` logic to properly handle element grouping.
- Remove stale test result files and update `.last-run.json`.
2026-05-02 12:50:56 +02:00
Tomas Dvorak 462a70933d feat(ui,api,db): implement notifications and custom templates with hand-drawn aesthetic
This commit introduces a significant update to both the frontend and backend, focusing on enhanced user engagement and a consistent visual identity.

Key changes include:

- **Frontend UI/UX Refactor**:
  - Implemented a "hand-drawn" aesthetic across the entire application using CSS overrides, custom SVG charts, and specific border/shadow styles to match the Excalidraw experience.
  - Added a new notification system in the Header to display user updates.
  - Enhanced the Template Picker with more variety and improved interaction models.
  - Added a "Presentation Mode" in the Editor.
  - Improved Dashboard visualizations with hand-drawn style sparklines and charts.
  - Added modal dialogs for creating drawings and templates with custom names.

- **Backend & API Enhancements**:
  - Implemented full CRUD support for custom templates, allowing users to save their drawings as reusable templates.
  - Added a notification service with endpoints to list, mark as read, and mark all as read.
  - Updated the API client to handle more robust JSON responses and error states.
  - Improved CORS/Origin validation in the HTTP middleware to handle proxy headers (`X-Forwarded-Host`, `X-Forwarded-Proto`) more reliably.

- **Database & Infrastructure**:
  - Added a new PostgreSQL migration for the `notifications` table.
  - Updated the data models in the workspace to support templates (including snapshot storage) and notifications.
  - Updated `.gitignore` to exclude graphify cache and AST files.
2026-05-01 15:07:38 +02:00
Tomas Dvorak f3f9e99a97 refactor(frontend): improve type safety and migrate to ESLint 9
Migrate the frontend to ESLint 9, add `eslint.config.mjs`, and replace various `any` types with more specific or safer alternatives across the codebase.

- Update `package.json` with new ESLint and TypeScript-ESLint dependencies
- Replace `any` with `Record<string, unknown>` or specific types in `TemplatePicker`, `Editor`, and `FileBrowser`
- Improve error handling in `TeamSettings` and `Templates` using type guards
- Add explicit type imports for Excalidraw elements in `Editor.tsx`
- Refactor `Modal.tsx` for cleaner conditional logic
- Add `check` script to `package.json` for type checking
2026-04-29 13:30:24 +02:00
Tomas Dvorak ef0b519058 update 2026-04-29 11:31:56 +02:00
Tomas Dvorak 5fae9779ad ci/cd 2026-04-28 10:12:30 +02:00
Tomas Dvorak 5657ed74e3 update ci/cd 2026-04-27 11:23:56 +02:00
Tomas Dvorak f532bdacad fix: force go.mod to 1.23 2026-04-27 10:20:22 +02:00
Tomas Dvorak 9eeadfaf50 fix: lock go.mod to go 1.23 (avoid go mod tidy reverting it) 2026-04-27 09:54:33 +02:00
Tomas Dvorak b53159d643 fix: revert go.mod to go 1.23 (was reverted to invalid 1.25.7) 2026-04-27 09:47:19 +02:00
Tomas Dvorak 338dbcc20e fix: convert cf-kv and excalidraw-libraries from submodules to regular files
- Remove stale cloudflare-worker submodule entry from .gitmodules
- Remove .git dirs from cf-kv and excalidraw-libraries so Git tracks them as regular files
- Fixes 'No url found for submodule path cf-kv' CI error
2026-04-27 09:37:49 +02:00
Tomas Dvorak 88c2969a96 Update 2026-04-27 09:18:48 +02:00
Tomas Dvorak 110a73364b fix: regenerate package-lock.json for npm ci sync 2026-04-27 09:18:07 +02:00
Tomas Dvorak 89b9390c14 feat: full project sync - CI fixes, frontend, workspace API, and all changes 2026-04-27 09:08:07 +02:00
Tomas Dvorak a07fca997e fix: CI/CD test failures and invalid Go version
- Fix go.mod Go version from invalid 1.25.7 to 1.23
- Fix Dockerfile golang image from 1.25 to 1.23
- Add window.matchMedia mock for jsdom themeStore tests
- Exclude e2e/ from Vitest to prevent Playwright test conflicts
- Add frontend test step to both CI workflows
2026-04-27 09:04:30 +02:00
Yuzhong Zhang eadacd9e66 更新 Dockerfile 和 GitHub Actions 工作流,支持多平台构建。添加 QEMU 设置以支持不同架构,修改 Dockerfile 以使用动态平台参数构建前后端应用。 (#14) 2025-08-25 14:50:01 +08:00
doubleJazzCat a426521beb Update .env.example.dex (#12) 2025-08-25 13:15:26 +08:00
Yuzhong Zhang c569365fbd Merge pull request #10 from BetterAndBetterII/cursor/fix-dex-config-secret-reading-from-env-40cb
Fix dex config secret reading from env
2025-08-19 03:05:51 +08:00
Cursor Agent 9d476eeff9 Use environment variable for Excalidraw OIDC client secret
Co-authored-by: 123090848 <123090848@link.cuhk.edu.cn>
2025-08-18 19:03:48 +00:00
Yuzhong Zhang 69a0677ef6 更新 README 文件中的示例命令,将 .env.example 文件重命名为 .env,以确保用户能够正确初始化环境配置并启动应用程序。 2025-08-18 22:01:40 +08:00
Yuzhong Zhang 0e9e9b3f43 Merge pull request #8 from BetterAndBetterII/oidc 2025-08-18 21:43:31 +08:00
Yuzhong Zhang 45803eb6f1 Merge branch 'oidc' of github.com:BetterAndBetterII/excalidraw-full into oidc 2025-08-18 21:35:11 +08:00
Yuzhong Zhang c09d482355 update upstream 2025-08-18 21:35:02 +08:00
BetterAndBetterII 118109ca88 change image tag 2025-08-18 13:33:48 +00:00
Yuzhong Zhang 020caa2fb6 update 2025-08-18 21:32:55 +08:00
Yuzhong Zhang eba6947505 更新head 2025-08-18 21:19:37 +08:00
BetterAndBetterII e218aeb6b3 更新 README 文件中的密码哈希生成命令,修正 .env 文件中 ADMIN_PASSWORD_HASH 的更新方式,确保密码哈希被正确引用。此更改提高了文档的准确性和可用性。 2025-08-18 20:52:53 +08:00
Yuzhong Zhang 5ce2d8604d Update handlers/auth/auth.go
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2025-08-18 20:52:49 +08:00
BetterAndBetterII 959f04400c 更新 .gitignore 文件以忽略 .htpasswd 文件,添加简单密码认证的使用说明到 README 文件中,包含示例命令和配置步骤,增强文档的可读性和实用性。 2025-08-18 20:52:41 +08:00
BetterAndBetterII 3f10e749aa 更新 docker-compose 配置,将 Excalidraw 服务的镜像版本从 main 更改为 latest,以确保使用最新的镜像版本。 2025-08-18 20:52:20 +08:00
BetterAndBetterII 90452a472e 更新 docker-compose 配置,修正 Excalidraw 服务的端口映射,并将镜像版本从 latest 更改为 main,以确保使用最新的稳定版本。 2025-08-18 20:52:17 +08:00
BetterAndBetterII 6fb8f69497 删除架构文档和改造计划文档,清理不再需要的文件,以简化项目结构和文档管理。 2025-08-18 20:52:13 +08:00
BetterAndBetterII d27df30788 更新 .env.example 文件,移除 OIDC 相关配置,简化环境变量设置,以反映最新的认证流程和配置要求。 2025-08-18 20:52:02 +08:00
Yuzhong Zhang 2e368455ab 重构认证流程,合并 GitHub 和 OIDC 登录路由,更新回调 URL,简化环境变量配置,移除旧的 Dex 相关代码,增强代码可读性和维护性。更新文档以反映新的认证流程和环境变量设置。 2025-08-18 20:51:45 +08:00
BetterAndBetterII aa8e9ed4d0 更新 .env 示例文件以修正 OIDC 重定向 URL,添加可选的管理员用户名注释。增强 OIDC 登录流程,生成随机状态并在 Cookie 中存储,验证状态以提高安全性。此更改提升了 OIDC 认证的安全性和灵活性。 2025-08-18 20:51:01 +08:00
BetterAndBetterII bff23e9117 更新 .env 示例文件以包含新的管理员用户 ID 和密码哈希,调整 docker-compose 配置以支持健康检查和网络设置,优化 Dex 配置以使用环境变量。此更改增强了 OIDC 认证的灵活性和安全性。 2025-08-18 20:50:56 +08:00
Yuzhong Zhang 4da39f2d6a 添加 OIDC 认证支持,更新环境变量配置,重构 Docker Compose 文件,移除旧的 Dex 初始化脚本,优化用户模型,更新前端登录流程,支持通过 OIDC 登录。 2025-08-18 20:50:43 +08:00
Yuzhong Zhang fa80805bb1 添加 Dex 认证配置和初始化脚本,创建 .env 示例文件,更新 docker-compose 配置以支持 OIDC 认证 2025-08-18 20:46:21 +08:00
Yuzhong Zhang cd2662b349 更新主机地址替换逻辑,支持通过环境变量配置后端主机,增强反向代理和跨域支持。 2025-07-09 13:44:27 +08:00
Yuzhong Zhang 642fa94ed1 fix branch error 2025-07-09 13:18:07 +08:00
Yuzhong Zhang 176ed9cd51 fix collb 2025-07-09 13:16:04 +08:00
Yuzhong Zhang cfa033bb48 update 2025-07-09 12:40:04 +08:00
Yuzhong Zhang 04fb0dc69d fix text 2025-07-09 12:39:45 +08:00
Yuzhong Zhang b504e76da9 update cf kv store config guide 2025-07-09 11:47:41 +08:00
Yuzhong Zhang 3fbf1b3448 fix window.crypto.randomUUID 2025-07-09 11:11:56 +08:00
Yuzhong Zhang ff8e64cccb security fix 2025-07-08 21:31:02 +08:00