ywana-core8 0.0.298 → 0.0.301

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.298",
3
+ "version": "0.0.301",
4
4
  "description": "ywana-core8",
5
5
  "author": "Ernesto Roldan Garcia",
6
6
  "license": "MIT",
@@ -66,4 +66,13 @@ main.table-filters {
66
66
 
67
67
  td.entity-cell {
68
68
  background-color: rgba(240,240,240,.4);
69
+ }
70
+
71
+ .table-queries-item {
72
+ display: flex;
73
+ align-items: center;
74
+ }
75
+
76
+ .table-queries-item>label {
77
+ flex: 1;
69
78
  }
@@ -22,7 +22,8 @@ export const TablePage = (props) => {
22
22
  autosave = true, delay = 1000,
23
23
  editable,
24
24
  actions = [], dev = false, tableActions, selectionActions = [],
25
- canFilter = false, canQuery = false, canAdd = true, canDelete = true, canEdit = true,
25
+ canFilter = false, canAdd = true, canDelete = true, canEdit = true,
26
+ canQuery = false, urlQuery,
26
27
  groupBy, validator, scenario,
27
28
  formFilter, tableFilter, editorFilter = false
28
29
  } = props
@@ -46,7 +47,7 @@ export const TablePage = (props) => {
46
47
  }, [form])
47
48
 
48
49
  useEffect(async () => {
49
- const context = TableContext(url, field, host)
50
+ const context = TableContext(url, field, host, urlQuery)
50
51
  await context.load()
51
52
  if (canQuery) await context.loadQueries()
52
53
  setPageContext(context)
@@ -63,7 +64,7 @@ export const TablePage = (props) => {
63
64
  function saveQuery(filters) {
64
65
  const onOK = async (form) => {
65
66
  form.filters = filters
66
- await pageContext.createQuery(form)
67
+ await pageContext.createQuery(form, urlQuery)
67
68
  setPageContext(Object.assign({}, pageContext))
68
69
  }
69
70
  site.openDialog(<CreateContentDialog label="Nueva query" type={QUERY} onOK={onOK} />)
@@ -135,7 +136,7 @@ export const TablePage = (props) => {
135
136
  </Header>
136
137
  {canQuery || canFilter ? (
137
138
  <menu className="table-page">
138
- {canQuery ? <TableQueries schema={schema} /> : null}
139
+ {canQuery ? <TableQueries schema={schema} url={urlQuery}/> : null}
139
140
  {canFilter ? <TableFilters schema={schema} onSave={saveQuery}/> : null}
140
141
  </menu>
141
142
  ) : null }
@@ -209,26 +210,35 @@ const TableSelector = (props) => {
209
210
  */
210
211
  const TableQueries = (props) => {
211
212
 
212
- function remove(id) {
213
- alert("TODO: remove query")
214
- }
215
-
216
- const queries = [
213
+ const [pageContext, setPageContext] = useContext(PageContext)
214
+ const { url } = props
215
+ const { queries= [
217
216
  { name: "Query 1", filters: {}},
218
217
  { name: "Query 2", filters: {}},
219
218
  { name: "Query 3", filters: {}},
220
- ]
219
+ ] } = pageContext
220
+
221
+ useEffect(() => {
222
+ pageContext.loadQueries()
223
+ }, [])
224
+
225
+
226
+ async function remove(id) {
227
+ await pageContext.removeQuery(id, url)
228
+ setPageContext(Object.assign({}, pageContext))
229
+ }
230
+
221
231
  return (
222
232
  <Fragment>
223
233
  <Header className="table-queries" title={<Text>Queries</Text>} />
224
234
  <main className="table-queries">
225
- {queries.map(query => (
235
+ {queries ? queries.map(query => (
226
236
  <div className="table-queries-item">
227
237
  <Icon icon="star" />
228
238
  <label>{query.name}</label>
229
239
  <Icon icon="close" clickable size="small" action={() => remove(query.id)} />
230
240
  </div>
231
- ))}
241
+ )) : <div>...empty...</div>}
232
242
  </main>
233
243
  </Fragment>
234
244
  )
@@ -438,7 +448,7 @@ export const TableEditor = (props) => {
438
448
  /**
439
449
  * Table Context
440
450
  */
441
- const TableContext = (url, field, host) => {
451
+ const TableContext = (url, field, host, urlQuery) => {
442
452
 
443
453
  const API = TableAPI(url, host)
444
454
 
@@ -518,7 +528,7 @@ const TableContext = (url, field, host) => {
518
528
 
519
529
  async loadQueries() {
520
530
  try {
521
- this.queries = await API.queries()
531
+ this.queries = await API.queries(urlQuery)
522
532
  } catch (error) {
523
533
  console.log(error)
524
534
  }
@@ -594,17 +604,20 @@ const TableAPI = (url, host) => {
594
604
  return http.DELETE(`${url}/${id}`)
595
605
  },
596
606
 
597
- queries() {
598
- return http.GET(`${url}/queries`)
607
+ queries(url2) {
608
+ const url3 = url2 ? url2 : url
609
+ return http.GET(`${url3}queries`)
599
610
  },
600
611
 
601
- createQuery(form) {
612
+ createQuery(form, url2) {
613
+ const url3 = url2 ? url2 : url
602
614
  const body = JSON.stringify(form)
603
- return http.POST(`${url}/queries`, body)
615
+ return http.POST(`${url3}queries`, body)
604
616
  },
605
617
 
606
- removeQuery(id) {
607
- return http.DELETE(`${url}/queries/${id}`)
618
+ removeQuery(id, url2) {
619
+ const url3 = url2 ? url2 : url
620
+ return http.DELETE(`${url3}queries/${id}`)
608
621
  },
609
622
  }
610
623
  }