Merge branch '3.0'

This commit is contained in:
Dan Stillman 2012-01-10 19:54:09 -05:00
commit 4767cad19e
61 changed files with 284 additions and 233 deletions

View file

@ -2404,7 +2404,19 @@
}
next[0].click();
this.ensureElementIsVisible(next[0]);
// DEBUG: next[0] is always equal to the target element,
// but for some reason it's necessary to scroll to the next
// element when moving forward for the target element to
// be fully in view
if (!back && next[0].parentNode.nextSibling) {
var visElem = next[0].parentNode.nextSibling;
}
else {
var visElem = next[0];
}
this.ensureElementIsVisible(visElem);
return true;
]]>
</body>

View file

@ -689,7 +689,19 @@
}
next[0].click();
this.ensureElementIsVisible(next[0]);
// DEBUG: next[0] is always equal to the target element,
// but for some reason it's necessary to scroll to the next
// element when moving forward for the target element to
// be fully in view
if (!back && next[0].parentNode.nextSibling) {
var visElem = next[0].parentNode.nextSibling;
}
else {
var visElem = next[0];
}
this.ensureElementIsVisible(visElem);
return true;
]]>
</body>

View file

@ -634,14 +634,7 @@ Zotero_Browser.Tab.prototype.clear = function() {
/*
* detects translators for this browser object
*/
Zotero_Browser.Tab.prototype.detectTranslators = function(rootDoc, doc) {
// if there's already a scrapable page in the browser window, and it's
// still there, ensure it is actually part of the page, then return
if(this.page.translators && this.page.translators.length && this.page.document.location) {
if(this._searchFrames(rootDoc, this.page.document)) return;
this.clear();
}
Zotero_Browser.Tab.prototype.detectTranslators = function(rootDoc, doc) {
if(doc instanceof HTMLDocument && doc.documentURI.substr(0, 6) != "about:") {
// get translators
var me = this;
@ -791,6 +784,17 @@ Zotero_Browser.Tab.prototype._selectItems = function(obj, itemList, callback) {
*/
Zotero_Browser.Tab.prototype._translatorsAvailable = function(translate, translators) {
if(translators && translators.length) {
// if there's already a scrapable page in the browser window, and it's
// still there, ensure it is actually part of the page, then return
if(this.page.translators && this.page.translators.length && this.page.document.location) {
if(this.page.document.defaultView && !this.page.document.defaultView.closed) {
// if it is still there, switch translation to take place on
if(!translators.length || this.page.translators[0].priority <= translators[0].priority) return;
} else {
this.clear();
}
}
this.page.translate = translate;
this.page.translators = translators;
this.page.document = translate.document;

View file

@ -245,53 +245,6 @@ var ZoteroOverlay = new function()
zoteroPane.height = 0;
document.getElementById('content').setAttribute('collapsed', false);
// turn off full window mode, if it was on
_setFullWindowMode(false);
// Return focus to the browser content pane
window.content.window.focus();
}
}
/**
* Hides or shows navigation toolbars
* @param set {Boolean} Whether navigation toolbars should be hidden or shown
*/
function _setFullWindowMode(set) {
// hide or show navigation toolbars
if(!getNavToolbox) return;
var toolbox = getNavToolbox();
if(set) {
// the below would be a good thing to do if the whole title bar (and not just the center
// part) got updated when it happened...
/*if(Zotero.isMac) {
titlebarcolorState = document.documentElement.getAttribute("activetitlebarcolor");
document.documentElement.removeAttribute("activetitlebarcolor");
}*/
if(document.title != "Zotero") {
titleState = document.title;
document.title = "Zotero";
}
if(!toolbarCollapseState) {
toolbarCollapseState = [node.collapsed for each (node in toolbox.childNodes)];
for(var i=0; i<toolbox.childNodes.length; i++) {
toolbox.childNodes[i].collapsed = true;
}
}
} else {
/*if(Zotero.isMac) {
document.documentElement.setAttribute("activetitlebarcolor", titlebarcolorState);
}*/
if(document.title == "Zotero") document.title = titleState;
if(toolbarCollapseState) {
for(var i=0; i<toolbox.childNodes.length; i++) {
toolbox.childNodes[i].collapsed = toolbarCollapseState[i];
}
toolbarCollapseState = undefined;
}
}
}

View file

@ -30,9 +30,45 @@ var _io = {};
var Zotero_Preferences = {
onUnload: function () {
Zotero_Preferences.Debug_Output.onUnload();
},
openHelpLink: function () {
var url = "http://www.zotero.org/support/preferences/";
var helpTopic = document.getElementsByTagName("prefwindow")[0].currentPane.helpTopic;
url += helpTopic;
// Non-instantApply prefwindows are usually modal, so we can't open in the topmost window,
// since it's probably behind the window
var instantApply = Zotero.Prefs.get("browser.preferences.instantApply", true);
if (instantApply) {
window.opener.ZoteroPane_Local.loadURI(url, { shiftKey: true, metaKey: true });
}
else {
if (Zotero.isStandalone) {
var io = Components.classes['@mozilla.org/network/io-service;1']
.getService(Components.interfaces.nsIIOService);
var uri = io.newURI(url, null, null);
var handler = Components.classes['@mozilla.org/uriloader/external-protocol-service;1']
.getService(Components.interfaces.nsIExternalProtocolService)
.getProtocolHandlerInfo('http');
handler.preferredAction = Components.interfaces.nsIHandlerInfo.useSystemDefault;
handler.launchWithURI(uri, null);
}
else {
var ww = Components.classes["@mozilla.org/embedcomp/window-watcher;1"]
.getService(Components.interfaces.nsIWindowWatcher);
var win = ww.openWindow(
window,
url,
"helpWindow",
"chrome=no,menubar=yes,location=yes,toolbar=yes,personalbar=yes,resizable=yes,scrollbars=yes,status=yes",
null
);
}
}
}
}

View file

@ -42,11 +42,13 @@ To add a new preference:
-->
<prefwindow id="zotero-prefs" title="&zotero.preferences.title;" onload="init()" onunload="Zotero_Preferences.onUnload()"
windowtype="zotero:pref" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
windowtype="zotero:pref" ondialoghelp="Zotero_Preferences.openHelpLink()"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<prefpane id="zotero-prefpane-general"
label="&zotero.preferences.prefpane.general;"
image="chrome://zotero/skin/prefs-general.png">
image="chrome://zotero/skin/prefs-general.png"
helpTopic="general">
<preferences id="zotero-prefpane-general-preferences">
<preference id="pref-fontSize" name="extensions.zotero.fontSize" type="string"/>
<preference id="pref-noteFontSize" name="extensions.zotero.note.fontSize" type="string"/>
@ -156,7 +158,8 @@ To add a new preference:
<prefpane id="zotero-prefpane-sync"
label="&zotero.preferences.prefpane.sync;"
onpaneload="document.getElementById('sync-password').value = Zotero.Sync.Server.password; document.getElementById('storage-password').value = Zotero.Sync.Storage.password;"
image="chrome://zotero/skin/prefs-sync.png">
image="chrome://zotero/skin/prefs-sync.png"
helpTopic="sync">
<preferences>
<preference id="pref-sync-autosync" name="extensions.zotero.sync.autoSync" type="bool"/>
<preference id="pref-sync-username" name="extensions.zotero.sync.server.username" type="string" instantApply="true"/>
@ -422,7 +425,8 @@ To add a new preference:
<prefpane id="zotero-prefpane-search"
label="&zotero.preferences.prefpane.search;"
onpaneload="updateIndexStats()"
image="chrome://zotero/skin/prefs-search.png">
image="chrome://zotero/skin/prefs-search.png"
helpTopic="search">
<preferences>
<preference id="pref-fulltext-textMaxLength" name="extensions.zotero.fulltext.textMaxLength" type="int"/>
<preference id="pref-fulltext-pdfmaxpages" name="extensions.zotero.fulltext.pdfMaxPages" type="int"/>
@ -511,7 +515,8 @@ To add a new preference:
<prefpane id="zotero-prefpane-export"
label="&zotero.preferences.prefpane.export;"
image="chrome://zotero/skin/prefs-export.png">
image="chrome://zotero/skin/prefs-export.png"
helpTopic="export">
<preferences>
<preference id="pref-quickCopy-setting" name="extensions.zotero.export.quickCopy.setting" type="string"/>
<preference id="pref-quickCopy-dragLimit" name="extensions.zotero.export.quickCopy.dragLimit" type="int"/>
@ -576,7 +581,8 @@ To add a new preference:
<prefpane id="zotero-prefpane-cite"
label="&zotero.preferences.prefpane.cite;"
image="chrome://zotero/skin/prefs-styles.png">
image="chrome://zotero/skin/prefs-styles.png"
helpTopic="cite">
<preferences id="zotero-preferences-cite">
<preference id="pref-cite-citePaperJournalArticleURL" name="extensions.zotero.export.citePaperJournalArticleURL" type="bool"/>
@ -635,7 +641,8 @@ To add a new preference:
<prefpane id="zotero-prefpane-keys"
label="&zotero.preferences.prefpane.keys;"
image="chrome://zotero/skin/prefs-keys.png">
image="chrome://zotero/skin/prefs-keys.png"
helpTopic="shortcut_keys">
<preferences>
<preference id="pref-keys-openZotero" name="extensions.zotero.keys.openZotero" type="string"/>
<preference id="pref-keys-toggleFullscreen" name="extensions.zotero.keys.toggleFullscreen" type="string"/>
@ -730,7 +737,8 @@ To add a new preference:
<prefpane id="zotero-prefpane-advanced"
label="&zotero.preferences.prefpane.advanced;"
image="chrome://zotero/skin/prefs-advanced.png">
image="chrome://zotero/skin/prefs-advanced.png"
helpTopic="advanced">
<preferences>
<preference id="pref-useDataDir" name="extensions.zotero.useDataDir" type="bool"/>
<preference id="pref-dataDir" name="extensions.zotero.dataDir" type="string"/>

View file

@ -78,7 +78,8 @@ To add a new preference:
</prefpane>
<prefpane id="zotero-prefpane-proxies"
label="&zotero.preferences.prefpane.proxies;"
image="chrome://zotero/skin/prefs-proxies.png" position="6">
image="chrome://zotero/skin/prefs-proxies.png" position="6"
helpTopic="proxies">
<description width="45em" style="font-size: 12px">
&zotero.preferences.proxies.desc_before_link;
<label class="zotero-text-link" href="http://www.zotero.org/support/proxies"

View file

@ -1963,7 +1963,7 @@ CSL.DateParser = function () {
};
CSL.Engine = function (sys, style, lang, forceLang) {
var attrs, langspec, localexml, locale;
this.processor_version = "1.0.252";
this.processor_version = "1.0.255";
this.csl_version = "1.0";
this.sys = sys;
this.sys.xml = new CSL.System.Xml.Parsing();
@ -3586,6 +3586,7 @@ CSL.getCitationCluster = function (inputList, citationID) {
params.have_collapsed = this.tmp.have_collapsed;
myparams.push(params);
}
this.tmp.has_purged_parallel = false;
this.parallel.PruneOutputQueue(this);
empties = 0;
myblobs = this.output.queue.slice();
@ -3642,14 +3643,18 @@ CSL.getCitationCluster = function (inputList, citationID) {
return composite;
}
if ("object" === typeof composite && composite.length === 0 && !item["suppress-author"]) {
composite.push("[CSL STYLE ERROR: reference with no printed form.]");
if (this.tmp.has_purged_parallel) {
composite.push("");
} else {
composite.push("[CSL STYLE ERROR: reference with no printed form.]");
}
}
if (objects.length && "string" === typeof composite[0]) {
composite.reverse();
var tmpstr = composite.pop();
if (tmpstr && tmpstr.slice(0, 1) === ",") {
objects.push(tmpstr);
} else {
} else if (tmpstr) {
objects.push(txt_esc(this.tmp.splice_delimiter) + tmpstr);
}
} else {
@ -6328,7 +6333,7 @@ CSL.NameOutput.prototype.fixupInstitution = function (name, varname, listpos) {
if (this.state.sys.getAbbreviation) {
var jurisdiction = this.Item.jurisdiction;
for (var j = 0, jlen = long_form.length; j < jlen; j += 1) {
var jurisdiction = this.state.transform.loadAbbreviation(jurisdiction, "institution-part", long_form[j]);
jurisdiction = this.state.transform.loadAbbreviation(jurisdiction, "institution-part", long_form[j]);
if (this.state.transform.abbrevs[jurisdiction]["institution-part"][long_form[j]]) {
short_form[j] = this.state.transform.abbrevs[jurisdiction]["institution-part"][long_form[j]];
}
@ -6362,11 +6367,22 @@ CSL.NameOutput.prototype._splitInstitution = function (value, v, i) {
var jurisdiction = this.Item.jurisdiction;
for (var j = splitInstitution.length; j > 0; j += -1) {
var str = splitInstitution.slice(0, j).join("|");
var jurisdiction = this.state.transform.loadAbbreviation(jurisdiction, "institution-entire", str);
jurisdiction = this.state.transform.loadAbbreviation(jurisdiction, "institution-entire", str);
if (this.state.transform.abbrevs[jurisdiction]["institution-entire"][str]) {
var splitLst = this.state.transform.abbrevs[jurisdiction]["institution-entire"][str];
var splitLst = splitLst.replace(/\s*\|\s*/g, "|");
var splitLst = splitLst.split("|");
var splitSplitLst = splitLst.split(/>>[0-9]{4}>>/);
var m = splitLst.match(/>>([0-9]{4})>>/);
splitLst = splitSplitLst.pop();
if (splitSplitLst.length > 0 && this.Item.issued && this.Item.issued.year) {
for (var k=m.length - 1; k > 0; k += -1) {
if (parseInt(this.Item.issued.year, 10) >= parseInt(m[k], 10)) {
break;
}
splitLst = splitSplitLst.pop();
}
}
splitLst = splitLst.replace(/\s*\|\s*/g, "|");
splitLst = splitLst.split("|");
splitInstitution = splitLst.concat(splitInstitution.slice(j));
}
}
@ -8315,11 +8331,26 @@ CSL.Transform = function (state) {
return jurisdiction;
}
if (state.sys.getAbbreviation) {
if (!this.abbrevs[jurisdiction]) {
this.abbrevs[jurisdiction] = new CSL.AbbreviationSegments();
var tryList = ['default'];
if (jurisdiction !== 'default') {
var workLst = jurisdiction.split(/\s*;\s*/);
for (var i=0, ilen=workLst.length; i < ilen; i += 1) {
tryList.push(workLst.slice(0,i+1).join(';'));
}
}
if (!this.abbrevs[jurisdiction][category][orig]) {
state.sys.getAbbreviation(state.opt.styleID, this.abbrevs, jurisdiction, category, orig);
for (var i=tryList.length - 1; i > -1; i += -1) {
if (!this.abbrevs[tryList[i]]) {
this.abbrevs[tryList[i]] = new CSL.AbbreviationSegments();
}
if (!this.abbrevs[tryList[i]][category][orig]) {
state.sys.getAbbreviation(state.opt.styleID, this.abbrevs, tryList[i], category, orig);
}
if (this.abbrevs[tryList[i]][category][orig]) {
if (i < tryList.length) {
this.abbrevs[jurisdiction][category][orig] = this.abbrevs[tryList[i]][category][orig];
}
break;
}
}
}
return jurisdiction;
@ -8828,6 +8859,7 @@ CSL.Parallel.prototype.purgeVariableBlobs = function (cite, varnames) {
for (ppos = llen; ppos > -1; ppos += -1) {
b = cite[varname].blobs[ppos];
b[0].blobs = b[0].blobs.slice(0, b[1]).concat(b[0].blobs.slice((b[1] + 1)));
this.state.tmp.has_purged_parallel = true;
if (b[0] && b[0].strings && "string" == typeof b[0].strings.oops
&& b[0].parent && b[0].parent) {
b[0].parent.parent.strings.delimiter = b[0].strings.oops;

View file

@ -1183,7 +1183,7 @@ Zotero.Collection.prototype.addLinkedCollection = function (collection) {
// If both group libraries, store relation with source group.
// Otherwise, store with personal library.
var libraryID = (this.libraryID && item.libraryID) ? this.libraryID : null;
var libraryID = (this.libraryID && collection.libraryID) ? this.libraryID : null;
Zotero.Relations.add(libraryID, url1, predicate, url2);
}

View file

@ -3898,9 +3898,9 @@ Zotero.Item.prototype.diff = function (item, includeMatches, ignoreFields) {
var thisNote = thisData.note;
var otherNote = otherData.note;
// Stop Windows newlines from triggering erroneous conflicts
thisNote = thisNote.replace(/\r\n/g, "\n");
otherNote = otherNote.replace(/\r\n/g, "\n");
// Stop non-Unix newlines from triggering erroneous conflicts
thisNote = thisNote.replace(/\r\n?/g, "\n");
otherNote = otherNote.replace(/\r\n?/g, "\n");
// Normalize multiple spaces (due to differences TinyMCE, Z.U.text2html(),
// and the server)

View file

@ -351,7 +351,7 @@ Zotero.File = new function(){
var opWord = "updated";
}
if (e.name == 'NS_ERROR_FILE_ACCESS_DENIED'
if (e.name == 'NS_ERROR_FILE_ACCESS_DENIED' || e.name == 'NS_ERROR_FILE_IS_LOCKED'
// Shows up on some Windows systems
|| e.name == 'NS_ERROR_FAILURE') {
Zotero.debug(e);

View file

@ -43,6 +43,7 @@ Zotero.Integration = new function() {
// these need to be global because of GC
var _updateTimer;
var _carbon, ProcessSerialNumber, SetFrontProcessWithOptions;
var _inProgress = false;
this.currentWindow = false;
@ -276,24 +277,27 @@ Zotero.Integration = new function() {
};
if(Zotero.isFx4 && win) {
const carbon = ctypes.open("/System/Library/Frameworks/Carbon.framework/Carbon");
/*
* struct ProcessSerialNumber {
* unsigned long highLongOfPSN;
* unsigned long lowLongOfPSN;
* };
*/
const ProcessSerialNumber = new ctypes.StructType("ProcessSerialNumber",
[{"highLongOfPSN":ctypes.uint32_t}, {"lowLongOfPSN":ctypes.uint32_t}]);
/*
* OSStatus SetFrontProcessWithOptions (
* const ProcessSerialNumber *inProcess,
* OptionBits inOptions
* );
*/
const SetFrontProcessWithOptions = carbon.declare("SetFrontProcessWithOptions",
ctypes.default_abi, ctypes.int32_t, ProcessSerialNumber.ptr, ctypes.uint32_t);
if(!_carbon) {
_carbon = ctypes.open("/System/Library/Frameworks/Carbon.framework/Carbon");
/*
* struct ProcessSerialNumber {
* unsigned long highLongOfPSN;
* unsigned long lowLongOfPSN;
* };
*/
ProcessSerialNumber = new ctypes.StructType("ProcessSerialNumber",
[{"highLongOfPSN":ctypes.uint32_t}, {"lowLongOfPSN":ctypes.uint32_t}]);
/*
* OSStatus SetFrontProcessWithOptions (
* const ProcessSerialNumber *inProcess,
* OptionBits inOptions
* );
*/
SetFrontProcessWithOptions = _carbon.declare("SetFrontProcessWithOptions",
ctypes.default_abi, ctypes.int32_t, ProcessSerialNumber.ptr,
ctypes.uint32_t);
}
var psn = new ProcessSerialNumber();
psn.highLongOfPSN = 0;
@ -304,7 +308,6 @@ Zotero.Integration = new function() {
psn.address(),
1 // kSetFrontProcessFrontWindowOnly = (1 << 0)
);
carbon.close();
}, false);
} else {
if(Zotero.oscpu == "PPC Mac OS X 10.4" || Zotero.oscpu == "Intel Mac OS X 10.4"
@ -322,8 +325,6 @@ Zotero.Integration = new function() {
* Show appropriate dialogs for an integration error
*/
this.handleError = function(e, document) {
this.complete(document);
if(!(e instanceof Zotero.Integration.UserCancelledException)) {
try {
var displayError = null;
@ -378,6 +379,8 @@ Zotero.Integration = new function() {
Zotero.logError(e);
}
}
this.complete(document);
}
/**
@ -388,13 +391,21 @@ Zotero.Integration = new function() {
try {
doc.cleanup();
doc.activate();
// Call complete function if one exists
if(doc.wrappedJSObject && doc.wrappedJSObject.complete) {
doc.wrappedJSObject.complete();
}
} catch(e) {
Zotero.logError(e);
}
}
if(Zotero.Integration.currentWindow && !Zotero.Integration.currentWindow.closed) {
Zotero.Integration.currentWindow.close();
var oldWindow = Zotero.Integration.currentWindow;
Zotero.setTimeout(function() {
oldWindow.close();
}, 100, true);
}
_inProgress = Zotero.Integration.currentWindow = false;
}
@ -421,6 +432,52 @@ Zotero.Integration = new function() {
} catch(e) {}
}
}
/**
* Displays a dialog in a modal-like fashion without hanging the thread
* @param {String} url The chrome:// URI of the window
* @param {String} [options] Options to pass to the window
* @param {String} [io] Data to pass to the window
* @param {Function|Boolean} [async] Function to call when window is closed. If not specified,
* function waits to return until the window has been closed. If "true", the function returns
* immediately.
*/
this.displayDialog = function(doc, url, options, io, async) {
doc.cleanup();
var allOptions = 'chrome,centerscreen';
// without this, Firefox gets raised with our windows under Compiz
if(Zotero.isLinux) allOptions += ',dialog=no';
if(options) allOptions += ','+options;
if(!async) allOptions += ',modal=yes';
var window = Components.classes["@mozilla.org/embedcomp/window-watcher;1"]
.getService(Components.interfaces.nsIWindowWatcher)
.openWindow(null, url, '', allOptions, (io ? io : null));
Zotero.Integration.currentWindow = window;
Zotero.Integration.activate(window);
var listener = function() {
if(window.location.toString() === "about:blank") return;
if(window.newWindow) {
window = window.newWindow;
Zotero.Integration.currentWindow = window;
window.addEventListener("unload", listener, false);
return;
}
Zotero.Integration.currentWindow = false;
if(async instanceof Function) {
try {
async();
} catch(e) {
Zotero.Integration.handleError(e, doc);
}
}
}
window.addEventListener("unload", listener, false);
}
}
/**
@ -526,7 +583,7 @@ Zotero.Integration.Document.prototype._getSession = function(require, dontRunSet
return;
}
this._session.setDocPrefs(this._app.primaryFieldType, this._app.secondaryFieldType, function(status) {
this._session.setDocPrefs(this._doc, this._app.primaryFieldType, this._app.secondaryFieldType, function(status) {
if(status === false) {
throw new Zotero.Integration.UserCancelledException();
}
@ -571,7 +628,7 @@ Zotero.Integration.Document.prototype._getSession = function(require, dontRunSet
} catch(e) {
// make sure style is defined
if(e instanceof Zotero.Integration.DisplayException && e.name === "invalidStyle") {
this._session.setDocPrefs(this._app.primaryFieldType, this._app.secondaryFieldType, function() {
this._session.setDocPrefs(this._doc, this._app.primaryFieldType, this._app.secondaryFieldType, function() {
me._doc.setDocumentData(me._session.data.serializeXML());
me._session.reload = true;
callback(true);
@ -666,7 +723,7 @@ Zotero.Integration.Document.prototype.editBibliography = function(callback) {
}
fieldGetter.updateSession(function() {
me._session.editBibliography(function() {
me._session.editBibliography(this._doc, function() {
me._doc.activate();
fieldGetter.updateDocument(false, true, false, function() {
Zotero.Integration.complete(me._doc);
@ -1078,7 +1135,7 @@ Zotero.Integration.Fields.prototype._processFields = function(fields, callback,
} else { // Yes
// Display reselect item dialog
var me = this;
this._session.reselectItem(e, function() {
this._session.reselectItem(this._doc, e, function() {
// Now try again
me._doc.activate();
me._processFields(fields, callback, i);
@ -1324,11 +1381,14 @@ Zotero.Integration.Fields.prototype.addEditCitation = function(field, callback)
var io = new Zotero.Integration.CitationEditInterface(citation, field, this, session, newField, callback);
if(Zotero.Prefs.get("integration.useClassicAddCitationDialog")) {
session.displayDialog('chrome://zotero/content/integration/addCitationDialog.xul', 'alwaysRaised,resizable', io, true);
Zotero.Integration.displayDialog(this._doc,
'chrome://zotero/content/integration/addCitationDialog.xul', 'alwaysRaised,resizable',
io, true);
} else {
var mode = (!Zotero.isMac && Zotero.Prefs.get('integration.keepAddCitationDialogRaised')
? 'popup' : 'alwaysRaised')
session.displayDialog('chrome://zotero/content/integration/quickFormat.xul', mode, io, true);
Zotero.Integration.displayDialog(this._doc,
'chrome://zotero/content/integration/quickFormat.xul', mode, io, true);
}
}
@ -1563,57 +1623,11 @@ Zotero.Integration.Session.prototype.setData = function(data) {
return false;
}
/**
* Displays a dialog in a modal-like fashion without hanging the thread
* @param {String} url The chrome:// URI of the window
* @param {String} [options] Options to pass to the window
* @param {String} [io] Data to pass to the window
* @param {Function|Boolean} [async] Function to call when window is closed. If not specified,
* function waits to return until the window has been closed. If "true", the function returns
* immediately.
*/
Zotero.Integration.Session.prototype.displayDialog = function(url, options, io, async) {
if(this.doc) this.doc.cleanup();
var allOptions = 'chrome,centerscreen';
// without this, Firefox gets raised with our windows under Compiz
if(Zotero.isLinux) allOptions += ',dialog=no';
if(options) allOptions += ','+options;
if(!async) allOptions += ',modal=yes';
var window = Components.classes["@mozilla.org/embedcomp/window-watcher;1"]
.getService(Components.interfaces.nsIWindowWatcher)
.openWindow(null, url, '', allOptions, (io ? io : null));
Zotero.Integration.currentWindow = window;
Zotero.Integration.activate(window);
var listener = function() {
if(window.location.toString() === "about:blank") return;
if(window.newWindow) {
window = window.newWindow;
Zotero.Integration.currentWindow = window;
window.addEventListener("unload", listener, false);
return;
}
Zotero.Integration.currentWindow = false;
if(async instanceof Function) {
try {
async();
} catch(e) {
Zotero.Integration.handleError(e, this.doc);
}
}
}
window.addEventListener("unload", listener, false);
}
/**
* Displays a dialog to set document preferences
* @return {oldData|null|false} Old document data, if there was any; null, if there wasn't; false if cancelled
*/
Zotero.Integration.Session.prototype.setDocPrefs = function(primaryFieldType, secondaryFieldType, callback) {
Zotero.Integration.Session.prototype.setDocPrefs = function(doc, primaryFieldType, secondaryFieldType, callback) {
var io = new function() {
this.wrappedJSObject = this;
};
@ -1629,7 +1643,8 @@ Zotero.Integration.Session.prototype.setDocPrefs = function(primaryFieldType, se
}
var me = this;
this.displayDialog('chrome://zotero/content/integration/integrationDocPrefs.xul', '', io, function() {
Zotero.Integration.displayDialog(doc,
'chrome://zotero/content/integration/integrationDocPrefs.xul', '', io, function() {
if(!io.style) {
callback(false);
return;
@ -1660,7 +1675,7 @@ Zotero.Integration.Session.prototype.setDocPrefs = function(primaryFieldType, se
* Reselects an item to replace a deleted item
* @param exception {Zotero.Integration.MissingItemException}
*/
Zotero.Integration.Session.prototype.reselectItem = function(exception, callback) {
Zotero.Integration.Session.prototype.reselectItem = function(doc, exception, callback) {
var io = new function() {
this.wrappedJSObject = this;
},
@ -1668,7 +1683,8 @@ Zotero.Integration.Session.prototype.reselectItem = function(exception, callback
io.addBorder = Zotero.isWin;
io.singleSelection = true;
this.displayDialog('chrome://zotero/content/selectItemsDialog.xul', 'resizable', io, function() {
Zotero.Integration.displayDialog(doc, 'chrome://zotero/content/selectItemsDialog.xul',
'resizable', io, function() {
if(io.dataOut && io.dataOut.length) {
var itemID = io.dataOut[0];
@ -2383,13 +2399,15 @@ Zotero.Integration.Session.prototype.previewCitation = function(citation) {
/**
* Edits integration bibliography
*/
Zotero.Integration.Session.prototype.editBibliography = function(callback) {
Zotero.Integration.Session.prototype.editBibliography = function(doc, callback) {
var bibliographyEditor = new Zotero.Integration.Session.BibliographyEditInterface(this);
var io = new function() { this.wrappedJSObject = bibliographyEditor; }
this.bibliographyDataHasChanged = this.bibliographyHasChanged = true;
this.displayDialog('chrome://zotero/content/integration/editBibliographyDialog.xul', 'resizable', io, callback);
Zotero.Integration.displayDialog(doc,
'chrome://zotero/content/integration/editBibliographyDialog.xul', 'resizable', io,
callback);
}
/**
@ -2716,8 +2734,4 @@ Zotero.Integration.URIMap.prototype.getZoteroItemForURIs = function(uris) {
}
return [zoteroItem, needUpdate];
}
/**
*
*/
}

View file

@ -272,9 +272,13 @@ Zotero.IPC = new function() {
instancePipeOpen = true;
}
var wroteToPipe = Zotero.IPC.safePipeWrite(pipe, msg+"\n");
// Try to write to the pipe once a ms for 100 ms
var timeout = Date.now()+100, wroteToPipe;
do {
wroteToPipe = Zotero.IPC.safePipeWrite(pipe, msg+"\n");
} while(Date.now() < timeout && !wroteToPipe);
success = success || wroteToPipe;
defunct = !wroteToPipe
defunct = !wroteToPipe;
}
if(defunct) {

View file

@ -3065,6 +3065,10 @@ Zotero.Schema = new function(){
Zotero.wait();
}
// TODO
//
// Replace customBaseFieldMappings to fix FK fields/customField -> customFields->customFieldID
_updateDBVersion('userdata', toVersion);
Zotero.DB.commitTransaction();

View file

@ -389,6 +389,11 @@ Zotero.Translate.ItemSaver.prototype = {
for(var i=0; i<item.creators.length; i++) {
var creator = item.creators[i];
if(!creator.firstName && !creator.lastName) {
Zotero.debug("Translate: Silently dropping empty creator");
continue;
}
// try to assign correct creator type
var creatorTypeID = 1;
if(creator.creatorType) {

View file

@ -1082,7 +1082,7 @@ Zotero.Utilities = {
var typeID = Zotero.ItemTypes.getID(item.itemType);
if(!typeID) {
Zotero.debug("Translate: Invalid itemType "+item.itemType+"; saving as webpage");
Zotero.debug("itemToServerJSON: Invalid itemType "+item.itemType+"; using webpage");
item.itemType = "webpage";
typeID = Zotero.ItemTypes.getID(item.itemType);
}
@ -1103,6 +1103,11 @@ Zotero.Utilities = {
for(var j=0; j<n; j++) {
var creator = val[j];
if(!creator.firstName && !creator.lastName) {
Zotero.debug("itemToServerJSON: Silently dropping empty creator");
continue;
}
// Single-field mode
if (!creator.firstName || (creator.fieldMode && creator.fieldMode == 1)) {
var newCreator = {
@ -1122,7 +1127,7 @@ Zotero.Utilities = {
if(Zotero.CreatorTypes.getID(creator.creatorType)) {
newCreator.creatorType = creator.creatorType;
} else {
Zotero.debug("Translate: Invalid creator type "+creator.creatorType+"; falling back to author");
Zotero.debug("itemToServerJSON: Invalid creator type "+creator.creatorType+"; falling back to author");
}
}
if(!newCreator.creatorType) newCreator.creatorType = "author";
@ -1141,7 +1146,7 @@ Zotero.Utilities = {
} else if(tag.name) {
tag = tag.name;
} else {
Zotero.debug("Translate: Discarded invalid tag");
Zotero.debug("itemToServerJSON: Discarded invalid tag");
continue;
}
}
@ -1155,7 +1160,7 @@ Zotero.Utilities = {
var note = val[j];
if(typeof note === "object") {
if(!note.note) {
Zotero.debug("Translate: Discarded invalid note");
Zotero.debug("itemToServerJSON: Discarded invalid note");
continue;
}
note = note.note;
@ -1182,10 +1187,10 @@ Zotero.Utilities = {
if(Zotero.ItemFields.isValidForType(fieldID, typeID)) {
newItem[field] = val;
} else {
Zotero.debug("Translate: Discarded field "+field+": field not valid for type "+item.itemType, 3);
Zotero.debug("itemToServerJSON: Discarded field "+field+": field not valid for type "+item.itemType, 3);
}
} else {
Zotero.debug("Translate: Discarded unknown field "+field, 3);
Zotero.debug("itemToServerJSON: Discarded unknown field "+field, 3);
}
}

View file

@ -1952,19 +1952,20 @@ Zotero.Prefs = new function(){
try {
if (global) {
var service = Components.classes["@mozilla.org/preferences-service;1"]
.getService(Components.interfaces.nsIPrefService);
.getService(Components.interfaces.nsIPrefService);
var branch = service.getBranch("");
}
else {
var service = this.prefBranch;
var branch = this.prefBranch;
}
switch (this.prefBranch.getPrefType(pref)){
case this.prefBranch.PREF_BOOL:
return this.prefBranch.getBoolPref(pref);
case this.prefBranch.PREF_STRING:
return this.prefBranch.getCharPref(pref);
case this.prefBranch.PREF_INT:
return this.prefBranch.getIntPref(pref);
switch (branch.getPrefType(pref)){
case branch.PREF_BOOL:
return branch.getBoolPref(pref);
case branch.PREF_STRING:
return branch.getCharPref(pref);
case branch.PREF_INT:
return branch.getIntPref(pref);
}
}
catch (e){

View file

@ -167,7 +167,6 @@
<!ENTITY zotero.preferences.charset.displayExportOption "Display character encoding option on export">
<!ENTITY zotero.preferences.dataDir "Stoorligging">
<!ENTITY zotero.preferences.dataDir.useProfile "Gebruik Firerfox-profielgids">
<!ENTITY zotero.preferences.dataDir.custom "Doelmaak:">
<!ENTITY zotero.preferences.dataDir.choose "Kies...">
<!ENTITY zotero.preferences.dataDir.reveal "Show Data Directory">

View file

@ -167,7 +167,6 @@
<!ENTITY zotero.preferences.charset.displayExportOption "اظهار خطائص ترميز الحروف عند التصدير">
<!ENTITY zotero.preferences.dataDir "مكان تخزين البيانات">
<!ENTITY zotero.preferences.dataDir.useProfile "استخدم مجلد الملف الشخصي لفايرفوكس">
<!ENTITY zotero.preferences.dataDir.custom "تخصيص:">
<!ENTITY zotero.preferences.dataDir.choose "اختر...">
<!ENTITY zotero.preferences.dataDir.reveal "عرض مجلد البيانات">

View file

@ -167,7 +167,6 @@
<!ENTITY zotero.preferences.charset.displayExportOption "Показва опция за символният код при експорт.">
<!ENTITY zotero.preferences.dataDir "Място за съхранение">
<!ENTITY zotero.preferences.dataDir.useProfile "Използва папката с профила на Firefox">
<!ENTITY zotero.preferences.dataDir.custom "Потребителски">
<!ENTITY zotero.preferences.dataDir.choose "Избор...">
<!ENTITY zotero.preferences.dataDir.reveal "Показва папката с дани">

View file

@ -167,7 +167,6 @@
<!ENTITY zotero.preferences.charset.displayExportOption "Display character encoding option on export">
<!ENTITY zotero.preferences.dataDir "Lloc d&apos;emmagatzematge">
<!ENTITY zotero.preferences.dataDir.useProfile "Fer servir el directori del perfil del Firefox">
<!ENTITY zotero.preferences.dataDir.custom "Personalitzat:">
<!ENTITY zotero.preferences.dataDir.choose "Escull...">
<!ENTITY zotero.preferences.dataDir.reveal "Mostra el directori de dades">

View file

@ -167,7 +167,6 @@
<!ENTITY zotero.preferences.charset.displayExportOption "Zobrazit při exportu možnost zvolit kódování">
<!ENTITY zotero.preferences.dataDir "Umístění Datového adresáře">
<!ENTITY zotero.preferences.dataDir.useProfile "Použít adresář profilu Firefoxu">
<!ENTITY zotero.preferences.dataDir.custom "Vlastní:">
<!ENTITY zotero.preferences.dataDir.choose "Vybrat...">
<!ENTITY zotero.preferences.dataDir.reveal "Ukázat Datový adresář">

View file

@ -167,7 +167,6 @@
<!ENTITY zotero.preferences.charset.displayExportOption "Display character encoding option on export">
<!ENTITY zotero.preferences.dataDir "Storage Location">
<!ENTITY zotero.preferences.dataDir.useProfile "Use Firefox profile directory">
<!ENTITY zotero.preferences.dataDir.custom "Custom:">
<!ENTITY zotero.preferences.dataDir.choose "Choose...">
<!ENTITY zotero.preferences.dataDir.reveal "Show Data Directory">

View file

@ -257,7 +257,7 @@ itemFields.rights=Rettigheder
itemFields.series=Tidsskrift
itemFields.volume=Årgang
itemFields.issue=Bind
itemFields.edition=Udgavve
itemFields.edition=Udgave
itemFields.place=Sted
itemFields.publisher=Udgiver
itemFields.pages=Sider

View file

@ -167,7 +167,6 @@
<!ENTITY zotero.preferences.charset.displayExportOption "Option für Zeichenkodierung beim Export anzeigen">
<!ENTITY zotero.preferences.dataDir "Speicherort">
<!ENTITY zotero.preferences.dataDir.useProfile "Verwende den Firefox-Profil-Ordner">
<!ENTITY zotero.preferences.dataDir.custom "Eigene:">
<!ENTITY zotero.preferences.dataDir.choose "Auswählen...">
<!ENTITY zotero.preferences.dataDir.reveal "Datenverzeichnis anzeigen">

View file

@ -167,7 +167,6 @@
<!ENTITY zotero.preferences.charset.displayExportOption "Display character encoding option on export">
<!ENTITY zotero.preferences.dataDir "Storage Location">
<!ENTITY zotero.preferences.dataDir.useProfile "Use Firefox profile directory">
<!ENTITY zotero.preferences.dataDir.custom "Custom:">
<!ENTITY zotero.preferences.dataDir.choose "Choose...">
<!ENTITY zotero.preferences.dataDir.reveal "Show Data Directory">

View file

@ -171,7 +171,7 @@
<!ENTITY zotero.preferences.charset.displayExportOption "Display character encoding option on export">
<!ENTITY zotero.preferences.dataDir "Data Directory Location">
<!ENTITY zotero.preferences.dataDir.useProfile "Use Firefox profile directory">
<!ENTITY zotero.preferences.dataDir.useProfile "Use profile directory">
<!ENTITY zotero.preferences.dataDir.custom "Custom:">
<!ENTITY zotero.preferences.dataDir.choose "Choose...">
<!ENTITY zotero.preferences.dataDir.reveal "Show Data Directory">

View file

@ -167,7 +167,6 @@
<!ENTITY zotero.preferences.charset.displayExportOption "Display character encoding option on export">
<!ENTITY zotero.preferences.dataDir "Lugar de almacenamiento">
<!ENTITY zotero.preferences.dataDir.useProfile "Usar el directorio del perfil de usuario en Firefox">
<!ENTITY zotero.preferences.dataDir.custom "Especial:">
<!ENTITY zotero.preferences.dataDir.choose "Elegir...">
<!ENTITY zotero.preferences.dataDir.reveal "Mostrar el directorio de datos">

View file

@ -167,7 +167,6 @@
<!ENTITY zotero.preferences.charset.displayExportOption "Näidata ekspordi puhul tähtede kodeeringut">
<!ENTITY zotero.preferences.dataDir "Lao asukoht">
<!ENTITY zotero.preferences.dataDir.useProfile "Kasutada Firefoxi profiili kataloogi">
<!ENTITY zotero.preferences.dataDir.custom "Oma valik:">
<!ENTITY zotero.preferences.dataDir.choose "Valida...">
<!ENTITY zotero.preferences.dataDir.reveal "Andmete kataloogi näitamine">

View file

@ -167,7 +167,6 @@
<!ENTITY zotero.preferences.charset.displayExportOption "Display character encoding option on export">
<!ENTITY zotero.preferences.dataDir "Data Directory Location">
<!ENTITY zotero.preferences.dataDir.useProfile "Use Firefox profile directory">
<!ENTITY zotero.preferences.dataDir.custom "Custom:">
<!ENTITY zotero.preferences.dataDir.choose "Choose...">
<!ENTITY zotero.preferences.dataDir.reveal "Show Data Directory">

View file

@ -167,7 +167,6 @@
<!ENTITY zotero.preferences.charset.displayExportOption "نمایش گزینه کدبندی نویسه‌ها در موقع صدور">
<!ENTITY zotero.preferences.dataDir "محل ذخیره اطلاعات">
<!ENTITY zotero.preferences.dataDir.useProfile "استفاده از پوشه پروفایل فایرفاکس">
<!ENTITY zotero.preferences.dataDir.custom "محل دلخواه:">
<!ENTITY zotero.preferences.dataDir.choose "انتخاب...">
<!ENTITY zotero.preferences.dataDir.reveal "نمایش محل ذخیره اطلاعات">

View file

@ -167,7 +167,6 @@
<!ENTITY zotero.preferences.charset.displayExportOption "Display character encoding option on export">
<!ENTITY zotero.preferences.dataDir "Storage Location">
<!ENTITY zotero.preferences.dataDir.useProfile "Use Firefox profile directory">
<!ENTITY zotero.preferences.dataDir.custom "Custom:">
<!ENTITY zotero.preferences.dataDir.choose "Choose...">
<!ENTITY zotero.preferences.dataDir.reveal "Show Data Directory">

View file

@ -167,7 +167,6 @@
<!ENTITY zotero.preferences.charset.displayExportOption "Afficher l'option de codage de caractères à l'exportation">
<!ENTITY zotero.preferences.dataDir "Emplacement du répertoire contenant les données">
<!ENTITY zotero.preferences.dataDir.useProfile "Utiliser le répertoire de profil de Firefox">
<!ENTITY zotero.preferences.dataDir.custom "Personnalisé :">
<!ENTITY zotero.preferences.dataDir.choose "Sélectionner…">
<!ENTITY zotero.preferences.dataDir.reveal "Afficher le répertoire contenant les données">

View file

@ -167,7 +167,6 @@
<!ENTITY zotero.preferences.charset.displayExportOption "Amosar opción de codificación de caracteres na exportación">
<!ENTITY zotero.preferences.dataDir "Localización de almacenamento">
<!ENTITY zotero.preferences.dataDir.useProfile "Usar o directorio de perfís de Firefox">
<!ENTITY zotero.preferences.dataDir.custom "Personalizado:">
<!ENTITY zotero.preferences.dataDir.choose "Escoller...">
<!ENTITY zotero.preferences.dataDir.reveal "Mostrar Directorio de Datos">

View file

@ -167,7 +167,6 @@
<!ENTITY zotero.preferences.charset.displayExportOption "Display character encoding option on export">
<!ENTITY zotero.preferences.dataDir "מיקום אחסון">
<!ENTITY zotero.preferences.dataDir.useProfile "Use Firefox profile directory">
<!ENTITY zotero.preferences.dataDir.custom "מותאם אישית:">
<!ENTITY zotero.preferences.dataDir.choose "בחר...">
<!ENTITY zotero.preferences.dataDir.reveal "Show Data Directory">

View file

@ -167,7 +167,6 @@
<!ENTITY zotero.preferences.charset.displayExportOption "Display character encoding option on export">
<!ENTITY zotero.preferences.dataDir "Storage Location">
<!ENTITY zotero.preferences.dataDir.useProfile "Use Firefox profile directory">
<!ENTITY zotero.preferences.dataDir.custom "Custom:">
<!ENTITY zotero.preferences.dataDir.choose "Choose...">
<!ENTITY zotero.preferences.dataDir.reveal "Show Data Directory">

View file

@ -167,7 +167,6 @@
<!ENTITY zotero.preferences.charset.displayExportOption "A karakterkódolás beállításainak mutatása exportálás során">
<!ENTITY zotero.preferences.dataDir "Adatok mentése ide:">
<!ENTITY zotero.preferences.dataDir.useProfile "Firefox profilkönyvtár">
<!ENTITY zotero.preferences.dataDir.custom "Egyéni:">
<!ENTITY zotero.preferences.dataDir.choose "Tallózás...">
<!ENTITY zotero.preferences.dataDir.reveal "Az adatkönyvtár mutatása">

View file

@ -167,7 +167,6 @@
<!ENTITY zotero.preferences.charset.displayExportOption "Display character encoding option on export">
<!ENTITY zotero.preferences.dataDir "Storage Location">
<!ENTITY zotero.preferences.dataDir.useProfile "Use Firefox profile directory">
<!ENTITY zotero.preferences.dataDir.custom "Custom:">
<!ENTITY zotero.preferences.dataDir.choose "Choose...">
<!ENTITY zotero.preferences.dataDir.reveal "Show Data Directory">

View file

@ -167,7 +167,6 @@
<!ENTITY zotero.preferences.charset.displayExportOption "Display character encoding option on export">
<!ENTITY zotero.preferences.dataDir "Posizione salvataggio">
<!ENTITY zotero.preferences.dataDir.useProfile "Utilizza la cartella del profilo di Firefox">
<!ENTITY zotero.preferences.dataDir.custom "Personalizza:">
<!ENTITY zotero.preferences.dataDir.choose "Sfoglia...">
<!ENTITY zotero.preferences.dataDir.reveal "Visualizza la cartella dati">

View file

@ -167,7 +167,6 @@
<!ENTITY zotero.preferences.charset.displayExportOption "Display character encoding option on export">
<!ENTITY zotero.preferences.dataDir "保管場所">
<!ENTITY zotero.preferences.dataDir.useProfile "Firefoxプロファイルダイレクトリーを使用する">
<!ENTITY zotero.preferences.dataDir.custom "カストム:">
<!ENTITY zotero.preferences.dataDir.choose "選択する...">
<!ENTITY zotero.preferences.dataDir.reveal "データ・ディレクトリーを表示">

View file

@ -167,7 +167,6 @@
<!ENTITY zotero.preferences.charset.displayExportOption "Display character encoding option on export">
<!ENTITY zotero.preferences.dataDir "저장 위치">
<!ENTITY zotero.preferences.dataDir.useProfile "Firefox 프로필 디렉토리 이용">
<!ENTITY zotero.preferences.dataDir.custom "사용자 지정:">
<!ENTITY zotero.preferences.dataDir.choose "선택...">
<!ENTITY zotero.preferences.dataDir.reveal "자료 디렉토리 표시">

View file

@ -167,7 +167,6 @@
<!ENTITY zotero.preferences.charset.displayExportOption "Display character encoding option on export">
<!ENTITY zotero.preferences.dataDir "Storage Location">
<!ENTITY zotero.preferences.dataDir.useProfile "Use Firefox profile directory">
<!ENTITY zotero.preferences.dataDir.custom "Custom:">
<!ENTITY zotero.preferences.dataDir.choose "Choose...">
<!ENTITY zotero.preferences.dataDir.reveal "Show Data Directory">

View file

@ -167,7 +167,6 @@
<!ENTITY zotero.preferences.charset.displayExportOption "Display character encoding option on export">
<!ENTITY zotero.preferences.dataDir "Lagringsplass">
<!ENTITY zotero.preferences.dataDir.useProfile "Bruk profilmappa til Firefox.">
<!ENTITY zotero.preferences.dataDir.custom "Egendefinert:">
<!ENTITY zotero.preferences.dataDir.choose "Velg...">
<!ENTITY zotero.preferences.dataDir.reveal "Vis datamappe">

View file

@ -167,7 +167,6 @@
<!ENTITY zotero.preferences.charset.displayExportOption "Tekensetcodering kiezen bij exporteren">
<!ENTITY zotero.preferences.dataDir "Opslaglocatie">
<!ENTITY zotero.preferences.dataDir.useProfile "Gebruik de profielmap van Firefox">
<!ENTITY zotero.preferences.dataDir.custom "Aangepast:">
<!ENTITY zotero.preferences.dataDir.choose "Kiezen...">
<!ENTITY zotero.preferences.dataDir.reveal "Opslagmap tonen">

View file

@ -167,7 +167,6 @@
<!ENTITY zotero.preferences.charset.displayExportOption "Display character encoding option on export">
<!ENTITY zotero.preferences.dataDir "Lagringsplass">
<!ENTITY zotero.preferences.dataDir.useProfile "Bruk profilmappa til Firefox.">
<!ENTITY zotero.preferences.dataDir.custom "Egendefinert:">
<!ENTITY zotero.preferences.dataDir.choose "Vel...">
<!ENTITY zotero.preferences.dataDir.reveal "Vis datamappe">

View file

@ -167,7 +167,6 @@
<!ENTITY zotero.preferences.charset.displayExportOption "Wyświetl opcje kodowania znaków przy eksporcie">
<!ENTITY zotero.preferences.dataDir "Miejsce przechowywania:">
<!ENTITY zotero.preferences.dataDir.useProfile "Użyj katalogu profilu Firefoksa">
<!ENTITY zotero.preferences.dataDir.custom "Określ katalog:">
<!ENTITY zotero.preferences.dataDir.choose "Przeglądaj">
<!ENTITY zotero.preferences.dataDir.reveal "Wyświetl katalog bazy danych">

View file

@ -167,7 +167,6 @@
<!ENTITY zotero.preferences.charset.displayExportOption "Exibir opção de codificação de caracteres ao exportar">
<!ENTITY zotero.preferences.dataDir "Localização do armazenamento">
<!ENTITY zotero.preferences.dataDir.useProfile "Usar o diretório do perfil do usuário Firefox">
<!ENTITY zotero.preferences.dataDir.custom "Personalizado:">
<!ENTITY zotero.preferences.dataDir.choose "Escolha...">
<!ENTITY zotero.preferences.dataDir.reveal "Exibir diretório de dados">

View file

@ -167,7 +167,6 @@
<!ENTITY zotero.preferences.charset.displayExportOption "Mostrar opção de codificação de caracteres ao exportar">
<!ENTITY zotero.preferences.dataDir "Local de Armazenamento">
<!ENTITY zotero.preferences.dataDir.useProfile "Usar pasta de perfil do Firefox">
<!ENTITY zotero.preferences.dataDir.custom "Outra:">
<!ENTITY zotero.preferences.dataDir.choose "Escolher...">
<!ENTITY zotero.preferences.dataDir.reveal "Mostrar Pasta de Dados">

View file

@ -167,7 +167,6 @@
<!ENTITY zotero.preferences.charset.displayExportOption "Afișează la export opțiunea pentru codificarea caracterelor">
<!ENTITY zotero.preferences.dataDir "Locație pentru stocare">
<!ENTITY zotero.preferences.dataDir.useProfile "Folosește dosarul de profil din Firefox">
<!ENTITY zotero.preferences.dataDir.custom "Personalizare:">
<!ENTITY zotero.preferences.dataDir.choose "Alege...">
<!ENTITY zotero.preferences.dataDir.reveal "Afișează directorul de date">

View file

@ -167,7 +167,6 @@
<!ENTITY zotero.preferences.charset.displayExportOption "Показывать окно выбора кодировки символов при экспорте">
<!ENTITY zotero.preferences.dataDir "Расположение папки с данными">
<!ENTITY zotero.preferences.dataDir.useProfile "Использовать папку профиля Firefox">
<!ENTITY zotero.preferences.dataDir.custom "Пользовательская:">
<!ENTITY zotero.preferences.dataDir.choose "Выбрать…">
<!ENTITY zotero.preferences.dataDir.reveal "Показать папку с данными">

View file

@ -167,7 +167,6 @@
<!ENTITY zotero.preferences.charset.displayExportOption "Zobraziť voľbu kódovania pri exportovaní">
<!ENTITY zotero.preferences.dataDir "Umiestnenie priečinku s dátami">
<!ENTITY zotero.preferences.dataDir.useProfile "Použiť priečinok, do ktorého Firefox ukladá používateľské dáta">
<!ENTITY zotero.preferences.dataDir.custom "Vlastné umiestnenie:">
<!ENTITY zotero.preferences.dataDir.choose "Prehľadávať...">
<!ENTITY zotero.preferences.dataDir.reveal "Zobraziť priečinok s dátami">

View file

@ -167,7 +167,6 @@
<!ENTITY zotero.preferences.charset.displayExportOption "Pri izvozu ponudi možnost kodiranja znakov">
<!ENTITY zotero.preferences.dataDir "Mesto shranjevanja">
<!ENTITY zotero.preferences.dataDir.useProfile "Uporabi mapo profila za Firefox">
<!ENTITY zotero.preferences.dataDir.custom "Po meri:">
<!ENTITY zotero.preferences.dataDir.choose "Izberi ...">
<!ENTITY zotero.preferences.dataDir.reveal "Pokaži mapo s podatki">

View file

@ -167,7 +167,6 @@
<!ENTITY zotero.preferences.charset.displayExportOption "Display character encoding option on export">
<!ENTITY zotero.preferences.dataDir "Место за складиштење">
<!ENTITY zotero.preferences.dataDir.useProfile "Користи Firefox директоријум за профил">
<!ENTITY zotero.preferences.dataDir.custom "Прилагођено:">
<!ENTITY zotero.preferences.dataDir.choose "Изабери...">
<!ENTITY zotero.preferences.dataDir.reveal "Прикажи директоријум података">

View file

@ -167,7 +167,6 @@
<!ENTITY zotero.preferences.charset.displayExportOption "Visa val för teckenkod vid export">
<!ENTITY zotero.preferences.dataDir "Lagringsplats">
<!ENTITY zotero.preferences.dataDir.useProfile "Använd profilkatalogen för Firefox">
<!ENTITY zotero.preferences.dataDir.custom "Egen:">
<!ENTITY zotero.preferences.dataDir.choose "Välj...">
<!ENTITY zotero.preferences.dataDir.reveal "Visa datakatalog">

View file

@ -167,7 +167,6 @@
<!ENTITY zotero.preferences.charset.displayExportOption "Display character encoding option on export">
<!ENTITY zotero.preferences.dataDir "ที่ตั้งของพื้นที่เก็บข้อมูล">
<!ENTITY zotero.preferences.dataDir.useProfile "ใช้ไดเรคทอรีของโปรไฟล์ไฟร์ฟ๊อกซ์">
<!ENTITY zotero.preferences.dataDir.custom "Custom:">
<!ENTITY zotero.preferences.dataDir.choose "โปรดเลือก...">
<!ENTITY zotero.preferences.dataDir.reveal "แสดงไดเรคทอรีข้อมูล">

View file

@ -167,7 +167,6 @@
<!ENTITY zotero.preferences.charset.displayExportOption "Dışarı aktarırken karakter kodlama seçeneğini göster">
<!ENTITY zotero.preferences.dataDir "Veri Dizini Konumu">
<!ENTITY zotero.preferences.dataDir.useProfile "Firefox profil dizinini kullan">
<!ENTITY zotero.preferences.dataDir.custom "Özel:">
<!ENTITY zotero.preferences.dataDir.choose "Seç...">
<!ENTITY zotero.preferences.dataDir.reveal "Veri Dizinini Göster">

View file

@ -167,7 +167,6 @@
<!ENTITY zotero.preferences.charset.displayExportOption "Display character encoding option on export">
<!ENTITY zotero.preferences.dataDir "Nơi lưu trữ dữ liệu">
<!ENTITY zotero.preferences.dataDir.useProfile "Dùng thư mục profile của Firefox">
<!ENTITY zotero.preferences.dataDir.custom "Tùy biến:">
<!ENTITY zotero.preferences.dataDir.choose "Chọn...">
<!ENTITY zotero.preferences.dataDir.reveal "Hiển thị Thư mục dữ liệu">

View file

@ -167,7 +167,6 @@
<!ENTITY zotero.preferences.charset.displayExportOption "Display character encoding option on export">
<!ENTITY zotero.preferences.dataDir "存储位置">
<!ENTITY zotero.preferences.dataDir.useProfile "使用 Firefox 配置目录">
<!ENTITY zotero.preferences.dataDir.custom "自定义:">
<!ENTITY zotero.preferences.dataDir.choose "选择...">
<!ENTITY zotero.preferences.dataDir.reveal "显示数据目录">

View file

@ -167,7 +167,6 @@
<!ENTITY zotero.preferences.charset.displayExportOption "匯出時顯示字元編碼的選項">
<!ENTITY zotero.preferences.dataDir "儲存位置">
<!ENTITY zotero.preferences.dataDir.useProfile "使用 Firefox 個人設定檔目錄">
<!ENTITY zotero.preferences.dataDir.custom "自訂:">
<!ENTITY zotero.preferences.dataDir.choose "選擇…">
<!ENTITY zotero.preferences.dataDir.reveal "顯示資料目錄">

View file

@ -15,6 +15,11 @@ radio[pane]
-moz-box-pack: end;
}
#export-citePaperJournalArticleURL
{
font-size: .85em;
}
.statusLine
{
margin: .75em 0;
@ -203,11 +208,6 @@ grid row hbox:first-child
height: 1em;
}
#quickCopy-instructions, #quickCopy-macWarning, #export-citePaperJournalArticleURL
{
font-size: .85em;
}
#quickCopy-siteSettings-rows::-moz-tree-cell(quickCopy-copyAsHTML) {
/*
DEBUG: possible to center checkmark here instead of with spaces?

View file

@ -378,7 +378,7 @@ CREATE TABLE customBaseFieldMappings (
PRIMARY KEY (customItemTypeID, baseFieldID, customFieldID),
FOREIGN KEY (customItemTypeID) REFERENCES customItemTypes(customItemTypeID),
FOREIGN KEY (baseFieldID) REFERENCES fields(fieldID),
FOREIGN KEY (customFieldID) REFERENCES fields(customFieldID)
FOREIGN KEY (customFieldID) REFERENCES customFields(customFieldID)
);
CREATE INDEX customBaseFieldMappings_baseFieldID ON customBaseFieldMappings(baseFieldID);
CREATE INDEX customBaseFieldMappings_customFieldID ON customBaseFieldMappings(customFieldID);