@galadrim/galadmin 0.0.87 → 0.0.91

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.
Files changed (30) hide show
  1. package/dist/api.js +12 -10
  2. package/dist/api.js.map +1 -1
  3. package/dist/tsconfig.tsbuildinfo +1 -1
  4. package/dist/types/config.d.ts +3 -0
  5. package/package.json +1 -1
  6. package/src/api.ts +13 -11
  7. package/src/front/build/asset-manifest.json +7 -7
  8. package/src/front/build/index.html +1 -1
  9. package/src/front/build/static/js/{2.f2c3716e.chunk.js → 2.f7eb6c73.chunk.js} +3 -3
  10. package/src/front/build/static/js/{2.f2c3716e.chunk.js.LICENSE.txt → 2.f7eb6c73.chunk.js.LICENSE.txt} +0 -0
  11. package/src/front/build/static/js/{2.f2c3716e.chunk.js.map → 2.f7eb6c73.chunk.js.map} +1 -1
  12. package/src/front/build/static/js/main.9866c20c.chunk.js +2 -0
  13. package/src/front/build/static/js/main.9866c20c.chunk.js.map +1 -0
  14. package/src/front/node_modules/.cache/.eslintcache +1 -1
  15. package/src/front/node_modules/.cache/babel-loader/24219caae014deda10c22e10394d0474.json +1 -0
  16. package/src/front/node_modules/.cache/babel-loader/5e5471f6262188d58fadddab6f6e34f7.json +1 -0
  17. package/src/front/node_modules/.cache/babel-loader/75afe094860464eea4635ac4096f166b.json +1 -0
  18. package/src/front/node_modules/.cache/babel-loader/a60a212019ec841a23bb8f7ceb59c51a.json +1 -0
  19. package/src/front/node_modules/.cache/terser-webpack-plugin/content-v2/sha512/b8/b1/e57a780a9fc2b75c19e27fcad6c93721d4ef879c4c43a4cde3329b80a7b59900e90e27e2aeeed48429537aa3f3a9b4933c386ef3418420556380b587306c +1 -0
  20. package/src/front/node_modules/.cache/terser-webpack-plugin/content-v2/sha512/fa/66/8afa4931e2987ccafcf7006dca2f32e8dab9f7d836f3e27ff09beb7cb31896ef6e6ad7c2845550340f0212bf8db417c65cd3665c63f18cf6258e9c68a20e +1 -0
  21. package/src/front/node_modules/.cache/terser-webpack-plugin/index-v5/{96/a3/e4e1684d24fe2baf803921d59100b5e7ef38ab3ae521cab364cc89e14d06 → e5/36/db86229f8e748e052955d530e52e9d859c5307851c1370d3ce6e48a6c7c3} +1 -1
  22. package/src/front/node_modules/.cache/terser-webpack-plugin/index-v5/e8/a0/0d48cce4b946fe50c4b6bf34f7e1a52058d2d785e0ff7d6f841b115a2f4a +2 -0
  23. package/src/front/src/pages/CreateRecord.js +3 -1
  24. package/src/front/src/pages/EditRecord.js +3 -1
  25. package/src/front/src/pages/Records.js +31 -15
  26. package/src/front/src/utils/checkRequiredColumns.js +18 -0
  27. package/src/types/config.ts +4 -1
  28. package/src/front/build/static/js/main.5a13ae8f.chunk.js +0 -2
  29. package/src/front/build/static/js/main.5a13ae8f.chunk.js.map +0 -1
  30. package/src/front/node_modules/.cache/terser-webpack-plugin/content-v2/sha512/20/ec/f3271b43d74d3da465d9d3739b2aaddcb379161255f391e8f8f5a609983818e0af27a64d65caf6dc7e24a42a6255be22518efe9a3b6b454ff9d7c8daa4ce +0 -1
package/src/api.ts CHANGED
@@ -39,7 +39,7 @@ export default (db, config) => {
39
39
  queryString += ")"
40
40
  }
41
41
  const limit = params.allRecords ? 999999 : parseInt(params.limit)
42
- const query = "SELECT " + (params.selectExpression || "*") + " FROM ?? " + (params.join || "") + queryString + " " + (params.groupBy ? "GROUP BY " + params.groupBy : "") + (params.orderBy || params.primaryId ? " ORDER BY " + (params.orderBy || `${params.table}.${params.primaryId}`) : "") + (params.isDesc ? " DESC" : "") + " LIMIT ?, ?"
42
+ const query = params.customQuery || ("SELECT " + (params.selectExpression || "*") + " FROM ?? " + (params.join || "") + queryString + " " + (params.groupBy ? "GROUP BY " + params.groupBy : "") + (params.orderBy || params.primaryId ? " ORDER BY " + (params.orderBy || `${params.table}.${params.primaryId}`) : "") + (params.isDesc ? " DESC" : "") + " LIMIT ?, ?")
43
43
  const queryParams = [params.table, Math.max((params.page - 1) * limit, 0), limit]
44
44
  const { err, rows } = await db.query(query, queryParams)
