Fix saving style locale in documents
This commit is contained in:
parent
507ef011d8
commit
b6c7ba6ea2
|
@ -235,7 +235,10 @@ var Zotero_File_Interface_Bibliography = new function() {
|
||||||
this.acceptSelection = function () {
|
this.acceptSelection = function () {
|
||||||
// collect code
|
// collect code
|
||||||
_io.style = document.getElementById("style-listbox").value;
|
_io.style = document.getElementById("style-listbox").value;
|
||||||
_io.locale = document.getElementById("locale-menu").value;
|
|
||||||
|
let localeMenu = document.getElementById("locale-menu");
|
||||||
|
_io.locale = localeMenu.disabled ? undefined : localeMenu.value;
|
||||||
|
|
||||||
if(document.getElementById("output-method-radio")) {
|
if(document.getElementById("output-method-radio")) {
|
||||||
// collect settings
|
// collect settings
|
||||||
_io.mode = document.getElementById("output-mode-radio").selectedItem.id;
|
_io.mode = document.getElementById("output-mode-radio").selectedItem.id;
|
||||||
|
|
|
@ -2029,7 +2029,7 @@ Zotero.Integration.Session.prototype.resetRequest = function(doc) {
|
||||||
* @param data {Zotero.Integration.DocumentData}
|
* @param data {Zotero.Integration.DocumentData}
|
||||||
* @param resetStyle {Boolean} Whether to force the style to be reset
|
* @param resetStyle {Boolean} Whether to force the style to be reset
|
||||||
* regardless of whether it has changed. This is desirable if the
|
* regardless of whether it has changed. This is desirable if the
|
||||||
* automaticJournalAbbreviations has changed.
|
* automaticJournalAbbreviations or locale has changed.
|
||||||
*/
|
*/
|
||||||
Zotero.Integration.Session.prototype.setData = function(data, resetStyle) {
|
Zotero.Integration.Session.prototype.setData = function(data, resetStyle) {
|
||||||
var oldStyle = (this.data && this.data.style ? this.data.style : false);
|
var oldStyle = (this.data && this.data.style ? this.data.style : false);
|
||||||
|
@ -2039,7 +2039,7 @@ Zotero.Integration.Session.prototype.setData = function(data, resetStyle) {
|
||||||
try {
|
try {
|
||||||
var getStyle = Zotero.Styles.get(data.style.styleID);
|
var getStyle = Zotero.Styles.get(data.style.styleID);
|
||||||
data.style.hasBibliography = getStyle.hasBibliography;
|
data.style.hasBibliography = getStyle.hasBibliography;
|
||||||
this.style = getStyle.getCiteProc(data.locale, data.prefs.automaticJournalAbbreviations);
|
this.style = getStyle.getCiteProc(data.style.locale, data.prefs.automaticJournalAbbreviations);
|
||||||
this.style.setOutputFormat("rtf");
|
this.style.setOutputFormat("rtf");
|
||||||
this.styleClass = getStyle.class;
|
this.styleClass = getStyle.class;
|
||||||
this.dateModified = new Object();
|
this.dateModified = new Object();
|
||||||
|
@ -2069,7 +2069,7 @@ Zotero.Integration.Session.prototype.setDocPrefs = function(doc, primaryFieldTyp
|
||||||
|
|
||||||
if(this.data) {
|
if(this.data) {
|
||||||
io.style = this.data.style.styleID;
|
io.style = this.data.style.styleID;
|
||||||
io.locale = this.data.locale;
|
io.locale = this.data.style.locale;
|
||||||
io.useEndnotes = this.data.prefs.noteType == 0 ? 0 : this.data.prefs.noteType-1;
|
io.useEndnotes = this.data.prefs.noteType == 0 ? 0 : this.data.prefs.noteType-1;
|
||||||
io.fieldType = this.data.prefs.fieldType;
|
io.fieldType = this.data.prefs.fieldType;
|
||||||
io.primaryFieldType = primaryFieldType;
|
io.primaryFieldType = primaryFieldType;
|
||||||
|
@ -2092,19 +2092,17 @@ Zotero.Integration.Session.prototype.setDocPrefs = function(doc, primaryFieldTyp
|
||||||
var data = new Zotero.Integration.DocumentData();
|
var data = new Zotero.Integration.DocumentData();
|
||||||
data.sessionID = oldData.sessionID;
|
data.sessionID = oldData.sessionID;
|
||||||
data.style.styleID = io.style;
|
data.style.styleID = io.style;
|
||||||
data.locale = io.locale;
|
data.style.locale = io.locale;
|
||||||
data.prefs.fieldType = io.fieldType;
|
data.prefs.fieldType = io.fieldType;
|
||||||
data.prefs.storeReferences = io.storeReferences;
|
data.prefs.storeReferences = io.storeReferences;
|
||||||
data.prefs.automaticJournalAbbreviations = io.automaticJournalAbbreviations;
|
data.prefs.automaticJournalAbbreviations = io.automaticJournalAbbreviations;
|
||||||
|
|
||||||
var localeChanged = false;
|
var forceStyleReset = oldData
|
||||||
if (!oldData.locale || (oldData.locale != io.locale)) {
|
&& (
|
||||||
localeChanged = true;
|
oldData.prefs.automaticJournalAbbreviations != data.prefs.automaticJournalAbbreviations
|
||||||
}
|
|| oldData.style.locale != io.locale
|
||||||
|
);
|
||||||
me.setData(data, oldData &&
|
me.setData(data, forceStyleReset);
|
||||||
(oldData.prefs.automaticJournalAbbreviations !=
|
|
||||||
data.prefs.automaticJournalAbbreviations || localeChanged));
|
|
||||||
|
|
||||||
// need to do this after setting the data so that we know if it's a note style
|
// need to do this after setting the data so that we know if it's a note style
|
||||||
me.data.prefs.noteType = me.style && me.styleClass == "note" ? io.useEndnotes+1 : 0;
|
me.data.prefs.noteType = me.style && me.styleClass == "note" ? io.useEndnotes+1 : 0;
|
||||||
|
@ -2983,6 +2981,7 @@ Zotero.Integration.DocumentData.prototype.serializeXML = function() {
|
||||||
'zotero-version="'+Zotero.Utilities.htmlSpecialChars(Zotero.version)+'">'+
|
'zotero-version="'+Zotero.Utilities.htmlSpecialChars(Zotero.version)+'">'+
|
||||||
'<session id="'+Zotero.Utilities.htmlSpecialChars(this.sessionID)+'"/>'+
|
'<session id="'+Zotero.Utilities.htmlSpecialChars(this.sessionID)+'"/>'+
|
||||||
'<style id="'+Zotero.Utilities.htmlSpecialChars(this.style.styleID)+'" '+
|
'<style id="'+Zotero.Utilities.htmlSpecialChars(this.style.styleID)+'" '+
|
||||||
|
(this.style.locale ? 'locale="' + Zotero.Utilities.htmlSpecialChars(this.style.locale) + '" ': '') +
|
||||||
'hasBibliography="'+(this.style.hasBibliography ? "1" : "0")+'" '+
|
'hasBibliography="'+(this.style.hasBibliography ? "1" : "0")+'" '+
|
||||||
'bibliographyStyleHasBeenSet="'+(this.style.bibliographyStyleHasBeenSet ? "1" : "0")+'"/>'+
|
'bibliographyStyleHasBeenSet="'+(this.style.bibliographyStyleHasBeenSet ? "1" : "0")+'"/>'+
|
||||||
(prefs ? '<prefs>'+prefs+'</prefs>' : '<prefs/>')+'</data>';
|
(prefs ? '<prefs>'+prefs+'</prefs>' : '<prefs/>')+'</data>';
|
||||||
|
@ -2998,6 +2997,7 @@ Zotero.Integration.DocumentData.prototype.unserializeXML = function(xmlData) {
|
||||||
|
|
||||||
this.sessionID = Zotero.Utilities.xpathText(doc, '/data/session[1]/@id');
|
this.sessionID = Zotero.Utilities.xpathText(doc, '/data/session[1]/@id');
|
||||||
this.style = {"styleID":Zotero.Utilities.xpathText(doc, '/data/style[1]/@id'),
|
this.style = {"styleID":Zotero.Utilities.xpathText(doc, '/data/style[1]/@id'),
|
||||||
|
"locale":Zotero.Utilities.xpathText(doc, '/data/style[1]/@locale'),
|
||||||
"hasBibliography":(Zotero.Utilities.xpathText(doc, '/data/style[1]/@hasBibliography') == 1),
|
"hasBibliography":(Zotero.Utilities.xpathText(doc, '/data/style[1]/@hasBibliography') == 1),
|
||||||
"bibliographyStyleHasBeenSet":(Zotero.Utilities.xpathText(doc, '/data/style[1]/@bibliographyStyleHasBeenSet') == 1)};
|
"bibliographyStyleHasBeenSet":(Zotero.Utilities.xpathText(doc, '/data/style[1]/@bibliographyStyleHasBeenSet') == 1)};
|
||||||
this.prefs = {};
|
this.prefs = {};
|
||||||
|
|
Loading…
Reference in New Issue
Block a user