diff --git a/static/js/annotationPanel.js b/static/js/annotationPanel.js index 0ca5c7a..847ef54 100644 --- a/static/js/annotationPanel.js +++ b/static/js/annotationPanel.js @@ -31,8 +31,6 @@ oml.ui.annotationPanel = function() { {id: 'note', title: Ox._('By Note Text'), checked: false}, {id: 'date', title: Ox._('By Date Added'), checked: false} ]}, - {}, - {id: 'exportAnnotations', title: Ox._('Export Annotations')}, ], style: 'square', title: 'set', @@ -41,20 +39,7 @@ oml.ui.annotationPanel = function() { }).css({ // borderColor: 'transparent', float: 'right' - }).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() - }) - } - } - }); + }).appendTo($bar); var ui = oml.user.ui; var that = Ox.SplitPanel({ diff --git a/static/js/exportAnnotationsDialog.js b/static/js/exportAnnotationsDialog.js deleted file mode 100644 index f891efa..0000000 --- a/static/js/exportAnnotationsDialog.js +++ /dev/null @@ -1,62 +0,0 @@ -'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; - -}; diff --git a/static/js/viewer.js b/static/js/viewer.js index e45c4ac..092657a 100644 --- a/static/js/viewer.js +++ b/static/js/viewer.js @@ -143,8 +143,6 @@ oml.ui.viewer = function() { that.postMessage = function(event, data) { $iframe && $iframe.postMessage(event, data) }; - that.getAnnotations = function() { - return annotations; - } + return that.updateElement(); }; diff --git a/static/json/js.json b/static/json/js.json index f283185..5578ee0 100644 --- a/static/json/js.json +++ b/static/json/js.json @@ -19,7 +19,6 @@ "deleteListDialog.js", "editDialog.js", "errorDialog.js", - "exportAnnotationsDialog.js", "filter.js", "filtersInnerPanel.js", "filtersOuterPanel.js", diff --git a/static/reader/epub.js b/static/reader/epub.js index 9aca10f..b4326a3 100644 --- a/static/reader/epub.js +++ b/static/reader/epub.js @@ -113,7 +113,9 @@ function getText(book, cfiRange, cb) { function onHighlightClicked(e) { console.log("highlight clicked", e.target.dataset.epubcfi); - if(!e.target.classList.contains('selected')) { + if(e.target.classList.contains('selected')) { + e.target.classList.remove('selected') + } else { document.querySelectorAll('.epubjs-hl.selected').forEach(function(other) { other.classList.remove('selected') }) diff --git a/static/reader/pdf.js b/static/reader/pdf.js index 1e4b003..44db149 100644 --- a/static/reader/pdf.js +++ b/static/reader/pdf.js @@ -22,7 +22,7 @@ Ox.load({ } setTimeout(function() { var el = document.querySelector('.a' + annotation.id); - if (el && !isInView(el)) { + if (el) { document.querySelector('#viewerContainer').scrollTop = el.offsetTop + el.parentElement.offsetTop - 64; } }, delay) @@ -134,7 +134,10 @@ function renderAnnotation(annotation) { 'width:' + Math.abs(bounds[0] - bounds[2]) + 'px; height:' + Math.abs(bounds[1] - bounds[3]) + 'px;'); el.addEventListener('click', function() { - if (!el.classList.contains('selected')) { + if (el.classList.contains('selected')) { + deselectAnnotation(annotation.id) + Ox.$parent.postMessage('selectAnnotation', {id: null}) + } else { selectAnnotation(annotation.id) Ox.$parent.postMessage('selectAnnotation', {id: annotation.id}) } @@ -201,10 +204,3 @@ function loadAnnotations(page) { }) } -function isInView(element) { - var docViewTop = $(window).scrollTop(); - var docViewBottom = docViewTop + $(window).height(); - var elementTop = $(element).offset().top; - var elementBottom = elementTop + $(element).height(); - return elementTop < docViewBottom && elementBottom > docViewTop; -}