client/js/paper-renderer.js
changeset 264 cc1b3aa8cada
parent 263 7fcaf8b9407f
child 266 19f87d783168
equal deleted inserted replaced
263:7fcaf8b9407f 264:cc1b3aa8cada
  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++) {