summaryrefslogtreecommitdiffabout
path: root/content/fireflix.js
Unidiff
Diffstat (limited to 'content/fireflix.js') (more/less context) (ignore whitespace changes)
-rw-r--r--content/fireflix.js1
1 files changed, 1 insertions, 0 deletions
diff --git a/content/fireflix.js b/content/fireflix.js
index f180379..e144aae 100644
--- a/content/fireflix.js
+++ b/content/fireflix.js
@@ -717,128 +717,129 @@ var fireflix = {
717 drop: function(r,o) { }, 717 drop: function(r,o) { },
718 canDropBeforeAfter: function(r,b) { return false }, 718 canDropBeforeAfter: function(r,b) { return false },
719 719
720 importXPR: function(xp) { 720 importXPR: function(xp) {
721 this.selection.clearSelection(); 721 this.selection.clearSelection();
722 this.selection.currentIndex = -1; 722 this.selection.currentIndex = -1;
723 this.searchresult_props.hidden = true; 723 this.searchresult_props.hidden = true;
724 this.tree.beginUpdateBatch(); 724 this.tree.beginUpdateBatch();
725 this.photos = new Array(); 725 this.photos = new Array();
726 var n; while(n=xp.iterateNext()) { 726 var n; while(n=xp.iterateNext()) {
727 this.photos.push(new Photo(n)); 727 this.photos.push(new Photo(n));
728 } 728 }
729 this.rowCount = this.photos.length; 729 this.rowCount = this.photos.length;
730 this.tree.endUpdateBatch(); 730 this.tree.endUpdateBatch();
731 }, 731 },
732 search_photos: function() { 732 search_photos: function() {
733 var pars = { 733 var pars = {
734 method: 'flickr.photos.search', 734 method: 'flickr.photos.search',
735 auth_token: 'default', 735 auth_token: 'default',
736 extras: 'license,date_upload,date_taken,owner_name,icon_server,original_format,last_update,geo' 736 extras: 'license,date_upload,date_taken,owner_name,icon_server,original_format,last_update,geo'
737 }; 737 };
738 if(this.search_mine.checked) 738 if(this.search_mine.checked)
739 pars.user_id='me'; 739 pars.user_id='me';
740 if(this.search_tags.checked) { 740 if(this.search_tags.checked) {
741 pars.tags=this.search_for.value.split(/ +/).join(','); 741 pars.tags=this.search_for.value.split(/ +/).join(',');
742 }else{ 742 }else{
743 pars.text=this.search_for.value; 743 pars.text=this.search_for.value;
744 } 744 }
745 var _this = this; 745 var _this = this;
746 this.fireflix.flickr.api_call( pars, 746 this.fireflix.flickr.api_call( pars,
747 function(xr) { 747 function(xr) {
748 var x = xr.responseXML; 748 var x = xr.responseXML;
749 var xp = x.evaluate( 749 var xp = x.evaluate(
750 '/rsp/photos/photo', x, null, 750 '/rsp/photos/photo', x, null,
751 XPathResult.ORDERED_NODE_ITERATOR_TYPE, null ); 751 XPathResult.ORDERED_NODE_ITERATOR_TYPE, null );
752 _this.importXPR(xp); 752 _this.importXPR(xp);
753 _this.tree.ensureRowIsVisible(0); 753 _this.tree.ensureRowIsVisible(0);
754 _this.on_select(); 754 _this.on_select();
755 }, function(x,s,c,m) { 755 }, function(x,s,c,m) {
756 _this.fireflix.flickr_failure(x,s,c,m); 756 _this.fireflix.flickr_failure(x,s,c,m);
757 } 757 }
758 ); 758 );
759 }, 759 },
760 render_description_frame: function(content) { 760 render_description_frame: function(content) {
761 if(!content) { 761 if(!content) {
762 this.searchresult_description.innerHTML = ''; 762 this.searchresult_description.innerHTML = '';
763 }else{ 763 }else{
764 this.searchresult_description.innerHTML = content?content:''; 764 this.searchresult_description.innerHTML = content?content:'';
765 /* of all linking elements flickr only allows a */ 765 /* of all linking elements flickr only allows a */
766 var as = this.searchresult_description.getElementsByTagName('a'); 766 var as = this.searchresult_description.getElementsByTagName('a');
767 for(var a=0;a<as.length;++a) 767 for(var a=0;a<as.length;++a)
768 as.item(a).setAttribute('target','_blank'); 768 as.item(a).setAttribute('target','_blank');
769 } 769 }
770 }, 770 },
771 on_select: function() { 771 on_select: function() {
772 if(this.selection.currentIndex<0) { 772 if(this.selection.currentIndex<0) {
773 this.searchresult_props.hidden = true; 773 this.searchresult_props.hidden = true;
774 }else{ 774 }else{
775 var p = this.photos[this.selection.currentIndex]; 775 var p = this.photos[this.selection.currentIndex];
776 if(!p) { 776 if(!p) {
777 this.searchresult_props.hidden = true; 777 this.searchresult_props.hidden = true;
778 }else{ 778 }else{
779 this.search_photo.src = this.fireflix.flickr.make_photo_url(p,'t'); 779 this.search_photo.src = this.fireflix.flickr.make_photo_url(p,'t');
780 this.searchresult_title.value = p.title; 780 this.searchresult_title.value = p.title;
781 this.searchresult_title.tooltipText = p.title;
781 this.render_description_frame(null); 782 this.render_description_frame(null);
782 if(p.description==null && p.description==undefined) { 783 if(p.description==null && p.description==undefined) {
783 var pid = p.id; 784 var pid = p.id;
784 var ci = this.selection.currentIndex; 785 var ci = this.selection.currentIndex;
785 var _this = this; 786 var _this = this;
786 this.fireflix.flickr.api_call( 787 this.fireflix.flickr.api_call(
787 { 788 {
788 method: 'flickr.photos.getInfo', 789 method: 'flickr.photos.getInfo',
789 auth_token: 'default', 790 auth_token: 'default',
790 photo_id: p.id, 791 photo_id: p.id,
791 secret: p.secret 792 secret: p.secret
792 }, function(xr) { 793 }, function(xr) {
793 var pp = _this.photos[ci]; 794 var pp = _this.photos[ci];
794 if(ci==_this.selection.currentIndex && pp.id==pid) { 795 if(ci==_this.selection.currentIndex && pp.id==pid) {
795 var n = xp_node('/rsp/photo',xr.responseXML); 796 var n = xp_node('/rsp/photo',xr.responseXML);
796 pp.fromNode_(n); 797 pp.fromNode_(n);
797 _this.render_description_frame(pp.description); 798 _this.render_description_frame(pp.description);
798 } 799 }
799 }, function(x,s,c,m) { 800 }, function(x,s,c,m) {
800 _this.fireflix.flickr_failure(x,s,c,m); 801 _this.fireflix.flickr_failure(x,s,c,m);
801 } 802 }
802 ); 803 );
803 this.searchresult_props.hidden = false; 804 this.searchresult_props.hidden = false;
804 }else{ 805 }else{
805 this.render_description_frame(p.description); 806 this.render_description_frame(p.description);
806 } 807 }
807 } 808 }
808 } 809 }
809 }, 810 },
810 on_cmd_open: function(ev) { 811 on_cmd_open: function(ev) {
811 if(this.selection.currentIndex<0) 812 if(this.selection.currentIndex<0)
812 return; 813 return;
813 var p = this.photos[this.selection.currentIndex]; 814 var p = this.photos[this.selection.currentIndex];
814 if(!p.id) 815 if(!p.id)
815 return; 816 return;
816 this.fireflix.openTab(this.fireflix.flickr.make_photo_url(p,'p')); 817 this.fireflix.openTab(this.fireflix.flickr.make_photo_url(p,'p'));
817 } 818 }
818 }, 819 },
819 820
820 photo_html: function(p,i,l) { 821 photo_html: function(p,i,l) {
821 // TODO: add alt/title when possible 822 // TODO: add alt/title when possible
822 var rv = 823 var rv =
823 '<a href="'+this.flickr.make_photo_url(p,l)+'">' + 824 '<a href="'+this.flickr.make_photo_url(p,l)+'">' +
824 '<img src="'+this.flickr.make_photo_url(p,i)+'" />'+ 825 '<img src="'+this.flickr.make_photo_url(p,i)+'" />'+
825 '</a>'; 826 '</a>';
826 return rv; 827 return rv;
827 }, 828 },
828 build_html: function(photos,uti,utl) { 829 build_html: function(photos,uti,utl) {
829 var rv = ''; 830 var rv = '';
830 for(var i in photos) { 831 for(var i in photos) {
831 var p = photos[i]; 832 var p = photos[i];
832 rv += this.photo_html(p,utl,uti)+'\n'; 833 rv += this.photo_html(p,utl,uti)+'\n';
833 } 834 }
834 return rv; 835 return rv;
835 }, 836 },
836 837
837 popup_content: function(s) { 838 popup_content: function(s) {
838 window.openDialog( 839 window.openDialog(
839 "chrome://fireflix/content/generated-content.xul", 840 "chrome://fireflix/content/generated-content.xul",
840 null, "dialog,chrome", this, s ); 841 null, "dialog,chrome", this, s );
841 }, 842 },
842 copy_to_clipboard: function(s) { 843 copy_to_clipboard: function(s) {
843 var ch = Components.classes["@mozilla.org/widget/clipboardhelper;1"] 844 var ch = Components.classes["@mozilla.org/widget/clipboardhelper;1"]
844 .getService(Components.interfaces.nsIClipboardHelper); 845 .getService(Components.interfaces.nsIClipboardHelper);