ywana-core8 0.0.628 → 0.0.631

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ywana-core8",
3
- "version": "0.0.628",
3
+ "version": "0.0.631",
4
4
  "description": "ywana-core8",
5
5
  "homepage": "https://ywana.github.io/workspace",
6
6
  "author": "Ernesto Roldan Garcia",
@@ -21,7 +21,7 @@ export const CollectionPage = (props) => {
21
21
  schema, url, field, host, page, fetching = false,
22
22
  actions = [], onSelect,
23
23
  canFilter = false, canAdd = false, canDelete = false, canEdit = false, searchBy, addValidator,
24
- autosave = false, delay = 1000,
24
+ autosave = false, delay = 1000, patch = false,
25
25
  groupBy, levels, sorter,
26
26
  editor,
27
27
  footer,
@@ -86,7 +86,7 @@ export const CollectionPage = (props) => {
86
86
  {levels ? <CollectionTree schema={schema} icon={icon} levels={levels} onSelect={onSelect} sorter={sorter} searchBy={searchBy} /> : <CollectionList groupBy={groupBy} onSelect={onSelect} searchBy={searchBy} />}
87
87
  </menu>
88
88
  <main key={id} className={`collection-page ${className}`}>
89
- <CollectionEditor icon={icon} schema={schema} layout={editor} autosave={autosave} delay={delay} canDelete={canDelete} canEdit={canEdit} onReload={reloadSelection} />
89
+ <CollectionEditor icon={icon} schema={schema} layout={editor} autosave={autosave} delay={delay} canDelete={canDelete} canEdit={canEdit} onReload={reloadSelection} patch={patch}/>
90
90
  {children ? <article>{children}</article> : null}
91
91
  <footer>
92
92
  {footer}
@@ -310,7 +310,7 @@ export const CollectionTree = (props) => {
310
310
  const CollectionEditor = (props) => {
311
311
  const [pageContext, setPageContext] = useContext(PageContext)
312
312
  const { selected } = pageContext
313
- const { icon, schema, layout, autosave = false, delay = 1000, canDelete, canEdit, onReload } = props
313
+ const { icon, schema, layout, autosave = false, delay = 1000, canDelete, canEdit, onReload, patch=false } = props
314
314
  const timer = useRef(null)
315
315
  const [form, setForm] = useState(selected)
316
316
 
@@ -348,7 +348,11 @@ const CollectionEditor = (props) => {
348
348
  }
349
349
 
350
350
  async function save() {
351
- await pageContext.update(form)
351
+ if (patch)
352
+ await pageContext.patch(form.id, form)
353
+ } else {
354
+ await pageContext.update(form)
355
+ }
352
356
  setPageContext(Object.assign({}, pageContext))
353
357
  }
354
358
 
@@ -412,34 +412,10 @@ export const CollectionEditor = ({ field, value = [], onChange, onReload }) => {
412
412
  }
413
413
  }
414
414
 
415
- function change(index, cellId, cellValue) {
416
- if (onChange) {
417
- const next = value.slice()
418
- next[index][cellId] = cellValue
419
- onChange(id, next)
420
- }
421
- }
422
-
423
415
  function reload() {
424
416
  if (onReload) onReload()
425
417
  }
426
418
 
427
- /* const columns = Object.values(item)
428
- .filter(field => field.column === true)
429
- .map((item) => ({ ...item, onChange: change }))
430
- columns.push({ id: 'actions', label: 'Actions' })
431
-
432
- const rows = value.map((item, index) => ({
433
- ...item,
434
- id: index,
435
- actions: [
436
- <Icon icon='delete' clickable action={() => remove(index)} size="small" />
437
- ]
438
- }))
439
-
440
- const table = { columns, rows }
441
- */
442
-
443
419
  return (
444
420
  <div className='collection-editor'>
445
421
  {
@@ -123,42 +123,47 @@ export class ContentType {
123
123
  const fields = Object.entries(this._schema)
124
124
  const next = fields.reduce((next, [name, field]) => {
125
125
 
126
- const { type, item, optional } = field
126
+ const { type, item, optional, outsider } = field
127
127
  const entryData = data ? data[name] : null
128
128
 
129
- switch (type) {
129
+ if (outsider === true) {
130
+ // Dont send outsider data
131
+ } else {
130
132
 
131
- case TYPES.STRING:
132
- next[name] = entryData || field.default
133
- break;
133
+ switch (type) {
134
134
 
135
- case TYPES.NUMBER:
136
- next[name] = entryData || field.default
137
- break;
135
+ case TYPES.STRING:
136
+ next[name] = entryData || field.default
137
+ break;
138
138
 
139
- case TYPES.BOOLEAN:
140
- next[name] = entryData || field.default
141
- break
139
+ case TYPES.NUMBER:
140
+ next[name] = entryData || field.default
141
+ break;
142
142
 
143
- case TYPES.ENTITY:
144
- if (optional === true && !entryData) break;
145
- const child1 = new ContentType(item)
146
- next[name] = child1.value(entryData)
147
- break;
143
+ case TYPES.BOOLEAN:
144
+ next[name] = entryData || field.default
145
+ break
148
146
 
149
- case TYPES.ARRAY:
150
- if (item === TYPES.STRING) {
151
- next[name] = entryData ? entryData : []
152
- } else {
153
- const child2 = new ContentType(item)
154
- next[name] = entryData ? entryData.map(data2 => child2.value(data2)) : []
155
- }
156
- break;
147
+ case TYPES.ENTITY:
148
+ if (optional === true && !entryData) break;
149
+ const child1 = new ContentType(item)
150
+ next[name] = child1.value(entryData)
151
+ break;
157
152
 
158
- default:
159
- next[name] = field
160
- break;
153
+ case TYPES.ARRAY:
154
+ if (item === TYPES.STRING) {
155
+ next[name] = entryData ? entryData : []
156
+ } else {
157
+ const child2 = new ContentType(item)
158
+ next[name] = entryData ? entryData.map(data2 => child2.value(data2)) : []
159
+ }
160
+ break;
161
+
162
+ default:
163
+ next[name] = field
164
+ break;
161
165
 
166
+ }
162
167
  }
163
168
 
164
169
  return next