<commit_before><html>
<head>
<meta charset="utf-8" />
<link href="http://fonts.googleapis.com/icon?family=Material+Icons"
	rel="stylesheet">
<!--Import materialize.css-->
<link type="text/css" rel="stylesheet"
	href="/webjars/materializecss/css/materialize.min.css"
	media="screen,projection" />
</head>
<body ng-app="appSoftwarePlanner" ng-controller="HomeController as home">

	<nav>
		<div class="nav-wrapper">
			<a href="#" class="brand-logo"><i class="large material-icons">insert_chart</i></a>
			<a href="#" class="brand-logo center">Software Planner</a>
			<ul id="nav-mobile" class="right hide-on-med-and-down">
				<li><a href="/">Inicio</a></li>
				<li ng-show="home.authenticated"><a href="/">Ajustes</a></li>
				<li ng-show="home.authenticated"><button
						ng-click="home.logout()" class="btn btn-primary">
						Logout (<span ng-bind="home.user"></span>)
					</button></li>
			</ul>
		</div>
	</nav>

	<div class="container" ng-show="!home.authenticated">

		<div style="height: 50%;" class="valign-wrapper  center-align">
			<span class="valign center-block"><a class="valign"
				href="/login/github"><button class="btn btn-primary">Iniciar sesión</button></a></span>
		</div>


		<div class="row">
			<div class="col s4">
				<div class="center promo promo-example">
					<i class="large material-icons">flash_on</i>
					<p class="promo-caption">Speeds up development</p>
					<p class="light center">We did most of the heavy lifting for
						you to provide a default stylings that incorporate our custom
						components.</p>
				</div>
			</div>
			<div class="col s4">
				<div class="center promo promo-example">
					<i class="large material-icons">group</i>
					<p class="promo-caption">User Experience Focused</p>
					<p class="light center">By utilizing elements and principles of
						Material Design, we were able to create a framework that focuses
						on User Experience.</p>
				</div>
			</div>
			<div class="col s4">
				<div class="center promo promo-example">
					<i class="large material-icons">settings</i>
					<p class="promo-caption">Easy to work with</p>
					<p class="light center">We have provided detailed documentation
						as well as specific code examples to help new users get started.</p>
				</div>
			</div>
		</div>

	</div>
	
	<div class="container" ng-show="home.authenticated">
		
  
  <!-- MODALES -->
  <div id="modalAsociar" class="modal bottom-sheet">
    <div class="modal-content">
      <h4>Modal Header</h4>
   <input name="id_repo" type="hidden" id="id_repo"/>
    <div class="collection">
     <a ng-click="home.loginIntoTrello()" class="collection-item">Trello</a>
     <a href="#!" class="collection-item">Google Calendar</a>
    </div>      
	</div>
	<div class="modal-footer">

    </div>
  </div>
  
  <!--  SECCIONES -->
  		<section id="seccion-boards" ng-show="home.estado == 2">
			<h2>Tus tableros de trello</h2>
			<ul class="collection" ng-show="home.boards">
				<li class="collection-item" ng-repeat="(indice, board) in home.boards">
					<a><i class="tiny material-icons">work</i>{{board.name}}</a>
					<a ng-click="home.asociarBoard(board.id)" class="secondary-content"><i class="material-icons">send</i></a>
				</li>
			</ul>
			
			<div class="center" ng-show="!home.boards">
		    <div class="preloader-wrapper big active" >
		      <div class="spinner-layer spinner-blue">
		        <div class="circle-clipper left">
		          <div class="circle"></div>
		        </div><div class="gap-patch">
		          <div class="circle"></div>
		        </div><div class="circle-clipper right">
		          <div class="circle"></div>
		        </div>
		      </div>
		      </div>
        	</div>
		</section>
  
		<section id="seccion-repos" ng-show="home.estado == 1">
			<h2>Tus repositorios</h2>
			<ul class="collection" ng-show="home.repos">
				<li class="collection-item" ng-repeat="(indice, repo) in home.repos">
					<a><i class="tiny material-icons">work</i>{{repo.name}}</a>
					<a ng-click="home.asociarRepo(repo.id)"  ng-show="repo.asoc=='false'" class="secondary-content"><i class="material-icons">send</i></a>
				</li>
			</ul>
			
			<div class="center" ng-show="!home.repos">
		    <div class="preloader-wrapper big active" >
		      <div class="spinner-layer spinner-blue">
		        <div class="circle-clipper left">
		          <div class="circle"></div>
		        </div><div class="gap-patch">
		          <div class="circle"></div>
		        </div><div class="circle-clipper right">
		          <div class="circle"></div>
		        </div>
		      </div>
		      </div>
        	</div>
		</section>
		

		
	</div>
	<script type="text/javascript" src="/webjars/jquery/jquery.min.js"></script>
	<script type="text/javascript"src="/webjars/materializecss/materialize.min.js"></script>
	<script type="text/javascript" src="/webjars/angularjs/angular.min.js"></script>
	<script src="https://api.trello.com/1/client.js?key=3ced367c03efe99a64b0b83fac6fa077"></script>
	
	<script type="text/javascript">
    var myApp = angular.module("appSoftwarePlanner", [])
				.config(
						function($httpProvider) {
							$httpProvider.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
						}).controller("HomeController", function($http, $location, $scope) {
					var self = this;
					self.estado = 1;
					$http.get("/user").success(function(data) {
						if (data.name) {
							self.user = data.name;
							self.authenticated = true;
							$http.get("/repos").success(function(dato) {
								self.repos = dato;
							}).error(function() {
								self.repos = null;
							});

						} else {
							self.user = "N/A";
							self.authenticated = false;
						}
					}).error(function() {
						self.user = "N/A";
						self.authenticated = false;
					});
					self.logout = function() {
						$http.post('logout', {}).success(function() {
							self.authenticated = false;
							$location.path("/");
						}).error(function(data) {
							console.log("Logout failed")
							self.authenticated = false;
						});
					};
					
					self.asociarRepo = function(id){
						  self.requestAsocRepo=id;
						  $('#modalAsociar').openModal();
					}
					
					self.asociarBoard = function(id) {
						  self.requestAsocBoard=id;
						  self.requestAsoc();
					}
					
					self.requestAsoc = function() {
						if(self.requestAsocRepo != null && self.requestAsocBoard != null) {
							$http.get("/repos/asociar/" + self.user + "/" + self.requestAsocRepo+ "/" + self.requestAsocBoard).success(function(dato) {
								if(dato.response == "ok") {
									self.requestAsocRepo = null;
									self.requestAsocBoard = null;
									self.estado = 1;
								} else {
									alert(dato.response)
								}
							}).error(function() {
								alert("ERROR");
							});<commit_msg>Interfaz gráfica para mostrar asociación de commits y tasks<commit_after><html>
<head>
<meta charset="utf-8" />
<link href="http://fonts.googleapis.com/icon?family=Material+Icons"
	rel="stylesheet">
<!--Import materialize.css-->
<link type="text/css" rel="stylesheet"
	href="/webjars/materializecss/css/materialize.min.css"
	media="screen,projection" />
	
	<style>
	.scrollable {
		height: 250px;
		overflow:auto;
	}
	</style>
</head>
<body ng-app="appSoftwarePlanner" ng-controller="HomeController as home">

	<nav>
		<div class="nav-wrapper">
			<a href="#" class="brand-logo"><i class="large material-icons">insert_chart</i></a>
			<a href="#" class="brand-logo center">Software Planner</a>
			<ul id="nav-mobile" class="right hide-on-med-and-down">
				<li><a href="/">Inicio</a></li>
				<li ng-show="home.authenticated"><a href="/">Ajustes</a></li>
				<li ng-show="home.authenticated"><button
						ng-click="home.logout()" class="btn btn-primary">
						Logout (<span ng-bind="home.user"></span>)
					</button></li>
			</ul>
		</div>
	</nav>

	<div class="container" ng-show="!home.authenticated">

		<div style="height: 50%;" class="valign-wrapper  center-align">
			<span class="valign center-block"><a class="valign"
				href="/login/github"><button class="btn btn-primary">Iniciar sesión</button></a></span>
		</div>


		<div class="row">
			<div class="col s4">
				<div class="center promo promo-example">
					<i class="large material-icons">flash_on</i>
					<p class="promo-caption">Speeds up development</p>
					<p class="light center">We did most of the heavy lifting for
						you to provide a default stylings that incorporate our custom
						components.</p>
				</div>
			</div>
			<div class="col s4">
				<div class="center promo promo-example">
					<i class="large material-icons">group</i>
					<p class="promo-caption">User Experience Focused</p>
					<p class="light center">By utilizing elements and principles of
						Material Design, we were able to create a framework that focuses
						on User Experience.</p>
				</div>
			</div>
			<div class="col s4">
				<div class="center promo promo-example">
					<i class="large material-icons">settings</i>
					<p class="promo-caption">Easy to work with</p>
					<p class="light center">We have provided detailed documentation
						as well as specific code examples to help new users get started.</p>
				</div>
			</div>
		</div>

	</div>
	
	<div class="container" ng-show="home.authenticated">
		
  
  <!-- MODALES -->
  <div id="modalAsociar" class="modal bottom-sheet">
    <div class="modal-content">
      <h4>Modal Header</h4>
   <input name="id_repo" type="hidden" id="id_repo"/>
    <div class="collection">
     <a ng-click="home.loginIntoTrello()" class="collection-item">Trello</a>
     <a href="#!" class="collection-item">Google Calendar</a>
    </div>      
	</div>
	<div class="modal-footer">

    </div>
  </div>
  
  <!--  SECCIONES -->
  		<section id="seccion-boards" ng-show="home.estado == 2">
			<h2>Tus tableros de trello</h2>
			<ul class="collection" ng-show="home.boards">
				<li class="collection-item" ng-repeat="(indice, board) in home.boards">
					<a><i class="tiny material-icons">work</i>{{board.name}}</a>
					<a ng-click="home.asociarBoard(board.id)" class="secondary-content"><i class="material-icons">send</i></a>
				</li>
			</ul>
			
			<div class="center" ng-show="!home.boards">
		    <div class="preloader-wrapper big active" >
		      <div class="spinner-layer spinner-blue">
		        <div class="circle-clipper left">
		          <div class="circle"></div>
		        </div><div class="gap-patch">
		          <div class="circle"></div>
		        </div><div class="circle-clipper right">
		          <div class="circle"></div>
		        </div>
		      </div>
		      </div>
        	</div>
		</section>
  
		<section id="seccion-repos" ng-show="home.estado == 1">
			<h2>Tus repositorios</h2>
			<ul class="collection" ng-show="home.repos">
				<li class="collection-item" ng-repeat="(indice, repo) in home.repos">
					<a><i class="tiny material-icons">work</i>{{repo.name}}</a>
					<a ng-click="home.asociarRepo(repo.id)"  ng-show="repo.asoc=='false'" class="secondary-content"><i class="material-icons">send</i></a>
					<a ng-click="home.verRepo(repo.id)"  ng-show="repo.asoc=='true'" class="secondary-content"><i class="material-icons">work</i></a>
				</li>
			</ul>
			
			<div class="center" ng-show="!home.repos">
		    <div class="preloader-wrapper big active" >
		      <div class="spinner-layer spinner-blue">
		        <div class="circle-clipper left">
		          <div class="circle"></div>
		        </div><div class="gap-patch">
		          <div class="circle"></div>
		        </div><div class="circle-clipper right">
		          <div class="circle"></div>
		        </div>
		      </div>
		      </div>
        	</div>
		</section>
		
		<section id="seccion-repos" ng-show="home.estado == 3">
		<div class="row">
		   <div class="col s4">
			   <div class="scrollable collection">
		        <a href="#!" class="collection-item">Task 1</a>
		        <a href="#!" class="collection-item active">Task 2</a>
		        <a href="#!" class="collection-item">Task 3</a>
		        <a href="#!" class="collection-item">Task 4</a>
		      </div>
		  </div>
		  <div class="col s8">
			   <div class="scrollable collection">
		        <a href="#!" class="collection-item">Commit 1</a>
		        <a href="#!" class="collection-item active">Commit 2</a>
		        <a href="#!" class="collection-item">Commit 3</a>
		        <a href="#!" class="collection-item">Commit 4</a>
		      </div>
		  </div>
		</div>
		<div class="row">
		   <div class="col s12">
			   <div class="card scrollable blue-grey darken-1">
	            <div class="card-content white-text">
	              <span class="card-title">Card Title</span>
	              <p>I am a very simple card. I am good at containing small bits of information.
	              I am convenient because I require little markup to use effectively.</p>
	            </div>
          	   </div>
		  </div>
		</div>
		</section>
		

		
	</div>
	<script type="text/javascript" src="/webjars/jquery/jquery.min.js"></script>
	<script type="text/javascript"src="/webjars/materializecss/materialize.min.js"></script>
	<script type="text/javascript" src="/webjars/angularjs/angular.min.js"></script>
	<script src="https://api.trello.com/1/client.js?key=3ced367c03efe99a64b0b83fac6fa077"></script>
	
	<script type="text/javascript">
	
    var myApp = angular.module("appSoftwarePlanner", [])
				.config(
						function($httpProvider) {
							$httpProvider.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
						}).controller("HomeController", function($http, $location, $scope) {
					var self = this;
					self.estado = 1;
					$http.get("/user").success(function(data) {
						if (data.name) {
							self.user = data.name;
							self.authenticated = true;
							$http.get("/repos").success(function(dato) {
								self.repos = dato;
							}).error(function() {
								self.repos = null;
							});

						} else {
							self.user = "N/A";
							self.authenticated = false;
						}
					}).error(function() {
						self.user = "N/A";
						self.authenticated = false;
					});
					self.logout = function() {
						$http.post('logout', {}).success(function() {
							self.authenticated = false;
							$location.path("/");
						}).error(function(data) {
							console.log("Logout failed")
							self.authenticated = false;
						});
					};
					
					self.asociarRepo = function(id){
						  self.requestAsocRepo=id;
						  $('#modalAsociar').openModal();
					}
					
					self.verRepo = function(id){
						self.requestAsocRepo=id;
						self.estado = 3;
					}
					
					self.asociarBoard = function(id) {
						  self.requestAsocBoard=id;
						  self.requestAsoc();
					}
					
					self.requestAsoc = function() {
						if(self.requestAsocRepo != null && self.requestAsocBoard != null) {
							$http.get("/repos/asociar/" + self.user + "/" + self.requestAsocRepo+ "/" + self.requestAsocBoard).success(function(dato) {
								if(dato.response == "ok") {
									self.requestAsocRepo = null;
									self.requestAsocBoard = null;
									self.estado = 1;
								} else {
									alert(dato.response)
								}
							}).error(function() {
								alert("ERROR");
							});
{'fraction_non_alphanumeric': 0.18473684210526317, 'fraction_numerical': 0.005657894736842106, 'mean_word_length': 2.8328290468986386, 'pattern_counts': {'":': 0, '<': 393, '<?xml version=': 0, '>': 393, 'https://': 2, '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': '1782149', 'n_tokens_mistral': 6272, 'n_tokens_neox': 4978, 'n_words': 970}