ywana-core8 0.0.631 → 0.0.632
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/dist/index.cjs +29 -28
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +3 -0
- package/dist/index.css.map +1 -1
- package/dist/index.modern.js +29 -28
- package/dist/index.modern.js.map +1 -1
- package/dist/index.umd.js +29 -28
- package/dist/index.umd.js.map +1 -1
- package/package.json +1 -1
- package/src/domain/CollectionPage.css +3 -0
- package/src/domain/CollectionPage.js +30 -20
- package/src/domain/ContentType.js +1 -1
- package/src/site/site.test.js +4 -4
package/package.json
CHANGED
@@ -2,7 +2,7 @@ import equal from 'deep-equal'
|
|
2
2
|
import React, { Fragment, useContext, useEffect, useRef, useState, useMemo } from 'react'
|
3
3
|
import { HTTPClient, Session } from '../http'
|
4
4
|
import { PageContext } from '../site'
|
5
|
-
import { Button, Header, Icon, List, Menu, MenuIcon, MenuItem, Text, Tree, TreeItem, TreeNode, TextField } from '../html'
|
5
|
+
import { Button, Header, Icon, List, Menu, MenuIcon, MenuItem, Text, Tree, TreeItem, TreeNode, TextField, Chip } from '../html'
|
6
6
|
import { Content, TYPES } from './ContentType'
|
7
7
|
import { ContentEditor, TabbedContentEditor, TreededContentEditor } from './ContentEditor'
|
8
8
|
import { CreateContentDialog } from './CreateContentDialog'
|
@@ -30,7 +30,7 @@ export const CollectionPage = (props) => {
|
|
30
30
|
|
31
31
|
const [pageContext, setPageContext] = useContext(PageContext)
|
32
32
|
const context = CollectionContext(url, field, host, page, fetching)
|
33
|
-
|
33
|
+
|
34
34
|
const { all } = pageContext
|
35
35
|
|
36
36
|
useEffect(async () => {
|
@@ -38,9 +38,7 @@ export const CollectionPage = (props) => {
|
|
38
38
|
setPageContext(context)
|
39
39
|
}, [])
|
40
40
|
|
41
|
-
|
42
|
-
setShowFilter(!showFilter)
|
43
|
-
}
|
41
|
+
|
44
42
|
|
45
43
|
async function reload() {
|
46
44
|
await pageContext.load()
|
@@ -79,14 +77,11 @@ export const CollectionPage = (props) => {
|
|
79
77
|
{renderActions()}
|
80
78
|
</Header>
|
81
79
|
<menu className={`collection-page ${className}`}>
|
82
|
-
<
|
83
|
-
{canFilter ? showFilter ? <Icon icon="filter_list" size="small" clickable action={toggleFilters} /> : <Icon icon="filter_list_off" size="small" clickable action={toggleFilters} /> : false}
|
84
|
-
</Header>
|
85
|
-
{canFilter && showFilter ? <CollectionFilters schema={schema} /> : null}
|
80
|
+
{canFilter ? <CollectionFilters schema={schema} /> : null}
|
86
81
|
{levels ? <CollectionTree schema={schema} icon={icon} levels={levels} onSelect={onSelect} sorter={sorter} searchBy={searchBy} /> : <CollectionList groupBy={groupBy} onSelect={onSelect} searchBy={searchBy} />}
|
87
82
|
</menu>
|
88
83
|
<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} patch={patch}/>
|
84
|
+
<CollectionEditor icon={icon} schema={schema} layout={editor} autosave={autosave} delay={delay} canDelete={canDelete} canEdit={canEdit} onReload={reloadSelection} patch={patch} />
|
90
85
|
{children ? <article>{children}</article> : null}
|
91
86
|
<footer>
|
92
87
|
{footer}
|
@@ -103,6 +98,7 @@ export const CollectionFilters = (props) => {
|
|
103
98
|
|
104
99
|
const { schema, onChange } = props
|
105
100
|
const [form, setForm] = useState({})
|
101
|
+
const [showFilter, setShowFilter] = useState(false)
|
106
102
|
|
107
103
|
const filterSchema = useMemo(() => {
|
108
104
|
const filterSchema = Object.assign({}, schema)
|
@@ -133,15 +129,29 @@ export const CollectionFilters = (props) => {
|
|
133
129
|
change({})
|
134
130
|
}
|
135
131
|
|
132
|
+
function toggleFilters() {
|
133
|
+
setShowFilter(!showFilter)
|
134
|
+
}
|
135
|
+
|
136
136
|
const content = new Content(filterSchema, form)
|
137
137
|
return (
|
138
138
|
<Fragment>
|
139
|
-
<
|
140
|
-
<
|
141
|
-
|
142
|
-
|
143
|
-
<
|
144
|
-
</
|
139
|
+
<header>
|
140
|
+
<div className='expand'>
|
141
|
+
<Chip label="Activas" />
|
142
|
+
</div>
|
143
|
+
{showFilter ? <Icon icon="expand_less" size="small" clickable action={toggleFilters} /> : <Icon icon="expand_more" size="small" clickable action={toggleFilters} />}
|
144
|
+
</header>
|
145
|
+
{showFilter ? (
|
146
|
+
<>
|
147
|
+
<nav className="collection-filters">
|
148
|
+
<Icon icon="clear_all" size="small" clickable action={clear} />
|
149
|
+
</nav>
|
150
|
+
<main className="collection-filters">
|
151
|
+
<ContentEditor content={content} onChange={change} />
|
152
|
+
</main>
|
153
|
+
</>
|
154
|
+
) : null}
|
145
155
|
</Fragment>
|
146
156
|
)
|
147
157
|
}
|
@@ -310,7 +320,7 @@ export const CollectionTree = (props) => {
|
|
310
320
|
const CollectionEditor = (props) => {
|
311
321
|
const [pageContext, setPageContext] = useContext(PageContext)
|
312
322
|
const { selected } = pageContext
|
313
|
-
const { icon, schema, layout, autosave = false, delay = 1000, canDelete, canEdit, onReload, patch=false } = props
|
323
|
+
const { icon, schema, layout, autosave = false, delay = 1000, canDelete, canEdit, onReload, patch = false } = props
|
314
324
|
const timer = useRef(null)
|
315
325
|
const [form, setForm] = useState(selected)
|
316
326
|
|
@@ -348,10 +358,10 @@ const CollectionEditor = (props) => {
|
|
348
358
|
}
|
349
359
|
|
350
360
|
async function save() {
|
351
|
-
if (patch) {
|
361
|
+
if (patch) {
|
352
362
|
await pageContext.patch(form.id, form)
|
353
|
-
}
|
354
|
-
await pageContext.update(form)
|
363
|
+
} else {
|
364
|
+
await pageContext.update(form)
|
355
365
|
}
|
356
366
|
setPageContext(Object.assign({}, pageContext))
|
357
367
|
}
|
@@ -79,7 +79,7 @@ export class ContentType {
|
|
79
79
|
const attributes = Object.entries(this._schema)
|
80
80
|
return attributes
|
81
81
|
.filter(([name, attr]) => attr.required === true)
|
82
|
-
.every(([name, attr]) => data[name] !== undefined ? this.checkType(attr, data[name]) : false)
|
82
|
+
.every(([name, attr]) => data[name] && typeof(data[name]) !== undefined ? this.checkType(attr, data[name]) : false)
|
83
83
|
}
|
84
84
|
|
85
85
|
/**
|
package/src/site/site.test.js
CHANGED
@@ -20,7 +20,7 @@ const SiteTest = (prop) => {
|
|
20
20
|
const footer = <div>FOOTER</div>
|
21
21
|
|
22
22
|
return (
|
23
|
-
<Site icon="star" title="Site Test" init={"
|
23
|
+
<Site icon="star" title="Site Test" init={"PAGE5"} footer={footer}>
|
24
24
|
<Page id="PAGE1" section="SECTION1" icon="description" title="Page 1" layout="workspace">
|
25
25
|
<Page1 />
|
26
26
|
</Page>
|
@@ -201,7 +201,7 @@ const Page5 = (props) => {
|
|
201
201
|
const schema = {
|
202
202
|
field6: { id: "field6", section: "C", type: TYPES.ARRAY , item: ENTITYTYPE , filter: false , label: "Collection 100"},
|
203
203
|
name : { id: "name" , section: "A", type: TYPES.STRING , format: FORMATS.NONE , required: true, tab: false, grouper: true , column: true , filter: true , like: true, label: "Name" },
|
204
|
-
state : { id: "state" , section: "A", type: TYPES.STRING , format: FORMATS.NONE , required: true, tab: true , grouper: true , column: true , filter:
|
204
|
+
state : { id: "state" , section: "A", type: TYPES.STRING , format: FORMATS.NONE , required: true, tab: true , grouper: true , column: true , filter: true , label: "State" , options: [
|
205
205
|
{ label: "Pendiente", value: "NOT_CLASSIFIED" },
|
206
206
|
{ label: "Clasificada", value: "CLASSIFIED"},
|
207
207
|
]},
|
@@ -217,9 +217,9 @@ const Page5 = (props) => {
|
|
217
217
|
<CollectionPage
|
218
218
|
title="Referencias"
|
219
219
|
schema={schema} host="http://localhost:3000" url="/references" fetching={true} // resource
|
220
|
-
searchBy={["
|
220
|
+
searchBy={["name"]} levels={["color"]} canFilter={true} // menu
|
221
221
|
editor="TABBED" canAdd={true} // editor
|
222
222
|
/>
|
223
223
|
</Fragment>
|
224
224
|
)
|
225
|
-
}
|
225
|
+
}
|