Commit Graph

82 Commits

Author SHA1 Message Date
Daniel Markstedt
5da3d6c24b
Introduce info.html template and use it to render detailed info (#863)
new:
- new templates to render structured info contents in
- get_diskinfo() class method that calls disktype and returns the results
- /diskinfo endpoint in the Flask app that renders the results from get_diskinfo()

changed:
- /logs/show and /scsi/info endpoints in the Flask app render in templates
- Now using the "RaSCSI Reloaded Control Page" header to function as the link back to the homepage (instead of the github project) which is in line with how most webapps work
- Removed the center style for "Attached!" to allow the ? button to be placed on the same line
- Remove individual device info, and introduced show all device info in a template
2022-09-26 17:44:41 -07:00
nucleogenic
f8e58708aa
Update comments 2022-09-26 00:00:19 +01:00
nucleogenic
1a15c4c648
Expose env info to API clients 2022-09-26 00:00:19 +01:00
nucleogenic
fb8f306005
Implement response generator for HTML and JSON requests
Supporting updates to web.py and templates
2022-09-26 00:00:18 +01:00
nucleogenic
1e9a7d2283
Move flattening of file type lists to template layer 2022-09-25 23:58:07 +01:00
nucleogenic
4ef2e20b4f
Update get_supported_locales to return a JSON serializable result 2022-09-25 23:58:07 +01:00
Daniel Markstedt
e7775a72cc
Generate list of image types to create programmatically in the Web UI (#850)
* Generate list of image types to create programmatically based on rascsi capabilities, rather than a hard-coded list in the Web UI.

* Add explicit sorting of dicts for display in the Web UI, to avoid random order in certain environments.

* Remove redundant sorting line, and add code comments.

* Add helptext for the SCSI-1 image type
2022-09-21 17:14:53 -07:00
nucleogenic
673da6312b
Add Docker environment for development and testing of the web UI
Add --token parameter to easyinstall.sh

Add --skip-token parameter to easyinstall.sh

Install required apt packages explicitly (--no-install-recommends)

Allow standalone RaSCSI and web UI installations to specify an auth token

Add development mode to web UI (web/start.sh --dev-mode)

Initial Docker-based development environment for Python and web UI

Bump protobuf version

Workaround for Flask development server and asyncio incompatibility

Build Python protobuf interface on container launch, if it doesn’t exist

Allow containers to be configured with environment variables, add support for token authentication

Move web UI live editing setup out of main Docker Compose config

Update dockerignore to exclude by default

Update README

Add OS_DISTRO, OS_VERSION and OS_ARCH build args

Allow extracted files to be moved to target when crossing a filesystem boundary

Reduce noise from watchmedo auto-restarts

Update Docker tag structure to rascsi:{build}-{platform}-{variant}

Prevent Docker Compose from attempting to pull images from Docker registry

Add workaround for issue #821

Allow container processes to be stopped with Ctrl+C

Update README, bind to ports 8080/8443 on the Docker host by default

Update README to clarify audience and no board connectivity

Add AIBOM and GAMERNIUM to --connect_type validation

Update cfilesystem.patch following rebase
2022-09-08 12:19:30 +01:00
nucleogenic
8c7ab75835
Update web UI following SASI removal; clean up references to SAHD in Python sources 2022-09-03 17:43:51 +01:00
Daniel Markstedt
2411afb2c4
Remove file extension validation in upload form (#826)
* Remove file extension validation in upload form. Improve on the related help text.

* Split up image and archive file suffixes.
2022-09-03 09:14:13 +02:00
nucleogenic
b5e6438a45
Allow images to be extracted from StuffIt, tarball, gzip, and 7z archives 2022-08-12 04:19:02 +01:00
nucleogenic
7a18939171
Add support for --log-level argument to web UI (#781)
Increase verbosity of web UI log format

Add critical to supported log levels for completeness
2022-07-31 19:02:14 -05:00
nucleogenic
dc1414ba71
Add RASCSI host and port arguments to web/start.sh (#771)
* Fix data type of --rascsi-port argument

* Add support for --rascsi-host and --rascsi-port arguments

* Add short parameter names, increase specificity of web port parameter
2022-07-25 21:47:11 -07:00
Daniel Markstedt
6397d9c9a3
Add a Copy image file flow to the Web UI. (#760)
* Add a Copy image file flow to the Web UI.

* Introduce a generic file creation message and use that consistently.

* Clarify code comment
2022-06-14 21:03:56 -05:00
Daniel Markstedt
a1a2e6089b
Fix a malformatted gettext string, and update the localization README (#758)
* Fix a gettext marked string that has one too many parantheses around it, excluding it from translations. Also, clean up layout around it.

* Add Swedish translation for the above.

* More explicit localization steps in the README to avoid recurring mistakes.
2022-05-02 14:42:09 -05:00
Daniel Markstedt
aa1f3b02e3
Make the ip and hostname show up on the Drive page as well. (#759) 2022-05-02 14:41:11 -05:00
Daniel Markstedt
da02eccb2e
Improve logic for the get_logs() method. Add rascsi-ctrlboard service. (#714) 2022-02-28 09:49:48 -08:00
Daniel Markstedt
e8f392c3f1
Create SysCmds common class, and refactor Python codebase (#697)
* Move the oled script's PiCmds module to common, and rename it SysCmds.

* Use sys_cmds.get_ip_and_host() in web UI code.

* Move the auth_active() method to device_utils

* Rename device_utils to web_utils. Make auth_active() method take the group as argument.

* Migrate all pi_cmds methods to the SysCmds common class.

* Display hostname and ip in Web UI.

* Resolve or suppress pylint warnings.

* Resolve a pylint warning.

* Resolve or suppress pylint warnings.

* Import libraries at the top level for readability. In my testing on a Pi3B+, this leads to ~1.5k more memory being used by the python3 process.

* Change page title as requested by akuker.

* Reenable the import-outside-toplevel pylint rule.

* Resolve pylint warnings.

* Fix error following refactoring.

* Minor UI tweaks.

* Cleanup.

* Break out bridge config validation into a utility method.

* Move the dropzonejs method into the web_utils package

* Move get_logs method into SysCmds class.

* Improve get logs UI.

* Resolve pylint warning.

* Standardize class instance name.
2022-02-26 21:46:35 -08:00
Daniel Markstedt
5d92590877
Use the word Release in the context of making a SCSI ID available for use, rather than the word Unreserve which is poor English. (#692) 2022-02-21 20:31:38 +01:00
Daniel Markstedt
4252d46844
Inquire the backend for device capabilities instead of Web UI assumptions (#688)
* Add capabilities to RaCtlCmds.get_device_types() to return the image file support boolean, and list of supported block sizes.

* Inquire rascsi backend about the min block size rather than hard coding values in the web UI.

* Add class methods for getting lists of certain device types.

* Use the new class methods to get lists of device types in the web ui.

* Make use of the new class methods in the oled script.

* Remove now unused constants, and simplify logic in common_settings

* Improve device name mapping to extend the existing dictionary rather than creating a new data structure.

* Use jinja2 sort filters instead of sorting in python code. Removing redundant variables.

* Introduce the get_device_name() utility method which returns the translated name for a device acronym. Use the new method to display device name when attaching devices.

* Fix typo

* Rename Support Device to Periperal Device. General tweaks to UI strings.

* Tweak UI string.

* Fix error.
2022-02-21 09:27:31 -08:00
Daniel Markstedt
01e1aaae3e
Make the support device UI entirely procedurally generated (#686)
* Make the support device UI entirely procedurally generated, removing the special case network device UI flow.

* Clean up helptext.
2022-02-20 09:49:23 -08:00
Daniel Markstedt
2184992ce7
Tentative Web UI for the Printer device. (#676)
* Tentative Web UI for the Printer device.

* timeout must be a positive value

* Change the attach device class method to accept a dict with arbitrary key value pairs of parameters to be passed to the protobuf interface, rather than hard coded ones. Also renames the RaCtlCmds.attach_image() class method to attach_device().

* Make download_to_iso() use the new attach interface.

* Dynamically get the form items for support devices.

* Change the data structure returned by RaCtlCmds.get_device_types() to a dict, which contains the supported parameters and their default values. Leverage this data in the web ui to derive the form fields from the capabilities of rascsi.

* Tweak UI labels.

* Update FileCmds.read_config() to work with the new RaCtlCmds.attach_device() method.

* Check for numeric value.

* Streamline the UI for support devices.

* Handle support devices better by the oled screen.

* Clean up html.

* Dynamically adjust form field size based on data length.
2022-02-19 09:04:14 +01:00
Daniel Markstedt
b3bdd07fa7
Web UI and OLED: adding Support Devices (#666)
* Use the comparison operator that Python3 likes.

* Add SUPPORT_DEVICE_TYPES category, and add Host Service to it.

* Add webapp UI for attaching a support device.

* Make the OLED screen aware of the support device type.

* Tweak test to make it clear that this is experimental functionality.

* Tweak device type names
2022-02-15 13:06:27 +01:00
Daniel Markstedt
25b9b4ada2
Further improve the dynamic device info web UI (#657)
* Improve the device type selection UI

* Extend the image_files data structure with human readable device name, instead of having complex for loops in the jinja2 template.

* Leverage device type constants in the OLED monitor script

* Fix typo

* Generate the list of valid network devices that can be attached programmatically

* Fix typo
2022-02-13 10:28:50 -06:00
Daniel Markstedt
91cc0e836a
Create a mapping of human-readable and internationalized device names. Use this in the image file management UI instead of the internal acronyms. Also remove the hard-coded helptext for device types. (#655) 2022-02-07 18:48:55 -06:00
Daniel Markstedt
5c0d6fc7e9
Make the network adapter UI in the web interface able to choose LUN and device type. (#653) 2022-02-07 18:47:21 -06:00
Daniel Markstedt
2a47924a74
Revert workaround for Netatalk long file name bug, since the bug was fixed in Netatalk itself. (#629) 2022-02-03 19:37:58 -06:00
Daniel Markstedt
83ad97e577
Use Locale class methods to get the localized language name for display (#628) 2022-01-29 14:22:39 -08:00
Daniel Markstedt
31309a8ee3
Make the default config load on rascsi-web startup without having to load it in a browser. (#620) 2022-01-29 09:41:39 -08:00
Benjamin Zeiss
089dc302e5
restructuring towards python client library #455 (#613)
* python client library clean branch for PR. #455

* removed superfluous file. #455

* removed one more superfluous file. #455

* README.md, .pylintrc and pylint based fixes. #455

* updated wrt. to the review comments. #455

* removed pylint documentation duplication. #455
2022-01-21 15:08:29 -08:00
Daniel Markstedt
423ba573cd
Fix a few malformed gettext calls (#609) 2022-01-14 22:58:32 -06:00
Benjamin Zeiss
17497cf1fe clean squashed restructuring branch. #455 2022-01-09 20:22:19 +01:00