From 335af0bbf19ef4e6454233c9b4d212ee5aaa9d0d Mon Sep 17 00:00:00 2001 From: Owen Date: Mon, 14 Jul 2014 19:06:42 +0300 Subject: Target and adjacent nodes are highlighted when clicked Background click remove editing boxes and highlights Deliverables test button adds 140 random tasks and dates Links between nodes have two colors: blue and green for dependencies --- scripts/textanalysis.js | 386 +++++++++++++++++++++++------------------------- 1 file changed, 186 insertions(+), 200 deletions(-) (limited to 'scripts/textanalysis.js') diff --git a/scripts/textanalysis.js b/scripts/textanalysis.js index 002ed516..1306a863 100644 --- a/scripts/textanalysis.js +++ b/scripts/textanalysis.js @@ -1,269 +1,255 @@ var text = ""; var opened = false; -var sugg=["AJAX","Neo4J","Rhizi","Research","CRI","SageBionetworks","Hero.coli","CSS","NodeJS","HTML5","Angular","D3","ProofOfConcept","Graphs","CloudComputing","BigData","ProblemSolving","PHP","Javascript","BackBone","Cooperation","SemanticWeb"]; -var typeindex=0; -var names=["Jean-ChristopheThalabard","MaévaVignes","AbdelElAbed","ValérieTaly","SébastienDutreuil","AntoineBERGEL","AntoineAngot","JérômeFeret","CharlèneGayrard","HugoJimenezPerez","CaterinaUrban","GaëlleChevalon","IanMarcus","AntoineTALY","ChantalLOTTON","Ana-MariaLennon-Duménil","FrédériqueCarlier-Grynkorn","PascalMartin","TamaraMilosevic","NicolasCarpi","StéphaneDaoudy","DanijelaMaticVignjevic","EugenioCinquemani","VincentDAHIREL","MartinLenz","MaïlysChassagne","AnneSchmidt","SophieSacquinMora","Richard-EmmanuelEastes","MichelMorange","EwaZlotek-Zlotkiewicz","A.m.o.d.s.e.nC.h.o.t.i.a","AlexandreVaugoux","AnnemiekJMCornelissen","ClémentNizak","AntoineFrenoy","ArielB.Lindner","BenjaminBrogniart","ChristopheZimmer","ClaireRibrault","DavidTareste","DenisLafeuille","DorGarbash","DusanMISEVIC","EddaNitschke","FrançoisTaddei","GregoryBatt","JeanLucLebrun","JesseHimmelstein","KevinLhoste","LauraCiriani","LivioRiboli-Sasco","NathalieSussfeld","JakeEdwinWintermute","MarlyneNogbou","MatthieuPiel","PascalHersen","Pierre-YvesBourguignon","TimoBetz","RaphaëlGoujet","StéphaneDebove","VincentDanos","TamKienDuong"]; -var nodetypes=["person","project","skill","deliverable","objective"]; -var previousorder="NOTHING"; -var nodecounter=0; -var nodereplaced=false; +var sugg = ["AJAX", "Neo4J", "Rhizi", "Research", "CRI", "SageBionetworks", "Hero.coli", "CSS", "NodeJS", "HTML5", "Angular", "D3", "ProofOfConcept", "Graphs", "CloudComputing", "BigData", "ProblemSolving", "PHP", "Javascript", "BackBone", "Cooperation", "SemanticWeb"]; +var typeindex = 0; +var names = ["Jean-ChristopheThalabard", "MaévaVignes", "AbdelElAbed", "ValérieTaly", "SébastienDutreuil", "AntoineBERGEL", "AntoineAngot", "JérômeFeret", "CharlèneGayrard", "HugoJimenezPerez", "CaterinaUrban", "GaëlleChevalon", "IanMarcus", "AntoineTALY", "ChantalLOTTON", "Ana-MariaLennon-Duménil", "FrédériqueCarlier-Grynkorn", "PascalMartin", "TamaraMilosevic", "NicolasCarpi", "StéphaneDaoudy", "DanijelaMaticVignjevic", "EugenioCinquemani", "VincentDAHIREL", "MartinLenz", "MaïlysChassagne", "AnneSchmidt", "SophieSacquinMora", "Richard-EmmanuelEastes", "MichelMorange", "EwaZlotek-Zlotkiewicz", "A.m.o.d.s.e.nC.h.o.t.i.a", "AlexandreVaugoux", "AnnemiekJMCornelissen", "ClémentNizak", "AntoineFrenoy", "ArielB.Lindner", "BenjaminBrogniart", "ChristopheZimmer", "ClaireRibrault", "DavidTareste", "DenisLafeuille", "DorGarbash", "DusanMISEVIC", "EddaNitschke", "FrançoisTaddei", "GregoryBatt", "JeanLucLebrun", "JesseHimmelstein", "KevinLhoste", "LauraCiriani", "LivioRiboli-Sasco", "NathalieSussfeld", "JakeEdwinWintermute", "MarlyneNogbou", "MatthieuPiel", "PascalHersen", "Pierre-YvesBourguignon", "TimoBetz", "RaphaëlGoujet", "StéphaneDebove", "VincentDanos", "TamKienDuong"]; +var nodetypes = ["person", "project", "skill", "deliverable", "objective"]; +var previousorder = "NOTHING"; +var nodecounter = 0; +var nodereplaced = false; -var newlink=""; +var newlink = ""; -var ExecutionStack=[]; +var ExecutionStack = []; $('#textanalyser').autocompleteTrigger({ - triggerStart : '#', - triggerEnd: '', - source: sugg + triggerStart: '#', + triggerEnd: '', + source: sugg }); -$(document).keydown(function(e){ - //RIGHT - if (e.keyCode == 37 && (previousorder==="EDITNODE" || previousorder==="NEWNODE")) { - changeType(null,"up"); +$('#textanalyser').submit(function () { + alert("kldffsgdklgfdmlfdkfglfgsdklgfdkfssfglk,dgf"); + if (previousorder === "EDITNODE") { + $('#textanalyser').val(text + " "); + } return false; - } +}); - //LEFT - if (e.keyCode == 39 && (previousorder==="EDITNODE" || previousorder==="NEWNODE")) { - changeType(null,"down"); - return false; - } +$(document).keydown(function (e) { + //RIGHT + if (e.keyCode == 37 && (previousorder === "EDITNODE" || previousorder === "NEWNODE")) { + changeType(null, "up"); + return false; + } - //ENTER - if(e.keyCode == 13){ - if(previousorder==="CLOSENODE"){ - $('#textanalyser').val(text+" "); - } + //LEFT + if (e.keyCode == 39 && (previousorder === "EDITNODE" || previousorder === "NEWNODE")) { + changeType(null, "down"); + return false; } - if(e.keyCode == 73){ - zoom(); + + + if (e.keyCode == 73) { + zoom(); } //DELTE - if(e.keyCode == 46 || e.keyCode == 8){ - if(previousorder==="CLOSENODE" || previousorder==="NEWNODE")return false; + if (e.keyCode == 46 || e.keyCode == 8) { + if (previousorder === "CLOSENODE" || previousorder === "NEWNODE") return false; } - }); +}); -function changeType(arg,id){ - if(arg==='up'){ - if(typeindex<4)typeindex++; - else typeindex=0; - graph.editType(id,"temp",nodetypes[typeindex]); +function changeType(arg, id) { + if (arg === 'up') { + if (typeindex < 4) typeindex++; + else typeindex = 0; + graph.editType(id, "temp", nodetypes[typeindex]); - $('.typeselection').html('
'+"Chosen Type: "+nodetypes[typeindex]+'
'); - }else{ - if(typeindex>0)typeindex--; - else typeindex=4; + $('.typeselection').html('
' + "Chosen Type: " + nodetypes[typeindex] + '
'); + } else { + if (typeindex > 0) typeindex--; + else typeindex = 4; - if(previousorder==="EDITNODE")graph.editType(id,"temp",nodetypes[typeindex]); - $('.typeselection').html('
'+"Chosen Type: "+nodetypes[typeindex]+'
'); + if (previousorder === "EDITNODE") graph.editType(id, "temp", nodetypes[typeindex]); + $('.typeselection').html('
' + "Chosen Type: " + nodetypes[typeindex] + '
'); - } + } } -window.setInterval(function(){ - if ($('#textanalyser').val() != text ) - { - $('.typeselection').css('top',-300); - $('.typeselection').css('left',0); - // text changed - text = $('#textanalyser').val(); - console.log(text); - ExecutionStack.push(text); - TextAnalyser(text); - +window.setInterval(function () { + if ($('#textanalyser').val() != text) { + $('.typeselection').css('top', -300); + $('.typeselection').css('left', 0); + // text changed + text = $('#textanalyser').val(); + //console.log(text); + ExecutionStack.push(text); + TextAnalyser(text); + } - },5); +}, 5); -function TextAnalyser(newtext){ - var states=["NOTHING","NEWNODE","EDITNODE","CLOSENODE","NEWLINK","EDITLINK"]; - var order=previousorder; - var nodetype="new"; - var array=[]; - var arraytext=""; +function TextAnalyser(newtext) { + var states = ["NOTHING", "NEWNODE", "EDITNODE", "CLOSENODE", "NEWLINK", "EDITLINK"]; + var order = previousorder; + var nodetype = "new"; + var array = []; + var arraytext = ""; - var newnode=""; - var index=newtext.length; + var newnode = ""; + var index = newtext.length; - array=newtext.match(/([#]\w+)/g); - for(var i=nodecounter-1;i<=nodecounter;i++){ - if(addednodes[i]!==undefined)newlink=newtext.replace(addednodes[i],""); - newlink=newlink.replace("#",""); - } + array = newtext.match(/([#]\w+)/g); + for (var i = nodecounter - 1; i <= nodecounter; i++) { + if (addednodes[i] !== undefined) newlink = newtext.replace(addednodes[i], ""); + newlink = newlink.replace("#", ""); + } - var lastchar=newtext.charAt(newtext.length-1); - switch(lastchar){ + var lastchar = newtext.charAt(newtext.length - 1); + switch (lastchar) { case " ": - if(previousorder==="NEWNODE")order="CLOSENODE"; - if(previousorder==="EDITNODE")order="CLOSENODE"; - if(previousorder==="NEWLINK")order="EDITLINK"; - break; + if (previousorder === "NEWNODE") order = "CLOSENODE"; + if (previousorder === "EDITNODE") order = "CLOSENODE"; + if (previousorder === "NEWLINK") order = "EDITLINK"; + break; case "#": - if(previousorder==="NEWNODE")order="EDITNODE"; - else if(previousorder==="EDITNODE")order="EDITNODE"; - else order="NEWNODE"; - break; + if (previousorder === "NEWNODE") order = "EDITNODE"; + else if (previousorder === "EDITNODE") order = "EDITNODE"; + else order = "NEWNODE"; + break; default: - if(previousorder==="NEWNODE")order="EDITNODE"; - if(previousorder==="CLOSENODE")order="NEWLINK"; - if(previousorder==="NEWLINK")order="EDITLINK"; - break; - } - - console.log(order); - - //ORDER CYCLE - previousorder=order; - var lol=""; - for(var k=0;k0); + case "EDITNODE": + do { + newnode = newtext.charAt(index) + newnode; + newnode = newnode.replace(/\s/g, ''); + index--; + } while (newtext.charAt(index) !== "#" && index > 0); break; - case "CLOSENODE": - do{ - newnode=newtext.charAt(index)+newnode; - newnode=newnode.replace(/\s/g, ''); - index--; - }while(newtext.charAt(index)!=="#" && index>0); + case "CLOSENODE": + do { + newnode = newtext.charAt(index) + newnode; + newnode = newnode.replace(/\s/g, ''); + index--; + } while (newtext.charAt(index) !== "#" && index > 0); break; - case "NEWLINK": + case "NEWLINK": - newlink=""; + newlink = ""; break; - case "EDITLINK": - newnode=""; + case "EDITLINK": + newnode = ""; break; - } + } - $('.debug').html("node n "+nodecounter+" state: "+order+" nodename: |"+newnode+ "| link: |"+newlink+"| lastnode: |"+addednodes[nodecounter-2]+"rep: "+nodereplaced); + //$('.debug').html("node n "+nodecounter+" state: "+order+" nodename: |"+newnode+ "| link: |"+newlink+"| lastnode: |"+addednodes[nodecounter-2]+"rep: "+nodereplaced); - switch(order){ - case states[0]: - window.setTimeout(function(){$('#textanalyser').css('box-shadow','0 0 0px #303030')},200); + switch (order) { + case states[0]: + window.setTimeout(function () { + $('#textanalyser').css('box-shadow', '0 0 0px #303030') + }, 200); break; - case states[1]: + case states[1]: + - - if(nodecounter%2 === 0){ - graph.addNode("",nodetypes[typeindex],"temp"); - }else{ - graph.addNode("",nodetypes[typeindex],"temp"); + if (nodecounter % 2 === 0) { + graph.addNode("", nodetypes[typeindex], "temp"); + } else { + graph.addNode("", nodetypes[typeindex], "temp"); } - graph.editType("x","temp",nodetypes[typeindex]); + graph.editType("x", "temp", nodetypes[typeindex]); nodecounter++; break; - case states[2]: - if(nodereplaced===true){ - //graph.removeLink(); - //graph.addLink - graph.addNode(newnode,nodetypes[typeindex],"temp"); - graph.editLinkTarget(addednodes[nodecounter-2],replacement,newnode); - replacement=""; - } - nodereplaced=false; - if(AddedUnique(newnode)){ - - }else if(nodecounter%2===0){ - console.log("not unique, replace"); - graph.addLink(addednodes[nodecounter-2],newnode,newlink); - graph.removeNode("x","temp"); - nodereplaced=true; - replacement=newnode; - } - graph.editName("x","temp",newnode); - graph.findCoordinates("x","temp"); - break; - case states[3]: - - nodereplaced=false; - graph.editState("x","temp","perm"); - addednodes.push(newnode); - if(Unique(newnode))sugg.push(newnode); - - if(nodecounter%2 === 0){ - - $('#textanalyser').css('box-shadow','0 0 30px #FFFF8F'); - $('#textanalyser').val(""); - graph.removeNode("x","temp"); - previousorder=states[0]; - newnode=""; - } - break; - case states[4]: - graph.addNode("","empty","temp"); - graph.addLink(addednodes[nodecounter-1],"",newlink); - break; - case states[5]: - graph.editLink(addednodes[nodecounter-1],"",newlink); - break; - } - - - - } - - - - - function Unique(newnode){ - truth=true; - for(var p=0;p