Commit Graph

856 Commits

Author SHA1 Message Date
liguang
03ccd285be fix(user-management): 优化用户密码更新逻辑并调整问题编辑功能
- 在更新用户信息时,对密码字段进行加密处理
- 移除无密码更新时的密码字段,保持原密码不变
- 调整问题编辑功能,使用专门的编辑路由
- 优化用户表格组件中的编辑逻辑,区分用户和问题类型
2025-06-21 11:23:52 +08:00
liguang
4e1aed4c61 refactor(usermanagement): 修改教师布局权限控制
- 将 TeacherLayout 组件的允许角色从 ["ADMIN", "TEACHER"] 修改为仅 ["ADMIN"]
- 此修改限制了只有管理员可以访问教师管理功能
2025-06-21 10:50:58 +08:00
liguang
b3525aee7d refactor(usermanagement): 优化用户管理模块的类型定义和数据处理
- 为 adminActions、guestActions、problemActions 和 teacherActions 文件中的函数添加了明确的类型注解
- 更新了函数参数和返回值的类型,提高了代码的可读性和可维护性
- 在相关页面组件中添加了类型注解,明确了数据结构
- 移除了未使用的 Separator 组件导入
2025-06-20 20:26:28 +08:00
liguang
759aaae94f refactor: 删除未使用的用户管理相关代码
- 移除 user-management 组件
- 删除 Problem 和 User 相关类型定义
- 清理不再需要的配置文件引用
2025-06-20 17:09:47 +08:00
liguang
360399bdfb refactor(user-management): 重构用户管理系统
- 移除原有的 user 和 problem API,改为使用 Prisma 直接操作数据库
- 新增 admin、teacher、guest 和 problem 的 CRUD 操作
- 优化用户表格组件,支持角色选择和难度选择
- 重构页面组件,使用 Prisma 查询数据
- 更新数据库迁移,增加 TEACHER 角色
2025-06-20 15:29:50 +08:00
liguang
db8051d1d8 refactor(user-management): 优化用户管理功能和界面
- 为 toast 消息添加 1500ms 持续时间
- 修复管理员、学生和教师表单的字段和验证规则
- 优化问题表格的列配置
- 调整用户表格的样式和布局
2025-06-19 17:52:52 +08:00
liguang
42e576876e feat(user-management): 实现用户管理和题目管理功能
- 新增用户管理和题目管理的 API 接口
- 实现用户管理和题目管理的后端逻辑
- 添加保护布局组件,用于权限控制
- 创建用户管理的不同角色页面
- 移除不必要的数据文件和旧的页面组件
2025-06-19 16:13:50 +08:00
liguang
6bd06929a7 feat(admin): 新增管理员管理功能
- 新增管理员管理页面和相关 API
- 实现管理员用户的增删改查功能
- 添加用户管理相关的 API 和页面组件
- 更新 VSCode 设置,添加数据库连接配置
2025-06-18 17:52:42 +08:00
liguang
6df1f64376 refactor(layout): 重构侧边栏和用户导航组件
- 更新了 AppSidebar、NavMain 和 NavUser 组件的结构和样式
- 添加了新的导航项和图标
- 调整了用户信息的展示方式
- 优化了侧边栏的布局和样式
2025-06-17 13:44:42 +08:00
3df53658e8 feat(ui): add all Shadcn components 2025-06-16 17:49:25 +08:00
42526cdf31
Merge pull request #25 from massbug/fix-pr-23
Fixes #23
2025-06-16 17:02:33 +08:00
0b9c338de4 refactor(run): rename trim to isTrim and simplify output comparison
- Change boolean parameter name from 'trim' to 'isTrim' for better clarity
- Simplify output comparison logic by inlining ternary expression
2025-06-16 16:59:48 +08:00
dioxide
7f79b901b7 Add trim function to ignore the whitespace character.
Add a trim key to mark whether the answer should be trimmed.
Add a judgement to determine whether the trim should work.
2025-06-15 17:16:39 +08:00
941f1a74fa feat: replace dockview with flexlayout-react 2025-06-13 14:03:17 +08:00
03f150214d chore(prisma): make TestcaseResult.output nullable in migration 2025-05-16 10:43:48 +08:00
23a7e2e69e fix(prisma): make TestcaseResult.output field optional 2025-05-16 10:42:20 +08:00
9443ab6d6d refactor(api): extract OpenAI client to shared module 2025-05-14 22:30:45 +08:00
1c031ce24e refactor(judge-button): migrate run code button to standalone component
- Replace RunCodeButton with new JudgeButton component
- Use problem-specific stores instead of playground stores
- Implement new judge toast notification system
- Simplify authentication check logic
- Utilize new TooltipButton component
2025-05-14 17:04:03 +08:00
4ca6840bbd refactor(problems): consolidate judge status toast
- Migrate status toast from shared hooks to problems feature
- Remove deprecated show-status-toast.tsx and status.ts
- Implement self-contained JudgeToast component with built-in status mapping
2025-05-14 16:09:13 +08:00
9003e4b5a4 refactor(components): simplify BackButton by using TooltipButton 2025-05-13 17:38:26 +08:00
2e74ffbac3 refactor(config): migrate editor options to standalone editor config
- Rename `editor-language.ts` to `editor.ts`
- Update interface from `IEditorConstructionOptions` to `IStandaloneEditorConstructionOptions`
- Keep all existing editor options unchanged
2025-05-13 16:57:35 +08:00
49419654a0 feat(problemset): enhance header component with back button and className prop
- Replace problem-header.tsx with new header.tsx implementation
- Add BackButton functionality to navigate to home page
- Make className prop configurable using cn utility
- Maintain existing user avatar functionality
2025-05-13 16:47:11 +08:00
9766dea138 refactor(back-button): relocate and rename back button component
- Move from features/problems/components to shared components directory
- Rename NavigateBackButton to simpler BackButton
- Update component interface naming to BackButtonProps
- Keep all existing functionality intact
2025-05-13 16:43:01 +08:00
ad8a3e646e feat(code-panel): add code editor panel components
- Add CodePanel component as container for editor interface
- Add CodeContent component with Prisma data fetching
- Include CodeContentSkeleton for loading state
- Implement ProblemEditor integration with templates
2025-05-13 16:37:35 +08:00
33930e7a33 chore(utils): remove unused utility functions
- Remove getPath function (moved to problem-editor store)
- Remove getDifficultyColorClass function (unused)
- Keep only core cn utility function
2025-05-13 16:34:28 +08:00
bcdd72317c feat(store): add problem editor state management
- Create problem-editor store with Zustand
- Manage editor state including problem, language, value and path
- Implement localStorage persistence for editor content
- Provide utility functions for language and value retrieval
2025-05-13 16:31:38 +08:00
5aec2ec323 refactor(mdx-render): simplify theme configuration and change export style
- Remove custom Monaco theme imports
- Use github default themes for rehypePrettyCode
- Change component export from default to named export
2025-05-13 16:27:46 +08:00
ba1937ecbb refactor(problems): update ProblemHeader import path to new location 2025-05-13 16:14:57 +08:00
aec8393d2d feat(dockview): export Dockview component and create ProblemDockview wrapper
- Export Dockview component from src/components/dockview.tsx to make it reusable
- Create new ProblemDockview component in src/features/problems/components/dockview.tsx that:
  - Integrates with next-intl for locale handling
  - Connects to problem-dockview store
  - Wraps Dockview with problem-specific configuration
  - Adds locale-based key for proper re-rendering
