Files
awx/awx/network_ui/designs
Ben Thomasson f8d83638b0 Adds inventory tracking and templating to network UI groups and hosts.
* Adds group_id to Group table
* Adds inventory_group_id to Group table
* Adds creation of inventory hosts and groups from the network UI
* Changes network UI variables to be under awx key
* Fixes variables initial value
* Adds group membership association/disassociation
* Removes items from the inventory toolbar when loaded by a snaphot
* Adds nunjucks dependency to package.json
* Adds templating to hosts
* Adds templating for racks
* Adds site templating
* Adds group associations for sites
* Squashes migrations for network_ui
* Flake8 migrations
* Changes reserved field type to device_type, group_type, and process_type
* Allows blank values for all CharFields in network_ui models
* Changes reserved field type to device_type, group_type, and process_type
2018-03-23 17:00:23 -04:00
..

Finite State Machine Designs

This directory contains the finite state machine designs that were used to generate the skeleton of the javascript implementations and can be used to check that the implementations still match the designs.

Machine Readable FSM Schema

The machine readable FSM schema contains three top-level elements: name, states, and transitions.

  • The name element is a string.
  • The states element contains a list of state elements which have attributes id, label, and x, and y.
  • The transitions element contains a list of transition elements which have attributes from_state, to_state, and label.

Design Diagrams

The diagrams below are visual representations of the finite state machine designs in this directory. The equivalent machine readable representations are linked as well.


Null FSM

  • See: null.yml

The null FSM is an FSM that ignores all events.

Null FSM


Button FSM

  • See: button.yml

The button FSM describes how a button works. The key insight here is that a button is not clicked if the mouse is not over the button on both the MouseDown and MouseUp events. Moving the mouse off the button before MouseUp is not a click.

Button FSM


Buttons FSM

  • See: buttons.yml

The buttons FSM distributes events to the buttons which each have their own FSM.

Buttons FSM


Device Detail FSM

  • See: device_detail.yml

The device detail FSM describes interactions when zoomed into a device.

Device Detail FSM


Group FSM

  • See: group.yml

The group FSM describes how to organize multiple devices together in a group.

Group FSM


Hot Keys FSM

  • See: hotkeys.yml

The hot keys FSM handles key events and generates new events like NewLink to implement hot keys.

Hot Keys FSM


Link FSM

  • See: link.yml

The link FSM connects two devices together with a link.

Link


Mode FSM

  • See: mode.yml

The mode FSM controls the overall mode of the network UI application.

Mode


Move FSM

  • See: move.yml

The move FSM controls placement of devices as well as editing the device labels.

Move


Rack FSM

  • See: rack.yml

The rack FSM controls organizing devices into a special group called a rack.

Rack


Site FSM

  • See: site.yml

The site FSM controls organizing devices into a special group called a site.

Site


Stream FSM

  • See: stream.yml

The stream FSM controls how streams are defined between devices.

Stream


Time FSM

  • See: time.yml

The time FSM controls undo/redo functionality of the network UI.

Time


Toolbox FSM

  • See: toolbox.yml

The toolbox FSM controls the drag-and-drop toolboxes and allow placement of new devices, applications, racks, and sites onto the canvas.

Toolbox


View FSM

  • See: view.yml

The view FSM controls the panning and scaling of the the virtual canvas through clicking-and-dragging of the background and scrolling the mousewheel.

View