Initial draft of GUI user documentation under revision control.

Change-Id: I64eafd8e9129db3ac4d92145a1275bc5c00cfe7d
diff --git a/web/gui/doc/README.user.md b/web/gui/doc/README.user.md
new file mode 100644
index 0000000..cb7206f
--- /dev/null
+++ b/web/gui/doc/README.user.md
@@ -0,0 +1,231 @@
+ONOS Web UI - User Documentation
+================================
+
+#### Note to Reader
+
+This document provides a brief overview of the _User Documentation_ for 
+the _ONOS Web UI_. For more detailed documentation (including screenshots), 
+please see [The ONOS Web GUI][owg] on the ONOS wiki. 
+ 
+Further content (subsections) may be found in files named `README.user.*.md`
+
+Placeholders for screenshots / images are marked thusly:
+
+![sample image placeholder][pic]
+
+[owg]: https://wiki.onosproject.org/display/ONOS/The+ONOS+Web+GUI
+[pic]: picture-icon.png 
+
+
+
+Introduction
+------------
+
+#### Overview
+
+The ONOS GUI is a _single-page web application_, providing a visual
+interface to the ONOS controller (or cluster of controllers).
+
+For documentation on the design of the GUI, see [Web UI Architecture][ua] in
+the Architecture Guide.
+
+For documentation on how applications running on ONOS can inject content
+into the GUI at runtime, see the [Web UI Tutorials][ut] page.
+
+The [Developer Guide][dg] includes documentation on the Web UI framework 
+libraries (for both _client-side_ and _server-side_ modules), to help app
+developers re-use common coding patterns.
+
+
+[ua]: https://wiki.onosproject.org/display/ONOS/Web+UI+Architecture
+[ut]: https://wiki.onosproject.org/display/ONOS/Web+UI+Tutorials
+[dg]: https://wiki.onosproject.org/display/ONOS/Appendix+F%3A+Web+UI+Framework+Libraries
+
+
+----
+#### Configuration Notes
+
+* The **_onos-gui_** feature must be installed in ONOS
+* The GUI listens on port **_8181_**
+* The base url is `/onos/ui`
+  + for example, to access the GUI on _localhost_, use
+    `http://localhost:8181/onos/ui`   
+* The GUI has been developed to work on _Google Chrome_. 
+  The GUI has been tested on _Safari_ and _Firefox_ and minor compatibility 
+  adjustments have been made; these and other browsers may work, but have 
+  not been extensively tested, and are not actively supported, at this time.
+* The key bindings associated with any view will work on any keyboard. 
+  The "Cmd" (⌘) key on an Apple keyboard is bound to the same key as 
+  the "Windows" or "Alt" keys on Windows or other keyboards.
+
+
+----
+#### Session Notes
+
+Note that the current version of the GUI does not fully support the concept
+of individual user accounts, however, login credentials are required.
+
+On launching the GUI you should see the login screen:
+
+![image of login screen][pic]
+
+Default username and password are `onos/rocks`. 
+
+If ONOS was installed via `onos-install` and configured by `onos-secure-ssh`
+(developer / test tools), then the _username / password_ may be different; 
+examine the `$ONOS_WEB_USER` and `$ONOS_WEB_PASS` environment variables to
+discover what they are.
+
+After a successful login, you should see a screen that looks like this:
+
+![image of topology view][pic]
+
+The dark bar at the top is the _Masthead_, which provides a location for
+general GUI controls:
+
+- Navigation Menu Button
+- ONOS logo and title
+- Context help button (click to open web URL specific to view)
+- User name (click to access `logout` action)
+
+(In future versions, the masthead may include session controls such as 
+user preferences, global search, etc.)
+
+The remainder of the screen is the "view", which defaults to the 
+Topology View when the GUI is first loaded – a cluster-wide view of the 
+network topology.
+
+* The _ONOS Cluster Node Panel_ indicates the cluster members 
+  (controller instances) in the cluster.
+* The _Summary Panel_ gives a brief summary of properties of the 
+  network topology.
+* The _Topology Toolbar_ (initially hidden) provides 
+  push-button / toggle-button actions that interact with the topology view.
+  
+For more detailed information about this view, see the [Topology View][topo] page.
+
+
+----
+#### Navigation
+
+Other views can be "navigated to" by clicking on the _Navigation Menu Button_ 
+in the masthead, then selecting an item from the dropdown menu:
+
+![image of navigation menu][pic]
+
+----
+#### Views
+
+The GUI is cacapable of supporting multiple views. As new views are added 
+to the base release, they will be documented here.
+
+> NOTE:
+> The capability of adding views to the GUI dynamically at run-time is also 
+> available to developers, allowing, for example, an ONOS App developer to 
+> create GUI content that works specifically with their application. 
+> The content will be injected dynamically into the GUI when the app is 
+> installed, and removed automatically from the GUI when the app is 
+> uninstalled. For more details on this feature, see the 
+> [Web UI tutorials][ut].
+
+The views currently included in the base release are:
+
+- Platform Category
+  + Applications
+    + The [Application View][app] provides a listing of installed
+      applications, as well as the ability to _install, start, stop
+      and uninstall_ them.
+  + Settings
+    + The [Settings View][set] provides information about all configurable
+      settings in the system. (Currently this is a readonly view, but 
+      future releases may provide setting adjustments from here).
+  + Cluster Nodes
+    + The [Cluster Node View][cnode] provides a top level listing of all
+      the nodes (ONOS instances) in the cluster.
+  + Packet Processors
+    + The [Packet Processors View][pkt] shows the currently configured
+      components that participate in the processing of packets
+      sent to the controller.
+  + Partitions
+    + The [Partitions View][part] shows the cluster partitions.
+  
+- Network Category
+  + Topology
+    + The [Topology View][topo] provides an interactive visualization of the
+      network topology, including an indication of which devices (switches)
+      are mastered by each ONOS controller instance.
+  + Topology 2 (experimental)
+    + The [Topology 2 View][topo2] is a "region aware" view of the topology
+      which can take advantage of an administrator configuring the network
+      into regions.
+      * Note that this view is _currently experimental_
+  + Devices
+    + The [Devices View][dev] provides a top level listing of the 
+      devices in the network. Note that when a device in the table is
+      selected, additional views (not directly available from the navigation
+      menu) become available for that device:
+      + [Flows][flow]: shows all flows for the selected device
+      + [Ports][port]: shows all ports for the selected device
+      + [Groups][group]: shows all groups for the selected device
+      + [Meters][meter]: shows all meters for the selected device
+  + Links 
+    + The [Links View][link] provides a top level listing of all the
+      links in the network.
+  + Hosts
+    + The [Hosts View][host] provides a top level listing of all the
+      hosts in the network.
+  + Intents
+    + The [Intents View][intent] provides a top level listing of all the
+      intents in the network.
+  + Tunnels
+    + The [Tunnels View][tunnel] provides a top level listing of all
+      tunnels defined in the network.
+    
+[app]: https://wiki.onosproject.org/display/ONOS/GUI+Application+View
+[set]: https://wiki.onosproject.org/display/ONOS/GUI+Settings+View
+[cnode]: https://wiki.onosproject.org/display/ONOS/GUI+Cluster+Node+View
+[pkt]: https://wiki.onosproject.org/display/ONOS/ONOS+Packet+Processors+View
+[part]: https://wiki.onosproject.org/display/ONOS/GUI+Partitions+View
+
+[topo]: https://wiki.onosproject.org/display/ONOS/GUI+Topology+View
+[topo2]: https://wiki.onosproject.org/display/ONOS/GUI+Topology+2+View
+[dev]: https://wiki.onosproject.org/display/ONOS/GUI+Device+View
+[flow]: https://wiki.onosproject.org/display/ONOS/GUI+Flow+View
+[port]: https://wiki.onosproject.org/display/ONOS/GUI+Port+View
+[group]: https://wiki.onosproject.org/display/ONOS/GUI+Group+View
+[meter]: https://wiki.onosproject.org/display/ONOS/GUI+Meter+View
+[link]: https://wiki.onosproject.org/display/ONOS/GUI+Link+View
+[host]: https://wiki.onosproject.org/display/ONOS/GUI+Host+View
+[intent]: https://wiki.onosproject.org/display/ONOS/GUI+Intent+View
+[tunnel]: https://wiki.onosproject.org/display/ONOS/GUI+Tunnel+View
+
+Note that many of the views are table-based, and are similar in look 
+and interaction. For a general overview of tabular usage, see the 
+[Tabular View][table] page.
+
+[table]: https://wiki.onosproject.org/display/ONOS/GUI+Tabular+View
+
+> See `README.user.views.md` for view specific documentation.
+
+[README-user-views]: README.user.views.md
+
+                                                                               
+----
+#### Web UI Applications
+
+ONOS applications may contain Web UI components - either custom views
+or topology overlay behaviors.
+For documentation on application-specific behavior, please see the
+[Web UI Application Index][appidx].
+
+> NOTE: For applications that are distributed with core ONOS, it is expected
+> that the developer provides a wiki page for documentation, and provides a
+> link in the index page.
+
+[appidx]: https://wiki.onosproject.org/display/ONOS/Web+UI+Application+Index
+
+----
+#### Release Nodes
+
+Please see `README.user.releases.md` for a summary of UI features introduced
+at each release of ONOS.
diff --git a/web/gui/doc/README.user.releases.md b/web/gui/doc/README.user.releases.md
new file mode 100644
index 0000000..6e3d005
--- /dev/null
+++ b/web/gui/doc/README.user.releases.md
@@ -0,0 +1,161 @@
+ONOS Web UI - User Documentation
+================================
+
+### Release Notes
+
+This section provides a reverse-chronological summary of changes 
+to the GUI for each release.
+
+----
+#### Kingfisher -- 1.10.0 -- May 2017
++ (to be listed)
+
+----
+#### Junco -- 1.9.0 -- February 2017
++ Region aware topology view _(Topology 2)_
+  + Still WIP
+  + Region transition animation added
+  + Sprite layers added
++ Partitions View added
++ Support for viewing selected intent via topology overlays added
+
+----
+#### Ibis -- 1.8.0 -- November 2016
++ Region aware topology view _(Topology 2)_
+  + Network configurations added for _Regions_ and _TopoLayouts_
++ "Resubmit Intent" action added to _Intents View_
++ Topology View icons updated
++ Cluster View details panel added
++ Local filtering added to _Flow_, _Port_, _Group_, and _Meter_ views.
+
+----
+#### Hummingbird -- 1.7.0 -- August 2016
++ Region aware topology view _(Topology 2)_
+  + Server-side modeling implemented
++ "Brief" mode introduced to _Intent_, _Group_, and _Flow_ views
++ Continued work on re-theming the UI
+
+----
+#### Goldeneye -- 1.6.0 -- May 2016
++ Overhaul of the "Look-n-Feel" (re-skinned)
++ Applications view:
+  + Drag-n-drop of `.oar` files to install and activate, now supported
+  + Auto-prompt user to refresh the UI when components are added / removed
++ Topology view:
+  + "Cluster node ready" checkmark indicator added
+  + Geo-map selection dialog (`G` keystroke) added
+  + Support for topology overlays to provide custom link data
++ Dialog Service:
+  + Support for chained dialog operations added
++ Chart Service added
++ User preferences now persisted server side
++ Logged-in user name displayed in masthead
+
+----
+#### Falcon -- 1.5.0 -- February 2016
++ Topology View:
+  + "Reset node locations" command (`X` keystroke) added
+  + Topology overlay selection with `F1`, `F2`, `F3`, ... keystrokes added
++ Applications View:
+  + Confirmation dialog added for application activate / deactivate /
+    uninstall
+  + Application model enhancements supported:
+    + columns added for additional attributes
+    + details panel displayed when application row selected
+  + Note: applications can now define custom icon and URL (link to docs)
++ Dialog Service:
+  + `Enter` and `Escape` keys bound to _OK_ and _Cancel_ buttons
+
+----
+#### Emu -- 1.4.0 -- November 2015
++ Device View:
+  + Friendly name can be set on a device from the device detail panel
++ Intent View:
+  + Button added to navigate to _Topology View_ and display the
+    selected intent
++ Topology View:
+  + _Traffic Overlay_ now selected by default
+  + Topology overlays can now highlight devices and hosts with badges
+    (small number / text / glyph)
+  + Topology overlays can invoke a dialog box to interact with the user
++ ONOS-Branded "Loading..." animation added
++ Sample application (org.onosproject.uiref) featuring UI content
+  injection techniques added
++ GUI Archetypes (ui, uitab, uitopo) facilitating rapid development of 
+  applications with custom UI content
+  
+----
+#### Drake -- 1.3.0 -- August 2015
++ Authentication enabled by default (login screen; logout action)
++ _Settings_ and _Tunnels_ views added
++ Topology View:
+  + Traffic re-implemented as an "overlay"
+  + Overlay mechanism now programmable from ONOS apps
+    + highlighting / labeling topology links
+    + full control over summary panel content
+    + full control over details panel content
+    
+----
+#### Cardinal -- 1.2.0 -- May 2015
++ Websocket mechanism promoted to be framework-wide; a shared resource 
+  amongst the views
++ More tabular views added:
+  + Links
+  + Hosts
+  + Intents
+  + Applications
+  + Cluster Nodes
+  + Device Flows (hidden view)
+  + Device Ports (hidden view)
+  + Device Groups (hidden view) 
++ Changes to the Topology View:
+  + links are now selectable.
+  + toolbar added (note, keystroke commands still available)
+    + node layer buttons moved from masthead to toolbar
+  + sprite layer added
+  + user selection choices persisted across sessions
+  + summary and detail panels adjust size to window height
++ Changes to the Device View:
+  + slide out details panel appears when a device is clicked on
++ Navigation Menu changes:
+  + glyphs next to links for navigation
+  + views organized into categories
++ Note that the legacy (Avocet) GUI has been deprecated, and that 
+  the (Angular-based) GUI loads by default.
+
+----
+#### Blackbird -- 1.1.0 -- February 2015
++ GUI Framework migrated to use AngularJS
+  + View-agnostic features refactored as Angular Services
++ Topology View refactored to be an Angular module
+  + Topology source code broken out into multiple source files
+  + Port Highlighting on links added
++ Device View added
+  + Implemented as a simple table for now; one device per row, 
+    sortable by column header clicks
++ Sample View added
+  + Skeletal example code
++ Light and Dark themes fully implemented
+  + Press the 'T' key to toggle theme
++ Beginnings of UIExtension mechanism implemented
+  + Over future releases, this will facilitate the ability of 
+    Apps to inject their own content into the GUI
+
+> Note that the new (Angular-based) GUI currently co-exists with the 
+>   old (Avocet) GUI.
+> + By default, the Avocet GUI is launched; 
+>   the base URL `http://localhost:8181/onos/ui` is mapped to 
+>   `http://localhost:8181/onos/ui/legacy/index.html#topo`
+> + The new Angular-based GUI can be launched by manually adjusting 
+>   the URL to be:  `http://localhost:8181/onos/ui/index.html#topo`, 
+>   (that is, remove "legacy/"). 
+
+----
+#### Avocet -- 1.0.0 -- November 2014
++ GUI implemented using a home-grown framework 
++ Single view (_Topology View_) implemented, displaying network topology and
+  providing a certain level of interaction to show traffic & flow information
++ Although the `T` key-binding (toggle theme) is present, the "dark" theme 
+  has not been implemented
+  
+----
diff --git a/web/gui/doc/README.user.views.md b/web/gui/doc/README.user.views.md
new file mode 100644
index 0000000..ea09bab
--- /dev/null
+++ b/web/gui/doc/README.user.views.md
@@ -0,0 +1,148 @@
+ONOS Web UI - Views
+===================
+
+Documentation for the Web UI main views.
+
+> Note that each of these views should have their own wiki page.
+> For convenience, we are documenting them all here in a single document.
+
+[table]: https://wiki.onosproject.org/display/ONOS/GUI+Tabular+View
+[pic]: picture-icon.png 
+
+# Platform Category Views
+
+
+Application View
+----------------
+
+### Overview
+The application view provides a top level listing of, and basic interaction
+with, all installed applications. The applications are displayed in
+[tabular form][table], where each row is a single application.
+
+![screenshot of app view][pic]
+
+Selecting a row will display a detail panel, containing more information 
+about the selected application. Control buttons will also become available, 
+based on the current state of the application.
+
+(to be completed)
+
+
+----
+
+Settings View
+-------------
+
+### Overview
+The settings view ... (to be completed)
+
+
+----
+
+Cluster Node  View
+------------------
+
+### Overview
+The cluster node view ... (to be completed)
+
+
+----
+
+Packet Processors View
+----------------------
+
+### Overview
+The packet processors view ... (to be completed)
+
+----
+
+# Network Category Views
+
+Topology View
+-------------
+
+### Overview
+The topology view ... (to be completed)
+
+----
+
+Topology 2 View
+---------------
+
+### Overview
+The topology 2 view ... (to be completed)
+
+----
+
+Devices View
+------------
+
+### Overview
+The devices view ... (to be completed)
+
+----
+
+Flows View
+----------
+
+### Overview
+The flows view ... (to be completed)
+
+----
+
+Ports View
+----------
+
+### Overview
+The ports view ... (to be completed)
+
+----
+
+Groups View
+-----------
+
+### Overview
+The groups view ... (to be completed)
+
+----
+
+Meters View
+-----------
+
+### Overview
+The meters view ... (to be completed)
+
+----
+
+Links View
+----------
+
+### Overview
+The links view ... (to be completed)
+
+----
+
+Hosts View
+----------
+
+### Overview
+The hosts view ... (to be completed)
+
+----
+
+Intents View
+------------
+
+### Overview
+The intents view ... (to be completed)
+
+----
+
+Tunnels View
+------------
+
+### Overview
+The tunnels view ... (to be completed)
+
+----
\ No newline at end of file
diff --git a/web/gui/doc/picture-icon.png b/web/gui/doc/picture-icon.png
new file mode 100644
index 0000000..3b21d65
--- /dev/null
+++ b/web/gui/doc/picture-icon.png
Binary files differ