45
45
  if (err) {
@@ -189,6 +189,7 @@ export default (db, config) => {
189
189
  table: view.tableName,
190
190
  page: req.body.page,
191
191
  filters: sqlAnd([view.filters, req.body.subviewIndex !== undefined ? view.subviews[req.body.subviewIndex].filters : null].concat(req.body.filters)),
192
+ customQuery: view.customQuery,
192
193
  join: view.join,
193
194
  selectExpression: view.selectExpression,
194
195
  orderBy: req.body.orderBy || view.orderBy,
@@ -278,6 +279,7 @@ export default (db, config) => {
278
279
  page: 1,
279
280
  allRecords: true,
280
281
  filters: sqlAnd([view.filters, req.body.subviewIndex !== undefined ? view.subviews[req.body.subviewIndex].filters : null].concat(req.body.filters)),
282
+ customQuery: view.customQuery,
281
283
  join: view.join,
282
284
  selectExpression: view.selectExpression,
283
285
  orderBy: req.body.orderBy || view.orderBy,
@@ -596,16 +598,16 @@ async function enrichConfig(config, db) {
596
598
 
597
599
  function enrichColumn(column, tableName, info) {
598
600
  column.__id__ = Math.random();
599
- if (!column.dataType) {
600
- for (const infoEl of info) {
601
- if (infoEl.TABLE_NAME == tableName && infoEl.COLUMN_NAME == column.name) {
602
- column.dataType = infoEl.DATA_TYPE;
603
- if (column.dataType == "enum") {
604
- column.dataType = "select";
605
- column.options = JSON.parse(infoEl.COLUMN_TYPE.replace("enum(", "[").replace(")", "]").replace(/'/g, '"'))
606
- }
607
- }
608
- }
601
+ const infoEl = info.find(x => x.TABLE_NAME == tableName && x.COLUMN_NAME == column.name)
602
+ if (infoEl?.IS_NULLABLE == "NO" && infoEl?.DATA_TYPE != 'text' && (column.required !== true && column.required !== false)) {
603
+ column.required = true;
604
+ }
605
+ if (!column.dataType && infoEl) {
606
+ column.dataType = infoEl.DATA_TYPE;
607
+ if (column.dataType == "enum") {
608
+ column.dataType = "select";
609
+ column.options = JSON.parse(infoEl.COLUMN_TYPE.replace("enum(", "[").replace(")", "]").replace(/'/g, '"'))
610
+ }
609
611
  }
610
612
  if (column.dataType == "richText") {
611
613
  column.name = column.contentField
@@ -1,22 +1,22 @@
1
1
  {
2
2
  "files": {
3
3
  "main.css": "/_HOMEPAGE_/static/css/main.6cc4d508.chunk.css",
4
- "main.js": "/_HOMEPAGE_/static/js/main.5a13ae8f.chunk.js",
5
- "main.js.map": "/_HOMEPAGE_/static/js/main.5a13ae8f.chunk.js.map",
4
+ "main.js": "/_HOMEPAGE_/static/js/main.9866c20c.chunk.js",
5
+ "main.js.map": "/_HOMEPAGE_/static/js/main.9866c20c.chunk.js.map",
6
6
  "runtime-main.js": "/_HOMEPAGE_/static/js/runtime-main.2084140f.js",
7
7
  "runtime-main.js.map": "/_HOMEPAGE_/static/js/runtime-main.2084140f.js.map",
8
- "static/js/2.f2c3716e.chunk.js": "/_HOMEPAGE_/static/js/2.f2c3716e.chunk.js",
9
- "static/js/2.f2c3716e.chunk.js.map": "/_HOMEPAGE_/static/js/2.f2c3716e.chunk.js.map",
8
+ "static/js/2.f7eb6c73.chunk.js": "/_HOMEPAGE_/static/js/2.f7eb6c73.chunk.js",
9
+ "static/js/2.f7eb6c73.chunk.js.map": "/_HOMEPAGE_/static/js/2.f7eb6c73.chunk.js.map",
10
10
  "index.html": "/_HOMEPAGE_/index.html",
11
11
  "static/css/main.6cc4d508.chunk.css.map": "/_HOMEPAGE_/static/css/main.6cc4d508.chunk.css.map",
12
- "static/js/2.f2c3716e.chunk.js.LICENSE.txt": "/_HOMEPAGE_/static/js/2.f2c3716e.chunk.js.LICENSE.txt",
12
+ "static/js/2.f7eb6c73.chunk.js.LICENSE.txt": "/_HOMEPAGE_/static/js/2.f7eb6c73.chunk.js.LICENSE.txt",
13
13
  "static/media/App.css": "/_HOMEPAGE_/static/media/gt-eesti-regular.304a7ae0.woff",
14
14
  "static/media/logo.e407b9ca.png": "/_HOMEPAGE_/static/media/logo.e407b9ca.png"
15
15
  },
16
16
  "entrypoints": [
17
17
  "static/js/runtime-main.2084140f.js",
18
- "static/js/2.f2c3716e.chunk.js",
18
+ "static/js/2.f7eb6c73.chunk.js",
19
19
  "static/css/main.6cc4d508.chunk.css",
20
- "static/js/main.5a13ae8f.chunk.js"
20
+ "static/js/main.9866c20c.chunk.js"
21
21
  ]
22
22
  }
@@ -1 +1 @@
1
- <!doctype html><html lang="fr"><head><script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script><script src="https://momentjs.com/downloads/moment-timezone-with-data-10-year-range.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/locale/fr.js"></script><script async="async" defer="defer" src="https://cdnjs.cloudflare.com/ajax/libs/spectrum/1.8.0/spectrum.min.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/air-datepicker/2.2.3/js/datepicker.min.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/air-datepicker/2.2.3/js/i18n/datepicker.fr.min.js"></script><script async="async" defer="defer" src="https://cdnjs.cloudflare.com/ajax/libs/downloadjs/1.4.8/download.min.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.4.0/Chart.min.js"></script><script async="async" defer="defer" src="https://cdn.jsdelivr.net/npm/sweetalert"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/quill/1.3.6/quill.min.js"></script><script src="https://sdk.amazonaws.com/js/aws-sdk-2.606.0.min.js"></script><script src="https://kit.fontawesome.com/75b28933ed.js" crossorigin="anonymous" async="async" defer="defer"></script><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/air-datepicker/2.2.3/css/datepicker.min.css"/><link rel="stylesheet" href="/_HOMEPAGE_/spectrum.css"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/quill/1.3.6/quill.snow.min.css"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta charset="utf-8"/><link rel="icon" href="/_HOMEPAGE_/favicon.png"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><link rel="manifest" href="/_HOMEPAGE_/manifest.json"/><title>Back-office</title><link href="/_HOMEPAGE_/static/css/main.6cc4d508.chunk.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script>!function(e){function r(r){for(var n,l,a=r[0],f=r[1],i=r[2],c=0,s=[];c<a.length;c++)l=a[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in f)Object.prototype.hasOwnProperty.call(f,n)&&(e[n]=f[n]);for(p&&p(r);s.length;)s.shift()();return u.push.apply(u,i||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,a=1;a<t.length;a++){var f=t[a];0!==o[f]&&(n=!1)}n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={1:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)l.d(t,n,function(r){return e[r]}.bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,"a",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p="/_HOMEPAGE_/";var a=this["webpackJsonpgaladmin-front"]=this["webpackJsonpgaladmin-front"]||[],f=a.push.bind(a);a.push=r,a=a.slice();for(var i=0;i<a.length;i++)r(a[i]);var p=f;t()}([])</script><script src="/_HOMEPAGE_/static/js/2.f2c3716e.chunk.js"></script><script src="/_HOMEPAGE_/static/js/main.5a13ae8f.chunk.js"></script></body></html>
1
+ <!doctype html><html lang="fr"><head><script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script><script src="https://momentjs.com/downloads/moment-timezone-with-data-10-year-range.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/locale/fr.js"></script><script async="async" defer="defer" src="https://cdnjs.cloudflare.com/ajax/libs/spectrum/1.8.0/spectrum.min.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/air-datepicker/2.2.3/js/datepicker.min.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/air-datepicker/2.2.3/js/i18n/datepicker.fr.min.js"></script><script async="async" defer="defer" src="https://cdnjs.cloudflare.com/ajax/libs/downloadjs/1.4.8/download.min.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.4.0/Chart.min.js"></script><script async="async" defer="defer" src="https://cdn.jsdelivr.net/npm/sweetalert"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/quill/1.3.6/quill.min.js"></script><script src="https://sdk.amazonaws.com/js/aws-sdk-2.606.0.min.js"></script><script src="https://kit.fontawesome.com/75b28933ed.js" crossorigin="anonymous" async="async" defer="defer"></script><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/air-datepicker/2.2.3/css/datepicker.min.css"/><link rel="stylesheet" href="/_HOMEPAGE_/spectrum.css"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/quill/1.3.6/quill.snow.min.css"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta charset="utf-8"/><link rel="icon" href="/_HOMEPAGE_/favicon.png"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><link rel="manifest" href="/_HOMEPAGE_/manifest.json"/><title>Back-office</title><link href="/_HOMEPAGE_/static/css/main.6cc4d508.chunk.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script>!function(e){function r(r){for(var n,l,a=r[0],f=r[1],i=r[2],c=0,s=[];c<a.length;c++)l=a[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in f)Object.prototype.hasOwnProperty.call(f,n)&&(e[n]=f[n]);for(p&&p(r);s.length;)s.shift()();return u.push.apply(u,i||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,a=1;a<t.length;a++){var f=t[a];0!==o[f]&&(n=!1)}n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={1:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)l.d(t,n,function(r){return e[r]}.bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,"a",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p="/_HOMEPAGE_/";var a=this["webpackJsonpgaladmin-front"]=this["webpackJsonpgaladmin-front"]||[],f=a.push.bind(a);a.push=r,a=a.slice();for(var i=0;i<a.length;i++)r(a[i]);var p=f;t()}([])</script><script src="/_HOMEPAGE_/static/js/2.f7eb6c73.chunk.js"></script><script src="/_HOMEPAGE_/static/js/main.9866c20c.chunk.js"></script></body></html>