GUI2 Settings and Partitions View

Change-Id: I605304c20c1e625394d789104fcd7a5b278e244d
diff --git a/web/gui2/src/main/webapp/app/fw/nav/nav/nav.component.html b/web/gui2/src/main/webapp/app/fw/nav/nav/nav.component.html
index 27d4a60..bd4d6af 100644
--- a/web/gui2/src/main/webapp/app/fw/nav/nav/nav.component.html
+++ b/web/gui2/src/main/webapp/app/fw/nav/nav/nav.component.html
@@ -14,30 +14,36 @@
 ~ limitations under the License.
 -->
 <nav id="nav" [@navState]="ns.showNav">
-    <div class="nav-hdr">{{ lionFn('cat_platform') }}</div>
+    <div id="platform" class="nav-hdr">{{ lionFn('cat_platform') }}</div>
 
-    <a (click)="ns.hideNav()" routerLink="/app" routerLinkActive="active">
-        <onos-icon iconId="nav_apps"></onos-icon> Apps</a>
+    <a id="app" (click)="ns.hideNav()" routerLink="/app" routerLinkActive="active">
+        <onos-icon iconId="nav_apps"></onos-icon> Applications</a>
 
-    <a (click)="ns.hideNav()" routerLink="/processor" routerLinkActive="active">
+    <a id="settings" (click)="ns.hideNav()" routerLink="/settings" routerLinkActive="active">
+        <onos-icon iconId="nav_settings"></onos-icon> Settings</a>
+
+    <a id="processor" (click)="ns.hideNav()" routerLink="/processor" routerLinkActive="active">
         <onos-icon iconId="nav_processors"></onos-icon> Packet Processors</a>
 
-    <div class="nav-hdr">{{ lionFn('cat_network') }}</div>
+    <a id="partition" (click)="ns.hideNav()" routerLink="/partition" routerLinkActive="active">
+        <onos-icon iconId="nav_partitions"></onos-icon> Partitions</a>
 
-    <a (click)="ns.hideNav()" routerLink="/device" routerLinkActive="active">
+    <div id="network" class="nav-hdr">{{ lionFn('cat_network') }}</div>
+
+    <a id="device" (click)="ns.hideNav()" routerLink="/device" routerLinkActive="active">
         <onos-icon iconId="nav_devs"></onos-icon> Devices</a>
 
-    <a (click)="ns.hideNav()" routerLink="/link" routerLinkActive="active">
+    <a id="link" (click)="ns.hideNav()" routerLink="/link" routerLinkActive="active">
         <onos-icon iconId="nav_links"></onos-icon> Links</a>
 
-    <a (click)="ns.hideNav()" routerLink="/host" routerLinkActive="active">
+    <a id="host" (click)="ns.hideNav()" routerLink="/host" routerLinkActive="active">
         <onos-icon iconId="nav_hosts"></onos-icon> Hosts</a>
 
-    <a (click)="ns.hideNav()" routerLink="/intent" routerLinkActive="active">
+    <a id="intent" (click)="ns.hideNav()" routerLink="/intent" routerLinkActive="active">
         <onos-icon iconId="nav_intents"></onos-icon> Intents</a>
 
-    <a (click)="ns.hideNav()" routerLink="/tunnel" routerLinkActive="active">
+    <a id="tunnel" (click)="ns.hideNav()" routerLink="/tunnel" routerLinkActive="active">
         <onos-icon iconId="nav_tunnels"></onos-icon> Tunnels</a>
 
-    <div class="nav-hdr">{{ lionFn('cat_other') }}</div>
+    <div id="other" class="nav-hdr">{{ lionFn('cat_other') }}</div>
 </nav>
\ No newline at end of file
diff --git a/web/gui2/src/main/webapp/app/fw/nav/nav/nav.component.spec.ts b/web/gui2/src/main/webapp/app/fw/nav/nav/nav.component.spec.ts
index 7079b15..9435b43 100644
--- a/web/gui2/src/main/webapp/app/fw/nav/nav/nav.component.spec.ts
+++ b/web/gui2/src/main/webapp/app/fw/nav/nav/nav.component.spec.ts
@@ -118,15 +118,78 @@
 
     it('should have a platform div.nav-hdr inside a nav#nav', () => {
         const appDe: DebugElement = fixture.debugElement;
-        const divDe = appDe.query(By.css('nav#nav div.nav-hdr'));
+        const divDe = appDe.query(By.css('nav#nav div#platform.nav-hdr'));
         const div: HTMLElement = divDe.nativeElement;
         expect(div.textContent).toEqual('%cat_platform%');
     });
 
