Commit Graph

122 Commits

Author SHA1 Message Date
nucleogenic 5757726be2
Add drive properties for MO drives - WIP 2023-03-06 02:59:18 +00:00
Daniel Markstedt 5fd0dc420b
WebUI: Traverse target dir to get subdirs to download/upload to (#1115) 2023-03-04 16:57:32 -08:00
Daniel Markstedt ddf258db57
Fix bugs in the upload to images form (#1111)
* Fix formatting of the image subdir list for uploading

* Fix upload path
2023-02-28 22:46:52 -08:00
Daniel Markstedt 1082b6a7b4
Fix bugs in image subdir logic (#1108) 2023-02-26 14:15:13 -08:00
Daniel Markstedt dd00547f92
Formatted image file data structure that breaks down by subdir (#1102)
- 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
2023-02-24 17:28:58 -08:00
Daniel Markstedt cfc3390b81
Noscript fallback messages; relocate js into templates (#1097) 2023-02-14 18:48:53 -08:00
Daniel Markstedt f2b74046dd
Add noscript tag with notice when JavaScript is off (#1091) 2023-02-13 13:20:57 -08:00
Tony Kuker 7f188d3c99
Update Spanish, French and Chinese translations (#1095)
---------
Co-authored-by: Tony Kuker <akuker@gmail.com>
2023-02-08 21:40:33 -06:00
cvictor 870a332d56
German translation update (#1090) 2023-02-04 19:09:48 -08:00
Daniel Markstedt 8b0a85a143
Don't show user controlled string in UI (#1087) 2023-01-31 15:08:38 -08:00
Daniel Markstedt fc82ceae40
Update Swedish translation (Jan 2023) (#1086)
* Update translation
2023-01-29 11:12:35 -08:00
Daniel Markstedt bf53958636
Fix handling of properties files when they're in subdirs (#1082)
- 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
2023-01-28 14:36:07 -08:00
Daniel Markstedt 956195d67e
Ability to download and upload config files (#1083)
- 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
2023-01-28 14:34:34 -08:00
Daniel Markstedt 139a6ec371
New class method for creating image file with python; use python file… (#1079)
* 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
2023-01-26 21:51:59 -08:00
Daniel Markstedt f15baec58e
Web UI: Introduce separate endpoint for downloading files from the config dir (#1075)
Web UI: Introduce separate endpoint for downloading files from the config dir
2023-01-26 18:10:53 -08:00
Daniel Markstedt 8823dfba7d
Web UI: Better handling of upload destination dir checks (#1076)
Web UI: Better handling of upload destination dir checks
2023-01-26 18:10:33 -08:00
Daniel Markstedt 33cd41b205
Introduce a logo for PiSCSI (#1074)
- 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
2023-01-22 10:03:47 -08:00
Daniel Markstedt 6ca140d842
Streamline the create iso workflow, removing the attach step (#1069) 2023-01-15 07:38:41 -08:00
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 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
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 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 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 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
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