hide auto links by default in relation map, allow configuring displayed relations, fixes #1674

This commit is contained in:
zadam 2021-02-22 22:34:33 +01:00
parent 208baa56e9
commit 90c6852423
3 changed files with 15 additions and 3 deletions

View File

@ -276,7 +276,7 @@ export default class NoteDetailWidget extends TabAwareWidget {
const label = attrs.find(attr =>
attr.type === 'label'
&& ['readOnly', 'autoReadOnlyDisabled', 'cssClass', 'bookZoomLevel'].includes(attr.name)
&& ['readOnly', 'autoReadOnlyDisabled', 'cssClass', 'bookZoomLevel', 'displayRelations'].includes(attr.name)
&& attr.isAffecting(this.note));
const relation = attrs.find(attr =>

View File

@ -285,7 +285,7 @@ export default class RelationMapTypeWidget extends TypeWidget {
async loadNotesAndRelations() {
const noteIds = this.mapData.notes.map(note => note.noteId);
const data = await server.post("notes/relation-map", {noteIds});
const data = await server.post("notes/relation-map", {noteIds, relationMapNoteId: this.noteId});
this.relations = [];

View File

@ -117,7 +117,8 @@ function setNoteTypeMime(req) {
}
function getRelationMap(req) {
const noteIds = req.body.noteIds;
const {relationMapNoteId, noteIds} = req.body;
const resp = {
// noteId => title
noteTitles: {},
@ -134,12 +135,23 @@ function getRelationMap(req) {
const questionMarks = noteIds.map(noteId => '?').join(',');
const relationMapNote = repository.getNote(relationMapNoteId);
const displayRelationsVal = relationMapNote.getLabelValue('displayRelations');
const displayRelations = !displayRelationsVal ? [] : displayRelationsVal
.split(",")
.map(token => token.trim());
console.log("displayRelations", displayRelations);
const notes = repository.getEntities(`SELECT * FROM notes WHERE isDeleted = 0 AND noteId IN (${questionMarks})`, noteIds);
for (const note of notes) {
resp.noteTitles[note.noteId] = note.title;
resp.relations = resp.relations.concat(note.getRelations()
.filter(relation => !relation.isAutoLink() || displayRelations.includes(relation.name))
.filter(relation => displayRelations.length === 0 || displayRelations.includes(relation.name))
.filter(relation => noteIds.includes(relation.value))
.map(relation => ({
attributeId: relation.attributeId,