diff --git a/config.json b/config.json index d32e59e..0f4e28e 100644 --- a/config.json +++ b/config.json @@ -361,9 +361,7 @@ "showAnnotations": false, "showBrowser": true, "showDebugMenu": false, - "showFolder": { - "": true - }, + "showFolder": {}, "showFilters": true, "showIconInfo": true, "showInfo": true, diff --git a/static/css/oml.css b/static/css/oml.css index 382cccd..b4abb47 100644 --- a/static/css/oml.css +++ b/static/css/oml.css @@ -1,9 +1,5 @@ .OMLQuote { - color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); - font-family: Georgia, Palatino, DejaVu Serif, Book Antiqua, Palatino Linotype, Times New Roman, serif; - font-size: 14px; - line-height: 21px; } .OMLAnnotation.selected .OMLQuote { diff --git a/static/html/oml.html b/static/html/oml.html index 5c40f80..2bb4f9e 100644 --- a/static/html/oml.html +++ b/static/html/oml.html @@ -4,6 +4,7 @@ Open Media Library + diff --git a/static/js/UI.js b/static/js/UI.js index 47409d6..82e3386 100644 --- a/static/js/UI.js +++ b/static/js/UI.js @@ -17,8 +17,7 @@ oml.UI = (function() { var ui = oml.user.ui; function reload() { - Ox.Request.clearCache() - oml.user.ui = ui = oml.config.user.ui; + ui = oml.config.user.ui; ui._list = oml.getListState(ui.find); ui._filterState = oml.getFilterState(ui.find); ui._findState = oml.getFindState(ui.find); diff --git a/static/js/annotation.js b/static/js/annotation.js index 98066ea..8003e73 100644 --- a/static/js/annotation.js +++ b/static/js/annotation.js @@ -2,6 +2,11 @@ oml.ui.annotation = function(annotation, $iframe) { var $quote = Ox.Element().addClass('OxSelectable OMLQuote').css({ + backgroundColor: 'white', + color: 'black', + fontFamily: 'Georgia, Palatino, DejaVu Serif, Book Antiqua, Palatino Linotype, Times New Roman, serif', + fontSize: '14px', + lineHeight: '21px', padding: '8px' }).html(Ox.encodeHTMLEntities(annotation.text).replace(/\n/g, '
')).on({ click: function(event) { @@ -11,35 +16,27 @@ oml.ui.annotation = function(annotation, $iframe) { }) } }) - var notes = annotation.notes.length ? annotation.notes.map(function(note) { - note.editable = note.user == '' - return note - }) : [{ - id: 'A', - placeholder: 'Add Note', - value: '', - editable: true - }]; - console.log(annotation.notes) var $note = Ox.ArrayEditable({ editing: true, - items: notes, + items: (annotation.comments || []).map(function(comment) { + comment.editable = true + return comment + }), type: 'textarea' }).css({ margin: '2px', minHeight: '12px' }).bindEvent({ submit: function(data) { - var note = Ox.getObjectById(annotation.notes, data.id) - if (note) { - note.value = data.value - note.modified = (new Date).toISOString() + var comment = Ox.getObjectById(annotation.comments, data.id) + if (comment) { + comment.value = data.value + comment.modified = (new Date).toISOString() } else { - annotation.notes.push({ + annotation.comments.push({ created: data.created || (new Date).toISOString(), modified: (new Date).toISOString(), id: data.id, - user: '', value: data.value }) } @@ -52,12 +49,6 @@ oml.ui.annotation = function(annotation, $iframe) { 'OxSelectable OMLAnnotation' ).css({ borderBottom: '1px solid rgb(208, 208, 208)', - }).bindEvent({ - key_delete: function() { - that.triggerEvent('delete', { - id: annotation.id - }) - } }).append($quote).append($note); that.annotate = function() { @@ -67,13 +58,11 @@ oml.ui.annotation = function(annotation, $iframe) { } that.deselect = function() { that.removeClass('selected') - that.loseFocus() } that.select = function () { let selected = document.querySelector('.OMLAnnotation.selected') selected && selected.classList.remove('selected') that.addClass('selected') - that.gainFocus() } return that; }; diff --git a/static/js/oml.js b/static/js/oml.js index 182c825..07be0e2 100644 --- a/static/js/oml.js +++ b/static/js/oml.js @@ -226,9 +226,7 @@ data.browserSupported = browserSupported; oml.ui = {}; loadOMLFiles(function() { - Ox.getFile('/static/css/oml.css', function() { - initOML(data); - }) + initOML(data); }); }, updatestatus: function(data) { diff --git a/static/js/utils.js b/static/js/utils.js index 94a1003..bdbdb27 100644 --- a/static/js/utils.js +++ b/static/js/utils.js @@ -988,7 +988,7 @@ oml.resizeListFolders = function() { // FIXME: does this have to be here? var width = oml.getListFoldersWidth(), columnWidth = width - 16 - 48; - oml.$ui.librariesList && oml.$ui.librariesList + oml.$ui.librariesList .css({width: width + 'px'}) .resizeColumn('name', columnWidth); Ox.forEach(oml.$ui.folder, function($folder, index) { diff --git a/static/js/viewer.js b/static/js/viewer.js index 98a3598..848364a 100644 --- a/static/js/viewer.js +++ b/static/js/viewer.js @@ -41,23 +41,12 @@ oml.ui.viewer = function() { function loadAnnotations(callback) { annotations = JSON.parse(localStorage[item + '.annotations'] || '[]') - annotations.forEach(function(data) { - if (data.comments && !data.notes) { - data.notes = data.comments - delete data.comments - } - data.notes = data.notes || []; - }) callback && callback(annotations) } function saveAnnotations(data) { if (data) { data.created = data.created || (new Date).toISOString(); - if (data.comments && !data.notes) { - data.notes = data.comments - delete data.comments - } - data.notes = data.notes || []; + data.comments = data.comments || []; annotations.push(data); } localStorage[item + '.annotations'] = JSON.stringify(annotations) @@ -74,10 +63,6 @@ oml.ui.viewer = function() { console.log('change...') console.log(annotations) saveAnnotations() - }, - 'delete': function(data) { - oml.$ui.annotationFolder.find('#a-' + data.id).remove() - that.postMessage('removeAnnotation', data) } } @@ -106,11 +91,9 @@ oml.ui.viewer = function() { oml.$ui.annotationFolder.find('#a-' + data.id).remove() removeAnnotation(data.id) } else if (event == 'selectAnnotation') { - var $annotation = oml.$ui.annotationFolder.find('#a-' + data.id) - $annotation.select() + console.log('select', data) } else if (event == 'deselectAnnotation') { - var $annotation = oml.$ui.annotationFolder.find('#a-' + data.id) - $annotation.deselect() + console.log('deselect', data) } else { that.triggerEvent(event, data); } diff --git a/static/reader/epub.js b/static/reader/epub.js index 1372628..f3a56ad 100644 --- a/static/reader/epub.js +++ b/static/reader/epub.js @@ -23,8 +23,6 @@ Ox.load({ annotations.push(annotation) renderAnnotation(annotation) }) - } else if (event == 'removeAnnotation') { - removeAnnotation(data.id) } }) }) @@ -49,15 +47,12 @@ function deselectAnnotation(id) { }) } -function removeAnnotation(id) { - var a = annotations.filter(function(a) { return a.id == id })[0] - if (a) { - annotations = annotations.filter(function(annotation) { - return annotation.id != id - }) - reader.rendition.annotations.remove(a.cfiRange) - } - Ox.$parent.postMessage('removeAnnotation', {id: id}) +function removeAnnotation(a) { + annotations = annotations.filter(function(annotation) { + return annotation.cfiRange != a.dataset.epubcfi + }) + reader.rendition.annotations.remove(a.dataset.epubcfi) + Ox.$parent.postMessage('removeAnnotation', {id: a.dataset.id}) } function renderAnnotation(annotation) { @@ -103,7 +98,7 @@ document.onreadystatechange = function () { reader.rendition.on('keydown', function(event) { if (event.key == 'Delete') { document.querySelectorAll('.epubjs-hl.selected').forEach(function(a) { - removeAnnotation(a.dataset.id) + removeAnnotation(a) }) } if (event.key == 'n') { diff --git a/static/reader/pdf.js b/static/reader/pdf.js index 44ae07b..15b4487 100644 --- a/static/reader/pdf.js +++ b/static/reader/pdf.js @@ -32,8 +32,6 @@ Ox.load({ annotations.push(annotation) renderAnnotation(annotation) }) - } else if (event == 'removeAnnotation') { - removeAnnotation(data.id) } }) })