/**
* @ngdoc controllers
* @name Parametrizacao
* @module s4c.components.admin.controllers.Parametrização
*
* @description
* `AdminParametrizacaoCtrl` Controller da tela de Parametrização do módulo de administração
*
*
*/
(function () {
'use strict';
function AdminParametrizacaoCtrl($scope, $rootScope, $http, $mdDialog, ParametrosS4C, MainState, GRIDSTER_OPTIONS_EDICAO) {
/**
* @method _makePos
* @param {*} coords
*/
function _makePos(coords) {
var pos = 'SRID=4326;POINT(';
pos += coords.latitude + ' ';
pos += coords.longitude + ')';
return pos;
}
/**
* @method _blankLatLng
* @param {*} coords
*/
function _blankLatLng(coords) {
var ret = (
coords !== null &&
(typeof coords.latitude === 'string' || typeof coords.latitude === 'number') &&
(typeof coords.longitude === 'string' || typeof coords.longitude === 'number')
);
return ret;
}
$scope.posInicial = $rootScope.ParametrosS4C.mapaPosInicial;
$scope.previsao = $rootScope.ParametrosS4C.posPrevisao;
$scope.versoesApiViatura = [{
label: '1',
value: 1
}, {
label: '2',
value: 2
}]
/**
* @method isToShow
*/
$scope.isToShow = function (label) {
return MainState.isToShow(label);
}
MainState.loadGridsterOptions();
/**
* @method openCellList
*/
$scope.openCellList = function () {
var confirm = $mdDialog.confirm({
locals: {},
templateUrl: 'app/components/admin/modulos/parametrizacao/presetConfig.html',
controller: function ($scope, $mdDialog, ParametrosS4C) {
$scope.res = $scope.$root.res;
$scope.cells = [];
var parametrosS4C;
ParametrosS4C.downloadParametros().then(function (parametros) {
loadGridCells(parametros);
parametrosS4C = parametros;
});
/**
* @method ok
*/
$scope.ok = function () {
var newArray = convertCellsToOneArray();
parametrosS4C.presetCellsConfig = newArray;
ParametrosS4C.atualizarParametros(parametrosS4C);
$mdDialog.hide();
}
/**
* @method cancelar
*/
$scope.cancelar = function () {
$mdDialog.hide();
};
/**
* @method convertCellsToOneArray
*/
function convertCellsToOneArray(){
var newArr = [];
for(var i = 0; i < $scope.cells.length; i++){
newArr = newArr.concat($scope.cells[i]);
}
return newArr;
}
/**
* @method loadGridCells
* @param {*} parametros
*/
function loadGridCells(parametros){
for (var row = 0; row < MainState.getGridRowsCols().rows; row++) {
$scope.cells[row] = [];
for (var col = 0; col < MainState.getGridRowsCols().cols; col++) {
var cell = { name: '[ ' + row + ', ' + col + ' ]', col: col, row: row, val: false };
if (parametros.presetCellsConfig) {
for(var index3 = 0; index3 < parametros.presetCellsConfig.length; index3++){
if(parametros.presetCellsConfig[index3].row == cell.row && parametros.presetCellsConfig[index3].col == col){
cell.val = parametros.presetCellsConfig[index3].val;
}
}
}
$scope.cells[row][col] = cell;
}
}
}
},
parent: angular.element(document.body)
});
$mdDialog.show(confirm).then(function () {
}, function () {
});
}
$scope.isElectron = navigator.userAgent.indexOf("Electron") != -1;
/**
* @method openFileSystem
*/
$scope.openFileSystem = function () {
MainState.getConfigFile().then(function (file) {
var confirm = $mdDialog.confirm({
locals: { file: file },
templateUrl: 'app/components/admin/modulos/parametrizacao/dialogoConfig.html',
controller: function ($scope, $mdDialog, file) {
$scope.res = $scope.$root.res;
$scope.file = file;
$scope.ok = function () {
MainState.setConfigFile($scope.file);
$mdDialog.hide();
}
$scope.cancelar = function () {
$mdDialog.hide();
};
},
parent: angular.element(document.body)
});
$mdDialog.show(confirm).then(function () {
}, function () {
});
});
}
/**
* @method adicionarNovaLinha
*/
$scope.adicionarNovaLinha = function () {
var config = {};
config.name = '';
config.hostname = '';
config.key = '';
if ($rootScope.ParametrosS4C.multivisConfig == null) {
$rootScope.ParametrosS4C.multivisConfig = [];
}
$rootScope.ParametrosS4C.multivisConfig.push(config);
}
/**
* @method removeLinha
*/
$scope.removeLinha = function (index) {
$rootScope.ParametrosS4C.multivisConfig.splice(index, 1);
}
/**
* @method salvarParametros
*/
function salvarParametros() {
if (_blankLatLng($scope.posInicial)) {
var mapaPosInicial = _makePos($scope.posInicial);
$rootScope.ParametrosS4C.mapaPosInicial = mapaPosInicial;
}
if (_blankLatLng($scope.previsao)) {
var posPrevisao = _makePos($scope.previsao);
$rootScope.ParametrosS4C.posPrevisao = posPrevisao;
}
if ($rootScope.ParametrosS4C.mapaPosInicial != null && $rootScope.ParametrosS4C.mapaPosInicial.coordinates != null) {
$rootScope.ParametrosS4C.mapaPosInicial.coordinates.coordinates[0] =
$rootScope.ParametrosS4C.mapaPosInicial.coordinates.coordinates[0].toString().replace(',', '.');
$rootScope.ParametrosS4C.mapaPosInicial.coordinates.coordinates[1] =
$rootScope.ParametrosS4C.mapaPosInicial.coordinates.coordinates[1].toString().replace(',', '.');
if ($rootScope.ParametrosS4C.mapaPosInicial.coordinates.coordinates[1].indexOf(",") == -1
&& $rootScope.ParametrosS4C.mapaPosInicial.coordinates.coordinates[1].indexOf(".") == -1) {
$rootScope.ParametrosS4C.mapaPosInicial.coordinates.coordinates[1] += '.00';
}
if ($rootScope.ParametrosS4C.mapaPosInicial.coordinates.coordinates[0].indexOf(",") == -1
&& $rootScope.ParametrosS4C.mapaPosInicial.coordinates.coordinates[0].indexOf(".") == -1) {
$rootScope.ParametrosS4C.mapaPosInicial.coordinates.coordinates[0] += '.00';
}
var jsonArray = [];
jsonArray.push($rootScope.ParametrosS4C.mapaPosInicial.coordinates.coordinates[0]);
jsonArray.push($rootScope.ParametrosS4C.mapaPosInicial.coordinates.coordinates[1]);
$rootScope.ParametrosS4C.mapaPosInicial.coordinates = {};
$rootScope.ParametrosS4C.mapaPosInicial.coordinates.coordinates = jsonArray;
}
ParametrosS4C.atualizarParametros($rootScope.ParametrosS4C)
.then(function () {
$mdDialog
.show($mdDialog.alert()
.title($scope.res('COMUM_SUCESSO'))
.content($scope.res('COMUM_MENSAGEMPARAMETROSSALVOSCOMSUCESSO'))
.ok($scope.res('COMUM_OK')));
});
}
angular.extend($scope, {
salvarParametros: salvarParametros,
parametrizacao: {},
res: $scope.$root.res
});
}
AdminParametrizacaoCtrl.$inject = [
'$scope',
'$rootScope',
'$http',
'$mdDialog',
'ParametrosS4C',
'MainState',
'GRIDSTER_OPTIONS_EDICAO'
];
angular.module('s4c.controllers.AdminParametrizacaoCtrl', ['s4c.services.ParametrosS4C'])
.controller('AdminParametrizacaoCtrl', AdminParametrizacaoCtrl);
}());