Commit 06122043fa2db0b00c35584e6635056adfa5cf63
Getting closer to create
Anders Rune Jensen committed on 10/21/2017, 8:19:33 PMParent: 24301103fc79102ebc4d71e1454571b15c58592e
Files changed
book/html/create.js | changed |
book/html/layout/detail.js | changed |
book/obs/book.js | changed |
book/obs/struct.js | changed |
book/pull/db.js | changed |
book/html/create.js | ||
---|---|---|
@@ -2,23 +2,54 @@ | ||
2 | 2 … | const nest = require('depnest') |
3 | 3 … | |
4 | 4 … | exports.needs = nest({ |
5 | 5 … | 'blob.html.input': 'first', |
6 | - 'message.html.confirm': 'first' | |
6 … | + 'message.html.confirm': 'first', | |
7 … | + 'book.obs.struct': 'first', | |
8 … | + 'book.html': { | |
9 … | + 'title': 'first', | |
10 … | + 'authors': 'first', | |
11 … | + 'description': 'first' | |
12 … | + } | |
7 | 13 … | }) |
8 | 14 … | |
9 | 15 … | exports.gives = nest('book.html.create') |
10 | 16 … | |
11 | 17 … | exports.create = function (api) { |
12 | 18 … | return nest({ 'book.html.create': create }) |
13 | 19 … | |
14 | - // FIXME: UI to set | |
15 | - function create() { | |
16 | - // FIXME: create using db & the observable | |
20 … | + function createBook() { | |
21 … | + const { title, authors, description } = api.book.html | |
22 … | + let book = api.book.obs.struct() | |
23 … | + | |
24 … | + return h('Message -book-detail', [ | |
25 … | + title({ title: '', msg: { key: '' }, isEditing: true, onUpdate: book().common.title.set }), | |
26 … | + h('section.content', [ | |
27 … | + //images({images: obs.images, msg, isEditing, onUpdate: book.images.add}), | |
28 … | + h('section.authors', authors({authors: '', isEditing: true, | |
29 … | + onUpdate: book().common.authors.set})), | |
30 … | + h('section.description', description({description: '', | |
31 … | + isEditing: true, | |
32 … | + onUpdate: book().common.description.set})), | |
33 … | + //h('section.time', startDateTime({startDateTime: obs.startDateTime, msg, isEditing, onUpdate: editedGathering.startDateTime.set})), | |
34 … | + ]), | |
35 … | + h('section.actions', [ | |
36 … | + h('button.edit', { 'ev-click': () => { | |
37 … | + // FIXME: close? | |
38 … | + }}, 'Cancel'), | |
39 … | + h('button', {'ev-click': () => save(book)}, 'Create book') | |
40 … | + ]) | |
41 … | + ]) | |
42 … | + | |
43 … | + function save (book) { | |
44 … | + book.create() | |
45 … | + | |
46 … | + // FIXME: close/update? | |
47 … | + } | |
17 | 48 … | } |
18 | 49 … | |
19 | 50 … | function create () { |
20 | - const actions = h('button', {'ev-click': () => create()}, 'Create') | |
51 … | + const actions = h('button', {'ev-click': () => createBook()}, 'Create') | |
21 | 52 … | const composer = h('div', [ |
22 | 53 … | actions |
23 | 54 … | ]) |
24 | 55 … | return composer |
book/html/layout/detail.js | ||
---|---|---|
@@ -9,8 +9,9 @@ | ||
9 | 9 … | 'markdown': 'first' |
10 | 10 … | }, |
11 | 11 … | 'book.html': { |
12 | 12 … | 'title': 'first', |
13 … | + 'authors': 'first', | |
13 | 14 … | 'description': 'first' |
14 | 15 … | } |
15 | 16 … | }) |
16 | 17 … |
book/obs/book.js | ||
---|---|---|
@@ -24,16 +24,8 @@ | ||
24 | 24 … | } |
25 | 25 … | }) |
26 | 26 … | }) |
27 | 27 … | |
28 | - // FIXME: usage | |
29 | - book.create = function(commonObj, subjectiveObj, cb) | |
30 | - { | |
31 | - api.sbot.async.publish({ type: 'bookclub', | |
32 | - common: commonObj, | |
33 | - subjective: subjectiveObj }, cb) | |
34 | - } | |
35 | - | |
36 | 28 … | book.amend = function(cb) |
37 | 29 … | { |
38 | 30 … | let msg = { type: 'bookclub-update', root: id } |
39 | 31 … |
book/obs/struct.js | ||
---|---|---|
@@ -16,13 +16,34 @@ | ||
16 | 16 … | subjective: Set([]) |
17 | 17 … | }) |
18 | 18 … | |
19 | 19 … | // FIXME: subjective |
20 | - Object.keys(opts.common).forEach((k) => { | |
21 | - if (opts.common[k]) { | |
22 | - struct.common[k].set(opts.common[k]) | |
23 | - } | |
24 | - }) | |
20 … | + if (opts.common) { | |
21 … | + Object.keys(opts.common).forEach((k) => { | |
22 … | + if (opts.common[k]) { | |
23 … | + struct.common[k].set(opts.common[k]) | |
24 … | + } | |
25 … | + }) | |
26 … | + } | |
25 | 27 … | |
28 … | + struct.create = function(cb) | |
29 … | + { | |
30 … | + let commonObj = {} | |
31 … | + Object.keys(struct.common).forEach((k) => { | |
32 … | + if (struct.common[k]) { | |
33 … | + commonObj[k] = struct.common[k]() | |
34 … | + } | |
35 … | + }) | |
36 … | + | |
37 … | + let subjectiveObj = null // FIXME | |
38 … | + | |
39 … | + console.log(commonObj) | |
40 … | + return | |
41 … | + | |
42 … | + api.sbot.async.publish({ type: 'bookclub', | |
43 … | + common: commonObj, | |
44 … | + subjective: subjectiveObj }, cb) | |
45 … | + } | |
46 … | + | |
26 | 47 … | return struct |
27 | 48 … | }) |
28 | 49 … | } |
book/pull/db.js | ||
---|---|---|
@@ -1,9 +1,9 @@ | ||
1 | 1 … | const pull = require('pull-stream') |
2 | 2 … | const nest = require('depnest') |
3 | 3 … | |
4 | 4 … | exports.gives = nest({ |
5 | - 'book.pull': ['get', 'getAll', 'create', 'amend'] | |
5 … | + 'book.pull': ['get', 'getAll'] | |
6 | 6 … | }) |
7 | 7 … | |
8 | 8 … | exports.needs = nest({ |
9 | 9 … | 'sbot.pull.messagesByType': 'first', |
Built with git-ssb-web