blob: 6bbf85b7e9127dda5f8dc4df8d4aa2266440d912 [file] [log] [blame]
Sean Condonf4f54a12018-10-10 23:25:46 +01001<!--
Sean Condon91481822019-01-01 13:56:14 +00002~ Copyright 2019-present Open Networking Foundation
Sean Condonf4f54a12018-10-10 23:25:46 +01003~
4~ Licensed under the Apache License, Version 2.0 (the "License");
5~ you may not use this file except in compliance with the License.
6~ You may obtain a copy of the License at
7~
8~ http://www.apache.org/licenses/LICENSE-2.0
9~
10~ Unless required by applicable law or agreed to in writing, software
11~ distributed under the License is distributed on an "AS IS" BASIS,
12~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13~ See the License for the specific language governing permissions and
14~ limitations under the License.
15-->
Sean Condon91481822019-01-01 13:56:14 +000016<svg:desc xmlns:svg="http://www.w3.org/2000/svg">The force layout layer. This is
17 an SVG component that displays Nodes (Devices, Hosts and SubRegions) and
18 Links. Positions of each are driven by a forces computation engine</svg:desc>
19<svg:g xmlns:svg="http://www.w3.org/2000/svg" class="topo2-links">
20 <svg:desc>Topology links</svg:desc>
21 <!-- Template explanation: Creates an SVG Group and in
22 line 1) use the svg component onos-linksvg, setting it's link
23 Input parameter to the link item from the next line
24 line 2) Use the built in NgFor directive to iterate through the
25 set of links filtered by the filteredLinks() function.
26 -->
27 <svg:g onos-linksvg [link]="link"
28 *ngFor="let link of filteredLinks()"
29 [highlightsEnabled]="highlightPorts"
30 (selectedEvent)="updateSelected($event)">
31 </svg:g>
32</svg:g>
33<svg:g xmlns:svg="http://www.w3.org/2000/svg" class="topo2-nodes">
34 <svg:desc>Topology nodes</svg:desc>
35 <!-- Template explanation - create an SVG Group and
36 line 1) use the svg component onos-devicenodesvg, setting it's device
37 Input parameter to the device item from the next line
38 line 2) Use the built in NgFor directive to iterate through all
39 of the devices in the chosen layer index. The current iteration
40 is in the device variable
41 line 3) Use the onosDraggable directive and pass this device in to
42 its draggableNode Input parameter and setting the draggableInGraph
43 Input parameter to 'graph'
Sean Condon71910542019-02-16 18:16:42 +000044 line 4) event handler of the draggable directive - causes the new location
45 to be written back to the server
46 line 5) when the onos-devicenodesvg component emits the selectedEvent
Sean Condon91481822019-01-01 13:56:14 +000047 call the updateSelected() method of this (forcesvg) component
48 -->
49 <svg:g onos-devicenodesvg [device]="device"
50 *ngFor="let device of regionData.devices[visibleLayerIdx()]"
51 onosDraggableNode [draggableNode]="device" [draggableInGraph]="graph"
Sean Condon71910542019-02-16 18:16:42 +000052 (newLocation)="nodeMoved('device', device.id, $event)"
Sean Condonb2c483c2019-01-16 20:28:55 +000053 (selectedEvent)="updateSelected($event)"
54 [labelToggle]="deviceLabelToggle">
Sean Condon91481822019-01-01 13:56:14 +000055 <svg:desc>Device nodes</svg:desc>
56 </svg:g>
57 <!-- Template explanation - only display the hosts if 'showHosts' is set true -->
58 <svg:g *ngIf="showHosts">
59 <!-- Template explanation - create an SVG Group and
60 line 1) use the svg component onos-hostnodesvg, setting it's host
61 Input parameter to the host item from the next line
62 line 2) Use the built in NgFor directive to iterate through all
63 of the hosts in the chosen layer index. The current iteration
64 is in the 'host' variable
65 line 3) Use the onosDraggable directive and pass this host in to
66 its draggableNode Input parameter and setting the draggableInGraph
67 Input parameter to 'graph'
Sean Condon71910542019-02-16 18:16:42 +000068 line 4) event handler of the draggable directive - causes the new location
69 to be written back to the server
70 line 5) when the onos-hostnodesvg component emits the selectedEvent
Sean Condon91481822019-01-01 13:56:14 +000071 call the updateSelected() method of this (forcesvg) component
72 -->
73 <svg:g onos-hostnodesvg [host]="host"
74 *ngFor="let host of regionData.hosts[visibleLayerIdx()]"
75 onosDraggableNode [draggableNode]="host" [draggableInGraph]="graph"
Sean Condon71910542019-02-16 18:16:42 +000076 (newLocation)="nodeMoved('host', device.id, $event)"
Sean Condonb2c483c2019-01-16 20:28:55 +000077 (selectedEvent)="updateSelected($event)"
78 [labelToggle]="hostLabelToggle">
Sean Condon91481822019-01-01 13:56:14 +000079 <svg:desc>Host nodes</svg:desc>
Sean Condon0c577f62018-11-18 22:40:05 +000080 </svg:g>
81 </svg:g>
Sean Condon91481822019-01-01 13:56:14 +000082 <svg:g onos-subregionnodesvg [subRegion]="subRegion"
83 *ngFor="let subRegion of regionData.subregions"
84 onosDraggableNode [draggableNode]="host" [draggableInGraph]="graph">
85 <svg:desc>Subregion nodes</svg:desc>
86 </svg:g>
Sean Condonf4f54a12018-10-10 23:25:46 +010087</svg:g>