@budibase/server 0.9.140-alpha.4 → 0.9.140-alpha.5
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/builder/assets/{index.2bcd18f5.js → index.80d850d1.js} +1 -1
- package/builder/index.html +1 -1
- package/coverage/clover.xml +646 -528
- package/coverage/coverage-final.json +17 -15
- package/coverage/lcov-report/api/controllers/analytics.js.html +1 -1
- package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
- package/coverage/lcov-report/api/controllers/application.js.html +1 -1
- package/coverage/lcov-report/api/controllers/auth.js.html +1 -1
- package/coverage/lcov-report/api/controllers/automation.js.html +1 -1
- package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
- package/coverage/lcov-report/api/controllers/component.js.html +1 -1
- package/coverage/lcov-report/api/controllers/datasource.js.html +3 -3
- package/coverage/lcov-report/api/controllers/dev.js.html +1 -1
- package/coverage/lcov-report/api/controllers/hosting.js.html +1 -1
- package/coverage/lcov-report/api/controllers/index.html +1 -1
- package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
- package/coverage/lcov-report/api/controllers/layout.js.html +1 -1
- package/coverage/lcov-report/api/controllers/metadata.js.html +1 -1
- package/coverage/lcov-report/api/controllers/permission.js.html +1 -1
- package/coverage/lcov-report/api/controllers/query.js.html +1 -1
- package/coverage/lcov-report/api/controllers/role.js.html +1 -1
- package/coverage/lcov-report/api/controllers/routing.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/external.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/index.html +19 -19
- package/coverage/lcov-report/api/controllers/row/index.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/internal.js.html +242 -47
- package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/utils.js.html +1 -1
- package/coverage/lcov-report/api/controllers/screen.js.html +1 -1
- package/coverage/lcov-report/api/controllers/script.js.html +1 -1
- package/coverage/lcov-report/api/controllers/table/index.html +1 -1
- package/coverage/lcov-report/api/controllers/table/index.js.html +2 -2
- package/coverage/lcov-report/api/controllers/table/utils.js.html +31 -19
- package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
- package/coverage/lcov-report/api/controllers/user.js.html +1 -1
- package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
- package/coverage/lcov-report/api/controllers/view/index.html +32 -17
- package/coverage/lcov-report/api/controllers/view/index.js.html +84 -186
- package/coverage/lcov-report/api/controllers/view/utils.js.html +407 -0
- package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +1 -1
- package/coverage/lcov-report/api/controllers/webhook.js.html +1 -1
- package/coverage/lcov-report/api/index.html +1 -1
- package/coverage/lcov-report/api/index.js.html +1 -1
- package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
- package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
- package/coverage/lcov-report/api/routes/application.js.html +1 -1
- package/coverage/lcov-report/api/routes/auth.js.html +1 -1
- package/coverage/lcov-report/api/routes/automation.js.html +1 -1
- package/coverage/lcov-report/api/routes/backup.js.html +1 -1
- package/coverage/lcov-report/api/routes/component.js.html +1 -1
- package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
- package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
- package/coverage/lcov-report/api/routes/dev.js.html +1 -1
- package/coverage/lcov-report/api/routes/hosting.js.html +1 -1
- package/coverage/lcov-report/api/routes/index.html +1 -1
- package/coverage/lcov-report/api/routes/index.js.html +1 -1
- package/coverage/lcov-report/api/routes/integration.js.html +1 -1
- package/coverage/lcov-report/api/routes/layout.js.html +1 -1
- package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
- package/coverage/lcov-report/api/routes/permission.js.html +1 -1
- package/coverage/lcov-report/api/routes/query.js.html +1 -1
- package/coverage/lcov-report/api/routes/role.js.html +1 -1
- package/coverage/lcov-report/api/routes/routing.js.html +1 -1
- package/coverage/lcov-report/api/routes/row.js.html +1 -1
- package/coverage/lcov-report/api/routes/screen.js.html +1 -1
- package/coverage/lcov-report/api/routes/script.js.html +1 -1
- package/coverage/lcov-report/api/routes/static.js.html +1 -1
- package/coverage/lcov-report/api/routes/table.js.html +1 -1
- package/coverage/lcov-report/api/routes/templates.js.html +1 -1
- package/coverage/lcov-report/api/routes/user.js.html +1 -1
- package/coverage/lcov-report/api/routes/view.js.html +1 -1
- package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
- package/coverage/lcov-report/automations/actions.js.html +1 -1
- package/coverage/lcov-report/automations/automationUtils.js.html +1 -1
- package/coverage/lcov-report/automations/bullboard.js.html +1 -1
- package/coverage/lcov-report/automations/index.html +1 -1
- package/coverage/lcov-report/automations/index.js.html +1 -1
- package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
- package/coverage/lcov-report/automations/steps/createRow.js.html +10 -19
- package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
- package/coverage/lcov-report/automations/steps/deleteRow.js.html +14 -20
- package/coverage/lcov-report/automations/steps/discord.js.html +1 -1
- package/coverage/lcov-report/automations/steps/executeQuery.js.html +1 -1
- package/coverage/lcov-report/automations/steps/executeScript.js.html +1 -1
- package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
- package/coverage/lcov-report/automations/steps/index.html +31 -31
- package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
- package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +1 -1
- package/coverage/lcov-report/automations/steps/queryRows.js.html +18 -27
- package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +1 -1
- package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
- package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
- package/coverage/lcov-report/automations/steps/updateRow.js.html +12 -21
- package/coverage/lcov-report/automations/steps/utils.js.html +23 -23
- package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
- package/coverage/lcov-report/automations/thread.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/app.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/cron.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/index.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +1 -1
- package/coverage/lcov-report/automations/triggers.js.html +1 -1
- package/coverage/lcov-report/automations/utils.js.html +1 -1
- package/coverage/lcov-report/constants/index.html +1 -1
- package/coverage/lcov-report/constants/index.js.html +1 -1
- package/coverage/lcov-report/constants/layouts.js.html +1 -1
- package/coverage/lcov-report/constants/screens.js.html +1 -1
- package/coverage/lcov-report/db/client.js.html +1 -1
- package/coverage/lcov-report/db/inMemoryView.js.html +224 -0
- package/coverage/lcov-report/db/index.html +34 -19
- package/coverage/lcov-report/db/index.js.html +1 -1
- package/coverage/lcov-report/db/linkedRows/LinkController.js.html +4 -4
- package/coverage/lcov-report/db/linkedRows/index.html +14 -14
- package/coverage/lcov-report/db/linkedRows/index.js.html +18 -9
- package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +1 -1
- package/coverage/lcov-report/db/newid.js.html +1 -1
- package/coverage/lcov-report/db/utils.js.html +37 -10
- package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
- package/coverage/lcov-report/events/index.html +1 -1
- package/coverage/lcov-report/events/index.js.html +1 -1
- package/coverage/lcov-report/events/utils.js.html +1 -1
- package/coverage/lcov-report/index.html +65 -65
- package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
- package/coverage/lcov-report/integrations/tests/index.html +1 -1
- package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
- package/coverage/lcov-report/middleware/authorized.js.html +1 -1
- package/coverage/lcov-report/middleware/builder.js.html +1 -1
- package/coverage/lcov-report/middleware/currentapp.js.html +1 -1
- package/coverage/lcov-report/middleware/index.html +1 -1
- package/coverage/lcov-report/middleware/joi-validator.js.html +1 -1
- package/coverage/lcov-report/middleware/resourceId.js.html +1 -1
- package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
- package/coverage/lcov-report/middleware/usageQuota.js.html +1 -1
- package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
- package/coverage/lcov-report/utilities/budibaseDir.js.html +1 -1
- package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
- package/coverage/lcov-report/utilities/csvParser.js.html +1 -1
- package/coverage/lcov-report/utilities/global.js.html +1 -1
- package/coverage/lcov-report/utilities/index.html +1 -1
- package/coverage/lcov-report/utilities/index.js.html +1 -1
- package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +1 -1
- package/coverage/lcov-report/utilities/queue/index.html +1 -1
- package/coverage/lcov-report/utilities/routing/index.html +1 -1
- package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
- package/coverage/lcov-report/utilities/rowProcessor/index.html +15 -15
- package/coverage/lcov-report/utilities/rowProcessor/index.js.html +58 -13
- package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +1 -1
- package/coverage/lcov-report/utilities/security.js.html +2 -2
- package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
- package/coverage/lcov-report/utilities/users.js.html +1 -1
- package/coverage/lcov-report/utilities/workerRequests.js.html +1 -1
- package/coverage/lcov.info +1093 -883
- package/dist/api/controllers/datasource.js +2 -2
- package/dist/api/controllers/row/ExternalRequest.js +4 -0
- package/dist/api/controllers/row/internal.js +97 -23
- package/dist/api/controllers/table/index.js +1 -1
- package/dist/api/controllers/table/utils.js +13 -11
- package/dist/api/controllers/view/index.js +74 -96
- package/dist/api/controllers/view/utils.js +102 -0
- package/dist/automations/steps/createRow.js +5 -8
- package/dist/automations/steps/deleteRow.js +7 -10
- package/dist/automations/steps/queryRows.js +11 -14
- package/dist/automations/steps/updateRow.js +4 -7
- package/dist/db/inMemoryView.js +51 -0
- package/dist/db/linkedRows/index.js +5 -2
- package/dist/db/utils.js +7 -0
- package/dist/environment.js +7 -1
- package/dist/integrations/mysql.js +2 -13
- package/dist/integrations/postgres.js +8 -14
- package/dist/integrations/utils.js +19 -1
- package/dist/package.json +5 -5
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utilities/rowProcessor/index.js +10 -5
- package/package.json +6 -6
- package/scripts/integrations/service-vehicles/docker-compose.yml +28 -0
- package/scripts/integrations/service-vehicles/init.sql +52 -0
- package/scripts/integrations/service-vehicles/reset.sh +3 -0
- package/src/api/controllers/datasource.js +2 -2
- package/src/api/controllers/row/ExternalRequest.ts +5 -1
- package/src/api/controllers/row/internal.js +88 -23
- package/src/api/controllers/table/index.js +1 -1
- package/src/api/controllers/table/utils.js +16 -12
- package/src/api/controllers/view/index.js +82 -116
- package/src/api/controllers/view/utils.js +109 -0
- package/src/api/routes/tests/view.spec.js +1 -1
- package/src/automations/steps/createRow.js +5 -8
- package/src/automations/steps/deleteRow.js +8 -10
- package/src/automations/steps/queryRows.js +11 -14
- package/src/automations/steps/updateRow.js +7 -10
- package/src/db/inMemoryView.js +48 -0
- package/src/db/linkedRows/index.js +5 -2
- package/src/db/utils.js +9 -0
- package/src/environment.js +8 -1
- package/src/integrations/mysql.ts +2 -13
- package/src/integrations/postgres.ts +9 -16
- package/src/integrations/utils.ts +18 -0
- package/src/utilities/rowProcessor/index.js +20 -5
|
@@ -23,30 +23,30 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">80.68% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>167/207</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">60.34% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>35/58</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">92.31% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>24/26</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">80.6% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>162/201</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -423,18 +423,88 @@
|
|
|
423
423
|
<a name='L364'></a><a href='#L364'>364</a>
|
|
424
424
|
<a name='L365'></a><a href='#L365'>365</a>
|
|
425
425
|
<a name='L366'></a><a href='#L366'>366</a>
|
|
426
|
-
<a name='L367'></a><a href='#L367'>367</a
|
|
426
|
+
<a name='L367'></a><a href='#L367'>367</a>
|
|
427
|
+
<a name='L368'></a><a href='#L368'>368</a>
|
|
428
|
+
<a name='L369'></a><a href='#L369'>369</a>
|
|
429
|
+
<a name='L370'></a><a href='#L370'>370</a>
|
|
430
|
+
<a name='L371'></a><a href='#L371'>371</a>
|
|
431
|
+
<a name='L372'></a><a href='#L372'>372</a>
|
|
432
|
+
<a name='L373'></a><a href='#L373'>373</a>
|
|
433
|
+
<a name='L374'></a><a href='#L374'>374</a>
|
|
434
|
+
<a name='L375'></a><a href='#L375'>375</a>
|
|
435
|
+
<a name='L376'></a><a href='#L376'>376</a>
|
|
436
|
+
<a name='L377'></a><a href='#L377'>377</a>
|
|
437
|
+
<a name='L378'></a><a href='#L378'>378</a>
|
|
438
|
+
<a name='L379'></a><a href='#L379'>379</a>
|
|
439
|
+
<a name='L380'></a><a href='#L380'>380</a>
|
|
440
|
+
<a name='L381'></a><a href='#L381'>381</a>
|
|
441
|
+
<a name='L382'></a><a href='#L382'>382</a>
|
|
442
|
+
<a name='L383'></a><a href='#L383'>383</a>
|
|
443
|
+
<a name='L384'></a><a href='#L384'>384</a>
|
|
444
|
+
<a name='L385'></a><a href='#L385'>385</a>
|
|
445
|
+
<a name='L386'></a><a href='#L386'>386</a>
|
|
446
|
+
<a name='L387'></a><a href='#L387'>387</a>
|
|
447
|
+
<a name='L388'></a><a href='#L388'>388</a>
|
|
448
|
+
<a name='L389'></a><a href='#L389'>389</a>
|
|
449
|
+
<a name='L390'></a><a href='#L390'>390</a>
|
|
450
|
+
<a name='L391'></a><a href='#L391'>391</a>
|
|
451
|
+
<a name='L392'></a><a href='#L392'>392</a>
|
|
452
|
+
<a name='L393'></a><a href='#L393'>393</a>
|
|
453
|
+
<a name='L394'></a><a href='#L394'>394</a>
|
|
454
|
+
<a name='L395'></a><a href='#L395'>395</a>
|
|
455
|
+
<a name='L396'></a><a href='#L396'>396</a>
|
|
456
|
+
<a name='L397'></a><a href='#L397'>397</a>
|
|
457
|
+
<a name='L398'></a><a href='#L398'>398</a>
|
|
458
|
+
<a name='L399'></a><a href='#L399'>399</a>
|
|
459
|
+
<a name='L400'></a><a href='#L400'>400</a>
|
|
460
|
+
<a name='L401'></a><a href='#L401'>401</a>
|
|
461
|
+
<a name='L402'></a><a href='#L402'>402</a>
|
|
462
|
+
<a name='L403'></a><a href='#L403'>403</a>
|
|
463
|
+
<a name='L404'></a><a href='#L404'>404</a>
|
|
464
|
+
<a name='L405'></a><a href='#L405'>405</a>
|
|
465
|
+
<a name='L406'></a><a href='#L406'>406</a>
|
|
466
|
+
<a name='L407'></a><a href='#L407'>407</a>
|
|
467
|
+
<a name='L408'></a><a href='#L408'>408</a>
|
|
468
|
+
<a name='L409'></a><a href='#L409'>409</a>
|
|
469
|
+
<a name='L410'></a><a href='#L410'>410</a>
|
|
470
|
+
<a name='L411'></a><a href='#L411'>411</a>
|
|
471
|
+
<a name='L412'></a><a href='#L412'>412</a>
|
|
472
|
+
<a name='L413'></a><a href='#L413'>413</a>
|
|
473
|
+
<a name='L414'></a><a href='#L414'>414</a>
|
|
474
|
+
<a name='L415'></a><a href='#L415'>415</a>
|
|
475
|
+
<a name='L416'></a><a href='#L416'>416</a>
|
|
476
|
+
<a name='L417'></a><a href='#L417'>417</a>
|
|
477
|
+
<a name='L418'></a><a href='#L418'>418</a>
|
|
478
|
+
<a name='L419'></a><a href='#L419'>419</a>
|
|
479
|
+
<a name='L420'></a><a href='#L420'>420</a>
|
|
480
|
+
<a name='L421'></a><a href='#L421'>421</a>
|
|
481
|
+
<a name='L422'></a><a href='#L422'>422</a>
|
|
482
|
+
<a name='L423'></a><a href='#L423'>423</a>
|
|
483
|
+
<a name='L424'></a><a href='#L424'>424</a>
|
|
484
|
+
<a name='L425'></a><a href='#L425'>425</a>
|
|
485
|
+
<a name='L426'></a><a href='#L426'>426</a>
|
|
486
|
+
<a name='L427'></a><a href='#L427'>427</a>
|
|
487
|
+
<a name='L428'></a><a href='#L428'>428</a>
|
|
488
|
+
<a name='L429'></a><a href='#L429'>429</a>
|
|
489
|
+
<a name='L430'></a><a href='#L430'>430</a>
|
|
490
|
+
<a name='L431'></a><a href='#L431'>431</a>
|
|
491
|
+
<a name='L432'></a><a href='#L432'>432</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">34x</span>
|
|
427
492
|
<span class="cline-any cline-yes">34x</span>
|
|
428
493
|
<span class="cline-any cline-neutral"> </span>
|
|
429
494
|
<span class="cline-any cline-neutral"> </span>
|
|
430
495
|
<span class="cline-any cline-neutral"> </span>
|
|
431
496
|
<span class="cline-any cline-neutral"> </span>
|
|
432
497
|
<span class="cline-any cline-neutral"> </span>
|
|
498
|
+
<span class="cline-any cline-neutral"> </span>
|
|
433
499
|
<span class="cline-any cline-yes">34x</span>
|
|
434
500
|
<span class="cline-any cline-yes">34x</span>
|
|
435
501
|
<span class="cline-any cline-neutral"> </span>
|
|
436
502
|
<span class="cline-any cline-neutral"> </span>
|
|
437
503
|
<span class="cline-any cline-neutral"> </span>
|
|
504
|
+
<span class="cline-any cline-neutral"> </span>
|
|
505
|
+
<span class="cline-any cline-yes">34x</span>
|
|
506
|
+
<span class="cline-any cline-yes">34x</span>
|
|
507
|
+
<span class="cline-any cline-yes">34x</span>
|
|
438
508
|
<span class="cline-any cline-yes">34x</span>
|
|
439
509
|
<span class="cline-any cline-yes">34x</span>
|
|
440
510
|
<span class="cline-any cline-yes">34x</span>
|
|
@@ -450,17 +520,84 @@
|
|
|
450
520
|
<span class="cline-any cline-neutral"> </span>
|
|
451
521
|
<span class="cline-any cline-neutral"> </span>
|
|
452
522
|
<span class="cline-any cline-yes">70x</span>
|
|
453
|
-
<span class="cline-any cline-
|
|
523
|
+
<span class="cline-any cline-neutral"> </span>
|
|
524
|
+
<span class="cline-any cline-neutral"> </span>
|
|
454
525
|
<span class="cline-any cline-neutral"> </span>
|
|
455
526
|
<span class="cline-any cline-yes">70x</span>
|
|
456
527
|
<span class="cline-any cline-no"> </span>
|
|
528
|
+
<span class="cline-any cline-no"> </span>
|
|
529
|
+
<span class="cline-any cline-neutral"> </span>
|
|
530
|
+
<span class="cline-any cline-no"> </span>
|
|
531
|
+
<span class="cline-any cline-no"> </span>
|
|
532
|
+
<span class="cline-any cline-no"> </span>
|
|
533
|
+
<span class="cline-any cline-neutral"> </span>
|
|
534
|
+
<span class="cline-any cline-neutral"> </span>
|
|
535
|
+
<span class="cline-any cline-no"> </span>
|
|
536
|
+
<span class="cline-any cline-no"> </span>
|
|
537
|
+
<span class="cline-any cline-neutral"> </span>
|
|
538
|
+
<span class="cline-any cline-no"> </span>
|
|
539
|
+
<span class="cline-any cline-neutral"> </span>
|
|
540
|
+
<span class="cline-any cline-neutral"> </span>
|
|
457
541
|
<span class="cline-any cline-neutral"> </span>
|
|
458
542
|
<span class="cline-any cline-yes">70x</span>
|
|
543
|
+
<span class="cline-any cline-yes">70x</span>
|
|
459
544
|
<span class="cline-any cline-neutral"> </span>
|
|
460
545
|
<span class="cline-any cline-yes">70x</span>
|
|
461
546
|
<span class="cline-any cline-yes">70x</span>
|
|
462
547
|
<span class="cline-any cline-neutral"> </span>
|
|
463
548
|
<span class="cline-any cline-neutral"> </span>
|
|
549
|
+
<span class="cline-any cline-neutral"> </span>
|
|
550
|
+
<span class="cline-any cline-neutral"> </span>
|
|
551
|
+
<span class="cline-any cline-neutral"> </span>
|
|
552
|
+
<span class="cline-any cline-yes">5x</span>
|
|
553
|
+
<span class="cline-any cline-no"> </span>
|
|
554
|
+
<span class="cline-any cline-no"> </span>
|
|
555
|
+
<span class="cline-any cline-neutral"> </span>
|
|
556
|
+
<span class="cline-any cline-yes">5x</span>
|
|
557
|
+
<span class="cline-any cline-neutral"> </span>
|
|
558
|
+
<span class="cline-any cline-neutral"> </span>
|
|
559
|
+
<span class="cline-any cline-neutral"> </span>
|
|
560
|
+
<span class="cline-any cline-neutral"> </span>
|
|
561
|
+
<span class="cline-any cline-yes">10x</span>
|
|
562
|
+
<span class="cline-any cline-neutral"> </span>
|
|
563
|
+
<span class="cline-any cline-yes">5x</span>
|
|
564
|
+
<span class="cline-any cline-neutral"> </span>
|
|
565
|
+
<span class="cline-any cline-neutral"> </span>
|
|
566
|
+
<span class="cline-any cline-neutral"> </span>
|
|
567
|
+
<span class="cline-any cline-neutral"> </span>
|
|
568
|
+
<span class="cline-any cline-neutral"> </span>
|
|
569
|
+
<span class="cline-any cline-yes">6x</span>
|
|
570
|
+
<span class="cline-any cline-yes">6x</span>
|
|
571
|
+
<span class="cline-any cline-yes">6x</span>
|
|
572
|
+
<span class="cline-any cline-neutral"> </span>
|
|
573
|
+
<span class="cline-any cline-yes">6x</span>
|
|
574
|
+
<span class="cline-any cline-yes">6x</span>
|
|
575
|
+
<span class="cline-any cline-yes">6x</span>
|
|
576
|
+
<span class="cline-any cline-neutral"> </span>
|
|
577
|
+
<span class="cline-any cline-no"> </span>
|
|
578
|
+
<span class="cline-any cline-no"> </span>
|
|
579
|
+
<span class="cline-any cline-no"> </span>
|
|
580
|
+
<span class="cline-any cline-no"> </span>
|
|
581
|
+
<span class="cline-any cline-neutral"> </span>
|
|
582
|
+
<span class="cline-any cline-neutral"> </span>
|
|
583
|
+
<span class="cline-any cline-neutral"> </span>
|
|
584
|
+
<span class="cline-any cline-no"> </span>
|
|
585
|
+
<span class="cline-any cline-no"> </span>
|
|
586
|
+
<span class="cline-any cline-neutral"> </span>
|
|
587
|
+
<span class="cline-any cline-no"> </span>
|
|
588
|
+
<span class="cline-any cline-no"> </span>
|
|
589
|
+
<span class="cline-any cline-neutral"> </span>
|
|
590
|
+
<span class="cline-any cline-neutral"> </span>
|
|
591
|
+
<span class="cline-any cline-neutral"> </span>
|
|
592
|
+
<span class="cline-any cline-yes">6x</span>
|
|
593
|
+
<span class="cline-any cline-no"> </span>
|
|
594
|
+
<span class="cline-any cline-neutral"> </span>
|
|
595
|
+
<span class="cline-any cline-yes">6x</span>
|
|
596
|
+
<span class="cline-any cline-yes">1x</span>
|
|
597
|
+
<span class="cline-any cline-neutral"> </span>
|
|
598
|
+
<span class="cline-any cline-yes">5x</span>
|
|
599
|
+
<span class="cline-any cline-neutral"> </span>
|
|
600
|
+
<span class="cline-any cline-neutral"> </span>
|
|
464
601
|
<span class="cline-any cline-yes">34x</span>
|
|
465
602
|
<span class="cline-any cline-yes">5x</span>
|
|
466
603
|
<span class="cline-any cline-yes">5x</span>
|
|
@@ -565,13 +702,16 @@
|
|
|
565
702
|
<span class="cline-any cline-yes">6x</span>
|
|
566
703
|
<span class="cline-any cline-yes">6x</span>
|
|
567
704
|
<span class="cline-any cline-yes">6x</span>
|
|
568
|
-
<span class="cline-any cline-yes">6x</span>
|
|
569
|
-
<span class="cline-any cline-yes">6x</span>
|
|
570
|
-
<span class="cline-any cline-yes">1x</span>
|
|
571
705
|
<span class="cline-any cline-neutral"> </span>
|
|
572
706
|
<span class="cline-any cline-yes">5x</span>
|
|
707
|
+
<span class="cline-any cline-yes">5x</span>
|
|
708
|
+
<span class="cline-any cline-neutral"> </span>
|
|
709
|
+
<span class="cline-any cline-neutral"> </span>
|
|
573
710
|
<span class="cline-any cline-neutral"> </span>
|
|
574
711
|
<span class="cline-any cline-neutral"> </span>
|
|
712
|
+
<span class="cline-any cline-no"> </span>
|
|
713
|
+
<span class="cline-any cline-no"> </span>
|
|
714
|
+
<span class="cline-any cline-no"> </span>
|
|
575
715
|
<span class="cline-any cline-neutral"> </span>
|
|
576
716
|
<span class="cline-any cline-neutral"> </span>
|
|
577
717
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -616,19 +756,9 @@
|
|
|
616
756
|
<span class="cline-any cline-yes">5x</span>
|
|
617
757
|
<span class="cline-any cline-yes">5x</span>
|
|
618
758
|
<span class="cline-any cline-neutral"> </span>
|
|
619
|
-
<span class="cline-any cline-neutral"> </span>
|
|
620
759
|
<span class="cline-any cline-yes">5x</span>
|
|
621
760
|
<span class="cline-any cline-yes">5x</span>
|
|
622
|
-
<span class="cline-any cline-no"> </span>
|
|
623
|
-
<span class="cline-any cline-no"> </span>
|
|
624
|
-
<span class="cline-any cline-neutral"> </span>
|
|
625
761
|
<span class="cline-any cline-yes">5x</span>
|
|
626
|
-
<span class="cline-any cline-neutral"> </span>
|
|
627
|
-
<span class="cline-any cline-neutral"> </span>
|
|
628
|
-
<span class="cline-any cline-neutral"> </span>
|
|
629
|
-
<span class="cline-any cline-neutral"> </span>
|
|
630
|
-
<span class="cline-any cline-yes">10x</span>
|
|
631
|
-
<span class="cline-any cline-neutral"> </span>
|
|
632
762
|
<span class="cline-any cline-yes">5x</span>
|
|
633
763
|
<span class="cline-any cline-neutral"> </span>
|
|
634
764
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -796,17 +926,22 @@ const {
|
|
|
796
926
|
generateRowID,
|
|
797
927
|
DocumentTypes,
|
|
798
928
|
InternalTables,
|
|
929
|
+
generateMemoryViewID,
|
|
799
930
|
} = require("../../../db/utils")
|
|
800
931
|
const userController = require("../user")
|
|
801
932
|
const {
|
|
802
933
|
inputProcessing,
|
|
803
934
|
outputProcessing,
|
|
935
|
+
processAutoColumn,
|
|
804
936
|
} = require("../../../utilities/rowProcessor")
|
|
805
937
|
const { FieldTypes } = require("../../../constants")
|
|
806
938
|
const { isEqual } = require("lodash")
|
|
807
939
|
const { validate, findRow } = require("./utils")
|
|
808
940
|
const { fullSearch, paginatedSearch } = require("./internalSearch")
|
|
809
941
|
const { getGlobalUsersFromMetadata } = require("../../../utilities/global")
|
|
942
|
+
const inMemoryViews = require("../../../db/inMemoryView")
|
|
943
|
+
const env = require("../../../environment")
|
|
944
|
+
const { migrateToInMemoryView } = require("../view/utils")
|
|
810
945
|
|
|
811
946
|
const CALCULATION_TYPES = {
|
|
812
947
|
SUM: "sum",
|
|
@@ -816,17 +951,84 @@ const CALCULATION_TYPES = {
|
|
|
816
951
|
|
|
817
952
|
async function storeResponse(ctx, db, row, oldTable, table) {
|
|
818
953
|
row.type = "row"
|
|
819
|
-
const response = await db.put(row)
|
|
820
954
|
// don't worry about rev, tables handle rev/lastID updates
|
|
955
|
+
// if another row has been written since processing this will
|
|
956
|
+
// handle the auto ID clash
|
|
821
957
|
<span class="missing-if-branch" title="if path not taken" >I</span>if (!isEqual(oldTable, table)) {
|
|
822
|
-
<span class="cstat-no" title="statement not covered" >
|
|
958
|
+
<span class="cstat-no" title="statement not covered" > try {</span>
|
|
959
|
+
<span class="cstat-no" title="statement not covered" > await db.put(table)</span>
|
|
960
|
+
} catch (err) {
|
|
961
|
+
<span class="cstat-no" title="statement not covered" > if (err.status === 409) {</span>
|
|
962
|
+
const updatedTable = <span class="cstat-no" title="statement not covered" >await db.get(table._id)</span>
|
|
963
|
+
let response = <span class="cstat-no" title="statement not covered" >processAutoColumn(null, updatedTable, row, {</span>
|
|
964
|
+
reprocessing: true,
|
|
965
|
+
})
|
|
966
|
+
<span class="cstat-no" title="statement not covered" > await db.put(response.table)</span>
|
|
967
|
+
<span class="cstat-no" title="statement not covered" > row = response.row</span>
|
|
968
|
+
} else {
|
|
969
|
+
<span class="cstat-no" title="statement not covered" > throw err</span>
|
|
970
|
+
}
|
|
971
|
+
}
|
|
823
972
|
}
|
|
973
|
+
const response = await db.put(row)
|
|
824
974
|
row._rev = response.rev
|
|
825
975
|
// process the row before return, to include relationships
|
|
826
976
|
row = await outputProcessing(ctx, table, row, { squash: false })
|
|
827
977
|
return { row, table }
|
|
828
978
|
}
|
|
829
979
|
|
|
980
|
+
// doesn't do the outputProcessing
|
|
981
|
+
async function getRawTableData(ctx, db, tableId) {
|
|
982
|
+
let rows
|
|
983
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (tableId === InternalTables.USER_METADATA) {
|
|
984
|
+
<span class="cstat-no" title="statement not covered" > await userController.fetchMetadata(ctx)</span>
|
|
985
|
+
<span class="cstat-no" title="statement not covered" > rows = ctx.body</span>
|
|
986
|
+
} else {
|
|
987
|
+
const response = await db.allDocs(
|
|
988
|
+
getRowParams(tableId, null, {
|
|
989
|
+
include_docs: true,
|
|
990
|
+
})
|
|
991
|
+
)
|
|
992
|
+
rows = response.rows.map(row => row.doc)
|
|
993
|
+
}
|
|
994
|
+
return rows
|
|
995
|
+
}
|
|
996
|
+
|
|
997
|
+
async function getView(db, viewName) {
|
|
998
|
+
let viewInfo
|
|
999
|
+
async function getFromDesignDoc() {
|
|
1000
|
+
const designDoc = await db.get("_design/database")
|
|
1001
|
+
viewInfo = designDoc.views[viewName]
|
|
1002
|
+
return viewInfo
|
|
1003
|
+
}
|
|
1004
|
+
let migrate = false
|
|
1005
|
+
<span class="missing-if-branch" title="else path not taken" >E</span>if (env.SELF_HOSTED) {
|
|
1006
|
+
viewInfo = await getFromDesignDoc()
|
|
1007
|
+
} else {
|
|
1008
|
+
<span class="cstat-no" title="statement not covered" > try {</span>
|
|
1009
|
+
<span class="cstat-no" title="statement not covered" > viewInfo = await db.get(generateMemoryViewID(viewName))</span>
|
|
1010
|
+
<span class="cstat-no" title="statement not covered" > if (viewInfo) {</span>
|
|
1011
|
+
<span class="cstat-no" title="statement not covered" > viewInfo = viewInfo.view</span>
|
|
1012
|
+
}
|
|
1013
|
+
} catch (err) {
|
|
1014
|
+
// check if it can be retrieved from design doc (needs migrated)
|
|
1015
|
+
<span class="cstat-no" title="statement not covered" > if (err.status !== 404) {</span>
|
|
1016
|
+
<span class="cstat-no" title="statement not covered" > viewInfo = null</span>
|
|
1017
|
+
} else {
|
|
1018
|
+
<span class="cstat-no" title="statement not covered" > viewInfo = await getFromDesignDoc()</span>
|
|
1019
|
+
<span class="cstat-no" title="statement not covered" > migrate = !!viewInfo</span>
|
|
1020
|
+
}
|
|
1021
|
+
}
|
|
1022
|
+
}
|
|
1023
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (migrate) {
|
|
1024
|
+
<span class="cstat-no" title="statement not covered" > await migrateToInMemoryView(db, viewName)</span>
|
|
1025
|
+
}
|
|
1026
|
+
if (!viewInfo) {
|
|
1027
|
+
throw "View does not exist."
|
|
1028
|
+
}
|
|
1029
|
+
return viewInfo
|
|
1030
|
+
}
|
|
1031
|
+
|
|
830
1032
|
exports.patch = async ctx => {
|
|
831
1033
|
const appId = ctx.appId
|
|
832
1034
|
const db = new CouchDB(appId)
|
|
@@ -930,15 +1132,18 @@ exports.fetchView = async ctx => {
|
|
|
930
1132
|
|
|
931
1133
|
const db = new CouchDB(appId)
|
|
932
1134
|
const { calculation, group, field } = ctx.query
|
|
933
|
-
const
|
|
934
|
-
|
|
935
|
-
if (
|
|
936
|
-
|
|
1135
|
+
const viewInfo = await getView(db, viewName)
|
|
1136
|
+
let response
|
|
1137
|
+
<span class="missing-if-branch" title="else path not taken" >E</span>if (env.SELF_HOSTED) {
|
|
1138
|
+
response = await db.query(`database/${viewName}`, {
|
|
1139
|
+
include_docs: !calculation,
|
|
1140
|
+
group: !!group,
|
|
1141
|
+
})
|
|
1142
|
+
} else {
|
|
1143
|
+
const tableId = <span class="cstat-no" title="statement not covered" >viewInfo.meta.tableId</span>
|
|
1144
|
+
const data = <span class="cstat-no" title="statement not covered" >await getRawTableData(ctx, db, tableId)</span>
|
|
1145
|
+
<span class="cstat-no" title="statement not covered" > response = await inMemoryViews.runView(viewInfo, calculation, group, data)</span>
|
|
937
1146
|
}
|
|
938
|
-
const response = await db.query(`database/${viewName}`, {
|
|
939
|
-
include_docs: !calculation,
|
|
940
|
-
group: !!group,
|
|
941
|
-
})
|
|
942
1147
|
|
|
943
1148
|
let rows
|
|
944
1149
|
if (!calculation) {
|
|
@@ -982,19 +1187,9 @@ exports.fetch = async ctx => {
|
|
|
982
1187
|
const appId = ctx.appId
|
|
983
1188
|
const db = new CouchDB(appId)
|
|
984
1189
|
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
<span class="cstat-no" title="statement not covered" > await userController.fetchMetadata(ctx)</span>
|
|
989
|
-
<span class="cstat-no" title="statement not covered" > rows = ctx.body</span>
|
|
990
|
-
} else {
|
|
991
|
-
const response = await db.allDocs(
|
|
992
|
-
getRowParams(ctx.params.tableId, null, {
|
|
993
|
-
include_docs: true,
|
|
994
|
-
})
|
|
995
|
-
)
|
|
996
|
-
rows = response.rows.map(row => row.doc)
|
|
997
|
-
}
|
|
1190
|
+
const tableId = ctx.params.tableId
|
|
1191
|
+
let table = await db.get(tableId)
|
|
1192
|
+
let rows = await getRawTableData(ctx, db, tableId)
|
|
998
1193
|
return outputProcessing(ctx, table, rows)
|
|
999
1194
|
}
|
|
1000
1195
|
|
|
@@ -1162,7 +1357,7 @@ exports.fetchEnrichedRow = async ctx => {
|
|
|
1162
1357
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
1163
1358
|
Code coverage generated by
|
|
1164
1359
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
1165
|
-
at Wed Sep 22 2021
|
|
1360
|
+
at Wed Sep 22 2021 17:29:03 GMT+0000 (Coordinated Universal Time)
|
|
1166
1361
|
</div>
|
|
1167
1362
|
</div>
|
|
1168
1363
|
<script src="../../../prettify.js"></script>
|
|
@@ -1228,7 +1228,7 @@ exports.fullSearch = <span class="fstat-no" title="function not covered" >as</sp
|
|
|
1228
1228
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
1229
1229
|
Code coverage generated by
|
|
1230
1230
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
1231
|
-
at Wed Sep 22 2021
|
|
1231
|
+
at Wed Sep 22 2021 17:29:03 GMT+0000 (Coordinated Universal Time)
|
|
1232
1232
|
</div>
|
|
1233
1233
|
</div>
|
|
1234
1234
|
<script src="../../../prettify.js"></script>
|
|
@@ -310,7 +310,7 @@ exports.validate = async ({ appId, tableId, row, table }) => {
|
|
|
310
310
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
311
311
|
Code coverage generated by
|
|
312
312
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
313
|
-
at Wed Sep 22 2021
|
|
313
|
+
at Wed Sep 22 2021 17:29:03 GMT+0000 (Coordinated Universal Time)
|
|
314
314
|
</div>
|
|
315
315
|
</div>
|
|
316
316
|
<script src="../../../prettify.js"></script>
|
|
@@ -208,7 +208,7 @@ exports.destroy = async ctx => {
|
|
|
208
208
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
209
209
|
Code coverage generated by
|
|
210
210
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
211
|
-
at Wed Sep 22 2021
|
|
211
|
+
at Wed Sep 22 2021 17:29:03 GMT+0000 (Coordinated Universal Time)
|
|
212
212
|
</div>
|
|
213
213
|
</div>
|
|
214
214
|
<script src="../../prettify.js"></script>
|
|
@@ -142,7 +142,7 @@ exports.save = <span class="fstat-no" title="function not covered" >as</span>ync
|
|
|
142
142
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
143
143
|
Code coverage generated by
|
|
144
144
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
145
|
-
at Wed Sep 22 2021
|
|
145
|
+
at Wed Sep 22 2021 17:29:03 GMT+0000 (Coordinated Universal Time)
|
|
146
146
|
</div>
|
|
147
147
|
</div>
|
|
148
148
|
<script src="../../prettify.js"></script>
|
|
@@ -110,7 +110,7 @@
|
|
|
110
110
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
111
111
|
Code coverage generated by
|
|
112
112
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
113
|
-
at Wed Sep 22 2021
|
|
113
|
+
at Wed Sep 22 2021 17:29:03 GMT+0000 (Coordinated Universal Time)
|
|
114
114
|
</div>
|
|
115
115
|
</div>
|
|
116
116
|
<script src="../../../prettify.js"></script>
|
|
@@ -610,7 +610,7 @@ exports.save = async function (ctx) {
|
|
|
610
610
|
if (updatedRows && updatedRows.length !== 0) {
|
|
611
611
|
await db.bulkDocs(updatedRows)
|
|
612
612
|
}
|
|
613
|
-
const result = await db.
|
|
613
|
+
const result = await db.put(tableToSave)
|
|
614
614
|
tableToSave._rev = result.rev
|
|
615
615
|
|
|
616
616
|
tableToSave = await tableSaveFunctions.after(tableToSave)
|
|
@@ -673,7 +673,7 @@ exports.validateCSVSchema = async function (ctx) {
|
|
|
673
673
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
674
674
|
Code coverage generated by
|
|
675
675
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
676
|
-
at Wed Sep 22 2021
|
|
676
|
+
at Wed Sep 22 2021 17:29:03 GMT+0000 (Coordinated Universal Time)
|
|
677
677
|
</div>
|
|
678
678
|
</div>
|
|
679
679
|
<script src="../../../prettify.js"></script>
|
|
@@ -289,7 +289,11 @@
|
|
|
289
289
|
<a name='L230'></a><a href='#L230'>230</a>
|
|
290
290
|
<a name='L231'></a><a href='#L231'>231</a>
|
|
291
291
|
<a name='L232'></a><a href='#L232'>232</a>
|
|
292
|
-
<a name='L233'></a><a href='#L233'>233</a
|
|
292
|
+
<a name='L233'></a><a href='#L233'>233</a>
|
|
293
|
+
<a name='L234'></a><a href='#L234'>234</a>
|
|
294
|
+
<a name='L235'></a><a href='#L235'>235</a>
|
|
295
|
+
<a name='L236'></a><a href='#L236'>236</a>
|
|
296
|
+
<a name='L237'></a><a href='#L237'>237</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">34x</span>
|
|
293
297
|
<span class="cline-any cline-yes">34x</span>
|
|
294
298
|
<span class="cline-any cline-yes">34x</span>
|
|
295
299
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -365,31 +369,35 @@
|
|
|
365
369
|
<span class="cline-any cline-yes">1x</span>
|
|
366
370
|
<span class="cline-any cline-yes">1x</span>
|
|
367
371
|
<span class="cline-any cline-yes">1x</span>
|
|
368
|
-
<span class="cline-any cline-yes">1x</span>
|
|
369
372
|
<span class="cline-any cline-neutral"> </span>
|
|
370
373
|
<span class="cline-any cline-neutral"> </span>
|
|
371
374
|
<span class="cline-any cline-yes">1x</span>
|
|
375
|
+
<span class="cline-any cline-yes">1x</span>
|
|
372
376
|
<span class="cline-any cline-neutral"> </span>
|
|
377
|
+
<span class="cline-any cline-yes">1x</span>
|
|
373
378
|
<span class="cline-any cline-neutral"> </span>
|
|
379
|
+
<span class="cline-any cline-yes">4x</span>
|
|
374
380
|
<span class="cline-any cline-neutral"> </span>
|
|
375
381
|
<span class="cline-any cline-neutral"> </span>
|
|
376
382
|
<span class="cline-any cline-neutral"> </span>
|
|
377
383
|
<span class="cline-any cline-neutral"> </span>
|
|
384
|
+
<span class="cline-any cline-no"> </span>
|
|
378
385
|
<span class="cline-any cline-neutral"> </span>
|
|
379
|
-
<span class="cline-any cline-yes">1x</span>
|
|
380
386
|
<span class="cline-any cline-neutral"> </span>
|
|
381
|
-
<span class="cline-any cline-yes">4x</span>
|
|
382
387
|
<span class="cline-any cline-neutral"> </span>
|
|
383
388
|
<span class="cline-any cline-neutral"> </span>
|
|
384
389
|
<span class="cline-any cline-neutral"> </span>
|
|
385
390
|
<span class="cline-any cline-neutral"> </span>
|
|
386
|
-
<span class="cline-any cline-
|
|
391
|
+
<span class="cline-any cline-neutral"> </span>
|
|
392
|
+
<span class="cline-any cline-yes">1x</span>
|
|
393
|
+
<span class="cline-any cline-neutral"> </span>
|
|
394
|
+
<span class="cline-any cline-neutral"> </span>
|
|
395
|
+
<span class="cline-any cline-neutral"> </span>
|
|
387
396
|
<span class="cline-any cline-neutral"> </span>
|
|
388
397
|
<span class="cline-any cline-neutral"> </span>
|
|
389
398
|
<span class="cline-any cline-neutral"> </span>
|
|
390
399
|
<span class="cline-any cline-neutral"> </span>
|
|
391
400
|
<span class="cline-any cline-neutral"> </span>
|
|
392
|
-
<span class="cline-any cline-yes">1x</span>
|
|
393
401
|
<span class="cline-any cline-neutral"> </span>
|
|
394
402
|
<span class="cline-any cline-neutral"> </span>
|
|
395
403
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -591,22 +599,16 @@ exports.handleDataImport = async (appId, user, table, dataImport) => {
|
|
|
591
599
|
// Populate the table with rows imported from CSV in a bulk update
|
|
592
600
|
const data = await csvParser.transform(dataImport)
|
|
593
601
|
|
|
602
|
+
let finalData = []
|
|
594
603
|
for (let i = 0; i < data.length; i++) {
|
|
595
604
|
let row = data[i]
|
|
596
605
|
row._id = generateRowID(table._id)
|
|
597
606
|
row.tableId = table._id
|
|
598
|
-
const processed = inputProcessing(user, table, row
|
|
607
|
+
const processed = inputProcessing(user, table, row, {
|
|
608
|
+
noAutoRelationships: true,
|
|
609
|
+
})
|
|
599
610
|
table = processed.table
|
|
600
611
|
row = processed.row
|
|
601
|
-
|
|
602
|
-
// make sure link rows are up to date
|
|
603
|
-
row = await linkRows.updateLinks({
|
|
604
|
-
appId,
|
|
605
|
-
eventType: linkRows.EventType.ROW_SAVE,
|
|
606
|
-
row,
|
|
607
|
-
tableId: row.tableId,
|
|
608
|
-
table,
|
|
609
|
-
})
|
|
610
612
|
|
|
611
613
|
for (let [fieldName, schema] of Object.entries(table.schema)) {
|
|
612
614
|
// check whether the options need to be updated for inclusion as part of the data import
|
|
@@ -621,10 +623,20 @@ exports.handleDataImport = async (appId, user, table, dataImport) => {
|
|
|
621
623
|
]
|
|
622
624
|
}
|
|
623
625
|
}
|
|
624
|
-
|
|
626
|
+
|
|
627
|
+
// make sure link rows are up to date
|
|
628
|
+
finalData.push(
|
|
629
|
+
linkRows.updateLinks({
|
|
630
|
+
appId,
|
|
631
|
+
eventType: linkRows.EventType.ROW_SAVE,
|
|
632
|
+
row,
|
|
633
|
+
tableId: row.tableId,
|
|
634
|
+
table,
|
|
635
|
+
})
|
|
636
|
+
)
|
|
625
637
|
}
|
|
626
638
|
|
|
627
|
-
await db.bulkDocs(
|
|
639
|
+
await db.bulkDocs(await Promise.all(finalData))
|
|
628
640
|
let response = await db.put(table)
|
|
629
641
|
table._rev = response._rev
|
|
630
642
|
}
|
|
@@ -760,7 +772,7 @@ exports.TableSaveFunctions = TableSaveFunctions
|
|
|
760
772
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
761
773
|
Code coverage generated by
|
|
762
774
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
763
|
-
at Wed Sep 22 2021
|
|
775
|
+
at Wed Sep 22 2021 17:29:03 GMT+0000 (Coordinated Universal Time)
|
|
764
776
|
</div>
|
|
765
777
|
</div>
|
|
766
778
|
<script src="../../../prettify.js"></script>
|
|
@@ -145,7 +145,7 @@ exports.downloadTemplate = async function (ctx) {
|
|
|
145
145
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
146
146
|
Code coverage generated by
|
|
147
147
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
148
|
-
at Wed Sep 22 2021
|
|
148
|
+
at Wed Sep 22 2021 17:29:03 GMT+0000 (Coordinated Universal Time)
|
|
149
149
|
</div>
|
|
150
150
|
</div>
|
|
151
151
|
<script src="../../prettify.js"></script>
|
|
@@ -298,7 +298,7 @@ exports.findMetadata = async function (ctx) {
|
|
|
298
298
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
299
299
|
Code coverage generated by
|
|
300
300
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
301
|
-
at Wed Sep 22 2021
|
|
301
|
+
at Wed Sep 22 2021 17:29:03 GMT+0000 (Coordinated Universal Time)
|
|
302
302
|
</div>
|
|
303
303
|
</div>
|
|
304
304
|
<script src="../../prettify.js"></script>
|
|
@@ -118,7 +118,7 @@ exports.json = function (headers, rows) {
|
|
|
118
118
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
119
119
|
Code coverage generated by
|
|
120
120
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
121
|
-
at Wed Sep 22 2021
|
|
121
|
+
at Wed Sep 22 2021 17:29:03 GMT+0000 (Coordinated Universal Time)
|
|
122
122
|
</div>
|
|
123
123
|
</div>
|
|
124
124
|
<script src="../../../prettify.js"></script>
|