-rw-r--r-- | content/fireflix.js | 1 |
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); |