@saltcorn/data 0.6.2-beta.1 → 0.6.2-beta.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.
Files changed (555) hide show
  1. package/dist/base-plugin/actions.d.ts +141 -0
  2. package/dist/base-plugin/actions.d.ts.map +1 -0
  3. package/dist/base-plugin/actions.js +551 -0
  4. package/dist/base-plugin/actions.js.map +1 -0
  5. package/dist/base-plugin/base.test.d.ts +2 -0
  6. package/dist/base-plugin/base.test.d.ts.map +1 -0
  7. package/dist/base-plugin/base.test.js +15 -0
  8. package/dist/base-plugin/base.test.js.map +1 -0
  9. package/dist/base-plugin/fieldviews.d.ts +25 -0
  10. package/dist/base-plugin/fieldviews.d.ts.map +1 -0
  11. package/dist/base-plugin/fieldviews.js +159 -0
  12. package/dist/base-plugin/fieldviews.js.map +1 -0
  13. package/dist/base-plugin/fileviews.d.ts +52 -0
  14. package/dist/base-plugin/fileviews.d.ts.map +1 -0
  15. package/dist/base-plugin/fileviews.js +59 -0
  16. package/dist/base-plugin/fileviews.js.map +1 -0
  17. package/dist/base-plugin/index.d.ts +524 -0
  18. package/dist/base-plugin/index.d.ts.map +1 -0
  19. package/{base-plugin → dist/base-plugin}/index.js +22 -24
  20. package/dist/base-plugin/index.js.map +1 -0
  21. package/dist/base-plugin/types.d.ts +383 -0
  22. package/dist/base-plugin/types.d.ts.map +1 -0
  23. package/dist/base-plugin/types.js +1080 -0
  24. package/dist/base-plugin/types.js.map +1 -0
  25. package/dist/base-plugin/viewtemplates/edit.d.ts +116 -0
  26. package/dist/base-plugin/viewtemplates/edit.d.ts.map +1 -0
  27. package/dist/base-plugin/viewtemplates/edit.js +561 -0
  28. package/dist/base-plugin/viewtemplates/edit.js.map +1 -0
  29. package/dist/base-plugin/viewtemplates/feed.d.ts +73 -0
  30. package/dist/base-plugin/viewtemplates/feed.d.ts.map +1 -0
  31. package/dist/base-plugin/viewtemplates/feed.js +348 -0
  32. package/dist/base-plugin/viewtemplates/feed.js.map +1 -0
  33. package/dist/base-plugin/viewtemplates/filter.d.ts +46 -0
  34. package/dist/base-plugin/viewtemplates/filter.d.ts.map +1 -0
  35. package/dist/base-plugin/viewtemplates/filter.js +267 -0
  36. package/dist/base-plugin/viewtemplates/filter.js.map +1 -0
  37. package/dist/base-plugin/viewtemplates/list.d.ts +99 -0
  38. package/dist/base-plugin/viewtemplates/list.d.ts.map +1 -0
  39. package/dist/base-plugin/viewtemplates/list.js +471 -0
  40. package/dist/base-plugin/viewtemplates/list.js.map +1 -0
  41. package/dist/base-plugin/viewtemplates/listshowlist.d.ts +41 -0
  42. package/dist/base-plugin/viewtemplates/listshowlist.d.ts.map +1 -0
  43. package/dist/base-plugin/viewtemplates/listshowlist.js +248 -0
  44. package/dist/base-plugin/viewtemplates/listshowlist.js.map +1 -0
  45. package/dist/base-plugin/viewtemplates/room.d.ts +140 -0
  46. package/dist/base-plugin/viewtemplates/room.d.ts.map +1 -0
  47. package/dist/base-plugin/viewtemplates/room.js +469 -0
  48. package/dist/base-plugin/viewtemplates/room.js.map +1 -0
  49. package/dist/base-plugin/viewtemplates/show.d.ts +101 -0
  50. package/dist/base-plugin/viewtemplates/show.d.ts.map +1 -0
  51. package/dist/base-plugin/viewtemplates/show.js +562 -0
  52. package/dist/base-plugin/viewtemplates/show.js.map +1 -0
  53. package/dist/base-plugin/viewtemplates/viewable_fields.d.ts +108 -0
  54. package/dist/base-plugin/viewtemplates/viewable_fields.d.ts.map +1 -0
  55. package/dist/base-plugin/viewtemplates/viewable_fields.js +563 -0
  56. package/dist/base-plugin/viewtemplates/viewable_fields.js.map +1 -0
  57. package/dist/contracts.d.ts +49 -0
  58. package/dist/contracts.d.ts.map +1 -0
  59. package/dist/contracts.js +212 -0
  60. package/dist/contracts.js.map +1 -0
  61. package/dist/coverage/lcov-report/block-navigation.d.ts +2 -0
  62. package/dist/coverage/lcov-report/block-navigation.d.ts.map +1 -0
  63. package/dist/coverage/lcov-report/block-navigation.js +66 -0
  64. package/dist/coverage/lcov-report/block-navigation.js.map +1 -0
  65. package/dist/coverage/lcov-report/prettify.d.ts +1 -0
  66. package/dist/coverage/lcov-report/prettify.d.ts.map +1 -0
  67. package/dist/coverage/lcov-report/prettify.js +478 -0
  68. package/dist/coverage/lcov-report/prettify.js.map +1 -0
  69. package/dist/coverage/lcov-report/sorter.d.ts +2 -0
  70. package/dist/coverage/lcov-report/sorter.d.ts.map +1 -0
  71. package/dist/coverage/lcov-report/sorter.js +141 -0
  72. package/dist/coverage/lcov-report/sorter.js.map +1 -0
  73. package/dist/db/connect.d.ts +40 -0
  74. package/dist/db/connect.d.ts.map +1 -0
  75. package/dist/db/connect.js +150 -0
  76. package/dist/db/connect.js.map +1 -0
  77. package/dist/db/db.test.d.ts +2 -0
  78. package/dist/db/db.test.d.ts.map +1 -0
  79. package/dist/db/db.test.js +28 -0
  80. package/dist/db/db.test.js.map +1 -0
  81. package/dist/db/fixtures.d.ts +8 -0
  82. package/dist/db/fixtures.d.ts.map +1 -0
  83. package/dist/db/fixtures.js +300 -0
  84. package/dist/db/fixtures.js.map +1 -0
  85. package/dist/db/index.d.ts +3 -0
  86. package/dist/db/index.d.ts.map +1 -0
  87. package/dist/db/index.js +41 -0
  88. package/dist/db/index.js.map +1 -0
  89. package/dist/db/reset_schema.d.ts +13 -0
  90. package/dist/db/reset_schema.d.ts.map +1 -0
  91. package/{db → dist/db}/reset_schema.js +45 -55
  92. package/dist/db/reset_schema.js.map +1 -0
  93. package/dist/db/state.d.ts +56 -0
  94. package/dist/db/state.d.ts.map +1 -0
  95. package/dist/db/state.js +610 -0
  96. package/dist/db/state.js.map +1 -0
  97. package/dist/index.d.ts +2 -0
  98. package/dist/index.d.ts.map +1 -0
  99. package/{index.js → dist/index.js} +2 -1
  100. package/dist/index.js.map +1 -0
  101. package/dist/migrate.d.ts +12 -0
  102. package/dist/migrate.d.ts.map +1 -0
  103. package/dist/migrate.js +94 -0
  104. package/dist/migrate.js.map +1 -0
  105. package/dist/migrations/202005141503.d.ts +2 -0
  106. package/dist/migrations/202005141503.d.ts.map +1 -0
  107. package/{migrations → dist/migrations}/202005141503.js +2 -1
  108. package/dist/migrations/202005141503.js.map +1 -0
  109. package/dist/migrations/202005241712.d.ts +2 -0
  110. package/dist/migrations/202005241712.d.ts.map +1 -0
  111. package/{migrations → dist/migrations}/202005241712.js +2 -1
  112. package/dist/migrations/202005241712.js.map +1 -0
  113. package/dist/migrations/202005251037.d.ts +2 -0
  114. package/dist/migrations/202005251037.d.ts.map +1 -0
  115. package/{migrations → dist/migrations}/202005251037.js +2 -1
  116. package/dist/migrations/202005251037.js.map +1 -0
  117. package/dist/migrations/202005282134.d.ts +2 -0
  118. package/dist/migrations/202005282134.d.ts.map +1 -0
  119. package/{migrations → dist/migrations}/202005282134.js +2 -1
  120. package/dist/migrations/202005282134.js.map +1 -0
  121. package/dist/migrations/202006022156.d.ts +2 -0
  122. package/dist/migrations/202006022156.d.ts.map +1 -0
  123. package/{migrations → dist/migrations}/202006022156.js +2 -1
  124. package/dist/migrations/202006022156.js.map +1 -0
  125. package/dist/migrations/202006051507.d.ts +2 -0
  126. package/dist/migrations/202006051507.d.ts.map +1 -0
  127. package/{migrations → dist/migrations}/202006051507.js +2 -1
  128. package/dist/migrations/202006051507.js.map +1 -0
  129. package/dist/migrations/202006240906.d.ts +2 -0
  130. package/dist/migrations/202006240906.d.ts.map +1 -0
  131. package/{migrations → dist/migrations}/202006240906.js +2 -1
  132. package/dist/migrations/202006240906.js.map +1 -0
  133. package/dist/migrations/202007091707.d.ts +2 -0
  134. package/dist/migrations/202007091707.d.ts.map +1 -0
  135. package/{migrations → dist/migrations}/202007091707.js +2 -1
  136. package/dist/migrations/202007091707.js.map +1 -0
  137. package/dist/migrations/202007202144.d.ts +2 -0
  138. package/dist/migrations/202007202144.d.ts.map +1 -0
  139. package/{migrations → dist/migrations}/202007202144.js +2 -1
  140. package/dist/migrations/202007202144.js.map +1 -0
  141. package/dist/migrations/202008031500.d.ts +2 -0
  142. package/dist/migrations/202008031500.d.ts.map +1 -0
  143. package/dist/migrations/202008031500.js +4 -0
  144. package/dist/migrations/202008031500.js.map +1 -0
  145. package/dist/migrations/202008051415.d.ts +2 -0
  146. package/dist/migrations/202008051415.d.ts.map +1 -0
  147. package/{migrations → dist/migrations}/202008051415.js +2 -1
  148. package/dist/migrations/202008051415.js.map +1 -0
  149. package/dist/migrations/202008121149.d.ts +3 -0
  150. package/dist/migrations/202008121149.d.ts.map +1 -0
  151. package/{migrations → dist/migrations}/202008121149.js +2 -2
  152. package/dist/migrations/202008121149.js.map +1 -0
  153. package/dist/migrations/202009112140.d.ts +3 -0
  154. package/dist/migrations/202009112140.d.ts.map +1 -0
  155. package/{migrations → dist/migrations}/202009112140.js +2 -2
  156. package/dist/migrations/202009112140.js.map +1 -0
  157. package/dist/migrations/202009181655.d.ts +2 -0
  158. package/dist/migrations/202009181655.d.ts.map +1 -0
  159. package/dist/migrations/202009181655.js +7 -0
  160. package/dist/migrations/202009181655.js.map +1 -0
  161. package/dist/migrations/202009221105.d.ts +2 -0
  162. package/dist/migrations/202009221105.d.ts.map +1 -0
  163. package/dist/migrations/202009221105.js +4 -0
  164. package/dist/migrations/202009221105.js.map +1 -0
  165. package/dist/migrations/202009231331.d.ts +2 -0
  166. package/dist/migrations/202009231331.d.ts.map +1 -0
  167. package/{migrations → dist/migrations}/202009231331.js +2 -1
  168. package/dist/migrations/202009231331.js.map +1 -0
  169. package/dist/migrations/202009301531.d.ts +2 -0
  170. package/dist/migrations/202009301531.d.ts.map +1 -0
  171. package/dist/migrations/202009301531.js +8 -0
  172. package/dist/migrations/202009301531.js.map +1 -0
  173. package/dist/migrations/202010231444.d.ts +2 -0
  174. package/dist/migrations/202010231444.d.ts.map +1 -0
  175. package/dist/migrations/202010231444.js +4 -0
  176. package/dist/migrations/202010231444.js.map +1 -0
  177. package/dist/migrations/202010251412.d.ts +2 -0
  178. package/dist/migrations/202010251412.d.ts.map +1 -0
  179. package/dist/migrations/202010251412.js +10 -0
  180. package/dist/migrations/202010251412.js.map +1 -0
  181. package/dist/migrations/202011021749.d.ts +2 -0
  182. package/dist/migrations/202011021749.d.ts.map +1 -0
  183. package/{migrations → dist/migrations}/202011021749.js +2 -1
  184. package/dist/migrations/202011021749.js.map +1 -0
  185. package/dist/migrations/202011051353.d.ts +2 -0
  186. package/dist/migrations/202011051353.d.ts.map +1 -0
  187. package/{migrations → dist/migrations}/202011051353.js +2 -1
  188. package/dist/migrations/202011051353.js.map +1 -0
  189. package/dist/migrations/202011111127.d.ts +2 -0
  190. package/dist/migrations/202011111127.d.ts.map +1 -0
  191. package/{migrations → dist/migrations}/202011111127.js +2 -1
  192. package/dist/migrations/202011111127.js.map +1 -0
  193. package/dist/migrations/202012011203.d.ts +2 -0
  194. package/dist/migrations/202012011203.d.ts.map +1 -0
  195. package/{migrations → dist/migrations}/202012011203.js +2 -1
  196. package/dist/migrations/202012011203.js.map +1 -0
  197. package/dist/migrations/202012100841.d.ts +2 -0
  198. package/dist/migrations/202012100841.d.ts.map +1 -0
  199. package/{migrations → dist/migrations}/202012100841.js +2 -1
  200. package/dist/migrations/202012100841.js.map +1 -0
  201. package/dist/migrations/202012281835.d.ts +2 -0
  202. package/dist/migrations/202012281835.d.ts.map +1 -0
  203. package/{migrations → dist/migrations}/202012281835.js +2 -1
  204. package/dist/migrations/202012281835.js.map +1 -0
  205. package/dist/migrations/202101061051.d.ts +2 -0
  206. package/dist/migrations/202101061051.d.ts.map +1 -0
  207. package/{migrations → dist/migrations}/202101061051.js +2 -1
  208. package/dist/migrations/202101061051.js.map +1 -0
  209. package/dist/migrations/202101141128.d.ts +2 -0
  210. package/dist/migrations/202101141128.d.ts.map +1 -0
  211. package/dist/migrations/202101141128.js +4 -0
  212. package/dist/migrations/202101141128.js.map +1 -0
  213. package/dist/migrations/202102091312.d.ts +3 -0
  214. package/dist/migrations/202102091312.d.ts.map +1 -0
  215. package/dist/migrations/202102091312.js +19 -0
  216. package/dist/migrations/202102091312.js.map +1 -0
  217. package/dist/migrations/202102101624.d.ts +2 -0
  218. package/dist/migrations/202102101624.d.ts.map +1 -0
  219. package/dist/migrations/202102101624.js +7 -0
  220. package/dist/migrations/202102101624.js.map +1 -0
  221. package/dist/migrations/202102172148.d.ts +2 -0
  222. package/dist/migrations/202102172148.d.ts.map +1 -0
  223. package/{migrations → dist/migrations}/202102172148.js +2 -2
  224. package/dist/migrations/202102172148.js.map +1 -0
  225. package/dist/migrations/202102261650.d.ts +2 -0
  226. package/dist/migrations/202102261650.d.ts.map +1 -0
  227. package/dist/migrations/202102261650.js +7 -0
  228. package/dist/migrations/202102261650.js.map +1 -0
  229. package/dist/migrations/202106102347.d.ts +2 -0
  230. package/dist/migrations/202106102347.d.ts.map +1 -0
  231. package/{migrations → dist/migrations}/202106102347.js +2 -3
  232. package/dist/migrations/202106102347.js.map +1 -0
  233. package/dist/migrations/202106112120.d.ts +2 -0
  234. package/dist/migrations/202106112120.d.ts.map +1 -0
  235. package/{migrations → dist/migrations}/202106112120.js +2 -3
  236. package/dist/migrations/202106112120.js.map +1 -0
  237. package/dist/migrations/202106120012.d.ts +2 -0
  238. package/dist/migrations/202106120012.d.ts.map +1 -0
  239. package/{migrations → dist/migrations}/202106120012.js +2 -3
  240. package/dist/migrations/202106120012.js.map +1 -0
  241. package/dist/migrations/202106120220.d.ts +2 -0
  242. package/dist/migrations/202106120220.d.ts.map +1 -0
  243. package/{migrations → dist/migrations}/202106120220.js +2 -4
  244. package/dist/migrations/202106120220.js.map +1 -0
  245. package/dist/migrations/202106121701.d.ts +2 -0
  246. package/dist/migrations/202106121701.d.ts.map +1 -0
  247. package/{migrations → dist/migrations}/202106121701.js +2 -3
  248. package/dist/migrations/202106121701.js.map +1 -0
  249. package/dist/migrations/202106121703.d.ts +3 -0
  250. package/dist/migrations/202106121703.d.ts.map +1 -0
  251. package/{migrations → dist/migrations}/202106121703.js +2 -3
  252. package/dist/migrations/202106121703.js.map +1 -0
  253. package/dist/migrations/202106251126.d.ts +2 -0
  254. package/dist/migrations/202106251126.d.ts.map +1 -0
  255. package/dist/migrations/202106251126.js +6 -0
  256. package/dist/migrations/202106251126.js.map +1 -0
  257. package/dist/migrations/202107281619.d.ts +2 -0
  258. package/dist/migrations/202107281619.d.ts.map +1 -0
  259. package/{migrations → dist/migrations}/202107281619.js +2 -1
  260. package/dist/migrations/202107281619.js.map +1 -0
  261. package/dist/migrations/202107302158.d.ts +3 -0
  262. package/dist/migrations/202107302158.d.ts.map +1 -0
  263. package/{migrations → dist/migrations}/202107302158.js +2 -3
  264. package/dist/migrations/202107302158.js.map +1 -0
  265. package/dist/migrations/202108022257.d.ts +2 -0
  266. package/dist/migrations/202108022257.d.ts.map +1 -0
  267. package/{migrations → dist/migrations}/202108022257.js +3 -4
  268. package/dist/migrations/202108022257.js.map +1 -0
  269. package/dist/migrations/202109201624.d.ts +2 -0
  270. package/dist/migrations/202109201624.d.ts.map +1 -0
  271. package/{migrations → dist/migrations}/202109201624.js +2 -1
  272. package/dist/migrations/202109201624.js.map +1 -0
  273. package/dist/migrations/202109301031.d.ts +3 -0
  274. package/dist/migrations/202109301031.d.ts.map +1 -0
  275. package/{migrations → dist/migrations}/202109301031.js +2 -2
  276. package/dist/migrations/202109301031.js.map +1 -0
  277. package/dist/migrations/202111290253.d.ts +3 -0
  278. package/dist/migrations/202111290253.d.ts.map +1 -0
  279. package/dist/migrations/202111290253.js +5 -0
  280. package/dist/migrations/202111290253.js.map +1 -0
  281. package/dist/models/backup.d.ts +22 -0
  282. package/dist/models/backup.d.ts.map +1 -0
  283. package/{models → dist/models}/backup.js +95 -192
  284. package/dist/models/backup.js.map +1 -0
  285. package/dist/models/config.d.ts +180 -0
  286. package/dist/models/config.d.ts.map +1 -0
  287. package/dist/models/config.js +758 -0
  288. package/dist/models/config.js.map +1 -0
  289. package/dist/models/crash.d.ts +74 -0
  290. package/dist/models/crash.d.ts.map +1 -0
  291. package/dist/models/crash.js +118 -0
  292. package/dist/models/crash.js.map +1 -0
  293. package/dist/models/discovery.d.ts +28 -0
  294. package/dist/models/discovery.d.ts.map +1 -0
  295. package/dist/models/discovery.js +163 -0
  296. package/dist/models/discovery.js.map +1 -0
  297. package/dist/models/email.d.ts +16 -0
  298. package/dist/models/email.d.ts.map +1 -0
  299. package/dist/models/email.js +90 -0
  300. package/dist/models/email.js.map +1 -0
  301. package/dist/models/eventlog.d.ts +77 -0
  302. package/dist/models/eventlog.d.ts.map +1 -0
  303. package/dist/models/eventlog.js +132 -0
  304. package/dist/models/eventlog.js.map +1 -0
  305. package/dist/models/expression.d.ts +54 -0
  306. package/dist/models/expression.d.ts.map +1 -0
  307. package/dist/models/expression.js +274 -0
  308. package/dist/models/expression.js.map +1 -0
  309. package/dist/models/field.d.ts +217 -0
  310. package/dist/models/field.d.ts.map +1 -0
  311. package/dist/models/field.js +619 -0
  312. package/dist/models/field.js.map +1 -0
  313. package/dist/models/fieldrepeat.d.ts +49 -0
  314. package/dist/models/fieldrepeat.d.ts.map +1 -0
  315. package/dist/models/fieldrepeat.js +88 -0
  316. package/dist/models/fieldrepeat.js.map +1 -0
  317. package/dist/models/file.d.ts +122 -0
  318. package/dist/models/file.d.ts.map +1 -0
  319. package/dist/models/file.js +224 -0
  320. package/dist/models/file.js.map +1 -0
  321. package/dist/models/form.d.ts +82 -0
  322. package/dist/models/form.d.ts.map +1 -0
  323. package/dist/models/form.js +163 -0
  324. package/dist/models/form.js.map +1 -0
  325. package/dist/models/index.d.ts +1 -0
  326. package/dist/models/index.d.ts.map +1 -0
  327. package/{models → dist/models}/index.js +42 -42
  328. package/dist/models/index.js.map +1 -0
  329. package/dist/models/layout.d.ts +34 -0
  330. package/dist/models/layout.d.ts.map +1 -0
  331. package/dist/models/layout.js +153 -0
  332. package/dist/models/layout.js.map +1 -0
  333. package/dist/models/library.d.ts +50 -0
  334. package/dist/models/library.d.ts.map +1 -0
  335. package/dist/models/library.js +129 -0
  336. package/dist/models/library.js.map +1 -0
  337. package/dist/models/pack.d.ts +89 -0
  338. package/dist/models/pack.d.ts.map +1 -0
  339. package/dist/models/pack.js +390 -0
  340. package/dist/models/pack.js.map +1 -0
  341. package/dist/models/page.d.ts +101 -0
  342. package/dist/models/page.d.ts.map +1 -0
  343. package/dist/models/page.js +223 -0
  344. package/dist/models/page.js.map +1 -0
  345. package/dist/models/plugin.d.ts +100 -0
  346. package/dist/models/plugin.d.ts.map +1 -0
  347. package/dist/models/plugin.js +204 -0
  348. package/dist/models/plugin.js.map +1 -0
  349. package/dist/models/random.d.ts +24 -0
  350. package/dist/models/random.d.ts.map +1 -0
  351. package/dist/models/random.js +186 -0
  352. package/dist/models/random.js.map +1 -0
  353. package/dist/models/role.d.ts +42 -0
  354. package/dist/models/role.d.ts.map +1 -0
  355. package/dist/models/role.js +64 -0
  356. package/dist/models/role.js.map +1 -0
  357. package/dist/models/scheduler.d.ts +18 -0
  358. package/dist/models/scheduler.d.ts.map +1 -0
  359. package/dist/models/scheduler.js +159 -0
  360. package/dist/models/scheduler.js.map +1 -0
  361. package/dist/models/table.d.ts +326 -0
  362. package/dist/models/table.d.ts.map +1 -0
  363. package/dist/models/table.js +1006 -0
  364. package/dist/models/table.js.map +1 -0
  365. package/dist/models/table_constraints.d.ts +69 -0
  366. package/dist/models/table_constraints.d.ts.map +1 -0
  367. package/dist/models/table_constraints.js +118 -0
  368. package/dist/models/table_constraints.js.map +1 -0
  369. package/dist/models/tenant.d.ts +55 -0
  370. package/dist/models/tenant.d.ts.map +1 -0
  371. package/{models → dist/models}/tenant.js +40 -63
  372. package/dist/models/tenant.js.map +1 -0
  373. package/dist/models/trigger.d.ts +133 -0
  374. package/dist/models/trigger.d.ts.map +1 -0
  375. package/dist/models/trigger.js +292 -0
  376. package/dist/models/trigger.js.map +1 -0
  377. package/dist/models/user.d.ts +235 -0
  378. package/dist/models/user.d.ts.map +1 -0
  379. package/dist/models/user.js +434 -0
  380. package/dist/models/user.js.map +1 -0
  381. package/dist/models/view.d.ts +204 -0
  382. package/dist/models/view.d.ts.map +1 -0
  383. package/dist/models/view.js +497 -0
  384. package/dist/models/view.js.map +1 -0
  385. package/dist/models/workflow.d.ts +48 -0
  386. package/dist/models/workflow.d.ts.map +1 -0
  387. package/dist/models/workflow.js +190 -0
  388. package/dist/models/workflow.js.map +1 -0
  389. package/dist/plugin-helper.d.ts +145 -0
  390. package/dist/plugin-helper.d.ts.map +1 -0
  391. package/dist/plugin-helper.js +1158 -0
  392. package/dist/plugin-helper.js.map +1 -0
  393. package/dist/plugin-testing.d.ts +3 -0
  394. package/dist/plugin-testing.d.ts.map +1 -0
  395. package/dist/plugin-testing.js +120 -0
  396. package/dist/plugin-testing.js.map +1 -0
  397. package/dist/tests/actions.test.d.ts +2 -0
  398. package/dist/tests/actions.test.d.ts.map +1 -0
  399. package/dist/tests/actions.test.js +205 -0
  400. package/dist/tests/actions.test.js.map +1 -0
  401. package/dist/tests/auxtest.test.d.ts +2 -0
  402. package/dist/tests/auxtest.test.d.ts.map +1 -0
  403. package/dist/tests/auxtest.test.js +48 -0
  404. package/dist/tests/auxtest.test.js.map +1 -0
  405. package/dist/tests/backup.test.d.ts +2 -0
  406. package/dist/tests/backup.test.d.ts.map +1 -0
  407. package/dist/tests/backup.test.js +88 -0
  408. package/dist/tests/backup.test.js.map +1 -0
  409. package/dist/tests/calc.test.d.ts +2 -0
  410. package/dist/tests/calc.test.d.ts.map +1 -0
  411. package/dist/tests/calc.test.js +231 -0
  412. package/dist/tests/calc.test.js.map +1 -0
  413. package/dist/tests/config.test.d.ts +2 -0
  414. package/dist/tests/config.test.d.ts.map +1 -0
  415. package/dist/tests/config.test.js +83 -0
  416. package/dist/tests/config.test.js.map +1 -0
  417. package/dist/tests/discover.test.d.ts +2 -0
  418. package/dist/tests/discover.test.d.ts.map +1 -0
  419. package/dist/tests/discover.test.js +106 -0
  420. package/dist/tests/discover.test.js.map +1 -0
  421. package/dist/tests/exact_views.test.d.ts +2 -0
  422. package/dist/tests/exact_views.test.d.ts.map +1 -0
  423. package/dist/tests/exact_views.test.js +511 -0
  424. package/dist/tests/exact_views.test.js.map +1 -0
  425. package/dist/tests/field.test.d.ts +2 -0
  426. package/dist/tests/field.test.d.ts.map +1 -0
  427. package/dist/tests/field.test.js +237 -0
  428. package/dist/tests/field.test.js.map +1 -0
  429. package/dist/tests/form.test.d.ts +2 -0
  430. package/dist/tests/form.test.d.ts.map +1 -0
  431. package/dist/tests/form.test.js +191 -0
  432. package/dist/tests/form.test.js.map +1 -0
  433. package/dist/tests/mocks.d.ts +111 -0
  434. package/dist/tests/mocks.d.ts.map +1 -0
  435. package/dist/tests/mocks.js +165 -0
  436. package/dist/tests/mocks.js.map +1 -0
  437. package/dist/tests/models.test.d.ts +2 -0
  438. package/dist/tests/models.test.d.ts.map +1 -0
  439. package/dist/tests/models.test.js +210 -0
  440. package/dist/tests/models.test.js.map +1 -0
  441. package/dist/tests/pack.test.d.ts +2 -0
  442. package/dist/tests/pack.test.d.ts.map +1 -0
  443. package/dist/tests/pack.test.js +331 -0
  444. package/dist/tests/pack.test.js.map +1 -0
  445. package/dist/tests/plugin.test.d.ts +2 -0
  446. package/dist/tests/plugin.test.d.ts.map +1 -0
  447. package/dist/tests/plugin.test.js +53 -0
  448. package/dist/tests/plugin.test.js.map +1 -0
  449. package/dist/tests/random.test.d.ts +2 -0
  450. package/dist/tests/random.test.d.ts.map +1 -0
  451. package/dist/tests/random.test.js +138 -0
  452. package/dist/tests/random.test.js.map +1 -0
  453. package/dist/tests/table.test.d.ts +2 -0
  454. package/dist/tests/table.test.d.ts.map +1 -0
  455. package/dist/tests/table.test.js +1048 -0
  456. package/dist/tests/table.test.js.map +1 -0
  457. package/dist/tests/tenant.test.d.ts +2 -0
  458. package/dist/tests/tenant.test.d.ts.map +1 -0
  459. package/dist/tests/tenant.test.js +45 -0
  460. package/dist/tests/tenant.test.js.map +1 -0
  461. package/dist/tests/user.test.d.ts +2 -0
  462. package/dist/tests/user.test.d.ts.map +1 -0
  463. package/dist/tests/user.test.js +190 -0
  464. package/dist/tests/user.test.js.map +1 -0
  465. package/dist/tests/view.test.d.ts +2 -0
  466. package/dist/tests/view.test.d.ts.map +1 -0
  467. package/dist/tests/view.test.js +238 -0
  468. package/dist/tests/view.test.js.map +1 -0
  469. package/dist/tests/workflow.test.d.ts +2 -0
  470. package/dist/tests/workflow.test.d.ts.map +1 -0
  471. package/dist/tests/workflow.test.js +115 -0
  472. package/dist/tests/workflow.test.js.map +1 -0
  473. package/dist/tsconfig.ref.tsbuildinfo +1 -0
  474. package/dist/utils.d.ts +26 -0
  475. package/dist/utils.d.ts.map +1 -0
  476. package/dist/utils.js +124 -0
  477. package/dist/utils.js.map +1 -0
  478. package/package.json +34 -8
  479. package/base-plugin/actions.js +0 -629
  480. package/base-plugin/base.test.js +0 -15
  481. package/base-plugin/fieldviews.js +0 -197
  482. package/base-plugin/fileviews.js +0 -65
  483. package/base-plugin/types.js +0 -1154
  484. package/base-plugin/viewtemplates/edit.js +0 -672
  485. package/base-plugin/viewtemplates/feed.js +0 -434
  486. package/base-plugin/viewtemplates/filter.js +0 -358
  487. package/base-plugin/viewtemplates/list.js +0 -575
  488. package/base-plugin/viewtemplates/listshowlist.js +0 -292
  489. package/base-plugin/viewtemplates/room.js +0 -652
  490. package/base-plugin/viewtemplates/show.js +0 -689
  491. package/base-plugin/viewtemplates/viewable_fields.js +0 -714
  492. package/contracts.js +0 -311
  493. package/db/connect.js +0 -151
  494. package/db/db.test.js +0 -33
  495. package/db/fixtures.js +0 -303
  496. package/db/index.js +0 -63
  497. package/db/state.js +0 -674
  498. package/migrate.js +0 -99
  499. package/migrations/202008031500.js +0 -4
  500. package/migrations/202009181655.js +0 -6
  501. package/migrations/202009221105.js +0 -4
  502. package/migrations/202009301531.js +0 -7
  503. package/migrations/202010231444.js +0 -4
  504. package/migrations/202010251412.js +0 -9
  505. package/migrations/202101141128.js +0 -4
  506. package/migrations/202102091312.js +0 -19
  507. package/migrations/202102101624.js +0 -5
  508. package/migrations/202102261650.js +0 -6
  509. package/migrations/202106251126.js +0 -5
  510. package/models/config.js +0 -680
  511. package/models/crash.js +0 -126
  512. package/models/discovery.js +0 -195
  513. package/models/email.js +0 -92
  514. package/models/eventlog.js +0 -146
  515. package/models/expression.js +0 -276
  516. package/models/field.js +0 -746
  517. package/models/fieldrepeat.js +0 -96
  518. package/models/file.js +0 -234
  519. package/models/form.js +0 -169
  520. package/models/layout.js +0 -146
  521. package/models/library.js +0 -135
  522. package/models/pack.js +0 -466
  523. package/models/page.js +0 -255
  524. package/models/plugin.js +0 -219
  525. package/models/random.js +0 -206
  526. package/models/role.js +0 -94
  527. package/models/scheduler.js +0 -163
  528. package/models/table.js +0 -1211
  529. package/models/table_constraints.js +0 -133
  530. package/models/trigger.js +0 -327
  531. package/models/user.js +0 -503
  532. package/models/view.js +0 -622
  533. package/models/workflow.js +0 -205
  534. package/plugin-helper.js +0 -1311
  535. package/plugin-testing.js +0 -124
  536. package/tests/actions.test.js +0 -232
  537. package/tests/auxtest.test.js +0 -52
  538. package/tests/backup.test.js +0 -92
  539. package/tests/calc.test.js +0 -243
  540. package/tests/config.test.js +0 -91
  541. package/tests/discover.test.js +0 -114
  542. package/tests/exact_views.test.js +0 -526
  543. package/tests/field.test.js +0 -253
  544. package/tests/form.test.js +0 -198
  545. package/tests/mocks.js +0 -173
  546. package/tests/models.test.js +0 -221
  547. package/tests/pack.test.js +0 -350
  548. package/tests/plugin.test.js +0 -59
  549. package/tests/random.test.js +0 -154
  550. package/tests/table.test.js +0 -1091
  551. package/tests/tenant.test.js +0 -56
  552. package/tests/user.test.js +0 -196
  553. package/tests/view.test.js +0 -251
  554. package/tests/workflow.test.js +0 -119
  555. package/utils.js +0 -137
