<commit_before>/**
 * Serviço de cadastro e manutenção de um projeto canvas.
 * @author <NAME> <<EMAIL>>
 * @version 0.2.0
 * @since 0.2.0
 */
'use strict';

angular.module( 'kzbmcMobileApp' ).factory( 'projetoCanvasService', [ 'localStorageService', function( localStorageService ) {

  var canvas = {};

  /**
   * Cadastra um novo projeto canvas.
   * @method cadastrar
   * @param {object} obj
   */
  canvas.cadastrar = function( obj ) {
		var canvasObj = { 'nome' : obj.nome, 'descricao' : obj.descricao, 'itens' : { 'pc' : [], 'ac' : [], 
				'rc' : [], 'pv' : [], 'rcl' : [], 'ca' : [], 'sc' : [], 'ec' : [], 'fr' : [] } };
    var projetos = this.obterProjetos();
		projetos.push( angular.toJson( canvasObj ) );
		this.definirProjetos( projetos );
  };

  /**
   * Atualiza os dados de um projeto canvas.
   * @method atualizar
   * @param {object} obj
   * @param {integer} index
   */
  canvas.atualizar = function( obj, index ) {
    var projeto = this.obterProjetoJson( index );
    if( projeto !== false ) {
      projeto.nome = obj.nome;
      projeto.descricao = obj.descricao;
      var projetos = this.obterProjetos();
      projetos[ index ] = angular.toJson( projeto );
      this.definirProjetos( projetos );
    }
  };

  /**
   * Remove um projeto canvas.
   * @method remover
   * @param {integer} index
   */
  canvas.remover = function( index ) {
    var projetos = this.obterProjetos();
    projetos.splice( index, 1 );
    this.definirProjetos( projetos );
  };

  /**
   * Remove todos os projetos canvas cadastrados.
   * @method removerTodosProjetos
   */
  canvas.removerTodosProjetos = function() {
      localStorageService.add( 'projetos', [] );
  };

  /**
   * Retorna um projeto com base no índice indicado.
   * @method obterProjeto
   * @param {integer} index
   * @return Literal
   */
  canvas.obterProjeto = function( index ) {
      var projetos = this.obterProjetos();
      if( index < projetos.length ) {
        return projetos[ index ];
      }
      return false;
  };

  /**
   * Retorna um projeto com base no índice indicado no formato json.
   * @method obterProjetoJson
   * @param {integer} index
   * @return object
   */
  canvas.obterProjetoJson = function( index ) {
      var projeto = this.obterProjeto( index );
      if( projeto !== false ) {
        return angular.fromJson( projeto );
      }
      return false;
  };

  /**
   * Retorna todos os projetos canvas cadastrados.
   * @method obterProjetos
   * @return Array
   */
  canvas.obterProjetos = function() {
  		return localStorageService.get( 'projetos' ) || [];
  };

  /**
   * Retorna todos os projetos canvas cadastrados no formato json.
   * @method obterProjetosJson
   * @return Array de objetos json
   */
  canvas.obterProjetosJson = function() {
    var projetosJson = [];
    var projetos = this.obterProjetos();
    if( projetos !== false ) {
      for( var i = 0; i < projetos.length; i ++ ) {
        projetosJson.push( angular.fromJson( projetos[ i ] ) );
      }
    }
    return projetosJson;
  };

  /**
   * Persiste os projetos canvas.
   * @method definirProjetos
   * @param {Array} projetos
   */
  canvas.definirProjetos = function( projetos ) {
    localStorageService.add( 'projetos', projetos );
  };

  return canvas;
}]);<commit_msg>Fixed issue editing a project canvas<commit_after>/**
 * Serviço de cadastro e manutenção de um projeto canvas.
 * @author <NAME> <<EMAIL>>
 * @version 0.2.0
 * @since 0.2.0
 */
'use strict';

angular.module( 'kzbmcMobileApp' ).factory( 'projetoCanvasService', [ 'localStorageService', function( localStorageService ) {

  var canvas = {};

  /**
   * Cadastra um novo projeto canvas.
   * @method cadastrar
   * @param {object} obj
   */
  canvas.cadastrar = function( obj ) {
		var canvasObj = { 'nome' : obj.nome, 'descricao' : obj.descricao, 'itens' : { 'pc' : [], 'ac' : [], 
				'rc' : [], 'pv' : [], 'rcl' : [], 'ca' : [], 'sc' : [], 'ec' : [], 'fr' : [] } };
    var projetos = this.obterProjetos();
		projetos.push( angular.toJson( canvasObj ) );
		this.definirProjetos( projetos );
  };

  /**
   * Atualiza os dados de um projeto canvas.
   * @method atualizar
   * @param {object} obj
   * @param {integer} index
   */
  canvas.atualizar = function( obj, index ) {
    var projeto = this.obterProjetoJson( index );
    if( projeto !== false ) {
      projeto.nome = obj.nome;
      projeto.descricao = obj.descricao;
      if( obj.itens ) {
        projeto.itens = obj.itens;
      }
      var projetos = this.obterProjetos();
      projetos[ index ] = angular.toJson( projeto );
      this.definirProjetos( projetos );
    }
  };

  /**
   * Remove um projeto canvas.
   * @method remover
   * @param {integer} index
   */
  canvas.remover = function( index ) {
    var projetos = this.obterProjetos();
    projetos.splice( index, 1 );
    this.definirProjetos( projetos );
  };

  /**
   * Remove todos os projetos canvas cadastrados.
   * @method removerTodosProjetos
   */
  canvas.removerTodosProjetos = function() {
      localStorageService.add( 'projetos', [] );
  };

  /**
   * Retorna um projeto com base no índice indicado.
   * @method obterProjeto
   * @param {integer} index
   * @return Literal
   */
  canvas.obterProjeto = function( index ) {
      var projetos = this.obterProjetos();
      if( index < projetos.length ) {
        return projetos[ index ];
      }
      return false;
  };

  /**
   * Retorna um projeto com base no índice indicado no formato json.
   * @method obterProjetoJson
   * @param {integer} index
   * @return object
   */
  canvas.obterProjetoJson = function( index ) {
      var projeto = this.obterProjeto( index );
      if( projeto !== false ) {
        return angular.fromJson( projeto );
      }
      return false;
  };

  /**
   * Retorna todos os projetos canvas cadastrados.
   * @method obterProjetos
   * @return Array
   */
  canvas.obterProjetos = function() {
  		return localStorageService.get( 'projetos' ) || [];
  };

  /**
   * Retorna todos os projetos canvas cadastrados no formato json.
   * @method obterProjetosJson
   * @return Array de objetos json
   */
  canvas.obterProjetosJson = function() {
    var projetosJson = [];
    var projetos = this.obterProjetos();
    if( projetos !== false ) {
      for( var i = 0; i < projetos.length; i ++ ) {
        projetosJson.push( angular.fromJson( projetos[ i ] ) );
      }
    }
    return projetosJson;
  };

  /**
   * Persiste os projetos canvas.
   * @method definirProjetos
   * @param {Array} projetos
   */
  canvas.definirProjetos = function( projetos ) {
    localStorageService.add( 'projetos', projetos );
  };

  return canvas;
}]);
{'fraction_non_alphanumeric': 0.14210684273709484, 'fraction_numerical': 0.0024009603841536613, 'mean_word_length': 2.672176308539945, 'pattern_counts': {'":': 0, '<': 13, '<?xml version=': 0, '>': 9, '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': '1870077', 'n_tokens_mistral': 2385, 'n_tokens_neox': 2378, 'n_words': 547}