diff --git a/oml/item/api.py b/oml/item/api.py
index 16a66a3..c8c974d 100644
--- a/oml/item/api.py
+++ b/oml/item/api.py
@@ -247,17 +247,20 @@ def findMetadata(data):
elif key == 'id':
import user.models
items = {}
- for m in user.models.Metadata.query.filter_by(item_id=data[key]):
- if m.data_hash not in items:
- items[m.data_hash] = m.data
- items[m.data_hash]['users'] = [m.user_id]
- j = items[m.data_hash]
- for key in [k['id'] for k in settings.config['itemKeys'] if isinstance(k['type'], list)]:
- if key in j and not isinstance(j[key], list):
- j[key] = [j[key]] if j[key] else []
- else:
- items[m.data_hash]['users'].append(m.user_id)
- response['items'] = list(items.values())
+ for u in user.models.User.query.filter_by(peered=True):
+ peer = utils.get_peer(u.id)
+ if data[key] in peer.library:
+ h = peer.get_metahash(data[key])
+ if h not in items:
+ items[h] = peer.library[data[key]].get('meta', {}).copy()
+ items[h]['users'] = [u.id]
+ j = items[h]
+ for key in [k['id'] for k in settings.config['itemKeys'] if isinstance(k['type'], list)]:
+ if key in j and not isinstance(j[key], list):
+ j[key] = [j[key]] if j[key] else []
+ else:
+ items[h]['users'].append(u.id)
+ response['items'] = list(items.values())
return response
actions.register(findMetadata)
diff --git a/static/js/identifyDialog.js b/static/js/identifyDialog.js
index da1299e..af74138 100644
--- a/static/js/identifyDialog.js
+++ b/static/js/identifyDialog.js
@@ -277,7 +277,8 @@ oml.ui.identifyDialog = function(data) {
$list = Ox.TableList({
columns: [{
format: function(value, data) {
- return '' + data.title + ' ' + data.author
+ return '' + Ox.encodeHTMLEntities(data.title) + ' '
+ + Ox.encodeHTMLEntities(data.author);
},
id: 'index',
visible: true,