@galadrim/galadmin 0.1.68 → 0.1.71

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.
@@ -153,7 +153,7 @@ export type TableView = {
153
153
  canExport?: boolean;
154
154
  canImport?: boolean;
155
155
  importFileTypes?: string[];
156
- parseImportFile?: (file: any) => Promise<any[]>;
156
+ parseImportFile?: (file: File) => Promise<any[]>;
157
157
  createCallback?: string;
158
158
  createCallbackFunction?: ({ id, data }: {
159
159
  id: number;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@galadrim/galadmin",
3
- "version": "0.1.68",
3
+ "version": "0.1.71",
4
4
  "main": "dist/index.js",
5
5
  "scripts": {
6
6
  "test": "echo \"Error: no test specified\" && exit 1",
package/src/api.ts CHANGED
@@ -349,10 +349,19 @@ export default (db, config, user) => {
349
349
 
350
350
  app.post('/recordsImport', async function (req, res) {
351
351
  const view = config.views[req.body.viewIndex];
352
- const records = req.body.data;
352
+ if (typeof view.parseImportFile !== "function") {
353
+ return res.status(500).send("\"parseImportFile\" doit être défini dans la configuration de la vue.");
354
+ }
355
+
356
+ const records = await view.parseImportFile(req.body.data);
353
357
  const columns = [];
358
+ if (records.length === 0) {
359
+ return res.send({
360
+ affectedRows: 0
361
+ })
362
+ }
354
363
 
355
- try {
364
+ try {
356
365
  for (let record of records) {
357
366
  for (let key in record) {
358
367
  if (record[key] == "NULL") {
@@ -377,25 +386,11 @@ export default (db, config, user) => {
377
386
  console.error(err)
378
387
  return res.status(500).send({
379
388
  err,
380
- message: err.code === 'ER_DUP_ENTRY' ? "Cet élément existe déjà." : "Une erreur est survenue."
381
- })
382
- }
383
- if (view.createCallback) {
384
- try {
385
- await axios.post(view.createCallback, {
386
- id: r.insertId,
387
- data: req.body.data
388
- })
389
- } catch (e) { }
390
- }
391
- if (view.createCallbackFunction) {
392
- await (view.createCallbackFunction)({
393
- id: r.insertId,
394
- data: req.body.data
389
+ message: "Une erreur est survenue."
395
390
  })
396
391
  }
397
392
  res.send({
398
- id: r.insertId
393
+ affectedRows: r.affectedRows
399
394
  })
400
395
  } catch (err) {
401
396
  console.error(err)
@@ -1,17 +1,17 @@
1
1
  {
2
2
  "files": {
3
3
  "main.css": "/_HOMEPAGE_/static/css/main.0074973e.css",
4
- "main.js": "/_HOMEPAGE_/static/js/main.44d4adcc.js",
4
+ "main.js": "/_HOMEPAGE_/static/js/main.bb3785d3.js",
5
5
  "static/media/gt-eesti-medium.woff": "/_HOMEPAGE_/static/media/gt-eesti-medium.a48c02fa57e83ab6ddcd.woff",
6
6
  "static/media/gt-eesti-regular.woff": "/_HOMEPAGE_/static/media/gt-eesti-regular.304a7ae06ee4a4d5d04a.woff",
7
7
  "static/media/logo.png": "/_HOMEPAGE_/static/media/logo.e407b9ca7e302466a07d.png",
8
8
  "static/media/cubano.woff": "/_HOMEPAGE_/static/media/cubano.4eaa47ef94222121a371.woff",
9
9
  "index.html": "/_HOMEPAGE_/index.html",
10
10
  "main.0074973e.css.map": "/_HOMEPAGE_/static/css/main.0074973e.css.map",
11
- "main.44d4adcc.js.map": "/_HOMEPAGE_/static/js/main.44d4adcc.js.map"
11
+ "main.bb3785d3.js.map": "/_HOMEPAGE_/static/js/main.bb3785d3.js.map"
12
12
  },
13
13
  "entrypoints": [
14
14
  "static/css/main.0074973e.css",
15
- "static/js/main.44d4adcc.js"
15
+ "static/js/main.bb3785d3.js"
16
16
  ]
17
17
  }
@@ -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><script defer="defer" src="/_HOMEPAGE_/static/js/main.44d4adcc.js"></script><link href="/_HOMEPAGE_/static/css/main.0074973e.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></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><script defer="defer" src="/_HOMEPAGE_/static/js/main.bb3785d3.js"></script><link href="/_HOMEPAGE_/static/css/main.0074973e.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>