For more information about this repository, visit the project page at https://www.drupal.org/project/bibcite_footnotes
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

116 lines
5.1 KiB

(function() {
function referenceFootnotesDialog( editor, isEdit ) {
return {
title : Drupal.t('Reference Footnotes Dialog'),
minWidth : 500,
minHeight : 50,
contents : [
{
id: 'info',
label: Drupal.t('Add a reference footnote'),
title: Drupal.t('Add a reference footnote'),
elements:
[
{
id: 'reference',
type: 'select',
items: [[" - None - ", 0]].concat(typeof(drupalSettings.bibcite_footnotes) !== 'undefined' ? drupalSettings.bibcite_footnotes.references : []),
label: Drupal.t('Reference Footnote item:'),
setup: function (element) {
if (isEdit)
this.setValue(element.getAttribute('reference'));
}
},
{
id: 'footnote',
type: 'textarea',
label: Drupal.t('Or add free-form footnote text :'),
setup: function (element) {
if (isEdit) {
var markup = element.getHtml();
this.setValue(markup);
}
}
},
{
id: 'html-help',
type: 'html',
html: 'HTML tags can be used, e.g., <strong>, <em>, <a href="...">',
},
{
id: 'page',
type: 'text',
labelLayout: 'horizontal',
label: Drupal.t('Page(s):'),
style: 'float:left:width:50px',
setup: function (element) {
if (isEdit) {
this.setValue(element.getAttribute('page'));
}
}
},
{
id: 'value',
type: 'text',
label: Drupal.t('Value :'),
labelLayout: 'horizontal',
style: 'float:left;width:200px;',
setup: function (element) {
if (isEdit)
this.setValue(element.getAttribute('value'));
}
},
{
id: 'value-help',
type: 'html',
html: 'Leave blank for an automatic sequential reference number, or enter a custom footnote value',
}
],
}
],
onShow : function() {
if (isEdit) {
this.fakeObj = CKEDITOR.plugins.reference_footnotes.getSelectedFootnote(editor);
this.realObj = editor.restoreRealElement(this.fakeObj);
}
var select = this.parts.contents.$.getElementsByTagName('select');
var selectBox = select.item(0);
// Remove all but the default 'None' item from teh list.
var i;
for (i = selectBox.options.length - 1; i >= 1; i--) {
selectBox.remove(i)
}
// Re-add buttons from the current state of Settings.
if (typeof (drupalSettings.bibcite_footnotes) !== 'undefined') {
drupalSettings.bibcite_footnotes.references.forEach(function (reference) {
var newReference = document.createElement('option');
newReference.text = reference[0];
newReference.setAttribute("value", reference[1]);
selectBox.add(newReference);
});
}
this.setupContent( this.realObj );
},
onOk : function() {
var referenceNote = this.getValueOf('info', 'reference');
var textNote = this.getValueOf('info', 'footnote');
var page = this.getValueOf('info', 'page');
CKEDITOR.plugins.reference_footnotes.createFootnote( editor, this.realObj, textNote, this.getValueOf('info', 'value'), referenceNote, page);
delete this.fakeObj;
delete this.realObj;
}
}
}
CKEDITOR.dialog.add( 'createreferencefootnotes', function( editor ) {
return referenceFootnotesDialog( editor );
});
CKEDITOR.dialog.add( 'editreferencefootnotes', function( editor ) {
return referenceFootnotesDialog( editor, 1 );
});
})();