diff --git a/awx/ui/client/src/inventories-hosts/inventories/inventory.list.js b/awx/ui/client/src/inventories-hosts/inventories/inventory.list.js
index 4e8a0efc61..8d6b8b7219 100644
--- a/awx/ui/client/src/inventories-hosts/inventories/inventory.list.js
+++ b/awx/ui/client/src/inventories-hosts/inventories/inventory.list.js
@@ -5,7 +5,7 @@
*************************************************/
-export default ['i18n', function(i18n) {
+export default ['i18n', 'awxNetStrings' , function(i18n, awxNetStrings) {
return {
name: 'inventories',
@@ -102,9 +102,9 @@ export default ['i18n', function(i18n) {
ngShow: '!inventory.pending_deletion && inventory.summary_fields.user_capabilities.edit'
},
network: {
- label: i18n._('Network Visualization'),
+ label: awxNetStrings.get('feature.ACTION_BUTTON'),
ngClick: 'goToGraph(inventory)',
- awToolTip: i18n._('Network Visualization'),
+ awToolTip: awxNetStrings.get('feature.ACTION_BUTTON'),
dataPlacement: 'top',
ngShow: '!inventory.pending_deletion'
},
diff --git a/awx/ui/client/src/inventories-hosts/inventories/list/inventory-list.controller.js b/awx/ui/client/src/inventories-hosts/inventories/list/inventory-list.controller.js
index f3f0736740..a63fe5731f 100644
--- a/awx/ui/client/src/inventories-hosts/inventories/list/inventory-list.controller.js
+++ b/awx/ui/client/src/inventories-hosts/inventories/list/inventory-list.controller.js
@@ -86,7 +86,12 @@ function InventoriesList($scope,
};
$scope.goToGraph = function(inventory){
- $state.go('inventories.edit.networking', {inventory_id: inventory.id, inventory_name: inventory.name});
+ if(inventory.kind && inventory.kind === 'smart') {
+ $state.go('inventories.editSmartInventory.networking', {smartinventory_id: inventory.id, inventory_name: inventory.name});
+ }
+ else {
+ $state.go('inventories.edit.networking', {inventory_id: inventory.id, inventory_name: inventory.name});
+ }
};
$scope.editInventory = function (inventory, reload) {
diff --git a/awx/ui/client/src/inventories-hosts/inventories/main.js b/awx/ui/client/src/inventories-hosts/inventories/main.js
index 20feecfe10..cf13eaacd5 100644
--- a/awx/ui/client/src/inventories-hosts/inventories/main.js
+++ b/awx/ui/client/src/inventories-hosts/inventories/main.js
@@ -46,6 +46,7 @@ import groupNestedGroupsAssociateRoute from './related/groups/related/nested-gro
import nestedHostsAssociateRoute from './related/groups/related/nested-hosts/group-nested-hosts-associate.route';
import nestedHostsAddRoute from './related/groups/related/nested-hosts/group-nested-hosts-add.route';
import hostCompletedJobsRoute from '~features/jobs/routes/hostCompletedJobs.route.js';
+import networkUIRoute from '../../network-ui/network.ui.route.js';
export default
angular.module('inventory', [
@@ -294,6 +295,9 @@ angular.module('inventory', [
let relatedHostCompletedJobs = _.cloneDeep(hostCompletedJobsRoute);
relatedHostCompletedJobs.name = 'inventories.edit.hosts.edit.completed_jobs';
+ let smartInvNetworkUI = _.cloneDeep(networkUIRoute);
+ smartInvNetworkUI.name = 'inventories.editSmartInventory.networking';
+
return Promise.all([
standardInventoryAdd,
standardInventoryEdit,
@@ -342,7 +346,9 @@ angular.module('inventory', [
stateExtender.buildDefinition(nestedHostsAssociateRoute),
stateExtender.buildDefinition(nestedGroupsAdd),
stateExtender.buildDefinition(nestedHostsAddRoute),
- stateExtender.buildDefinition(relatedHostCompletedJobs)
+ stateExtender.buildDefinition(relatedHostCompletedJobs),
+ stateExtender.buildDefinition(networkUIRoute),
+ stateExtender.buildDefinition(smartInvNetworkUI)
])
};
});
diff --git a/awx/ui/client/src/inventories-hosts/inventories/smart-inventory/edit/smart-inventory-edit.controller.js b/awx/ui/client/src/inventories-hosts/inventories/smart-inventory/edit/smart-inventory-edit.controller.js
index 7af348d0d1..be09299704 100644
--- a/awx/ui/client/src/inventories-hosts/inventories/smart-inventory/edit/smart-inventory-edit.controller.js
+++ b/awx/ui/client/src/inventories-hosts/inventories/smart-inventory/edit/smart-inventory-edit.controller.js
@@ -95,6 +95,10 @@ function SmartInventoryEdit($scope, $location,
});
};
+ $scope.goToGraph = function(){
+ $state.go('inventories.editSmartInventory.networking', {smartinventory_id: $scope.inventory_obj.id, inventory_name: $scope.inventory_obj.name});
+ };
+
$scope.formCancel = function() {
$state.go('inventories');
};
diff --git a/awx/ui/client/src/inventories-hosts/inventories/smart-inventory/smart-inventory.form.js b/awx/ui/client/src/inventories-hosts/inventories/smart-inventory/smart-inventory.form.js
index 01a49b008b..edd6846619 100644
--- a/awx/ui/client/src/inventories-hosts/inventories/smart-inventory/smart-inventory.form.js
+++ b/awx/ui/client/src/inventories-hosts/inventories/smart-inventory/smart-inventory.form.js
@@ -4,7 +4,7 @@
* All Rights Reserved
*************************************************/
-export default ['i18n', function(i18n) {
+export default ['i18n', 'awxNetStrings', function(i18n, awxNetStrings) {
return {
addTitle: i18n._('NEW SMART INVENTORY'),
@@ -156,6 +156,14 @@ export default ['i18n', function(i18n) {
skipGenerator: true,
ngClick: "$state.go('inventories.editSmartInventory.completed_jobs')"
}
+ },
+ relatedButtons: {
+ network: {
+ ngClick: 'goToGraph()',
+ label: awxNetStrings.get('feature.ACTION_BUTTON'),
+ class: 'Form-primaryButton',
+ ngShow: "$state.is('inventories.editSmartInventory')"
+ }
}
};
diff --git a/awx/ui/client/src/inventories-hosts/inventories/standard-inventory/edit/inventory-edit.controller.js b/awx/ui/client/src/inventories-hosts/inventories/standard-inventory/edit/inventory-edit.controller.js
index 8f96ae9f6f..65579c96b9 100644
--- a/awx/ui/client/src/inventories-hosts/inventories/standard-inventory/edit/inventory-edit.controller.js
+++ b/awx/ui/client/src/inventories-hosts/inventories/standard-inventory/edit/inventory-edit.controller.js
@@ -99,6 +99,10 @@ function InventoriesEdit($scope, $location,
});
};
+ $scope.goToGraph = function(){
+ $state.go('inventories.edit.networking', {inventory_id: $scope.inventory_obj.id, inventory_name: $scope.inventory_obj.name});
+ };
+
$scope.formCancel = function() {
$state.go('inventories');
};
diff --git a/awx/ui/client/src/inventories-hosts/inventories/standard-inventory/inventory.form.js b/awx/ui/client/src/inventories-hosts/inventories/standard-inventory/inventory.form.js
index 1c9f1dd13d..9219c91fe4 100644
--- a/awx/ui/client/src/inventories-hosts/inventories/standard-inventory/inventory.form.js
+++ b/awx/ui/client/src/inventories-hosts/inventories/standard-inventory/inventory.form.js
@@ -10,8 +10,8 @@
* @description This form is for adding/editing an inventory
*/
-export default ['i18n',
-function(i18n) {
+export default ['i18n', 'awxNetStrings',
+function(i18n, awxNetStrings) {
return {
addTitle: i18n._('NEW INVENTORY'),
@@ -174,9 +174,15 @@ function(i18n) {
}
},
relatedButtons: {
+ network: {
+ ngClick: 'goToGraph()',
+ ngShow: "$state.is('inventories.edit')",
+ label: awxNetStrings.get('feature.ACTION_BUTTON'),
+ class: 'Form-primaryButton'
+ },
remediate_inventory: {
ngClick: 'remediateInventory(id, insights_credential)',
- ngShow: 'is_insights && mode !== "add" && canRemediate',
+ ngShow: "is_insights && mode !== 'add' && canRemediate && ($state.is('inventories.edit') || $state.is('inventories.edit.hosts'))",
label: i18n._('Remediate Inventory'),
class: 'Form-primaryButton'
}
diff --git a/awx/ui/client/src/network-ui/fsm.js b/awx/ui/client/src/network-ui/fsm.js
index ffd833623d..3d43531c79 100644
--- a/awx/ui/client/src/network-ui/fsm.js
+++ b/awx/ui/client/src/network-ui/fsm.js
@@ -22,7 +22,7 @@ function NullChannel(from_controller, tracer) {
NullChannel.prototype.send = function() {
};
-function FSMController (scope, name, initial_state, tracer) {
+function FSMController (scope, name, initial_state, tracer, log) {
this.scope = scope;
this.name = name;
this.state = initial_state;
@@ -32,6 +32,7 @@ function FSMController (scope, name, initial_state, tracer) {
this.handling_message_type = 'start';
this.state.start(this);
this.handling_message_type = null;
+ this.log = log;
}
exports.FSMController = FSMController;
diff --git a/awx/ui/client/src/network-ui/inventory_toolbox.partial.svg b/awx/ui/client/src/network-ui/inventory_toolbox.partial.svg
index 88d4c67cfe..348c0b20e3 100644
--- a/awx/ui/client/src/network-ui/inventory_toolbox.partial.svg
+++ b/awx/ui/client/src/network-ui/inventory_toolbox.partial.svg
@@ -91,6 +91,7 @@
{{toolbox.name}}
diff --git a/awx/ui/client/src/network-ui/move.fsm.js b/awx/ui/client/src/network-ui/move.fsm.js
index 6744d8a91e..eaa72bab15 100644
--- a/awx/ui/client/src/network-ui/move.fsm.js
+++ b/awx/ui/client/src/network-ui/move.fsm.js
@@ -174,7 +174,7 @@ _Ready.prototype.onPasteDevice = function (controller, msg_type, message) {
}
scope.selected_devices.push(device);
device.selected = true;
- console.log(c_messages);
+ controller.log.debug(c_messages);
scope.$emit('awxNet-addSearchOption', device);
scope.send_control_message(new messages.MultipleMessage(controller.scope.client_id, c_messages));
controller.changeState(Selected2);
diff --git a/awx/ui/client/src/network-ui/network-details/details.controller.js b/awx/ui/client/src/network-ui/network-details/details.controller.js
index 4382ea5b64..36c05cf097 100644
--- a/awx/ui/client/src/network-ui/network-details/details.controller.js
+++ b/awx/ui/client/src/network-ui/network-details/details.controller.js
@@ -14,7 +14,7 @@
};
}
$scope.codeMirror = new codemirror();
- $scope.formCancel = function(){
+ $scope.formClose = function(){
$scope.$parent.$broadcast('awxNet-closeDetailsPanel');
};
$scope.strings = strings;
diff --git a/awx/ui/client/src/network-ui/network-details/details.partial.html b/awx/ui/client/src/network-ui/network-details/details.partial.html
index acb5df2894..ed30e056ad 100644
--- a/awx/ui/client/src/network-ui/network-details/details.partial.html
+++ b/awx/ui/client/src/network-ui/network-details/details.partial.html
@@ -40,7 +40,7 @@
-
+
{{strings.get('details.SAVE_COMPLETE')}}
diff --git a/awx/ui/client/src/network-ui/network-nav/main.js b/awx/ui/client/src/network-ui/network-nav/main.js
index facbb7cd7d..8561a2017d 100644
--- a/awx/ui/client/src/network-ui/network-nav/main.js
+++ b/awx/ui/client/src/network-ui/network-nav/main.js
@@ -1,54 +1,6 @@
-import NetworkingController from './network.nav.controller';
-
const MODULE_NAME = 'at.features.networking';
-const networkNavTemplate = require('~network-ui/network-nav/network.nav.view.html');
-
-function NetworkingResolve ($stateParams, resourceData) {
- const resolve = {
- inventory: {
- id: $stateParams.inventory_id,
- name: $stateParams.inventory_name
- },
- canEdit: resourceData.data.summary_fields.user_capabilities.edit
- };
- if (!resolve.inventory.name) {
- resolve.inventory.name = resourceData.data.name;
- }
- return resolve;
-}
-
-NetworkingResolve.$inject = [
- '$stateParams',
- 'resourceData'
-];
-function NetworkingRun ($stateExtender, strings) {
- $stateExtender.addState({
- name: 'inventories.edit.networking',
- route: '/networking',
- ncyBreadcrumb: {
- label: strings.get('state.BREADCRUMB_LABEL')
- },
- views: {
- 'networking@': {
- templateUrl: networkNavTemplate,
- controller: NetworkingController,
- controllerAs: 'vm'
- }
- },
- resolve: {
- resolvedModels: NetworkingResolve
- }
- });
-}
-
-NetworkingRun.$inject = [
- '$stateExtender',
- 'awxNetStrings'
-];
-
angular
- .module(MODULE_NAME, [])
- .run(NetworkingRun);
+ .module(MODULE_NAME, []);
export default MODULE_NAME;
diff --git a/awx/ui/client/src/network-ui/network-nav/network.nav.controller.js b/awx/ui/client/src/network-ui/network-nav/network.nav.controller.js
index 1e0f9573c4..b9103431a8 100644
--- a/awx/ui/client/src/network-ui/network-nav/network.nav.controller.js
+++ b/awx/ui/client/src/network-ui/network-nav/network.nav.controller.js
@@ -1,15 +1,12 @@
/* eslint-disable */
-function NetworkingController (models, $state, $scope, strings) {
+function NetworkingController (canEdit, inventory, $state, $scope, strings) {
const vm = this || {};
- const {
- inventory
- } = models;
vm.networkUIisOpen = true;
vm.strings = strings;
vm.panelTitle = `${strings.get('state.BREADCRUMB_LABEL')} | ${inventory.name}`;
vm.hostDetail = {};
- vm.canEdit = models.canEdit;
+ vm.canEdit = canEdit;
vm.rightPanelIsExpanded = false;
vm.leftPanelIsExpanded = true;
vm.keyPanelExpanded = false;
@@ -131,7 +128,8 @@ function NetworkingController (models, $state, $scope, strings) {
}
NetworkingController.$inject = [
- 'resolvedModels',
+ 'canEdit',
+ 'inventory',
'$state',
'$scope',
'awxNetStrings',
diff --git a/awx/ui/client/src/network-ui/network.ui.app.js b/awx/ui/client/src/network-ui/network.ui.app.js
index 3da725f7ff..9ebe5f32f9 100644
--- a/awx/ui/client/src/network-ui/network.ui.app.js
+++ b/awx/ui/client/src/network-ui/network.ui.app.js
@@ -5,7 +5,6 @@ import networkDetailsDirective from './network-details/main';
import networkZoomWidget from './zoom-widget/main';
import awxNetStrings from './network.ui.strings';
-//console.log = function () { };
var NetworkUIController = require('./network.ui.controller.js');
var cursor = require('./cursor.directive.js');
var router = require('./router.directive.js');
diff --git a/awx/ui/client/src/network-ui/network.ui.controller.js b/awx/ui/client/src/network-ui/network.ui.controller.js
index a207471da6..70114aeae1 100644
--- a/awx/ui/client/src/network-ui/network.ui.controller.js
+++ b/awx/ui/client/src/network-ui/network.ui.controller.js
@@ -42,7 +42,7 @@ var NetworkUIController = function($scope,
$scope.topology_id = 0;
// Create a web socket to connect to the backend server
- $scope.inventory_id = $state.params.inventory_id;
+ $scope.inventory_id = $scope.$parent.$resolve.inventory.id;
var protocol = null;
@@ -153,7 +153,7 @@ var NetworkUIController = function($scope,
from_y: 0,
to_x: 0,
to_y: 0};
- $scope.canEdit = $scope.$parent.$resolve.resolvedModels.canEdit;
+ $scope.canEdit = $scope.$parent.$resolve.canEdit;
$scope.strings = awxNetStrings;
$scope.send_trace_message = function (message) {
if (!$scope.recording) {
@@ -194,17 +194,17 @@ var NetworkUIController = function($scope,
};
//Define the FSMs
- $scope.hotkeys_controller = new fsm.FSMController($scope, "hotkeys_fsm", hotkeys.Start, $scope);
- $scope.keybindings_controller = new fsm.FSMController($scope, "keybindings_fsm", keybindings.Start, $scope);
- $scope.view_controller = new fsm.FSMController($scope, "view_fsm", view.Start, $scope);
- $scope.move_controller = new fsm.FSMController($scope, "move_fsm", move.Start, $scope);
- $scope.move_readonly_controller = new fsm.FSMController($scope, "move_readonly_fsm", move_readonly.Start, $scope);
- $scope.details_panel_controller = new fsm.FSMController($scope, "details_panel_fsm", details_panel_fsm.Start, $scope);
- $scope.buttons_controller = new fsm.FSMController($scope, "buttons_fsm", buttons.Start, $scope);
- $scope.time_controller = new fsm.FSMController($scope, "time_fsm", time.Start, $scope);
- $scope.test_controller = new fsm.FSMController($scope, "test_fsm", test_fsm.Start, $scope);
+ $scope.hotkeys_controller = new fsm.FSMController($scope, "hotkeys_fsm", hotkeys.Start, $scope, $log);
+ $scope.keybindings_controller = new fsm.FSMController($scope, "keybindings_fsm", keybindings.Start, $scope, $log);
+ $scope.view_controller = new fsm.FSMController($scope, "view_fsm", view.Start, $scope, $log);
+ $scope.move_controller = new fsm.FSMController($scope, "move_fsm", move.Start, $scope, $log);
+ $scope.move_readonly_controller = new fsm.FSMController($scope, "move_readonly_fsm", move_readonly.Start, $scope, $log);
+ $scope.details_panel_controller = new fsm.FSMController($scope, "details_panel_fsm", details_panel_fsm.Start, $scope, $log);
+ $scope.buttons_controller = new fsm.FSMController($scope, "buttons_fsm", buttons.Start, $scope, $log);
+ $scope.time_controller = new fsm.FSMController($scope, "time_fsm", time.Start, $scope, $log);
+ $scope.test_controller = new fsm.FSMController($scope, "test_fsm", test_fsm.Start, $scope, $log);
- $scope.inventory_toolbox_controller = new fsm.FSMController($scope, "toolbox_fsm", toolbox_fsm.Start, $scope);
+ $scope.inventory_toolbox_controller = new fsm.FSMController($scope, "toolbox_fsm", toolbox_fsm.Start, $scope, $log);
var toolboxTopMargin = $('.Networking-top').height();
var toolboxTitleMargin = toolboxTopMargin + 35;
diff --git a/awx/ui/client/src/network-ui/network.ui.route.js b/awx/ui/client/src/network-ui/network.ui.route.js
new file mode 100644
index 0000000000..3c158b04f0
--- /dev/null
+++ b/awx/ui/client/src/network-ui/network.ui.route.js
@@ -0,0 +1,34 @@
+import { N_ } from '../i18n';
+import NetworkingController from './network-nav/network.nav.controller';
+
+const networkNavTemplate = require('~network-ui/network-nav/network.nav.view.html');
+
+export default {
+ name: 'inventories.edit.networking',
+ route: '/networking',
+ ncyBreadcrumb: {
+ label: N_("INVENTORIES")
+ },
+ views: {
+ 'networking@': {
+ templateUrl: networkNavTemplate,
+ controller: NetworkingController,
+ controllerAs: 'vm'
+ }
+ },
+ resolve: {
+ inventory: ['$stateParams', 'resourceData',
+ function($stateParams, resourceData){
+ let inventory = {
+ name: $stateParams.inventory_name || resourceData.data.name,
+ id: $stateParams.inventory_id || $stateParams.smartinventory_id
+ };
+ return inventory;
+ }],
+ canEdit: ['$stateParams', 'resourceData',
+ function($stateParams, resourceData){
+ return resourceData.data.summary_fields.user_capabilities.edit;
+ }
+ ]
+ }
+};
\ No newline at end of file
diff --git a/awx/ui/client/src/network-ui/network.ui.strings.js b/awx/ui/client/src/network-ui/network.ui.strings.js
index 4b93ea90a6..c82fcdc623 100644
--- a/awx/ui/client/src/network-ui/network.ui.strings.js
+++ b/awx/ui/client/src/network-ui/network.ui.strings.js
@@ -4,8 +4,12 @@ function awxNetStrings (BaseString) {
const { t } = this;
const ns = this.awxNet;
+ ns.feature = {
+ ACTION_BUTTON: t.s('Network Visualizer')
+ };
+
ns.state = {
- BREADCRUMB_LABEL: t.s('INVENTORIES')
+ BREADCRUMB_LABEL: t.s('NETWORK VISUALIZER')
};
ns.toolbox = {
@@ -13,7 +17,7 @@ function awxNetStrings (BaseString) {
};
ns.actions = {
- ACTIONS: t.s('Actions'),
+ ACTIONS: t.s('ACTIONS'),
EXPORT: t.s('Export'),
EXPAND_PANEL: t.s('Expand Panel'),
COLLAPSE_PANEL: t.s('Collapse Panel')
@@ -29,7 +33,7 @@ function awxNetStrings (BaseString) {
};
ns.search = {
- SEARCH: t.s('Search'),
+ SEARCH: t.s('SEARCH'),
HOST: t.s('Host'),
SWITCH: t.s('Switch'),
ROUTER: t.s('Router'),
@@ -46,7 +50,7 @@ function awxNetStrings (BaseString) {
DESCRIPTION: t.s('Description'),
HOST_POPOVER: t.s('Provide a host name, ip address, or ip address:port. Examples include:'),
SAVE_COMPLETE: t.s('Save Complete'),
- CANCEL: t.s('Cancel')
+ CLOSE: t.s('Close')
};
}
diff --git a/awx/ui/client/src/network-ui/test.fsm.js b/awx/ui/client/src/network-ui/test.fsm.js
index 4867e92f59..8e0b19a6aa 100644
--- a/awx/ui/client/src/network-ui/test.fsm.js
+++ b/awx/ui/client/src/network-ui/test.fsm.js
@@ -117,7 +117,7 @@ _Reporting.prototype.start = function (controller) {
new Date().toISOString(),
controller.scope.version);
controller.scope.test_results.push(test_result);
- console.log(["Reporting test", test_result.name, test_result.id]);
+ controller.log.debug(["Reporting test", test_result.name, test_result.id]);
controller.scope.send_test_message(new messages.TestResult(controller.scope.client_id,
test_result.id,
test_result.name,
@@ -125,7 +125,7 @@ _Reporting.prototype.start = function (controller) {
test_result.date,
test_result.code_under_test));
if (typeof(window.__coverage__) !== "undefined" && window.__coverage__ !== null) {
- console.log(["Reporting coverage", test_result.name, test_result.id]);
+ controller.log.debug(["Reporting coverage", test_result.name, test_result.id]);
controller.scope.send_test_message(new messages.Coverage(controller.scope.client_id, window.__coverage__, test_result.id));
}
controller.changeState(Loading);
@@ -138,7 +138,7 @@ _Loading.prototype.start = function (controller) {
if (controller.scope.current_tests.length === 0) {
controller.changeState(Disabled);
} else {
- console.log("Starting test");
+ controller.log.debug("Starting test");
controller.scope.reset_coverage();
controller.scope.current_test = controller.scope.current_tests.shift();
controller.scope.reset_toolboxes();
@@ -169,7 +169,7 @@ _Ready.prototype.start = function (controller) {
var load_id = controller.scope.test_result_id_seq();
- console.log(["Reporting Load", load_id]);
+ controller.log.debug(["Reporting Load", load_id]);
controller.scope.send_test_message(new messages.TestResult(controller.scope.client_id,
load_id,
"Load",
@@ -177,7 +177,7 @@ _Ready.prototype.start = function (controller) {
new Date().toISOString(),
controller.scope.version));
if (typeof(window.__coverage__) !== "undefined" && window.__coverage__ !== null) {
- console.log(["Reporting Load Coverage", load_id]);
+ controller.log.debug(["Reporting Load Coverage", load_id]);
controller.scope.send_test_message(new messages.Coverage(controller.scope.client_id, window.__coverage__, load_id));
}
diff --git a/awx/ui/client/src/shared/socket/socket.service.js b/awx/ui/client/src/shared/socket/socket.service.js
index f58c2d6928..f8db80b977 100644
--- a/awx/ui/client/src/shared/socket/socket.service.js
+++ b/awx/ui/client/src/shared/socket/socket.service.js
@@ -150,7 +150,7 @@ export default
if(this.socket){
this.socket.close();
delete this.socket;
- console.log("Socket deleted: "+this.socket);
+ $log.debug("Socket deleted: "+this.socket);
}
},
subscribe: function(state){