2523 var jsondata = JSON.parse(_data["text/json"] || _data["application/json"]); |
2523 var jsondata = JSON.parse(_data["text/json"] || _data["application/json"]); |
2524 _(_data).extend(jsondata); |
2524 _(_data).extend(jsondata); |
2525 } |
2525 } |
2526 catch(e) {} |
2526 catch(e) {} |
2527 } |
2527 } |
2528 var newNode = {}; |
2528 |
2529 switch(_data["text/x-iri-specific-site"]) { |
2529 // Option management : drop handler |
2530 case "twitter": |
2530 if(typeof _renkan.options.drop_handler === "undefined"){ |
2531 var snippet = $('<div>').html(_data["text/x-iri-selected-html"]), |
2531 _renkan.options.drop_handler = function(_data){ |
2532 tweetdiv = snippet.find(".tweet"); |
2532 var newNode = {}; |
2533 newNode.title = _renkan.translate("Tweet by ") + tweetdiv.attr("data-name"); |
2533 switch(_data["text/x-iri-specific-site"]) { |
2534 newNode.uri = "http://twitter.com/" + tweetdiv.attr("data-screen-name") + "/status/" + tweetdiv.attr("data-tweet-id"); |
2534 case "twitter": |
2535 newNode.image = tweetdiv.find(".avatar").attr("src"); |
2535 var snippet = $('<div>').html(_data["text/x-iri-selected-html"]), |
2536 newNode.description = tweetdiv.find(".js-tweet-text:first").text(); |
2536 tweetdiv = snippet.find(".tweet"); |
2537 break; |
2537 newNode.title = _renkan.translate("Tweet by ") + tweetdiv.attr("data-name"); |
2538 case "google": |
2538 newNode.uri = "http://twitter.com/" + tweetdiv.attr("data-screen-name") + "/status/" + tweetdiv.attr("data-tweet-id"); |
2539 var snippet = $('<div>').html(_data["text/x-iri-selected-html"]); |
2539 newNode.image = tweetdiv.find(".avatar").attr("src"); |
2540 newNode.title = snippet.find("h3:first").text().trim(); |
2540 newNode.description = tweetdiv.find(".js-tweet-text:first").text(); |
2541 newNode.uri = snippet.find("h3 a").attr("href"); |
2541 break; |
2542 newNode.description = snippet.find(".st:first").text().trim(); |
2542 case "google": |
2543 break; |
2543 var snippet = $('<div>').html(_data["text/x-iri-selected-html"]); |
2544 case undefined: |
2544 newNode.title = snippet.find("h3:first").text().trim(); |
2545 default: |
2545 newNode.uri = snippet.find("h3 a").attr("href"); |
2546 if (_data["text/x-iri-source-uri"]) { |
2546 newNode.description = snippet.find(".st:first").text().trim(); |
2547 newNode.uri = _data["text/x-iri-source-uri"]; |
2547 break; |
2548 } |
2548 case undefined: |
2549 if (_data["text/plain"] || _data["text/x-iri-selected-text"]) { |
2549 default: |
2550 newNode.description = (_data["text/plain"] || _data["text/x-iri-selected-text"]).replace(/[\s\n]+/gm,' ').trim(); |
2550 if (_data["text/x-iri-source-uri"]) { |
2551 } |
2551 newNode.uri = _data["text/x-iri-source-uri"]; |
2552 if (_data["text/html"] || _data["text/x-iri-selected-html"]) { |
2552 } |
2553 var snippet = $('<div>').html(_data["text/html"] || _data["text/x-iri-selected-html"]); |
2553 if (_data["text/plain"] || _data["text/x-iri-selected-text"]) { |
2554 var _svgimgs = snippet.find("image"); |
2554 newNode.description = (_data["text/plain"] || _data["text/x-iri-selected-text"]).replace(/[\s\n]+/gm,' ').trim(); |
2555 if (_svgimgs.length) { |
2555 } |
2556 newNode.image = _svgimgs.attr("xlink:href"); |
2556 if (_data["text/html"] || _data["text/x-iri-selected-html"]) { |
2557 } |
2557 var snippet = $('<div>').html(_data["text/html"] || _data["text/x-iri-selected-html"]); |
2558 var _svgpaths = snippet.find("path"); |
2558 var _svgimgs = snippet.find("image"); |
2559 if (_svgpaths.length) { |
2559 if (_svgimgs.length) { |
2560 newNode.clipPath = _svgpaths.attr("d"); |
2560 newNode.image = _svgimgs.attr("xlink:href"); |
2561 } |
2561 } |
2562 var _imgs = snippet.find("img"); |
2562 var _svgpaths = snippet.find("path"); |
2563 if (_imgs.length) { |
2563 if (_svgpaths.length) { |
2564 newNode.image = _imgs[0].src; |
2564 newNode.clipPath = _svgpaths.attr("d"); |
2565 } |
2565 } |
2566 var _as = snippet.find("a"); |
2566 var _imgs = snippet.find("img"); |
2567 if (_as.length) { |
2567 if (_imgs.length) { |
2568 newNode.uri = _as[0].href; |
2568 newNode.image = _imgs[0].src; |
2569 } |
2569 } |
2570 newNode.title = snippet.find("[title]").attr("title") || newNode.title; |
2570 var _as = snippet.find("a"); |
2571 newNode.description = snippet.text().replace(/[\s\n]+/gm,' ').trim(); |
2571 if (_as.length) { |
2572 } |
2572 newNode.uri = _as[0].href; |
2573 if (_data["text/uri-list"]) { |
2573 } |
2574 newNode.uri = _data["text/uri-list"]; |
2574 newNode.title = snippet.find("[title]").attr("title") || newNode.title; |
2575 } |
2575 newNode.description = snippet.text().replace(/[\s\n]+/gm,' ').trim(); |
2576 if (_data["text/x-moz-url"] && !newNode.title) { |
2576 } |
2577 newNode.title = (_data["text/x-moz-url"].split("\n")[1] || "").trim(); |
2577 if (_data["text/uri-list"]) { |
2578 if (newNode.title === newNode.uri) { |
2578 newNode.uri = _data["text/uri-list"]; |
2579 newNode.title = false; |
2579 } |
2580 } |
2580 if (_data["text/x-moz-url"] && !newNode.title) { |
2581 } |
2581 newNode.title = (_data["text/x-moz-url"].split("\n")[1] || "").trim(); |
2582 if (_data["text/x-iri-source-title"] && !newNode.title) { |
2582 if (newNode.title === newNode.uri) { |
2583 newNode.title = _data["text/x-iri-source-title"]; |
2583 newNode.title = false; |
2584 } |
2584 } |
2585 if (_data["text/html"] || _data["text/x-iri-selected-html"]) { |
2585 } |
2586 newNode.image = snippet.find("[data-image]").attr("data-image") || newNode.image; |
2586 if (_data["text/x-iri-source-title"] && !newNode.title) { |
2587 newNode.uri = snippet.find("[data-uri]").attr("data-uri") || newNode.uri; |
2587 newNode.title = _data["text/x-iri-source-title"]; |
2588 newNode.title = snippet.find("[data-title]").attr("data-title") || newNode.title; |
2588 } |
2589 newNode.description = snippet.find("[data-description]").attr("data-description") || newNode.description; |
2589 if (_data["text/html"] || _data["text/x-iri-selected-html"]) { |
2590 newNode.description = snippet.find("[data-clip-path]").attr("data-clip-path") || newNode.description; |
2590 newNode.image = snippet.find("[data-image]").attr("data-image") || newNode.image; |
2591 } |
2591 newNode.uri = snippet.find("[data-uri]").attr("data-uri") || newNode.uri; |
2592 } |
2592 newNode.title = snippet.find("[data-title]").attr("data-title") || newNode.title; |
|
2593 newNode.description = snippet.find("[data-description]").attr("data-description") || newNode.description; |
|
2594 newNode.description = snippet.find("[data-clip-path]").attr("data-clip-path") || newNode.description; |
|
2595 } |
|
2596 } |
|
2597 if(typeof _renkan.options.drop_enhancer === "function"){ |
|
2598 newNode = _renkan.options.drop_enhancer(newNode, _data); |
|
2599 } |
|
2600 return newNode; |
|
2601 }; |
|
2602 } |
|
2603 |
|
2604 var newNode = _renkan.options.drop_handler(_data); |
|
2605 |
2593 if (!newNode.title) { |
2606 if (!newNode.title) { |
2594 newNode.title = this.renkan.translate("Dragged resource"); |
2607 newNode.title = this.renkan.translate("Dragged resource"); |
2595 } |
2608 } |
2596 var fields = ["title", "description", "uri", "image"]; |
2609 var fields = ["title", "description", "uri", "image"]; |
2597 for (var i = 0; i < fields.length; i++) { |
2610 for (var i = 0; i < fields.length; i++) { |