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
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 ); |
|
}); |
|
})();
|
|
|