Initial setup of mycontroller

This commit is contained in:
2019-11-28 09:16:11 -06:00
parent 62d71e30c1
commit 665eb783be
504 changed files with 212034 additions and 0 deletions

View File

@@ -0,0 +1,140 @@
/*
* Copyright 2015-2018 Jeeva Kandasamy (jkandasa@gmail.com)
* and other contributors as indicated by the @author tags.
*
* 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.
*/
// don't forget to declare this service module as a dependency in your main app constructor!
//http://js2.coffee/#coffee2js
//https://coderwall.com/p/r_bvhg/angular-ui-bootstrap-alert-service-for-angular-js
'use strict';
angular.module('adf.widget.myc-sensors-bullet-graph', [])
.config(function(dashboardProvider){
dashboardProvider
.widget('mycSensorsBulletGraph', {
title: 'Sensors bullet graph',
description: 'Monitor sensors value with bullet graph',
templateUrl: 'controllers/adf-widgets/adf-myc-sbg/view.html?mcv=29',
controller: 'mycSensorsBulletGraphController',
controllerAs: 'mycSensorsBulletGraph',
config: {
colorUp:"#3f9c35",
colorDown:"#c00000",
chartFromTimestamp:'3600000',
variableIds:[],
refreshTime:30,
},
edit: {
templateUrl: 'controllers/adf-widgets/adf-myc-sbg/edit.html?mcv=29',
controller: 'mycSensorsBulletGraphEditController',
controllerAs: 'mycSensorsBulletGraphEdit',
}
});
})
.controller('mycSensorsBulletGraphController', function($scope, $interval, config, mchelper, $filter, MetricsFactory){
var mycSensorsBulletGraph = this;
mycSensorsBulletGraph.showLoading = true;
mycSensorsBulletGraph.isSyncing = true;
mycSensorsBulletGraph.variables = {};
$scope.tooltipEnabled = false;
$scope.hideVariableName=true;
mycSensorsBulletGraph.variables = {};
mycSensorsBulletGraph.chartOptions = {
chart: {
type: 'bulletChart',
transitionDuration: 500,
//color: config.color, //rgb(31, 119, 180)
noData: $filter('translate')('NO_DATA_AVAILABLE'),
margin: {
top: 8,
right: 10,
bottom: 21,
left: 5,
},
}
};
mycSensorsBulletGraph.getChartOptions = function(){
return angular.copy(mycSensorsBulletGraph.chartOptions);
}
function loadVariables(){
mycSensorsBulletGraph.isSyncing = true;
MetricsFactory.getBulletChart({'variableId':config.variableIds, "start": new Date().getTime() - config.chartFromTimestamp}, function(response){
mycSensorsBulletGraph.sensorVariables = response;
angular.forEach(mycSensorsBulletGraph.sensorVariables, function(item){
if(item.markers && item.markers[0]){
if(parseFloat(item.markers[0]) <= parseFloat(item.measures[0])){
item.color = config.colorUp;
}else{
item.color = config.colorDown;
}
}else{
item.color = "#1f77b4";//default color
}
});
mycSensorsBulletGraph.isSyncing = false;
if(mycSensorsBulletGraph.showLoading){
mycSensorsBulletGraph.showLoading = false;
}
});
};
function updateVariables(){
if(mycSensorsBulletGraph.isSyncing){
return;
}else if(config.variableIds.length > 0){
loadVariables();
}
}
//load variables initially
if(config.variableIds.length > 0){
loadVariables();
}else{
mycSensorsBulletGraph.showLoading = false;
}
//updateVariables();
//Update Variable / Send Payload
$scope.updateVariable = function(variable){
SensorsFactory.updateVariable(variable, function(){
//update Success
},function(error){
displayRestError.display(error);
});
};
// refresh every second
var promise = $interval(updateVariables, config.refreshTime*1000);
// cancel interval on scope destroy
$scope.$on('$destroy', function(){
$interval.cancel(promise);
});
}).controller('mycSensorsBulletGraphEditController', function($scope, $interval, config, mchelper, $filter, TypesFactory, CommonServices){
var mycSensorsBulletGraphEdit = this;
mycSensorsBulletGraphEdit.cs = CommonServices;
//TODO: get only DOUBLE type devices
mycSensorsBulletGraphEdit.variables = TypesFactory.getSensorVariables({"metricType":"Double"});
//Swap up down color
mycSensorsBulletGraphEdit.swapColor = function(){
var colorUp = config.colorUp;
config.colorUp = config.colorDown;
config.colorDown = colorUp;
}
});