- Restore nickname field in modify.php SQL update query
- Remove disabled attribute from nickname input in modifypage.php template
- Allow users to update their nickname through profile modification
- Maintain existing HTML entity encoding for security
Add a copy button to markdown code blocks in the problem view for easier code snippet copying. The button appears in the top-right corner of code blocks and provides visual feedback on copy success or failure. This improves user experience by eliminating the need to manually select and copy code.
- Increase min-height and line-height to 32px for consistent sizing
- Remove top and bottom padding to improve vertical centering
- Maintain existing width and margin properties
- Replace custom semantic-ui dropdown component with standard HTML select element
- Simplify JavaScript by using native event listener instead of semantic-ui dropdown API
- Remove unnecessary dropdown initialization and selection setting code
- Maintain same functionality while reducing complexity and dependency on semantic-ui
- Replace synchronous git pull execution with background job system
- Add AJAX endpoints for starting and monitoring git pull operations
- Implement process tracking using PID files and exit code files
- Add real-time log display with tail reading functionality
- Improve user experience with non-blocking UI and status updates
- Maintain backward compatibility with existing sudo permissions setup
- Remove hardcoded sudo username and password from gitpull.php
- Switch to using `sudo git pull` with NOPASSWD sudoers configuration
- Add helpful error message with setup instructions when git pull fails
- Improve security by eliminating password storage in source code
- Changed git pull execution from POST-only to always run on page load
- Replaced sudo with su for better user switching in command execution
- Removed form submission in favor of direct execution with retry button
- Simplified UI by always showing result message and conditionally showing retry button
- Add new `gitpull.php` page for manual git pull execution by administrators
- Remove automatic git pull on homepage visit to prevent unintended updates
- Include git pull link in admin navigation menu for easy access
- Secure interface with admin-only access and sudo credentials configuration
- Relocate hardness dropdown from left to right side of filter controls
- Change form submission behavior to update URL parameters directly
- Preserve selected hardness value on page reload
- Remove page parameter when hardness changes to reset pagination
- Improve visual alignment and spacing in filter interface
Introduce a mechanism to automatically pull the latest changes from the git repository when the homepage is accessed. This ensures the application stays up-to-date without manual intervention. The feature includes a lock file (`/tmp/hustoj_git_pull.lock`) to prevent excessive pulls, limiting execution to at most once every 60 seconds. The git pull command runs in the background to avoid blocking the page load, with output logged to `/tmp/hustoj_git_pull.log`.
- Added hardness filter dropdown in problemset UI with options 1-8
- Implemented server-side hardness parameter validation and filtering
- Refactored query parameter handling to use $filter_params array
- Updated SQL queries to use parameter binding for both search and hardness filters
- Fixed pagination to include hardness parameter in URL
- Improved code organization by centralizing filter parameter management