@kalisio/kdk 1.4.2 → 1.6.0

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 (410) hide show
  1. package/.nyc_output/02a7a308-a8d7-4cc6-8e61-6066a0055a96.json +1 -0
  2. package/.nyc_output/1900d596-5e87-433a-8fd6-fb7f7ded35ec.json +1 -0
  3. package/.nyc_output/{2e74ca23-8cf0-4161-9536-f71c2a1a74bb.json → 27401f21-8ccf-42fa-8230-4232189d86b3.json} +0 -0
  4. package/.nyc_output/{81d21e46-766a-46bc-b1b7-143ca577347a.json → 52278ef5-c337-4724-97be-e2e4416847c5.json} +0 -0
  5. package/.nyc_output/{aaf3ebbb-f895-4d7b-9255-bc5dee832570.json → 5dd49b8a-4c84-42f9-a3d5-712247a84775.json} +0 -0
  6. package/.nyc_output/{dbeb2602-0ac2-4e66-978b-0d29548359ca.json → 612b4859-9645-45c1-a41e-1fae420518c4.json} +0 -0
  7. package/.nyc_output/{e47d1e4c-2fff-4dcb-908f-d3081162547c.json → bab87fe9-d99a-4759-99e6-3fc4622eeca0.json} +0 -0
  8. package/.nyc_output/processinfo/02a7a308-a8d7-4cc6-8e61-6066a0055a96.json +1 -0
  9. package/.nyc_output/processinfo/1900d596-5e87-433a-8fd6-fb7f7ded35ec.json +1 -0
  10. package/.nyc_output/processinfo/27401f21-8ccf-42fa-8230-4232189d86b3.json +1 -0
  11. package/.nyc_output/processinfo/52278ef5-c337-4724-97be-e2e4416847c5.json +1 -0
  12. package/.nyc_output/processinfo/5dd49b8a-4c84-42f9-a3d5-712247a84775.json +1 -0
  13. package/.nyc_output/processinfo/612b4859-9645-45c1-a41e-1fae420518c4.json +1 -0
  14. package/.nyc_output/processinfo/bab87fe9-d99a-4759-99e6-3fc4622eeca0.json +1 -0
  15. package/.nyc_output/processinfo/index.json +1 -1
  16. package/CHANGELOG.md +69 -10
  17. package/coverage/core/api/application.js.html +500 -422
  18. package/coverage/core/api/authentication.js.html +119 -119
  19. package/coverage/core/api/db.js.html +172 -172
  20. package/coverage/core/api/hooks/hooks.account.js.html +45 -45
  21. package/coverage/core/api/hooks/hooks.authentication.js.html +71 -71
  22. package/coverage/core/api/hooks/hooks.authorisations.js.html +368 -353
  23. package/coverage/core/api/hooks/hooks.devices.js.html +49 -49
  24. package/coverage/core/api/hooks/hooks.groups.js.html +37 -37
  25. package/coverage/core/api/hooks/hooks.logger.js.html +27 -27
  26. package/coverage/core/api/hooks/hooks.model.js.html +269 -269
  27. package/coverage/core/api/hooks/hooks.organisations.js.html +190 -190
  28. package/coverage/core/api/hooks/hooks.pusher.js.html +114 -114
  29. package/coverage/core/api/hooks/hooks.query.js.html +277 -211
  30. package/coverage/core/api/hooks/hooks.service.js.html +82 -82
  31. package/coverage/core/api/hooks/hooks.storage.js.html +121 -121
  32. package/coverage/core/api/hooks/hooks.tags.js.html +232 -232
  33. package/coverage/core/api/hooks/hooks.users.js.html +263 -263
  34. package/coverage/core/api/hooks/index.html +172 -172
  35. package/coverage/core/api/hooks/index.js.html +24 -24
  36. package/coverage/core/api/index.html +76 -76
  37. package/coverage/core/api/index.js.html +30 -30
  38. package/coverage/core/api/marshall.js.html +57 -57
  39. package/coverage/core/api/models/groups.model.mongodb.js.html +20 -20
  40. package/coverage/core/api/models/index.html +50 -50
  41. package/coverage/core/api/models/organisations.model.mongodb.js.html +12 -12
  42. package/coverage/core/api/models/tags.model.mongodb.js.html +22 -22
  43. package/coverage/core/api/models/users.model.mongodb.js.html +20 -20
  44. package/coverage/core/api/oauth2-handler.js.html +18 -18
  45. package/coverage/core/api/oauth2-verifier.js.html +38 -38
  46. package/coverage/core/api/services/account/account.hooks.js.html +16 -16
  47. package/coverage/core/api/services/account/account.service.js.html +104 -104
  48. package/coverage/core/api/services/account/index.html +32 -32
  49. package/coverage/core/api/services/authorisations/authorisations.hooks.js.html +9 -9
  50. package/coverage/core/api/services/authorisations/authorisations.service.js.html +156 -132
  51. package/coverage/core/api/services/authorisations/index.html +28 -28
  52. package/coverage/core/api/services/databases/databases.hooks.js.html +9 -9
  53. package/coverage/core/api/services/databases/databases.service.js.html +12 -12
  54. package/coverage/core/api/services/databases/index.html +24 -24
  55. package/coverage/core/api/services/devices/devices.hooks.js.html +9 -9
  56. package/coverage/core/api/services/devices/devices.service.js.html +121 -121
  57. package/coverage/core/api/services/devices/index.html +28 -28
  58. package/coverage/core/api/services/groups/groups.hooks.js.html +9 -9
  59. package/coverage/core/api/services/groups/index.html +13 -13
  60. package/coverage/core/api/services/index.html +21 -21
  61. package/coverage/core/api/services/index.js.html +118 -118
  62. package/coverage/core/api/services/mailer/index.html +24 -24
  63. package/coverage/core/api/services/mailer/mailer.hooks.js.html +9 -9
  64. package/coverage/core/api/services/mailer/mailer.service.js.html +19 -19
  65. package/coverage/core/api/services/organisations/index.html +24 -24
  66. package/coverage/core/api/services/organisations/organisations.hooks.js.html +8 -8
  67. package/coverage/core/api/services/organisations/organisations.service.js.html +67 -67
  68. package/coverage/core/api/services/pusher/index.html +34 -34
  69. package/coverage/core/api/services/pusher/pusher.channels.js.html +8 -8
  70. package/coverage/core/api/services/pusher/pusher.hooks.js.html +10 -10
  71. package/coverage/core/api/services/pusher/pusher.service.js.html +414 -414
  72. package/coverage/core/api/services/storage/index.html +21 -21
  73. package/coverage/core/api/services/storage/storage.hooks.js.html +35 -35
  74. package/coverage/core/api/services/tags/index.html +21 -21
  75. package/coverage/core/api/services/tags/tags.hooks.js.html +25 -25
  76. package/coverage/core/api/services/users/index.html +21 -21
  77. package/coverage/core/api/services/users/users.hooks.js.html +33 -33
  78. package/coverage/core/common/errors.js.html +1 -1
  79. package/coverage/core/common/index.html +42 -27
  80. package/coverage/core/common/index.js.html +16 -16
  81. package/coverage/core/common/permissions.js.html +320 -290
  82. package/coverage/index.html +181 -181
  83. package/coverage/lcov-report/core/api/application.js.html +500 -422
  84. package/coverage/lcov-report/core/api/authentication.js.html +119 -119
  85. package/coverage/lcov-report/core/api/db.js.html +172 -172
  86. package/coverage/lcov-report/core/api/hooks/hooks.account.js.html +45 -45
  87. package/coverage/lcov-report/core/api/hooks/hooks.authentication.js.html +71 -71
  88. package/coverage/lcov-report/core/api/hooks/hooks.authorisations.js.html +368 -353
  89. package/coverage/lcov-report/core/api/hooks/hooks.devices.js.html +49 -49
  90. package/coverage/lcov-report/core/api/hooks/hooks.groups.js.html +37 -37
  91. package/coverage/lcov-report/core/api/hooks/hooks.logger.js.html +27 -27
  92. package/coverage/lcov-report/core/api/hooks/hooks.model.js.html +269 -269
  93. package/coverage/lcov-report/core/api/hooks/hooks.organisations.js.html +190 -190
  94. package/coverage/lcov-report/core/api/hooks/hooks.pusher.js.html +114 -114
  95. package/coverage/lcov-report/core/api/hooks/hooks.query.js.html +277 -211
  96. package/coverage/lcov-report/core/api/hooks/hooks.service.js.html +82 -82
  97. package/coverage/lcov-report/core/api/hooks/hooks.storage.js.html +121 -121
  98. package/coverage/lcov-report/core/api/hooks/hooks.tags.js.html +232 -232
  99. package/coverage/lcov-report/core/api/hooks/hooks.users.js.html +263 -263
  100. package/coverage/lcov-report/core/api/hooks/index.html +172 -172
  101. package/coverage/lcov-report/core/api/hooks/index.js.html +24 -24
  102. package/coverage/lcov-report/core/api/index.html +76 -76
  103. package/coverage/lcov-report/core/api/index.js.html +30 -30
  104. package/coverage/lcov-report/core/api/marshall.js.html +57 -57
  105. package/coverage/lcov-report/core/api/models/groups.model.mongodb.js.html +20 -20
  106. package/coverage/lcov-report/core/api/models/index.html +50 -50
  107. package/coverage/lcov-report/core/api/models/organisations.model.mongodb.js.html +12 -12
  108. package/coverage/lcov-report/core/api/models/tags.model.mongodb.js.html +22 -22
  109. package/coverage/lcov-report/core/api/models/users.model.mongodb.js.html +20 -20
  110. package/coverage/lcov-report/core/api/oauth2-handler.js.html +18 -18
  111. package/coverage/lcov-report/core/api/oauth2-verifier.js.html +38 -38
  112. package/coverage/lcov-report/core/api/services/account/account.hooks.js.html +16 -16
  113. package/coverage/lcov-report/core/api/services/account/account.service.js.html +104 -104
  114. package/coverage/lcov-report/core/api/services/account/index.html +32 -32
  115. package/coverage/lcov-report/core/api/services/authorisations/authorisations.hooks.js.html +9 -9
  116. package/coverage/lcov-report/core/api/services/authorisations/authorisations.service.js.html +156 -132
  117. package/coverage/lcov-report/core/api/services/authorisations/index.html +28 -28
  118. package/coverage/lcov-report/core/api/services/databases/databases.hooks.js.html +9 -9
  119. package/coverage/lcov-report/core/api/services/databases/databases.service.js.html +12 -12
  120. package/coverage/lcov-report/core/api/services/databases/index.html +24 -24
  121. package/coverage/lcov-report/core/api/services/devices/devices.hooks.js.html +9 -9
  122. package/coverage/lcov-report/core/api/services/devices/devices.service.js.html +121 -121
  123. package/coverage/lcov-report/core/api/services/devices/index.html +28 -28
  124. package/coverage/lcov-report/core/api/services/groups/groups.hooks.js.html +9 -9
  125. package/coverage/lcov-report/core/api/services/groups/index.html +13 -13
  126. package/coverage/lcov-report/core/api/services/index.html +21 -21
  127. package/coverage/lcov-report/core/api/services/index.js.html +118 -118
  128. package/coverage/lcov-report/core/api/services/mailer/index.html +24 -24
  129. package/coverage/lcov-report/core/api/services/mailer/mailer.hooks.js.html +9 -9
  130. package/coverage/lcov-report/core/api/services/mailer/mailer.service.js.html +19 -19
  131. package/coverage/lcov-report/core/api/services/organisations/index.html +24 -24
  132. package/coverage/lcov-report/core/api/services/organisations/organisations.hooks.js.html +8 -8
  133. package/coverage/lcov-report/core/api/services/organisations/organisations.service.js.html +67 -67
  134. package/coverage/lcov-report/core/api/services/pusher/index.html +34 -34
  135. package/coverage/lcov-report/core/api/services/pusher/pusher.channels.js.html +8 -8
  136. package/coverage/lcov-report/core/api/services/pusher/pusher.hooks.js.html +10 -10
  137. package/coverage/lcov-report/core/api/services/pusher/pusher.service.js.html +414 -414
  138. package/coverage/lcov-report/core/api/services/storage/index.html +21 -21
  139. package/coverage/lcov-report/core/api/services/storage/storage.hooks.js.html +35 -35
  140. package/coverage/lcov-report/core/api/services/tags/index.html +21 -21
  141. package/coverage/lcov-report/core/api/services/tags/tags.hooks.js.html +25 -25
  142. package/coverage/lcov-report/core/api/services/users/index.html +21 -21
  143. package/coverage/lcov-report/core/api/services/users/users.hooks.js.html +33 -33
  144. package/coverage/lcov-report/core/common/errors.js.html +1 -1
  145. package/coverage/lcov-report/core/common/index.html +42 -27
  146. package/coverage/lcov-report/core/common/index.js.html +16 -16
  147. package/coverage/lcov-report/core/common/permissions.js.html +320 -290
  148. package/coverage/lcov-report/index.html +181 -181
  149. package/coverage/lcov-report/map/api/hooks/hooks.catalog.js.html +1 -1
  150. package/coverage/lcov-report/map/api/hooks/hooks.query.js.html +25 -7
  151. package/coverage/lcov-report/map/api/hooks/index.html +7 -7
  152. package/coverage/lcov-report/map/api/hooks/index.js.html +1 -1
  153. package/coverage/lcov-report/map/api/index.html +1 -1
  154. package/coverage/lcov-report/map/api/index.js.html +1 -1
  155. package/coverage/lcov-report/map/api/marshall.js.html +1 -1
  156. package/coverage/lcov-report/map/api/models/alerts.model.mongodb.js.html +1 -1
  157. package/coverage/lcov-report/map/api/models/catalog.model.mongodb.js.html +1 -1
  158. package/coverage/lcov-report/map/api/models/features.model.mongodb.js.html +14 -5
  159. package/coverage/lcov-report/map/api/models/index.html +7 -7
  160. package/coverage/lcov-report/map/api/services/alerts/alerts.hooks.js.html +1 -1
  161. package/coverage/lcov-report/map/api/services/alerts/alerts.service.js.html +1 -1
  162. package/coverage/lcov-report/map/api/services/alerts/index.html +1 -1
  163. package/coverage/lcov-report/map/api/services/catalog/catalog.hooks.js.html +1 -1
  164. package/coverage/lcov-report/map/api/services/catalog/index.html +1 -1
  165. package/coverage/lcov-report/map/api/services/daptiles/daptiles.service.js.html +1 -1
  166. package/coverage/lcov-report/map/api/services/daptiles/index.html +1 -1
  167. package/coverage/lcov-report/map/api/services/features/features.hooks.js.html +1 -1
  168. package/coverage/lcov-report/map/api/services/features/index.html +1 -1
  169. package/coverage/lcov-report/map/api/services/geocoder/geocoder.hooks.js.html +1 -1
  170. package/coverage/lcov-report/map/api/services/geocoder/geocoder.service.js.html +1 -1
  171. package/coverage/lcov-report/map/api/services/geocoder/index.html +1 -1
  172. package/coverage/lcov-report/map/api/services/index.html +1 -1
  173. package/coverage/lcov-report/map/api/services/index.js.html +1 -1
  174. package/coverage/lcov-report/map/common/dynamic-grid-source.js.html +1 -1
  175. package/coverage/lcov-report/map/common/errors.js.html +1 -1
  176. package/coverage/lcov-report/map/common/geotiff-grid-source.js.html +1 -1
  177. package/coverage/lcov-report/map/common/grid.js.html +1 -1
  178. package/coverage/lcov-report/map/common/index.html +1 -1
  179. package/coverage/lcov-report/map/common/index.js.html +1 -1
  180. package/coverage/lcov-report/map/common/meteo-model-grid-source.js.html +1 -1
  181. package/coverage/lcov-report/map/common/moment-utils.js.html +1 -1
  182. package/coverage/lcov-report/map/common/opendap-grid-source.js.html +1 -1
  183. package/coverage/lcov-report/map/common/opendap-utils.js.html +1 -1
  184. package/coverage/lcov-report/map/common/permissions.js.html +1 -1
  185. package/coverage/lcov-report/map/common/time-based-grid-source.js.html +1 -1
  186. package/coverage/lcov-report/map/common/tms-utils.js.html +1 -1
  187. package/coverage/lcov-report/map/common/wcs-grid-source.js.html +1 -1
  188. package/coverage/lcov-report/map/common/wcs-utils.js.html +1 -1
  189. package/coverage/lcov-report/map/common/weacast-grid-source.js.html +1 -1
  190. package/coverage/lcov-report/map/common/wfs-utils.js.html +1 -1
  191. package/coverage/lcov-report/map/common/wms-utils.js.html +1 -1
  192. package/coverage/lcov-report/map/common/wmts-utils.js.html +1 -1
  193. package/coverage/lcov.info +3683 -3825
  194. package/coverage/map/api/hooks/hooks.catalog.js.html +1 -1
  195. package/coverage/map/api/hooks/hooks.query.js.html +25 -7
  196. package/coverage/map/api/hooks/index.html +7 -7
  197. package/coverage/map/api/hooks/index.js.html +1 -1
  198. package/coverage/map/api/index.html +1 -1
  199. package/coverage/map/api/index.js.html +1 -1
  200. package/coverage/map/api/marshall.js.html +1 -1
  201. package/coverage/map/api/models/alerts.model.mongodb.js.html +1 -1
  202. package/coverage/map/api/models/catalog.model.mongodb.js.html +1 -1
  203. package/coverage/map/api/models/features.model.mongodb.js.html +14 -5
  204. package/coverage/map/api/models/index.html +7 -7
  205. package/coverage/map/api/services/alerts/alerts.hooks.js.html +1 -1
  206. package/coverage/map/api/services/alerts/alerts.service.js.html +1 -1
  207. package/coverage/map/api/services/alerts/index.html +1 -1
  208. package/coverage/map/api/services/catalog/catalog.hooks.js.html +1 -1
  209. package/coverage/map/api/services/catalog/index.html +1 -1
  210. package/coverage/map/api/services/daptiles/daptiles.service.js.html +1 -1
  211. package/coverage/map/api/services/daptiles/index.html +1 -1
  212. package/coverage/map/api/services/features/features.hooks.js.html +1 -1
  213. package/coverage/map/api/services/features/index.html +1 -1
  214. package/coverage/map/api/services/geocoder/geocoder.hooks.js.html +1 -1
  215. package/coverage/map/api/services/geocoder/geocoder.service.js.html +1 -1
  216. package/coverage/map/api/services/geocoder/index.html +1 -1
  217. package/coverage/map/api/services/index.html +1 -1
  218. package/coverage/map/api/services/index.js.html +1 -1
  219. package/coverage/map/common/dynamic-grid-source.js.html +1 -1
  220. package/coverage/map/common/errors.js.html +1 -1
  221. package/coverage/map/common/geotiff-grid-source.js.html +1 -1
  222. package/coverage/map/common/grid.js.html +1 -1
  223. package/coverage/map/common/index.html +1 -1
  224. package/coverage/map/common/index.js.html +1 -1
  225. package/coverage/map/common/meteo-model-grid-source.js.html +1 -1
  226. package/coverage/map/common/moment-utils.js.html +1 -1
  227. package/coverage/map/common/opendap-grid-source.js.html +1 -1
  228. package/coverage/map/common/opendap-utils.js.html +1 -1
  229. package/coverage/map/common/permissions.js.html +1 -1
  230. package/coverage/map/common/time-based-grid-source.js.html +1 -1
  231. package/coverage/map/common/tms-utils.js.html +1 -1
  232. package/coverage/map/common/wcs-grid-source.js.html +1 -1
  233. package/coverage/map/common/wcs-utils.js.html +1 -1
  234. package/coverage/map/common/weacast-grid-source.js.html +1 -1
  235. package/coverage/map/common/wfs-utils.js.html +1 -1
  236. package/coverage/map/common/wms-utils.js.html +1 -1
  237. package/coverage/map/common/wmts-utils.js.html +1 -1
  238. package/extras/tours/map/navigation-bar.js +49 -1
  239. package/lib/core/api/application.js +35 -9
  240. package/lib/core/api/application.js.map +1 -1
  241. package/lib/core/api/hooks/hooks.authorisations.js +8 -1
  242. package/lib/core/api/hooks/hooks.authorisations.js.map +1 -1
  243. package/lib/core/api/hooks/hooks.query.js +135 -100
  244. package/lib/core/api/hooks/hooks.query.js.map +1 -1
  245. package/lib/core/api/services/authorisations/authorisations.service.js +13 -1
  246. package/lib/core/api/services/authorisations/authorisations.service.js.map +1 -1
  247. package/lib/core/api/services/pusher/pusher.service.js +40 -16
  248. package/lib/core/api/services/pusher/pusher.service.js.map +1 -1
  249. package/lib/core/client/components/collection/KColumn.vue +29 -28
  250. package/lib/core/client/components/collection/KFilter.vue +97 -72
  251. package/lib/core/client/components/editor/KModalEditor.vue +3 -4
  252. package/lib/core/client/components/editor/KSettingsEditor.vue +6 -2
  253. package/lib/core/client/components/form/KFileField.vue +14 -36
  254. package/lib/core/client/components/form/KRoleField.vue +5 -2
  255. package/lib/core/client/components/form/KTextField.vue +12 -2
  256. package/lib/core/client/components/form/KUnitField.vue +57 -0
  257. package/lib/core/client/components/form/KUrlField.vue +1 -1
  258. package/lib/core/client/components/frame/KAction.vue +1 -2
  259. package/lib/core/client/components/frame/KModal.vue +66 -20
  260. package/lib/core/client/components/frame/KScrollArea.vue +65 -0
  261. package/lib/core/client/components/frame/index.js +6 -1
  262. package/lib/core/client/components/frame/index.js.map +1 -1
  263. package/lib/core/client/components/input/KColorChooser.vue +3 -5
  264. package/lib/core/client/components/input/KIconChooser.vue +38 -40
  265. package/lib/core/client/components/input/KOptionsChooser.vue +2 -2
  266. package/lib/core/client/components/layout/KAbout.vue +47 -49
  267. package/lib/core/client/components/team/KAddMember.vue +1 -1
  268. package/lib/core/client/components/team/KChangeRole.vue +11 -14
  269. package/lib/core/client/components/team/KGroupCard.vue +12 -5
  270. package/lib/core/client/components/team/KGroupsActivity.vue +1 -1
  271. package/lib/core/client/components/team/KJoinGroup.vue +22 -22
  272. package/lib/core/client/components/team/KMemberCard.vue +19 -4
  273. package/lib/core/client/components/viewer/KModalViewer.vue +10 -9
  274. package/lib/core/client/i18n/core_en.json +72 -8
  275. package/lib/core/client/i18n/core_fr.json +66 -8
  276. package/lib/core/client/index.js +31 -0
  277. package/lib/core/client/index.js.map +1 -1
  278. package/lib/core/client/layout.js +8 -1
  279. package/lib/core/client/layout.js.map +1 -1
  280. package/lib/core/client/mixins/mixin.base-widget.js +5 -3
  281. package/lib/core/client/mixins/mixin.base-widget.js.map +1 -1
  282. package/lib/core/client/reader.js +85 -0
  283. package/lib/core/client/reader.js.map +1 -0
  284. package/lib/core/client/readers/index.js +30 -0
  285. package/lib/core/client/readers/index.js.map +1 -0
  286. package/lib/core/client/readers/reader.csv.js +54 -0
  287. package/lib/core/client/readers/reader.csv.js.map +1 -0
  288. package/lib/core/client/readers/reader.json.js +49 -0
  289. package/lib/core/client/readers/reader.json.js.map +1 -0
  290. package/lib/core/client/services/index.js +14 -3
  291. package/lib/core/client/services/index.js.map +1 -1
  292. package/lib/core/client/services/local-settings.service.js +6 -4
  293. package/lib/core/client/services/local-settings.service.js.map +1 -1
  294. package/lib/core/client/time.js +4 -3
  295. package/lib/core/client/time.js.map +1 -1
  296. package/lib/core/client/units.js +195 -0
  297. package/lib/core/client/units.js.map +1 -0
  298. package/lib/core/common/permissions.js +44 -34
  299. package/lib/core/common/permissions.js.map +1 -1
  300. package/lib/core/common/schemas/settings.update.json +72 -0
  301. package/lib/map/api/hooks/hooks.query.js +7 -2
  302. package/lib/map/api/hooks/hooks.query.js.map +1 -1
  303. package/lib/map/api/models/features.model.mongodb.js +3 -0
  304. package/lib/map/api/models/features.model.mongodb.js.map +1 -1
  305. package/lib/map/client/components/KCaptureToolbar.vue +151 -0
  306. package/lib/map/client/components/KColorLegend.vue +16 -4
  307. package/lib/map/client/components/KFeaturesChart.vue +10 -11
  308. package/lib/map/client/components/KFeaturesFilter.vue +40 -39
  309. package/lib/map/client/components/KFeaturesTable.vue +15 -16
  310. package/lib/map/client/components/KLayerEditionToolbar.vue +19 -11
  311. package/lib/map/client/components/KLayerStyleEditor.vue +3 -2
  312. package/lib/map/client/components/KLayerStyleForm.vue +38 -27
  313. package/lib/map/client/components/KMeasureTool.vue +337 -0
  314. package/lib/map/client/components/KTimeline.vue +5 -9
  315. package/lib/map/client/components/catalog/KAddLayer.vue +3 -2
  316. package/lib/map/client/components/catalog/KCatalog.vue +26 -7
  317. package/lib/map/client/components/catalog/KImportLayer.vue +8 -35
  318. package/lib/map/client/components/catalog/KLayerCategories.vue +3 -2
  319. package/lib/map/client/components/catalog/KLayersSelector.vue +8 -6
  320. package/lib/map/client/components/catalog/KWeatherLayersSelector.vue +1 -1
  321. package/lib/map/client/components/widget/KInformationBox.vue +8 -17
  322. package/lib/map/client/components/widget/KMapillaryViewer.vue +5 -1
  323. package/lib/map/client/components/widget/KTimeSeries.vue +92 -9
  324. package/lib/map/client/i18n/map_en.json +51 -20
  325. package/lib/map/client/i18n/map_fr.json +51 -20
  326. package/lib/map/client/init.js +7 -1
  327. package/lib/map/client/init.js.map +1 -1
  328. package/lib/map/client/leaflet/MaskLayer.js +9 -0
  329. package/lib/map/client/leaflet/MaskLayer.js.map +1 -1
  330. package/lib/map/client/mixins/globe/mixin.base-globe.js +3 -5
  331. package/lib/map/client/mixins/globe/mixin.base-globe.js.map +1 -1
  332. package/lib/map/client/mixins/globe/mixin.geojson-layers.js +16 -21
  333. package/lib/map/client/mixins/globe/mixin.geojson-layers.js.map +1 -1
  334. package/lib/map/client/mixins/globe/mixin.popup.js +7 -1
  335. package/lib/map/client/mixins/globe/mixin.popup.js.map +1 -1
  336. package/lib/map/client/mixins/globe/mixin.tooltip.js +7 -1
  337. package/lib/map/client/mixins/globe/mixin.tooltip.js.map +1 -1
  338. package/lib/map/client/mixins/map/mixin.base-map.js +54 -9
  339. package/lib/map/client/mixins/map/mixin.base-map.js.map +1 -1
  340. package/lib/map/client/mixins/map/mixin.canvas-layers.js +2 -0
  341. package/lib/map/client/mixins/map/mixin.canvas-layers.js.map +1 -1
  342. package/lib/map/client/mixins/map/mixin.file-layers.js +51 -97
  343. package/lib/map/client/mixins/map/mixin.file-layers.js.map +1 -1
  344. package/lib/map/client/mixins/map/mixin.geojson-layers.js +43 -11
  345. package/lib/map/client/mixins/map/mixin.geojson-layers.js.map +1 -1
  346. package/lib/map/client/mixins/map/mixin.popup.js +7 -1
  347. package/lib/map/client/mixins/map/mixin.popup.js.map +1 -1
  348. package/lib/map/client/mixins/map/mixin.style.js +1 -1
  349. package/lib/map/client/mixins/map/mixin.style.js.map +1 -1
  350. package/lib/map/client/mixins/map/mixin.tooltip.js +7 -1
  351. package/lib/map/client/mixins/map/mixin.tooltip.js.map +1 -1
  352. package/lib/map/client/mixins/mixin.activity.js +2 -0
  353. package/lib/map/client/mixins/mixin.activity.js.map +1 -1
  354. package/lib/map/client/mixins/mixin.context.js +26 -3
  355. package/lib/map/client/mixins/mixin.context.js.map +1 -1
  356. package/lib/map/client/mixins/mixin.feature-service.js +3 -3
  357. package/lib/map/client/mixins/mixin.feature-service.js.map +1 -1
  358. package/lib/map/client/mixins/mixin.infobox.js +4 -0
  359. package/lib/map/client/mixins/mixin.infobox.js.map +1 -1
  360. package/lib/map/client/mixins/mixin.weacast.js +7 -5
  361. package/lib/map/client/mixins/mixin.weacast.js.map +1 -1
  362. package/lib/map/client/readers/index.js +54 -0
  363. package/lib/map/client/readers/index.js.map +1 -0
  364. package/lib/map/client/readers/reader.geojson.js +87 -0
  365. package/lib/map/client/readers/reader.geojson.js.map +1 -0
  366. package/lib/map/client/readers/reader.gpx.js +52 -0
  367. package/lib/map/client/readers/reader.gpx.js.map +1 -0
  368. package/lib/map/client/readers/reader.kml.js +52 -0
  369. package/lib/map/client/readers/reader.kml.js.map +1 -0
  370. package/lib/map/client/readers/reader.shp.js +116 -0
  371. package/lib/map/client/readers/reader.shp.js.map +1 -0
  372. package/lib/map/client/utils.js +0 -7
  373. package/lib/map/client/utils.js.map +1 -1
  374. package/lib/test/client/core/account.js +1 -1
  375. package/lib/test/client/core/account.js.map +1 -1
  376. package/lib/test/client/core/runner.js +1 -2
  377. package/lib/test/client/core/runner.js.map +1 -1
  378. package/lib/test/client/core/screens.js +1 -1
  379. package/lib/test/client/core/screens.js.map +1 -1
  380. package/lib/test/client/core/utils.js +2 -2
  381. package/lib/test/client/core/utils.js.map +1 -1
  382. package/lib/test/client/map/catalog.js +50 -49
  383. package/lib/test/client/map/catalog.js.map +1 -1
  384. package/package.json +3 -3
  385. package/.nyc_output/2c5b7c8e-81db-4d2c-a7a4-02dc640d301f.json +0 -1
  386. package/.nyc_output/a762cb58-70dc-4d39-ab69-928635affa98.json +0 -1
  387. package/.nyc_output/processinfo/2c5b7c8e-81db-4d2c-a7a4-02dc640d301f.json +0 -1
  388. package/.nyc_output/processinfo/2e74ca23-8cf0-4161-9536-f71c2a1a74bb.json +0 -1
  389. package/.nyc_output/processinfo/81d21e46-766a-46bc-b1b7-143ca577347a.json +0 -1
  390. package/.nyc_output/processinfo/a762cb58-70dc-4d39-ab69-928635affa98.json +0 -1
  391. package/.nyc_output/processinfo/aaf3ebbb-f895-4d7b-9255-bc5dee832570.json +0 -1
  392. package/.nyc_output/processinfo/dbeb2602-0ac2-4e66-978b-0d29548359ca.json +0 -1
  393. package/.nyc_output/processinfo/e47d1e4c-2fff-4dcb-908f-d3081162547c.json +0 -1
  394. package/extras/testcafe/Dockerfile +0 -48
  395. package/extras/testcafe/docker-entrypoint.sh +0 -27
  396. package/extras/testcafe/page-models/core/account.js +0 -75
  397. package/extras/testcafe/page-models/core/base-collection.js +0 -41
  398. package/extras/testcafe/page-models/core/base-page.js +0 -25
  399. package/extras/testcafe/page-models/core/groups.js +0 -36
  400. package/extras/testcafe/page-models/core/index.js +0 -140
  401. package/extras/testcafe/page-models/core/layout.js +0 -145
  402. package/extras/testcafe/page-models/core/members.js +0 -98
  403. package/extras/testcafe/page-models/core/organisations.js +0 -76
  404. package/extras/testcafe/page-models/core/screens.js +0 -99
  405. package/extras/testcafe/page-models/core/tags.js +0 -21
  406. package/extras/testcafe/page-models/map/add-layer.js +0 -51
  407. package/extras/testcafe/page-models/map/catalog.js +0 -132
  408. package/extras/testcafe/page-models/map/index.js +0 -36
  409. package/extras/testcafe/page-models/map/map-activity.js +0 -42
  410. package/extras/testcafe/page-models/map/timeline.js +0 -67
