diff options
| author | Owen <despito@MacBook-Pro-de-Despito.local> | 2014-06-24 15:29:43 +0200 |
|---|---|---|
| committer | Owen <despito@MacBook-Pro-de-Despito.local> | 2014-06-24 15:29:43 +0200 |
| commit | 2d98eaaf727834c128fdd2513d43d677d97fe8d7 (patch) | |
| tree | 567362955cbbcfde63c554e034544c2a568c4bde /scripts/textanalysis.js | |
| parent | 8c9f7f278806918308ac40ee721b1f9162385bf1 (diff) | |
client-only prototype files
Diffstat (limited to 'scripts/textanalysis.js')
| -rw-r--r-- | scripts/textanalysis.js | 269 |
1 files changed, 269 insertions, 0 deletions
diff --git a/scripts/textanalysis.js b/scripts/textanalysis.js new file mode 100644 index 00000000..002ed516 --- /dev/null +++ b/scripts/textanalysis.js @@ -0,0 +1,269 @@ +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 newlink=""; + +var ExecutionStack=[]; + + +$('#textanalyser').autocompleteTrigger({ + triggerStart : '#', + triggerEnd: '', + source: sugg +}); + +$(document).keydown(function(e){ + //RIGHT + if (e.keyCode == 37 && (previousorder==="EDITNODE" || previousorder==="NEWNODE")) { + changeType(null,"up"); + return false; + } + + //LEFT + if (e.keyCode == 39 && (previousorder==="EDITNODE" || previousorder==="NEWNODE")) { + changeType(null,"down"); + return false; + } + + //ENTER + if(e.keyCode == 13){ + if(previousorder==="CLOSENODE"){ + $('#textanalyser').val(text+" "); + } + } + + if(e.keyCode == 73){ + zoom(); + } + + //DELTE + 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]); + + $('.typeselection').html('<table><tr><td style="height:28px"></td></tr><tr><td>'+"Chosen Type: "+nodetypes[typeindex]+'</td></tr></table>'); + }else{ + if(typeindex>0)typeindex--; + else typeindex=4; + + if(previousorder==="EDITNODE")graph.editType(id,"temp",nodetypes[typeindex]); + $('.typeselection').html('<table><tr><td style="height:28px"></td></tr><tr><td>'+"Chosen Type: "+nodetypes[typeindex]+'</td></tr></table>'); + + } +} + + + + +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); + + + +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; + + + 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){ + case " ": + 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; + + 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;k<addednodes.length;k++){ + lol+=k+" "+addednodes[k]+"|"; + } + console.log(lol); + + + //edit words + switch(order){ + case "NOTHING": + newnode=""; + break; + case "NEWNODE": + newnode=""; + break; + 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); + break; + case "NEWLINK": + + newlink=""; + + break; + case "EDITLINK": + newnode=""; + break; + } + + + $('.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); + break; + case states[1]: + + + if(nodecounter%2 === 0){ + graph.addNode("",nodetypes[typeindex],"temp"); + }else{ + graph.addNode("",nodetypes[typeindex],"temp"); + } + 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<sugg.length;p++){ + if(sugg[p]===newnode){ + truth=false; + } + } + return truth; + } + + + + + + + + + + + + + + + + + + |
