diff --git a/lib/api/datatables.js b/lib/api/datatables.js index cebf1fcd..7190ab8c 100644 --- a/lib/api/datatables.js +++ b/lib/api/datatables.js @@ -56,11 +56,16 @@ function collectionMembersDatatable (req, res) { ]).then((result) => { const [count, filterCount, members] = result + const uniqueMembers = members.filter( + (item, index, self) => + index === self.findIndex((t) => t.uri === item.uri) + ) + res.header('content-type', 'application/json').send(JSON.stringify({ draw: parseInt(req.query.draw), recordsTotal: count, recordsFiltered: filterCount, - data: members.map((member) => { + data: uniqueMembers.map((member) => { var memberUrl = uriToUrl(member.uri) if (member.uri.toString().startsWith(config.get('databasePrefix') + 'user/')) { if (req.headers.referer.toString().endsWith('/share')) { diff --git a/lib/views/admin/sparql.js b/lib/views/admin/sparql.js index 3462c06e..b177fbe5 100644 --- a/lib/views/admin/sparql.js +++ b/lib/views/admin/sparql.js @@ -40,6 +40,9 @@ function form (req, res, locals) { graphs = graphs.filter(result => result.startsWith(config.get('triplestore').graphPrefix)) + // Alphabetize the filtered graphs + graphs.sort((a, b) => a.localeCompare(b)) + return Promise.all( graphs.map((graph) => graphInfo(graph)) )