7 var conexion_selecionada = null;
8 var objeto_selecionado = null;
10 var arrow_style = "Straight";
12 $( "#sortable-element li" ).draggable({
15 return $("<ul class='sortable-element'></ul>").append( $(this).clone() );
19 $( "#editor" ).droppable({
20 accept: "#sortable-element li",
21 drop: function(event,ui){
24 var type = $(ui.draggable).attr('attr-type');
25 var clase = 'diagrama';
46 //objeto_selecionado = this;
49 getItemsList(count,nodetype);
51 input = "<span> Node-"+count+"</span>"+
52 "<div class='connect'></div>";
54 $(" <div style='"+posicion_drop(ui)+"' id='"+count+"' class='objeto "+clase+"'></div> ").append(input).appendTo(this);
60 $("body").on('dblclick','.objeto span',function(){
61 var texto = prompt("Title");
62 //var text2 = prompt("Title2");
65 $("body").on('click','#editor',function(){
69 /*$(document).bind("contextmenu", function(event) {
70 event.preventDefault();
71 $("<div class='custom-menu'>Custom menu</div>")
73 .css({top: event.pageY + "px", left: event.pageX + "px"});
74 }).bind("click", function(event) {
75 $("div.custom-menu").hide();
78 // Trigger action when the contexmenu is about to be shown
79 $("body").on("contextmenu",'.objeto', function (event) {
82 event.preventDefault();
85 $(".custom-menu").finish().toggle(100).
87 // In the right position (the mouse)
90 top: event.pageY-150 + "px",
91 left: event.pageX-450 + "px"
96 // If the document is clicked somewhere
97 $("body").bind("mousedown",'.objeto', function (e) {
99 // If the clicked element is not the menu
100 if (!$(e.target).parents(".custom-menu").length > 0) {
103 $(".custom-menu").hide(100);
108 // If the menu element is clicked
109 $(".custom-menu li").click(function(){
111 // This is the triggered action name
112 switch($(this).attr("data-action")) {
114 // A case for each action. Your actions here
115 case "first": alert("first"); break;
116 case "second": alert("second"); break;
117 case "third": alert("third"); break;
120 // Hide it AFTER the action was triggered
121 $(".custom-menu").hide(100);
124 $("body").on('dblclick','.objeto',function(){
126 $( "#menu" ).offset({ top: -10, left: -10 });
127 //console.log(this.name);
128 console.log(this.offsetTop);
129 var t = this.offsetTop;
130 var l = this.offsetLeft;
131 //var x = $(this.name).position();
132 //console.log(x.top);
133 $( "#menu" ).offset({ top: t, left: l });
138 $("body").on('click','.objeto',function(){
140 objeto_selecionado = this;
142 console.log(this.id);
143 getItemsList(this.id);
150 workflow = function(){
152 jsPlumb.importDefaults({
153 Endpoint : ["Dot", {radius:2}],
154 HoverPaintStyle : {strokeStyle:"#1e8151", lineWidth:0 },
158 windows = jsPlumb.getSelector('.objeto');
160 jsPlumb.makeSource(windows, {
164 connector:[ arrow_style, { curviness:63 } ],
166 strokeStyle:"#5c96bc",
168 outlineColor:"transparent",
172 [ "Label", { label:"", id:"label" } ]
175 dropOptions : targetDropOptions
179 jsPlumb.makeTarget(windows, {
180 dropOptions:{ hoverClass:"dragHover" },
185 var targetDropOptions = {
187 hoverClass:'dropHover',
188 activeClass:'dragActive'
195 jsPlumb.bind("click", function(conn, originalEvent) {
196 conexion_selecionada = conn;
203 posicion_drop = function(ui){
204 var top = parseInt(ui.position['top'], 10) - 250;
205 var left = parseInt(ui.position['left'], 10) - 560;
206 var style = 'position:absolute;top:' + top + 'px;left:' + left + 'px;'
212 $(document).keyup(function(e){
214 if(conexion_selecionada != null){
215 jsPlumb.detach(conexion_selecionada);
216 conexion_selecionada = null;
220 if(objeto_selecionado != null){
221 jsPlumb.remove(objeto_selecionado);
222 resetForm('',objeto_selecionado.id);
223 console.log(objeto_selecionado.id);
224 objeto_selecionado = null;
228 console.log(jsPlumb.getSelector('.objeto'));
232 //Menu de opciones en la conexión (flecha,unión)
233 me.menu_arrow = function(){
235 selector: '._jsPlumb_connector ',
237 callback: function(key, options) {
246 "flecha": {"name": "Recto"},
247 "diagrama": {"name": "Diagrama"},
248 "ondular": {"name": "Ondular"},
249 "cursiva": {"name": "Cursiva"},
255 "solido": {"name": "Solido"},
256 "discontinua": {"name": "Discontinua"}
260 "Eliminar":{"name": "Eliminar", "icon": "delete"},
266 me.menu_accion = function(accion){
267 console.log(conexion_selecionada);
268 if(accion == "Eliminar"){
269 jsPlumb.detach(conexion_selecionada, {
275 if(accion == "flecha"){
276 conexion_selecionada.setConnector("Straight");
279 if(accion == "diagrama"){
280 conexion_selecionada.setConnector("Flowchart");
283 if(accion == "ondular"){
284 conexion_selecionada.setConnector("Bezier");
287 if(accion == "cursiva"){
288 conexion_selecionada.setConnector("StateMachine");
291 if(accion == "discontinua"){
292 conexion_selecionada.setPaintStyle({
295 outlineColor:"transparent",
301 if(accion == "solido"){
302 conexion_selecionada.setPaintStyle({
305 outlineColor:"transparent",
312 me.arrastrable = function(){
313 jsPlumb.draggable($(".objeto"), {
345 name: 'Configuration',
363 var getMenuItem = function (itemData) {
364 console.log(itemData);
368 href: '#' + itemData.link,
372 var subList = $("<ul>");
373 $.each(itemData.sub, function () {
374 subList.append(getMenuItem(this));
376 item.append(subList);
381 var $menu = $("#menu");
382 $.each(data.menu, function () {