diff --git a/web/gui/src/main/webapp/app/view/app/app.js b/web/gui/src/main/webapp/app/view/app/app.js
index d2bab39..e315072 100644
--- a/web/gui/src/main/webapp/app/view/app/app.js
+++ b/web/gui/src/main/webapp/app/view/app/app.js
@@ -23,9 +23,9 @@
 
     angular.module('ovApp', [])
     .controller('OvAppCtrl',
-        ['$log', '$scope', '$location', 'FnService', 'WebSocketService',
+        ['$log', '$scope', 'FnService', 'WebSocketService',
 
-        function ($log, $scope, $location, fs, wss) {
+        function ($log, $scope, fs, wss) {
             var self = this;
             self.appData = [];
 
diff --git a/web/gui/src/main/webapp/app/view/device/device.js b/web/gui/src/main/webapp/app/view/device/device.js
index d7b3292..a201e3f 100644
--- a/web/gui/src/main/webapp/app/view/device/device.js
+++ b/web/gui/src/main/webapp/app/view/device/device.js
@@ -23,9 +23,9 @@
 
     angular.module('ovDevice', [])
     .controller('OvDeviceCtrl',
-        ['$log', '$scope', '$location', 'WebSocketService',
+        ['$log', '$scope', 'WebSocketService',
 
-        function ($log, $scope, $location, wss) {
+        function ($log, $scope, wss) {
             var self = this;
             self.deviceData = [];
 
diff --git a/web/gui/src/main/webapp/app/view/host/host.js b/web/gui/src/main/webapp/app/view/host/host.js
index 378f597..c090c73 100644
--- a/web/gui/src/main/webapp/app/view/host/host.js
+++ b/web/gui/src/main/webapp/app/view/host/host.js
@@ -23,9 +23,9 @@
 
     angular.module('ovHost', [])
     .controller('OvHostCtrl',
-        ['$log', '$scope', '$location', 'FnService', 'WebSocketService',
+        ['$log', '$scope', 'FnService', 'WebSocketService',
 
-        function ($log, $scope, $location, fs, wss) {
+        function ($log, $scope, fs, wss) {
             var self = this;
             self.hostData = [];
 
diff --git a/web/gui/src/main/webapp/app/view/intent/intent.css b/web/gui/src/main/webapp/app/view/intent/intent.css
new file mode 100644
index 0000000..d0cb9a2
--- /dev/null
+++ b/web/gui/src/main/webapp/app/view/intent/intent.css
@@ -0,0 +1,22 @@
+/*
+ * Copyright 2015 Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ ONOS GUI -- Intent View -- CSS file
+ */
+
+#ov-intent td {
+}
\ No newline at end of file
diff --git a/web/gui/src/main/webapp/app/view/intent/intent.html b/web/gui/src/main/webapp/app/view/intent/intent.html
new file mode 100644
index 0000000..c3ff85a
--- /dev/null
+++ b/web/gui/src/main/webapp/app/view/intent/intent.html
@@ -0,0 +1,44 @@
+<!--
+  ~ Copyright 2015 Open Networking Laboratory
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~     http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+
+<!-- Intent partial HTML -->
+<div id="ov-intent">
+    <h2>Intents ({{ctrl.intentData.length}} total)</h2>
+    <table class="summary-list"
+           onos-fixed-header
+           onos-sortable-header
+           sort-callback="sortCallback(requestParams)">
+        <thead>
+        <tr>
+            <th colId="appId" sortable>Application ID </th>
+            <th colId="key" sortable>Key </th>
+            <th colId="type" sortable>Type </th>
+            <th colId="priority" sortable>Priority </th>
+        </tr>
+        </thead>
+
+        <tbody>
+        <tr ng-repeat="intent in ctrl.intentData"
+            ng-repeat-done>
+            <td>{{intent.appId}}</td>
+            <td>{{intent.key}}</td>
+            <td>{{intent.type}}</td>
+            <td>{{intent.priority}}</td>
+        </tr>
+        </tbody>
+    </table>
+
+</div>
diff --git a/web/gui/src/main/webapp/app/view/intent/intent.js b/web/gui/src/main/webapp/app/view/intent/intent.js
new file mode 100644
index 0000000..314bdf8
--- /dev/null
+++ b/web/gui/src/main/webapp/app/view/intent/intent.js
@@ -0,0 +1,55 @@
+/*
+ * Copyright 2015 Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ ONOS GUI -- Intent View Module
+ */
+
+(function () {
+    'use strict';
+
+    angular.module('ovIntent', [])
+        .controller('OvIntentCtrl',
+        ['$log', '$scope', 'FnService', 'WebSocketService',
+
+            function ($log, $scope, fs, wss) {
+                var self = this;
+                self.intentData = [];
+
+                $scope.responseCallback = function(data) {
+                    self.intentData = data.intents;
+                    $scope.$apply();
+                };
+
+                $scope.sortCallback = function (requestParams) {
+                    wss.sendEvent('intentDataRequest', requestParams);
+                };
+
+                var handlers = {
+                    intentDataResponse: $scope.responseCallback
+                };
+                wss.bindHandlers(handlers);
+
+                // Cleanup on destroyed scope
+                $scope.$on('$destroy', function () {
+                    wss.unbindHandlers(handlers);
+                });
+
+                $scope.sortCallback();
+
+                $log.log('OvIntentCtrl has been created');
+            }]);
+}());
diff --git a/web/gui/src/main/webapp/index.html b/web/gui/src/main/webapp/index.html
index ef45356..638f3f3 100644
--- a/web/gui/src/main/webapp/index.html
+++ b/web/gui/src/main/webapp/index.html
@@ -102,6 +102,7 @@
     <script src="app/view/device/device.js"></script>
     <script src="app/view/host/host.js"></script>
     <script src="app/view/app/app.js"></script>
+    <script src="app/view/intent/intent.js"></script>
     <script src="app/view/sample/sample.js"></script>
     <!-- {INJECTED-JAVASCRIPT-END} -->
 
@@ -112,6 +113,7 @@
     <link rel="stylesheet" href="app/view/device/device.css">
     <link rel="stylesheet" href="app/view/host/host.css">
     <link rel="stylesheet" href="app/view/app/app.css">
+    <link rel="stylesheet" href="app/view/intent/intent.css">
     <link rel="stylesheet" href="app/view/sample/sample.css">
     <!-- {INJECTED-STYLESHEETS-END} -->
 
diff --git a/web/gui/src/main/webapp/onos.js b/web/gui/src/main/webapp/onos.js
index 2822cf6..ad73fc8 100644
--- a/web/gui/src/main/webapp/onos.js
+++ b/web/gui/src/main/webapp/onos.js
@@ -40,6 +40,7 @@
         'device',
         'host',
         'app',
+        'intent',
         'sample',
         // {INJECTED-VIEW-IDS-END}
 