@@ -1,575 +0,0 @@
1
- /**
2
- * @category saltcorn-data
3
- * @module base-plugin/viewtemplates/list
4
- * @subcategory base-plugin
5
- */
6
- const Field = require("../../models/field");
7
- const FieldRepeat = require("../../models/fieldrepeat");
8
- const Table = require("../../models/table");
9
- const Form = require("../../models/form");
10
- const View = require("../../models/view");
11
- const Workflow = require("../../models/workflow");
12
- const { mkTable, h, post_btn, link } = require("@saltcorn/markup");
13
- const { text, script, button, div } = require("@saltcorn/markup/tags");
14
- const pluralize = require("pluralize");
15
- const {
16
- removeEmptyStrings,
17
- removeDefaultColor,
18
- applyAsync,
19
- } = require("../../utils");
20
- const {
21
- field_picker_fields,
22
- picked_fields_to_query,
23
- stateFieldsToWhere,
24
- initial_config_all_fields,
25
- stateToQueryString,
26
- stateFieldsToQuery,
27
- link_view,
28
- getActionConfigFields,
29
- readState,
30
- run_action_column,
31
- } = require("../../plugin-helper");
32
- const { get_viewable_fields } = require("./viewable_fields");
33
- const { getState } = require("../../db/state");
34
- const { get_async_expression_function } = require("../../models/expression");
35
- const db = require("../../db");
36
- const { get_existing_views } = require("../../models/discovery");
37
- const { InvalidConfiguration } = require("../../utils");
38
-
39
- /**
40
- * @param {object} context
41
- * @returns {Promise<void>}
42
- */
43
- const create_db_view = async (context) => {
44
- const table = await Table.findOne({ id: context.table_id });
45
- const fields = await table.getFields();
46
- const { joinFields, aggregations } = picked_fields_to_query(
47
- context.columns,
48
- fields
49
- );
50
-
51
- const { sql } = await table.getJoinedQuery({
52
- where: {},
53
- joinFields,
54
- aggregations,
55
- });
56
- const schema = db.getTenantSchemaPrefix();
57
- // is there already a table with this name ? if yes add _sqlview
58
- const extable = await Table.findOne({ name: context.viewname });
59
- const sql_view_name = `${schema}"${db.sqlsanitize(context.viewname)}${
60
- extable ? "_sqlview" : ""
61
- }"`;
62
- await db.query(`drop view if exists ${sql_view_name};`);
63
- await db.query(`create or replace view ${sql_view_name} as ${sql};`);
64
- };
65
-
66
- /**
67
- * @param {*} table_id
68
- * @param {string} viewname
69
- * @param {object} opts
70
- * @param {*} opts.default_state
71
- * @returns {Promise<void>}
72
- */
73
- const on_delete = async (table_id, viewname, { default_state }) => {
74
- if (!db.isSQLite) {
75
- const sqlviews = (await get_existing_views()).map((v) => v.table_name);
76
- const vnm = db.sqlsanitize(viewname);
77
- const schema = db.getTenantSchemaPrefix();
78
- if (sqlviews.includes(vnm))
79
- await db.query(`drop view if exists ${schema}"${vnm}";`);
80
- if (sqlviews.includes(vnm + "_sqlview"))
81
- await db.query(`drop view if exists ${schema}"${vnm + "_sqlview"}";`);
82
- }
83
- };
84
-
85
- /**
86
- * @param {object} req
87
- * @returns {Workflow}
88
- */
89
- const configuration_workflow = (req) =>
90
- new Workflow({
91
- onDone: async (ctx) => {
92
- if (ctx.default_state._create_db_view) {
93
- await create_db_view(ctx);
94
- }
95
-
96
- return ctx;
97
- },
98
- steps: [
99
- {
100
- name: req.__("Columns"),
101
- form: async (context) => {
102
- const table = await Table.findOne(
103
- context.table_id
104
- ? { id: context.table_id }
105
- : { name: context.exttable_name }
106
- );
107
- //console.log(context);
108
- const field_picker_repeat = await field_picker_fields({
109
- table,
110
- viewname: context.viewname,
111
- req,
112
- });
113
- const create_views = await View.find_table_views_where(
114
- context.table_id || context.exttable_name,
115
- ({ state_fields, viewrow }) =>
116
- viewrow.name !== context.viewname &&
117
- state_fields.every((sf) => !sf.required)
118
- );
119
- const create_view_opts = create_views.map((v) => v.select_option);
120
- return new Form({
121
- blurb: req.__("Specify the fields in the table to show"),
122
- fields: [
123
- new FieldRepeat({
124
- name: "columns",
125
- fields: field_picker_repeat,
126
- }),
127
- ...(create_view_opts.length > 0
128
- ? [
129
- {
130
- name: "view_to_create",
131
- label: req.__("Use view to create"),
132
- sublabel: req.__(
133
- "If user has write permission. Leave blank to have no link to create a new item"
134
- ),
135
- type: "String",
136
- attributes: {
137
- options: create_view_opts,
138
- },
139
- },
140
- {
141
- name: "create_view_display",
142
- label: req.__("Display create view as"),
143
- type: "String",
144
- required: true,
145
- attributes: {
146
- options: "Link,Embedded,Popup",
147
- },
148
- },
149
- {
150
- name: "create_view_label",
151
- label: req.__("Label for create"),
152
- sublabel: req.__(
153
- "Label in link or button to create. Leave blank for a default label"
154
- ),
155
- type: "String",
156
- showIf: { create_view_display: ["Link", "Popup"] },
157
- },
158
- {
159
- name: "create_view_location",
160
- label: req.__("Location"),
161
- sublabel: req.__("Location of link to create new row"),
162
- //required: true,
163
- attributes: {
164
- options: [
165
- "Bottom left",
166
- "Bottom right",
167
- "Top left",
168
- "Top right",
169
- ],
170
- },
171
- type: "String",
172
- showIf: { create_view_display: ["Link", "Popup"] },
173
- },
174
- ]
175
- : []),
176
- ],
177
- });
178
- },
179
- },
180
- {
181
- name: req.__("Default state"),
182
- contextField: "default_state",
183
- form: async (context) => {
184
- const table = await Table.findOne(
185
- context.table_id || context.exttable_name
186
- );
187
- const table_fields = (await table.getFields()).filter(
188
- (f) => !f.calculated || f.stored
189
- );
190
- const formfields = table_fields.map((f) => {
191
- return {
192
- name: f.name,
193
- label: f.label,
194
- type: f.type,
195
- reftable_name: f.reftable_name,
196
- attributes: f.attributes,
197
- fieldview:
198
- f.type && f.type.name === "Bool" ? "tristate" : undefined,
199
- required: false,
200
- };
201
- });
202
- const form = new Form({
203
- fields: formfields,
204
- blurb: req.__("Default search form values when first loaded"),
205
- });
206
- await form.fill_fkey_options(true);
207
- form.fields.forEach((ff) => {
208
- if (ff.reftable_name === "users" && ff.options) {
209
- // key to user
210
- //console.log(ff);
211
- ff.options.push({
212
- label: "LoggedIn",
213
- value: "Preset:LoggedIn",
214
- });
215
- }
216
- });
217
- return form;
218
- },
219
- },
220
- {
221
- name: req.__("Options"),
222
- contextField: "default_state", //legacy...
223
- form: async (context) => {
224
- const table = await Table.findOne(
225
- context.table_id || context.exttable_name
226
- );
227
- const table_fields = (await table.getFields()).filter(
228
- (f) => !f.calculated || f.stored
229
- );
230
- const formfields = [];
231
- formfields.push({
232
- name: "_order_field",
233
- label: req.__("Default order by"),
234
- type: "String",
235
- attributes: {
236
- options: table_fields.map((f) => f.name),
237
- },
238
- });
239
- formfields.push({
240
- name: "_descending",
241
- label: req.__("Default descending?"),
242
- type: "Bool",
243
- required: true,
244
- });
245
- formfields.push({
246
- name: "_omit_state_form",
247
- label: req.__("Omit search form"),
248
- sublabel: req.__("Do not display the search filter form"),
249
- type: "Bool",
250
- default: true,
251
- });
252
- formfields.push({
253
- name: "_omit_header",
254
- label: req.__("Omit header"),
255
- sublabel: req.__("Do not display the header"),
256
- type: "Bool",
257
- });
258
- if (!db.isSQLite && !table.external)
259
- formfields.push({
260
- name: "_create_db_view",
261
- label: req.__("Create database view"),
262
- sublabel: req.__(
263
- "Create an SQL view in the database with the fields in this list"
264
- ),
265
- type: "Bool",
266
- });
267
- formfields.push({
268
- name: "_rows_per_page",
269
- label: req.__("Rows per page"),
270
- type: "Integer",
271
- default: 20,
272
- attributes: { min: 0 },
273
- });
274
- const form = new Form({
275
- fields: formfields,
276
- blurb: req.__("List options"),
277
- });
278
- await form.fill_fkey_options(true);
279
- return form;
280
- },
281
- },
282
- ],
283
- });
284
-
285
- /**
286
- * @param {string} table_id
287
- * @param {*} viewname
288
- * @param {object} opts
289
- * @param {object[]} opts.columns
290
- * @returns {function}
291
- */
292
- const get_state_fields = async (table_id, viewname, { columns }) => {
293
- const table_fields = await Field.find({ table_id });
294
- var state_fields = [];
295
- state_fields.push({ name: "_fts", label: "Anywhere", input_type: "text" });
296
- (columns || []).forEach((column) => {
297
- if (column.type === "Field" && column.state_field) {
298
- const tbl_fld = table_fields.find((f) => f.name == column.field_name);
299
- if (tbl_fld) {
300
- const f = new Field(tbl_fld);
301
- f.required = false;
302
- if (column.header_label) f.label = column.header_label;
303
- state_fields.push(f);
304
- }
305
- }
306
- });
307
- state_fields.push({ name: "_sortby", input_type: "hidden" });
308
- state_fields.push({ name: "_page", input_type: "hidden" });
309
- return state_fields;
310
- };
311
-
312
- /** @type {function} */
313
- const initial_config = initial_config_all_fields(false);
314
-
315
- /**
316
- * @param {string|number} table_id
317
- * @param {string} viewname
318
- * @param {object} opts
319
- * @param {object[]} opts.columns
320
- * @param {string} [opts.view_to_create]
321
- * @param {string} opts.create_view_display
322
- * @param {string} [opts.create_view_label]
323
- * @param {object} [opts.default_state]
324
- * @param {string} [opts.create_view_location]
325
- * @param {object} [stateWithId]
326
- * @param {object} extraOpts
327
- * @returns {Promise<*>}
328
- */
329
- const run = async (
330
- table_id,
331
- viewname,
332
- {
333
- columns,
334
- view_to_create,
335
- create_view_display,
336
- create_view_label,
337
- default_state,
338
- create_view_location,
339
- },
340
- stateWithId,
341
- extraOpts
342
- ) => {
343
- const table = await Table.findOne(
344
- typeof table_id === "string" ? { name: table_id } : { id: table_id }
345
- );
346
- const fields = await table.getFields();
347
- const appState = getState();
348
- const locale = extraOpts.req.getLocale();
349
- const __ = (s) => appState.i18n.__({ phrase: s, locale }) || s;
350
- //move fieldview cfg into configuration subfield in each column
351
- for (const col of columns) {
352
- if (col.type === "Field") {
353
- const field = fields.find((f) => f.name === col.field_name);
354
- if (!field) continue;
355
- const fieldviews =
356
- field.type === "Key"
357
- ? appState.keyFieldviews
358
- : field.type.fieldviews || {};
359
- if (!fieldviews) continue;
360
- const fv = fieldviews[col.fieldview];
361
- if (fv && fv.configFields) {
362
- const cfgForm = await applyAsync(fv.configFields, field);
363
- col.configuration = {};
364
- for (const formField of cfgForm || []) {
365
- col.configuration[formField.name] = col[formField.name];
366
- }
367
- }
368
- }
369
- }
370
- const role =
371
- extraOpts && extraOpts.req && extraOpts.req.user
372
- ? extraOpts.req.user.role_id
373
- : 10;
374
- const { joinFields, aggregations } = picked_fields_to_query(columns, fields);
375
- const tfields = get_viewable_fields(
376
- viewname,
377
- table,
378
- fields,
379
- columns,
380
- false,
381
- extraOpts.req,
382
- __
383
- );
384
- readState(stateWithId, fields, extraOpts.req);
385
- const { id, ...state } = stateWithId || {};
386
-
387
- const where = await stateFieldsToWhere({ fields, state });
388
- const q = await stateFieldsToQuery({ state, fields, prefix: "a." });
389
- const rows_per_page = (default_state && default_state._rows_per_page) || 20;
390
- if (!q.limit) q.limit = rows_per_page;
391
- if (!q.orderBy)
392
- q.orderBy = (default_state && default_state._order_field) || table.pk_name;
393
- if (!q.orderDesc) q.orderDesc = default_state && default_state._descending;
394
- const current_page = parseInt(state._page) || 1;
395
-
396
- if (table.ownership_field_id && role > table.min_role_read && extraOpts.req) {
397
- const owner_field = fields.find((f) => f.id === table.ownership_field_id);
398
- if (where[owner_field.name])
399
- where[owner_field.name] = [
400
- where[owner_field.name],
401
- extraOpts.req.user ? extraOpts.req.user.id : -1,
402
- ];
403
- else
404
- where[owner_field.name] = extraOpts.req.user ? extraOpts.req.user.id : -1;
405
- }
406
- const rows = await table.getJoinedRows({
407
- where,
408
- joinFields,
409
- aggregations,
410
- ...q,
411
- });
412
-
413
- var page_opts =
414
- extraOpts && extraOpts.onRowSelect
415
- ? { onRowSelect: extraOpts.onRowSelect, selectedId: id }
416
- : { selectedId: id };
417
-
418
- if (rows.length === rows_per_page || current_page > 1) {
419
- const nrows = await table.countRows(where);
420
- if (nrows > rows_per_page || current_page > 1) {
421
- page_opts.pagination = {
422
- current_page,
423
- pages: Math.ceil(nrows / rows_per_page),
424
- get_page_link: (n) => `javascript:gopage(${n}, ${rows_per_page})`,
425
- };
426
- }
427
- }
428
- if (default_state && default_state._omit_header) {
429
- page_opts.noHeader = true;
430
- }
431
- const [vpos, hpos] = (create_view_location || "Bottom left").split(" ");
432
- const istop = vpos === "Top";
433
- const isright = hpos === "right";
434
-
435
- var create_link = "";
436
- const user_id =
437
- extraOpts && extraOpts.req.user ? extraOpts.req.user.id : null;
438
- const about_user = fields.some(
439
- (f) =>
440
- f.reftable_name === "users" && state[f.name] && state[f.name] === user_id
441
- );
442
- if (
443
- view_to_create &&
444
- (role <= table.min_role_write || (table.ownership_field_id && about_user))
445
- ) {
446
- if (create_view_display === "Embedded") {
447
- const create_view = await View.findOne({ name: view_to_create });
448
- if (!create_view)
449
- throw new InvalidConfiguration(
450
- `View ${viewname} incorrectly configured: cannot find embedded view to create ${view_to_create}`
451
- );
452
- create_link = await create_view.run(state, extraOpts);
453
- } else {
454
- create_link = link_view(
455
- `/view/${encodeURIComponent(view_to_create)}${stateToQueryString(
456
- state
457
- )}`,
458
- __(create_view_label) || `Add ${pluralize(table.name, 1)}`,
459
- create_view_display === "Popup",
460
- create_view_display === "Popup" && "btn btn-secondary",
461
- create_view_display === "Popup" && "btn-sm"
462
- );
463
- }
464
- }
465
-
466
- const create_link_div = isright
467
- ? div({ class: "float-right" }, create_link)
468
- : create_link;
469
-
470
- const tableHtml = mkTable(tfields, rows, page_opts);
471
-
472
- return istop ? create_link_div + tableHtml : tableHtml + create_link_div;
473
- };
474
-
475
- /**
476
- * @param {number} table_id
477
- * @param {*} viewname
478
- * @param {object} optsOne
479
- * @param {object[]} optsOne.columns
480
- * @param {*} optsOne.layout
481
- * @param {object} body
482
- * @param {object} optsTwo
483
- * @param {object} optsTwo.req
484
- * @param {*} optsTwo.res
485
- * @returns {Promise<object>}
486
- */
487
- const run_action = async (
488
- table_id,
489
- viewname,
490
- { columns, layout },
491
- body,
492
- { req, res }
493
- ) => {
494
- const col = columns.find(
495
- (c) =>
496
- c.type === "Action" &&
497
- c.action_name === body.action_name &&
498
- body.action_name
499
- );
500
-
501
- const table = await Table.findOne({ id: table_id });
502
- const row = await table.getRow({ id: body.id });
503
- const state_action = getState().actions[col.action_name];
504
- col.configuration = col.configuration || {};
505
- if (state_action) {
506
- const cfgFields = await getActionConfigFields(state_action, table);
507
- cfgFields.forEach(({ name }) => {
508
- col.configuration[name] = col[name];
509
- });
510
- }
511
- try {
512
- const result = await run_action_column({
513
- col,
514
- req,
515
- table,
516
- row,
517
- referrer: req.get("Referrer"),
518
- });
519
- return { json: { success: "ok", ...(result || {}) } };
520
- } catch (e) {
521
- return { json: { error: e.message || e } };
522
- }
523
- };
524
-
525
- module.exports = {
526
- /** @type {string} */
527
- name: "List",
528
- /** @type {string} */
529
- description:
530
- "Display multiple rows from a table in a grid with columns you specify",
531
- configuration_workflow,
532
- run,
533
- /** @type {string} */
534
- view_quantity: "Many",
535
- get_state_fields,
536
- initial_config,
537
- on_delete,
538
- routes: { run_action },
539
- /**
540
- * @param {object} opts
541
- * @returns {boolean}
542
- */
543
- display_state_form: (opts) =>
544
- !(opts && opts.default_state && opts.default_state._omit_state_form),
545
- /**
546
- * @param {object} opts
547
- * @returns {boolean}
548
- */
549
- default_state_form: ({ default_state }) => {
550
- if (!default_state) return default_state;
551
- const { _omit_state_form, _create_db_view, ...ds } = default_state;
552
- return ds && removeDefaultColor(removeEmptyStrings(ds));
553
- },
554
- /**
555
- * @param {object} opts
556
- * @param {*} opts.columns
557
- * @param {*} opts.create_view_label
558
- * @returns {string[]}
559
- */
560
- getStringsForI18n({ columns, create_view_label }) {
561
- const strings = [];
562
- const maybeAdd = (s) => {
563
- if (s) strings.push(s);
564
- };
565
-
566
- for (const column of columns) {
567
- maybeAdd(column.header_label);
568
- maybeAdd(column.link_text);
569
- maybeAdd(column.view_label);
570
- maybeAdd(column.action_label);
571
- }
572
- maybeAdd(create_view_label);
573
- return strings;
574
- },
575
- };