31 shortenText : function(_text, _maxlength) { |
31 shortenText : function(_text, _maxlength) { |
32 return (_text.length > _maxlength ? (_text.substr(0,_maxlength) + '…') : _text); |
32 return (_text.length > _maxlength ? (_text.substr(0,_maxlength) + '…') : _text); |
33 }, |
33 }, |
34 drawEditBox : function(_options, _coords, _path, _xmargin, _selector) { |
34 drawEditBox : function(_options, _coords, _path, _xmargin, _selector) { |
35 _selector.css({ |
35 _selector.css({ |
36 width: ( _options.tooltip_width - 2* _options.tooltip_margin ), |
36 width: ( _options.tooltip_width - 2* _options.tooltip_padding ), |
37 }) |
37 }) |
38 var _height = _selector.outerHeight() + 2* _options.tooltip_padding, |
38 var _height = _selector.outerHeight() + 2* _options.tooltip_padding, |
39 _isLeft = (_coords.x < paper.view.center.x ? 1 : -1), |
39 _isLeft = (_coords.x < paper.view.center.x ? 1 : -1), |
40 _left = _coords.x + _isLeft * ( _xmargin + _options.tooltip_arrow_length ), |
40 _left = _coords.x + _isLeft * ( _xmargin + _options.tooltip_arrow_length ), |
41 _right = _coords.x + _isLeft * ( _xmargin + _options.tooltip_arrow_length + _options.tooltip_width ), |
41 _right = _coords.x + _isLeft * ( _xmargin + _options.tooltip_arrow_length + _options.tooltip_width ), |
1404 }); |
1404 }); |
1405 this.canvas_$.on("dragover", function(_event) { |
1405 this.canvas_$.on("dragover", function(_event) { |
1406 _event.stopPropagation(); |
1406 _event.stopPropagation(); |
1407 _event.preventDefault(); |
1407 _event.preventDefault(); |
1408 }); |
1408 }); |
1409 this.canvas_$.on("dragenter", function(_e) { |
1409 this.canvas_$.on("dragenter", function(_event) { |
1410 _allowScroll = false; |
1410 _allowScroll = false; |
1411 }); |
1411 _event.stopPropagation(); |
1412 this.canvas_$.on("dragleave", function(_e) { |
1412 _event.preventDefault(); |
|
1413 }); |
|
1414 this.canvas_$.on("dragleave", function(_event) { |
1413 _allowScroll = true; |
1415 _allowScroll = true; |
|
1416 _event.stopPropagation(); |
|
1417 _event.preventDefault(); |
1414 }); |
1418 }); |
1415 this.canvas_$.on("drop", function(_event) { |
1419 this.canvas_$.on("drop", function(_event) { |
1416 _event.stopPropagation(); |
1420 _event.stopPropagation(); |
1417 _event.preventDefault(); |
1421 _event.preventDefault(); |
1418 _allowScroll = true; |
1422 _allowScroll = true; |
1419 if (!_this.isEditable()) { |
1423 if (!_this.isEditable()) { |
1420 return; |
1424 return; |
1421 } |
1425 } |
1422 var res = {} |
1426 var res = {}; |
1423 if (_event.originalEvent.dataTransfer.types) { |
1427 Rkns._(_event.originalEvent.dataTransfer.types).each(function(t) { |
1424 Rkns._(_event.originalEvent.dataTransfer.types).each(function(t) { |
1428 try { |
1425 return res[t] = _event.originalEvent.dataTransfer.getData(t); |
1429 res[t] = _event.originalEvent.dataTransfer.getData(t); |
1426 }); |
1430 } catch(e) {} |
1427 } else { |
1431 }); |
1428 var text = _event.originalEvent.dataTransfer.getData("text"); |
1432 var text = _event.originalEvent.dataTransfer.getData("Text"); |
1429 switch(text[0]) { |
1433 if (typeof text === "string") { |
|
1434 switch(text[0]) { |
1430 case "{": |
1435 case "{": |
1431 case "[": |
1436 case "[": |
1432 try { |
1437 try { |
1433 var data = JSON.parse(text); |
1438 var data = JSON.parse(text); |
1434 _(res).extend(data); |
1439 _(res).extend(data); |
1435 } |
1440 } |
1436 catch(e) { |
1441 catch(e) { |
1437 res["text/plain"] = text; |
1442 if (!res["text/plain"]) { |
|
1443 res["text/plain"] = text; |
|
1444 } |
1438 } |
1445 } |
1439 break; |
1446 break; |
1440 case "<": |
1447 case "<": |
1441 res["text/html"] = text; |
1448 if (!res["text/html"]) { |
|
1449 res["text/html"] = text; |
|
1450 } |
1442 break; |
1451 break; |
|
1452 default: |
|
1453 if (!res["text/plain"]) { |
|
1454 res["text/plain"] = text; |
|
1455 } |
1443 } |
1456 } |
1444 res["text/uri-list"] = _event.originalEvent.dataTransfer.getData("URL"); |
1457 } |
1445 } |
1458 var url = _event.originalEvent.dataTransfer.getData("URL"); |
|
1459 if (url && !res["text/uri-list"]) { |
|
1460 res["text/uri-list"] = url; |
|
1461 } |
|
1462 if (res["text/json"] || res["application/json"]) { |
|
1463 try { |
|
1464 var data = JSON.parse(res["text/json"] || res["application/json"]); |
|
1465 _(res).extend(data); |
|
1466 } |
|
1467 catch(e) {} |
|
1468 } |
1446 var newNode = {}; |
1469 var newNode = {}; |
1447 switch(res["text/x-iri-specific-site"]) { |
1470 switch(res["text/x-iri-specific-site"]) { |
1448 case "twitter": |
1471 case "twitter": |
1449 var snippet = Rkns.$('<div>').html(res["text/x-iri-selected-html"]), |
1472 var snippet = Rkns.$('<div>').html(res["text/x-iri-selected-html"]), |
1450 tweetdiv = snippet.find(".tweet") |
1473 tweetdiv = snippet.find(".tweet") |
1494 } |
1517 } |
1495 } |
1518 } |
1496 var fields = ["title", "description", "uri", "image"]; |
1519 var fields = ["title", "description", "uri", "image"]; |
1497 for (var i = 0; i < fields.length; i++) { |
1520 for (var i = 0; i < fields.length; i++) { |
1498 var f = fields[i]; |
1521 var f = fields[i]; |
1499 if (res["text/x-iri-" + f]) { |
1522 if (res["text/x-iri-" + f] || res[f]) { |
1500 newNode[f] = res["text/x-iri-" + f]; |
1523 newNode[f] = res["text/x-iri-" + f] || res[f]; |
1501 } |
1524 } |
1502 } |
1525 } |
1503 if (newNode.title || newNode.description || newNode.uri) { |
1526 if (newNode.title || newNode.description || newNode.uri) { |
1504 var _off = _this.canvas_$.offset(), |
1527 var _off = _this.canvas_$.offset(), |
1505 _point = new paper.Point([ |
1528 _point = new paper.Point([ |