Commit Graph

147 Commits

Author SHA1 Message Date
Daniel Markstedt 1af48e6e71
Get page title from string variable (#1056) 2022-12-25 07:23:16 -08:00
Daniel Markstedt cde4866844
Allow generating ISO image from local file (#1046)
- 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
2022-12-23 16:13:52 -08:00
akuker 754347f833
Chinese translation updates (#1054)
* Updated translations from Li Xing

Co-authored-by: Tony Kuker <akuker@gmail.com>
Co-authored-by: Daniel Markstedt <markstedt@gmail.com>
2022-12-23 15:04:03 -06:00
cvictor 64b8097dc1
Updated german language translations (#1049)
* Updated german language translations
2022-12-22 13:24:03 -08:00
Daniel Markstedt 96aff59d0e
Test changing to Chinese locale (#1051) 2022-12-22 12:15:10 -08:00
Daniel Markstedt 91390a74cb
Web Interface: more layout tweaks (#1044)
* Better styles for the classic upload form

* Fold Language into System Commands
2022-12-20 19:02:13 -08:00
n4al 439a078e9e
Updated the last 6 strings (#1045)
* Updated the last 6 strings

* Removing unused strings
2022-12-20 08:28:01 -08:00
Daniel Markstedt 448c243a2a
Update for Swedish translation (#1043)
* Update for Swedish translation
2022-12-19 17:52:14 -08:00
Daniel Markstedt 6b6a303986
Tweak dropzone config and introduce dedicated Upload page (#1040)
- 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)
2022-12-19 17:21:01 -08:00
Daniel Markstedt 4f13b0d795
Chinese hotfixes (#1042)
* Remove two typographic quotation marks

* Fix four malformatted placeholders
2022-12-19 07:20:44 -08:00
Daniel Markstedt 19dc507a45
More descriptive icons for extract, attach, and image info (#1041)
* More descriptive icons for extract, attach, and image info
2022-12-18 21:03:43 -08:00
akuker 75b42d74eb
Chinese (zh) translation (#1035)
Co-authored-by: Tony Kuker <akuker@gmail.com>
Co-authored-by: iml6 <72815764+iml6@users.noreply.github.com>
2022-12-18 21:38:30 -06:00
Daniel Markstedt fd911a634b
Improve grammar of Swedish translation (#1037) 2022-12-16 14:32:42 -08:00
n4al ad9dc5fa74
Added missing translations for Spanish (#1036)
* Added missing translations for Spanish

* Using proper quotation marks
2022-12-15 12:59:56 -08:00
Daniel Markstedt d857f2f1bc
Swedish localization update for Dec 2022 release (#1031)
* Swedish translation for Dec 2022 release
2022-12-14 12:37:44 -08:00
n4al 5bc7d23e0f
Updated spanish localisation (#1034)
* Updating the Spanish localisation
2022-12-14 10:02:46 -08:00
Daniel Markstedt 31303a3122
Hide the auth disabled element on small screens (#1033) 2022-12-11 17:48:07 -08:00
Daniel Markstedt e78869644c
Run pybabel extract against the src subdir to pull in only piscsi strings (#1032) 2022-12-11 14:17:14 -08:00
Daniel Markstedt 66a905f1d6
Script for updating translations (#1030)
Script for updating translation strings and print stats
2022-12-11 11:05:05 -08:00
nucleogenic 0128660d40
Disabled auth improvements (#1029)
* 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
2022-12-11 03:31:37 +00:00
Daniel Markstedt ce6bc79b2c
Post rebranding tweaks to web ui (#1027)
- 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
2022-12-09 20:34:46 -08:00
Daniel Markstedt 52c2aa474f
Rebrand project to PiSCSI (#1016)
* 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>
2022-12-05 09:58:23 -08:00
nucleogenic 88ff542aeb
Run web API test suite in GitHub Actions (#1009)
- 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
2022-12-04 14:31:57 +00:00
nucleogenic 315ef9f248
Auto-format Python sources with black, fix all issues reported by flake8 (#1010)
* 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
2022-11-30 05:19:17 +00:00
Daniel Markstedt 5afc6b911f
Remove Jinja extentions that are now built in (#1008) 2022-11-28 13:05:19 -08:00
dependabot[bot] dd94dd8c85
Bump pillow from 9.0.1 to 9.3.0 in /python/ctrlboard (#1005)
* Bump pillow from 9.0.1 to 9.3.0 in /python/ctrlboard

Bumps [pillow](https://github.com/python-pillow/Pillow) from 9.0.1 to 9.3.0.
- [Release notes](https://github.com/python-pillow/Pillow/releases)
- [Changelog](https://github.com/python-pillow/Pillow/blob/main/CHANGES.rst)
- [Commits](https://github.com/python-pillow/Pillow/compare/9.0.1...9.3.0)

---
updated-dependencies:
- dependency-name: pillow
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-24 09:28:09 -08:00
Daniel Markstedt 88b5a1d314
OLED: Refresh network state regularly (#1002)
- 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
2022-11-23 22:27:10 -08:00
Daniel Markstedt 0d95890887
Get and set pretty hostname to use as system name in Web UI (#997)
- 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
2022-11-20 10:20:32 -08:00
Daniel Markstedt 2645656199
Refactor line rendering logic, and add support for conditional displaying of LUN; Made some variables more generic, not explicitly RaSCSI. (#999) 2022-11-20 10:15:59 -08:00
Daniel Markstedt 4afb11d3dd
Shutdown splash for the OLED script; restore non-Latin transliteration; other refactoring (#991)
- 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
2022-11-17 16:21:18 -08:00
Daniel Markstedt 4645e8c975
Display hardware info in footer; close open file handlers; better error handling (#989)
* 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
2022-11-15 22:28:27 -08:00
nucleogenic 3627b39af4
New theme for web UI (#957)
* 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
2022-11-14 09:32:15 -08:00
Daniel Markstedt 85edd50047
Partition and format HFS/FAT volumes in the Web UI + SMB install (#946)
- 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
2022-11-01 16:43:24 -07:00
Daniel Markstedt 4b109a70b0
Improve Web UI integration tests (#939)
* 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
2022-10-25 08:51:04 -07:00
Daniel Markstedt 8ec5b53b28
Bump the Web UI requests lib to 2.28.1 (#938) 2022-10-24 12:53:50 -07:00
Daniel Markstedt 1da3caf568
Bump to the latest bjoern/Flask/Jinja2; click/itsdangerous/MarkupSafe are implicit dependencies of the above so removing explicit requirements. (#935) 2022-10-24 11:50:35 -07:00
dependabot[bot] db2c542c97
Bump protobuf from 3.20.1 to 3.20.2 in /python/web (#933)
* Bump protobuf from 3.20.1 to 3.20.2 in /python/web

Bumps [protobuf](https://github.com/protocolbuffers/protobuf) from 3.20.1 to 3.20.2.
- [Release notes](https://github.com/protocolbuffers/protobuf/releases)
- [Changelog](https://github.com/protocolbuffers/protobuf/blob/main/generate_changelog.py)
- [Commits](https://github.com/protocolbuffers/protobuf/compare/v3.20.1...v3.20.2)

---
updated-dependencies:
- dependency-name: protobuf
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-23 19:06:23 -07:00
Daniel Markstedt 5172d167e7
Web UI: More file path sanitation, better network bridge warnings, each endpoint return one message (#932)
- 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
2022-10-23 19:05:29 -07:00
Daniel Markstedt e3e833b4d2
Fix one case of Path object conversion that was missed during the refactoring (#929) 2022-10-22 08:01:08 -07:00
Daniel Markstedt efd40ceab2 Descriptive names for file transfer target dirs 2022-10-19 19:31:59 -07:00
Daniel Markstedt aed793001d Change locale fallback to info logging 2022-10-14 19:39:32 -07:00
nucleogenic 6514e24770
Docker container for Pytest (#901)
* 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
2022-10-14 19:30:08 -07:00
Daniel Markstedt a8ac6a06cf
Fix a web UI integration test (#912)
Fix an integration test that hadn't been updated after the refactoring
2022-10-14 09:12:57 -07:00
Daniel Markstedt 5a679509a1
More refactoring of Python code to address Sonar issues (#906)
- 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
2022-10-12 12:59:01 -07:00
n4al d6153e9647
Updating Spanish translation (#902)
* Updating Spanish translation

* Removing unused translations
2022-10-10 08:54:27 -07:00
Daniel Markstedt e8c3deea2f Update translations 2022-10-09 16:18:17 -07:00
Daniel Markstedt 1b10b123d2
Refactor python code to address Sonarcloud issues (#900)
- 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
2022-10-09 13:50:20 -07:00
Daniel Markstedt 62e287c96d
Remove redundant help text, table columns and parameters from the Web UI (#898)
- 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)
2022-10-07 19:55:53 -07:00
Daniel Markstedt d1a703418c
Address Sonarcloud issues for the html code; improve on css styles (#892)
Refactor and clean up code to conform to SonarCloud static analysis, improve readability and semantics.
- Add labels for each form input, and tweak placeholder text accordingly.
- Move CSS styles to the stylesheet; minor tweaks for clarity and consistency
- Use the legacy align=center attribute for centering paragraphs (backwards compatible)
- Remove all instances of using tables for layout
- Add header tags to all remaining tables, with scope parameters.
- Add descriptions to each table
- Move drive reference hyperlinks to the drive name column (addresses "same link text leads to different URL" code smell.)
- Inject lang parameters to each html tag
- Standardize on h2 tags as top header for each template
- Add 'json' to config file UI elements, to communicate actual file name/format
- Clean up indentation
- Dropbox styling: Added a colored outline, added padding to more clearly communicate its function. Hid the (X) SVG that indicates failure, since failure is already communicated by the error text. Also, the SVG always obstructed the file name or error so was quite counter-productive.
2022-10-07 13:13:29 -07:00
Daniel Markstedt 90ace5fd53
Introduce utility method to look up drive props by drive name. (#888)
* Introduce utility method to look up drive props by drive name.

* Make /drive/create endpoint fetch file ending from properties data structure; update tests
2022-10-06 14:04:41 -07:00