Changeset 223
- Timestamp:
- 04/15/08 22:24:28 (7 months ago)
- Files:
-
- MediAnnotateXPI/trunk/srcExtension/chrome/vertov/content/overlay.js (modified) (8 diffs)
- MediAnnotateXPI/trunk/srcExtension/chrome/vertov/content/overlay.xul (modified) (1 diff)
- MediAnnotateXPI/trunk/srcExtension/install.rdf (modified) (1 diff)
- MediAnnotateXPI/trunk/update_mediannotate.rdf (modified) (1 diff)
- MediAnnotateXPI/trunk/vertov.xpi (modified) (previous)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
MediAnnotateXPI/trunk/srcExtension/chrome/vertov/content/overlay.js
r222 r223 66 66 //Let's init things to blank and let real decisions be made later if necessary. 67 67 this.parentItem = false; 68 68 69 this.current_url = false; 69 70 this.isMediaAnnotation = false; … … 74 75 } else { 75 76 this.isMediaAnnotation = this.isXMLNote(this.item); 76 77 } 78 79 if(this.isMediaAnnotation) { 80 this.applyChange(); 81 this.parentItem = Zotero.Items.get(this.item.getSource()); 82 this.prepareMAEntryView(this.item); 83 } else { 84 this.parentItem = this.item; 85 //In the even that we're not a Media Annotation, let's put the old item info panel back. 86 document.getElementById('zotero-item-pane-content').selectedPanel = oldPanel; 87 } 88 77 if(!this.item.isRegularItem()) { 78 //If this is a snapshot or media annotation, get the real parent item 79 this.parentItem = Zotero.Items.get(this.item.getSource()); 80 } else { 81 this.parentItem = this.item; 82 } 83 } 84 85 89 86 if(this.item && (this.isPlayableItem())) { 90 87 this.current_url = this.getPlayableURL(); 88 alert(this.current_url); 91 89 document.getElementById("zotero-items-tree").ondblclick = function ondblclick(event) { 92 90 mediannotate.workItOut(event); 93 91 } 92 93 if(this.isMediaAnnotation) { 94 this.applyChange(); 95 this.prepareMAEntryView(this.item); 96 } else { 97 //In the even that we're not a Media Annotation, let's put the old item info panel back. 98 document.getElementById('zotero-item-pane-content').selectedPanel = oldPanel; 99 } 100 101 94 102 95 103 } else { … … 116 124 117 125 prepareMAEntryView: function(item) { 118 var xmlString = item.getNote();119 126 var objDOMParser = new DOMParser(); 120 var xmlDoc = objDOMParser.parseFromString(xmlString, "text/xml"); 121 this.xmlDoc = xmlDoc; 127 var xmlDoc = objDOMParser.parseFromString(item.getNote(), "text/xml"); 122 128 123 129 //update the fields 124 document.getElementById('ma-description').value = this.xmlDoc.evaluate("//description", this.xmlDoc, null, XPathResult.ANY_TYPE, null).iterateNext().textContent; 125 var start = this.xmlDoc.evaluate("//start", this.xmlDoc, null, XPathResult.ANY_TYPE, null).iterateNext().textContent; 126 var end = this.xmlDoc.evaluate("//end", this.xmlDoc, null, XPathResult.ANY_TYPE, null).iterateNext().textContent; 130 document.getElementById('ma-description').value = xmlDoc.evaluate("//description", xmlDoc, null, XPathResult.ANY_TYPE, null).iterateNext().textContent; 131 var start = xmlDoc.evaluate("//start", xmlDoc, null, XPathResult.ANY_TYPE, null).iterateNext().textContent; 132 var end = xmlDoc.evaluate("//end", xmlDoc, null, XPathResult.ANY_TYPE, null).iterateNext().textContent; 133 try { 134 var url = xmlDoc.evaluate("//url", xmlDoc, null, XPathResult.ANY_TYPE, null).iterateNext().textContent; 135 } catch(e) {}; 127 136 document.getElementById('ma-start-time').value = sprintf(this.sprintfString, (start/1000/60/60), ((start%(1000*60*60))/1000/60), ((start%(1000*60))/1000), ((start%1000)/33.3)); 128 137 document.getElementById('ma-end-time').value = sprintf(this.sprintfString, (end/1000/60/60), ((end%(1000*60*60))/1000/60), ((end%(1000*60))/1000), ((end%1000)/33.3)); … … 132 141 document.getElementById('ma-old-end-time').value = end; 133 142 document.getElementById('ma-itemRef').value = item.getID(); 143 document.getElementById('ma-url').value = url; 134 144 135 145 this.showMAPanel(); … … 143 153 this.RelatedItems.reload(); 144 154 }, 155 145 156 146 157 showMAPanel: function() { … … 153 164 154 165 getPlayableURL: function() { 155 var url = this.getBestPlayableURL(this.item); 156 if(this.isMediaAnnotation) url = this.getBestPlayableURL(this.parentItem); 166 var url; 167 if(this.isMediaAnnotation) { 168 url = this.getUrlFromMA(this.item); 169 if(!url) url = this.getBestPlayableURL(this.parentItem); 170 } else url = this.getBestPlayableURL(this.item); 157 171 return url; 158 172 }, 159 173 174 getUrlFromMA: function(item) { 175 var objDOMParser = new DOMParser(); 176 var xmlDoc = objDOMParser.parseFromString(item.getNote(), "text/xml"); 177 try { 178 return xmlDoc.evaluate("//url", xmlDoc, null, XPathResult.ANY_TYPE, null).iterateNext().textContent; 179 } catch(e) {}; 180 return false; 181 }, 182 160 183 getBestPlayableURL: function(item) { 161 url = item.getLocalFileURL(); 162 if(!url) url = item.getField('url'); 184 var url = item.getField('url'); 163 185 if(item.isRegularItem()) { 164 var snapID = this.item.getBestSnapshot();186 var snapID = item.getBestSnapshot(); 165 187 if (snapID) { 166 188 url = Zotero.Items.get(snapID).getLocalFileURL(); 167 189 } 190 } else { 191 if(item.getLocalFileURL) url = item.getLocalFileURL(); 168 192 } 169 193 return url; … … 195 219 var newNote = "<mediannotate><description>" + document.getElementById('ma-description').value + "</description>\n" + 196 220 "<start>" + Math.round(oldStartValue) + "</start>\n" + 197 "<end>" + Math.round(oldEndValue) + "</end></mediannotate>"; 221 "<end>" + Math.round(oldEndValue) + "</end>" + 222 "<url><![CDATA["+document.getElementById('ma-url').value+"]]></url>" + 223 "</mediannotate>"; 198 224 try { 199 225 item.updateNote(newNote); … … 223 249 var newNote = "<mediannotate><description></description>\n" + 224 250 myApplet.wrappedJSObject.getTime() + 251 "<url><![CDATA["+this.current_url+"]]></url>" + 225 252 "</mediannotate>"; 226 253 this.item.updateNote(newNote); MediAnnotateXPI/trunk/srcExtension/chrome/vertov/content/overlay.xul
r197 r223 31 31 <textbox id="ma-description" rows="8" cols="25" flex="1" multiline="true" onchange="mediannotate.applyChange()"/> 32 32 <label id="ma-itemRef" hidden="true" /> 33 <label id="ma-url" hidden="true" /> 33 34 <label id="ma-RelatedItemsLabel" class="zotero-clicky" value="Related: [click here]" crop="end" onclick="mediannotate.RelatedItems.showPopup();"/> 34 35 <label id="ma-TagsLabel" class="zotero-clicky" value="Tags: [click here]" crop="end" onclick="mediannotate_tags.showPopup();"/> MediAnnotateXPI/trunk/srcExtension/install.rdf
r221 r223 5 5 <em:id>videannotate@htmlweb.com</em:id> 6 6 <em:name>Vertov</em:name> 7 <em:version>0.7. 2.2</em:version>7 <em:version>0.7.3</em:version> 8 8 <em:creator>Stuart Thiel Concordia University University</em:creator> 9 9 <em:developer>Stuart Thiel</em:developer> MediAnnotateXPI/trunk/update_mediannotate.rdf
r221 r223 8 8 <RDF:li> 9 9 <RDF:Description> 10 <version>0.7. 2.2</version>10 <version>0.7.3</version> 11 11 <targetApplication> 12 12 <RDF:Description>
