| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
* Source Sans Pro: regular, italic, semibold, semibold italic; WOFF
* Source Code Pro: regular; WOFF
Thanks Adobe!
|
| |
|
|
|
|
|
|
|
| |
When the configuration form changed, the changed values are synced to
the server and validated. The validation errors are then sent back to
the client, which set the custom error messages on the corresponding
fields.
|
| |
|
|
|
|
|
|
|
|
| |
* Split out functions "{g,s}etFormConfigSingle()" from
"setConfigForm()";
* Rename original "setConfigForm()" to "setFormConfigs()", and uses
"{g,s}etFormConfigSingle()" to simplify;
* Update other places accordingly.
|
| |
|
|
|
|
|
|
|
|
| |
* Fix the validation for some "input[type=number]" element;
By default, the number type input only accept *integer*. By setting
the 'step="any"' attribute, the float numbers are also valid.
* Add form input validation styles for ":valid" and ":invalid" pseudo
classes.
|
| |
|
|
|
|
|
|
| |
* milligram.css: Remove the "sourceMappingURL"
* main.js: Add "use strict";
* utils.py: Add a TODO task
|
|
|
|
|
|
|
|
|
| |
* Rewrite "configs.js" to be more modular and generic
* Bind functions to button click event
* Implement the function to set form fields to given configuration data
* Implement the function to reset server-side configurations
* Implement the function to load user configuration file on server
* Implement get the configuration data from the server
|
|
|
|
|
|
|
| |
* Get the server-side configurations as a flattened one-level
dictionary, for easier manipulations.
* When get the configurations, specify the requested config options as
an Array under the "keys" property (original: "data" property).
|
|
|
|
|
|
|
| |
NOTE:
Still missing important client-side functions to be usable, e.g.,
set the configuration form according to the received data from the
server, and mark the error states on the fields with invalid values.
|
|
|
|
|
|
|
|
|
|
|
| |
* Improve the response data to be more consistent. If the request
failed, the returned response has "success" item of value "False" and
an "error" item recording the message;
* Add method "_reset_configs()" to handle the "reset" action;
* Add method "_load_configs()" to handle the "load" action;
* Add method "_save_configs()" to handle the "save" action.
NOTE: needs tests.
|
|
|
|
|
|
|
|
| |
All response message has a "success" item indicating whether the request
be successfully handled. If anything unexpected happens, "success" is
False, and an additional "error" item presents recording the detail.
Also add some more stubs which are necessary for the Web UI.
|
|
|
|
|
|
|
| |
Finish the "_set_configs()" function to implement the "set" action
for "_handle_configs()".
Also change the "status" keyword to "success" to be more intuitive.
|
|
|
|
|
|
|
| |
Add internal method "_get_configs()" which implement the "get" action
part of the "_handle_configs()" method.
TODO: implement the "set" action part.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Server side:
+ Update the "on_message()" method to support 3 types of message
requests (i.e., "configs", "console", and "results");
+ Add messages stub handlers: "_handle_{configs,console,results}()";
+ Reorder the methods
+ Client side:
+ Change timeout before reconnection to 3000 ms;
+ Parse the received JSON message to JS object;
|
|
|
|
|
| |
Also add a global variable "ws_reconnect" to control the timeout between
reconnection and the maximum reconnection times (default: 100).
|
|
|
|
|
|
|
| |
FIXME/TODO:
How to determine the WebSocket origin is in the same subnet as the
server? An additional network mask required to determine this.
How does this additional mask passed?
|
|
|
|
|
|
| |
NOTE:
This "FG21simWSHandler" is still very preliminary, and there are a
lot of necessary functions need to be implemented.
|
| |
|
|
|
|
|
| |
Add a label to the header banner to show the WebSocket support status
and connection status.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
The js code still misses many necessary functions.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Tornado template: http://www.tornadoweb.org/en/stable/guide/templates.html
|
|
|
|
|
| |
Milligram is a minimalist CSS framework (only CSS).
https://milligram.github.io/
|
|
|
|
| |
normalize.css: https://github.com/necolas/normalize.css
|
|
|
|
| |
FontAwesome: http://fontawesome.io/
|
|
Tornado: http://www.tornadoweb.org/
|