-rw-r--r-- | content/fireflix.js | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/content/fireflix.js b/content/fireflix.js index 328e9e2..995ec5c 100644 --- a/content/fireflix.js +++ b/content/fireflix.js | |||
@@ -604,128 +604,137 @@ var fireflix = { | |||
604 | window.openDialog( | 604 | window.openDialog( |
605 | "chrome://fireflix/content/photoset-props.xul", | 605 | "chrome://fireflix/content/photoset-props.xul", |
606 | null, "dependent,modal,dialog,chrome", this, | 606 | null, "dependent,modal,dialog,chrome", this, |
607 | pset ); | 607 | pset ); |
608 | if(pset.dirty) { | 608 | if(pset.dirty) { |
609 | var _this = this; | 609 | var _this = this; |
610 | this.flickr.api_call( | 610 | this.flickr.api_call( |
611 | { | 611 | { |
612 | method: 'flickr.photosets.editMeta', | 612 | method: 'flickr.photosets.editMeta', |
613 | auth_token: 'default', | 613 | auth_token: 'default', |
614 | photoset_id: pset.id, | 614 | photoset_id: pset.id, |
615 | title: pset.title, | 615 | title: pset.title, |
616 | description: pset.description | 616 | description: pset.description |
617 | }, function(xr) { | 617 | }, function(xr) { |
618 | pset.dirty = false; | 618 | pset.dirty = false; |
619 | _this.flickr.api_call( | 619 | _this.flickr.api_call( |
620 | { | 620 | { |
621 | method: 'flickr.photosets.getPhotos', | 621 | method: 'flickr.photosets.getPhotos', |
622 | auth_token: 'default', | 622 | auth_token: 'default', |
623 | photoset_id: pset.id | 623 | photoset_id: pset.id |
624 | }, function(xr) { | 624 | }, function(xr) { |
625 | var x = xr.responseXML; | 625 | var x = xr.responseXML; |
626 | var xp = x.evaluate( | 626 | var xp = x.evaluate( |
627 | '/rsp/photoset/photo', x, null, | 627 | '/rsp/photoset/photo', x, null, |
628 | XPathResult.ORDERED_NODE_ITERATOR_TYPE, null ); | 628 | XPathResult.ORDERED_NODE_ITERATOR_TYPE, null ); |
629 | var phids = new Array(); | 629 | var phids = new Array(); |
630 | var priph = null; | 630 | var priph = null; |
631 | var n; while(n=xp.iterateNext()) { | 631 | var n; while(n=xp.iterateNext()) { |
632 | var pid = n.getAttribute('id'); | 632 | var pid = n.getAttribute('id'); |
633 | phids.push( pid ); | 633 | phids.push( pid ); |
634 | if(pid==pset.primary && n.getAttribute('isprimary')!='1') | 634 | if(pid==pset.primary && n.getAttribute('isprimary')!='1') |
635 | priph = pid; | 635 | priph = pid; |
636 | } | 636 | } |
637 | if(priph) { | 637 | if(priph) { |
638 | _this.flickr.api_call( | 638 | _this.flickr.api_call( |
639 | { | 639 | { |
640 | method: 'flickr.photosets.editPhotos', | 640 | method: 'flickr.photosets.editPhotos', |
641 | auth_token: 'default', | 641 | auth_token: 'default', |
642 | photoset_id: pset.id, | 642 | photoset_id: pset.id, |
643 | primary_photo_id: priph, | 643 | primary_photo_id: priph, |
644 | photo_ids: phids.join(',') | 644 | photo_ids: phids.join(',') |
645 | }, function() { }, function(x,s,c,m) { /* flickr.photosets.editPhotos */ | 645 | }, function() { }, function(x,s,c,m) { /* flickr.photosets.editPhotos */ |
646 | _this.flickr_failure(x,s,c,m); | 646 | _this.flickr_failure(x,s,c,m); |
647 | } | 647 | } |
648 | ); | 648 | ); |
649 | } | 649 | } |
650 | }, function(x,s,c,m) { /* flickr.photosets.getPhotos */ | 650 | }, function(x,s,c,m) { /* flickr.photosets.getPhotos */ |
651 | _this.flickr_failure(x,s,c,m); | 651 | _this.flickr_failure(x,s,c,m); |
652 | } | 652 | } |
653 | ); | 653 | ); |
654 | }, function(x,s,c,m) { /* flickr.photosets.editMeta */ | 654 | }, function(x,s,c,m) { /* flickr.photosets.editMeta */ |
655 | _this.flickr_failure(x,s,c,m); | 655 | _this.flickr_failure(x,s,c,m); |
656 | } | 656 | } |
657 | ); | 657 | ); |
658 | } | 658 | } |
659 | }, | 659 | }, |
660 | on_refresh_sets: function() { | 660 | on_refresh_sets: function() { |
661 | this.refresh_sets(); | 661 | this.refresh_sets(); |
662 | }, | 662 | }, |
663 | on_cmd_sets_html: function(csfx,ev) { | 663 | on_cmd_sets_html: function(csfx,ev) { |
664 | var uti = csfx.charAt(0); var utl = csfx.charAt(1); | 664 | var uti = csfx.charAt(0); var utl = csfx.charAt(1); |
665 | var rv = this.build_html(this.photoset.photos,uti,utl); | 665 | var rv = this.build_html(this.photoset.photos,uti,utl); |
666 | this.popup_content(rv); | 666 | this.popup_content(rv); |
667 | }, | 667 | }, |
668 | on_cmd_setphotos_html: function(csfx,ev) { | ||
669 | var uti = csfx.charAt(0); var utl = csfx.charAt(1); | ||
670 | var rv = ''; | ||
671 | for(var p in this.photoset.photos) { | ||
672 | if(this.photoset.selection.isSelected(p)) | ||
673 | rv += this.photo_html(this.photoset.photos[p],uti,utl)+'\n'; | ||
674 | } | ||
675 | this.popup_content(rv); | ||
676 | }, | ||
668 | 677 | ||
669 | on_cmd_uploads_html: function(csfx,ev) { | 678 | on_cmd_uploads_html: function(csfx,ev) { |
670 | var uti = csfx.charAt(0); var utl = csfx.charAt(1); | 679 | var uti = csfx.charAt(0); var utl = csfx.charAt(1); |
671 | var pids = new Array(); | 680 | var pids = new Array(); |
672 | for(var f in this.uploads.files) { | 681 | for(var f in this.uploads.files) { |
673 | if(this.uploads.selection.isSelected(f)) | 682 | if(this.uploads.selection.isSelected(f)) |
674 | if(this.uploads.files[f].photoid) | 683 | if(this.uploads.files[f].photoid) |
675 | pids.push(this.uploads.files[f].photoid); | 684 | pids.push(this.uploads.files[f].photoid); |
676 | } | 685 | } |
677 | var pp = this.uploads.rowCount*2; if(pp>500) pp = 500; | 686 | var pp = this.uploads.rowCount*2; if(pp>500) pp = 500; |
678 | var _this = this; | 687 | var _this = this; |
679 | this.flickr.api_call( | 688 | this.flickr.api_call( |
680 | { | 689 | { |
681 | method: 'flickr.photos.search', | 690 | method: 'flickr.photos.search', |
682 | auth_token: 'default', | 691 | auth_token: 'default', |
683 | extras: 'original_format', | 692 | extras: 'original_format', |
684 | user_id: 'me', | 693 | user_id: 'me', |
685 | per_page: pp | 694 | per_page: pp |
686 | }, | 695 | }, |
687 | function(xr) { | 696 | function(xr) { |
688 | var x = xr.responseXML; | 697 | var x = xr.responseXML; |
689 | var rv = ''; | 698 | var rv = ''; |
690 | for(var pn in pids) { | 699 | for(var pn in pids) { |
691 | var p = pids[pn]; | 700 | var p = pids[pn]; |
692 | var pp = new Photo(xp_node('/rsp/photos/photo[@id='+p+']',x)); | 701 | var pp = new Photo(xp_node('/rsp/photos/photo[@id='+p+']',x)); |
693 | rv += _this.photo_html(pp,uti,utl)+'\n'; | 702 | rv += _this.photo_html(pp,uti,utl)+'\n'; |
694 | } | 703 | } |
695 | _this.popup_content(rv); | 704 | _this.popup_content(rv); |
696 | }, function(x,s,c,m) { | 705 | }, function(x,s,c,m) { |
697 | _this.flickr_failure(x,s,c,m); | 706 | _this.flickr_failure(x,s,c,m); |
698 | } | 707 | } |
699 | ); | 708 | ); |
700 | }, | 709 | }, |
701 | 710 | ||
702 | /* | 711 | /* |
703 | * | 712 | * |
704 | */ | 713 | */ |
705 | foundphotos: { | 714 | foundphotos: { |
706 | fireflix: null, | 715 | fireflix: null, |
707 | init: function(f) { | 716 | init: function(f) { |
708 | this.fireflix = f; | 717 | this.fireflix = f; |
709 | pull_elements(this,document,[ | 718 | pull_elements(this,document,[ |
710 | 'search_for','search_tags','search_mine', | 719 | 'search_for','search_tags','search_mine', |
711 | 'searchresult_props','search_photo', | 720 | 'searchresult_props','search_photo', |
712 | 'searchresult_title','searchresult_description', | 721 | 'searchresult_title','searchresult_description', |
713 | 'search_page','cmd_search_prev_page','cmd_search_next_page' | 722 | 'search_page','cmd_search_prev_page','cmd_search_next_page' |
714 | ]); | 723 | ]); |
715 | document.getElementById('searchresults').view = this; | 724 | document.getElementById('searchresults').view = this; |
716 | }, | 725 | }, |
717 | photos: new Array(), | 726 | photos: new Array(), |
718 | rowCount: 0, | 727 | rowCount: 0, |
719 | getCellText: function(r,c) { | 728 | getCellText: function(r,c) { |
720 | var p = this.photos[r]; | 729 | var p = this.photos[r]; |
721 | if(c.id=='sr_title') return p.title; | 730 | if(c.id=='sr_title') return p.title; |
722 | return c.id; | 731 | return c.id; |
723 | }, | 732 | }, |
724 | setTree: function(t) { this.tree = t }, | 733 | setTree: function(t) { this.tree = t }, |
725 | isContainer: function(r) { return false }, | 734 | isContainer: function(r) { return false }, |
726 | isSeparator: function(r) { return false }, | 735 | isSeparator: function(r) { return false }, |
727 | isSorted: function(r) { return false }, | 736 | isSorted: function(r) { return false }, |
728 | getLevel: function(r) { return 0 }, | 737 | getLevel: function(r) { return 0 }, |
729 | getImageSrc: function(r,c) { return null }, | 738 | getImageSrc: function(r,c) { return null }, |
730 | getRowProperties: function(r,p) { }, | 739 | getRowProperties: function(r,p) { }, |
731 | getCellProperties: function(cid,cel,p) { }, | 740 | getCellProperties: function(cid,cel,p) { }, |
@@ -862,109 +871,113 @@ var fireflix = { | |||
862 | } | 871 | } |
863 | }, function(x,s,c,m) { | 872 | }, function(x,s,c,m) { |
864 | _this.fireflix.flickr_failure(x,s,c,m); | 873 | _this.fireflix.flickr_failure(x,s,c,m); |
865 | } | 874 | } |
866 | ); | 875 | ); |
867 | this.searchresult_props.hidden = false; | 876 | this.searchresult_props.hidden = false; |
868 | }else{ | 877 | }else{ |
869 | this.render_description_frame(p.description); | 878 | this.render_description_frame(p.description); |
870 | } | 879 | } |
871 | } | 880 | } |
872 | } | 881 | } |
873 | }, | 882 | }, |
874 | on_cmd_open: function(ev) { | 883 | on_cmd_open: function(ev) { |
875 | if(this.selection.currentIndex<0) | 884 | if(this.selection.currentIndex<0) |
876 | return; | 885 | return; |
877 | var p = this.photos[this.selection.currentIndex]; | 886 | var p = this.photos[this.selection.currentIndex]; |
878 | if(!p.id) | 887 | if(!p.id) |
879 | return; | 888 | return; |
880 | this.fireflix.openTab(this.fireflix.flickr.make_photo_url(p,'p')); | 889 | this.fireflix.openTab(this.fireflix.flickr.make_photo_url(p,'p')); |
881 | } | 890 | } |
882 | }, | 891 | }, |
883 | 892 | ||
884 | photo_html: function(p,i,l) { | 893 | photo_html: function(p,i,l) { |
885 | // TODO: add alt/title when possible | 894 | // TODO: add alt/title when possible |
886 | var rv = | 895 | var rv = |
887 | '<a href="'+this.flickr.make_photo_url(p,l)+'">' + | 896 | '<a href="'+this.flickr.make_photo_url(p,l)+'">' + |
888 | '<img src="'+this.flickr.make_photo_url(p,i)+'" />'+ | 897 | '<img src="'+this.flickr.make_photo_url(p,i)+'" />'+ |
889 | '</a>'; | 898 | '</a>'; |
890 | return rv; | 899 | return rv; |
891 | }, | 900 | }, |
892 | build_html: function(photos,uti,utl) { | 901 | build_html: function(photos,uti,utl) { |
893 | var rv = ''; | 902 | var rv = ''; |
894 | for(var i in photos) { | 903 | for(var i in photos) { |
895 | var p = photos[i]; | 904 | var p = photos[i]; |
896 | rv += this.photo_html(p,uti,utl)+'\n'; | 905 | rv += this.photo_html(p,uti,utl)+'\n'; |
897 | } | 906 | } |
898 | return rv; | 907 | return rv; |
899 | }, | 908 | }, |
900 | 909 | ||
901 | popup_content: function(s) { | 910 | popup_content: function(s) { |
902 | window.openDialog( | 911 | window.openDialog( |
903 | "chrome://fireflix/content/generated-content.xul", | 912 | "chrome://fireflix/content/generated-content.xul", |
904 | null, "dialog,chrome", this, s ); | 913 | null, "dialog,chrome", this, s ); |
905 | }, | 914 | }, |
906 | copy_to_clipboard: function(s) { | 915 | copy_to_clipboard: function(s) { |
907 | var ch = Components.classes["@mozilla.org/widget/clipboardhelper;1"] | 916 | var ch = Components.classes["@mozilla.org/widget/clipboardhelper;1"] |
908 | .getService(Components.interfaces.nsIClipboardHelper); | 917 | .getService(Components.interfaces.nsIClipboardHelper); |
909 | ch.copyString(s); | 918 | ch.copyString(s); |
910 | }, | 919 | }, |
911 | openTab: function(l) { | 920 | openTab: function(l) { |
912 | var wm = Components.classes['@mozilla.org/appshell/window-mediator;1'].getService( | 921 | var wm = Components.classes['@mozilla.org/appshell/window-mediator;1'].getService( |
913 | Components.interfaces.nsIWindowMediator ); | 922 | Components.interfaces.nsIWindowMediator ); |
914 | var bw = wm.getMostRecentWindow('navigator:browser'); | 923 | var bw = wm.getMostRecentWindow('navigator:browser'); |
915 | var b = bw.getBrowser(); | 924 | var b = bw.getBrowser(); |
916 | var t = b.addTab(l); | 925 | var t = b.addTab(l); |
917 | b.selectedTab = t; | 926 | b.selectedTab = t; |
918 | }, | 927 | }, |
919 | 928 | ||
920 | build_menus: function() { | 929 | build_menus: function() { |
921 | this.append_html_menu( | 930 | this.append_html_menu( |
922 | document.getElementById('sets_html_menu'), | 931 | document.getElementById('sets_html_menu'), |
923 | 'stm_','m_bop','cmdset_sets','cmd_sets_html' | 932 | 'stm_','m_bop','cmdset_sets','cmd_sets_html' |
924 | ); | 933 | ); |
925 | this.append_html_menu( | 934 | this.append_html_menu( |
935 | document.getElementById('setphotos_html_menu'), | ||
936 | 'stm_','m_bop','cmdset_setphotos','cmd_setphotos_html' | ||
937 | ); | ||
938 | this.append_html_menu( | ||
926 | document.getElementById('uploads_html_menu'), | 939 | document.getElementById('uploads_html_menu'), |
927 | 'stm_','m_bop','cmdset_uploads','cmd_uploads_html' | 940 | 'stm_','m_bop','cmdset_uploads','cmd_uploads_html' |
928 | ); | 941 | ); |
929 | return; | 942 | return; |
930 | }, | 943 | }, |
931 | append_html_menu: function(m,imgt,lnkt,csid,cpfx) { | 944 | append_html_menu: function(m,imgt,lnkt,csid,cpfx) { |
932 | var mp = m.appendChild(document.createElement('menupopup')); | 945 | var mp = m.appendChild(document.createElement('menupopup')); |
933 | var t; | 946 | var t; |
934 | t=mp.appendChild(document.createElement('menuitem')); | 947 | t=mp.appendChild(document.createElement('menuitem')); |
935 | t.setAttribute('label',this.loc_strings.getString('menutitle_Images')); | 948 | t.setAttribute('label',this.loc_strings.getString('menutitle_Images')); |
936 | t.setAttribute('class','menuhead');t.setAttribute('disabled','true'); | 949 | t.setAttribute('class','menuhead');t.setAttribute('disabled','true'); |
937 | mp.appendChild(document.createElement('menuseparator')); | 950 | mp.appendChild(document.createElement('menuseparator')); |
938 | var cs = document.getElementById(csid); | 951 | var cs = document.getElementById(csid); |
939 | for(var iti=0;iti<imgt.length;++iti) { | 952 | for(var iti=0;iti<imgt.length;++iti) { |
940 | t = mp.appendChild(document.createElement('menu')); | 953 | t = mp.appendChild(document.createElement('menu')); |
941 | t.setAttribute('label',this.loc_strings.getString('urltype_'+imgt.charAt(iti))); | 954 | t.setAttribute('label',this.loc_strings.getString('urltype_'+imgt.charAt(iti))); |
942 | var smp = t.appendChild(document.createElement('menupopup')); | 955 | var smp = t.appendChild(document.createElement('menupopup')); |
943 | t=smp.appendChild(document.createElement('menuitem')); | 956 | t=smp.appendChild(document.createElement('menuitem')); |
944 | t.setAttribute('label',this.loc_strings.getString('menutitle_Links')); | 957 | t.setAttribute('label',this.loc_strings.getString('menutitle_Links')); |
945 | t.setAttribute('class','menuhead');t.setAttribute('disabled','true'); | 958 | t.setAttribute('class','menuhead');t.setAttribute('disabled','true'); |
946 | smp.appendChild(document.createElement('menuseparator')); | 959 | smp.appendChild(document.createElement('menuseparator')); |
947 | for(var lti=0;lti<lnkt.length;++lti) { | 960 | for(var lti=0;lti<lnkt.length;++lti) { |
948 | var csfx = imgt.charAt(iti)+lnkt.charAt(lti); | 961 | var csfx = imgt.charAt(iti)+lnkt.charAt(lti); |
949 | t=smp.appendChild(document.createElement('menuitem')); | 962 | t=smp.appendChild(document.createElement('menuitem')); |
950 | t.setAttribute('label',this.loc_strings.getString('urltype_'+lnkt.charAt(lti))); | 963 | t.setAttribute('label',this.loc_strings.getString('urltype_'+lnkt.charAt(lti))); |
951 | t.setAttribute('command',cpfx+'_'+csfx); | 964 | t.setAttribute('command',cpfx+'_'+csfx); |
952 | t=cs.appendChild(document.createElement('command')); | 965 | t=cs.appendChild(document.createElement('command')); |
953 | t.setAttribute('id',cpfx+'_'+csfx); | 966 | t.setAttribute('id',cpfx+'_'+csfx); |
954 | t.setAttribute('oncommand','fireflix.on_'+cpfx+"('"+csfx+"',event)"); | 967 | t.setAttribute('oncommand','fireflix.on_'+cpfx+"('"+csfx+"',event)"); |
955 | } | 968 | } |
956 | } | 969 | } |
957 | return mp; | 970 | return mp; |
958 | }, | 971 | }, |
959 | 972 | ||
960 | flickr_failure: function(x,s,c,m) { | 973 | flickr_failure: function(x,s,c,m) { |
961 | if(c==98) { // Invalid auth token | 974 | if(c==98) { // Invalid auth token |
962 | this.flickr.reset_token(); | 975 | this.flickr.reset_token(); |
963 | this.set_auth_state(false,false); | 976 | this.set_auth_state(false,false); |
964 | return; | 977 | return; |
965 | } | 978 | } |
966 | // TODO: is that beauty? | 979 | // TODO: is that beauty? |
967 | alert('flickr api call failed\n'+c+' '+m); | 980 | alert('flickr api call failed\n'+c+' '+m); |
968 | } | 981 | } |
969 | 982 | ||
970 | }; | 983 | }; |