openmedialibrary/static/js/exportAnnotationsDialog.js

67 lines
1.9 KiB
JavaScript

'use strict';
oml.ui.exportAnnotationsDialog = function(data) {
var ui = oml.user.ui,
$text = Ox.Input({
type: 'textarea',
style: 'squared',
value: getAnnotationsText(),
width: 640,
height: 480
})
.css({margin: '16px'}),
that = Ox.Dialog({
buttons: [
Ox.Button({
id: 'done',
style: 'squared',
title: Ox._('Done')
})
.bindEvent({
click: function() {
that.close();
}
})
],
closeButton: true,
content: $text,
height: 480 + 2 * 16,
keys: {enter: 'done'},
removeOnClose: true,
title: Ox._('Export Annotations'),
width: 640 + 2* 16
})
.bindEvent({
close: function() {
that.close();
},
open: function() {
// ..
}
});
function getAnnotationsText() {
var annotations = oml.$ui.viewer.getAnnotations()
var text = 'Annotations for ' + data.title + (
data.author ?' (' + data.author.join(', ') + ')'
: ''
) + '\n\n\n\n'
text += annotations.map(function(annotation) {
var page = annotation.pageLabel || annotation.page
var text = 'Quote' + (page ? ' Page ' + page : '' )+ ':\n\n' + annotation.text
if (annotation.notes.length) {
text += '\n\nNotes:\n' + annotation.notes.map(function(note) {
return note.value
}).join('\n\n')
}
return text
}).join('\n\n\n\n')
return text
}
return that;
};