- Bump stylelint and stylelint-config-standard libs to the latest versions (security fixes)
- Remove deprecated stylelint-config-prettier module
- Scan the classic style sheet with stylelint and prettier in the github workflow
- Address stylelint and prettier issues in the classic stylesheet
- Bump prettier to 3.0.0
* Always assign locale in detect_locale()
* Bump version of Debian used in CI builds from from buster to bullseye
* Update code comment
---------
Co-authored-by: nucleogenic <nr@nucleogenic.com>
- Allow create, copy and move file operations to opt-in to overwrite
- Use this when extracting packaged properties to avoid it getting stuck in the images dir
- Better error handling in common file operation methods
- New utility method for the web app, which sorts image files into dicts where the subdir is the key
- In the web ui, display each subdir in a table nested in a details tag.
- Allow for picking destination subdir when uploading files
- Style the expandable details blocks in the images table
- Add a check for ~ paths to the is_safe_path() utility method
- File operation class methods create parent dirs if they don't exist
- Avoid stripping path from file names in several places
- Simplify prop file matching logic: check for existence of file
- Remove list_files() method which is now unused
- Rename `/config/load` endpoint to `/config/action` since it has multiple functions
- Add a `send` function to above endpoint, which triggers a download of the config file, and use it with a new Download button on the index page
- Add an option to upload to the CFG_DIR
- Improve layout of the file transfer destination web form: radio buttons before labels, and better padding between options
- Add a test for config downloading
* New class method for creating image file with python; use python file operations across the board.
Also fixed several bugs:
Added check that a file exists before copying/moving/creating
Check that parent dir exists always passed
Incorrect return message token
- Artist is Lin83
- Vector image sources, with exported bitmap favicons
- Hand drawn 16x16 and 32x32 favicons
- Pivot to using an svg image in the modern theme
- Break out generate_iso() into its own class method in file_cmds
- Add form and handling of using local file to generate iso image
- Reorder index page sections to group actions that create new image files
- Introduce a dedicated Upload page and move the upload form there
- Style the utility hyperlinks on the index page with icons and bold text
- Display the cancel / dismiss downloads link, and tweak the link text to make more sense. Note: Cancelled downloads won't remove the partially uploaded file.
- Hide image preview thumbnails. Not relevant to our usecase, and mess up the layout when it happens.
- Turn on chunk retries and tweaks chunk size to be a full MiB (probably won't make a big difference)
* Improve styling support when web authentication disabled, fix issue #1017
* Fix sudo PATH issue in Docker web container (allows easyinstall.sh to call commands in sbin)
* Fix logout button icon flicker/reload on resize
- Add a label to system name, and modify the style sheet to hide it in the modern theme
- Restore the Control Page subtitle, and hide it on small screens
- Tweak some wordings and help text
* Rebrand project to PiSCSI
- rascsi ->piscsi
- rasctl -> scsictl
- rasdump -> scsidump
- ras* -> piscsi* (rasutil -> piscsi_util, etc.)
* Refined the formatting and wording of the app startup banner
* Kept some references to rascsi and rasctl where backwards compatibility is concerned
* Point to the new github repo URL
Co-authored-by: nucleogenic <nr@nucleogenic.com>
Co-authored-by: Uwe Seimet <Uwe.Seimet@seimet.de>
- Fixed ignore patterns in .dockerignore
- Added healthchecks to backend and web containers
- Reduced Docker image sizes
- Removed RaSCSI references in various areas (e.g. rascsi -> backend)
- Added compilation-only step to easyinstall.sh
- Moved apt package lists to variables
- Revert to triggering GitHub Actions runs on push
- Updated web/frontend_checks workflow to run black and flake8 against all Python sources
- Capture log files from backend/web containers
- Fix None to float conversion bug when user agent is absent or unrecognised
* Update config for black and flake8
* Auto-format Python sources with black
* Fix issues reported by flake8
* Exclude protobuf files from black
* Address formatting feedback
- counter for refreshing network status, currently set at 10 ticks (10s with the default refresh interval)
- adding a --refresh_interval option to control the overall screen refresh rate, keeping 1000ms as the default
- Restore a 'No Media' status message for RM devices that was lost with the last PR
- Display the pretty hostname as system name in header
- Move IP and hostname down to the footer
- New endpoint for setting the pretty hostname, plus form field in the Web UI
- (unrelated) Use platform.uname() instead of shell uname
- (unrelated) Better logic for fetching the Mac HD Drivers zip file in easyinstall.sh
- Bring back the shutdown splash, with the tweak that is blanks out after 700ms
- Restore the non-Latin transliteration originally from https://github.com/akuker/RASCSI/pull/449 which was lost when the `common` package was introduced
- Bump to the latest libraries, while removing implicit dependencies from requirements.txt
- Shorter duration of the startup splash
- Reintroduce shell shutdown/reboot methods for use with the Web UI. This addresses https://github.com/akuker/RASCSI/issues/538 (the ctrlboard client will continue to use the built-in rascsi system calls which are slightly faster)
- Remove overt references to RPi. This addresses https://github.com/akuker/RASCSI/issues/990
- Other refactorings
* Expose hardware info in env string
* Improve error handling for get_properties_by_drive_name
* Verbose uname parameters.
* Close open file in introspect method
* Add error handling for when no drive name was matched with props in the database
* Docker environment fixes
* New theme for web UI
* Apply breaking wrap to filenames only
* Reduce font sizes, whitespace and padding
* Right align action fields/buttons
* Improve mobile header, hide superfluous UI elements when logged out, drop placeholders from login labels, various other adjustments
* Force footer to bottom of screen
* Show manual link to logged out users
* Reduce header text size on desktop
* Fix incorrect selector ID
* Fix selector referencing old class name
* Fix right-aligned message when images table empty
* Add CSS linter/auto-formatter
* Run Stylelint + Prettier against modern theme CSS
* Select default theme based on browser’s user agent
* Style inputs on mobile/tablet devices
* Fixes for Safari 14 on iOS + iPad OS
* Explicitly define mobile browser support, switch to bare ua-parser without user-agent wrapper
* Add LICENSE file for modern theme icons
* Improve theme selection query string/field naming.
* Remove patch workaround from Docker build
* Update log level for UAs to info
* Move Bootstrap Reboot CSS to CDN
* Account for LUN column in attached devices table
* Prevent wrapping of config forms on small viewports
* Fix Stylelint issues
* Auto-format CSS with Prettier
- New "format as" option when creating new images; removing the image creation options from easyinstall
- Bring in HFSer as new submodule providing the driver binaries; removing the Lido driver binary from this repo
- Add SpeedTools driver option
- Point to github mirror of hfdisk, since the original git server is down
- While rearranging the easyinstall options, moved the CtrlBoard option up to the main section
- Add an easyinstall script to configure Samba, while consolidating file sharing with Netatalk
* Remove deprecated critital log level from test
* Move drive_properties back into template data sets
* Move properties data integrity checks to test code
* Streamline the drive formatting logic
- Sanitize file paths with Path: for flat file structures, always extract Path().name, and for nested file structures either look for absolute paths, or someone trying to use ".." to traverse the dir strucutre.
- Reduce redundancy in network bridge detection method, and return somewhat more informative messages
- Make all endpoints return exactly one message
- Move some warning messages to logging
- Use tempfile for iso generation temp file handling
* Dockerize Pytest
* Fix auto-delete warning in delete file test
* Allow tests to be executed with a non-default home dir
* Use hostname for Docker container only if tests executed in Docker
* Update container entrypoint to pytest
* Re-format tests with black
* Define if the execution environment is a Docker container in env fixture
* Skip unsupported host bridge attachment test in Docker
- Use Path objects for file operations
- Use urllib to sanitize URLs
- Some explicit type conversions
- Consistent regex syntax
- Add rudimentary logging when archive extraction caching fails
- Fixed two cases of the property file creation not being notified in the Flash message
- added doctype and html lang attribute to the web server 502 page
- copy/move/delete file class methods now take Path objects as arguments
- The file download endpoint in the Web UI uses the safer download from dir method
- Simplified logging
- Merged nested if statements
- Removed naked handling of unknown error states
- Added fallback empty list for drive_properties, to avoid errors when json file is missing or broken
- Move drive_properties to env[]
- Constants for common error messages
- Dummy variable for list comprehension
- Remove the Size option from the Drives page, since we offer custom sizes with Drive profiles now in the Create Image form
- Fetch size from drive props data structure rather than the web form
- Remove a range of redundant / obvious help text to reduce UI clutter and emphasize the important help text
- Remove the Size column from the CD-ROM drives table since it's always N/A
- Merge the two Logging related sections, and the two Create Image related sections (semantically associated)