<commit_before>'use strict';

/**
 * @ngdoc directive
 * @name geoCtfApp.directive:sidenav
 * @description
 * # sidenav
 */
var app;

app = angular.module('geoCtfApp');
app.directive('sidenav', sidenavDir);

/**
 * Cria e retorna a diretiva <code>sidenave</code>
 * @param RestApi
 * @returns Object
 */
function sidenavDir (RestApi) {

  /**
   * Exporta a configuração da diretiva
   * @type Object
   */
  var exports = {
    templateUrl: 'views/partials/sidenav.html',
    restrict: 'E',
    controller : SideNavController
  };

  return exports;

  /**
   * Controller principal da diretiva.
   * @constructor
   */
  function SideNavController ($scope, $mdSidenav, $mdUtil, Auth){

    L.Icon.Default.imagePath = 'images';

    RestApi.get({ type: 'categorias'}, getCategoriaSuccess );

    $scope.filter = {};
    $scope.filter.listMunicipios = false;
    $scope.toggleRight = construirToggle('right');

    $scope.close = closeSidenav;
    $scope.requestPoints = requestPoints;
    $scope.getMunicipios = getMunicipios;
    //$scope.listSubcategoria = listSubcategoria;

    $scope.toggleRight();


    /**
     * Fecha a diretiva
     */
    function closeSidenav () {
      $mdSidenav('right').close();
    }

    /**
     * Apresenta as informaçõe de subCategorias de acordo com a categoria selecionada.
     * @param categoria
     */
    function listSubcategoria (categoria){
      $scope.filter.subCategoria = '';
      if (categoria.id !== 'Todos') {
        $scope.subCategorias = categoria.subcategorias;
      }

      $scope.filter.subcategoria = null
    }

    /**
     * Requisita as informações de <i>features</i> que devem ser apresentadas no mapa
     * de acordo com os filtros estabelecidos.
     * @param filter
     */
    function requestPoints (filter) {

      var categoria = filter.categoria;
      var subCategoria = filter.subcategoria;
      var municipio = filter.municipio.geocodigo;
      var getPointsParams = {};

      $scope.filter.error = false;
      $scope.filter.carregar = true;

      if($scope.markers!== undefined) $scope.map.removeLayer($scope.markers);

      getPointsParams.municipio = municipio;
      getPointsParams.categoria = categoria.id;

      if(subCategoria)

        getPointsParams.subcategoria = subCategoria.id;

      RestApi.getPoints(getPointsParams, getPointsSuccess);

      /**<commit_msg>Mudanças na injeção de dependências para que funcione o grunt build como esperado<commit_after>'use strict';

/**
 * @ngdoc directive
 * @name geoCtfApp.directive:sidenav
 * @description
 * # sidenav
 */
var app;

app = angular.module('geoCtfApp');
app.directive('sidenav', sidenavDir);

sidenavDir.$inject = ['RestApi'];

/**
 * Cria e retorna a diretiva <code>sidenave</code>
 * @param RestApi
 * @returns Object
 */
function sidenavDir (RestApi) {

  SideNavController.$inject = ['$scope', '$mdSidenav', '$mdUtil', 'Auth'];

  /**
   * Exporta a configuração da diretiva
   * @type Object
   */
  var exports = {
    templateUrl: 'views/partials/sidenav.html',
    restrict: 'E',
    controller : SideNavController
  };

  return exports;

  /**
   * Controller principal da diretiva.
   * @constructor
   */
  function SideNavController ($scope, $mdSidenav, $mdUtil, Auth){

    L.Icon.Default.imagePath = 'images';

    RestApi.get({ type: 'categorias'}, getCategoriaSuccess );

    $scope.filter = {};
    $scope.filter.listMunicipios = false;
    $scope.toggleRight = construirToggle('right');

    $scope.close = closeSidenav;
    $scope.requestPoints = requestPoints;
    $scope.getMunicipios = getMunicipios;
    //$scope.listSubcategoria = listSubcategoria;

    $scope.toggleRight();


    /**
     * Fecha a diretiva
     */
    function closeSidenav () {
      $mdSidenav('right').close();
    }

    /**
     * Apresenta as informaçõe de subCategorias de acordo com a categoria selecionada.
     * @param categoria
     */
    function listSubcategoria (categoria){
      $scope.filter.subCategoria = '';
      if (categoria.id !== 'Todos') {
        $scope.subCategorias = categoria.subcategorias;
      }

      $scope.filter.subcategoria = null
    }

    /**
     * Requisita as informações de <i>features</i> que devem ser apresentadas no mapa
     * de acordo com os filtros estabelecidos.
     * @param filter
     */
    function requestPoints (filter) {

      var categoria = filter.categoria;
      var subCategoria = filter.subcategoria;
      var municipio = filter.municipio.geocodigo;
      var ano = filter.ano;
      var getPointsParams = {};

      $scope.filter.error = false;
      $scope.filter.carregar = true;

      if($scope.markers!== undefined) $scope.map.removeLayer($scope.markers);

      getPointsParams.municipio = municipio;
      getPointsParams.categoria = categoria.id;

      if(subCategoria)

        getPointsParams.subcategoria = subCategoria.id;

      if(ano)

        getPointsParams.ano = ano;

      RestApi.getPoints(getPointsParams, getPointsSuccess);

      /**
{'fraction_non_alphanumeric': 0.12424849699398798, 'fraction_numerical': 0.0, 'mean_word_length': 2.9548335974643423, 'pattern_counts': {'":': 0, '<': 11, '<?xml version=': 0, '>': 11, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1764018', 'n_tokens_mistral': 1687, 'n_tokens_neox': 1643, 'n_words': 333}