ywana-core8 0.0.566 → 0.0.569

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.566",
3
+ "version": "0.0.569",
4
4
  "description": "ywana-core8",
5
5
  "homepage": "https://ywana.github.io/workspace",
6
6
  "author": "Ernesto Roldan Garcia",
@@ -11,6 +11,19 @@ menu.collection-page>header {
11
11
  border-bottom: dotted 1px var(--divider-color);
12
12
  }
13
13
 
14
+ menu.collection-page>nav.collection-filters {
15
+ height: 2rem;
16
+ display: flex;
17
+ justify-content: flex-end;
18
+ border-bottom: dotted 1px var(--divider-color);
19
+ background-color: var(--background-color);
20
+ }
21
+
22
+ menu.collection-page>main.collection-filters {
23
+ border-bottom: dotted 1px var(--divider-color);
24
+ background-color: var(--background-color);
25
+ }
26
+
14
27
  menu.collection-page>.list {
15
28
  overflow:auto;
16
29
  }
@@ -29,12 +29,17 @@ export const CollectionPage = (props) => {
29
29
 
30
30
  const [pageContext, setPageContext] = useContext(PageContext)
31
31
  const context = CollectionContext(url, field, host, page, fetching)
32
+ const [showFilter, setShowFilter] = useState(false)
32
33
 
33
34
  useEffect(async () => {
34
35
  await context.load()
35
36
  setPageContext(context)
36
37
  }, [])
37
38
 
39
+ function toggleFilters() {
40
+ setShowFilter(!showFilter)
41
+ }
42
+
38
43
  async function reload() {
39
44
  await pageContext.load()
40
45
  setPageContext(Object.assign({}, pageContext))
@@ -71,8 +76,9 @@ export const CollectionPage = (props) => {
71
76
  </Header>
72
77
  <menu className={`collection-page ${className}`}>
73
78
  <Header title={<Text>{name}</Text>} >
79
+ { canFilter ? showFilter ? <Icon icon="filter_list" size="small" clickable action={toggleFilters} /> : <Icon icon="filter_list_off" size="small" clickable action={toggleFilters} /> : false }
74
80
  </Header>
75
- {canFilter ? <CollectionFilters schema={schema} /> : null}
81
+ {canFilter && showFilter ? <CollectionFilters schema={schema} /> : null}
76
82
  {levels ? <CollectionTree icon={icon} levels={levels} onSelect={onSelect} sorter={sorter} searchBy={searchBy} /> : <CollectionList groupBy={groupBy} onSelect={onSelect} searchBy={searchBy} />}
77
83
  </menu>
78
84
  <main key={id} className={`collection-page ${className}`}>
@@ -123,10 +129,10 @@ export const CollectionFilters = (props) => {
123
129
  const content = new Content(filterSchema, form)
124
130
  return (
125
131
  <Fragment>
126
- <Header className="table-filters" title={<Text>Filters</Text>} >
127
- <Icon icon="filter_list_off" size="small" clickable action={clear} />
128
- </Header>
129
- <main className="table-filters">
132
+ <nav className="collection-filters">
133
+ <Icon icon="clear_all" size="small" clickable action={clear} />
134
+ </nav>
135
+ <main className="collection-filters">
130
136
  <ContentEditor content={content} onChange={change} />
131
137
  </main>
132
138
  </Fragment>
@@ -365,8 +371,13 @@ export const CollectionContext = (url, field, host, page, fetching) => {
365
371
  return {
366
372
 
367
373
  all: [],
374
+ filters: {},
368
375
  selected: null,
369
376
 
377
+ changeFilters(filters) {
378
+ this.filters = filters
379
+ },
380
+
370
381
  async load() {
371
382
  try {
372
383
  const data = await API.all(null, page);
@@ -33,9 +33,11 @@ export const TokenField = ({ id, label, tokens = [], readOnly, options, onChange
33
33
  event.preventDefault()
34
34
  event.stopPropagation()
35
35
  const token = event.target.value
36
- const next = Array.isArray(tokens) ? tokens.concat(token) : [token]
37
- if (onChange) onChange(id, next)
38
- setValue('')
36
+ if (token && token.length > 0) {
37
+ const next = Array.isArray(tokens) ? tokens.concat(token) : [token]
38
+ if (onChange) onChange(id, next)
39
+ setValue('')
40
+ }
39
41
  }
40
42
 
41
43
  if (value === '' && tokens.length > 0 && event.key === 'Backspace') {
@@ -199,16 +199,16 @@ const Page5 = (props) => {
199
199
  }
200
200
 
201
201
  const schema = {
202
- field6: { id: "field6", section: "C", type: TYPES.ARRAY , item: ENTITYTYPE, label: "Collection 100" },
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: false , label: "State" , options: [
202
+ field6: { id: "field6", section: "C", type: TYPES.ARRAY , item: ENTITYTYPE , filter: false , label: "Collection 100"},
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: false , label: "State" , options: [
205
205
  { label: "Pendiente", value: "NOT_CLASSIFIED" },
206
206
  { label: "Clasificada", value: "CLASSIFIED"},
207
207
  ]},
208
- field1: { id: "field1", section: "A", type: TYPES.STRING , format: FORMATS.NONE , required: true, tab: false, grouper: true , column: true , filter: true , label: "field1" },
209
- field2: { id: "field2", section: "B", type: TYPES.STRING , format: FORMATS.NONE , required: true, tab: false, grouper: true , column: true , filter: true , label: "field2" },
210
- field4: { id: "field4", section: "B", type: TYPES.STRING , format: FORMATS.COLOR, required: true, tab: false, grouper: true , column: true , filter: true , label: "Color" },
211
- field5: { id: "field5", section: "B", type: TYPES.ENTITY, item: ENTITYTYPE, format: FORMATS.NONE , editable: true, tab: false, grouper: false, column: true , filter: true , like: false, label: "Entity5"},
208
+ field1: { id: "field1", section: "A", type: TYPES.STRING , format: FORMATS.NONE , required: true, tab: false, grouper: true , column: true , filter: false , label: "field1" },
209
+ field2: { id: "field2", section: "B", type: TYPES.STRING , format: FORMATS.NONE , required: true, tab: false, grouper: true , column: true , filter: false , label: "field2" },
210
+ field4: { id: "field4", section: "B", type: TYPES.STRING , format: FORMATS.COLOR, required: true, tab: false, grouper: true , column: true , filter: false , label: "Color" },
211
+ field5: { id: "field5", section: "B", type: TYPES.ENTITY, item: ENTITYTYPE, format: FORMATS.NONE , editable: true, tab: false, grouper: false, column: true , filter: false, like: false, label: "Entity5"},
212
212
  id : { id: "id", type: TYPES.STRING },
213
213
  }
214
214
 
@@ -217,7 +217,7 @@ 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={["field1"]} levels={["color"]} // menu
220
+ searchBy={["field1"]} levels={["color"]} canFilter={true} // menu
221
221
  editor="TABBED" canAdd={true} // editor
222
222
  />
223
223
  </Fragment>
@@ -93,13 +93,13 @@ export const Planner = ({ title, events = [], lanes = [], navigation = true, onS
93
93
  {navigation ? (
94
94
  <Header title={label}>
95
95
  &nbsp;&nbsp;
96
- <Button label="This Week" outlined action={showThisWeek}/>
96
+ <Button label="Esta Semana" outlined action={showThisWeek}/>
97
97
  <Icon icon="chevron_right" clickable action={next} />
98
- <TextField id="to" type="date" label="To" value={to} onChange={(id, value) => setTo(value)} />
98
+ <TextField id="to" type="date" label="Hasta" value={to} onChange={(id, value) => setTo(value)} />
99
99
  <div className="expand"></div>
100
- <DropDown id="ranges" label="Date Range" options={DATE_RANGE} value={dateRange} onChange={(id, value) => setDateRange(value)} />
100
+ <DropDown id="ranges" label="Rango" options={DATE_RANGE} value={dateRange} onChange={(id, value) => setDateRange(value)} />
101
101
  <div className="expand"></div>
102
- <TextField id="from" type="date" label="From" value={from} onChange={(id, value) => setFrom(value)} />
102
+ <TextField id="from" type="date" label="Desde" value={from} onChange={(id, value) => setFrom(value)} />
103
103
  <Icon icon="chevron_left" clickable action={prev} />
104
104
  </Header>
105
105
  ) : null}