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.
103 lines
4.5 KiB
103 lines
4.5 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(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 text = element.getText(); |
|
|
|
this.setValue(text); |
|
|
|
} |
|
} |
|
}, |
|
{ |
|
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')); |
|
} |
|
} |
|
], |
|
} |
|
], |
|
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. |
|
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 ); |
|
}); |
|
})(); |