www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | Submodules | README | LICENSE

commit a857cb3e5b10fc2e04a0d9d1cfb8feaf6f02d60d
parent 77ecfce0fe01349e7a9e6da6c7bd764f082fd9e7
Author: Simon Kornblith <simon@simonster.com>
Date:   Tue,  6 Jul 2010 18:17:45 +0000

closes #1691, Update Zotero.QuickCopy.getContentFromItems() for new citation API
caches updateCSL.xsl, since apparently doing an XHR to load it during drags was breaking things


Diffstat:
Mchrome/content/zotero/xpcom/style.js | 27+++++++++++++++------------
1 file changed, 15 insertions(+), 12 deletions(-)

diff --git a/chrome/content/zotero/xpcom/style.js b/chrome/content/zotero/xpcom/style.js @@ -32,6 +32,7 @@ Zotero.Styles = new function() { var _initialized = false; var _styles, _visibleStyles; + this.xsltProcessor = null; this.ios = Components.classes["@mozilla.org/network/io-service;1"]. getService(Components.interfaces.nsIIOService); @@ -393,17 +394,19 @@ function() { } if(this._version == "0.8") { - // get XSLT file - let xhr = Components.classes["@mozilla.org/xmlextras/xmlhttprequest;1"].createInstance(); - xhr.open("GET", "chrome://zotero/content/updateCSL.xsl", false); - xhr.overrideMimeType("text/xml"); - xhr.send(); - let updateXSLT = xhr.responseXML; - - // load XSLT file into XSLTProcessor - let xsltProcessor = Components.classes["@mozilla.org/document-transformer;1?type=xslt"] - .createInstance(Components.interfaces.nsIXSLTProcessor); - xsltProcessor.importStylesheet(updateXSLT); + // get XSLT processor from updateCSL.xsl file + if(!Zotero.Styles.xsltProcessor) { + let xhr = Components.classes["@mozilla.org/xmlextras/xmlhttprequest;1"].createInstance(); + xhr.open("GET", "chrome://zotero/content/updateCSL.xsl", false); + xhr.overrideMimeType("text/xml"); + xhr.send(); + let updateXSLT = xhr.responseXML; + + // load XSLT file into XSLTProcessor + Zotero.Styles.xsltProcessor = Components.classes["@mozilla.org/document-transformer;1?type=xslt"] + .createInstance(Components.interfaces.nsIXSLTProcessor); + Zotero.Styles.xsltProcessor.importStylesheet(updateXSLT); + } // read style file as DOM XML let styleDOMXML = Components.classes["@mozilla.org/xmlextras/domparser;1"] @@ -411,7 +414,7 @@ function() { .parseFromString(this.getXML(), "text/xml"); // apply XSLT and serialize output - let newDOMXML = xsltProcessor.transformToDocument(styleDOMXML); + let newDOMXML = Zotero.Styles.xsltProcessor.transformToDocument(styleDOMXML); var xml = Components.classes["@mozilla.org/xmlextras/xmlserializer;1"] .createInstance(Components.interfaces.nsIDOMSerializer).serializeToString(newDOMXML); } else {