Merge branch '3.0'

This commit is contained in:
Simon Kornblith 2012-11-11 17:15:30 -05:00
commit bd367dcd85
5 changed files with 924 additions and 550 deletions

File diff suppressed because it is too large Load diff

View file

@ -385,63 +385,51 @@ Zotero.Server.Connector.SaveSnapshot.prototype = {
*/ */
"init":function(url, data, sendResponseCallback) { "init":function(url, data, sendResponseCallback) {
Zotero.Server.Connector.Data[data["url"]] = "<html>"+data["html"]+"</html>"; Zotero.Server.Connector.Data[data["url"]] = "<html>"+data["html"]+"</html>";
var browser = Zotero.Browser.createHiddenBrowser(); Zotero.HTTP.processDocuments(["zotero://connector/"+encodeURIComponent(data["url"])],
function(doc) {
var pageShowCalled = false; delete Zotero.Server.Connector.Data[data["url"]];
var cookieSandbox = new Zotero.CookieSandbox(browser, data["url"], data["cookie"], url.userAgent);
browser.addEventListener("pageshow", function() {
if(browser.contentDocument.location.href == "about:blank"
|| browser.contentDocument.readyState !== "complete") return;
if(pageShowCalled) return;
pageShowCalled = true;
delete Zotero.Server.Connector.Data[data["url"]];
// figure out where to save
var libraryID = null;
var collectionID = null;
var zp = Zotero.getActiveZoteroPane();
try {
var libraryID = zp.getSelectedLibraryID();
var collection = zp.getSelectedCollection();
} catch(e) {}
try {
var doc = browser.contentDocument;
// create new webpage item // figure out where to save
var item = new Zotero.Item("webpage"); var libraryID = null;
item.libraryID = libraryID; var collectionID = null;
item.setField("title", doc.title); var zp = Zotero.getActiveZoteroPane();
item.setField("url", data.url); try {
item.setField("accessDate", "CURRENT_TIMESTAMP"); var libraryID = zp.getSelectedLibraryID();
var itemID = item.save(); var collection = zp.getSelectedCollection();
if(collection) collection.addItem(itemID); } catch(e) {}
// determine whether snapshot can be saved try {
var filesEditable; // create new webpage item
if (libraryID) { var item = new Zotero.Item("webpage");
var group = Zotero.Groups.getByLibraryID(libraryID); item.libraryID = libraryID;
filesEditable = group.filesEditable; item.setField("title", doc.title);
} else { item.setField("url", data.url);
filesEditable = true; item.setField("accessDate", "CURRENT_TIMESTAMP");
var itemID = item.save();
if(collection) collection.addItem(itemID);
// determine whether snapshot can be saved
var filesEditable;
if (libraryID) {
var group = Zotero.Groups.getByLibraryID(libraryID);
filesEditable = group.filesEditable;
} else {
filesEditable = true;
}
// save snapshot
if(filesEditable) {
Zotero.Attachments.importFromDocument(doc, itemID);
}
sendResponseCallback(201);
} catch(e) {
sendResponseCallback(500);
throw e;
} }
},
// save snapshot null, null, false,
if(filesEditable) { new Zotero.CookieSandbox(null, data["url"], data["cookie"], url.userAgent));
Zotero.Attachments.importFromDocument(doc, itemID);
}
// remove browser
Zotero.Browser.deleteHiddenBrowser(browser);
sendResponseCallback(201);
} catch(e) {
sendResponseCallback(500);
throw e;
}
}, false);
browser.loadURI("zotero://connector/"+encodeURIComponent(data["url"]));
} }
} }

View file

@ -334,11 +334,13 @@ Zotero.Translate.ItemSaver.prototype = {
Zotero.debug("Translate: Not adding attachment: no URL specified", 2); Zotero.debug("Translate: Not adding attachment: no URL specified", 2);
} else { } else {
// Determine whether to save an attachment // Determine whether to save an attachment
if(attachment.document if(attachment.snapshot !== false) {
|| (attachment.mimeType && attachment.mimeType == "text/html")) { if(attachment.document
if(!Zotero.Prefs.get("automaticSnapshots")) return; || (attachment.mimeType && attachment.mimeType == "text/html")) {
} else { if(!Zotero.Prefs.get("automaticSnapshots")) return;
if(!Zotero.Prefs.get("downloadAssociatedFiles")) return; } else {
if(!Zotero.Prefs.get("downloadAssociatedFiles")) return;
}
} }
if(attachment.document) { if(attachment.document) {

View file

@ -963,7 +963,7 @@ function ChromeExtensionHandler() {
this.name = uri; this.name = uri;
this.URI = ioService.newURI(uri, "UTF-8", null); this.URI = ioService.newURI(uri, "UTF-8", null);
this.owner = secMan.getCodebasePrincipal(this.URI); this.owner = (secMan.getCodebasePrincipal || secMan.getSimpleCodebasePrincipal)(this.URI);
this._isPending = true; this._isPending = true;
var converter = Components.classes["@mozilla.org/intl/scriptableunicodeconverter"]. var converter = Components.classes["@mozilla.org/intl/scriptableunicodeconverter"].

View file

@ -1 +1 @@
2012-11-05 20:05:00 2012-11-06 16:30:00