|  | Commit message (Collapse) | Author | Age | Files | Lines | 
|---|
| ... |  | 
| | 
| 
| 
| 
| | Wrap the section contents with a div of class "body", separating from
its heading. | 
| | 
| 
| 
| 
| 
| | 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. | 
| | |  | 
| | |  | 
| | 
| 
| 
| | Also improve the "showConfigsModal()" to support buttons. | 
| | 
| 
| 
| 
| | The "exists" action through the GET request will check the existence of
the specified filepath (which should be an absolute path). | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| | * 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" | 
| | |  | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | 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/ | 
| | 
| 
| 
| | Also expand the output file for the prefix "~" (tilde) | 
| | 
| 
| 
| 
| | NOTE:
These two AJAX handlers are currently not finished! | 
| | |  | 
| | 
| 
| 
| 
| 
| 
| 
| | * 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. | 
| | |  | 
| | |  | 
| | |  | 
| | |  | 
| | 
| 
| 
| 
| 
| 
| | * 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 | 
| | |  | 
| | |  | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| | * 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. | 
| | 
| 
| 
| | Split "ConfigsHandler" from "FG21simWSHandler" as "handlers/configs.py" | 
| | |  | 
| | |  | 
| | 
| 
| 
| 
| 
| 
| 
| | 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" | 
| | |  | 
| | |  | 
| | 
| 
| 
| 
| | Move the "IndexHandler" to separate module located at the "handlers/"
directory. | 
| | |  | 
| | |  | 
| | |  | 
| | |  | 
| | |  | 
| | 
| 
| 
| | configs.js: Update "workdir" and "configfile" to be sync with server. | 
| | |  | 
| | |  | 
| | 
| 
| 
| 
| 
| | Thanks:
http://jquerymodal.com/
https://github.com/kylefox/jquery-modal | 
| | 
| 
| 
| 
| 
| 
| | * "updateFormConfigStatus()": Store the configuration validity as a
  custom data attribute.
* Check the current configuration validity before start the task on the
  server. | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | * Fix bug with getting value of the configuration form.  "null" is
  returned if the requested configuration field does not exist or has
  empty value.  Boolean "true/false" is returned if the requested field
  is a single checkbox with "data-type=boolean".
* Improve the "setFormConfigSingle()" to support the boolean single
  checkbox field.
* Improve the "joinPath()" to validate the two input paths to be joined,
  and return "null" if both paths are empty.
* Implement "updateFormConfigStatus()" and enable "#conf-recheck" button. | 
| | 
| 
| 
| 
| 
| | For simplicity, a single checkbox is used to control the boolean
configuration.  For better manipulations of its value, a custom data
"data-type=boolean" is attached to such checkbox. | 
| | 
| 
| 
| 
| | * The "workdir" and "configfile" should be both ignored
* Update "_set_configs()" method to allow set "userconfig" | 
| | |  | 
| | 
| 
| 
| 
| | Now, by default, this executable will open the Web UI in a new browser
tab, unless the "--no-browser" argument presents | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | * Following major foregrounds have been implemented:
  + galactic/synchrotron
  + galactic/freefree
  + galactic/snr
  + extragalacitc/clusters
  + extragalacitc/pointsources
    NOTE: this component needs further refactor, improvements,
          integration and tests
* A Web UI build upon the Tornado framework and its WebSocket function
  is implemented and is already barely usable.
  + The Web interface is beautiful and reasonable
  + The configurations manipulation part performs quiet well
* However, there are also many problems with the Web UI:
  + The layout should be more compact and concise
  + There should be some popup/tooltip to reflect the operation results
  + The console that start the server task is current *BLOCKING* (i.e.,
    synchronous), however, the WebSocket currently (Tornado v4.3) does
    not support coroutine for the "on_message" method, which further
    hampers the problem been solved. | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| | * The original sleep test task "_task()" renamed to "_task_test()"
* Also add the new "startServerTaskTest()" to trigger the "_task_test()"
NOTE/XXX:
The foregrounds simulation requires the configurations, which is
currently obtained from "self.websocket.configs", which I think is a
HACK.  How to better solve this?? | 
| | |  | 
| | |  | 
| | |  | 
| | 
| 
| 
| 
| | * Colorize the logging messages of different level with different colors
* Also add a different icon for each message | 
| | |  |