add "Save" button and "Near Note" position to CSL Preview
This commit is contained in:
parent
41c19992fe
commit
39dd3d8114
1 changed files with 34 additions and 2 deletions
|
@ -42,7 +42,6 @@
|
||||||
this.loadCSL = loadCSL;
|
this.loadCSL = loadCSL;
|
||||||
this.generateBibliography = generateBibliography;
|
this.generateBibliography = generateBibliography;
|
||||||
this.refresh = refresh;
|
this.refresh = refresh;
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
var cslList = document.getElementById('zotero-csl-list');
|
var cslList = document.getElementById('zotero-csl-list');
|
||||||
if (cslList.getAttribute('initialized') == 'true') {
|
if (cslList.getAttribute('initialized') == 'true') {
|
||||||
|
@ -72,6 +71,30 @@
|
||||||
generateBibliography(editor.value);
|
generateBibliography(editor.value);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
this.save = function() {
|
||||||
|
var editor = document.getElementById('zotero-csl-editor')
|
||||||
|
var style = editor.value;
|
||||||
|
const nsIFilePicker = Components.interfaces.nsIFilePicker;
|
||||||
|
var fp = Components.classes["@mozilla.org/filepicker;1"]
|
||||||
|
.createInstance(nsIFilePicker);
|
||||||
|
fp.init(window, "Save Citation Style", nsIFilePicker.modeSave);
|
||||||
|
//get the filename from the id; we could consider doing even more here like creating the id from filename.
|
||||||
|
var parser = new DOMParser();
|
||||||
|
var doc = parser.parseFromString(style, 'text/xml');
|
||||||
|
var filename = doc.getElementsByTagName("id");
|
||||||
|
if (filename) {
|
||||||
|
filename = filename[0].textContent;
|
||||||
|
fp.defaultString = filename.replace(/.+\//, "") + ".csl";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
fp.defaultString = "untitled.csl";
|
||||||
|
}
|
||||||
|
var rv = fp.show();
|
||||||
|
if (rv == nsIFilePicker.returnOK || rv == nsIFilePicker.returnReplace) {
|
||||||
|
var outputFile = fp.file;
|
||||||
|
Zotero.File.putContents(outputFile, style);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function handleKeyPress(event) {
|
function handleKeyPress(event) {
|
||||||
if (event.keyCode == 9 &&
|
if (event.keyCode == 9 &&
|
||||||
|
@ -145,7 +168,14 @@
|
||||||
citation.citationItems[i].locator = search.value;
|
citation.citationItems[i].locator = search.value;
|
||||||
citation.citationItems[i].label = loc.selectedItem.value;
|
citation.citationItems[i].label = loc.selectedItem.value;
|
||||||
}
|
}
|
||||||
citation.citationItems[i].position = parseInt(pos, 10);
|
if (pos == 4) {
|
||||||
|
//near note is a subsequent citation with near note set to true;
|
||||||
|
citation.citationItems[i].position = 1;
|
||||||
|
citation.citationItems[i]["near-note"] = true;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
citation.citationItems[i].position = parseInt(pos, 10);
|
||||||
|
{
|
||||||
var subcitation = [citation.citationItems[i]];
|
var subcitation = [citation.citationItems[i]];
|
||||||
citations += styleEngine.makeCitationCluster(subcitation) + '<br />';
|
citations += styleEngine.makeCitationCluster(subcitation) + '<br />';
|
||||||
}
|
}
|
||||||
|
@ -189,6 +219,7 @@
|
||||||
|
|
||||||
<vbox flex="1">
|
<vbox flex="1">
|
||||||
<hbox align="center">
|
<hbox align="center">
|
||||||
|
<button id="zotero-csl-save" label="Save" oncommand="Zotero_CSL_Editor.save()"/>
|
||||||
<button id="preview-refresh-button" label="Refresh" oncommand="Zotero_CSL_Editor.refresh()"/>
|
<button id="preview-refresh-button" label="Refresh" oncommand="Zotero_CSL_Editor.refresh()"/>
|
||||||
<menulist id="zotero-csl-page-type" style="min-height: 1.6em; min-width: 50px" oncommand="Zotero_CSL_Editor.refresh()" />
|
<menulist id="zotero-csl-page-type" style="min-height: 1.6em; min-width: 50px" oncommand="Zotero_CSL_Editor.refresh()" />
|
||||||
<label value=":" />
|
<label value=":" />
|
||||||
|
@ -201,6 +232,7 @@
|
||||||
<menuitem label="Subsequent" value="1"/>
|
<menuitem label="Subsequent" value="1"/>
|
||||||
<menuitem label="Ibid" value="2"/>
|
<menuitem label="Ibid" value="2"/>
|
||||||
<menuitem label="Ibid+Locator" value="3"/>
|
<menuitem label="Ibid+Locator" value="3"/>
|
||||||
|
<menuitem label="Near Note" value="4"/>
|
||||||
</menupopup>
|
</menupopup>
|
||||||
</menulist>
|
</menulist>
|
||||||
<menulist id="zotero-csl-list" style="min-height: 1.6em; min-width: 100px" initialized="false" flex="1" oncommand="Zotero_CSL_Editor.loadCSL(this.selectedItem.value)"/>
|
<menulist id="zotero-csl-list" style="min-height: 1.6em; min-width: 100px" initialized="false" flex="1" oncommand="Zotero_CSL_Editor.loadCSL(this.selectedItem.value)"/>
|
||||||
|
|
Loading…
Reference in a new issue