From b43c0b6769978e3aa26969a1dd46bb0905a5dfa8 Mon Sep 17 00:00:00 2001
From: Gonzalo Cameto <gonzalo.cameto@fing.edu.uy>
Date: Tue, 4 Apr 2017 19:32:15 -0300
Subject: [PATCH] Cambios en consola interactiva.

---
 backend/HaskellRest/src/java/helloworld/Sesion.java  |  8 +++++++-
 .../app/dashboard/canvas/canvas.component.html       |  3 ++-
 .../client/app/dashboard/canvas/canvas.component.ts  | 12 ++++++++++++
 .../app/dashboard/matefun/matefun.component.html     |  3 +--
 .../app/dashboard/matefun/matefun.component.ts       |  4 +++-
 .../client/app/dashboard/services/ghci.service.ts    |  2 +-
 frontend/src/client/assets/sass/_app-base.scss       |  8 ++++----
 frontend/src/client/index.html                       | 10 +++++++---
 npm-debug.log                                        |  2 +-
 9 files changed, 38 insertions(+), 14 deletions(-)

diff --git a/backend/HaskellRest/src/java/helloworld/Sesion.java b/backend/HaskellRest/src/java/helloworld/Sesion.java
index 7dbb1ab7..d0f4078a 100644
--- a/backend/HaskellRest/src/java/helloworld/Sesion.java
+++ b/backend/HaskellRest/src/java/helloworld/Sesion.java
@@ -92,10 +92,16 @@ public class Sesion {
                         Scanner s = new Scanner(proceso.getInputStream());
                         while (s.hasNextLine()) {
                             String result = s.nextLine();
+                            result = result.replaceAll("(Prelude>\\s)+", "Prelude> ");
                             callback.getAsyncRemote().sendText("{\"tipo\":\"salida\",\"resultado\":\""+result+"\"}");
                             System.out.println(result);
+//                            result = "";
+//                            while(proceso.getInputStream().available()>0){
+//                                result += s.next();
+//                            }
+//                            callback.getAsyncRemote().sendText("{\"tipo\":\"salida\",\"resultado\":\""+result+"\"}");
+//                            System.out.println("\t\t\tHay para leer:"+proceso.getInputStream().available());                            
                         }
-                        
 
                     } catch (Exception e) {
                         e.printStackTrace();
diff --git a/frontend/src/client/app/dashboard/canvas/canvas.component.html b/frontend/src/client/app/dashboard/canvas/canvas.component.html
index 64c56d71..3b843b68 100644
--- a/frontend/src/client/app/dashboard/canvas/canvas.component.html
+++ b/frontend/src/client/app/dashboard/canvas/canvas.component.html
@@ -1,3 +1,4 @@
 <canvas #canvasElement width="200" height="200" (mousemove)="moveGraph($event)" (mousewheel)="zoomGraph($event)" (DOMMouseScroll)="zoomGraph($event)" >
-
 </canvas>
+<button class="btn btn-primary" (click)=zoomMas() >+</button>
+<button class="btn btn-primary" (click)=zoomMenos() >-</button>
diff --git a/frontend/src/client/app/dashboard/canvas/canvas.component.ts b/frontend/src/client/app/dashboard/canvas/canvas.component.ts
index 91a77dea..6dd9f6cb 100644
--- a/frontend/src/client/app/dashboard/canvas/canvas.component.ts
+++ b/frontend/src/client/app/dashboard/canvas/canvas.component.ts
@@ -207,6 +207,18 @@ export class CanvasComponent {
         // cross-browser wheel delta
         var e = window.event || e; // old IE support
         var delta = Math.max(-1, Math.min(1, (e.wheelDelta || -e.detail)));
+        this.zoom(delta);
+    }
+
+    public zoomMas = function(){
+        this.zoom(Math.round(this.rangeX / 10));
+    }
+
+    public zoomMenos = function {
+        this.zoom(-Math.round(this.rangeX / 10));
+    }
+
+    private zoom = function(delta:number){
         delta = delta / 2;
         if (this.rangeX < 6 && delta > 0 || this.rangeX > 1000 && delta < 0) {
             return;
diff --git a/frontend/src/client/app/dashboard/matefun/matefun.component.html b/frontend/src/client/app/dashboard/matefun/matefun.component.html
index aa59327a..b53003d5 100644
--- a/frontend/src/client/app/dashboard/matefun/matefun.component.html
+++ b/frontend/src/client/app/dashboard/matefun/matefun.component.html
@@ -33,8 +33,7 @@
                     [disabled]=consoleDisable
                     #divEntrada 
                     (keyup)="inputConsola(divEntrada.value)" (keyup.enter)=ejecutarConsola() 
-                    [value]=entrada />
-                    
+                    [value]=entrada />                    
                 </div>
             </div>
             <div class="form-group">
diff --git a/frontend/src/client/app/dashboard/matefun/matefun.component.ts b/frontend/src/client/app/dashboard/matefun/matefun.component.ts
index e558343a..b5437d67 100644
--- a/frontend/src/client/app/dashboard/matefun/matefun.component.ts
+++ b/frontend/src/client/app/dashboard/matefun/matefun.component.ts
@@ -50,7 +50,9 @@ export class MateFunComponent {
         }
 
         htmlEncode(value:string){
-            return value.replace(/&/g, '&amp;')
+            return value
+                .replace('Prelude> ','')
+                .replace(/&/g, '&amp;')
                 .replace(/\s/g, '&nbsp;')
                 .replace(/"/g, '&quot;')
                 .replace(/'/g, '&#39;')
diff --git a/frontend/src/client/app/dashboard/services/ghci.service.ts b/frontend/src/client/app/dashboard/services/ghci.service.ts
index 2752d19f..615cbb63 100644
--- a/frontend/src/client/app/dashboard/services/ghci.service.ts
+++ b/frontend/src/client/app/dashboard/services/ghci.service.ts
@@ -2,7 +2,7 @@ import { Injectable } from '@angular/core';
 import { Observable, Subject } from 'rxjs/Rx';
 import { WebsocketService } from './websocket.service';
 
-const GHCI_URL = 'ws://localhost:8080/HaskellRest/endpoint';
+const GHCI_URL = 'ws://192.168.1.43:8080/HaskellRest/endpoint';
 
 //export interface Message {
 //	author: string,
diff --git a/frontend/src/client/assets/sass/_app-base.scss b/frontend/src/client/assets/sass/_app-base.scss
index 96c9d0e7..17bf4438 100644
--- a/frontend/src/client/assets/sass/_app-base.scss
+++ b/frontend/src/client/assets/sass/_app-base.scss
@@ -406,19 +406,19 @@ a:hover{
     top: 50%;
     left: 50%;
     margin-top: -10px;
-    margin-left: -55px;
+    margin-left: -5em;
     text-align: center;
 }
 
 .spinner > div {
     width: 18px;
     height: 18px;
-    background-color: #333;
+    // background-color: #333;
 
     border-radius: 100%;
     display: inline-block;
-    -webkit-animation: sk-bouncedelay 1.4s infinite ease-in-out both;
-    animation: sk-bouncedelay 1.4s infinite ease-in-out both;
+    -webkit-animation: sk-bouncedelay 1.9s infinite ease-in-out both;
+    animation: sk-bouncedelay 1.9s infinite ease-in-out both;
 }
 
 .spinner .bounce1 {
diff --git a/frontend/src/client/index.html b/frontend/src/client/index.html
index be3b1daa..5d296263 100644
--- a/frontend/src/client/index.html
+++ b/frontend/src/client/index.html
@@ -14,9 +14,13 @@
 
     <sd-app>
         <div class="spinner">
-            <div class="bounce1"></div>
-            <div class="bounce2"></div>
-            <div class="bounce3"></div>
+            <div >M</div>
+            <div >A</div>
+            <div >T</div>
+            <div >E</div>
+            <div >F</div>
+            <div >U</div>
+            <div >N</div>
         </div>
     </sd-app>
 
diff --git a/npm-debug.log b/npm-debug.log
index 8ecab44c..c2f1090e 100644
--- a/npm-debug.log
+++ b/npm-debug.log
@@ -5,7 +5,7 @@
 4 verbose stack Error: ENOENT: no such file or directory, open '/home/gonzalo/proygrado/proygrado/package.json'
 4 verbose stack     at Error (native)
 5 verbose cwd /home/gonzalo/proygrado/proygrado
-6 error Linux 4.4.0-66-generic
+6 error Linux 4.4.0-70-generic
 7 error argv "/usr/bin/nodejs" "/usr/bin/npm" "start"
 8 error node v4.2.6
 9 error npm  v3.5.2
-- 
GitLab