-rw-r--r-- | content/fireflix-panel.xul | 2 | ||||
-rw-r--r-- | content/fireflix.css | 8 | ||||
-rw-r--r-- | content/fireflix.js | 25 |
3 files changed, 23 insertions, 12 deletions
diff --git a/content/fireflix-panel.xul b/content/fireflix-panel.xul index 2a15a51..b84b596 100644 --- a/content/fireflix-panel.xul +++ b/content/fireflix-panel.xul | |||
@@ -87,129 +87,129 @@ | |||
87 | <menuseparator/> | 87 | <menuseparator/> |
88 | <menu label="&panel.uploads.generate_html;" id="uploads_html_menu"/> | 88 | <menu label="&panel.uploads.generate_html;" id="uploads_html_menu"/> |
89 | </popup> | 89 | </popup> |
90 | </popupset> | 90 | </popupset> |
91 | 91 | ||
92 | <vbox class="wholething" flex="1"> | 92 | <vbox class="wholething" flex="1"> |
93 | 93 | ||
94 | <groupbox context="auth_menu"> | 94 | <groupbox context="auth_menu"> |
95 | <caption label="&panel.auth_info;"/> | 95 | <caption label="&panel.auth_info;"/> |
96 | <hbox> | 96 | <hbox> |
97 | <label id="auth_info" value="&panel.no_auth_info;" flex="1" disabled="true" crop="end"/> | 97 | <label id="auth_info" value="&panel.no_auth_info;" flex="1" disabled="true" crop="end"/> |
98 | <button id="b_auth" command="cmd_auth_auth"/> | 98 | <button id="b_auth" command="cmd_auth_auth"/> |
99 | <button id="b_auth_done" command="cmd_auth_done" hidden="true"/> | 99 | <button id="b_auth_done" command="cmd_auth_done" hidden="true"/> |
100 | <button command="cmd_auth_open_flickr" | 100 | <button command="cmd_auth_open_flickr" |
101 | tooltiptext="&panel.auth.flickr.tip;"/> | 101 | tooltiptext="&panel.auth.flickr.tip;"/> |
102 | </hbox> | 102 | </hbox> |
103 | </groupbox> | 103 | </groupbox> |
104 | 104 | ||
105 | <tabbox flex="1" id="fireflix_tabs"> | 105 | <tabbox flex="1" id="fireflix_tabs"> |
106 | 106 | ||
107 | <tabs> | 107 | <tabs> |
108 | <tab label="&panel.tabs.search;"/> | 108 | <tab label="&panel.tabs.search;"/> |
109 | <tab label="&panel.tabs.sets;"/> | 109 | <tab label="&panel.tabs.sets;"/> |
110 | <tab label="&panel.tabs.tags;" hidden="true"/> <!-- TODO: --> | 110 | <tab label="&panel.tabs.tags;" hidden="true"/> <!-- TODO: --> |
111 | <tab id="tab_upload" label="&panel.tabs.upload;"/> | 111 | <tab id="tab_upload" label="&panel.tabs.upload;"/> |
112 | </tabs> | 112 | </tabs> |
113 | 113 | ||
114 | <tabpanels flex="1"> | 114 | <tabpanels flex="1"> |
115 | 115 | ||
116 | <tabpanel id="tabpanel_search" flex="1"> | 116 | <tabpanel id="tabpanel_search" flex="1"> |
117 | <vbox flex="1"> | 117 | <vbox flex="1"> |
118 | <groupbox class="search_params" orient="vertical" onkeypress="if(event.keyCode==event.DOM_VK_RETURN) fireflix.foundphotos.search_photos()"> | 118 | <groupbox class="search_params" orient="vertical" onkeypress="if(event.keyCode==event.DOM_VK_RETURN) fireflix.foundphotos.search_photos()"> |
119 | <hbox> | 119 | <hbox> |
120 | <label control="search_for" value="&panel.search.search_for.label;" | 120 | <label control="search_for" value="&panel.search.search_for.label;" |
121 | accesskey="s"/> | 121 | accesskey="s"/> |
122 | <textbox id="search_for" flex="1"/> | 122 | <textbox id="search_for" flex="1"/> |
123 | </hbox> | 123 | </hbox> |
124 | <hbox> | 124 | <hbox> |
125 | <checkbox id="search_tags" label="&panel.search.mode.tagsonly.label;" | 125 | <checkbox id="search_tags" label="&panel.search.mode.tagsonly.label;" |
126 | tooltiptext="&panel.search.mode.tagsonly.tip;" checked="false" | 126 | tooltiptext="&panel.search.mode.tagsonly.tip;" checked="false" |
127 | accesskey="t" /> | 127 | accesskey="t" /> |
128 | <checkbox id="search_mine" label="&panel.search.mode.mine.label;" checked="true" accesskey="m"/> | 128 | <checkbox id="search_mine" label="&panel.search.mode.mine.label;" checked="true" accesskey="m"/> |
129 | <spacer flex="1"/> | 129 | <spacer flex="1"/> |
130 | <button command="cmd_search"/> | 130 | <button command="cmd_search"/> |
131 | </hbox> | 131 | </hbox> |
132 | </groupbox> | 132 | </groupbox> |
133 | <tree id="searchresults" rows="2" flex="1" | 133 | <tree id="searchresults" rows="2" flex="1" |
134 | onselect="fireflix.foundphotos.on_select()" | 134 | onselect="fireflix.foundphotos.on_select()" |
135 | ondblclick="fireflix.foundphotos.on_cmd_open(event)" | 135 | ondblclick="fireflix.foundphotos.on_cmd_open(event)" |
136 | onkeypress="if(event.keyCode==event.DOM_VK_RETURN) | 136 | onkeypress="if(event.keyCode==event.DOM_VK_RETURN) |
137 | fireflix.foundphotos.on_cmd_open(event)"> | 137 | fireflix.foundphotos.on_cmd_open(event)"> |
138 | <treecols> | 138 | <treecols> |
139 | <treecol id="sr_title" label="&panel.search.col.title.label;" flex="2" crop="end" align="start" /> | 139 | <treecol id="sr_title" label="&panel.search.col.title.label;" flex="2" crop="end" align="start" /> |
140 | </treecols> | 140 | </treecols> |
141 | <treechildren/> | 141 | <treechildren/> |
142 | </tree> | 142 | </tree> |
143 | <groupbox id="searchresult_props" orient="horizontal" hidden="true"> | 143 | <groupbox id="searchresult_props" orient="horizontal" hidden="true"> |
144 | <vbox width="100" pack="center"> | 144 | <vbox width="100" pack="center"> |
145 | <hbox pack="center"> | 145 | <hbox pack="center"> |
146 | <image id="search_photo"/> | 146 | <image id="search_photo"/> |
147 | </hbox> | 147 | </hbox> |
148 | </vbox> | 148 | </vbox> |
149 | <vbox flex="1"> | 149 | <vbox flex="1"> |
150 | <label id="searchresult_title"/> | 150 | <label id="searchresult_title"/> |
151 | <textbox flex="1" multiline="true" class="plain" readonly="true" id="searchresult_description"/> | 151 | <iframe flex="1" id="searchresult_description"/> |
152 | <hbox pack="end"> | 152 | <hbox pack="end"> |
153 | <button command="cmd_search_open"/> | 153 | <button command="cmd_search_open"/> |
154 | </hbox> | 154 | </hbox> |
155 | </vbox> | 155 | </vbox> |
156 | </groupbox> | 156 | </groupbox> |
157 | </vbox> | 157 | </vbox> |
158 | </tabpanel> | 158 | </tabpanel> |
159 | 159 | ||
160 | <tabpanel id="tabpanel_sets" flex="1" | 160 | <tabpanel id="tabpanel_sets" flex="1" |
161 | onkeypress="if(event.keyCode==event.DOM_VK_RETURN) | 161 | onkeypress="if(event.keyCode==event.DOM_VK_RETURN) |
162 | document.getElementById('setphotos').focus()"> | 162 | document.getElementById('setphotos').focus()"> |
163 | <vbox flex="1"> | 163 | <vbox flex="1"> |
164 | <tree id="setslist" rows="2" onselect="fireflix.photosets.on_select()" | 164 | <tree id="setslist" rows="2" onselect="fireflix.photosets.on_select()" |
165 | flex="1" context="sets_menu" | 165 | flex="1" context="sets_menu" |
166 | > | 166 | > |
167 | <treecols> | 167 | <treecols> |
168 | <treecol id="sl_name" label="&panel.sets.name.label;" flex="4" crop="end" align="start" tooltiptext="&panel.sets.name.tip;"/> | 168 | <treecol id="sl_name" label="&panel.sets.name.label;" flex="4" crop="end" align="start" tooltiptext="&panel.sets.name.tip;"/> |
169 | <splitter class="tree-splitter" /> | 169 | <splitter class="tree-splitter" /> |
170 | <treecol id="sl_photos" label="&panel.sets.photos.label;" flex="1" align="end" tooltiptext="&panel.sets.photos.tip;" /> | 170 | <treecol id="sl_photos" label="&panel.sets.photos.label;" flex="1" align="end" tooltiptext="&panel.sets.photos.tip;" /> |
171 | </treecols> | 171 | </treecols> |
172 | <treechildren/> | 172 | <treechildren/> |
173 | </tree> | 173 | </tree> |
174 | <hbox> | 174 | <hbox> |
175 | <button command="cmd_refresh_sets" /> | 175 | <button command="cmd_refresh_sets" /> |
176 | <button command="cmd_set_props" /> | 176 | <button command="cmd_set_props" /> |
177 | </hbox> | 177 | </hbox> |
178 | <tree id="setphotos" rows="2" onselect="fireflix.photoset.on_select()" | 178 | <tree id="setphotos" rows="2" onselect="fireflix.photoset.on_select()" |
179 | flex="1"> | 179 | flex="1"> |
180 | <treecols> | 180 | <treecols> |
181 | <treecol id="sp_title" label="&panel.setphotos.title.label;" flex="1" crop="end" align="start" tooltiptext="&panel.setphotos.title.tip;" /> | 181 | <treecol id="sp_title" label="&panel.setphotos.title.label;" flex="1" crop="end" align="start" tooltiptext="&panel.setphotos.title.tip;" /> |
182 | <splitter class="tree-splitter" /> | 182 | <splitter class="tree-splitter" /> |
183 | <treecol id="sp_taken" label="&panel.setphotos.taken.label;" crop="end" align="start" tooltiptext="&panel.setphotos.taken.tip;" hidden="true" /> | 183 | <treecol id="sp_taken" label="&panel.setphotos.taken.label;" crop="end" align="start" tooltiptext="&panel.setphotos.taken.tip;" hidden="true" /> |
184 | <treecol id="sp_upload" label="&panel.setphotos.upload.label;" crop="end" align="start" tooltiptext="&panel.setphotos.upload.tip;" hidden="true" /> | 184 | <treecol id="sp_upload" label="&panel.setphotos.upload.label;" crop="end" align="start" tooltiptext="&panel.setphotos.upload.tip;" hidden="true" /> |
185 | </treecols> | 185 | </treecols> |
186 | <treechildren/> | 186 | <treechildren/> |
187 | </tree> | 187 | </tree> |
188 | <groupbox id="set_photo_props" orient="horizontal"> | 188 | <groupbox id="set_photo_props" orient="horizontal"> |
189 | <vbox width="100" pack="center"> | 189 | <vbox width="100" pack="center"> |
190 | <hbox pack="center"> | 190 | <hbox pack="center"> |
191 | <image id="set_photo" hidden="true"/> | 191 | <image id="set_photo" hidden="true"/> |
192 | </hbox> | 192 | </hbox> |
193 | </vbox> | 193 | </vbox> |
194 | <spacer flex="1"/> | 194 | <spacer flex="1"/> |
195 | </groupbox> | 195 | </groupbox> |
196 | </vbox> | 196 | </vbox> |
197 | </tabpanel> | 197 | </tabpanel> |
198 | 198 | ||
199 | <tabpanel id="tabpanel_tags"> | 199 | <tabpanel id="tabpanel_tags"> |
200 | <listbox id="tagslist" rows="8" flex="1"> | 200 | <listbox id="tagslist" rows="8" flex="1"> |
201 | <listhead> | 201 | <listhead> |
202 | <listheader label="&panel.tagslist.tag.label;"/> | 202 | <listheader label="&panel.tagslist.tag.label;"/> |
203 | </listhead> | 203 | </listhead> |
204 | <listcols> | 204 | <listcols> |
205 | <listcol flex="1"/> | 205 | <listcol flex="1"/> |
206 | </listcols> | 206 | </listcols> |
207 | </listbox> | 207 | </listbox> |
208 | </tabpanel> | 208 | </tabpanel> |
209 | 209 | ||
210 | <tabpanel id="tabpanel_upload"> | 210 | <tabpanel id="tabpanel_upload"> |
211 | <vbox flex="1"> | 211 | <vbox flex="1"> |
212 | <tree id="uploadlist" rows="2" flex="1" | 212 | <tree id="uploadlist" rows="2" flex="1" |
213 | onselect="fireflix.uploads.selectionChanged()" | 213 | onselect="fireflix.uploads.selectionChanged()" |
214 | context="uploads_menu"> | 214 | context="uploads_menu"> |
215 | <treecols> | 215 | <treecols> |
diff --git a/content/fireflix.css b/content/fireflix.css index 188f48e..4a3228f 100644 --- a/content/fireflix.css +++ b/content/fireflix.css | |||
@@ -11,80 +11,72 @@ tree { | |||
11 | margin-top: 2px; | 11 | margin-top: 2px; |
12 | background: rgb(12,167,0); | 12 | background: rgb(12,167,0); |
13 | color: rgb(255,255,0); | 13 | color: rgb(255,255,0); |
14 | font-size: 90%; | 14 | font-size: 90%; |
15 | } | 15 | } |
16 | tree treechildren { /* for windows */ | 16 | tree treechildren { /* for windows */ |
17 | background: rgb(12,167,0); | 17 | background: rgb(12,167,0); |
18 | } | 18 | } |
19 | 19 | ||
20 | tree#uploadlist treechildren::-moz-tree-cell-text(pending) { | 20 | tree#uploadlist treechildren::-moz-tree-cell-text(pending) { |
21 | } | 21 | } |
22 | tree#uploadlist treechildren::-moz-tree-cell-text(completed) { | 22 | tree#uploadlist treechildren::-moz-tree-cell-text(completed) { |
23 | color: white; | 23 | color: white; |
24 | } | 24 | } |
25 | tree#uploadlist treechildren::-moz-tree-row(failed) { | 25 | tree#uploadlist treechildren::-moz-tree-row(failed) { |
26 | background: yellow; | 26 | background: yellow; |
27 | } | 27 | } |
28 | tree#uploadlist treechildren::-moz-tree-cell-text(failed) { | 28 | tree#uploadlist treechildren::-moz-tree-cell-text(failed) { |
29 | color: red; | 29 | color: red; |
30 | } | 30 | } |
31 | tree#uploadlist treechildren::-moz-tree-cell-text(uploading) { | 31 | tree#uploadlist treechildren::-moz-tree-cell-text(uploading) { |
32 | font-weight: bold; | 32 | font-weight: bold; |
33 | } | 33 | } |
34 | 34 | ||
35 | groupbox#searchresult_props, | 35 | groupbox#searchresult_props, |
36 | groupbox.search_params, | 36 | groupbox.search_params, |
37 | groupbox#upload_file_props, | 37 | groupbox#upload_file_props, |
38 | groupbox#set_props, | 38 | groupbox#set_props, |
39 | groupbox#set_photo_props { | 39 | groupbox#set_photo_props { |
40 | background: white; | 40 | background: white; |
41 | } | 41 | } |
42 | 42 | ||
43 | groupbox#upload_file_props label { | 43 | groupbox#upload_file_props label { |
44 | text-align: right; | 44 | text-align: right; |
45 | } | 45 | } |
46 | 46 | ||
47 | image#set_photo, image#set_primary { | 47 | image#set_photo, image#set_primary { |
48 | border: black 1px solid; | 48 | border: black 1px solid; |
49 | } | 49 | } |
50 | 50 | ||
51 | .about .insides { | 51 | .about .insides { |
52 | margin: 1ex; | 52 | margin: 1ex; |
53 | } | 53 | } |
54 | .about .text { | 54 | .about .text { |
55 | border: yellow solid 1px; | 55 | border: yellow solid 1px; |
56 | background: green; | 56 | background: green; |
57 | } | 57 | } |
58 | .about .title { | 58 | .about .title { |
59 | font-size: 300%; | 59 | font-size: 300%; |
60 | font-weight: bold; | 60 | font-weight: bold; |
61 | color: yellow; | 61 | color: yellow; |
62 | } | 62 | } |
63 | .about .link { | 63 | .about .link { |
64 | text-decoration: underline; | 64 | text-decoration: underline; |
65 | color: white; | 65 | color: white; |
66 | cursor: pointer; | 66 | cursor: pointer; |
67 | } | 67 | } |
68 | 68 | ||
69 | menuitem.menuhead { | 69 | menuitem.menuhead { |
70 | background: gray; | 70 | background: gray; |
71 | color: black; | 71 | color: black; |
72 | font-weight: bold; | 72 | font-weight: bold; |
73 | } | 73 | } |
74 | 74 | ||
75 | label#searchresult_description { | ||
76 | font-weight: bold; | ||
77 | } | ||
78 | textbox#searchresult_description { | ||
79 | padding: 1px 3px !important; | ||
80 | background: white; | ||
81 | } | ||
82 | |||
83 | #copying div { | 75 | #copying div { |
84 | margin: 1ex 1em; | 76 | margin: 1ex 1em; |
85 | font-family: courier, monospace; | 77 | font-family: courier, monospace; |
86 | font-size: 9pt; | 78 | font-size: 9pt; |
87 | padding: 2px; | 79 | padding: 2px; |
88 | border: dotted 1px gray; | 80 | border: dotted 1px gray; |
89 | background: white; | 81 | background: white; |
90 | } | 82 | } |
diff --git a/content/fireflix.js b/content/fireflix.js index 337354e..6773134 100644 --- a/content/fireflix.js +++ b/content/fireflix.js | |||
@@ -693,163 +693,182 @@ var fireflix = { | |||
693 | 'searchresult_title','searchresult_description' | 693 | 'searchresult_title','searchresult_description' |
694 | ]); | 694 | ]); |
695 | document.getElementById('searchresults').view = this; | 695 | document.getElementById('searchresults').view = this; |
696 | }, | 696 | }, |
697 | photos: new Array(), | 697 | photos: new Array(), |
698 | rowCount: 0, | 698 | rowCount: 0, |
699 | getCellText: function(r,c) { | 699 | getCellText: function(r,c) { |
700 | var p = this.photos[r]; | 700 | var p = this.photos[r]; |
701 | if(c.id=='sr_title') return p.title; | 701 | if(c.id=='sr_title') return p.title; |
702 | return c.id; | 702 | return c.id; |
703 | }, | 703 | }, |
704 | setTree: function(t) { this.tree = t }, | 704 | setTree: function(t) { this.tree = t }, |
705 | isContainer: function(r) { return false }, | 705 | isContainer: function(r) { return false }, |
706 | isSeparator: function(r) { return false }, | 706 | isSeparator: function(r) { return false }, |
707 | isSorted: function(r) { return false }, | 707 | isSorted: function(r) { return false }, |
708 | getLevel: function(r) { return 0 }, | 708 | getLevel: function(r) { return 0 }, |
709 | getImageSrc: function(r,c) { return null }, | 709 | getImageSrc: function(r,c) { return null }, |
710 | getRowProperties: function(r,p) { }, | 710 | getRowProperties: function(r,p) { }, |
711 | getCellProperties: function(cid,cel,p) { }, | 711 | getCellProperties: function(cid,cel,p) { }, |
712 | getColumnProperties: function(cid,cel,p) { }, | 712 | getColumnProperties: function(cid,cel,p) { }, |
713 | cycleHeader: function(cid,e) { }, | 713 | cycleHeader: function(cid,e) { }, |
714 | getParentIndex: function(r) { return -1 }, | 714 | getParentIndex: function(r) { return -1 }, |
715 | drop: function(r,o) { }, | 715 | drop: function(r,o) { }, |
716 | canDropBeforeAfter: function(r,b) { return false }, | 716 | canDropBeforeAfter: function(r,b) { return false }, |
717 | 717 | ||
718 | importXPR: function(xp) { | 718 | importXPR: function(xp) { |
719 | this.selection.clearSelection(); | 719 | this.selection.clearSelection(); |
720 | this.selection.currentIndex = -1; | 720 | this.selection.currentIndex = -1; |
721 | this.searchresult_props.hidden = true; | 721 | this.searchresult_props.hidden = true; |
722 | this.tree.beginUpdateBatch(); | 722 | this.tree.beginUpdateBatch(); |
723 | this.photos = new Array(); | 723 | this.photos = new Array(); |
724 | var n; while(n=xp.iterateNext()) { | 724 | var n; while(n=xp.iterateNext()) { |
725 | this.photos.push(new Photo(n)); | 725 | this.photos.push(new Photo(n)); |
726 | } | 726 | } |
727 | this.rowCount = this.photos.length; | 727 | this.rowCount = this.photos.length; |
728 | this.tree.endUpdateBatch(); | 728 | this.tree.endUpdateBatch(); |
729 | }, | 729 | }, |
730 | search_photos: function() { | 730 | search_photos: function() { |
731 | var pars = { | 731 | var pars = { |
732 | method: 'flickr.photos.search', | 732 | method: 'flickr.photos.search', |
733 | auth_token: 'default', | 733 | auth_token: 'default', |
734 | extras: 'license,date_upload,date_taken,owner_name,icon_server,original_format,last_update,geo' | 734 | extras: 'license,date_upload,date_taken,owner_name,icon_server,original_format,last_update,geo' |
735 | }; | 735 | }; |
736 | if(this.search_mine.checked) | 736 | if(this.search_mine.checked) |
737 | pars.user_id='me'; | 737 | pars.user_id='me'; |
738 | if(this.search_tags.checked) { | 738 | if(this.search_tags.checked) { |
739 | pars.tags=this.search_for.value.split(/ +/).join(','); | 739 | pars.tags=this.search_for.value.split(/ +/).join(','); |
740 | }else{ | 740 | }else{ |
741 | pars.text=this.search_for.value; | 741 | pars.text=this.search_for.value; |
742 | } | 742 | } |
743 | var _this = this; | 743 | var _this = this; |
744 | this.fireflix.flickr.api_call( pars, | 744 | this.fireflix.flickr.api_call( pars, |
745 | function(xr) { | 745 | function(xr) { |
746 | var x = xr.responseXML; | 746 | var x = xr.responseXML; |
747 | var xp = x.evaluate( | 747 | var xp = x.evaluate( |
748 | '/rsp/photos/photo', x, null, | 748 | '/rsp/photos/photo', x, null, |
749 | XPathResult.ORDERED_NODE_ITERATOR_TYPE, null ); | 749 | XPathResult.ORDERED_NODE_ITERATOR_TYPE, null ); |
750 | _this.importXPR(xp); | 750 | _this.importXPR(xp); |
751 | _this.on_select(); | 751 | _this.on_select(); |
752 | }, function(x,s,c,m) { | 752 | }, function(x,s,c,m) { |
753 | _this.fireflix.flickr_failure(x,s,c,m); | 753 | _this.fireflix.flickr_failure(x,s,c,m); |
754 | } | 754 | } |
755 | ); | 755 | ); |
756 | }, | 756 | }, |
757 | render_description_frame: function(content) { | ||
758 | if(!content) { | ||
759 | try { | ||
760 | this.searchresult_description.contentDocument.lastChild.innerHTML | ||
761 | = ''; | ||
762 | }catch(e) { } /* it will throw exceptions when the iframe isn't well | ||
763 | prepared to meet me, but it's unimportant then, anyway */ | ||
764 | }else{ | ||
765 | this.searchresult_description.contentDocument.lastChild.setAttribute( | ||
766 | 'style', | ||
767 | 'font-size: 80%; margin: 1px 3px; font-family: arial, sans-serif' | ||
768 | ); | ||
769 | this.searchresult_description.contentDocument.lastChild.innerHTML | ||
770 | = content; | ||
771 | var ls = this.searchresult_description.contentDocument.links; | ||
772 | for(var l=0;l<ls.length;++l) | ||
773 | ls.item(l).setAttribute('target','_blank'); | ||
774 | } | ||
775 | }, | ||
757 | on_select: function() { | 776 | on_select: function() { |
758 | if(this.selection.currentIndex<0) { | 777 | if(this.selection.currentIndex<0) { |
759 | this.searchresult_props.hidden = true; | 778 | this.searchresult_props.hidden = true; |
760 | }else{ | 779 | }else{ |
761 | var p = this.photos[this.selection.currentIndex]; | 780 | var p = this.photos[this.selection.currentIndex]; |
762 | if(!p) { | 781 | if(!p) { |
763 | this.searchresult_props.hidden = true; | 782 | this.searchresult_props.hidden = true; |
764 | }else{ | 783 | }else{ |
765 | this.search_photo.src = this.fireflix.flickr.make_photo_url(p,'t'); | 784 | this.search_photo.src = this.fireflix.flickr.make_photo_url(p,'t'); |
766 | this.searchresult_title.value = p.title; | 785 | this.searchresult_title.value = p.title; |
767 | this.searchresult_description.value = null; | 786 | this.render_description_frame(null); |
768 | if(p.description==null && p.description==undefined) { | 787 | if(p.description==null && p.description==undefined) { |
769 | var pid = p.id; | 788 | var pid = p.id; |
770 | var ci = this.selection.currentIndex; | 789 | var ci = this.selection.currentIndex; |
771 | var _this = this; | 790 | var _this = this; |
772 | this.fireflix.flickr.api_call( | 791 | this.fireflix.flickr.api_call( |
773 | { | 792 | { |
774 | method: 'flickr.photos.getInfo', | 793 | method: 'flickr.photos.getInfo', |
775 | auth_token: 'default', | 794 | auth_token: 'default', |
776 | photo_id: p.id, | 795 | photo_id: p.id, |
777 | secret: p.secret | 796 | secret: p.secret |
778 | }, function(xr) { | 797 | }, function(xr) { |
779 | var pp = _this.photos[ci]; | 798 | var pp = _this.photos[ci]; |
780 | if(ci==_this.selection.currentIndex && pp.id==pid) { | 799 | if(ci==_this.selection.currentIndex && pp.id==pid) { |
781 | var n = xp_node('/rsp/photo',xr.responseXML); | 800 | var n = xp_node('/rsp/photo',xr.responseXML); |
782 | pp.fromNode_(n); | 801 | pp.fromNode_(n); |
783 | _this.searchresult_description.value=pp.description?pp.description:null; | 802 | _this.render_description_frame(pp.description); |
784 | } | 803 | } |
785 | }, function(x,s,c,m) { | 804 | }, function(x,s,c,m) { |
786 | _this.fireflix.flickr_failure(x,s,c,m); | 805 | _this.fireflix.flickr_failure(x,s,c,m); |
787 | } | 806 | } |
788 | ); | 807 | ); |
789 | this.searchresult_props.hidden = false; | 808 | this.searchresult_props.hidden = false; |
790 | }else{ | 809 | }else{ |
791 | this.searchresult_description.value=p.description?p.description:null; | 810 | this.render_description_frame(p.description); |
792 | } | 811 | } |
793 | } | 812 | } |
794 | } | 813 | } |
795 | }, | 814 | }, |
796 | on_cmd_open: function(ev) { | 815 | on_cmd_open: function(ev) { |
797 | if(this.selection.currentIndex<0) | 816 | if(this.selection.currentIndex<0) |
798 | return; | 817 | return; |
799 | var p = this.photos[this.selection.currentIndex]; | 818 | var p = this.photos[this.selection.currentIndex]; |
800 | if(!p.id) | 819 | if(!p.id) |
801 | return; | 820 | return; |
802 | this.fireflix.openTab(this.fireflix.flickr.make_photo_url(p,'p')); | 821 | this.fireflix.openTab(this.fireflix.flickr.make_photo_url(p,'p')); |
803 | } | 822 | } |
804 | }, | 823 | }, |
805 | 824 | ||
806 | photo_html: function(p,i,l) { | 825 | photo_html: function(p,i,l) { |
807 | // TODO: add alt/title when possible | 826 | // TODO: add alt/title when possible |
808 | var rv = | 827 | var rv = |
809 | '<a href="'+this.flickr.make_photo_url(p,l)+'">' + | 828 | '<a href="'+this.flickr.make_photo_url(p,l)+'">' + |
810 | '<img src="'+this.flickr.make_photo_url(p,i)+'" />'+ | 829 | '<img src="'+this.flickr.make_photo_url(p,i)+'" />'+ |
811 | '</a>'; | 830 | '</a>'; |
812 | return rv; | 831 | return rv; |
813 | }, | 832 | }, |
814 | build_html: function(photos,uti,utl) { | 833 | build_html: function(photos,uti,utl) { |
815 | var rv = ''; | 834 | var rv = ''; |
816 | for(var i in photos) { | 835 | for(var i in photos) { |
817 | var p = photos[i]; | 836 | var p = photos[i]; |
818 | rv += this.photo_html(p,utl,uti)+'\n'; | 837 | rv += this.photo_html(p,utl,uti)+'\n'; |
819 | } | 838 | } |
820 | return rv; | 839 | return rv; |
821 | }, | 840 | }, |
822 | 841 | ||
823 | popup_content: function(s) { | 842 | popup_content: function(s) { |
824 | window.openDialog( | 843 | window.openDialog( |
825 | "chrome://fireflix/content/generated-content.xul", | 844 | "chrome://fireflix/content/generated-content.xul", |
826 | null, "dialog,chrome", this, s ); | 845 | null, "dialog,chrome", this, s ); |
827 | }, | 846 | }, |
828 | copy_to_clipboard: function(s) { | 847 | copy_to_clipboard: function(s) { |
829 | var ch = Components.classes["@mozilla.org/widget/clipboardhelper;1"] | 848 | var ch = Components.classes["@mozilla.org/widget/clipboardhelper;1"] |
830 | .getService(Components.interfaces.nsIClipboardHelper); | 849 | .getService(Components.interfaces.nsIClipboardHelper); |
831 | ch.copyString(s); | 850 | ch.copyString(s); |
832 | }, | 851 | }, |
833 | openTab: function(l) { | 852 | openTab: function(l) { |
834 | var wm = Components.classes['@mozilla.org/appshell/window-mediator;1'].getService( | 853 | var wm = Components.classes['@mozilla.org/appshell/window-mediator;1'].getService( |
835 | Components.interfaces.nsIWindowMediator ); | 854 | Components.interfaces.nsIWindowMediator ); |
836 | var bw = wm.getMostRecentWindow('navigator:browser'); | 855 | var bw = wm.getMostRecentWindow('navigator:browser'); |
837 | var b = bw.getBrowser(); | 856 | var b = bw.getBrowser(); |
838 | var t = b.addTab(l); | 857 | var t = b.addTab(l); |
839 | b.selectedTab = t; | 858 | b.selectedTab = t; |
840 | }, | 859 | }, |
841 | 860 | ||
842 | build_menus: function() { | 861 | build_menus: function() { |
843 | this.append_html_menu( | 862 | this.append_html_menu( |
844 | document.getElementById('sets_html_menu'), | 863 | document.getElementById('sets_html_menu'), |
845 | 'stm_','m_bop','cmdset_sets','cmd_sets_html' | 864 | 'stm_','m_bop','cmdset_sets','cmd_sets_html' |
846 | ); | 865 | ); |
847 | this.append_html_menu( | 866 | this.append_html_menu( |
848 | document.getElementById('uploads_html_menu'), | 867 | document.getElementById('uploads_html_menu'), |
849 | 'stm_','m_bop','cmdset_uploads','cmd_uploads_html' | 868 | 'stm_','m_bop','cmdset_uploads','cmd_uploads_html' |
850 | ); | 869 | ); |
851 | return; | 870 | return; |
852 | }, | 871 | }, |
853 | append_html_menu: function(m,imgt,lnkt,csid,cpfx) { | 872 | append_html_menu: function(m,imgt,lnkt,csid,cpfx) { |
854 | var mp = m.appendChild(document.createElement('menupopup')); | 873 | var mp = m.appendChild(document.createElement('menupopup')); |
855 | var t; | 874 | var t; |