@@ -24,55 +24,53 @@
24
24
  id="about"
25
25
  ref="about"
26
26
  :buttons="getButtons()">
27
- <div slot="modal-content">
28
- <div class="column justify-center">
29
- <!-- Banner -->
30
- <div v-if="banner" class="q-pa-md row justify-center"><img class="screen-banner" :src="banner"></div>
31
- <!-- Version -->
32
- <div id="version-numbers" class="row justify-center">
33
- <cite v-if="clientVersionName">{{ $t('KAbout.CLIENT_VERSION') }}{{ clientVersionName }}</cite>
34
- <cite v-if="apiVersionName">&nbsp;-&nbsp;{{ $t('KAbout.API_VERSION') }}{{ apiVersionName }}</cite>
35
- </div>
36
- <div id="hosting" class="row justify-center">
37
- <cite>{{ $t('KAbout.DOMAIN') }} <a :href="$config('domain')" target="_blank">{{ $config('domain') }}</a></cite>
38
- <cite>&nbsp;({{ $config('flavor') }})</cite>
39
- </div><br/>
40
- <!-- More info -->
41
- <div class="row justify-center">
42
- <a id="app-website" :href="$config('appWebsite')" target="_blank">
43
- <q-icon name="las la-external-link-alt"/>&nbsp;{{ $t('KAbout.MORE') }} {{ $config('appName') }}
44
- </a>
45
- </div><br/>
46
- <div class="row justify-center">
47
- <a id="publisher-website" :href="$config('publisherWebsite')" target="_blank">
48
- <q-icon name="las la-external-link-alt"/>&nbsp;{{ $t('KAbout.MORE_PUBLISHER') }} {{ $config('publisher') }}
49
- </a>
50
- </div><br/>
51
- <!-- Bug report -->
52
- <div class="row justify-center">
53
- <a id="report-bug" :href="`mailto:${bugReport.address}?subject=${bugReport.subject}&body=${bugReport.body}`">
54
- <q-icon name="las la-envelope"/>&nbsp;{{ $t('KAbout.BUG_REPORT') }}
55
- </a>
56
- </div><br/>
57
- <!-- System -->
58
- <div class="row justify-center" @click="showSystemDetails = !showSystemDetails">
59
- <a id="system-details" >
60
- <q-icon name="las la-laptop-code"/>&nbsp;{{ $t('KAbout.SYSTEM_DETAILS') }}
61
- </a>
62
- </div>
63
- <br/>
64
- <div v-show="showSystemDetails">
65
- <template v-for="(value, key) in systemDetails">
66
- <div :key="key" class="row justify-center">
67
- <cite><strong>{{ key }}</strong>: {{ value }}</cite>
68
- </div>
69
- </template>
70
- </div>
71
- <!-- KDK -->
72
- <div class="row justify-center items-center q-gutter-x-md">
73
- <q-icon name="kdk:kdk.png" size="md" />
74
- <a href="https://kalisio.github.io/kdk" target="_blank">{{ $t('KAbout.KDK_POWERED') }}</a>
75
- </div>
27
+ <div class="column justify-center">
28
+ <!-- Banner -->
29
+ <div v-if="banner" class="q-pa-md row justify-center"><img class="screen-banner" :src="banner"></div>
30
+ <!-- Version -->
31
+ <div id="version-numbers" class="row justify-center">
32
+ <cite v-if="clientVersionName">{{ $t('KAbout.CLIENT_VERSION') }}{{ clientVersionName }}</cite>
33
+ <cite v-if="apiVersionName">&nbsp;-&nbsp;{{ $t('KAbout.API_VERSION') }}{{ apiVersionName }}</cite>
34
+ </div>
35
+ <div id="hosting" class="row justify-center">
36
+ <cite>{{ $t('KAbout.DOMAIN') }} <a :href="$config('domain')" target="_blank">{{ $config('domain') }}</a></cite>
37
+ <cite>&nbsp;({{ $config('flavor') }})</cite>
38
+ </div><br/>
39
+ <!-- More info -->
40
+ <div class="row justify-center">
41
+ <a id="app-website" :href="$config('appWebsite')" target="_blank">
42
+ <q-icon name="las la-external-link-alt"/>&nbsp;{{ $t('KAbout.MORE') }} {{ $config('appName') }}
43
+ </a>
44
+ </div><br/>
45
+ <div class="row justify-center">
46
+ <a id="publisher-website" :href="$config('publisherWebsite')" target="_blank">
47
+ <q-icon name="las la-external-link-alt"/>&nbsp;{{ $t('KAbout.MORE_PUBLISHER') }} {{ $config('publisher') }}
48
+ </a>
49
+ </div><br/>
50
+ <!-- Bug report -->
51
+ <div class="row justify-center">
52
+ <a id="report-bug" :href="`mailto:${bugReport.address}?subject=${bugReport.subject}&body=${bugReport.body}`">
53
+ <q-icon name="las la-envelope"/>&nbsp;{{ $t('KAbout.BUG_REPORT') }}
54
+ </a>
55
+ </div><br/>
56
+ <!-- System -->
57
+ <div class="row justify-center" @click="showSystemDetails = !showSystemDetails">
58
+ <a id="system-details" >
59
+ <q-icon name="las la-laptop-code"/>&nbsp;{{ $t('KAbout.SYSTEM_DETAILS') }}
60
+ </a>
61
+ </div>
62
+ <br/>
63
+ <div v-show="showSystemDetails">
64
+ <template v-for="(value, key) in systemDetails">
65
+ <div :key="key" class="row justify-center">
66
+ <cite><strong>{{ key }}</strong>: {{ value }}</cite>
67
+ </div>
68
+ </template>
69
+ </div>
70
+ <!-- KDK -->
71
+ <div class="row justify-center items-center q-gutter-x-md">
72
+ <q-icon name="kdk:kdk.png" size="md" />
73
+ <a href="https://kalisio.github.io/kdk" target="_blank">{{ $t('KAbout.KDK_POWERED') }}</a>
76
74
  </div>
