saving expanded status as label

This commit is contained in:
zadam 2020-10-23 00:11:44 +02:00
parent 4ce2eaa919
commit 55f04436c0
4 changed files with 33 additions and 3 deletions

View File

@ -0,0 +1,18 @@
import server from './server.js';
async function addLabel(noteId, name, value = "") {
await server.put(`notes/${noteId}/attribute`, {
type: 'label',
name: name,
value: value
});
}
async function removeAttributeById(noteId, attributeId) {
await server.remove(`notes/${noteId}/attributes/${attributeId}`);
}
export default {
addLabel,
removeAttributeById
}

View File

@ -1,6 +1,7 @@
import linkService from "./link.js"; import linkService from "./link.js";
import noteContentRenderer from "./note_content_renderer.js"; import noteContentRenderer from "./note_content_renderer.js";
import treeCache from "./tree_cache.js"; import treeCache from "./tree_cache.js";
import attributeService from "./attributes.js";
const ZOOMS = { const ZOOMS = {
1: { 1: {
@ -182,7 +183,7 @@ async function renderNoteListContent($noteList, parentNote, notes, page = 1, pag
} }
} }
async function renderList(notes, parentNote = null) { async function renderList(notes, parentNote) {
const $noteList = $(TPL); const $noteList = $(TPL);
$noteList.find('.expand-children-button').on('click', async () => { $noteList.find('.expand-children-button').on('click', async () => {
@ -194,6 +195,10 @@ async function renderList(notes, parentNote = null) {
} }
await toggleCards($unexpandedCards, true); await toggleCards($unexpandedCards, true);
if (!parentNote.hasLabel('expanded')) {
await attributeService.addLabel(parentNote.noteId, 'expanded');
}
} }
}); });
@ -201,6 +206,11 @@ async function renderList(notes, parentNote = null) {
const $expandedCards = $noteList.find('.note-book-card.expanded'); const $expandedCards = $noteList.find('.note-book-card.expanded');
await toggleCards($expandedCards, false); await toggleCards($expandedCards, false);
// owned is important - we shouldn't remove inherited expanded labels
for (const expandedAttr of parentNote.getOwnedLabels('expanded')) {
await attributeService.removeAttributeById(parentNote.noteId, expandedAttr.attributeId);
}
}); });
await renderNoteListContent($noteList, parentNote, notes); await renderNoteListContent($noteList, parentNote, notes);

View File

@ -63,7 +63,7 @@ export default class BookTypeWidget extends TypeWidget {
// const zoomLevel = parseInt(note.getLabelValue('bookZoomLevel')) || this.getDefaultZoomLevel(); // const zoomLevel = parseInt(note.getLabelValue('bookZoomLevel')) || this.getDefaultZoomLevel();
// this.setZoom(zoomLevel); // this.setZoom(zoomLevel);
this.$content.append(await noteListRenderer.renderList(await note.getChildNotes())); this.$content.append(await noteListRenderer.renderList(await note.getChildNotes(), note));
} }
/** @return {boolean} true if this is "auto book" activated (empty text note) and not explicit book note */ /** @return {boolean} true if this is "auto book" activated (empty text note) and not explicit book note */

View File

@ -52,7 +52,7 @@ function updateNoteAttribute(req) {
attribute.type = body.type; attribute.type = body.type;
} }
if (body.value.trim()) { if (attribute.type === 'label' || body.value.trim()) {
attribute.value = body.value; attribute.value = body.value;
} }
else { else {
@ -62,6 +62,8 @@ function updateNoteAttribute(req) {
attribute.save(); attribute.save();
console.log("Saving", attribute);
return { return {
attributeId: attribute.attributeId attributeId: attribute.attributeId
}; };