export annotations

This commit is contained in:
j 2019-02-01 14:49:43 +05:30
parent 9c765bf863
commit fbcbc2ab7b
4 changed files with 82 additions and 2 deletions

View file

@ -31,6 +31,8 @@ oml.ui.annotationPanel = function() {
{id: 'note', title: Ox._('By Note Text'), checked: false}, {id: 'note', title: Ox._('By Note Text'), checked: false},
{id: 'date', title: Ox._('By Date Added'), checked: false} {id: 'date', title: Ox._('By Date Added'), checked: false}
]}, ]},
{},
{id: 'exportAnnotations', title: Ox._('Export Annotations')},
], ],
style: 'square', style: 'square',
title: 'set', title: 'set',
@ -39,7 +41,20 @@ oml.ui.annotationPanel = function() {
}).css({ }).css({
// borderColor: 'transparent', // borderColor: 'transparent',
float: 'right' float: 'right'
}).appendTo($bar); }).appendTo($bar)
.bindEvent({
click: function(data) {
var id = data.id;
if (id == 'exportAnnotations') {
oml.api.get({
id: oml.user.ui.item,
keys: []
}, function(result) {
oml.ui.exportAnnotationsDialog(result.data).open()
})
}
}
});
var ui = oml.user.ui; var ui = oml.user.ui;
var that = Ox.SplitPanel({ var that = Ox.SplitPanel({

View file

@ -0,0 +1,62 @@
'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.join(', ') + ')\n\n\n\n'
text += annotations.map(function(annotation) {
var text = 'Quote:\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;
};

View file

@ -143,6 +143,8 @@ oml.ui.viewer = function() {
that.postMessage = function(event, data) { that.postMessage = function(event, data) {
$iframe && $iframe.postMessage(event, data) $iframe && $iframe.postMessage(event, data)
}; };
that.getAnnotations = function() {
return annotations;
}
return that.updateElement(); return that.updateElement();
}; };

View file

@ -19,6 +19,7 @@
"deleteListDialog.js", "deleteListDialog.js",
"editDialog.js", "editDialog.js",
"errorDialog.js", "errorDialog.js",
"exportAnnotationsDialog.js",
"filter.js", "filter.js",
"filtersInnerPanel.js", "filtersInnerPanel.js",
"filtersOuterPanel.js", "filtersOuterPanel.js",