- Maintain existing Dockview functionality including:
  - Layout persistence
  - Panel management
  - API handling
2025-05-13 16:08:33 +08:00
148ae677d7 refactor(problemset): move components to separate files and improve structure
- Move ProblemsetHeader component from 'problemset-header' to 'header'
- Extract problemset table logic into dedicated ProblemsetTable component
- Add Suspense and skeleton loading for better UX
- Update layout and page structure
2025-05-13 16:03:46 +08:00
0e3daefe48 feat(config): add LANGUAGES constant for language enum values 2025-05-13 16:00:52 +08:00
f6ed0baaf0 refactor(prisma): simplify prisma client initialization and remove caching
Removed all caching and logging functionality from prisma.ts, keeping only
the basic Prisma client initialization logic. This includes:
- Removal of getProblems, getCachedProblems, getProblem, getCachedProblem functions
- Removal of related logger and cache imports
- Simplified the global prisma client instantiation
2025-05-13 15:59:57 +08:00
f9cbc5e085 refactor(code-toolbar): standardize component exports and simplify reset logic
- Changed all toolbar action components from named exports with curly braces to default exports
- Simplified ResetButton by moving template logic to useProblemEditorActions hook
- Updated useProblemEditorActions to handle template selection internally using store data
- Renamed problem-editor-store import to problem-editor for consistency
2025-05-13 15:56:28 +08:00
eea16a8224 feat(problems): add localization support for problem descriptions and solutions
- Replace cached problem data with direct Prisma queries for localized content
- Implement locale-based content selection for both descriptions and solutions
- Refactor skeleton loading components structure
- Change all exports from named to default exports
2025-05-13 15:36:07 +08:00
ad2aca2f67 refactor(language-selector): migrate to new location and implementation
- Remove old language selector from `src/components/features/playground/workspace/editor/components`
- Add new implementation in `src/features/problems/code/components/toolbar/controls`
- Update toolbar exports to include the new selector
2025-05-13 15:18:59 +08:00
cea0027799 refactor(shiki): migrate to shiki/core with lazy initialization
- Replace shiki with shiki/core for better tree-shaking
- Change highlighter initialization to explicit theme/lang imports
- Export getHighlighter function instead of direct highlighter instance
- Add error handling for uninitialized highlighter access
2025-05-13 14:48:32 +08:00
2efdc21419 refactor(i18n): replace language-settings with locale-switcher
- Replace react-world-flags with next/image for better optimization
- Simplify locale handling logic and remove unused getUserLocale
- Rename component to be more descriptive (language-settings -> locale-switcher)
- Update all references to use the new component
- Add proper SVG flag assets for supported locales
- Remove react-world-flags dependency from package.json
2025-05-13 00:19:01 +08:00
2e2e0315a8 refactor(hooks): remove theme config and simplify theme hook
- Delete src/config/monaco-theme.ts and src/types/monaco-theme.ts
- Simplify useMonacoTheme hook to directly return theme strings
- Format use-mobile.ts with consistent semicolons and quotes
2025-05-12 21:19:05 +08:00
01b72209ae refactor(i18n): migrate locale configuration to generated types
- Replace hardcoded locale strings with generated Locale enum from client
- Update cookie key name to be more specific (LOCALE_COOKIE_NAME -> JUDGE4C_LOCALE_KEY)
- Rename defaultLocale to DEFAULT_LOCALE for consistency
- Add 'server-only' imports to ensure server-side usage
- Simplify locale validation using Object.values(Locale)
- Clean up accept-language header parsing logic
2025-05-12 21:07:43 +08:00
4cc6456151 refactor(prisma): simplify schema and remove zod-prisma-types
- Reorganized Prisma schema structure with simplified models and relations
- Removed zod-prisma-types generator as it's no longer needed
- Consolidated problem content types into a single ProblemLocalization model
- Simplified testcase and template structures
- Removed unused prisma types file
2025-05-12 19:41:28 +08:00
15b3f630d5 refactor(prisma): simplify schema and remove zod-prisma-types
- Reorganized Prisma schema structure with simplified models and relations
- Removed zod-prisma-types generator as it's no longer needed
- Consolidated problem content types into a single ProblemLocalization model
- Simplified testcase and template structures
- Removed unused prisma types file
2025-05-12 18:32:46 +08:00
0e9207bfce chore(scripts): remove --turbopack flag from dev script 2025-05-12 11:22:31 +08:00
9ec8768393 chore(shiki): convert function to arrow function 2025-05-09 09:42:24 +08:00
baf377b722 refactor(loading): change to named export and arrow function
- Switch from default export to named export
- Convert component to arrow function
- Remove unused props parameter
2025-05-09 09:40:25 +08:00
7e45010487 fix(styles): adjust tabs overflow container height in abyss theme
Changed height property from 'unset !important' to '100%' for .dv-tabs-overflow-container and .dv-tabs-overflow-dropdown-default in the abyss-spaced theme to fix layout issues.
2025-05-08 11:27:10 +08:00
25fd9b5f46 chore(prisma/migrations): add migration for multilingual problem support 2025-05-07 21:09:35 +08:00
cfbbdbf821 feat(prisma/schema): add multilingual support for problem descriptions and solutions
BREAKING CHANGE:
- Removed `description` and `solution` fields from Problem model
- Added new models `ProblemDescription` and `ProblemSolution` with language support (EN/ZH)
- Updated seed data structure to support multilingual content
- Requires database migration and data migration from old structure
2025-05-07 21:04:46 +08:00
f0beb69b2c fix(page): add missing return statement in RootPage component 2025-05-07 16:42:39 +08:00
f93224f56e chore(components): remove unused problem-related components
- Delete footer.tsx from problem/description
- Delete solution.tsx from problem/description
- Delete header.tsx from problem/workspace/editor/components
2025-05-07 14:59:17 +08:00
b67b13d7bf refactor(route): rename [id] to [problemId] in problems route 2025-05-07 14:59:17 +08:00