- 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