diff --git a/oml/__main__.py b/oml/__main__.py
index 795f3a1..9bb7491 100644
--- a/oml/__main__.py
+++ b/oml/__main__.py
@@ -29,7 +29,7 @@ import server
if len(sys.argv) > 1 and sys.argv[1] == 'server':
server.run()
-elif len(sys.argv) > 1 and sys.argv[1] == 'ui':
+if len(sys.argv) > 1 and sys.argv[1] == 'ui':
import ui
ui.main(sys.argv[2:])
else:
diff --git a/oml/item/scan.py b/oml/item/scan.py
index 79c5ead..4869ac9 100644
--- a/oml/item/scan.py
+++ b/oml/item/scan.py
@@ -188,8 +188,6 @@ def run_scan():
file.item.added = file.item.accessed
file.item.save()
library_items = len(user.library.items)
- if state.shutdown:
- return
if added:
trigger_event('change', {})
logger.debug('imported %s unknown books', added)
diff --git a/oml/node/server.py b/oml/node/server.py
index bc2e816..65451dc 100644
--- a/oml/node/server.py
+++ b/oml/node/server.py
@@ -317,6 +317,7 @@ class Handler(http.server.SimpleHTTPRequestHandler):
self.send_header('Content-Length', str(content_length))
self.end_headers()
self.wfile.write(content)
+ logger.debug('%s bytes response', content_length)
def chunk_size(self, content_length):
return min(16*1024, content_length)
diff --git a/oml/nodes.py b/oml/nodes.py
index 9dda107..42f1703 100644
--- a/oml/nodes.py
+++ b/oml/nodes.py
@@ -486,6 +486,9 @@ class Nodes(Thread):
self._q = Queue()
with db.session():
for u in user.models.User.query.filter_by(peered=True):
+ if 'local' in u.info:
+ del u.info['local']
+ u.save()
self.queue('add', u.id)
get_peer(u.id)
for u in user.models.User.query.filter_by(queued=True):
@@ -504,7 +507,6 @@ class Nodes(Thread):
while not state.shutdown:
args = self._q.get()
if args:
- logger.debug('processing nodes queue: next: %s, %s entries in queue', args[0], self._q.qsize())
if args[0] == 'add':
self._add(*args[1:])
elif args[0] == 'pull':
@@ -513,8 +515,6 @@ class Nodes(Thread):
self._call(*args)
def queue(self, *args):
- if args:
- logger.debug('add %s to queue, queue currently has %s entries', args[0], self._q.qsize())
self._q.put(list(args))
def is_online(self, id):
diff --git a/oml/settings.py b/oml/settings.py
index 4ef0843..23b0f35 100644
--- a/oml/settings.py
+++ b/oml/settings.py
@@ -95,4 +95,4 @@ FULLTEXT_SUPPORT = fulltext.platform_supported()
if not FULLTEXT_SUPPORT:
config['itemKeys'] = [k for k in config['itemKeys'] if k['id'] != 'fulltext']
-DB_VERSION = 15
+DB_VERSION = 14
diff --git a/oml/state.py b/oml/state.py
index cc1e804..606a22b 100644
--- a/oml/state.py
+++ b/oml/state.py
@@ -15,6 +15,7 @@ shutdown = False
websockets = []
uisockets = []
peers = {}
+
changelog_size = None
activity = {}
diff --git a/oml/update.py b/oml/update.py
index 07cddb4..8dab498 100644
--- a/oml/update.py
+++ b/oml/update.py
@@ -371,9 +371,7 @@ class Update(Thread):
db_version = migrate_12()
if db_version < 13:
db_version = migrate_13()
- if db_version < 15:
- db_version = migrate_15()
- settings.server['db_version'] = db_version
+ settings.server['db_version'] = settings.DB_VERSION
def run(self):
self.status('Checking for updates...')
@@ -620,14 +618,10 @@ def migrate_13():
settings.server['revision'] = revision
return 13
-def migrate_15():
- from user.models import List, User
+def migrate_14():
+ from user.models import List
with db.session():
l = List.get(':Public')
if l and not len(l.items):
l.remove()
- for u in User.query:
- if 'local' in u.info:
- del u.info['local']
- u.save()
- return 15
+ return 14
diff --git a/oml/user/models.py b/oml/user/models.py
index 3d7284a..f90cf89 100644
--- a/oml/user/models.py
+++ b/oml/user/models.py
@@ -57,7 +57,8 @@ class User(db.Model):
user = cls(id=id, peered=False, online=False)
user.info = {}
if state.nodes and state.nodes.local and id in state.nodes.local:
- user.info['username'] = state.nodes.local[id]['username']
+ user.info['local'] = state.nodes.local[id]
+ user.info['username'] = user.info['local']['username']
user.update_name()
user.save()
return user
@@ -83,8 +84,6 @@ class User(db.Model):
j = {}
if self.info:
j.update(self.info)
- if state.nodes and self.id in state.nodes.local:
- j['local'] = state.nodes.local[self.id].copy()
j['id'] = self.id
if self.pending:
j['pending'] = self.pending
@@ -604,15 +603,25 @@ def update_user_peering(user_id, peered, username=None):
u.update_peering(peered, username)
def remove_local_info(id):
- if state.nodes:
- trigger_event('status', {
- 'id': id,
- 'online': state.nodes.is_online(id)
- })
+ with db.session():
+ u = User.get(id, for_update=True)
+ if u and 'local' in u.info:
+ del u.info['local']
+ u.save()
+ u.trigger_status()
def add_local_info(data):
- if state.nodes:
- state.nodes.queue('add', data['id'])
+ with db.session():
+ u = User.get(data['id'], for_update=True)
+ if u:
+ if u.info['username'] != data['username']:
+ u.info['username'] = data['username']
+ u.update_name()
+ u.info['local'] = data
+ u.save()
+ if state.nodes:
+ state.nodes.queue('add', u.id)
+
def upload(data):
delay = 60
diff --git a/static/css/oml.css b/static/css/oml.css
index aae24a4..33ae71b 100644
--- a/static/css/oml.css
+++ b/static/css/oml.css
@@ -1,5 +1,4 @@
.OMLQuote {
- padding: 8px;
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;
diff --git a/static/js/annotation.js b/static/js/annotation.js
index ee77fc3..aeda34a 100644
--- a/static/js/annotation.js
+++ b/static/js/annotation.js
@@ -1,18 +1,16 @@
'use strict';
oml.ui.annotation = function(annotation, $iframe) {
- var $quote = Ox.Element()
- .addClass('OxSelectable OMLQuote')
- .append(
- Ox.Element().html(Ox.encodeHTMLEntities(annotation.text).replace(/\n/g, '
'))
- ).on({
- click: function(event) {
- that.select()
- $iframe.postMessage('selectAnnotation', {
- id: annotation.id
- })
- }
+ var $quote = Ox.Element().addClass('OxSelectable OMLQuote').css({
+ padding: '8px'
+ }).html(Ox.encodeHTMLEntities(annotation.text).replace(/\n/g, '
')).on({
+ click: function(event) {
+ that.select()
+ $iframe.postMessage('selectAnnotation', {
+ id: annotation.id
})
+ }
+ })
var notes = annotation.notes.length ? annotation.notes.map(function(note) {
note.editable = !note.user
return note
diff --git a/static/js/utils.js b/static/js/utils.js
index f4bb2b9..3ac249e 100644
--- a/static/js/utils.js
+++ b/static/js/utils.js
@@ -432,6 +432,7 @@ oml.enableDragAndDrop = function($list, canMove) {
) {
var targets = drag.action == 'copy' ? drag.target.id
: [oml.user.ui._list, drag.target.id];
+ cleanup(250);
oml.doHistory(drag.action, data.ids, targets, function() {
Ox.Request.clearCache('find');
oml.api.find({
@@ -454,7 +455,6 @@ oml.enableDragAndDrop = function($list, canMove) {
if (drag.action == 'move') {
oml.$ui.list.updateElement();
}
- cleanup(250);
});
} else {
cleanup()
@@ -492,6 +492,7 @@ oml.enableDragAndDrop = function($list, canMove) {
text = Ox._('You cannot move books
out of a smart list.');
}
} else if (drag.target) {
+ console.log(drag.target)
targetText = drag.target.type == 'libraries' ? Ox._('a library')
: drag.target.type == 'library' ?
drag.target.user == ''