1
0
mirror of https://github.com/ansible/awx.git synced 2024-11-01 08:21:15 +03:00
awx/docs/networking/README.md
Jared Tabor 92dc450940
Adds acceptance doc for networking UI
* Adds gerkin feature file for networking visualization
* Adds implementation details to networking.md
2018-03-29 16:53:57 -04:00

2.2 KiB

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.


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


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


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


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