-    it('should have an apps link inside a nav#nav', () => {
+    it('should have an app view link inside a nav#nav', () => {
         const appDe: DebugElement = fixture.debugElement;
-        const divDe = appDe.query(By.css('nav#nav a'));
+        const divDe = appDe.query(By.css('nav#nav a#app'));
         const div: HTMLElement = divDe.nativeElement;
-        expect(div.textContent).toEqual(' Apps');
+        expect(div.textContent).toEqual(' Applications');
+    });
+
+    it('should have an processor view link inside a nav#nav', () => {
+        const appDe: DebugElement = fixture.debugElement;
+        const divDe = appDe.query(By.css('nav#nav a#processor'));
+        const div: HTMLElement = divDe.nativeElement;
+        expect(div.textContent).toEqual(' Packet Processors');
+    });
+
+    it('should have a settings view link inside a nav#nav', () => {
+        const appDe: DebugElement = fixture.debugElement;
+        const divDe = appDe.query(By.css('nav#nav a#settings'));
+        const div: HTMLElement = divDe.nativeElement;
+        expect(div.textContent).toEqual(' Settings');
+    });
+
+    it('should have a partition view link inside a nav#nav', () => {
+        const appDe: DebugElement = fixture.debugElement;
+        const divDe = appDe.query(By.css('nav#nav a#partition'));
+        const div: HTMLElement = divDe.nativeElement;
+        expect(div.textContent).toEqual(' Partitions');
+    });
+
+    it('should have a network div.nav-hdr inside a nav#nav', () => {
+        const appDe: DebugElement = fixture.debugElement;
+        const divDe = appDe.query(By.css('nav#nav div#network.nav-hdr'));
+        const div: HTMLElement = divDe.nativeElement;
+        expect(div.textContent).toEqual('%cat_network%');
+    });
+
+    it('should have a device view link inside a nav#nav', () => {
+        const appDe: DebugElement = fixture.debugElement;
+        const divDe = appDe.query(By.css('nav#nav a#device'));
+        const div: HTMLElement = divDe.nativeElement;
+        expect(div.textContent).toEqual(' Devices');
+    });
+
+    it('should have a link view link inside a nav#nav', () => {
+        const appDe: DebugElement = fixture.debugElement;
+        const divDe = appDe.query(By.css('nav#nav a#link'));
+        const div: HTMLElement = divDe.nativeElement;
+        expect(div.textContent).toEqual(' Links');
+    });
+
+    it('should have a host view link inside a nav#nav', () => {
+        const appDe: DebugElement = fixture.debugElement;
+        const divDe = appDe.query(By.css('nav#nav a#host'));
+        const div: HTMLElement = divDe.nativeElement;
+        expect(div.textContent).toEqual(' Hosts');
+    });
+
+    it('should have a intent view link inside a nav#nav', () => {
+        const appDe: DebugElement = fixture.debugElement;
+        const divDe = appDe.query(By.css('nav#nav a#intent'));
+        const div: HTMLElement = divDe.nativeElement;
+        expect(div.textContent).toEqual(' Intents');
+    });
+
+    it('should have a tunnel view link inside a nav#nav', () => {
+        const appDe: DebugElement = fixture.debugElement;
+        const divDe = appDe.query(By.css('nav#nav a#tunnel'));
+        const div: HTMLElement = divDe.nativeElement;
+        expect(div.textContent).toEqual(' Tunnels');
     });
 });
diff --git a/web/gui2/src/main/webapp/app/fw/svg/icon.service.ts b/web/gui2/src/main/webapp/app/fw/svg/icon.service.ts
index de3672c..0f9da65 100644
--- a/web/gui2/src/main/webapp/app/fw/svg/icon.service.ts
+++ b/web/gui2/src/main/webapp/app/fw/svg/icon.service.ts
@@ -79,6 +79,7 @@
     ['nav_settings', 'cog'],
     ['nav_cluster', 'node'],
     ['nav_processors', 'allTraffic'],
+    ['nav_partitions', 'unknown'],
 
     ['nav_topo', 'topo'],
     ['nav_topo2', 'm_cloud'],