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