Adding socket object to route definitions

for stdout routes, as well as removing some old code
This commit is contained in:
Jared Tabor 2016-09-07 18:25:31 -07:00
parent aa4a8f6089
commit 0fb4a1a62a
8 changed files with 49 additions and 88 deletions

View File

@ -15,8 +15,8 @@ export default {
},
socket: {
"groups":{
"jobs": ["status_changed", "summary"]
// "job_events": `[${stateParams.id}]`
"jobs": ["status_changed", "summary"],
"job_events": []
}
},
templateUrl: templateUrl('job-detail/job-detail'),

View File

@ -9,6 +9,11 @@ export default {
url: '/portal',
ncyBreadcrumb: {
label: "MY VIEW"
},
socket: {
"groups":{
"jobs": ["status_changed"]
}
},
views: {
// the empty parent ui-view

View File

@ -10,36 +10,31 @@ export default
return {
init: function() {
var self = this,
// token = Authorization.getToken(),
host = window.location.host,
url = "ws://" + host + "/websocket/";
if (!$rootScope.sessionTimer || ($rootScope.sessionTimer && !$rootScope.sessionTimer.isExpired())) {
// We have a valid session token, so attempt socket connection
$log.debug('Socket connecting to: ' + url);
self.socket = new ReconnectingWebSocket(url, null, {
debug: true,
// debug: true,
timeoutInterval: 3000,
maxReconnectAttempts: 10
});
self.socket.onopen = function () {
console.log('websocket connected'); //log errors
$log.debug("Websocket connection opened");
$rootScope.socketPromise.resolve();
};
//
// self.socket.onerror = function (error) {
// console.log('Error Logged: ' + error); //log errors
// };
self.socket.onerror = function (error) {
$log.debug('Error Logged: ' + error); //log errors
};
self.socket.onmessage = function (e) {
console.log('Received From Server: ' + e.data);
$log.debug('Received From Server: ' + e.data);
var data = JSON.parse(e.data);
// {'groups':
// {'jobs': ['status_changed', 'summary'],
// 'schedules': ['changed'],
// 'ad_hoc_command_events': [ids,],
// 'job_events': [ids,],
// 'control': ['limit_reached'],
// }
// }
if(data.group_name==="jobs"){
if (!('status' in data)){
@ -107,40 +102,6 @@ export default
console.log(state.name);
this.emit(JSON.stringify(state.socket));
},
// subscribe: function(toState, toParams){
// if(toState.name === 'dashboard'){
// this.emit('{"groups":{"jobs": ["status_changed"]}}');
// console.log(toState.name);
// }
// if(toState.name === 'jobDetail'){
// this.emit(`{"groups":{"jobs": ["status_changed", "summary"] , "job_events":[${toParams.id}]}}`);
// console.log(toState.name);
// }
// if(toState.name === 'jobStdout'){
// this.emit('{"groups":{"jobs": ["status_changed"]}}');
// console.log(toState.name);
// }
// if(toState.name === 'jobs'){
// this.emit('{"groups":{"jobs": ["status_changed"] , "schedules": ["changed"]}}');
// console.log(toState.name);
// }
// if(toState.name === 'portalMode'){
// this.emit('{"groups":{"jobs": ["status_changed"]}}');
// console.log(toState.name);
// }
// if(toState.name === 'projects'){
// this.emit('{"groups":{"jobs": ["status_changed"]}}');
// console.log(toState.name);
// }
// if(toState.name === 'inventoryManage'){
// this.emit('{"groups":{"jobs": ["status_changed"]}}');
// console.log(toState.name);
// }
// if(toState.name === 'adHocJobStdout'){
// this.emit(`{"groups":{"jobs": ["status_changed"] , "ad_hoc_command_events": [${toParams.id}]}}`);
// console.log(toState.name);
// }
// },
checkStatus: function() {
function getSocketTip(status) {
@ -176,22 +137,9 @@ export default
}
},
// on: function (eventName, callback) {
// var self = this;
// if(self){
// if(self.socket){
// // self.socket.onmessage(function (e) {
// // var args = arguments;
// // self.scope.$apply(function () {
// // callback.apply(self.socket, args);
// // });
// // });
// }
// }
//
// },
emit: function (eventName, data, callback) {
var self = this;
$log.debug('Sent to Server: ' + data);
$rootScope.socketPromise.promise.then(function(){
self.socket.send(eventName, data, function () {
var args = arguments;

View File

@ -6,14 +6,19 @@ export default function($stateProvider) {
if(!state.resolve){
state.resolve = {};
}
state.resolve.socket = ['SocketService', '$rootScope',
function(SocketService, $rootScope) {
// var self = this;
state.resolve.socket = ['SocketService', '$rootScope', '$stateParams',
function(SocketService, $rootScope, $stateParams) {
$rootScope.socketPromise.promise.then(function(){
if(state.socket.groups.hasOwnProperty( "job_events")){
state.socket.groups.job_events = [$stateParams.id];
}
if(state.socket.groups.hasOwnProperty( "ad_hoc_command_events")){
state.socket.groups.job_events = [$stateParams.id];
}
SocketService.subscribe2(state);
return true;
});
}]
}];
},
addState: function(state) {

View File

@ -11,6 +11,12 @@ export default {
route: '/ad_hoc_commands/:id',
templateUrl: templateUrl('standard-out/adhoc/standard-out-adhoc'),
controller: 'JobStdoutController',
socket: {
"groups":{
"jobs": ["status_changed"],
"ad_hoc_command_events": []
}
},
ncyBreadcrumb: {
parent: "jobs",
label: "{{ job.module_name }}"

View File

@ -13,17 +13,16 @@ export default {
route: '/inventory_sync/:id',
templateUrl: templateUrl('standard-out/inventory-sync/standard-out-inventory-sync'),
controller: 'JobStdoutController',
socket: {
"groups":{
"jobs": ["status_changed"]
}
},
ncyBreadcrumb: {
parent: "jobs",
label: "{{ inventory_source_name }}"
},
data: {
jobType: 'inventory_updates'
},
resolve: {
inventorySyncSocket: [function() {
// TODO: determine whether or not we have socket support for inventory sync standard out
return true;
}]
}
};

View File

@ -11,17 +11,16 @@ export default {
route: '/management_jobs/:id',
templateUrl: templateUrl('standard-out/management-jobs/standard-out-management-jobs'),
controller: 'JobStdoutController',
socket: {
"groups":{
"jobs": ["status_changed"]
}
},
ncyBreadcrumb: {
parent: "jobs",
label: "{{ job.name }}"
},
data: {
jobType: 'system_jobs'
},
resolve: {
managementJobSocket: [function() {
// TODO: determine whether or not we have socket support for management job standard out
return true;
}]
}
};

View File

@ -17,13 +17,12 @@ export default {
parent: "jobs",
label: "{{ project_name }}"
},
socket: {
"groups":{
"jobs": ["status_changed"]
}
},
data: {
jobType: 'project_updates'
},
resolve: {
scmUpdateSocket: [function() {
// TODO: determine whether or not we have socket support for scm update standard out
return true;
}]
}
};