1/** 2 * data service 3 * 4 * @module app/common/services/dataService 5 * @exports dataService 6 * @name dataService 7 8 */ 9 10window.angular && (function(angular) { 11 'use strict'; 12 13 angular.module('app.common.services').service('dataService', [ 14 'Constants', 15 function(Constants) { 16 this.server_health = Constants.SERVER_HEALTH.unknown; 17 this.server_state = 'Unreachable'; 18 this.server_status = -2; 19 this.chassis_state = 'On'; 20 this.LED_state = Constants.LED_STATE_TEXT.off; 21 this.last_updated = new Date(); 22 23 this.loading = false; 24 this.server_unreachable = false; 25 this.loading_message = ''; 26 this.showNavigation = false; 27 this.bodyStyle = {}; 28 this.path = ''; 29 this.sensorData = []; 30 31 this.hostname = ''; 32 this.mac_address = ''; 33 this.defaultgateway = ''; 34 this.remote_window_active = false; 35 36 this.displayErrorModal = false; 37 this.errorModalDetails = {}; 38 39 this.ignoreHttpError = false; 40 this.getServerId = function() { 41 return this.host.replace(/^https?\:\/\//ig, ''); 42 }; 43 44 this.reloadServerId = function() { 45 this.server_id = this.getServerId(); 46 }; 47 48 this.getHost = function() { 49 if (sessionStorage.getItem( 50 Constants.API_CREDENTIALS.host_storage_key) !== null) { 51 return sessionStorage.getItem( 52 Constants.API_CREDENTIALS.host_storage_key); 53 } else { 54 return Constants.API_CREDENTIALS.default_protocol + '://' + 55 window.location.hostname + 56 (window.location.port ? ':' + window.location.port : ''); 57 } 58 }; 59 60 this.setHost = function(hostWithPort) { 61 hostWithPort = hostWithPort.replace(/^https?\:\/\//ig, ''); 62 var hostURL = 63 Constants.API_CREDENTIALS.default_protocol + '://' + hostWithPort; 64 sessionStorage.setItem( 65 Constants.API_CREDENTIALS.host_storage_key, hostURL); 66 this.host = hostURL; 67 this.reloadServerId(); 68 }; 69 70 this.getUser = function() { 71 return sessionStorage.getItem('LOGIN_ID'); 72 }; 73 74 this.host = this.getHost(); 75 this.server_id = this.getServerId(); 76 77 this.setNetworkInfo = function(data) { 78 this.hostname = data.hostname; 79 this.defaultgateway = data.defaultgateway; 80 this.mac_address = data.mac_address; 81 }; 82 83 this.setPowerOnState = function() { 84 this.server_state = Constants.HOST_STATE_TEXT.on; 85 this.server_status = Constants.HOST_STATE.on; 86 }; 87 88 this.setPowerOffState = function() { 89 this.server_state = Constants.HOST_STATE_TEXT.off; 90 this.server_status = Constants.HOST_STATE.off; 91 }; 92 93 this.setErrorState = function() { 94 this.server_state = Constants.HOST_STATE_TEXT.error; 95 this.server_status = Constants.HOST_STATE.error; 96 }; 97 98 this.setUnreachableState = function() { 99 this.server_state = Constants.HOST_STATE_TEXT.unreachable; 100 this.server_status = Constants.HOST_STATE.unreachable; 101 }; 102 103 this.setRemoteWindowActive = function() { 104 this.remote_window_active = true; 105 }; 106 107 this.setRemoteWindowInactive = function() { 108 this.remote_window_active = false; 109 }; 110 111 this.updateServerHealth = function(logs) { 112 var criticals = logs.filter(function(item) { 113 return item.health_flags.critical == true; 114 }); 115 116 if (criticals.length) { 117 this.server_health = Constants.SERVER_HEALTH.critical; 118 return; 119 } 120 121 var warnings = logs.filter(function(item) { 122 return item.health_flags.warning == true; 123 }); 124 125 if (warnings.length) { 126 this.server_health = Constants.SERVER_HEALTH.warning; 127 return; 128 } 129 130 this.server_health = Constants.SERVER_HEALTH.good; 131 }; 132 133 this.activateErrorModal = function(data) { 134 if (data && data.hasOwnProperty('title')) { 135 this.errorModalDetails.title = data.title; 136 } else { 137 this.errorModalDetails.title = Constants.MESSAGES.ERROR_MODAL.TITLE; 138 } 139 140 if (data && data.hasOwnProperty('description')) { 141 this.errorModalDetails.description = data.description; 142 } else { 143 this.errorModalDetails.description = 144 Constants.MESSAGES.ERROR_MODAL.DESCRIPTION; 145 } 146 this.displayErrorModal = true; 147 }; 148 149 this.deactivateErrorModal = function() { 150 this.displayErrorModal = false; 151 }; 152 } 153 ]); 154 155})(window.angular); 156