/**
* @ngdoc controllers
* @name Cameras
* @module s4c.components.admin.controllers.Cameras
*
* @description
* `AdminCamerasCtrl` Controller da tela de Câmeras do módulo de administração
*
*
*/
(function () {
'use strict';
AdminCamerasCtrl.$inject = [
'$scope',
'$http',
'$mdDialog',
'API_ENDPOINT',
'ngFileReader',
'MapaEndereco',
'$rootScope',
'FileUploader'
];
angular.module('s4c.controllers.AdminCamerasCtrl', [
's4c.services.Categoria',
's4c.directives.ngFileReader'
]).controller('AdminCamerasCtrl', AdminCamerasCtrl);
function AdminCamerasCtrl($scope, $http, $mdDialog, API_ENDPOINT, ngFileReader, MapaEndereco, $rootScope, FileUploader) {
$scope.res = $rootScope.res;
function AdicionarCategoriaCtrl($scope, $mdDialog, categoriaCamera, res) {
$scope.res = res;
//$scope.ip = '';
categoriaCamera ? $scope.categoriaCamera = categoriaCamera : null;
categoriaCamera ? $scope.modo = $scope.res('COMUM_EDITAR') : $scope.modo = $scope.res('COMUM_NOVA');
$scope.cancelar = $mdDialog.cancel;
/**
* @method ok
*/
$scope.ok = function () {
if ($scope.formCategoria.$valid) {
//var atributos = {};
//atributos.ip = $scope.ip;
//$scope.categoriaCamera.atributos = atributos;
$mdDialog.hide($scope.categoriaCamera);
}
};
/**
* @method exibirCamposTipoCategoria
*/
$scope.exibirCamposTipoCategoria = function () {
if ($scope.categoriaCamera.tipo == 'wowza') {
$scope.visibleDivWowza = true;
}
else {
$scope.visibleDivWowza = false;
}
};
if ($scope.categoriaCamera != null && $scope.categoriaCamera.tipo == "wowza") {
$scope.visibleDivWowza = true;
//$scope.ip = $scope.categoriaCamera.atributos.ip;
}
else {
$scope.visibleDivWowza = false;
}
}
var basicColumns = [{
headerName: '',
width: 150,
checkboxSelection: true,
suppressSorting: true,
suppressMenu: true
}, {
headerName: $scope.res('COMUM_NOME'),
width: 500,
field: "nome",
editable: true,
cellClicked: fecharMapa,
volatile: true
}, {
headerName: $scope.res('COMUM_DESCRICAO'),
width: 500,
field: "descricao",
editable: true,
cellClicked: fecharMapa,
volatile: true
},
{
headerName: $scope.res('COMUM_BAIRRO'),
width: 200,
field: "bairro",
editable: true,
cellClicked: abrirMapa,
volatile: true
}, {
headerName: $scope.res('COMUM_LATITUDE'),
width: 300,
field: "latitude",
editable: true,
cellClicked: abrirMapa,
newValueHandler: atualizarLatitude,
volatile: true
}, {
headerName: $scope.res('COMUM_LONGITUDE'),
width: 300,
field: "longitude",
editable: true,
cellClicked: abrirMapa,
newValueHandler: atualizarLongitude,
volatile: true
}, {
headerName: $scope.res('COMUM_NUMERO'),
width: 300,
field: "numero",
editable: true,
cellClicked: fecharMapa,
volatile: true
}, {
headerName: $scope.res('COMUM_ALTURA'),
width: 300,
field: "altura",
editable: true,
suppressSorting: true,
cellClicked: fecharMapa,
volatile: true
}, {
headerName: $scope.res('COMUM_LARGURA'),
width: 300,
field: "largura",
editable: true,
suppressSorting: true,
cellClicked: fecharMapa,
volatile: true
}, {
headerName: "URL",
width: 400,
field: "url",
editable: true,
suppressSorting: true,
cellClicked: fecharMapa,
volatile: true
}, {
headerName: $scope.res('COMUM_IDENTIFICADOR'),
width: 500,
field: "chave_estrangeira",
editable: true,
cellClicked: fecharMapa,
volatile: true
}, {
headerName: $scope.res('COMUM_URLICONE'),
width: 400,
field: "urlIcone",
editable: true,
suppressSorting: true,
cellClicked: fecharMapa,
volatile: true
}, {
headerName: $scope.res('GRAVACAO_CONTROLE'),
width: 550,
enableCellEdit: false,
cellRenderer: controlRecord
}, {
headerName: $scope.res('GRAVACAO_CONTINUA'),
width: 550,
field: 'continuousRecording',
cellRenderer: controlContinuousRecording
}, {
headerName: $scope.res('GRAVACAO_LIMITE_DVR'),
width: 300,
field: "limiteArmazenamentoDvr",
editable: true,
cellClicked: fecharMapa,
volatile: true
}
];
/**
* @method controlContinuousRecording
* @param {*} params
*/
function controlContinuousRecording(params) {
var html;
if ($scope.categoriaCamera.tipo != 'wowza') {
html = '<div style="text-align: center;"><a>' + $scope.res('GRAVACAO_NAO_DISPONIVEL') + '</a></div>';
}
else {
html = '<div style="text-align: right;"><input type="checkbox" ng-model="data.continuousRecording" style="display:inherit;"/></div>';
}
return html;
}
/**
* @method controlRecord
* @param {*} params
*/
function controlRecord(params) {
var camera = getCameraById(params.data.id);
var html;
if ($scope.categoriaCamera.tipo != 'wowza') {
html = '<div style="text-align: center;"><a>' + $scope.res('GRAVACAO_NAO_DISPONIVEL') + '</a></div>';
}
else if (camera.recording) {
html = '<div style="text-align: center;">' +
'<a href="javascript:;" ng-click="stopRecord(' + camera.id + ',' + params.rowIndex + ');" ><img src="/assets/images/Camera/stop_24px.png"></img></a></div>';
}
else {
html = '<div style="text-align: center;">' +
'<a href="javascript:;" ng-click="startRecord(' + camera.id + ',' + params.rowIndex + ');" ><img src="/assets/images/Camera/rec_24px.png"></img></a></div>';
}
return html;
}
/**
* @method getCameraById
* @param {*} id
*/
function getCameraById(id) {
var camera;
_.each($scope.gridOptions.rowData, function (row) {
if (row.id == id) {
camera = row;
}
});
return camera;
}
/**
* @method setRecordingCamera
* @param {*} camera
*/
function setRecordingCamera(camera) {
var index = 0;
_.each($scope.gridOptions.rowData, function (row) {
if (row.id == camera.id) {
$scope.gridOptions.rowData[index].recording = camera.recording;
}
index++;
});
}
/**
* @method startRecord
* @param {*} id
* @param {*} index
*/
$scope.startRecord = function (id, index) {
var camera = getCameraById(id);
if (camera.recording) {
$mdDialog.show($mdDialog.alert()
.title($scope.res('COMUM_ERRO'))
.content($scope.res('GRAVACAO_EM_ANDAMENTO'))
.ok($scope.res('COMUM_OK')));
return;
}
var recording = 'true';
$.ajax({
type: "GET",
url: $scope.categoriaCamera.atributos.ip + "dvrstreamrecord?app=" + $scope.categoriaCamera.atributos.application
+ "&streamname=" + camera.nome + ".stream&action=start" + "&instancename=" + camera.nome,
success: function (data) {
$http.post(API_ENDPOINT + "cameras/record/" + camera.id, recording).then(function (response) {
setRecordingCamera(response.data);
$mdDialog
.show($mdDialog.alert()
.title($scope.res('COMUM_SUCESSO'))
.content($scope.res('GRAVACAO_INICIADA'))
.ok($scope.res('COMUM_OK')));
$scope.gridOptions.api.refreshView();
}, function (err) {
$mdDialog
.show($mdDialog.alert()
.title($scope.res('COMUM_ERRO'))
.content(err.data.message)
.ok($scope.res('COMUM_OK')));
});
},
error: function (data) {
$mdDialog.show($mdDialog.alert()
.title($scope.res('COMUM_ERRO'))
.content($scope.res("GRAVACAO_ERRO_INICIAR"))
.ok($scope.res('COMUM_OK')));
}
});
}
/**
* @method stopRecord
* @param {*} id
* @param {*} index
*/
$scope.stopRecord = function (id, index) {
var camera = getCameraById(id);
if (!camera.recording) {
$mdDialog.show($mdDialog.alert()
.title($scope.res('COMUM_ERRO'))
.content($scope.res("GRAVACAO_EM_ANDAMENTO_ERRO"))
.ok($scope.res('COMUM_OK')));
return;
}
var recording = 'false';
$.ajax({
type: "GET",
url: $scope.categoriaCamera.atributos.ip + "dvrstreamrecord?app=" + $scope.categoriaCamera.atributos.application
+ "&streamname=" + camera.nome + ".stream&action=stop" + "&instancename=" + camera.nome,
success: function (data) {
$http.post(API_ENDPOINT + "cameras/record/" + camera.id, recording).then(function (response) {
setRecordingCamera(response.data);
$mdDialog
.show($mdDialog.alert()
.title($scope.res('COMUM_SUCESSO'))
.content($scope.res('GRAVACAO_PARADA'))
.ok($scope.res('COMUM_OK')));
$scope.gridOptions.api.refreshView();
}, function (err) {
$mdDialog
.show($mdDialog.alert()
.title($scope.res('COMUM_ERRO'))
.content(err.data.message)
.ok($scope.res('COMUM_OK')));
});
},
error: function (data) {
$mdDialog.show($mdDialog.alert()
.title($scope.res('COMUM_ERRO'))
.content($scope.res("GRAVACAO_ERRO_PARAR"))
.ok($scope.res('COMUM_OK')));
}
});
}
$scope.gridOptions = {
rowSelection: 'multiple',
enableSorting: true,
columnDefs: basicColumns,
rowData: [],
angularCompileHeaders: true,
angularCompileRows: true,
headerCellRenderer: headerCellRendererFunction,
selectionChanged: onSelectionChanged,
pinnedColumnCount: 1,
enableColResize: true
};
/**
* @method onFileSelected
* @param {*} file
*/
function onFileSelected(file) {
var json = KMLParser.loadKML(file.contents);
var rows = [];
_.each(json.body, function (row) {
var positionIndex = json.head.indexOf('geojson');
if (positionIndex < 0) {
return;
}
var data = {
_id: _.uniqueId(row),
nome: row[0],
descricao: row[1],
latitude: JSON.parse(row[positionIndex]).coordinates[1],
longitude: JSON.parse(row[positionIndex]).coordinates[0],
CategoriaCameraId: $scope.categoriaCamera.id
};
rows.push(data);
});
$scope.gridOptions.api.sizeColumnsToFit();
$scope.gridOptions.rowData = rows;
$scope.gridOptions.api.onNewRows();
$scope.gridOptions.api.setSortModel([{
field: 'nome',
sort: 'asc'
}]);
}
$scope.exibeMapa = false;
$scope.lastSelectedRow = {};
ngFileReader.on('fileSelectedCAMERAS', onFileSelected);
$scope.$on('$destroy', function () {
MapaEndereco.limparEventos();
});
MapaEndereco.on('atualizarCoordenadas', function (coordenadas) {
if ($scope.gridOptions != null && $scope.gridOptions.selectedRows != null && $scope.gridOptions.selectedRows.length === 1) {
var row = $scope.gridOptions.selectedRows[0];
row.latitude = coordenadas.latitude;
row.longitude = coordenadas.longitude;
$scope.gridOptions.api.refreshView();
}
});
/**
* @method onSelectionChanged
*/
function onSelectionChanged() {
if ($scope.gridOptions != null && $scope.gridOptions.selectedRows != null && $scope.gridOptions.selectedRows.length === 1 && $scope.exibeMapa) {
var row = $scope.gridOptions.selectedRows[0];
if (row._id != $scope.lastSelectedRow._id) {
MapaEndereco.atualizarCoordenadas(row.latitude, row.longitude);
$scope.lastSelectedRow = row;
}
} else {
fecharMapa();
}
}
/**
* @method abrirMapa
*/
function abrirMapa() {
$scope.exibeMapa = true;
}
/**
* @method fecharMapa
*/
function fecharMapa() {
$scope.exibeMapa = false;
}
/**
* @method atualizarLatitude
*/
function atualizarLatitude(params) {
var latitude = params.newValue;
var longitude = params.data.longitude;
MapaEndereco.atualizarCoordenadas(latitude, longitude);
}
/**
* @method atualizarLongitude
* @param {*} params
*/
function atualizarLongitude(params) {
var latitude = params.data.latitude;
var longitude = params.newValue;
MapaEndereco.atualizarCoordenadas(latitude, longitude);
}
/**
* @method atualizarEndereco
* @param {*} params
*/
function atualizarEndereco(params) {
MapaEndereco.atualizarEndereco(params.newValue);
}
/**
* @method checkboxClick
* @param {*} params
*/
function checkboxClick(params) {
angular.element(params.eventSource).find('input').click();
params.event.stopPropagation();
}
/**
* @method headerCellRendererFunction
* @param {*} params
*/
function headerCellRendererFunction(params) {
var eHeader = document.createElement('span');
var eTitle = document.createTextNode(params.colDef.headerName);
eHeader.appendChild(eTitle);
if (params.colDef.headerName == '') {
eHeader.style.textAlign = 'center';
eHeader.style.verticalAlign = 'center';
} else {
var eEdit = document.createElement('md-icon');
eEdit.setAttribute('class', 'menu-icon');
eEdit.setAttribute('style', 'float: right');
eEdit.setAttribute('md-svg-icon', 'menu:edit');
eEdit.setAttribute('alt', 'editar');
eEdit.setAttribute('ng-click', 'definirValorDaColuna($event, this,"' + params.colDef.field + '")');
eHeader.appendChild(eEdit);
}
return eHeader.outerHTML;
}
/**
* @method definirValorDaColuna
*
* @param {*} event
* @param {*} domNode
* @param {*} field
*/
function definirValorDaColuna(event, domNode, field) {
event.stopPropagation();
$mdDialog.show({
controller: function ($scope, res) {
$scope.res = res;
$scope.ok = function () {
$mdDialog.hide($scope.coluna.valor);
};
$scope.cancelar = $mdDialog.cancel;
},
templateUrl: 'app/components/admin/modulos/manutencao/pois/definirValorDaColuna.html',
locals: {
res: $scope.res
},
parent: domNode
}).then(function (valor) {
_.each($scope.gridOptions.rowData, function (row) {
row[field] = valor;
});
$scope.gridOptions.api.refreshView();
});
}
/**
* @method deletarSelecionados
*/
function deletarSelecionados() {
var selecionados = _.map($scope.gridOptions.api.getSelectedNodes(), 'data._id');
$scope.rowsDeleted.push(_.map($scope.gridOptions.api.getSelectedNodes(), 'data'));
_.remove($scope.gridOptions.rowData, function (row) {
return _.includes(selecionados, row._id)
});
$scope.gridOptions.api.onNewRows();
}
/**
* @method adicionarNovaLinha
*/
function adicionarNovaLinha() {
$scope.gridOptions.rowData.unshift({
CategoriaCameraId: $scope.categoriaCamera.id,
_id: _.uniqueId()
});
$scope.gridOptions.api.onNewRows();
$scope.gridOptions.api.setSortModel($scope.gridOptions.api.getSortModel());
}
/**
* @method salvar
*/
function salvar() {
var rows = $scope.gridOptions.rowData;
var _id = 1;
rows = _.map(rows, function (row) {
row._id = _id++;
row.poiGeometrico = 'SRID=4326;POINT(' + row.longitude + ' ' + row.latitude + ')';
if (!row.urlIcone) {
row.urlIcone = $scope.categoriaCamera.urlIcone;
}
return row;
});
$http.post(API_ENDPOINT + "cameras/categoria_camera/" + $scope.categoriaCamera.id, rows)
.then(function () {
$mdDialog
.show($mdDialog.alert()
.title($scope.res('COMUM_SUCESSO'))
.content($scope.res('MENSAGEM_SUCESSO_ATUALIZACAO_CAMERAS'))
.ok($scope.res('COMUM_OK')));
//Cria o stream no Wowza para cada câmera
if ($scope.categoriaCamera.tipo == 'wowza') {
_.each(rows, function (row) {
$.ajax({
type: "GET",
url: $scope.categoriaCamera.atributos.ip + "createstream?streamname=" + row.nome + "&source=" + row.url
+ "&appname=" + $scope.categoriaCamera.atributos.application + "&instancename=" + row.nome,
success: function (data) {
$mdDialog
.show($mdDialog.alert()
.title($scope.res('COMUM_SUCESSO'))
.content($scope.res('Stream da câmera ' + row.nome + ' criado com sucesso'))
.ok($scope.res('COMUM_OK')));
},
error: function (data) {
$mdDialog.show($mdDialog.alert()
.title($scope.res('COMUM_ERRO'))
.content("Erro na criação do stream da câmera " + row.nome)
.ok($scope.res('COMUM_OK')));
}
});
});
_.each($scope.rowsDeleted, function (row) {
$.ajax({
type: "GET",
url: $scope.categoriaCamera.atributos.ip + "deletestream?streamname=" + row.nome +
"&appname=" + $scope.categoriaCamera.atributos.application + "&instancename=" + row.nome,
success: function (data) {
},
error: function (data) {
$mdDialog.show($mdDialog.alert()
.title($scope.res('COMUM_ERRO'))
.content("Erro na exclusão do stream da câmera " + row.nome)
.ok($scope.res('COMUM_OK')));
}
});
});
}
buscarCamerasPorCategoria();
}, function (err) {
$mdDialog
.show($mdDialog.alert()
.title($scope.res('COMUM_ERRO'))
.content(err.data.message)
.ok($scope.res('COMUM_OK')));
});
}
/**
* @method adicionarCategoria
*/
function adicionarCategoria() {
$mdDialog.show({
controller: AdicionarCategoriaCtrl,
templateUrl: 'app/components/admin/modulos/manutencao/cameras/dialogCategoriaCamera.html',
parent: document.body,
locals: {
categoriaCamera: null,
res: $scope.res
}
}).then(function (categoriaCamera) {
$http.post(API_ENDPOINT + "categoria_camera/", categoriaCamera)
.then(function (response) {
var _categoriaCamera = response.data;
_categoriaCamera.selected = true;
$scope.categorias.push(_categoriaCamera);
$scope.categoriaCamera = _categoriaCamera;
$scope.gridOptions.rowData = [];
$scope.gridOptions.api.onNewRows();
$scope.gridOptions.api.sizeColumnsToFit();
$scope.gridOptions.api.setSortModel([{
field: 'nome',
sort: 'asc'
}]);
});
}, function (cancel) {
_initCategoriaCamera();
})
}
/**
* @method editarCategoriaCamera
*/
function editarCategoriaCamera() {
$mdDialog.show({
controller: AdicionarCategoriaCtrl,
templateUrl: 'app/components/admin/modulos/manutencao/cameras/dialogCategoriaCamera.html',
parent: document.body,
locals: {
categoriaCamera: $scope.categoriaCamera,
res: $scope.res
}
}).then(function (categoriaCamera) {
$http.put(API_ENDPOINT + "categoria_camera/" + categoriaCamera.id, categoriaCamera)
.then(function (response) {
$scope.categoriaCamera = response.data;
$http.get(API_ENDPOINT + "categoria_camera")
.then(function (result) {
$scope.categorias = result.data;
}, function (err) {
$mdDialog
.show($mdDialog.alert()
.title($scope.res('COMUM_ERRO'))
.content(err.data.message)
.ok($scope.res('COMUM_OK')));
});
});
})
}
/**
* @method ativarCategoria
*/
function ativarCategoria() {
if (!$scope.categoriaCamera || $scope.categoriaCamera == 'nova') {
adicionarCategoria();
} else {
buscarCamerasPorCategoria();
}
}
/**
* @method _initCategoriaCamera
*/
function _initCategoriaCamera() {
$scope.categoriaCamera = null;
$scope.gridOptions.rowData = [];
$scope.gridOptions.api.onNewRows();
}
/**
* @method excluirCategoriaCamera
*/
function excluirCategoriaCamera() {
var confirm = $mdDialog.confirm()
.title($scope.res('CATEGORIACAMERA_TITULO'))
.content($scope.res('CATEGORIACAMERA_REMOVER'))
.ok($scope.res('COMUM_SIM'))
.cancel($scope.res('COMUM_CANCELAR'));
$mdDialog.show(confirm)
.then(function () {
$http.delete(API_ENDPOINT + "categoria_camera/" + $scope.categoriaCamera.id)
.then(function (response) {
_initCategoriaCamera();
carregarCategorias();
$mdDialog
.show($mdDialog.alert()
.title($scope.res('COMUM_SUCESSO'))
.content($scope.res('CATEGORIACAMERA_DELETE_SUCESSO'))
.ok($scope.res('COMUM_OK')));
}, function (err) {
$mdDialog
.show($mdDialog.alert()
.title($scope.res('COMUM_ERRO'))
.content(err.data.message)
.ok($scope.res('COMUM_OK')));
});
}, function () {
console.log('cancel');
});
}
/**
* @method buscarCamerasPorCategoria
*/
function buscarCamerasPorCategoria() {
if (!$scope.categoriaCamera.id) {
$scope.categoriaCamera = JSON.parse($scope.categoriaCamera);
}
if (!$scope.rowsDeleted) {
$scope.rowsDeleted = [];
}
$http.get(API_ENDPOINT + "cameras/categoria_camera/" + $scope.categoriaCamera.id)
.then(function (result) {
_.each(result.data, function (camera) {
camera._id = _.uniqueId();
camera.latitude = JSON.parse(camera.poiGeometrico).coordinates[1];
camera.longitude = JSON.parse(camera.poiGeometrico).coordinates[0];
});
$scope.gridOptions.api.sizeColumnsToFit();
$scope.gridOptions.rowData = result.data;
$scope.gridOptions.api.onNewRows();
$scope.gridOptions.api.setSortModel([{
field: 'nome',
sort: 'asc'
}]);
}, function (err) {
$mdDialog
.show($mdDialog.alert()
.title($scope.res('COMUM_ERRO'))
.content(err.data.message)
.ok($scope.res('COMUM_OK')));
});
}
/**
* @method carregarCategorias
*/
function carregarCategorias() {
$http.get(API_ENDPOINT + "categoria_camera")
.then(function (result) {
$scope.categorias = result.data;
}, function (err) {
$mdDialog
.show($mdDialog.alert()
.title($scope.res('COMUM_ERRO'))
.content(err.data.message)
.ok($scope.res('COMUM_OK')));
});
}
carregarCategorias();
/**
* @method exportarExcel
*/
function exportarExcel() {
var data = {};
var rows = $scope.gridOptions.rowData;
data.cameras = rows;
data.headers = [];
if ($scope.categoriaCamera.tipo == 'wowza') {
for (var index in rows) {
var camera = data.cameras[index];
camera.controleGravacao = $scope.categoriaCamera.atributos.ip + "dvrstreamrecord?app=" + $scope.categoriaCamera.atributos.application
+ "&streamname=" + camera.nome + ".stream&action=start" + "&instancename=" + camera.nome;
if (camera.recording) {
camera.continuousRecording = "SIM";
}
else {
camera.continuousRecording = "NÃO";
}
}
}
for (var index in $scope.gridOptions.columnDefs) {
if ($scope.gridOptions.columnDefs[index].headerName != null && $scope.gridOptions.columnDefs[index].headerName != "" && $scope.gridOptions.columnDefs[index].headerName != "+") {
data.headers.push($scope.gridOptions.columnDefs[index].headerName);
}
}
$http
.post(API_ENDPOINT + 'cameras/excel/download', data, { responseType: 'arraybuffer', })
.then(function (res) {
var a = document.createElement("a");
document.body.appendChild(a);
a.style = "display: none";
var file = new Blob([res.data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });
var fileURL = URL.createObjectURL(file);
a.href = fileURL;
a.download = $scope.categoriaCamera.nome + ".xlsx";
a.click();
$mdDialog
.show($mdDialog.alert()
.title($scope.res('COMUM_SUCESSO'))
.content('Arquivo gerado com sucesso.')
.ok($scope.res('COMUM_OK')));
}, function (err) {
console.log(err);
});
}
$scope.input = angular.element('input.uploadArquivo');
var uploader = $scope.uploader = new FileUploader(),
uploadCallbackQueue = [];
uploader.clearQueue();
$scope.uploader.alias = 'arquivo';
$scope.uploader.removeAfterUpload = true;
$scope.uploader.filters.push({
'name': 'enforceMaxFileSize',
'fn': function (item, evt) {
$scope.tamFile = item.size;
return true;
}
});
$scope.uploader.onCompleteItem = function (item, response) {
$scope.mensagem = response;
};
$scope.uploader.onAfterAddingFile = function (item, evt, arquivo) {
item.novoNome = item.file.name;
enviarArquivo();
}
/**
* @method enviarArquivo
*/
function enviarArquivo() {
if ($scope.tamFile > 35000) {
$mdDialog
.show($mdDialog.alert()
.title($scope.res('COMUM_AVISO'))
.content($scope.res('EXCEL_POI_EM_PROCESSAMENTO'))
.ok($scope.res('COMUM_OK')));
}
$scope.isUploading = true;
uploader.url = '/cameras/excel/addCamerasFromExcel/' + JSON.parse($scope.categoriaCamera.id);
uploader.uploadAll();
$scope.gridOptions.rowData = [];
uploadCallbackQueue = [];
uploadCallbackQueue.push(function () {
$scope.isUploading = false;
$scope.arquivosPraSubir = false;
uploader.clearQueue();
ativarCategoria();
if ($scope.mensagem.status == "200") {
$mdDialog
.show($mdDialog.alert()
.title($scope.res('COMUM_AVISO'))
.content($scope.res('EXCEL_POI_PROCESSADO'))
.ok($scope.res('COMUM_OK')));
}
else {
$mdDialog
.show($mdDialog.alert()
.title($scope.res('COMUM_AVISO'))
.content($scope.mensagem.message)
.ok($scope.res('COMUM_OK')));
}
});
}
$scope.uploader.onBeforeUploadItem = function (item) {
item.url = uploader.url;
var token = window.sessionStorage.getItem('s4cToken');
var tokenObj = JSON.parse(token);
item.headers = {
'Authorization': 'Bearer ' + tokenObj.access_token
};
};
$scope.uploader.onProgressItem = function (fileItem, progress) {
console.info('onProgressItem', fileItem, progress);
};
$scope.uploader.onCompleteAll = function (result) {
_.each(uploadCallbackQueue, function (callback) {
callback();
});
};
$scope.importFile = function () {
$("#arquivo").click();
};
angular.extend($scope, {
definirValorDaColuna: definirValorDaColuna,
fecharMapa: fecharMapa,
ativarCategoria: ativarCategoria,
excluirCategoriaCamera: excluirCategoriaCamera,
deletarSelecionados: deletarSelecionados,
adicionarNovaLinha: adicionarNovaLinha,
salvar: salvar,
editarCategoriaCamera: editarCategoriaCamera,
exportarExcel: exportarExcel
});
}
}());