app.addSetter('editBoardModal.open', (data) => { data.editBoardModal.name = data.board.name; data.editBoardModal.hidden = data.board.hidden; data.editBoardModal.active = true; }); app.addSetter('editBoardModal.close', (data) => { data.editBoardModal.name = ""; data.editBoardModal.hidden = 0; data.editBoardModal.active = false; }); app.addSetter('editBoardModal.save', async (data) => { store.do("loader.show"); let boardId = data.board.id; let name = data.editBoardModal.name; let hidden = data.editBoardModal.hidden; let idx = getBoardIndexById(boardId); if ( idx >= 0 ){ data.boards[idx].name = name; data.boards[idx].hidden = hidden; } if ( data.board ){ data.board.name = name; data.board.hidden = hidden; } let res = await fetch(`/api/boards/${boardId}`, { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ name: name, hidden: hidden }) }); if ( res.status == 200 ){ console.log(`updated board#${boardId}`); data.editBoardModal.active = false; } else { console.error(`error updating board#${boardId}`); } store.do("loader.hide"); }); app.addSetter('editBoardModal.delete', async (data) => { if ( !confirm("Are you sure you want to delete this board and all pins on it?") ){ return; } store.do("loader.show"); let boardId = data.board.id; let idx = getBoardIndexById(boardId); if ( idx >= 0 ){ data.boards.splice(idx, 1); } data.editBoardModal.active = false; window.location.hash = ""; let res = await fetch(`/api/boards/${boardId}`, { method: 'DELETE' }); if ( res.status == 200 ){ console.log(`deleted board#${boardId}`); } else { console.log(`error deleting board#${boardId}`); } store.do("loader.hide"); }); app.addGetter('editBoardModal.isValid', (data) => { if (!data.editBoardModal.name){ return false; } if ( data.editBoardModal.name.trim().length < 1 ){ return false; } return true; }); app.addComponent('editBoardModal', (store) => { return new Reef("#editBoardModal", { store: store, template: (data) => { return /*html*/` `; } }); });