Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | webui: console.py: Change to request/response instead of WebSocket | Aaron LI | 2016-11-17 | 1 | -198/+145 |
| | | | | | | | | * Rename to "ConsoleAJAXHandler" * Change to use the request/response model, which accepts the AJAX request and then response. * Update logging handler to push messages to all connected clients * Many simplifications and rewrites. | ||||
* | webui: WebSocketLogHandler: Support push to multiple websockets | Aaron LI | 2016-11-17 | 1 | -13/+15 |
| | | | | Also change the pushed messages to have "action=push" and "subtype=log" | ||||
* | webui: app.py: Add new attributes and an option for ConsoleAJAXHandler | Aaron LI | 2016-11-17 | 2 | -10/+24 |
| | | | | | | | * Add new attributes "executor" and "task_status" for "console.py" * Define an option for the "executor" * Rename attribute "ws_clients" to "websockets" * Update docstring and comments | ||||
* | webui: login.html: Auto focus the password input | Aaron LI | 2016-11-17 | 1 | -1/+1 |
| | |||||
* | webui: Support IE11; Fix a missing quotation. | Aaron LI | 2016-11-17 | 2 | -3/+8 |
| | | | | | | | * IE11 does NOT support most of the ECMAScript 6 features, such as the "computed property names" which used in "configs.js". * Do not use the "computed property names" feature to support IE11 * Fix a missing quotation in "index.html" | ||||
* | webui: websocket.py: Remove on_message(); Only push messages to client | Aaron LI | 2016-11-17 | 1 | -77/+30 |
| | | | | See the docstring for more details. | ||||
* | webui: Move "password" option definition to "login.py" | Aaron LI | 2016-11-17 | 2 | -6/+11 |
| | | | | | | | NOTE: By using the "tornado.options", each module can defines its own options, which are added to the global namespace. And the defined options can also be used by other modules. | ||||
* | webui: login: Submit login form on "Enter" key | Aaron LI | 2016-11-17 | 2 | -1/+28 |
| | |||||
* | configs/checkers.py: Add checker "check_extragalactic_clusters()" | Aaron LI | 2016-11-17 | 1 | -9/+28 |
| | |||||
* | webui: configs.html: Add section toggling support | Aaron LI | 2016-11-17 | 1 | -447/+522 |
| | | | | No contents/functionalities changes. | ||||
* | webui: console.html: Remove extra modal "#console-invalid-configs" | Aaron LI | 2016-11-17 | 3 | -44/+58 |
| | | | | | * Implement "showModalConsole()" based on "showModal()" * Move binding function from "websocket.js" to "console.js" | ||||
* | webui: configs.js: Rename "showConfigsModal" to "showModalConfigs()" | Aaron LI | 2016-11-17 | 1 | -11/+11 |
| | |||||
* | webui: Implement "showModal()" in "main.js" allowing use in others | Aaron LI | 2016-11-17 | 2 | -43/+57 |
| | |||||
* | webui: main.js: Refactor out the function "toggleBlock()" | Aaron LI | 2016-11-17 | 1 | -22/+20 |
| | |||||
* | webui: console.html: Re-organize structures to support section toggle | Aaron LI | 2016-11-17 | 1 | -39/+44 |
| | | | | | Wrap the section contents with a div of class "body", separating from its heading. | ||||
* | webui: Support toggle the body/contents of sections | Aaron LI | 2016-11-17 | 2 | -3/+38 |
| | | | | | | The section header has class "heading" and a toggle control with class "toggle", which will toggle the display of the next block with the "body" class. | ||||
* | webui: Add panel toggle and allow expand/collapse its body | Aaron LI | 2016-11-17 | 3 | -2/+37 |
| | |||||
* | webui: configs.js: Confirm before reset the configurations | Aaron LI | 2016-11-17 | 1 | -2/+20 |
| | |||||
* | webui: configs.js: Confirm before overwrite the configuration file | Aaron LI | 2016-11-17 | 1 | -18/+74 |
| | | | | Also improve the "showConfigsModal()" to support buttons. | ||||
* | webui: configs.py: Add "exists" action support through GET | Aaron LI | 2016-11-17 | 1 | -0/+40 |
| | | | | | The "exists" action through the GET request will check the existence of the specified filepath (which should be an absolute path). | ||||
* | webui: configs.js: Re-implement using AJAX instead of WebSocket | Aaron LI | 2016-11-16 | 2 | -92/+221 |
| | | | | | | | | | | * Interact with server-side configurations using AJAX GET and POST, instead of sending and receiving messages through the WebSocket. * Add callbacks on both AJAX success and error, to show a modal box displaying the operation results/errors, achieving better user experiences. * Use jQuery deferred and promises to achieve sequential operations. * Also move the binding function from "websocket.js" to "configs.js" | ||||
* | webui: configs.py: Re-implement using AJAX instead of WebSocket | Aaron LI | 2016-11-16 | 1 | -103/+110 |
| | |||||
* | webui: websocket.py: Do not handle "configs" and "console" messages | Aaron LI | 2016-11-16 | 1 | -32/+6 |
| | | | | | | | | | | | | | | | | | | | The handling of "configs" and "console" types of messages, will be changed to implement using the AJAX techniques. The basic WebSocket communication is too low-level, and there is no easy way to relate each received message to the corresponding sent message. There are high-level sub-protocols exists (e.g., WAMP [1]) to allow the RPC (remote procedure call) and publish/subscribe operations, however, the Tornado web framework current does not support them, and another client JavaScript library is also required. Using the more traditional AJAX techniques allow the request-response model and sequential operations (e.g., jQuery deferred and promises) be easily implemented. Therefore better operation interaction and reflection and error handling is achieved. [1]: WAMP: Web Application Messaging Protocl, http://wamp-proto.org/ | ||||
* | configs/manager.py: Make a backup when output file already exists | Aaron LI | 2016-11-16 | 1 | -4/+15 |
| | | | | Also expand the output file for the prefix "~" (tilde) | ||||
* | webui: Add AJAX handlers "ConfigsAJAXHandler" & "ConsoleAJAXHandler" | Aaron LI | 2016-11-16 | 2 | -2/+10 |
| | | | | | NOTE: These two AJAX handlers are currently not finished! | ||||
* | webui: configs.html: Add XSRF token and a modal dialog container | Aaron LI | 2016-11-16 | 1 | -0/+3 |
| | |||||
* | webui: main.js: Add "getCookie()" and "jQuery.postJSON()" functions | Aaron LI | 2016-11-16 | 1 | -0/+56 |
| | | | | | | | | * Add function "getCookie()": get the value of the specified key from the cookies; * Add jQuery extension ".postJSON()": wrapper for easier AJAX post, with the XSRF header and correct content type; * Also set the default "error" handle function for AJAX request. | ||||
* | configs/manager.py: Also dump the "userconfig" value | Aaron LI | 2016-11-16 | 1 | -1/+4 |
| | |||||
* | webui: Rename "scroll_target()" to "scrollTarget()" and export it | Aaron LI | 2016-11-16 | 1 | -17/+16 |
| | |||||
* | webui: WSHandler: Remove the "name" attribute | Aaron LI | 2016-11-15 | 1 | -24/+17 |
| | |||||
* | webui: Push current configs to client when opened WebSocket connection | Aaron LI | 2016-11-15 | 1 | -1/+20 |
| | |||||
* | webui: Some minor changes | Aaron LI | 2016-11-15 | 3 | -3/+5 |
| | | | | | | | * Change configuration status text from "Valid :)" to "OK" * Reduce maximum WS connection trials from 100 to 21 * Fix the wrong global name of "g_ws_reconnect" * Comment the Console "Stop" button, which is currently not implemented | ||||
* | webui: Rename "FG21simWSHandler" to "WSHandler" | Aaron LI | 2016-11-15 | 3 | -4/+4 |
| | |||||
* | webui: Save connected WebSocket clients and allow broadcast | Aaron LI | 2016-11-15 | 2 | -12/+38 |
| | |||||
* | configs/manager.py: Keep configuration file comments | Aaron LI | 2016-11-15 | 1 | -6/+12 |
| | | | | | | | | | | * Enable the "copy" mode when validating, which also copies all the comments from the configspec to the validated configurations; * Use "copy.deepcopy()" to make a deep copy of the configurations, which also copies all the comments. Since the comments are preserved, therefore they are also written together to the saved/output configuration file. | ||||
* | webui: Split "handers/configs.py" from "handlers/websocket.py" | Aaron LI | 2016-11-15 | 2 | -246/+268 |
| | | | | Split "ConfigsHandler" from "FG21simWSHandler" as "handlers/configs.py" | ||||
* | webui: Place handlers under the directory "hnadlers/" | Aaron LI | 2016-11-15 | 4 | -4/+5 |
| | |||||
* | webui: Implement login support (password authentication) | Aaron LI | 2016-11-15 | 4 | -0/+105 |
| | |||||
* | webui: Fix the issues due to the split of "header-{base,index}.html" | Aaron LI | 2016-11-15 | 4 | -27/+19 |
| | | | | | | | | Tornado currently do NOT support *nested* template extensions. * Rename "header-base.html" back to "header.html" * Merge the contents of "header-index.html" to "index.html" * Add new block "subtitle" to "base.html" | ||||
* | webui: Enhance the "base.html" and simplify the "index.html" | Aaron LI | 2016-11-15 | 2 | -16/+11 |
| | |||||
* | webui: Split "header.html" into "header-{base,index}.html" | Aaron LI | 2016-11-15 | 2 | -12/+32 |
| | |||||
* | webui: To support password authentication | Aaron LI | 2016-11-15 | 3 | -8/+34 |
| | | | | | Move the "IndexHandler" to separate module located at the "handlers/" directory. | ||||
* | webui/utils.py: Add function "gen_cookie_secret()" | Aaron LI | 2016-11-15 | 1 | -0/+13 |
| | |||||
* | bin/fg21sim-webui: Add options "host" to allow localhost access only | Aaron LI | 2016-11-15 | 2 | -8/+19 |
| | |||||
* | webui: Change log toggle icons opacity according to toggle status | Aaron LI | 2016-11-15 | 2 | -4/+10 |
| | |||||
* | webui: websocket.py: Accept "~" for the "userconfig" | Aaron LI | 2016-11-15 | 1 | -2/+2 |
| | |||||
* | configs/manager.py: Expand "~" when read userconfig | Aaron LI | 2016-11-15 | 1 | -0/+3 |
| | |||||
* | webui: Fix the wrong value "galactic/freefree" to "galactic/snr" | Aaron LI | 2016-11-15 | 2 | -2/+3 |
| | | | | configs.js: Update "workdir" and "configfile" to be sync with server. | ||||
* | webui: Replace "make_application()" with Application class | Aaron LI | 2016-11-14 | 4 | -23/+21 |
| | |||||
* | webui: Show a modal box indicating there are invalid configs | Aaron LI | 2016-11-13 | 4 | -6/+10 |
| |