GUI --Added cleanup on scope destroy for sample and device views.

Change-Id: Ia1656eb3987f2f896fa7d6d2cec2860495ce36d7
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 54361ee..f979abf 100644
--- a/web/gui/src/main/webapp/app/view/device/device.js
+++ b/web/gui/src/main/webapp/app/view/device/device.js
@@ -22,7 +22,9 @@
     'use strict';
 
     angular.module('ovDevice', [])
-        .controller('OvDeviceCtrl', ['$log', '$scope', '$location', 'RestService',
+    .controller('OvDeviceCtrl',
+        ['$log', '$scope', '$location', 'RestService',
+
         function ($log, $scope, $location, rs) {
             var self = this;
             self.deviceData = [];
@@ -38,6 +40,11 @@
             };
             $scope.sortCallback();
 
+            // Cleanup on destroyed scope
+            $scope.$on('$destroy', function () {
+
+            });
+
             $log.log('OvDeviceCtrl has been created');
         }]);
 }());
diff --git a/web/gui/src/main/webapp/app/view/sample/sample.js b/web/gui/src/main/webapp/app/view/sample/sample.js
index 66b76bb..c726e90 100644
--- a/web/gui/src/main/webapp/app/view/sample/sample.js
+++ b/web/gui/src/main/webapp/app/view/sample/sample.js
@@ -24,6 +24,9 @@
     // injected refs
     var $log, tbs, flash;
 
+    // configuration
+    var tbid = 'sample-toolbar';
+
     // internal state
     var togFnDiv, radFnP;
 
@@ -50,47 +53,57 @@
             .style('color', '#369');
     }
 
+
+    // define the controller
+
     angular.module('ovSample', ['onosUtil'])
-        .controller('OvSampleCtrl', ['$log', 'ToolbarService', 'FlashService',
-            function (_$log_, _tbs_, _flash_) {
-                var self = this,
-                    toolbar,
-                    rset;
+    .controller('OvSampleCtrl',
+        ['$scope', '$log', 'ToolbarService', 'FlashService',
 
-                $log = _$log_;
-                tbs = _tbs_;
-                flash = _flash_;
+        function ($scope, _$log_, _tbs_, _flash_) {
+            var self = this,
+                toolbar,
+                rset;
 
-                self.message = 'Hey there folks!';
+            $log = _$log_;
+            tbs = _tbs_;
+            flash = _flash_;
 
-                togFnDiv = d3.select('#ov-sample')
-                    .append('div')
-                    .text('Look at me!')
-                    .style({
-                        display: 'none',
-                        color: 'rgb(204, 89, 81)',
-                        'font-size': '20pt'
-                    });
+            self.message = 'Hey there folks!';
 
-                radFnP = d3.select('#ov-sample')
-                    .append('p')
-                    .style('font-size', '16pt');
+            togFnDiv = d3.select('#ov-sample')
+                .append('div')
+                .text('Look at me!')
+                .style({
+                    display: 'none',
+                    color: 'rgb(204, 89, 81)',
+                    'font-size': '20pt'
+                });
 
-                toolbar = tbs.createToolbar('sample');
-                rset = [
-                    { gid: 'checkMark', cb: checkFn },
-                    { gid: 'xMark', cb: xMarkFn },
-                    { gid: 'bird', cb: birdFn }
-                ];
+            radFnP = d3.select('#ov-sample')
+                .append('p')
+                .style('font-size', '16pt');
 
-                toolbar.addButton('demo-button', 'crown', btnFn);
-                toolbar.addToggle('demo-toggle', 'chain', false, togFn);
-                toolbar.addSeparator();
-                toolbar.addRadioSet('demo-radio', rset);
-                toolbar.hide();
+            toolbar = tbs.createToolbar(tbid);
+            rset = [
+                { gid: 'checkMark', cb: checkFn },
+                { gid: 'xMark', cb: xMarkFn },
+                { gid: 'bird', cb: birdFn }
+            ];
 
-                checkFn();
+            toolbar.addButton('demo-button', 'crown', btnFn);
+            toolbar.addToggle('demo-toggle', 'chain', false, togFn);
+            toolbar.addSeparator();
+            toolbar.addRadioSet('demo-radio', rset);
+            toolbar.hide();
 
-             $log.log('OvSampleCtrl has been created');
-        }]);
+            checkFn();
+
+            // Clean up on destroyed scope
+            $scope.$on('$destroy', function () {
+                tbs.destroyToolbar(tbid);
+            });
+
+         $log.log('OvSampleCtrl has been created');
+    }]);
 }());