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 noteContentRenderer from "./note_content_renderer.js";
import treeCache from "./tree_cache.js";
import attributeService from "./attributes.js";
const ZOOMS = {
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);
$noteList.find('.expand-children-button').on('click', async () => {
@ -194,6 +195,10 @@ async function renderList(notes, parentNote = null) {
}
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');
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);

View file

@ -63,7 +63,7 @@ export default class BookTypeWidget extends TypeWidget {
// const zoomLevel = parseInt(note.getLabelValue('bookZoomLevel')) || this.getDefaultZoomLevel();
// 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 */

View file

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