77
75
  </div>
78
76
  </k-modal>
@@ -5,7 +5,7 @@
5
5
  v-model="isModalOpened"
6
6
  @opened="$emit('opened')"
7
7
  @closed="$emit('closed')">
8
- <div slot="modal-content">
8
+ <div>
9
9
  <q-tabs align="justify" v-model="mode" inverted>
10
10
  <q-tab id="unique-tab" name="unique" icon="las la-user" />
11
11
  <q-tab id="multiple-tab" name="multiple" icon="las la-user-friends" />
@@ -5,10 +5,9 @@
5
5
  :buttons="getButtons()"
6
6
  v-model="isModalOpened"
7
7
  @opened="$emit('opened')"
8
- @closed="$emit('closed')">
9
- <div slot="modal-content" class="column xs-gutter">
10
- <k-form v-if="member" ref="form" :schema="getSchema()" />
11
- </div>
8
+ @closed="$emit('closed')"
9
+ >
10
+ <k-form v-if="member" ref="form" :schema="getSchema()" />
12
11
  </k-modal>
13
12
  </template>
14
13
 
@@ -61,12 +60,8 @@ export default {
61
60
  const scope = this.getScope()
62
61
  const resourceId = this.getResourceId()
63
62
  const currentRole = _.get(_.find(this.member[scope], { _id: resourceId }), 'permissions')
64
- const roles = [
65
- { label: this.$t('KChangeRole.MEMBER_LABEL'), value: 'member' },
66
- { label: this.$t('KChangeRole.MANAGER_LABEL'), value: 'manager' },
67
- { label: this.$t('KChangeRole.OWNER_LABEL'), value: 'owner' }
68
- ]
69
- _.remove(roles, role => { return role.value === currentRole })
63
+ const roles = ['member', 'manager']
64
+ if (this.getScope() === 'organisations') roles.push('owner')
70
65
  return {
71
66
  $schema: 'http://json-schema.org/draft-06/schema#',
72
67
  $id: 'http://kalisio.xyz/schemas/change-role#',
@@ -74,11 +69,11 @@ export default {
74
69
  properties: {
75
70
  role: {
76
71
  type: 'string',
72
+ default: currentRole,
77
73
  field: {
78
- component: 'form/KSelectField',
74
+ component: 'form/KRoleField',
79
75
  label: 'KChangeRole.ROLE_FIELD_LABEL',
80
- type: 'radio',
81
- options: roles
76
+ roles
82
77
  }
83
78
  }
84
79
  },
@@ -110,10 +105,12 @@ export default {
110
105
  }
111
106
  }
112
107
  },
113
- async created () {
108
+ beforeCreate () {
114
109
  // Load the required components
115
110
  this.$options.components['k-modal'] = this.$load('frame/KModal')
116
111
  this.$options.components['k-form'] = this.$load('form/KForm')
112
+ },
113
+ async created () {
117
114
  // Load the member
118
115
  this.member = await this.loadObject()
119
116
  }
@@ -25,7 +25,7 @@
25
25
  <script>
26
26
  import _ from 'lodash'
27
27
  import mixins from '../../mixins'
28
- import { findMembersOfGroup, getRoleForGroup, Roles, RoleNames } from '../../../common/permissions'
28
+ import { findMembersOfGroup, getRoleForGroup, getRoleForOrganisation, Roles, RoleNames } from '../../../common/permissions'
29
29
  import { KCard, KCardSection } from '../collection'
30
30
  import { KTextArea } from '../frame'
31
31
 
@@ -47,14 +47,21 @@ export default {
47
47
  computed: {
48
48
  header () {
49
49
  const components = _.filter(this.itemActions, { scope: 'header' })
50
- components.splice(0, 0, { component: 'QBadge', label: this.$t(this.memberRoleLabel), color: 'grey-7' }, { component: 'QSpace' })
50
+ if (this.memberRoleLabel) {
51
+ components.splice(0, 0, { component: 'QBadge', label: this.$t(this.memberRoleLabel), color: 'grey-7' }, { component: 'QSpace' })
52
+ } else {
53
+ components.splice(0, 0, { component: 'QSpace' })
54
+ }
51
55
  return components
52
56
  },
53
57
  memberRoleLabel () {
54
58
  const user = this.$store.get('user')
55
- const role = getRoleForGroup(user, this.contextId, this.item._id)
56
- if (!_.isUndefined(role)) return this.roleLabels[Roles[role]]
57
- else return ''
59
+ // Organisation managers can manage all groups so that we do not display anything about role
60
+ let role = getRoleForOrganisation(user, this.contextId)
61
+ if (Roles[role] >= Roles.manager) return ''
62
+ // Otherwise the user can be member or manager of the group
63
+ role = getRoleForGroup(user, this.contextId, this.item._id)
64
+ return (!_.isUndefined(role) ? this.roleLabels[Roles[role]] : '')
58
65
  },
59
66
  dense () {
60
67
  return this.$q.screen.lt.sm
@@ -11,7 +11,7 @@
11
11
  :renderer="renderer"
12
12
  :base-query="sorter.query"
13
13
  :filter-query="filter.query"
14
- :list-strategy="'smart'">
14
+ :list-strategy="'always'">
15
15
  <template slot="empty-section">
16
16
  <div class="absolute-center">
17
17
  <k-stamp icon="las la-exclamation-circle" icon-size="3rem" :text="$t('KGrid.EMPTY_GRID')" />
@@ -6,16 +6,16 @@
6
6
  :buttons="getButtons()"
7
7
  v-model="isModalOpened"
8
8
  @opened="$emit('opened')"
9
- @closed="$emit('closed')">
10
- <div slot="modal-content" class="column xs-gutter">
11
- <k-form ref="form" :schema="schema" />
12
- </div>
9
+ @closed="$emit('closed')"
10
+ >
11
+ <k-form ref="form" :schema="schema" />
13
12
  </k-modal>
14
13
  </div>
15
14
  </template>
16
15
 
17
16
  <script>
18
17
  import _ from 'lodash'
18
+ import { Roles, getRoleForOrganisation } from '../../../common/permissions'
19
19
  import mixins from '../../mixins'
20
20
 
21
21
  export default {
@@ -42,7 +42,7 @@ export default {
42
42
  },
43
43
  schema () {
44
44
  if (this.member === null) return {}
45
- return {
45
+ const schema = {
46
46
  $schema: 'http://json-schema.org/draft-06/schema#',
47
47
  $id: 'http://kalisio.xyz/schemas/join-group#',
48
48
  title: 'Join Group Form',
@@ -68,24 +68,21 @@ export default {
68
68
  component: 'form/KItemField',
69
69
  label: 'KJoinGroup.GROUP_FIELD_LABEL'
70
70
  }
71
- },
72
- role: {
73
- type: 'string',
74
- default: 'member',
75
- field: {
76
- component: 'form/KSelectField',
77
- label: 'KJoinGroup.ROLE_FIELD_LABEL',
78
- type: 'radio',
79
- options: [
80
- { label: this.$t('KAddMember.MEMBER_LABEL'), value: 'member' },
81
- { label: this.$t('KAddMember.MANAGER_LABEL'), value: 'manager' },
82
- { label: this.$t('KAddMember.OWNER_LABEL'), value: 'owner' }
83
- ]
84
- }
85
71
  }
86
72
  },
87
- required: ['group', 'role']
73
+ required: ['group']
74
+ }
75
+ if (Roles[this.role] === Roles.member) {
76
+ _.set(schema, 'properties.role', {
77
+ type: 'string',
78
+ default: false,
79
+ field: {
80
+ component: 'form/KToggleField',
81
+ label: 'KJoinGroup.ROLE_FIELD_LABEL'
82
+ }
83
+ })
88
84
  }
85
+ return schema
89
86
  }
90
87
  },
91
88
  data () {
@@ -109,7 +106,7 @@ export default {
109
106
  const authorisationService = this.$api.getService('authorisations')
110
107
  await authorisationService.create({
111
108
  scope: 'groups',
112
- permissions: result.values.role,
109
+ permissions: _.get(result.values.role, false) ? 'manager' : 'member',
113
110
  subjects: this.objectId,
114
111
  subjectsService: this.contextId + '/members',
115
112
  resource: result.values.group._id,
@@ -119,11 +116,14 @@ export default {
119
116
  }
120
117
  }
121
118
  },
122
- async created () {
119
+ beforeCreate () {
123
120
  this.$options.components['k-modal'] = this.$load('frame/KModal')
124
121
  this.$options.components['k-form'] = this.$load('form/KForm')
122
+ },
123
+ async created () {
125
124
  // Load the member
126
125
  this.member = await this.loadObject()
126
+ this.role = getRoleForOrganisation(this.member, this.contextId)
127
127
  }
128
128
  }
129
129
  </script>
@@ -222,17 +222,32 @@ export default {
222
222
  },
223
223
  canJoinGroup () {
224
224
  const user = this.$store.get('user')
225
- // Can add members to a group if at least manager/owner of one
225
+ // Organisation managers can manage all groups
226
+ const role = getRoleForOrganisation(user, this.contextId)
227
+ if (Roles[role] >= Roles.manager) return true
228
+ // Group managers can manage members of their own groups so
229
+ // can add members to a group if at least manager of one
226
230
  const groups = findGroupsWithRole(user, this.contextId, Roles.manager)
227
- .concat(findGroupsWithRole(user, this.contextId, Roles.owner))
228
231
  // FIXME: we should also filter by the member groups so that if already added to all my groups we don't show the action
229
232
  return groups.length > 0
230
233
  },
231
234
  canChangeRoleInGroup (group) {
232
- return this.$can('create', 'authorisations', this.item._id, { resource: group._id })
235
+ const memberRole = getRoleForOrganisation(this.item, this.contextId)
236
+ if (Roles[memberRole] >= Roles.manager) return false
237
+ const user = this.$store.get('user')
238
+ // Organisation managers can manage all groups
239
+ const userRole = getRoleForOrganisation(user, this.contextId)
240
+ if (Roles[userRole] >= Roles.manager) return true
241
+ // Group managers can manage members of their own groups
242
+ else return this.$can('create', 'authorisations', null, { resource: group._id, permissions: 'member' })
233
243
  },
234
244
  canLeaveGroup (group) {
235
- return this.$can('remove', 'authorisations', this.item._id, { resource: group._id })
245
+ const user = this.$store.get('user')
246
+ // Organisation managers can manage all groups
247
+ const role = getRoleForOrganisation(user, this.contextId)
248
+ if (Roles[role] >= Roles.manager) return true
249
+ // Group managers can manage members of their own groups
250
+ else return this.$can('remove', 'authorisations', null, { resource: group._id, permissions: 'member' })
236
251
  },
237
252
  onChangeRoleInGroup (group) {
238
253
  this.$router.push({
@@ -5,18 +5,24 @@
5
5
  :buttons="getButtons()"
6
6
  v-model="isModalOpened"
7
7
  @opened="$emit('opened')"
8
- @closed="$emit('closed')">
9
- <div slot="modal-content">
10
- <k-view :values="object" :schema="schema" />
11
- </div>
8
+ @closed="$emit('closed')"
9
+ >
10
+ <k-view :values="object" :schema="schema" />
12
11
  </k-modal>
13
12
  </template>
14
13
 
15
14
  <script>
15
+ import { KModal, KScrollArea } from '../frame'
16
+ import { KView } from '../form'
16
17
  import mixins from '../../mixins'
17
18
 
18
19
  export default {
19
20
  name: 'k-modal-viewer',
21
+ components: {
22
+ KModal,
23
+ KScrollArea,
24
+ KView
25
+ },
20
26
  mixins: [
21
27
  mixins.baseViewer,
22
28
  mixins.baseModal,
@@ -34,11 +40,6 @@ export default {
34
40
  await this.refresh()
35
41
  this.isModalOpened = true
36
42
  }
37
- },
38
- created () {
39
- // Loads the required components
40
- this.$options.components['k-modal'] = this.$load('frame/KModal')
41
- this.$options.components['k-view'] = this.$load('form/KView')
42
43
  }
43
44
  }
44
45
  </script>
@@ -64,7 +64,44 @@
64
64
  "OAUTH2_PROVIDER": "You cannot update your account because it is managed by {{provider}}, in order to switch to a local account reset your password first",
65
65
  "EMAIL_ALREADY_TAKEN": "A user with this email address seems to be already registered",
66
66
  "OBJECT_ID_ALREADY_TAKEN": "An item with this identifier seems to already exist. Please try again with another value.",
67
- "DUPLICATED_FILE": "The file {{file}} is already added"
67
+ "DUPLICATED_FILE": "The file {{file}} is already added",
68
+ "UNSUPPORTED_FILE_FORMAT": "The {{file}} file format is not supported",
69
+ "CANNOT_READ_FILE": "Unable to read the file {{file}}",
70
+ "INVALID_JSON_FILE": "{{file}} is not a valid JSON file",
71
+ "INVALID_CSV_FILE": "{{file}} is not a valid CSV file",
72
+ "NETWORK_ERROR": "Network error occured"
73
+ },
74
+ "units": {
75
+ "METER_SYMBOL": "m",
76
+ "MILE_SYMBOL": "mi",
77
+ "NAUTICAL_MILE_SYMBOL": "m",
78
+ "SQUARED_METER_SYMBOL": "m²",
79
+ "SQUARED_KILOMETER_SYMBOL": "km²",
80
+ "ACRE_SYMBOL": "a",
81
+ "HECTARE_SYMBOL": "ha",
82
+ "METER_PER_SECOND_SYMBOL": "m/s",
83
+ "KILOMETER_PER_HOUR_SYMBOL": "km/h",
84
+ "KNOT_SYMBOL": "kt",
85
+ "CELSIUS_SYMBOL": "°C",
86
+ "FAHRENHEIT_SYMBOL": "°F",
87
+ "KELVIN_SYMBOL": "K",
88
+ "DEGREE_SYMBOL": "°",
89
+ "RADIAN_SYMBOL": "rad",
90
+ "METER_LABEL": "Meters",
91
+ "MILE_LABEL": "Miles",
92
+ "NAUTICAL_MILE_LABEL": "Nautical miles",
93
+ "SQUARED_METER_LABEL": "Squared meters",
94
+ "SQUARED_KILOMETER_LABEL": "Squared kilometers",
95
+ "ACRE_LABEL": "Acres",
96
+ "HECTARE_LABEL": "Hectares",
97
+ "METER_PER_SECOND_LABEL": "Meters per second",
98
+ "KILOMETER_PER_HOUR_LABEL": "Kilometers per hour",
99
+ "KNOT_LABEL": "Knots",
100
+ "CELSIUS_LABEL": "Celcius degrees",
101
+ "FAHRENHEIT_LABEL": "Fahrenhiet degrees",
102
+ "KELVIN_LABEL": "Kelvins",
103
+ "DEGREE_LABEL": "Degrees",
104
+ "RADIAN_LABEL": "Radians"
68
105
  },
69
106
  "mixins": {
70
107
  "baseItem": {
@@ -89,7 +126,29 @@
89
126
  "TAGS_DESCRIPTION_FIELD_LABEL": "Enter a description of this tag",
90
127
  "GROUPS_CREATE_TITLE": "Create a new group ?",
91
128
  "GROUPS_NAME_FIELD_LABEL": "Enter the name of this group",
92
- "GROUPS_DESCRIPTION_FIELD_LABEL": "Enter a description for this group"
129
+ "GROUPS_DESCRIPTION_FIELD_LABEL": "Enter a description for this group",
130
+ "UPDATE_SETTINGS_TITLE": "Your settings",
131
+ "TIME_FORMAT_SETTINGS": "Time/Date format",
132
+ "TIME_FORMAT_SHORT_TIME_FIELD_LABEL": "Short time format",
133
+ "TIME_FORMAT_SHORT_TIME_FIELD_HELPER": "<a target='_blank' href='https://momentjs.com/docs/#/displaying/format/'>&#x1F6C8;</a>",
134
+ "TIME_FORMAT_LONG_TIME_FIELD_LABEL": "Long time format",
135
+ "TIME_FORMAT_LONG_TIME_FIELD_HELPER": "<a target='_blank' href='https://momentjs.com/docs/#/displaying/format/'>&#x1F6C8;</a>",
136
+ "TIME_FORMAT_SHORT_DATE_FIELD_LABEL": "Short date format",
137
+ "TIME_FORMAT_SHORT_DATE_FIELD_HELPER": "<a target='_blank' href='https://momentjs.com/docs/#/displaying/format/'>&#x1F6C8;</a>",
138
+ "TIME_FORMAT_LONG_DATE_FIELD_LABEL": "Long date format",
139
+ "TIME_FORMAT_LONG_DATE_FIELD_HELPER": "<a target='_blank' href='https://momentjs.com/docs/#/displaying/format/'>&#x1F6C8;</a>",
140
+ "TIME_FORMAT_SHORT_YEAR_FIELD_LABEL": "Short year format",
141
+ "TIME_FORMAT_SHORT_YEAR_FIELD_HELPER": "<a target='_blank' href='https://momentjs.com/docs/#/displaying/format/'>&#x1F6C8;</a>",
142
+ "TIME_FORMAT_LONG_YEAR_FIELD_LABEL": "Long year format",
143
+ "TIME_FORMAT_LONG_YEAR_FIELD_HELPER": "<a target='_blank' href='https://momentjs.com/docs/#/displaying/format/'>&#x1F6C8;</a>",
144
+ "TIME_FORMAT_UTC_FIELD_LABEL": "UTC time display mode",
145
+ "UNITS_SETTINGS": "Units settings",
146
+ "LENGTH_FIELD_LABEL": "Default length unit",
147
+ "AREA_FIELD_LABEL": "Default area unit",
148
+ "VELOCITY_FIELD_LABEL": "Default velocity unit",
149
+ "TEMPERATURE_FIELD_LABEL": "Default temperature unit",
150
+ "ANGLE_FIELD_LABEL": "Default angle unit",
151
+ "PRECISION_FIELD_LABEL": "Default number of decimal digits"
93
152
  },
94
153
  "tours": {
95
154
  "APP_BAR_OVERFLOW_MENU_LABEL": "When not visible, you can find it using the popup menu.",
@@ -223,6 +282,12 @@
223
282
  "MULTIPLE_FILE_LABEL": "Upload the CSV file listing the persons to be invited. Each person is represented by a row containing the fields <b>name</b>, <b>email</b> and <b>role</b> separated using a <b>,</b> separator.",
224
283
  "MULTIPLE_ADD_BUTTON_LABEL": "Click this button to proceed with the invitations."
225
284
  },
285
+ "join-group": {
286
+ "GROUP_NAME_LABEL": "Typing <b>the first characters</b> of a group name to make it selectable.",
287
+ "MEMBER_ROLE_LABEL": "Choisissez le rôle de la personne au sein du groupe.",
288
+ "ROLES_LABEL": "Un <b>membre</b> a un accès consultatif au groupe alors qu'un <b>gestionnaire</b> a le pouvoir de gérer les membres du groupe (ajout/suppression).",
289
+ "ADD_MEMBER_LABEL": "Confirm adding the member to the group."
290
+ },
226
291
  "tag-member": {
227
292
  "TAG_NAME_LABEL": "Typing <b>the first characters</b> of a tag name to make it selectable if it already exists or add it otherwise using the Return key.",
228
293
  "TAG_REMOVE_LABEL": "Once added remove it using the cross.",
@@ -243,7 +308,10 @@
243
308
  "UPDATE_TAG_DESCRIPTION_LABEL": "Update the description of your tag through this action."
244
309
  }
245
310
  },
246
- "KWelcome": {
311
+ "reader": {
312
+ "READING_FILE": "Please wait while Reading {{file}}"
313
+ },
314
+ "KWelcome": {
247
315
  "WELCOME_TITLE": "Welcome !",
248
316
  "WELCOME_MESSAGE": "This quick start guide covers the main application features.",
249
317
  "ONLINE_HELP": "Read first our online help to get an overview of the basic concepts",
@@ -474,7 +542,6 @@
474
542
  "ERROR_WHILE_LOADING_THE_FILE": "Error while loading the file, did you select a valid file ?",
475
543
  "INVALID_FILE_TYPE": "Invalid file type, please select the right file type",
476
544
  "INVALID_JSON_FILE": "Invalid JSON file",
477
- "INVALID_GEOJSON_FILE": "Invalid GeoJSON file",
478
545
  "INVALID_CSV_FILE": "Invalid CSV file"
479
546
  },
480
547
  "KMediaBrowser": {
@@ -551,7 +618,7 @@
551
618
  "KJoinGroup": {
552
619
  "TITLE": "Add {{member}} to an existing group ?",
553
620
  "GROUP_FIELD_LABEL": "Enter the name of the group",
554
- "ROLE_FIELD_LABEL": "Select the role granted to the user",
621
+ "ROLE_FIELD_LABEL": "Delegate group management to this member?",
555
622
  "OWNER_LABEL": "$t(OWNER)",
556
623
  "MANAGER_LABEL": "$t(MANAGER)",
557
624
  "MEMBER_LABEL": "$t(MEMBER)",
@@ -561,9 +628,6 @@
561
628
  "KChangeRole": {
562
629
  "TITLE": "Change role of {{member}} ?",
563
630
  "ROLE_FIELD_LABEL": "Select the role to be granted to the user",
564
- "OWNER_LABEL": "$t(OWNER)",
565
- "MANAGER_LABEL": "$t(MANAGER)",
566
- "MEMBER_LABEL": "$t(MEMBER)",
567
631
  "CLOSE_ACTION": "$t(CLOSE)",
568
632
  "UPDATE_BUTTON": "Update"
569
633
  },
@@ -64,7 +64,44 @@
64
64
  "OAUTH2_PROVIDER": "Vous ne pouvez modifier votre compte car il est géré par {{provider}}, pour utiliser un compte local réinitialisez tout d'abord votre mot de passe",
65
65
  "OBJECT_ID_ALREADY_TAKEN": "Un élément semble déjà enregistré avec cet identifiant. Merci de réessayer avec une autre valeur.",
66
66
  "EMAIL_ALREADY_TAKEN": "Un utilisateur semble déjà enregistré avec cette adresse mail",
67
- "DUPLICATED_FILE": "Le fichier {{file}} a déjà été ajouté"
67
+ "DUPLICATED_FILE": "Le fichier {{file}} a déjà été ajouté",
68
+ "UNSUPPORTED_FILE_FORMAT": "Le format du fichier {{file}} n'est pas supporté",
69
+ "CANNOT_READ_FILE": "Impossible de lire le fichier {{file}}",
70
+ "INVALID_JSON_FILE": "{{file}} n'est pas un fichier JSON valide",
71
+ "INVALID_CSV_FILE": "{{file}} n'est pas un fichier CSV valide",
72
+ "NETWORK_ERROR": "Une erreur réseau s'est produite"
73
+ },
74
+ "units": {
75
+ "METER_SYMBOL": "m",
76
+ "MILE_SYMBOL": "mi",
77
+ "NAUTICAL_MILE_SYMBOL": "nm",
78
+ "SQUARED_METER_SYMBOL": "m²",
79
+ "SQUARED_KILOMETER_SYMBOL": "km²",
80
+ "ACRE_SYMBOL": "a",
81
+ "HECTARE_SYMBOL": "ha",
82
+ "METER_PER_SECOND_SYMBOL": "m/s",
83
+ "KILOMETER_PER_HOUR_SYMBOL": "km/h",
84
+ "KNOT_SYMBOL": "kt",
85
+ "CELSIUS_SYMBOL": "°C",
86
+ "FAHRENHEIT_SYMBOL": "°F",
87
+ "KELVIN_SYMBOL": "K",
88
+ "DEGREE_SYMBOL": "°",
89
+ "RADIAN_SYMBOL": "rad",
90
+ "METER_LABEL": "Mètres",
91
+ "MILE_LABEL": "Milles",
92
+ "NAUTICAL_MILE_LABEL": "Milles nautique",
93
+ "SQUARED_METER_LABEL": "Mètres carrés",
94
+ "SQUARED_KILOMETER_LABEL": "Kilomètres carrés",
95
+ "ACRE_LABEL": "Acres",
96
+ "HECTARE_LABEL": "Hectares",
97
+ "METER_PER_SECOND_LABEL": "Mètres par seconde",
98
+ "KILOMETER_PER_HOUR_LABEL": "Kilomètres par heure",
99
+ "KNOT_LABEL": "Noeuds",
100
+ "CELSIUS_LABEL": "Degrés celcius",
101
+ "FAHRENHEIT_LABEL": "Degrés Fahrenheit",
102
+ "KELVIN_LABEL": "Kelvins",
103
+ "DEGREE_LABEL": "Degrés",
104
+ "RADIAN_LABEL": "Radians"
68
105
  },
69
106
  "mixins": {
70
107
  "baseItem": {
@@ -89,7 +126,29 @@
89
126
  "TAGS_DESCRIPTION_FIELD_LABEL": "Saisissez une description de l'étiquette",
90
127
  "GROUPS_CREATE_TITLE": "Créer un nouveau groupe ?",
91
128
  "GROUPS_NAME_FIELD_LABEL": "Saisissez le nom du groupe",
92
- "GROUPS_DESCRIPTION_FIELD_LABEL": "Saisissez une description du groupe"
129
+ "GROUPS_DESCRIPTION_FIELD_LABEL": "Saisissez une description du groupe",
130
+ "UPDATE_SETTINGS_TITLE": "Vos paramètres",
131
+ "TIME_FORMAT_SETTINGS": "Format de date et d'heure",
132
+ "TIME_FORMAT_SHORT_TIME_FIELD_LABEL": "Format d'heure abrégé",
133
+ "TIME_FORMAT_SHORT_TIME_FIELD_HELPER": "<a target='_blank' href='https://momentjs.com/docs/#/displaying/format/'>&#x1F6C8;</a>",
134
+ "TIME_FORMAT_LONG_TIME_FIELD_LABEL": "Format d'heure complet",
135
+ "TIME_FORMAT_LONG_TIME_FIELD_HELPER": "<a target='_blank' href='https://momentjs.com/docs/#/displaying/format/'>&#x1F6C8;</a>",
136
+ "TIME_FORMAT_SHORT_DATE_FIELD_LABEL": "Format de jour abrégé",
137
+ "TIME_FORMAT_SHORT_DATE_FIELD_HELPER": "<a target='_blank' href='https://momentjs.com/docs/#/displaying/format/'>&#x1F6C8;</a>",
138
+ "TIME_FORMAT_LONG_DATE_FIELD_LABEL": "Format de jour complet",
139
+ "TIME_FORMAT_LONG_DATE_FIELD_HELPER": "<a target='_blank' href='https://momentjs.com/docs/#/displaying/format/'>&#x1F6C8;</a>",
140
+ "TIME_FORMAT_SHORT_YEAR_FIELD_LABEL": "Format d'année abrégé",
141
+ "TIME_FORMAT_SHORT_YEAR_FIELD_HELPER": "<a target='_blank' href='https://momentjs.com/docs/#/displaying/format/'>&#x1F6C8;</a>",
142
+ "TIME_FORMAT_LONG_YEAR_FIELD_LABEL": "Format d'année complet",
143
+ "TIME_FORMAT_LONG_YEAR_FIELD_HELPER": "<a target='_blank' href='https://momentjs.com/docs/#/displaying/format/'>&#x1F6C8;</a>",
144
+ "TIME_FORMAT_UTC_FIELD_LABEL": "Mode d'affichage temporel UTC",
145
+ "UNITS_SETTINGS": "Paramétrage des unités",
146
+ "LENGTH_FIELD_LABEL": "Unité de longueur par défaut",
147
+ "AREA_FIELD_LABEL": "Unité d'aire par défaut",
148
+ "VELOCITY_FIELD_LABEL": "Unité de vitesse par défaut",
149
+ "TEMPERATURE_FIELD_LABEL": "Unité de température par défaut",
150
+ "ANGLE_FIELD_LABEL": "Unité d'angle par défaut",
151
+ "PRECISION_FIELD_LABEL": "Nombre de chiffre décimaux par défaut"
93
152
  },
94
153
  "tours": {
95
154
  "APP_BAR_OVERFLOW_MENU_LABEL": "Lorsqu'il n'est pas visible, vous pourrez le retrouver dans ce menu déroulant.",
@@ -226,7 +285,7 @@
226
285
  "join-group": {
227
286
  "GROUP_NAME_LABEL": "Tapez <b>les premières lettres</b> du nom d'un groupe pour le sélectionner.",
228
287
  "MEMBER_ROLE_LABEL": "Choisissez le rôle de la personne au sein du groupe.",
229
- "ROLES_LABEL": "Un <b>membre</b> a un accès consultatif au groupe alors qu'un <b>gestionnaire</b> a un pouvoir d'édition et un <b>propriétaire</b> a un contrôle total (destruction).",
288
+ "ROLES_LABEL": "Un <b>membre</b> a un accès consultatif au groupe alors qu'un <b>gestionnaire</b> a le pouvoir de gérer les membres du groupe (ajout/suppression).",
230
289
  "ADD_MEMBER_LABEL": "Confirmez l'ajout du membre au groupe."
231
290
  },
232
291
  "tag-member": {
@@ -249,6 +308,9 @@
249
308
  "UPDATE_TAG_DESCRIPTION_LABEL": "Modifiez la description de votre étiquette via cette action."
250
309
  }
251
310
  },
311
+ "reader": {
312
+ "READING_FILE": "Lecture de {{file}} en cours.<br>Veuillez patienter."
313
+ },
252
314
  "KWelcome": {
253
315
  "WELCOME_TITLE": "Bienvenue !",
254
316
  "WELCOME_MESSAGE": "Cette prise en main rapide va vous permettre de balayer les principales fonctionnalités de l'application.",
@@ -480,7 +542,6 @@
480
542
  "ERROR_WHILE_LOADING_THE_FILE": "Erreur durant la lecture du fichier, avez-vous sélectionné un fichier valide ?",
481
543
  "INVALID_FILE_TYPE": "Type de fichier invalide, veuillez sélectionner un fichier du bon type.",
482
544
  "INVALID_JSON_FILE": "Fichier JSON invalide",
483
- "INVALID_GEOJSON_FILE": "Fichier GeoJSON invalide",
484
545
  "INVALID_CSV_FILE": "Fichier CSV invalide"
485
546
  },
486
547
  "KMediaBrowser": {
@@ -558,7 +619,7 @@
558
619
  "KJoinGroup": {
559
620
  "TITLE": "Ajouter {{member}} à un groupe existant ?",
560
621
  "GROUP_FIELD_LABEL": "Saisissez le nom du groupe",
561
- "ROLE_FIELD_LABEL": "Sélectionnez le rôle à attribuer",
622
+ "ROLE_FIELD_LABEL": "Déléguer la gestion du groupe à ce membre ?",
562
623
  "OWNER_LABEL": "$t(OWNER)",
563
624
  "MANAGER_LABEL": "$t(MANAGER)",
564
625
  "MEMBER_LABEL": "$t(MEMBER)",
@@ -568,9 +629,6 @@
568
629
  "KChangeRole": {
569
630
  "TITLE": "Changer le rôle de {{member}} ?",
570
631
  "ROLE_FIELD_LABEL": "Sélectionnez le rôle à attribuer",
571
- "OWNER_LABEL": "$t(OWNER)",
572
- "MANAGER_LABEL": "$t(MANAGER)",
573
- "MEMBER_LABEL": "$t(MEMBER)",
574
632
  "CLOSE_ACTION": "$t(CLOSE_ACTION)",
575
633
  "UPDATE_BUTTON": "Mettre à jour"
576
634
  },