graphdb-workbench 2.2.2-TR2 → 2.3.0-TR1

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 (312) hide show
  1. package/dist/10.2c7c4caeb5771a2a98d1.bundle.js +2 -0
  2. package/dist/10.2c7c4caeb5771a2a98d1.bundle.js.map +1 -0
  3. package/dist/102.850f372bb910e3a64905.bundle.js +2 -0
  4. package/dist/102.850f372bb910e3a64905.bundle.js.map +1 -0
  5. package/dist/104.2e04965e98d05ada03fd.bundle.js +2 -0
  6. package/dist/104.2e04965e98d05ada03fd.bundle.js.map +1 -0
  7. package/dist/{107.37693ea0237c39fda863.bundle.js → 107.e401af35eca7e21cc9c2.bundle.js} +2 -2
  8. package/dist/107.e401af35eca7e21cc9c2.bundle.js.map +1 -0
  9. package/dist/{108.3c3f9c242e6a3e18fff5.bundle.js → 108.90cf8908233ccb473643.bundle.js} +2 -2
  10. package/dist/108.90cf8908233ccb473643.bundle.js.map +1 -0
  11. package/dist/{11.f4c5533cd200c8568ff6.bundle.js → 11.f912f1a9f37160d23a3b.bundle.js} +2 -2
  12. package/dist/11.f912f1a9f37160d23a3b.bundle.js.map +1 -0
  13. package/dist/{124.6a31dfbe4ac2f9064a29.bundle.js → 124.82728aea87e9d1190441.bundle.js} +2 -2
  14. package/dist/124.82728aea87e9d1190441.bundle.js.map +1 -0
  15. package/dist/{126.48e00b0525b3ef8efbe8.bundle.js → 126.d21b0bf850be03830298.bundle.js} +2 -2
  16. package/dist/126.d21b0bf850be03830298.bundle.js.map +1 -0
  17. package/dist/140.08e0e8799d3d5fefcda5.bundle.js +2 -0
  18. package/dist/140.08e0e8799d3d5fefcda5.bundle.js.map +1 -0
  19. package/dist/141.c16968e963be850e7a7b.bundle.js +2 -0
  20. package/dist/141.c16968e963be850e7a7b.bundle.js.map +1 -0
  21. package/dist/142.0204215ce1bf7b2cf84d.bundle.js +2 -0
  22. package/dist/142.0204215ce1bf7b2cf84d.bundle.js.map +1 -0
  23. package/dist/143.c194ab0648b274f3b554.bundle.js +2 -0
  24. package/dist/143.c194ab0648b274f3b554.bundle.js.map +1 -0
  25. package/dist/145.828376c0cb6b5ba6e015.bundle.js +2 -0
  26. package/dist/145.828376c0cb6b5ba6e015.bundle.js.map +1 -0
  27. package/dist/146.581f1af823b55dc358d6.bundle.js +2 -0
  28. package/dist/146.581f1af823b55dc358d6.bundle.js.map +1 -0
  29. package/dist/147.66395fd5d79176a79c38.bundle.js +2 -0
  30. package/dist/147.66395fd5d79176a79c38.bundle.js.map +1 -0
  31. package/dist/{148.dd250d3cc5aafade33c6.bundle.js → 148.78e7398de964231883f3.bundle.js} +2 -2
  32. package/dist/{148.dd250d3cc5aafade33c6.bundle.js.map → 148.78e7398de964231883f3.bundle.js.map} +1 -1
  33. package/dist/{149.a0873076f2dd40830be9.bundle.js → 149.6eb6ef704b8da7bfc6ce.bundle.js} +2 -2
  34. package/dist/{149.a0873076f2dd40830be9.bundle.js.map → 149.6eb6ef704b8da7bfc6ce.bundle.js.map} +1 -1
  35. package/dist/{150.3bd8af24551408342185.bundle.js → 150.283dd1f6da002f1ca17f.bundle.js} +2 -2
  36. package/dist/{150.3bd8af24551408342185.bundle.js.map → 150.283dd1f6da002f1ca17f.bundle.js.map} +1 -1
  37. package/dist/154.056ec5c8aafbc07484e0.bundle.js +2 -0
  38. package/dist/154.056ec5c8aafbc07484e0.bundle.js.map +1 -0
  39. package/dist/156.e15f9befbcfaf6677387.bundle.js +2 -0
  40. package/dist/156.e15f9befbcfaf6677387.bundle.js.map +1 -0
  41. package/dist/158.29813ed563736e5c85b2.bundle.js +2 -0
  42. package/dist/158.29813ed563736e5c85b2.bundle.js.map +1 -0
  43. package/dist/16.b8bb2389b9f026a298f7.bundle.js +3 -0
  44. package/dist/16.b8bb2389b9f026a298f7.bundle.js.map +1 -0
  45. package/dist/160.d5f5ab14c56efd04e404.bundle.js +2 -0
  46. package/dist/160.d5f5ab14c56efd04e404.bundle.js.map +1 -0
  47. package/dist/161.f142c1fe18346f00882a.bundle.js +2 -0
  48. package/dist/161.f142c1fe18346f00882a.bundle.js.map +1 -0
  49. package/dist/164.d4b744057d28ed5e7e47.bundle.js +2 -0
  50. package/dist/164.d4b744057d28ed5e7e47.bundle.js.map +1 -0
  51. package/dist/166.256169db442fec472d9d.bundle.js +2 -0
  52. package/dist/166.256169db442fec472d9d.bundle.js.map +1 -0
  53. package/dist/167.f79a82f7de6734cca660.bundle.js +2 -0
  54. package/dist/167.f79a82f7de6734cca660.bundle.js.map +1 -0
  55. package/dist/169.16292782069da22a11c0.bundle.js +2 -0
  56. package/dist/169.16292782069da22a11c0.bundle.js.map +1 -0
  57. package/dist/17.675eef636eb095240fab.bundle.js +2 -0
  58. package/dist/17.675eef636eb095240fab.bundle.js.map +1 -0
  59. package/dist/171.2aecfe97c1fa24db3bf3.bundle.js +2 -0
  60. package/dist/171.2aecfe97c1fa24db3bf3.bundle.js.map +1 -0
  61. package/dist/172.558d9080f05080a0dac2.bundle.js +2 -0
  62. package/dist/172.558d9080f05080a0dac2.bundle.js.map +1 -0
  63. package/dist/173.c1546a02befda215609d.bundle.js +2 -0
  64. package/dist/173.c1546a02befda215609d.bundle.js.map +1 -0
  65. package/dist/175.943ac5019fe29113e1f2.bundle.js +2 -0
  66. package/dist/175.943ac5019fe29113e1f2.bundle.js.map +1 -0
  67. package/dist/176.96a2ffd87018134c7b29.bundle.js +2 -0
  68. package/dist/176.96a2ffd87018134c7b29.bundle.js.map +1 -0
  69. package/dist/177.443034c31f85d8ac396c.bundle.js +2 -0
  70. package/dist/177.443034c31f85d8ac396c.bundle.js.map +1 -0
  71. package/dist/180.384be4faad5d0b1716b5.bundle.js +2 -0
  72. package/dist/180.384be4faad5d0b1716b5.bundle.js.map +1 -0
  73. package/dist/181.ce536d7a1f4cb278f82c.bundle.js +2 -0
  74. package/dist/181.ce536d7a1f4cb278f82c.bundle.js.map +1 -0
  75. package/dist/182.6154b3558b619301bfdf.bundle.js +2 -0
  76. package/dist/{182.1b40c7e8a8424e87da32.bundle.js.map → 182.6154b3558b619301bfdf.bundle.js.map} +1 -1
  77. package/dist/183.67e81437028990463d1a.bundle.js +2 -0
  78. package/dist/183.67e81437028990463d1a.bundle.js.map +1 -0
  79. package/dist/20.fbcb31706f03a07e8827.bundle.js +1 -1
  80. package/dist/20.fbcb31706f03a07e8827.bundle.js.map +1 -1
  81. package/dist/21.081b98fe7cc1b3dbbd72.bundle.js +2 -0
  82. package/dist/21.081b98fe7cc1b3dbbd72.bundle.js.map +1 -0
  83. package/dist/{23.b945d0565ded44df49c5.bundle.js → 23.24787bc4590d48521f4b.bundle.js} +2 -2
  84. package/dist/23.24787bc4590d48521f4b.bundle.js.map +1 -0
  85. package/dist/24.7468162b4988a0ad6eaa.bundle.js +2 -0
  86. package/dist/24.7468162b4988a0ad6eaa.bundle.js.map +1 -0
  87. package/dist/{25.9d7a3d8f98840b1fc5da.bundle.js → 25.64b95438d07ae2d82d8c.bundle.js} +2 -2
  88. package/dist/25.64b95438d07ae2d82d8c.bundle.js.map +1 -0
  89. package/dist/{26.a15a1adb6b30ab849e62.bundle.js → 26.7b0b040185949c4eb865.bundle.js} +2 -2
  90. package/dist/26.7b0b040185949c4eb865.bundle.js.map +1 -0
  91. package/dist/{27.83b24ef9ec0fd6964d92.bundle.js → 27.78b1f59da6f702484766.bundle.js} +2 -2
  92. package/dist/27.78b1f59da6f702484766.bundle.js.map +1 -0
  93. package/dist/{3.7f19eec4e1cff6bb8ff2.bundle.js → 3.9b969c666ea9ed46ea4f.bundle.js} +2 -2
  94. package/dist/3.9b969c666ea9ed46ea4f.bundle.js.map +1 -0
  95. package/dist/{30.a2596e679fb09411b854.bundle.js → 30.67e342e8f1485d26a99b.bundle.js} +2 -2
  96. package/dist/30.67e342e8f1485d26a99b.bundle.js.map +1 -0
  97. package/dist/31.133397ed26eda58c7e18.bundle.js +2 -0
  98. package/dist/31.133397ed26eda58c7e18.bundle.js.map +1 -0
  99. package/dist/33.4d23fa109c9184727386.bundle.js +1 -1
  100. package/dist/33.4d23fa109c9184727386.bundle.js.map +1 -1
  101. package/dist/{35.8be1042671722a19f3b4.bundle.js → 35.541a97f880621d5f7031.bundle.js} +2 -2
  102. package/dist/35.541a97f880621d5f7031.bundle.js.map +1 -0
  103. package/dist/36.239dd56c03aeda760f8b.bundle.js +2 -0
  104. package/dist/36.239dd56c03aeda760f8b.bundle.js.map +1 -0
  105. package/dist/{38.f4b561d7ee5b236ba481.bundle.js → 38.c8620e7cbab859b6f236.bundle.js} +2 -2
  106. package/dist/38.c8620e7cbab859b6f236.bundle.js.map +1 -0
  107. package/dist/39.c630c0e36b0dc913bbe3.bundle.js +2 -0
  108. package/dist/39.c630c0e36b0dc913bbe3.bundle.js.map +1 -0
  109. package/dist/{4.186c084105c931abbe1a.bundle.js → 4.d3fb6d0dcca79643bcb3.bundle.js} +2 -2
  110. package/dist/4.d3fb6d0dcca79643bcb3.bundle.js.map +1 -0
  111. package/dist/40.50b40301c8cc69a70457.bundle.js +1 -1
  112. package/dist/40.50b40301c8cc69a70457.bundle.js.map +1 -1
  113. package/dist/42.45ee7b629beac3e06cc2.bundle.js +2 -0
  114. package/dist/42.45ee7b629beac3e06cc2.bundle.js.map +1 -0
  115. package/dist/43.72fbe7e5d290c40db9ec.bundle.js +2 -0
  116. package/dist/43.72fbe7e5d290c40db9ec.bundle.js.map +1 -0
  117. package/dist/{5.5f48e5c6fc10b52dd415.bundle.js → 5.a44aa21343f8bf48f0e0.bundle.js} +2 -2
  118. package/dist/5.a44aa21343f8bf48f0e0.bundle.js.map +1 -0
  119. package/dist/{53.78084dd64a27f7a6d2e8.bundle.js → 53.c6d488d0fb81a54a3e55.bundle.js} +2 -2
  120. package/dist/53.c6d488d0fb81a54a3e55.bundle.js.map +1 -0
  121. package/dist/{54.fe5e554af6ba2c5778c1.bundle.js → 54.6209da75289a30ff366b.bundle.js} +2 -2
  122. package/dist/54.6209da75289a30ff366b.bundle.js.map +1 -0
  123. package/dist/{56.9c6f6ecafc1909c42dda.bundle.js → 56.0d89e5b9f6403aab1c8e.bundle.js} +2 -2
  124. package/dist/56.0d89e5b9f6403aab1c8e.bundle.js.map +1 -0
  125. package/dist/61.6332e06d94ef4426f068.bundle.js +2 -0
  126. package/dist/61.6332e06d94ef4426f068.bundle.js.map +1 -0
  127. package/dist/{62.86f5ed4f7b582a8aa17d.bundle.js → 62.14d5882e16c3da266b6f.bundle.js} +2 -2
  128. package/dist/62.14d5882e16c3da266b6f.bundle.js.map +1 -0
  129. package/dist/{7.c7d8fb1dfdb444052435.bundle.js → 7.8ca1f2ef4d0aa49b93ac.bundle.js} +2 -2
  130. package/dist/7.8ca1f2ef4d0aa49b93ac.bundle.js.map +1 -0
  131. package/dist/{71.4dbbc366049697f736c5.bundle.js → 71.48a75ab912070cdb19f5.bundle.js} +2 -2
  132. package/dist/71.48a75ab912070cdb19f5.bundle.js.map +1 -0
  133. package/dist/9.3b571539df8c3b22cf6e.bundle.js +2 -0
  134. package/dist/9.3b571539df8c3b22cf6e.bundle.js.map +1 -0
  135. package/dist/94.38349f52df66313fbcc0.bundle.js +1 -1
  136. package/dist/94.38349f52df66313fbcc0.bundle.js.map +1 -1
  137. package/dist/97.df243fffeb4322e50f63.bundle.js +2 -0
  138. package/dist/97.df243fffeb4322e50f63.bundle.js.map +1 -0
  139. package/dist/bundle.73c02a0d535f14462730.bundle.js +92 -0
  140. package/dist/bundle.73c02a0d535f14462730.bundle.js.map +1 -0
  141. package/dist/index.html +7 -7
  142. package/dist/js/angular/clustermanagement/templates/modal/add-nodes-dialog.html +2 -2
  143. package/dist/js/angular/clustermanagement/templates/modal/cluster-create-dialog.html +8 -8
  144. package/dist/js/angular/clustermanagement/templates/modal/cluster-delete-dialog.html +1 -1
  145. package/dist/js/angular/clustermanagement/templates/modal/cluster-edit-dialog.html +5 -5
  146. package/dist/js/angular/core/directives/languageselector/templates/languageSelector.html +2 -2
  147. package/dist/js/angular/core/directives/queryeditor/templates/query-editor.html +19 -19
  148. package/dist/js/angular/core/directives/queryeditor/templates/query-sample.html +1 -1
  149. package/dist/js/angular/core/directives/rdfresourcesearch/templates/rdfResourceSearchTemplate.html +3 -3
  150. package/dist/js/angular/core/templates/core-errors.html +1 -1
  151. package/dist/js/angular/core/templates/inactive-plugin-warning-page.html +1 -1
  152. package/dist/js/angular/core/templates/search-resource-input.html +3 -3
  153. package/dist/js/angular/externalsync/templates/deleteConnector.html +1 -1
  154. package/dist/js/angular/graphexplore/templates/modal/save-graph.html +1 -1
  155. package/dist/js/angular/graphexplore/templates/rdfsCommentLabelTemplate.html +2 -2
  156. package/dist/js/angular/graphexplore/templates/searchIconInputTemplate.html +3 -3
  157. package/dist/js/angular/import/templates/filesTable.html +12 -12
  158. package/dist/js/angular/import/templates/settingsModal.html +19 -19
  159. package/dist/js/angular/import/templates/textSnippet.html +4 -4
  160. package/dist/js/angular/import/templates/urlImport.html +4 -4
  161. package/dist/js/angular/repositories/templates/fedx-repo.html +15 -15
  162. package/dist/js/angular/repositories/templates/ontop-repo.html +8 -8
  163. package/dist/js/angular/security/templates/modal/default-authorities.html +2 -2
  164. package/dist/js/angular/security/templates/user.html +13 -13
  165. package/dist/js/angular/security/templates/users.html +8 -8
  166. package/dist/js/angular/settings/modal/location-settings.html +1 -1
  167. package/dist/js/angular/templates/modal/add-location.html +3 -3
  168. package/dist/js/angular/templates/modal/edit-location.html +3 -3
  169. package/dist/js/angular/templates/modal/editRepoFile.html +1 -1
  170. package/dist/js/angular/templates/modal/upload-repository-config.html +2 -2
  171. package/dist/pages/autocomplete.html +8 -8
  172. package/dist/pages/choose-repository-type.html +1 -1
  173. package/dist/pages/cluster-management/clusterInfo.html +15 -15
  174. package/dist/pages/connectorsInfo.html +5 -5
  175. package/dist/pages/create-index.html +15 -15
  176. package/dist/pages/createConnector.html +23 -23
  177. package/dist/pages/dependencies.html +12 -12
  178. package/dist/pages/domainRangeInfo.html +6 -6
  179. package/dist/pages/edit.html +7 -7
  180. package/dist/pages/explore.html +10 -10
  181. package/dist/pages/export.html +14 -14
  182. package/dist/pages/find.html +2 -2
  183. package/dist/pages/graph-config/saveGraphConfig.html +22 -22
  184. package/dist/pages/graphs-visualizations.html +47 -47
  185. package/dist/pages/guides.html +6 -6
  186. package/dist/pages/home.html +10 -10
  187. package/dist/pages/import.html +7 -7
  188. package/dist/pages/info.html +16 -16
  189. package/dist/pages/jdbc-create.html +18 -18
  190. package/dist/pages/jdbc.html +3 -3
  191. package/dist/pages/licenseInfo.html +1 -1
  192. package/dist/pages/login.html +2 -2
  193. package/dist/pages/monitor/queries.html +5 -5
  194. package/dist/pages/monitor/resources.html +13 -13
  195. package/dist/pages/namespaces.html +14 -14
  196. package/dist/pages/plugins.html +4 -4
  197. package/dist/pages/rdfClassHierarchyInfo.html +16 -16
  198. package/dist/pages/rdfrank.html +17 -17
  199. package/dist/pages/registerLicenseInfo.html +3 -3
  200. package/dist/pages/repositories.html +20 -20
  201. package/dist/pages/repository.html +37 -37
  202. package/dist/pages/similarity-indexes.html +15 -15
  203. package/dist/pages/sparql-template-create.html +9 -9
  204. package/dist/pages/sparql-templates.html +3 -3
  205. package/dist/pages/sparql.html +8 -8
  206. package/dist/pages/webapi.html +3 -3
  207. package/dist/res/swagger/index.html +27 -27
  208. package/package.json +2 -2
  209. package/dist/10.973caeed3c05ef2cfd1c.bundle.js +0 -2
  210. package/dist/10.973caeed3c05ef2cfd1c.bundle.js.map +0 -1
  211. package/dist/102.93af0905ca1ff2be2dbf.bundle.js +0 -2
  212. package/dist/102.93af0905ca1ff2be2dbf.bundle.js.map +0 -1
  213. package/dist/104.b82229ea4c12400f6f5d.bundle.js +0 -2
  214. package/dist/104.b82229ea4c12400f6f5d.bundle.js.map +0 -1
  215. package/dist/107.37693ea0237c39fda863.bundle.js.map +0 -1
  216. package/dist/108.3c3f9c242e6a3e18fff5.bundle.js.map +0 -1
  217. package/dist/11.f4c5533cd200c8568ff6.bundle.js.map +0 -1
  218. package/dist/124.6a31dfbe4ac2f9064a29.bundle.js.map +0 -1
  219. package/dist/126.48e00b0525b3ef8efbe8.bundle.js.map +0 -1
  220. package/dist/140.8f22a20a0689c072368f.bundle.js +0 -2
  221. package/dist/140.8f22a20a0689c072368f.bundle.js.map +0 -1
  222. package/dist/141.6ffbf225a69b845e5e07.bundle.js +0 -2
  223. package/dist/141.6ffbf225a69b845e5e07.bundle.js.map +0 -1
  224. package/dist/142.355ab1a9716ce7315ad6.bundle.js +0 -2
  225. package/dist/142.355ab1a9716ce7315ad6.bundle.js.map +0 -1
  226. package/dist/143.64b1142c8e48b388717f.bundle.js +0 -2
  227. package/dist/143.64b1142c8e48b388717f.bundle.js.map +0 -1
  228. package/dist/145.9858a584e01b6c01a57c.bundle.js +0 -2
  229. package/dist/145.9858a584e01b6c01a57c.bundle.js.map +0 -1
  230. package/dist/146.15a2396be0b56a454857.bundle.js +0 -2
  231. package/dist/146.15a2396be0b56a454857.bundle.js.map +0 -1
  232. package/dist/147.638cfbfdf711a97e19f1.bundle.js +0 -2
  233. package/dist/147.638cfbfdf711a97e19f1.bundle.js.map +0 -1
  234. package/dist/154.6dadeaa5b9cdab265cb3.bundle.js +0 -2
  235. package/dist/154.6dadeaa5b9cdab265cb3.bundle.js.map +0 -1
  236. package/dist/156.4252f16fc656c91fba0c.bundle.js +0 -2
  237. package/dist/156.4252f16fc656c91fba0c.bundle.js.map +0 -1
  238. package/dist/158.13d4aafb2c7f02af028b.bundle.js +0 -2
  239. package/dist/158.13d4aafb2c7f02af028b.bundle.js.map +0 -1
  240. package/dist/16.61454b9a7360266e544a.bundle.js +0 -3
  241. package/dist/16.61454b9a7360266e544a.bundle.js.map +0 -1
  242. package/dist/160.3b604e0909b8a932d959.bundle.js +0 -2
  243. package/dist/160.3b604e0909b8a932d959.bundle.js.map +0 -1
  244. package/dist/161.c72cc3169ea1191e49e8.bundle.js +0 -2
  245. package/dist/161.c72cc3169ea1191e49e8.bundle.js.map +0 -1
  246. package/dist/164.a03f4da227b54ad97c18.bundle.js +0 -2
  247. package/dist/164.a03f4da227b54ad97c18.bundle.js.map +0 -1
  248. package/dist/166.b4fd0bd3df4985d3e74a.bundle.js +0 -2
  249. package/dist/166.b4fd0bd3df4985d3e74a.bundle.js.map +0 -1
  250. package/dist/167.0e3773d3b16936a2a72a.bundle.js +0 -2
  251. package/dist/167.0e3773d3b16936a2a72a.bundle.js.map +0 -1
  252. package/dist/169.a43d9e76a361ad2cabb5.bundle.js +0 -2
  253. package/dist/169.a43d9e76a361ad2cabb5.bundle.js.map +0 -1
  254. package/dist/17.545bc1027c226502e3b8.bundle.js +0 -2
  255. package/dist/17.545bc1027c226502e3b8.bundle.js.map +0 -1
  256. package/dist/171.584fa763e2fe9a4d34f4.bundle.js +0 -2
  257. package/dist/171.584fa763e2fe9a4d34f4.bundle.js.map +0 -1
  258. package/dist/172.67ba9379059ac602d509.bundle.js +0 -2
  259. package/dist/172.67ba9379059ac602d509.bundle.js.map +0 -1
  260. package/dist/173.fd7ee2abdf75fc0ed3a3.bundle.js +0 -2
  261. package/dist/173.fd7ee2abdf75fc0ed3a3.bundle.js.map +0 -1
  262. package/dist/175.341ea8612291026d2630.bundle.js +0 -2
  263. package/dist/175.341ea8612291026d2630.bundle.js.map +0 -1
  264. package/dist/176.7cdff30cd9372f424163.bundle.js +0 -2
  265. package/dist/176.7cdff30cd9372f424163.bundle.js.map +0 -1
  266. package/dist/177.57ac19484b6430c0f242.bundle.js +0 -2
  267. package/dist/177.57ac19484b6430c0f242.bundle.js.map +0 -1
  268. package/dist/180.f19924b6b550773f9163.bundle.js +0 -2
  269. package/dist/180.f19924b6b550773f9163.bundle.js.map +0 -1
  270. package/dist/181.db05a22a05f9c928b08c.bundle.js +0 -2
  271. package/dist/181.db05a22a05f9c928b08c.bundle.js.map +0 -1
  272. package/dist/182.1b40c7e8a8424e87da32.bundle.js +0 -2
  273. package/dist/183.1ed57fba52ab51806ec3.bundle.js +0 -2
  274. package/dist/183.1ed57fba52ab51806ec3.bundle.js.map +0 -1
  275. package/dist/21.ea150df1291050bc1c4a.bundle.js +0 -2
  276. package/dist/21.ea150df1291050bc1c4a.bundle.js.map +0 -1
  277. package/dist/23.b945d0565ded44df49c5.bundle.js.map +0 -1
  278. package/dist/24.77907cc1d707305663c9.bundle.js +0 -2
  279. package/dist/24.77907cc1d707305663c9.bundle.js.map +0 -1
  280. package/dist/25.9d7a3d8f98840b1fc5da.bundle.js.map +0 -1
  281. package/dist/26.a15a1adb6b30ab849e62.bundle.js.map +0 -1
  282. package/dist/27.83b24ef9ec0fd6964d92.bundle.js.map +0 -1
  283. package/dist/3.7f19eec4e1cff6bb8ff2.bundle.js.map +0 -1
  284. package/dist/30.a2596e679fb09411b854.bundle.js.map +0 -1
  285. package/dist/31.fbcd8b1840a84a281e47.bundle.js +0 -2
  286. package/dist/31.fbcd8b1840a84a281e47.bundle.js.map +0 -1
  287. package/dist/35.8be1042671722a19f3b4.bundle.js.map +0 -1
  288. package/dist/36.8d7becdfce12d9a0de33.bundle.js +0 -2
  289. package/dist/36.8d7becdfce12d9a0de33.bundle.js.map +0 -1
  290. package/dist/38.f4b561d7ee5b236ba481.bundle.js.map +0 -1
  291. package/dist/39.68f59c2a9aeb4c4100c9.bundle.js +0 -2
  292. package/dist/39.68f59c2a9aeb4c4100c9.bundle.js.map +0 -1
  293. package/dist/4.186c084105c931abbe1a.bundle.js.map +0 -1
  294. package/dist/42.87fe547d27ce0c30deef.bundle.js +0 -2
  295. package/dist/42.87fe547d27ce0c30deef.bundle.js.map +0 -1
  296. package/dist/43.34060633fa9548ec3437.bundle.js +0 -2
  297. package/dist/43.34060633fa9548ec3437.bundle.js.map +0 -1
  298. package/dist/5.5f48e5c6fc10b52dd415.bundle.js.map +0 -1
  299. package/dist/53.78084dd64a27f7a6d2e8.bundle.js.map +0 -1
  300. package/dist/54.fe5e554af6ba2c5778c1.bundle.js.map +0 -1
  301. package/dist/56.9c6f6ecafc1909c42dda.bundle.js.map +0 -1
  302. package/dist/61.faf4ab26276a053ccac5.bundle.js +0 -2
  303. package/dist/61.faf4ab26276a053ccac5.bundle.js.map +0 -1
  304. package/dist/62.86f5ed4f7b582a8aa17d.bundle.js.map +0 -1
  305. package/dist/7.c7d8fb1dfdb444052435.bundle.js.map +0 -1
  306. package/dist/71.4dbbc366049697f736c5.bundle.js.map +0 -1
  307. package/dist/9.7bdbee8225f687ec81bc.bundle.js +0 -2
  308. package/dist/9.7bdbee8225f687ec81bc.bundle.js.map +0 -1
  309. package/dist/97.e88574ad257bd44724c3.bundle.js +0 -2
  310. package/dist/97.e88574ad257bd44724c3.bundle.js.map +0 -1
  311. package/dist/bundle.f540ee201846422b1cb9.bundle.js +0 -92
  312. package/dist/bundle.f540ee201846422b1cb9.bundle.js.map +0 -1
@@ -1,11 +1,11 @@
1
- <link href="css/similarity.css?v=2.2.2-TR2" rel='stylesheet' type='text/css'/>
1
+ <link href="css/similarity.css?v=2.3.0-TR1" rel='stylesheet' type='text/css'/>
2
2
 
3
3
  <div class="container-fluid">
4
4
 
5
5
  <h1>
6
6
  {{title}}
7
7
  <span class="btn btn-link"
8
- popover-template="'js/angular/templates/titlePopoverTemplate.html'"
8
+ uib-popover-template="'js/angular/templates/titlePopoverTemplate.html'"
9
9
  popover-trigger="mouseenter"
10
10
  popover-placement="bottom-right"
11
11
  popover-append-to-body="true"><span class="icon-info"></span></span>
@@ -46,29 +46,29 @@
46
46
  <a class="lead index-name" ng-href="{{(index.status == 'BUILT' || index.status == 'REBUILDING' || index.status == 'OUTDATED') ? '#' : ''}}" ng-click="goToSimilarityIndex(index)">{{index.name}}</a>
47
47
  </td>
48
48
  <td>
49
- <span class="tag tag-default" ng-show="index.type == 'text'" tooltip="{{'index.type.tooltip' | translate}}">{{'text.type.index' | translate}}</span>
50
- <span class="tag tag-default" ng-show="index.type == 'predication'" tooltip="{{'index.type.tooltip' | translate}}">{{'predication.type.index' | translate}}</span>
51
- <span class="tag tag-default" ng-show="index.type == 'textLiteral'" tooltip="{{'index.type.tooltip' | translate}}">{{'literal.type.index' | translate}}</span>
49
+ <span class="tag tag-default" ng-show="index.type == 'text'" uib-tooltip="{{'index.type.tooltip' | translate}}">{{'text.type.index' | translate}}</span>
50
+ <span class="tag tag-default" ng-show="index.type == 'predication'" uib-tooltip="{{'index.type.tooltip' | translate}}">{{'predication.type.index' | translate}}</span>
51
+ <span class="tag tag-default" ng-show="index.type == 'textLiteral'" uib-tooltip="{{'index.type.tooltip' | translate}}">{{'literal.type.index' | translate}}</span>
52
52
  </td>
53
53
 
54
54
  <td class="text-xs-right">
55
- <span class="text-muted mr-2" ng-show="index.status == 'OUTDATED'" tooltip="{{'data.changed.tooltip' | translate}}">{{'outdated.status' | translate}}</span>
56
- <span class="text-muted mr-2" ng-show="index.status == 'FAILED'" tooltip="{{'index.building.failed.tooltip' | translate}}">{{'failed.status' | translate}}</span>
57
- <span class="text-muted mr-2" ng-show="index.status == 'INTERRUPTED'" tooltip="{{'index.building.interrupted.tooltip' | translate}}">{{'interrupted.status' | translate}}</span>
58
- <span class="text-muted mr-2" ng-show="index.status == 'OBSOLETE'" tooltip="{{'index.obsolete.tooltip' | translate}}">{{'obsolete.status' | translate}}</span>
55
+ <span class="text-muted mr-2" ng-show="index.status == 'OUTDATED'" uib-tooltip="{{'data.changed.tooltip' | translate}}">{{'outdated.status' | translate}}</span>
56
+ <span class="text-muted mr-2" ng-show="index.status == 'FAILED'" uib-tooltip="{{'index.building.failed.tooltip' | translate}}">{{'failed.status' | translate}}</span>
57
+ <span class="text-muted mr-2" ng-show="index.status == 'INTERRUPTED'" uib-tooltip="{{'index.building.interrupted.tooltip' | translate}}">{{'interrupted.status' | translate}}</span>
58
+ <span class="text-muted mr-2" ng-show="index.status == 'OBSOLETE'" uib-tooltip="{{'index.obsolete.tooltip' | translate}}">{{'obsolete.status' | translate}}</span>
59
59
  <span class="btn btn-link similarity-index-building-loader" ng-show="index.status === 'BUILDING' || index.status === 'REBUILDING' || index.status === 'CREATING'">
60
60
  <em class="icon-reload loader"></em>
61
61
  </span>
62
62
 
63
63
  <span class="btn btn-link view-sparql-query-btn" ng-click="viewCreateQuery(index)"
64
64
  ng-if="index.selectQuery && (index.type == 'text' || index.type == 'predication' || index.type == 'textLiteral')"
65
- tooltip="{{'view.sparql.query.title' | translate}}">
65
+ uib-tooltip="{{'view.sparql.query.title' | translate}}">
66
66
  <em class="icon-sparql"></em>
67
67
  </span>
68
68
  <span class="actions-bar hovered-item">
69
69
  <a class="btn btn-link edit-query-btn"
70
70
  ng-if="canWriteActiveRepo() && index.status != 'BUILDING' && index.status != 'REBUILDING' && index.status != 'CREATING'" href="similarity/index/create?selectQuery={{encodeURIComponent(index.selectQuery)}}&options={{index.options}}&editSearchQuery&name={{index.name}}&infer={{index.infer}}&sameAs={{index.sameAs}}&stopList={{index.stopList}}&type={{index.type}}&analyzer={{index.analyzer}}&searchQuery={{index.searchQuery ? encodeURIComponent(index.searchQuery) : ''}}&analogicalQuery={{index.analogicalQuery ? encodeURIComponent(index.analogicalQuery) : ''}}"
71
- tooltip="{{index.type == 'predication' ? 'edit.search.analogical.query.title'
71
+ uib-tooltip="{{index.type == 'predication' ? 'edit.search.analogical.query.title'
72
72
  : 'edit.search.query.title' | translate}}">
73
73
  <em class="icon-edit"></em>
74
74
  </a>
@@ -76,15 +76,15 @@
76
76
 
77
77
  <a class="btn btn-link clone-index-btn" ng-if="index.selectQuery && (index.type == 'text' || index.type == 'predication' || index.type == 'textLiteral')"
78
78
  href="similarity/index/create?selectQuery={{encodeURIComponent(index.selectQuery)}}&options={{index.options}}&name={{index.name}}&infer={{index.infer}}&sameAs={{index.sameAs}}&stopList={{index.stopList}}&type={{index.type}}&analyzer={{index.analyzer}}&searchQuery={{index.searchQuery ? encodeURIComponent(index.searchQuery) : ''}}&analogicalQuery={{index.analogicalQuery ? encodeURIComponent(index.analogicalQuery) : ''}}"
79
- tooltip="{{'create.index.from.existing.tooltip' | translate}}">
79
+ uib-tooltip="{{'create.index.from.existing.tooltip' | translate}}">
80
80
  <em class="icon-copy"></em>
81
81
  </a>
82
82
 
83
83
  <button type="button" ng-if="canWriteActiveRepo() && index.status != 'BUILDING' && index.status != 'REBUILDING' && index.status != 'CREATING' && (index.type == 'text' || index.type == 'predication' || index.type == 'textLiteral')" ng-disabled="!index.selectQuery"
84
- ng-click="rebuildIndex(index)" class="btn btn-link reload-index-btn" tooltip="{{'rebuild.index.tooltip' | translate}}"><span
84
+ ng-click="rebuildIndex(index)" class="btn btn-link reload-index-btn" uib-tooltip="{{'rebuild.index.tooltip' | translate}}"><span
85
85
  class="icon-reload similarity-index-icon-reload"></span></button>
86
86
  <button type="button" ng-if="canWriteActiveRepo() && index.status != 'BUILDING' && index.status != 'REBUILDING' && index.status != 'CREATING'" ng-click="deleteIndex(index)"
87
- class="btn btn-link delete-index-btn" tooltip="{{'delete.index.tooltip' | translate}}"><span class="icon-trash"></span>
87
+ class="btn btn-link delete-index-btn" uib-tooltip="{{'delete.index.tooltip' | translate}}"><span class="icon-trash"></span>
88
88
  </button>
89
89
  </td>
90
90
 
@@ -316,7 +316,7 @@
316
316
 
317
317
  <div class="yasr-container" ng-show="lastSearch">
318
318
  <div id="yasr">
319
- <!--<pagination class="nav navbar-right" ng-show="allResultsCount > pageSize" total-items="allResultsCount" items-per-page="pageSize" ng-model="page" ng-change="changePagination()" direction-links="false" boundary-links="true" max-size="5" rotate="true"></pagination>-->
319
+ <!--<uib-pagination class="nav navbar-right" ng-show="allResultsCount > pageSize" total-items="allResultsCount" items-per-page="pageSize" ng-model="page" ng-change="changePagination()" direction-links="false" boundary-links="true" max-size="5" rotate="true"></pagination>-->
320
320
  <div class="yasr" id="yasr-inner">
321
321
  <div class='yasr_results'></div>
322
322
  </div>
@@ -1,18 +1,18 @@
1
- <link href="css/lib/angular-xeditable/xeditable.min.css?v=2.2.2-TR2" rel="stylesheet">
1
+ <link href="css/lib/angular-xeditable/xeditable.min.css?v=2.3.0-TR1" rel="stylesheet">
2
2
 
3
- <link href="css/lib/yasqe.min.css?v=2.2.2-TR2" rel="stylesheet"/>
3
+ <link href="css/lib/yasqe.min.css?v=2.3.0-TR1" rel="stylesheet"/>
4
4
 
5
- <link href="css/new-sparql.css?v=2.2.2-TR2" rel="stylesheet"/>
5
+ <link href="css/new-sparql.css?v=2.3.0-TR1" rel="stylesheet"/>
6
6
 
7
- <link href="css/graphs-config.css?v=2.2.2-TR2" rel="stylesheet"/>
7
+ <link href="css/graphs-config.css?v=2.3.0-TR1" rel="stylesheet"/>
8
8
 
9
- <link href="css/jdbc.css?v=2.2.2-TR2" rel="stylesheet"/>
9
+ <link href="css/jdbc.css?v=2.3.0-TR1" rel="stylesheet"/>
10
10
 
11
11
  <div class="container-fluid fit-content-on-mobile">
12
12
  <h1>
13
13
  {{title}}
14
14
  <span class="btn btn-link"
15
- popover-template="'js/angular/templates/titlePopoverTemplate.html'"
15
+ uib-popover-template="'js/angular/templates/titlePopoverTemplate.html'"
16
16
  popover-trigger="mouseenter"
17
17
  popover-placement="bottom-right"
18
18
  popover-append-to-body="true"><span class="icon-info"></span></span>
@@ -47,21 +47,21 @@
47
47
  </div>
48
48
  </div>
49
49
  <button class="btn btn-lg btn-primary save-query-btn" ng-click="saveTemplate()"
50
- popover="{{'save.sparql.template.tooltip' | translate}}"
50
+ uib-popover="{{'save.sparql.template.tooltip' | translate}}"
51
51
  popover-placement="top"
52
52
  popover-trigger="mouseenter"
53
53
  ng-if="canWriteActiveRepo()">
54
54
  {{'common.save.btn' | translate}}
55
55
  </button>
56
56
  <a ng-href="sparql-templates" class="btn btn-lg btn-secondary cancel-query-btn"
57
- popover="{{'cancel.sparql.template.creation.tooltip' | translate}}"
57
+ uib-popover="{{'cancel.sparql.template.creation.tooltip' | translate}}"
58
58
  popover-placement="top"
59
59
  popover-trigger="mouseenter"
60
60
  ng-if="canWriteActiveRepo()">
61
61
  {{'common.cancel.btn' | translate}}
62
62
  </a>
63
63
  <a ng-href="sparql-templates" class="btn btn-lg btn-secondary"
64
- popover="{{'cancel.sparql.template.creation.tooltip' | translate}}"
64
+ uib-popover="{{'cancel.sparql.template.creation.tooltip' | translate}}"
65
65
  popover-placement="top"
66
66
  popover-trigger="mouseenter"
67
67
  ng-if="!canWriteActiveRepo()">
@@ -2,7 +2,7 @@
2
2
  <h1>
3
3
  {{title}}
4
4
  <span class="btn btn-link"
5
- popover-template="'js/angular/templates/titlePopoverTemplate.html'"
5
+ uib-popover-template="'js/angular/templates/titlePopoverTemplate.html'"
6
6
  popover-trigger="mouseenter"
7
7
  popover-placement="bottom-right"
8
8
  popover-append-to-body="true"><span class="icon-info"></span></span>
@@ -40,12 +40,12 @@
40
40
  <span class="actions-bar hovered-item">
41
41
  <a class="btn btn-link edit-query-btn"
42
42
  ng-if="canWriteActiveRepo()" href="sparql-template/create?templateID={{templateID}}"
43
- tooltip="{{'edit.sparql.template.tooltip' | translate}}">
43
+ uib-tooltip="{{'edit.sparql.template.tooltip' | translate}}">
44
44
  <em class="icon-edit"></em>
45
45
  </a>
46
46
  </span>
47
47
  <button type="button" ng-if="canWriteActiveRepo()" ng-click="deleteTemplate(templateID)"
48
- class="btn btn-link delete-configuration-btn" tooltip="{{'delete.sparql.template.tooltip' | translate}}"><span
48
+ class="btn btn-link delete-configuration-btn" uib-tooltip="{{'delete.sparql.template.tooltip' | translate}}"><span
49
49
  class="icon-trash"></span>
50
50
  </button>
51
51
  </td>
@@ -1,25 +1,25 @@
1
- <link href="css/lib/angular-xeditable/xeditable.min.css?v=2.2.2-TR2" rel="stylesheet">
1
+ <link href="css/lib/angular-xeditable/xeditable.min.css?v=2.3.0-TR1" rel="stylesheet">
2
2
 
3
- <link href="css/lib/yasqe.min.css?v=2.2.2-TR2" rel="stylesheet"/>
3
+ <link href="css/lib/yasqe.min.css?v=2.3.0-TR1" rel="stylesheet"/>
4
4
 
5
- <link href="css/new-sparql.css?v=2.2.2-TR2" rel="stylesheet"/>
5
+ <link href="css/new-sparql.css?v=2.3.0-TR1" rel="stylesheet"/>
6
6
  <div id="wb-sparql">
7
7
 
8
8
  <div ng-show="getActiveRepositoryNoError()" class="pull-right mt-1">
9
9
  <div id="hideEditor" class="btn-group btn-group-sm" ng-click="showHideEditor()">
10
- <button class="btn btn-secondary btn-sm editor-only-btn" ng-model="viewMode" btn-radio="'yasr'" uncheckable>
10
+ <button class="btn btn-secondary btn-sm editor-only-btn" ng-model="viewMode" uib-btn-radio="'yasr'" uncheckable>
11
11
  {{'sparql.editor.only' | translate}}
12
12
  </button>
13
- <button class="btn btn-secondary btn-sm editor-and-results-btn" ng-model="viewMode" btn-radio="'none'" uncheckable>
13
+ <button class="btn btn-secondary btn-sm editor-and-results-btn" ng-model="viewMode" uib-btn-radio="'none'" uncheckable>
14
14
  {{'sparql.editor.and.results' | translate}}
15
15
  </button>
16
- <button class="btn btn-secondary btn-sm results-only-btn" ng-model="viewMode" btn-radio="'editor'" uncheckable>
16
+ <button class="btn btn-secondary btn-sm results-only-btn" ng-model="viewMode" uib-btn-radio="'editor'" uncheckable>
17
17
  {{'sparql.results.only' | translate}}
18
18
  </button>
19
19
 
20
20
  <button class="btn btn-link btn-sm p-0 ml-1 toggle-horizontal-view-btn"
21
21
  ng-click="changeViewMode(currentQuery.id)"
22
- tooltip="{{'switch.to' | translate}} {{orientationViewMode ? 'vertical' : 'horizontal' | translate}} {{'view' | translate}}"
22
+ uib-tooltip="{{'switch.to' | translate}} {{orientationViewMode ? 'vertical' : 'horizontal' | translate}} {{'view' | translate}}"
23
23
  tooltip-placement="left">
24
24
  <span class="icon-columns icon-lg m-0"
25
25
  ng-class="orientationViewMode ? 'icon-rotate-90' : 'icon-rotate-270'"></span>
@@ -30,7 +30,7 @@
30
30
  <h1 id="sparql-query-update-title-label">
31
31
  {{title}}
32
32
  <span class="btn btn-link"
33
- popover-template="'js/angular/templates/titlePopoverTemplate.html'"
33
+ uib-popover-template="'js/angular/templates/titlePopoverTemplate.html'"
34
34
  popover-trigger="mouseenter"
35
35
  popover-placement="bottom-right"
36
36
  popover-append-to-body="true"><span class="icon-info"></span></span>
@@ -1,11 +1,11 @@
1
1
 
2
- <link href='css/lib/swagger-ui.min.css?v=2.2.2-TR2' rel='stylesheet' type='text/css'/>
3
- <link href='css/swagger.custom.css?v=2.2.2-TR2' rel='stylesheet' type='text/css'/>
2
+ <link href='css/lib/swagger-ui.min.css?v=2.3.0-TR1' rel='stylesheet' type='text/css'/>
3
+ <link href='css/swagger.custom.css?v=2.3.0-TR1' rel='stylesheet' type='text/css'/>
4
4
 
5
5
  <h1>
6
6
  {{title}}
7
7
  <span class="btn btn-link"
8
- popover-template="'js/angular/templates/titlePopoverTemplate.html'"
8
+ uib-popover-template="'js/angular/templates/titlePopoverTemplate.html'"
9
9
  popover-trigger="mouseenter"
10
10
  popover-placement="bottom"
11
11
  popover-append-to-body="true"><span class="icon-info"></span></span>
@@ -3,37 +3,37 @@
3
3
  <head>
4
4
  <meta charset="UTF-8">
5
5
  <title>Swagger UI</title>
6
- <link rel="icon" type="image/png" href="images/favicon-32x32.png?v=2.2.2-TR2" sizes="32x32"/>
7
- <link rel="icon" type="image/png" href="images/favicon-16x16.png?v=2.2.2-TR2" sizes="16x16"/>
8
- <link href='../../css/common.css?v=2.2.2-TR2' media='screen' rel='stylesheet' type='text/css'/>
9
- <link href='css/reset.css?v=2.2.2-TR2' media='screen' rel='stylesheet' type='text/css'/>
10
- <link href='css/screen.css?v=2.2.2-TR2' media='screen' rel='stylesheet' type='text/css'/>
11
- <link href='css/onto-theme.css?v=2.2.2-TR2' media='screen' rel='stylesheet' type='text/css'/>
12
- <link href='css/reset.css?v=2.2.2-TR2' media='print' rel='stylesheet' type='text/css'/>
13
- <link href='css/print.css?v=2.2.2-TR2' media='print' rel='stylesheet' type='text/css'/>
14
- <link href='css/onto-theme.css?v=2.2.2-TR2' media='print' rel='stylesheet' type='text/css'/>
6
+ <link rel="icon" type="image/png" href="images/favicon-32x32.png?v=2.3.0-TR1" sizes="32x32"/>
7
+ <link rel="icon" type="image/png" href="images/favicon-16x16.png?v=2.3.0-TR1" sizes="16x16"/>
8
+ <link href='../../css/common.css?v=2.3.0-TR1' media='screen' rel='stylesheet' type='text/css'/>
9
+ <link href='css/reset.css?v=2.3.0-TR1' media='screen' rel='stylesheet' type='text/css'/>
10
+ <link href='css/screen.css?v=2.3.0-TR1' media='screen' rel='stylesheet' type='text/css'/>
11
+ <link href='css/onto-theme.css?v=2.3.0-TR1' media='screen' rel='stylesheet' type='text/css'/>
12
+ <link href='css/reset.css?v=2.3.0-TR1' media='print' rel='stylesheet' type='text/css'/>
13
+ <link href='css/print.css?v=2.3.0-TR1' media='print' rel='stylesheet' type='text/css'/>
14
+ <link href='css/onto-theme.css?v=2.3.0-TR1' media='print' rel='stylesheet' type='text/css'/>
15
15
 
16
- <script src='lib/object-assign-pollyfill.js?v=2.2.2-TR2' type='text/javascript'></script>
17
- <script src='lib/jquery-3.4.1.min.js?v=2.2.2-TR2' type='text/javascript'></script>
18
- <script src='lib/jquery.slideto.min.js?v=2.2.2-TR2' type='text/javascript'></script>
19
- <script src='lib/jquery.wiggle.min.js?v=2.2.2-TR2' type='text/javascript'></script>
16
+ <script src='lib/object-assign-pollyfill.js?v=2.3.0-TR1' type='text/javascript'></script>
17
+ <script src='lib/jquery-3.4.1.min.js?v=2.3.0-TR1' type='text/javascript'></script>
18
+ <script src='lib/jquery.slideto.min.js?v=2.3.0-TR1' type='text/javascript'></script>
19
+ <script src='lib/jquery.wiggle.min.js?v=2.3.0-TR1' type='text/javascript'></script>
20
20
 
21
- <script src="lib/jquery-migrate-1.4.1.min.js?v=2.2.2-TR2"></script>
22
- <script src='lib/jquery.ba-bbq.min.js?v=2.2.2-TR2' type='text/javascript'></script>
23
- <script src='lib/handlebars.min-v4.7.3.js?v=2.2.2-TR2' type='text/javascript'></script>
24
- <script src='lib/lodash.min.js?v=2.2.2-TR2' type='text/javascript'></script>
25
- <script src='lib/backbone-min.js?v=2.2.2-TR2' type='text/javascript'></script>
26
- <script src='swagger-ui.js?v=2.2.2-TR2' type='text/javascript'></script>
27
- <script src='lib/highlight.9.1.0.pack.js?v=2.2.2-TR2' type='text/javascript'></script>
28
- <script src='lib/highlight.9.1.0.pack_extended.js?v=2.2.2-TR2' type='text/javascript'></script>
29
- <script src='lib/jsoneditor.min.js?v=2.2.2-TR2' type='text/javascript'></script>
30
- <script src='lib/marked.js?v=2.2.2-TR2' type='text/javascript'></script>
31
- <script src='lib/swagger-oauth.js?v=2.2.2-TR2' type='text/javascript'></script>
21
+ <script src="lib/jquery-migrate-1.4.1.min.js?v=2.3.0-TR1"></script>
22
+ <script src='lib/jquery.ba-bbq.min.js?v=2.3.0-TR1' type='text/javascript'></script>
23
+ <script src='lib/handlebars.min-v4.7.3.js?v=2.3.0-TR1' type='text/javascript'></script>
24
+ <script src='lib/lodash.min.js?v=2.3.0-TR1' type='text/javascript'></script>
25
+ <script src='lib/backbone-min.js?v=2.3.0-TR1' type='text/javascript'></script>
26
+ <script src='swagger-ui.js?v=2.3.0-TR1' type='text/javascript'></script>
27
+ <script src='lib/highlight.9.1.0.pack.js?v=2.3.0-TR1' type='text/javascript'></script>
28
+ <script src='lib/highlight.9.1.0.pack_extended.js?v=2.3.0-TR1' type='text/javascript'></script>
29
+ <script src='lib/jsoneditor.min.js?v=2.3.0-TR1' type='text/javascript'></script>
30
+ <script src='lib/marked.js?v=2.3.0-TR1' type='text/javascript'></script>
31
+ <script src='lib/swagger-oauth.js?v=2.3.0-TR1' type='text/javascript'></script>
32
32
 
33
33
  <!-- Some basic translations -->
34
- <!-- <script src='lang/translator.js?v=2.2.2-TR2' type='text/javascript'></script> -->
35
- <!-- <script src='lang/ru.js?v=2.2.2-TR2' type='text/javascript'></script> -->
36
- <!-- <script src='lang/en.js?v=2.2.2-TR2' type='text/javascript'></script> -->
34
+ <!-- <script src='lang/translator.js?v=2.3.0-TR1' type='text/javascript'></script> -->
35
+ <!-- <script src='lang/ru.js?v=2.3.0-TR1' type='text/javascript'></script> -->
36
+ <!-- <script src='lang/en.js?v=2.3.0-TR1' type='text/javascript'></script> -->
37
37
 
38
38
  <script type="text/javascript">
39
39
  $(function () {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "graphdb-workbench",
3
- "version": "2.2.2-TR2",
3
+ "version": "2.3.0-TR1",
4
4
  "description": "The web application for GraphDB APIs",
5
5
  "scripts": {
6
6
  "build": "webpack --config=webpack.config.prod.js",
@@ -90,7 +90,7 @@
90
90
  "angular-toastr": "^2.1.1",
91
91
  "angular-translate": "^2.18.3",
92
92
  "angular-translate-loader-static-files": "^2.18.3",
93
- "angular-ui-bootstrap": "0.13.0",
93
+ "angular-ui-bootstrap": "0.14.3",
94
94
  "angular-ui-scroll": "^1.7.6",
95
95
  "angular-xeditable": "^0.10.0",
96
96
  "angularjs-slider": "^7.0.0",
@@ -1,2 +0,0 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[10],{109:function(e,r,t){"use strict";t.r(r);t(4),t(12),t(23),t(24);var s=t(2);const n=function(e){return e.location?`${e.id}@${e.location}`:e.id},o=angular.module("graphdb.framework.security.controllers",["ngCookies","ui.bootstrap","graphdb.framework.core.services.jwtauth","graphdb.framework.core.services.openIDService","graphdb.framework.rest.security.service","graphdb.framework.utils.localstorageadapter","toastr"]),i=function(e){let r=s.UserType.USER;const t={READ_REPO:{},WRITE_REPO:{}},n={};for(let o=0;o<e.length;o++){const i=e[o];if(i===s.UserRole.ROLE_ADMIN)r=s.UserType.ADMIN;else if(i===s.UserRole.ROLE_REPO_MANAGER)r!==s.UserType.ADMIN&&(r=s.UserType.REPO_MANAGER);else if(i===s.UserRole.ROLE_USER)r=s.UserType.USER;else if(0!==i.indexOf("ROLE_")){const e=i.indexOf("_",i.indexOf("_")+1),r=i.substr(0,e),s=i.substr(e+1);t[r][s]=!0,n[s]=n[s]||{},"READ_REPO"===r?n[s].read=!0:"WRITE_REPO"===r&&(n[s].write=!0)}}return{userType:r,userTypeDescription:s.UserUtils.getUserRoleName(r),grantedAuthorities:t,repositories:n}};o.controller("LoginCtrl",["$scope","$http","toastr","$jwtAuth","$openIDAuth","$location","$rootScope","$translate",function(e,r,t,s,n,o,i,a){e.username="",e.password="",s.reinitializeSecurity(),e.loginWithOpenID=function(){s.loginOpenID()},o.search().noaccess?t.error(a.instant("security.no.rights.config.error"),a.instant("security.login.error")):o.search().expired&&t.error(a.instant("security.auth.token.expired"),a.instant("security.login.error")),e.isGDBLoginEnabled=function(){return s.passwordLoginEnabled},e.isOpenIDEnabled=function(){return s.openIDEnabled},e.login=function(){return r({method:"POST",url:"rest/login",data:{username:e.username,password:e.password}}).success((function(e,r,t){s.authenticate(e,t("Authorization")).then(()=>{i.returnToUrl?o.url(i.returnToUrl):o.path("/")})})).error((function(r,s){if(401===s)t.error(a.instant("security.wrong.credentials"),a.instant("common.error")),e.wrongCredentials=!0,e.username="",e.password="";else{const e=getError(r);t.error(e,s)}}))}}]),o.controller("UsersCtrl",["$scope","$modal","toastr","$window","$jwtAuth","$timeout","ModalService","SecurityRestService","$translate",function(e,r,t,s,o,a,u,c,d){e.loader=!0,e.securityEnabled=function(){return o.isSecurityEnabled()},e.hasExternalAuth=function(){return o.hasExternalAuth()},e.getAuthImplementation=function(){return o.getAuthImplementation()},e.freeAccessEnabled=function(){return o.isFreeAccessEnabled()},e.getUsers=function(){c.getUsers().success((function(r){e.users=r;for(let r=0;r<e.users.length;r++){const t=i(e.users[r].grantedAuthorities);e.users[r].userType=t.userType,e.users[r].userTypeDescription=t.userTypeDescription,e.users[r].repositories=t.repositories}e.loader=!1})).error((function(r){const s=getError(r);t.error(s,d.instant("common.error")),e.loader=!1}))},e.getUsers(),e.$on("repositoryIsSet",(function(){e.getUsers()})),e.toggleSecurity=function(){if(o.toggleSecurity(!o.isSecurityEnabled()),o.isSecurityEnabled()){const r=a((function(){s.location.reload()}),500);e.$on("$destroy",(function(){a.cancel(r)}))}},e.toggleFreeAccess=function(t){!o.isFreeAccessEnabled()||o.isFreeAccessEnabled()&&t?c.getFreeAccess().then((function(s){let i=s.data.authorities,a=s.data.appSettings||{DEFAULT_SAMEAS:!0,DEFAULT_INFERENCE:!0,EXECUTE_COUNT:!0,IGNORE_SHARED_QUERIES:!1,DEFAULT_VIS_GRAPH_SCHEMA:!0};r.open({templateUrl:"js/angular/security/templates/modal/default-authorities.html",controller:"DefaultAuthoritiesCtrl",resolve:{data:function(){return{defaultAuthorities:function(){const r={READ_REPO:{},WRITE_REPO:{}},t=_.mapKeys(e.getRepositories(),(function(e){return n(e)}));return _.each(i,(function(e){0===e.indexOf("WRITE_REPO_")?t.hasOwnProperty(e.substr(11))&&(r.WRITE_REPO[e.substr(11)]=!0):0===e.indexOf("READ_REPO_")&&t.hasOwnProperty(e.substr(10))&&(r.READ_REPO[e.substr(10)]=!0)})),r},appSettings:a}}}}).result.then((function(e){i=e.authorities,a=e.appSettings,o.toggleFreeAccess(t||!o.isFreeAccessEnabled(),i,a,t)}))})):o.toggleFreeAccess(!o.isFreeAccessEnabled(),[])},e.editFreeAccess=function(){e.toggleFreeAccess(!0)},e.removeUser=function(r){u.openSimpleModal({title:d.instant("common.confirm.delete"),message:d.instant("security.confirm.delete.user",{name:r}),warning:!0}).result.then((function(){e.loader=!0,c.deleteUser(r).success((function(){e.getUsers()})).error((function(r){const s=getError(r);t.error(s,d.instant("common.error")),e.loader=!1}))}))},e.encodeURIComponent=function(e){return encodeURIComponent(e)}}]),o.controller("DefaultAuthoritiesCtrl",["$scope","$http","$modalInstance","data","$rootScope",function(e,r,t,s,o){e.grantedAuthorities=s.defaultAuthorities(),e.appSettings=s.appSettings,e.hasActiveLocation=function(){return!_.isEmpty(o.globalLocation)},e.getRepositories=function(){return o.globalRepositories},e.ok=function(){const r=[];e.repositoryCheckError=!0;for(const t in e.grantedAuthorities.WRITE_REPO)e.grantedAuthorities.WRITE_REPO[t]&&(r.push("WRITE_REPO_"+t),r.push("READ_REPO_"+t),e.repositoryCheckError=!1);for(const t in e.grantedAuthorities.READ_REPO)e.grantedAuthorities.READ_REPO[t]&&-1===r.indexOf("READ_REPO_"+t)&&(r.push("READ_REPO_"+t),e.repositoryCheckError=!1);e.repositoryCheckError||t.close({authorities:r,appSettings:e.appSettings})},e.cancel=function(){t.dismiss("cancel")},e.createUniqueKey=function(e){return n(e)}}]),o.controller("CommonUserCtrl",["$rootScope","$scope","$http","toastr","$window","$timeout","$location","$jwtAuth","$translate","passwordPlaceholder",function(e,r,t,o,i,a,u,c,d,p){e.$on("$translateChangeSuccess",(function(){r.passwordPlaceholder=d.instant(p)})),r.isAdmin=function(){return c.hasRole(s.UserRole.ROLE_ADMIN)},r.hasExternalAuth=function(){return c.hasExternalAuth()},r.hasEditRestrictions=function(){return r.user&&r.user.username===s.UserType.ADMIN},r.isOverrideAuth=function(){return c.isDefaultAuthEnabled()},r.setGrantedAuthorities=function(){!function(e){function r(){for(let r=0;r<arguments.length;r++){const t=arguments[r];_.indexOf(e.user.grantedAuthorities,t)<0&&e.user.grantedAuthorities.push(t)}}if(e.user.grantedAuthorities=[],e.repositoryCheckError=!0,e.userType===s.UserType.ADMIN)e.repositoryCheckError=!1,r(s.UserRole.ROLE_ADMIN);else if(e.userType===s.UserType.REPO_MANAGER)e.repositoryCheckError=!1,r(s.UserRole.ROLE_REPO_MANAGER);else{r(s.UserRole.ROLE_USER);for(const t in e.grantedAuthorities.WRITE_REPO)e.grantedAuthorities.WRITE_REPO[t]&&(e.repositoryCheckError=!1,r("WRITE_REPO_"+t,"READ_REPO_"+t));for(const t in e.grantedAuthorities.READ_REPO)e.grantedAuthorities.READ_REPO[t]&&(e.repositoryCheckError=!1,r("READ_REPO_"+t))}}(r)},r.hasReadPermission=function(e){const t=n(e);return r.userType===s.UserType.ADMIN||r.userType===s.UserType.REPO_MANAGER||"SYSTEM"!==e.id&&(r.grantedAuthorities.READ_REPO["*"]||r.grantedAuthorities.WRITE_REPO["*"])||r.grantedAuthorities.READ_REPO[t]||r.grantedAuthorities.WRITE_REPO[t]},r.hasWritePermission=function(e){const t=n(e);return r.userType===s.UserType.ADMIN||r.userType===s.UserType.REPO_MANAGER||"SYSTEM"!==e.id&&r.grantedAuthorities.WRITE_REPO["*"]||r.grantedAuthorities.WRITE_REPO[t]},r.readCheckDisabled=function(e){return r.hasWritePermission(e)||"SYSTEM"!==e.id&&"*"!==e&&r.grantedAuthorities.READ_REPO["*"]||r.hasEditRestrictions()},r.writeCheckDisabled=function(e){return r.userType===s.UserType.ADMIN||r.userType===s.UserType.REPO_MANAGER||"SYSTEM"!==e.id&&"*"!==e&&r.grantedAuthorities.WRITE_REPO["*"]||r.hasEditRestrictions()},r.createUniqueKey=function(e){return n(e)},r.userType=s.UserType.USER,r.grantedAuthorities={READ_REPO:{},WRITE_REPO:{}},r.validatePassword=function(){return r.noPassword?(r.passwordError="",r.confirmPasswordError="",!0):r.user.password!==r.user.confirmpassword?(r.user.password?(r.passwordError="",r.confirmPasswordError=d.instant("security.confirm.password")):(r.passwordError=d.instant("security.enter.password"),r.confirmPasswordError=""),!1):(r.passwordError="",r.confirmPasswordError="",!0)},r.isLocalAuthentication=function(){return"Local"===c.getAuthImplementation()},r.updateUser=function(){if(!r.validateForm())return!1;r.isLocalAuthentication()&&r.setGrantedAuthorities(),r.repositoryCheckError||r.updateUserHttp()},r.setNoPassword=function(){r.noPassword&&(r.user.password="",r.user.confirmpassword="",r.passwordError="",r.confirmPasswordError="")},r.shouldDisableSameAs=function(){const e=$("#sameAsCheck");return r.user&&!r.user.appSettings.DEFAULT_INFERENCE&&e.prop("checked")&&(e.prop("checked",!1),r.user.appSettings.DEFAULT_SAMEAS=!1),r.user&&!r.user.appSettings.DEFAULT_INFERENCE}}]),o.controller("AddUserCtrl",["$scope","$http","toastr","$window","$timeout","$location","$jwtAuth","$controller","SecurityRestService","ModalService","$translate",function(e,r,t,n,o,i,a,u,c,d,p){angular.extend(this,u("CommonUserCtrl",{$scope:e,passwordPlaceholder:"security.password.placeholder"})),e.mode="add",e.saveButtonText=p.instant("common.create.btn"),e.goBack=function(){const r=o((function(){n.history.back()}),100);e.$on("$destroy",(function(){o.cancel(r)}))},e.pageTitle=p.instant("view.create.user.title"),e.passwordPlaceholder=p.instant("security.password.placeholder"),e.user={username:"",password:"",confirmpassword:"",grantedAuthorities:[],appSettings:{DEFAULT_SAMEAS:!0,DEFAULT_INFERENCE:!0,EXECUTE_COUNT:!0,IGNORE_SHARED_QUERIES:!1,DEFAULT_VIS_GRAPH_SCHEMA:!0}},e.submit=function(){e.noPassword&&e.userType===s.UserType.ADMIN?d.openSimpleModal({title:p.instant("security.create.admin"),message:p.instant("security.admin.login.warning"),warning:!0}).result.then((function(){e.createUser()})):e.createUser()},e.createUserHttp=function(){e.loader=!0,c.createUser({username:e.user.username,pass:e.user.password,appSettings:e.user.appSettings,grantedAuthorities:e.user.grantedAuthorities}).success((function(){t.success(p.instant("security.user.created",{name:e.user.username}));const r=o((function(){e.loader=!1,n.history.back()}),2e3);e.$on("$destroy",(function(){o.cancel(r)}))})).error((function(r){const s=getError(r);e.loader=!1,t.error(s,p.instant("common.error"))}))},e.createUser=function(){e.validateForm()&&(e.setGrantedAuthorities(),e.repositoryCheckError||e.createUserHttp())},e.validateForm=function(){let r=!0;return e.user.username?e.usernameError="":(e.usernameError=p.instant("security.enter.username"),r=!1),e.noPassword?(e.passwordError="",e.confirmPasswordError=""):(e.user.password?e.passwordError="":(e.passwordError=p.instant("security.enter.password"),r=!1),e.user.confirmpassword&&e.user.password===e.user.confirmpassword?e.confirmPasswordError="":(e.confirmPasswordError=p.instant("security.confirm.password"),r=!1)),r}}]),o.controller("EditUserCtrl",["$scope","$http","toastr","$window","$routeParams","$timeout","$location","$jwtAuth","$controller","SecurityRestService","ModalService","$translate",function(e,r,t,n,o,a,u,c,d,p,l,E){angular.extend(this,d("CommonUserCtrl",{$scope:e,passwordPlaceholder:"security.new.password"})),e.mode="edit",e.saveButtonText=E.instant("common.save.btn"),e.goBack=function(){const r=a((function(){n.history.back()}),100);e.$on("$destroy",(function(){a.cancel(r)}))},e.params=o,e.pageTitle=E.instant("view.edit.user.title",{userId:e.params.userId}),e.passwordPlaceholder=E.instant("security.new.password"),e.userType=s.UserType.USER;const g={DEFAULT_SAMEAS:!0,DEFAULT_INFERENCE:!0,EXECUTE_COUNT:!0,IGNORE_SHARED_QUERIES:!1,DEFAULT_VIS_GRAPH_SCHEMA:!0};c.hasRole(s.UserRole.ROLE_ADMIN)||u.url("settings"),e.getUserData=function(){p.getUser(e.params.userId).success((function(r){e.userData=r,e.user={username:e.userData.username},e.user.password="",e.user.confirmpassword="",e.user.external=e.userData.external,e.user.appSettings=r.appSettings||g,e.userType=s.UserType.USER;const t=i(r.grantedAuthorities);e.userType=t.userType,e.grantedAuthorities=t.grantedAuthorities})).error((function(e){const r=getError(e);t.error(r,E.instant("common.error"))}))},e.getUserData(),e.submit=function(){e.noPassword&&e.userType===s.UserType.ADMIN?l.openSimpleModal({title:E.instant("security.save.admin.settings"),message:E.instant("security.admin.pass.unset"),warning:!0}).result.then((function(){e.updateUser()})):e.updateUser()},e.updateUserHttp=function(){e.loader=!0,p.updateUser({username:e.user.username,pass:e.noPassword?"":e.user.password||void 0,appSettings:e.user.appSettings,grantedAuthorities:e.user.grantedAuthorities}).success((function(){t.success(E.instant("security.user.updated",{name:e.user.username}));const r=a((function(){e.loader=!1,n.history.back()}),2e3);e.$on("$destroy",(function(){a.cancel(r)})),c.getPrincipal().then(r=>{e.user.username===r.username&&(r.appSettings=e.user.appSettings)})})).error((function(r){const s=getError(r);e.loader=!1,t.error(s,E.instant("common.error"))}))},e.validateForm=function(){return e.validatePassword()}}]),o.controller("RolesMappingController",["$scope","toastr","SecurityRestService","$translate",function(e,r,t,s){e.debugMapping=function(e,r){const s=r.split(":");t.getRolesMapping({role:e,method:s[1],mapping:s[0]})};e.$on("repositoryIsSet",(function(){t.getRoles().success((function(r){e.roleMappings=r,e.roles=_.keys(e.roleMappings),e.mappings=_.keys(e.roleMappings[e.roles[0]]);const t=_.map(e.roles,(function(r){return[r,_.filter(e.roleMappings[r]).length]}));e.roles=_.reverse(_.map(_.orderBy(t,(function(e){return e[1]})),(function(e){return e[0]})))})).error((function(t){const n=getError(t);e.loader=!1,r.error(n,s.instant("common.error"))}))}))}]),o.controller("ChangeUserPasswordSettingsCtrl",["$scope","toastr","$window","$timeout","$jwtAuth","$rootScope","$controller","SecurityRestService","ModalService","$translate","LocalStorageAdapter","LSKeys","$q",function(e,r,t,n,o,a,u,c,d,p,l,E,g){angular.extend(this,u("CommonUserCtrl",{$scope:e,passwordPlaceholder:"security.new.password"})),e.mode="settings",e.hasEditRestrictions=function(){return!0},e.saveButtonText=p.instant("common.save.btn"),e.goBack=function(){const r=n((function(){t.history.back()}),100);e.$on("$destroy",(function(){n.cancel(r)}))},e.getPrincipal=function(){return o.getPrincipal().then(r=>{e.currentUserData=angular.copy(r)})},e.getPrincipal().then(()=>{e.redirectAdmin(),h(e)}),e.showWorkbenchSettings=!0,e.updateCurrentUserData=function(){g.when(o.getPrincipal()).then(r=>_.assign(r,e.userData))},e.redirectAdmin=function(){e.currentUserData||a.redirectToLogin()},e.pageTitle=p.instant("view.settings.title"),e.passwordPlaceholder=p.instant("security.new.password"),e.grantedAuthorities={READ_REPO:{},WRITE_REPO:{}};const h=function(r){r.userData=angular.copy(r.currentUserData),r.user={username:r.userData.username},r.user.password="",r.user.confirmpassword="",r.user.external=r.userData.external,r.user.appSettings=r.userData.appSettings,void 0===r.user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA&&(r.user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA=!0);const t=i(r.userData.authorities);e.userType=t.userType,e.grantedAuthorities=t.grantedAuthorities};e.loader=!1,e.submit=function(){e.noPassword&&e.userType===s.UserType.ADMIN?d.openSimpleModal({title:p.instant("security.save.admin.settings"),message:p.instant("security.admin.pass.unset"),warning:!0}).result.then((function(){e.updateUser()})):e.updateUser()},e.updateUserHttp=function(){e.loader=!0,c.updateUserData({username:e.user.username,pass:e.noPassword?"":e.user.password||void 0,appSettings:e.user.appSettings}).success((function(){e.updateCurrentUserData(),r.success(p.instant("security.user.updated",{name:e.user.username}));const s=n((function(){e.loader=!1,t.history.back()}),2e3);l.set(E.WORKBENCH_SETTINGS,e.workbenchSettings),e.$on("$destroy",(function(){n.cancel(s)}))})).error((function(t){const s=getError(t);e.loader=!1,r.error(s,p.instant("common.error"))}))},e.updateUser=function(){if(!e.validateForm())return!1;e.updateUserHttp()},e.validateForm=function(){return e.validatePassword()},e.setWorkbenchTheme=function(){const r=document.querySelector(":root");"dark"===e.workbenchSettings.theme?r.classList.add("dark"):r.classList.remove("dark")},e.workbenchSettings=l.get(E.WORKBENCH_SETTINGS),e.workbenchSettings||(e.workbenchSettings={theme:"light"}),e.setWorkbenchTheme(),e.$on("$destroy",(function(){const e=l.get(E.WORKBENCH_SETTINGS),r=document.querySelector(":root");e&&"dark"===e.theme?r.classList.add("dark"):r.classList.remove("dark")}))}]),o.controller("DeleteUserCtrl",["$scope","$modalInstance","username",function(e,r,t){e.username=t,e.ok=function(){r.close()},e.cancel=function(){r.dismiss("cancel")}}])}}]);
2
- //# sourceMappingURL=10.973caeed3c05ef2cfd1c.bundle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["webpack:///./src/js/angular/security/controllers.js"],"names":["createUniqueKey","repository","location","id","securityCtrl","angular","module","parseAuthorities","authorities","userType","USER","grantedAuthorities","repositories","i","length","role","ROLE_ADMIN","ADMIN","ROLE_REPO_MANAGER","REPO_MANAGER","ROLE_USER","indexOf","index","op","substr","repo","read","write","userTypeDescription","getUserRoleName","controller","$scope","$http","toastr","$jwtAuth","$openIDAuth","$location","$rootScope","$translate","username","password","reinitializeSecurity","loginWithOpenID","loginOpenID","search","noaccess","error","instant","expired","isGDBLoginEnabled","passwordLoginEnabled","isOpenIDEnabled","openIDEnabled","login","method","url","data","success","status","headers","authenticate","then","returnToUrl","path","wrongCredentials","msg","getError","$modal","$window","$timeout","ModalService","SecurityRestService","loader","securityEnabled","isSecurityEnabled","hasExternalAuth","getAuthImplementation","freeAccessEnabled","isFreeAccessEnabled","getUsers","users","pa","$on","toggleSecurity","timer","reload","cancel","toggleFreeAccess","updateFreeAccess","getFreeAccess","res","appSettings","open","templateUrl","resolve","defaultAuthorities","repoIds","_","mapKeys","getRepositories","r","each","a","hasOwnProperty","result","editFreeAccess","removeUser","openSimpleModal","title","message","name","warning","deleteUser","encodeURIComponent","$modalInstance","hasActiveLocation","isEmpty","globalLocation","globalRepositories","ok","auth","repositoryCheckError","WRITE_REPO","push","READ_REPO","close","dismiss","passwordPlaceholder","isAdmin","hasRole","hasEditRestrictions","user","isOverrideAuth","isDefaultAuthEnabled","setGrantedAuthorities","pushAuthority","arguments","authority","hasReadPermission","uniqueKey","hasWritePermission","repoOrWildCard","readCheckDisabled","writeCheckDisabled","validatePassword","noPassword","passwordError","confirmPasswordError","confirmpassword","isLocalAuthentication","updateUser","validateForm","updateUserHttp","setNoPassword","shouldDisableSameAs","sameAsCheckbox","$","DEFAULT_INFERENCE","prop","DEFAULT_SAMEAS","$controller","extend","this","mode","saveButtonText","goBack","history","back","pageTitle","submit","createUser","createUserHttp","pass","usernameError","$routeParams","params","userId","defaultUserSettings","getUserData","getUser","userData","external","undefined","getPrincipal","principal","debugMapping","mapping","split","getRolesMapping","getRoles","roleMappings","roles","keys","mappings","permissionsCount","map","filter","reverse","orderBy","p","LocalStorageAdapter","LSKeys","$q","currentUserData","copy","redirectAdmin","initUserData","showWorkbenchSettings","updateCurrentUserData","when","assign","redirectToLogin","scope","updateUserData","set","WORKBENCH_SETTINGS","workbenchSettings","setWorkbenchTheme","rootElement","document","querySelector","theme","classList","add","remove","get"],"mappings":"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","file":"10.973caeed3c05ef2cfd1c.bundle.js","sourcesContent":["import 'angular/core/services';\nimport 'angular/core/services/jwt-auth.service';\nimport 'angular/core/services/openid-auth.service';\nimport 'angular/rest/security.rest.service';\nimport {UserUtils, UserRole, UserType} from 'angular/utils/user-utils';\n\nconst SYSTEM_REPO = 'SYSTEM';\nconst READ_REPO = 'READ_REPO';\nconst READ_REPO_PREFIX = 'READ_REPO_';\nconst WRITE_REPO = 'WRITE_REPO';\nconst WRITE_REPO_PREFIX = 'WRITE_REPO_';\n\nconst modules = [\n 'ngCookies',\n 'ui.bootstrap',\n 'graphdb.framework.core.services.jwtauth',\n 'graphdb.framework.core.services.openIDService',\n 'graphdb.framework.rest.security.service',\n 'graphdb.framework.utils.localstorageadapter',\n 'toastr'\n];\n\nconst createUniqueKey = function (repository) {\n if (repository.location) {\n return `${repository.id}@${repository.location}`;\n }\n return repository.id;\n};\n\nconst securityCtrl = angular.module('graphdb.framework.security.controllers', modules);\n\nconst setGrantedAuthorities = function ($scope) {\n function pushAuthority() {\n for (let i = 0; i < arguments.length; i++) {\n const authority = arguments[i];\n if (_.indexOf($scope.user.grantedAuthorities, authority) < 0) {\n $scope.user.grantedAuthorities.push(authority);\n }\n }\n }\n\n $scope.user.grantedAuthorities = [];\n\n $scope.repositoryCheckError = true;\n if ($scope.userType === UserType.ADMIN) {\n $scope.repositoryCheckError = false;\n pushAuthority(UserRole.ROLE_ADMIN);\n } else if ($scope.userType === UserType.REPO_MANAGER) {\n $scope.repositoryCheckError = false;\n pushAuthority(UserRole.ROLE_REPO_MANAGER);\n } else {\n pushAuthority(UserRole.ROLE_USER);\n for (const index in $scope.grantedAuthorities.WRITE_REPO) {\n if ($scope.grantedAuthorities.WRITE_REPO[index]) {\n $scope.repositoryCheckError = false;\n pushAuthority(WRITE_REPO_PREFIX + index, READ_REPO_PREFIX + index);\n }\n }\n for (const index in $scope.grantedAuthorities.READ_REPO) {\n if ($scope.grantedAuthorities.READ_REPO[index]) {\n $scope.repositoryCheckError = false;\n pushAuthority(READ_REPO_PREFIX + index);\n }\n }\n }\n};\n\nconst parseAuthorities = function (authorities) {\n let userType = UserType.USER;\n const grantedAuthorities = {\n [READ_REPO]: {},\n [WRITE_REPO]: {}\n };\n const repositories = {};\n for (let i = 0; i < authorities.length; i++) {\n const role = authorities[i];\n if (role === UserRole.ROLE_ADMIN) {\n userType = UserType.ADMIN;\n } else if (role === UserRole.ROLE_REPO_MANAGER) {\n if (userType !== UserType.ADMIN) {\n userType = UserType.REPO_MANAGER;\n }\n } else if (role === UserRole.ROLE_USER) {\n userType = UserType.USER;\n } else if (role.indexOf('ROLE_') !== 0) {\n const index = role.indexOf('_', role.indexOf('_') + 1);\n const op = role.substr(0, index);\n const repo = role.substr(index + 1);\n grantedAuthorities[op][repo] = true;\n repositories[repo] = repositories[repo] || {};\n if (op === READ_REPO) {\n repositories[repo].read = true;\n } else if (op === WRITE_REPO) {\n repositories[repo].write = true;\n }\n }\n }\n\n return {\n userType: userType,\n userTypeDescription: UserUtils.getUserRoleName(userType),\n grantedAuthorities: grantedAuthorities,\n repositories: repositories\n };\n};\n\nsecurityCtrl.controller('LoginCtrl', ['$scope', '$http', 'toastr', '$jwtAuth', '$openIDAuth', '$location', '$rootScope', '$translate',\n function ($scope, $http, toastr, $jwtAuth, $openIDAuth, $location, $rootScope, $translate) {\n $scope.username = '';\n $scope.password = '';\n\n // Reinitialize security settings, if failed for some reason\n $jwtAuth.reinitializeSecurity();\n\n $scope.loginWithOpenID = function() {\n $jwtAuth.loginOpenID();\n };\n\n if ($location.search().noaccess) {\n toastr.error($translate.instant('security.no.rights.config.error'), $translate.instant('security.login.error'));\n } else if ($location.search().expired) {\n toastr.error($translate.instant('security.auth.token.expired'), $translate.instant('security.login.error'));\n }\n\n $scope.isGDBLoginEnabled = function() {\n return $jwtAuth.passwordLoginEnabled;\n };\n\n $scope.isOpenIDEnabled = function() {\n return $jwtAuth.openIDEnabled;\n };\n\n $scope.login = function () {\n return $http({\n method: 'POST',\n url: 'rest/login',\n data: {\n 'username': $scope.username,\n 'password': $scope.password\n }\n }).success(function (data, status, headers) {\n $jwtAuth.authenticate(data, headers('Authorization'))\n .then(() => {\n if ($rootScope.returnToUrl) {\n // go back to remembered url\n $location.url($rootScope.returnToUrl);\n } else {\n // don't have a remembered url, go home\n $location.path('/');\n }\n });\n }).error(function (data, status) {\n if (status === 401) {\n toastr.error($translate.instant('security.wrong.credentials'), $translate.instant('common.error'));\n $scope.wrongCredentials = true;\n $scope.username = '';\n $scope.password = '';\n } else {\n const msg = getError(data);\n toastr.error(msg, status);\n }\n });\n };\n }]);\n\nsecurityCtrl.controller('UsersCtrl', ['$scope', '$modal', 'toastr', '$window', '$jwtAuth', '$timeout', 'ModalService', 'SecurityRestService', '$translate',\n function ($scope, $modal, toastr, $window, $jwtAuth, $timeout, ModalService, SecurityRestService, $translate) {\n\n $scope.loader = true;\n $scope.securityEnabled = function () {\n return $jwtAuth.isSecurityEnabled();\n };\n $scope.hasExternalAuth = function () {\n return $jwtAuth.hasExternalAuth();\n };\n $scope.getAuthImplementation = function () {\n return $jwtAuth.getAuthImplementation();\n };\n $scope.freeAccessEnabled = function () {\n return $jwtAuth.isFreeAccessEnabled();\n };\n $scope.getUsers = function () {\n SecurityRestService.getUsers()\n .success(function (data) {\n $scope.users = data;\n for (let i = 0; i < $scope.users.length; i++) {\n const pa = parseAuthorities($scope.users[i].grantedAuthorities);\n $scope.users[i].userType = pa.userType;\n $scope.users[i].userTypeDescription = pa.userTypeDescription;\n $scope.users[i].repositories = pa.repositories;\n }\n $scope.loader = false;\n }).error(function (data) {\n const msg = getError(data);\n toastr.error(msg, $translate.instant('common.error'));\n $scope.loader = false;\n });\n };\n $scope.getUsers();\n\n $scope.$on('repositoryIsSet', function () {\n $scope.getUsers();\n });\n\n $scope.toggleSecurity = function () {\n $jwtAuth.toggleSecurity(!$jwtAuth.isSecurityEnabled());\n if ($jwtAuth.isSecurityEnabled()) {\n const timer = $timeout(function () {\n $window.location.reload();\n }, 500);\n $scope.$on('$destroy', function () {\n $timeout.cancel(timer);\n });\n }\n };\n\n $scope.toggleFreeAccess = function (updateFreeAccess) {\n if (!$jwtAuth.isFreeAccessEnabled() || ($jwtAuth.isFreeAccessEnabled() && updateFreeAccess)) {\n SecurityRestService.getFreeAccess().then(function (res) {\n let authorities = res.data.authorities;\n let appSettings = res.data.appSettings || {\n 'DEFAULT_SAMEAS': true,\n 'DEFAULT_INFERENCE': true,\n 'EXECUTE_COUNT': true,\n 'IGNORE_SHARED_QUERIES': false,\n 'DEFAULT_VIS_GRAPH_SCHEMA': true\n };\n const modalInstance = $modal.open({\n templateUrl: 'js/angular/security/templates/modal/default-authorities.html',\n controller: 'DefaultAuthoritiesCtrl',\n resolve: {\n data: function () {\n return {\n // converts the array rights to hash ones. why, oh, why do we have both formats?\n defaultAuthorities: function () {\n const defaultAuthorities = {\n [READ_REPO]: {},\n [WRITE_REPO]: {}\n };\n // We might have old (no longer existing) repositories so we have to check that\n const repoIds = _.mapKeys($scope.getRepositories(), function (r) {\n return createUniqueKey(r);\n });\n _.each(authorities, function (a) {\n // indexOf works in IE 11, startsWith doesn't\n if (a.indexOf(WRITE_REPO_PREFIX) === 0) {\n if (repoIds.hasOwnProperty(a.substr(11))) {\n defaultAuthorities[WRITE_REPO][a.substr(11)] = true;\n }\n } else if (a.indexOf(READ_REPO_PREFIX) === 0) {\n if (repoIds.hasOwnProperty(a.substr(10))) {\n defaultAuthorities[READ_REPO][a.substr(10)] = true;\n }\n }\n });\n return defaultAuthorities;\n },\n appSettings: appSettings\n };\n }\n }\n });\n modalInstance.result.then(function (data) {\n authorities = data.authorities;\n appSettings = data.appSettings;\n $jwtAuth.toggleFreeAccess(updateFreeAccess || !$jwtAuth.isFreeAccessEnabled(), authorities, appSettings, updateFreeAccess);\n });\n });\n } else {\n $jwtAuth.toggleFreeAccess(!$jwtAuth.isFreeAccessEnabled(), []);\n }\n };\n\n $scope.editFreeAccess = function () {\n $scope.toggleFreeAccess(true);\n };\n\n $scope.removeUser = function (username) {\n ModalService.openSimpleModal({\n title: $translate.instant('common.confirm.delete'),\n message: $translate.instant('security.confirm.delete.user', {name: username}),\n warning: true\n }).result.then(function () {\n $scope.loader = true;\n SecurityRestService.deleteUser(username).success(function () {\n $scope.getUsers();\n }).error(function (data) {\n const msg = getError(data);\n toastr.error(msg, $translate.instant('common.error'));\n\n $scope.loader = false;\n });\n\n });\n };\n\n // Should be able to send the original username to $routeParams\n $scope.encodeURIComponent = function (name) {\n return encodeURIComponent(name);\n };\n }]);\n\nsecurityCtrl.controller('DefaultAuthoritiesCtrl', ['$scope', '$http', '$modalInstance', 'data', '$rootScope',\n function ($scope, $http, $modalInstance, data, $rootScope) {\n $scope.grantedAuthorities = data.defaultAuthorities();\n $scope.appSettings = data.appSettings;\n\n $scope.hasActiveLocation = function () {\n // Hack to get this from root scope to avoid cyclic dependency\n return !_.isEmpty($rootScope.globalLocation);\n };\n\n $scope.getRepositories = function () {\n // Hack to get this from root scope to avoid cyclic dependency\n return $rootScope.globalRepositories;\n };\n\n $scope.ok = function () {\n const auth = [];\n $scope.repositoryCheckError = true;\n for (const index in $scope.grantedAuthorities.WRITE_REPO) {\n if ($scope.grantedAuthorities.WRITE_REPO[index]) {\n auth.push(WRITE_REPO_PREFIX + index);\n auth.push(READ_REPO_PREFIX + index);\n $scope.repositoryCheckError = false;\n }\n }\n for (const index in $scope.grantedAuthorities.READ_REPO) {\n if ($scope.grantedAuthorities.READ_REPO[index] && auth.indexOf(READ_REPO_PREFIX + index) === -1) {\n auth.push(READ_REPO_PREFIX + index);\n $scope.repositoryCheckError = false;\n }\n }\n if (!$scope.repositoryCheckError) {\n $modalInstance.close({authorities: auth, appSettings: $scope.appSettings});\n }\n };\n\n $scope.cancel = function () {\n $modalInstance.dismiss('cancel');\n };\n\n $scope.createUniqueKey = function (repository) {\n return createUniqueKey(repository);\n };\n }]);\n\nsecurityCtrl.controller('CommonUserCtrl', ['$rootScope', '$scope', '$http', 'toastr', '$window', '$timeout', '$location', '$jwtAuth', '$translate', 'passwordPlaceholder',\n function ($rootScope, $scope, $http, toastr, $window, $timeout, $location, $jwtAuth, $translate, passwordPlaceholder) {\n $rootScope.$on('$translateChangeSuccess', function () {\n $scope.passwordPlaceholder = $translate.instant(passwordPlaceholder);\n });\n $scope.isAdmin = function () {\n return $jwtAuth.hasRole(UserRole.ROLE_ADMIN);\n };\n $scope.hasExternalAuth = function () {\n return $jwtAuth.hasExternalAuth();\n };\n\n $scope.hasEditRestrictions = function () {\n return $scope.user && $scope.user.username === UserType.ADMIN;\n };\n\n $scope.isOverrideAuth = function () {\n return $jwtAuth.isDefaultAuthEnabled();\n };\n\n $scope.setGrantedAuthorities = function () {\n setGrantedAuthorities($scope);\n };\n\n $scope.hasReadPermission = function (repository) {\n const uniqueKey = createUniqueKey(repository);\n return $scope.userType === UserType.ADMIN || $scope.userType === UserType.REPO_MANAGER\n || repository.id !== SYSTEM_REPO\n && ($scope.grantedAuthorities.READ_REPO['*'] || $scope.grantedAuthorities.WRITE_REPO['*'])\n || $scope.grantedAuthorities.READ_REPO[uniqueKey]\n || $scope.grantedAuthorities.WRITE_REPO[uniqueKey];\n };\n\n $scope.hasWritePermission = function (repoOrWildCard) {\n const uniqueKey = createUniqueKey(repoOrWildCard);\n return $scope.userType === UserType.ADMIN || $scope.userType === UserType.REPO_MANAGER\n || repoOrWildCard.id !== SYSTEM_REPO && $scope.grantedAuthorities.WRITE_REPO['*']\n || $scope.grantedAuthorities.WRITE_REPO[uniqueKey];\n };\n\n $scope.readCheckDisabled = function (repoOrWildCard) {\n return $scope.hasWritePermission(repoOrWildCard)\n || repoOrWildCard.id !== SYSTEM_REPO && repoOrWildCard !== '*' && $scope.grantedAuthorities.READ_REPO['*']\n || $scope.hasEditRestrictions();\n };\n\n $scope.writeCheckDisabled = function (repoOrWildCard) {\n return $scope.userType === UserType.ADMIN || $scope.userType === UserType.REPO_MANAGER\n || repoOrWildCard.id !== SYSTEM_REPO && repoOrWildCard !== '*' && $scope.grantedAuthorities.WRITE_REPO['*']\n || $scope.hasEditRestrictions();\n };\n\n $scope.createUniqueKey = function (repository) {\n return createUniqueKey(repository);\n };\n\n $scope.userType = UserType.USER;\n $scope.grantedAuthorities = {\n [READ_REPO]: {},\n [WRITE_REPO]: {}\n };\n\n $scope.validatePassword = function() {\n if ($scope.noPassword) {\n $scope.passwordError = '';\n $scope.confirmPasswordError = '';\n return true;\n }\n if ($scope.user.password !== $scope.user.confirmpassword) {\n if (!$scope.user.password) {\n $scope.passwordError = $translate.instant('security.enter.password');\n $scope.confirmPasswordError = '';\n } else {\n $scope.passwordError = '';\n $scope.confirmPasswordError = $translate.instant('security.confirm.password');\n }\n return false;\n } else {\n $scope.passwordError = '';\n $scope.confirmPasswordError = '';\n }\n return true;\n };\n\n $scope.isLocalAuthentication = function() {\n return $jwtAuth.getAuthImplementation() === 'Local';\n };\n\n $scope.updateUser = function () {\n if (!$scope.validateForm()) {\n return false;\n }\n\n if ($scope.isLocalAuthentication()) {\n $scope.setGrantedAuthorities();\n }\n\n if (!$scope.repositoryCheckError) {\n $scope.updateUserHttp();\n }\n };\n\n $scope.setNoPassword = function() {\n if ($scope.noPassword) {\n $scope.user.password = '';\n $scope.user.confirmpassword = '';\n $scope.passwordError = '';\n $scope.confirmPasswordError = '';\n }\n };\n\n $scope.shouldDisableSameAs = function () {\n const sameAsCheckbox = $('#sameAsCheck');\n if ($scope.user && !$scope.user.appSettings.DEFAULT_INFERENCE && sameAsCheckbox.prop('checked')) {\n sameAsCheckbox.prop(\"checked\", false);\n $scope.user.appSettings.DEFAULT_SAMEAS = false;\n }\n\n return $scope.user && !$scope.user.appSettings.DEFAULT_INFERENCE;\n };\n }]);\n\nsecurityCtrl.controller('AddUserCtrl', ['$scope', '$http', 'toastr', '$window', '$timeout', '$location', '$jwtAuth', '$controller', 'SecurityRestService', 'ModalService', '$translate',\n function ($scope, $http, toastr, $window, $timeout, $location, $jwtAuth, $controller, SecurityRestService, ModalService, $translate) {\n\n angular.extend(this, $controller('CommonUserCtrl', {$scope: $scope, passwordPlaceholder: 'security.password.placeholder'}));\n\n $scope.mode = 'add';\n $scope.saveButtonText = $translate.instant('common.create.btn');\n $scope.goBack = function () {\n const timer = $timeout(function () {\n $window.history.back();\n }, 100);\n $scope.$on('$destroy', function () {\n $timeout.cancel(timer);\n });\n };\n $scope.pageTitle = $translate.instant('view.create.user.title');\n $scope.passwordPlaceholder = $translate.instant('security.password.placeholder');\n\n $scope.user = {\n 'username': '',\n 'password': '',\n 'confirmpassword': '',\n 'grantedAuthorities': [],\n 'appSettings': {\n 'DEFAULT_SAMEAS': true,\n 'DEFAULT_INFERENCE': true,\n 'EXECUTE_COUNT': true,\n 'IGNORE_SHARED_QUERIES': false,\n 'DEFAULT_VIS_GRAPH_SCHEMA': true\n }\n };\n\n $scope.submit = function () {\n if ($scope.noPassword && $scope.userType === UserType.ADMIN) {\n ModalService.openSimpleModal({\n title: $translate.instant('security.create.admin'),\n message: $translate.instant('security.admin.login.warning'),\n warning: true\n }).result.then(function () {\n $scope.createUser();\n });\n } else {\n $scope.createUser();\n }\n };\n\n $scope.createUserHttp = function () {\n $scope.loader = true;\n SecurityRestService.createUser({\n username: $scope.user.username,\n pass: $scope.user.password,\n appSettings: $scope.user.appSettings,\n grantedAuthorities: $scope.user.grantedAuthorities\n }).success(function () {\n toastr.success($translate.instant('security.user.created', {name: $scope.user.username}));\n const timer = $timeout(function () {\n $scope.loader = false;\n $window.history.back();\n }, 2000);\n $scope.$on('$destroy', function () {\n $timeout.cancel(timer);\n });\n }).error(function (data) {\n const msg = getError(data);\n $scope.loader = false;\n toastr.error(msg, $translate.instant('common.error'));\n });\n };\n\n $scope.createUser = function () {\n if ($scope.validateForm()) {\n $scope.setGrantedAuthorities();\n\n if (!$scope.repositoryCheckError) {\n $scope.createUserHttp();\n }\n }\n };\n\n $scope.validateForm = function () {\n let result = true;\n if (!$scope.user.username) {\n $scope.usernameError = $translate.instant('security.enter.username');\n result = false;\n } else {\n $scope.usernameError = '';\n }\n if ($scope.noPassword) {\n $scope.passwordError = '';\n $scope.confirmPasswordError = '';\n } else {\n if (!$scope.user.password) {\n $scope.passwordError = $translate.instant('security.enter.password');\n result = false;\n } else {\n $scope.passwordError = '';\n }\n if (!$scope.user.confirmpassword || $scope.user.password !== $scope.user.confirmpassword) {\n $scope.confirmPasswordError = $translate.instant('security.confirm.password');\n result = false;\n } else {\n $scope.confirmPasswordError = '';\n }\n }\n\n return result;\n };\n }]);\n\nsecurityCtrl.controller('EditUserCtrl', ['$scope', '$http', 'toastr', '$window', '$routeParams', '$timeout', '$location', '$jwtAuth', '$controller', 'SecurityRestService', 'ModalService', '$translate',\n function ($scope, $http, toastr, $window, $routeParams, $timeout, $location, $jwtAuth, $controller, SecurityRestService, ModalService, $translate) {\n\n angular.extend(this, $controller('CommonUserCtrl', {$scope: $scope, passwordPlaceholder: 'security.new.password'}));\n\n $scope.mode = 'edit';\n $scope.saveButtonText = $translate.instant('common.save.btn');\n $scope.goBack = function () {\n const timer = $timeout(function () {\n $window.history.back();\n }, 100);\n $scope.$on('$destroy', function () {\n $timeout.cancel(timer);\n });\n };\n $scope.params = $routeParams;\n $scope.pageTitle = $translate.instant('view.edit.user.title', {userId: $scope.params.userId});\n $scope.passwordPlaceholder = $translate.instant('security.new.password');\n $scope.userType = UserType.USER;\n const defaultUserSettings = {\n 'DEFAULT_SAMEAS': true,\n 'DEFAULT_INFERENCE': true,\n 'EXECUTE_COUNT': true,\n 'IGNORE_SHARED_QUERIES': false,\n 'DEFAULT_VIS_GRAPH_SCHEMA': true\n };\n\n if (!$jwtAuth.hasRole(UserRole.ROLE_ADMIN)) {\n $location.url('settings');\n }\n $scope.getUserData = function () {\n SecurityRestService.getUser($scope.params.userId).success(function (data) {\n $scope.userData = data;\n $scope.user = {username: $scope.userData.username};\n $scope.user.password = '';\n $scope.user.confirmpassword = '';\n $scope.user.external = $scope.userData.external;\n $scope.user.appSettings = data.appSettings || defaultUserSettings;\n $scope.userType = UserType.USER;\n const pa = parseAuthorities(data.grantedAuthorities);\n $scope.userType = pa.userType;\n $scope.grantedAuthorities = pa.grantedAuthorities;\n }).error(function (data) {\n const msg = getError(data);\n toastr.error(msg, $translate.instant('common.error'));\n });\n };\n\n $scope.getUserData();\n\n $scope.submit = function () {\n if ($scope.noPassword && $scope.userType === UserType.ADMIN) {\n ModalService.openSimpleModal({\n title: $translate.instant('security.save.admin.settings'),\n message: $translate.instant('security.admin.pass.unset'),\n warning: true\n }).result.then(function () {\n $scope.updateUser();\n });\n } else {\n $scope.updateUser();\n }\n };\n\n $scope.updateUserHttp = function () {\n $scope.loader = true;\n SecurityRestService.updateUser({\n username: $scope.user.username,\n pass: ($scope.noPassword) ? '' : $scope.user.password || undefined,\n appSettings: $scope.user.appSettings,\n grantedAuthorities: $scope.user.grantedAuthorities\n }).success(function () {\n toastr.success($translate.instant('security.user.updated', {name: $scope.user.username}));\n const timer = $timeout(function () {\n $scope.loader = false;\n $window.history.back();\n }, 2000);\n $scope.$on('$destroy', function () {\n $timeout.cancel(timer);\n });\n // if we update the settings of the currently logged user, update the principal\n $jwtAuth.getPrincipal().then((principal) => {\n if ($scope.user.username === principal.username) {\n principal.appSettings = $scope.user.appSettings;\n }\n });\n }).error(function (data) {\n const msg = getError(data);\n $scope.loader = false;\n toastr.error(msg, $translate.instant('common.error'));\n });\n };\n\n $scope.validateForm = function () {\n return $scope.validatePassword();\n };\n }]);\n\nsecurityCtrl.controller('RolesMappingController', ['$scope', 'toastr', 'SecurityRestService', '$translate',\n function ($scope, toastr, SecurityRestService, $translate) {\n\n $scope.debugMapping = function (role, mapping) {\n const method = mapping.split(':');\n SecurityRestService.getRolesMapping({\n role: role,\n method: method[1],\n mapping: method[0]\n });\n };\n\n const loadRoles = function () {\n SecurityRestService.getRoles()\n .success(function (data) {\n $scope.roleMappings = data;\n $scope.roles = _.keys($scope.roleMappings);\n $scope.mappings = _.keys($scope.roleMappings[$scope.roles[0]]);\n const permissionsCount = _.map($scope.roles, function (role) {\n return [role, _.filter($scope.roleMappings[role]).length];\n });\n $scope.roles = _.reverse(_.map(_.orderBy(permissionsCount, function (p) {\n return p[1];\n }), function (p) {\n return p[0];\n }));\n })\n .error(function (data) {\n const msg = getError(data);\n $scope.loader = false;\n toastr.error(msg, $translate.instant('common.error'));\n });\n };\n\n $scope.$on('repositoryIsSet', function () {\n loadRoles();\n });\n}]);\n\nsecurityCtrl.controller('ChangeUserPasswordSettingsCtrl', ['$scope', 'toastr', '$window', '$timeout', '$jwtAuth', '$rootScope', '$controller', 'SecurityRestService', 'ModalService', '$translate', 'LocalStorageAdapter', 'LSKeys', '$q',\n function ($scope, toastr, $window, $timeout, $jwtAuth, $rootScope, $controller, SecurityRestService, ModalService, $translate, LocalStorageAdapter, LSKeys, $q) {\n\n angular.extend(this, $controller('CommonUserCtrl', {$scope: $scope, passwordPlaceholder: 'security.new.password'}));\n\n $scope.mode = 'settings';\n $scope.hasEditRestrictions = function () {\n return true;\n };\n $scope.saveButtonText = $translate.instant('common.save.btn');\n $scope.goBack = function () {\n const timer = $timeout(function () {\n $window.history.back();\n }, 100);\n $scope.$on('$destroy', function () {\n $timeout.cancel(timer);\n });\n };\n // Wrapped in a scope function for ease of testing\n $scope.getPrincipal = function () {\n return $jwtAuth.getPrincipal()\n .then((principal) => {\n $scope.currentUserData = angular.copy(principal);\n });\n };\n\n $scope.getPrincipal().then(() => {\n $scope.redirectAdmin();\n initUserData($scope);\n });\n\n $scope.showWorkbenchSettings = true;\n\n $scope.updateCurrentUserData = function () {\n // Using $q.when to proper set values in view\n $q.when($jwtAuth.getPrincipal())\n .then((principal) => _.assign(principal, $scope.userData));\n };\n\n //call it as a function so I can make test on it\n $scope.redirectAdmin = function () {\n if (!$scope.currentUserData) {\n $rootScope.redirectToLogin();\n }\n };\n\n $scope.pageTitle = $translate.instant('view.settings.title');\n $scope.passwordPlaceholder = $translate.instant('security.new.password');\n $scope.grantedAuthorities = {\n [READ_REPO]: {},\n [WRITE_REPO]: {}\n };\n\n const initUserData = function (scope) {\n // Copy needed so that Cancel would work correctly, need to call updateCurrentUserData on OK\n scope.userData = angular.copy(scope.currentUserData);\n scope.user = {username: scope.userData.username};\n scope.user.password = '';\n scope.user.confirmpassword = '';\n scope.user.external = scope.userData.external;\n scope.user.appSettings = scope.userData.appSettings;\n // For backward compatibility\n if (scope.user.appSettings['DEFAULT_VIS_GRAPH_SCHEMA'] === undefined) {\n scope.user.appSettings['DEFAULT_VIS_GRAPH_SCHEMA'] = true;\n }\n\n const pa = parseAuthorities(scope.userData.authorities);\n $scope.userType = pa.userType;\n $scope.grantedAuthorities = pa.grantedAuthorities;\n };\n\n $scope.loader = false;\n\n $scope.submit = function () {\n if ($scope.noPassword && $scope.userType === UserType.ADMIN) {\n ModalService.openSimpleModal({\n title: $translate.instant('security.save.admin.settings'),\n message: $translate.instant('security.admin.pass.unset'),\n warning: true\n }).result.then(function () {\n $scope.updateUser();\n });\n } else {\n $scope.updateUser();\n }\n };\n\n $scope.updateUserHttp = function () {\n $scope.loader = true;\n SecurityRestService.updateUserData({\n username: $scope.user.username,\n pass: ($scope.noPassword) ? '' : $scope.user.password || undefined,\n appSettings: $scope.user.appSettings\n }).success(function () {\n $scope.updateCurrentUserData();\n toastr.success($translate.instant('security.user.updated', {name: $scope.user.username}));\n const timer = $timeout(function () {\n $scope.loader = false;\n $window.history.back();\n }, 2000);\n LocalStorageAdapter.set(LSKeys.WORKBENCH_SETTINGS, $scope.workbenchSettings);\n $scope.$on('$destroy', function () {\n $timeout.cancel(timer);\n });\n }).error(function (data) {\n const msg = getError(data);\n $scope.loader = false;\n toastr.error(msg, $translate.instant('common.error'));\n });\n };\n\n $scope.updateUser = function () {\n if (!$scope.validateForm()) {\n return false;\n }\n\n $scope.updateUserHttp();\n };\n\n $scope.validateForm = function () {\n return $scope.validatePassword();\n };\n\n $scope.setWorkbenchTheme = function () {\n const rootElement = document.querySelector(':root');\n if ($scope.workbenchSettings.theme === 'dark') {\n rootElement.classList.add(\"dark\");\n } else {\n rootElement.classList.remove(\"dark\");\n }\n };\n\n $scope.workbenchSettings = LocalStorageAdapter.get(LSKeys.WORKBENCH_SETTINGS);\n if (!$scope.workbenchSettings) {\n $scope.workbenchSettings = {\n theme: 'light'\n };\n }\n $scope.setWorkbenchTheme();\n\n $scope.$on(\"$destroy\", function () {\n const workbenchSettings = LocalStorageAdapter.get(LSKeys.WORKBENCH_SETTINGS);\n const rootElement = document.querySelector(':root');\n if (workbenchSettings && workbenchSettings.theme === 'dark') {\n rootElement.classList.add(\"dark\");\n } else {\n rootElement.classList.remove(\"dark\");\n }\n });\n }]);\n\nsecurityCtrl.controller('DeleteUserCtrl', ['$scope', '$modalInstance', 'username', function ($scope, $modalInstance, username) {\n $scope.username = username;\n\n $scope.ok = function () {\n $modalInstance.close();\n };\n\n $scope.cancel = function () {\n $modalInstance.dismiss('cancel');\n };\n}]);\n"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[102],{95:function(n,e,i){"use strict";i.r(e);i(19);function t(n,e,i,t,o,r,s,l,u){let a;const c=function(){n.clear(),o.isLicenseValid()&&t.getActiveRepository()&&!t.isActiveRepoOntopType()&&!t.isActiveRepoFedXType()&&g()};n.clear=function(){n.searchPluginsTerm="",n.plugins=[],n.displayedPlugins=[]};const g=function(){f(),a=e((function(){f()}),5e3)},f=function(){l.getPlugins(n.getActiveRepository()).success((function(e){n.plugins=n.buildPluginsArray(e.results.bindings)})).error((function(n){i.error(getError(n))})).finally((function(){n.filterResults(),n.setLoader(!1)}))};n.buildPluginsArray=function(n){return n.map(n=>({name:n.s.value,enabled:"true"===n.o.value})).filter((function(n){return"plugincontrol"!==n.name&&"literals-index"!==n.name})).sort((function(n,e){const i=n.name.toLowerCase(),t=e.name.toLowerCase();return i<t?-1:i>t?1:0}))},n.filterResults=function(){const e=n.plugins.filter(e=>-1!==e.name.indexOf(n.searchPluginsTerm));d(e)&&n.updateDisplayedPlugins(e)};const d=function(e){if(!n.displayedPlugins||n.displayedPlugins.length!==e.length)return!0;for(const i in e)if(!n.displayedPlugins.find(n=>angular.equals(n,e[i])))return!0;return!1};function p(){a&&e.cancel(a)}n.updateDisplayedPlugins=function(e){n.displayedPlugins=e,setTimeout((function(){n.applyRowStyles()}),0)},n.setLoader=function(e,i){s.cancel(n.loaderTimeout),e?n.loaderTimeout=s((function(){n.loader=e,n.loaderMessage=i}),300):n.loader=!1},n.$on("repositoryIsSet",(function(){p(),c()})),n.$on("$destroy",(function(){p(),$(window).off("resize.plugin")})),$(window).on("resize.plugin",(function(){n.applyRowStyles()})),n.applyRowStyles=function(){const e=$("#wb-plugins-pluginInPlugins").width(),i=$("tr").width(),t=Math.floor(e/i);$(".wb-plugins-row").toArray().forEach((e,i)=>{n.isGreyBackground(t,i)?$(e).addClass("grey-row"):$(e).removeClass("grey-row")})},n.isGreyBackground=function(n,e){const i=(Math.floor(e/n)+1)%2!=1,t=e%2!=0;if(n%2!=0){if(i&&!t||!i&&!t)return!0;if(i&&t||!i&&t)return!1}else{if(i&&!t||!i&&t)return!1;if(i&&t||!i&&!t)return!0}},n.togglePlugin=function(e,t){const o=n.getActiveRepository(),r=t?u.instant("deactivating.plugin",{pluginName:e}):u.instant("activating.plugin",{pluginName:e});n.setLoader(!0,r),l.togglePlugin(o,t,e).error((function(n){i.error(getError(n))})).finally((function(){f(),n.setLoader(!1)}))},n.getLoaderMessage=function(){return n.loaderMessage||u.instant("common.loading")},n.onSearchTermChanged=function(){n.filterResults()},c()}angular.module("graphdb.framework.plugins.controllers",["graphdb.framework.rest.plugins.service"]).controller("PluginsCtrl",t),t.$inject=["$scope","$interval","toastr","$repositories","$licenseService","$modal","$timeout","PluginsRestService","$translate"]}}]);
2
- //# sourceMappingURL=102.93af0905ca1ff2be2dbf.bundle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["webpack:///./src/js/angular/plugins/controllers.js"],"names":["PluginsCtrl","$scope","$interval","toastr","$repositories","$licenseService","$modal","$timeout","PluginsRestService","$translate","timer","init","clear","isLicenseValid","getActiveRepository","isActiveRepoOntopType","isActiveRepoFedXType","getPlugins","searchPluginsTerm","plugins","displayedPlugins","initPlugins","success","data","buildPluginsArray","results","bindings","error","getError","finally","filterResults","setLoader","map","plugin","name","s","value","enabled","o","filter","sort","a","b","textA","toLowerCase","textB","matchedPlugins","indexOf","displayedPluginsChanged","updateDisplayedPlugins","length","find","element","angular","equals","cancelTimer","cancel","setTimeout","applyRowStyles","loader","message","loaderTimeout","loaderMessage","$on","$","window","off","on","tableWidth","width","rowWidth","columnPerRow","Math","floor","toArray","forEach","index","isGreyBackground","addClass","removeClass","oddRow","evenElement","togglePlugin","pluginName","repoId","instant","getLoaderMessage","onSearchTermChanged","module","controller","$inject"],"mappings":"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","file":"102.93af0905ca1ff2be2dbf.bundle.js","sourcesContent":["import 'angular/rest/plugins.rest.service';\n\nconst modules = [\n 'graphdb.framework.rest.plugins.service'\n];\n\nangular\n .module('graphdb.framework.plugins.controllers', modules)\n .controller('PluginsCtrl', PluginsCtrl);\n\nPluginsCtrl.$inject = ['$scope', '$interval', 'toastr', '$repositories', '$licenseService', '$modal', '$timeout', 'PluginsRestService', '$translate'];\n\nfunction PluginsCtrl($scope, $interval, toastr, $repositories, $licenseService, $modal, $timeout, PluginsRestService, $translate) {\n\n let timer;\n\n const init = function () {\n $scope.clear();\n if (!$licenseService.isLicenseValid() ||\n !$repositories.getActiveRepository() ||\n $repositories.isActiveRepoOntopType() ||\n $repositories.isActiveRepoFedXType()) {\n return;\n }\n getPlugins();\n };\n\n $scope.clear = function () {\n $scope.searchPluginsTerm = '';\n $scope.plugins = [];\n $scope.displayedPlugins = [];\n };\n\n const getPlugins = function () {\n initPlugins();\n timer = $interval(function () {\n initPlugins();\n }, 5000);\n };\n\n const initPlugins = function () {\n PluginsRestService.getPlugins($scope.getActiveRepository())\n .success(function (data) {\n $scope.plugins = $scope.buildPluginsArray(data.results.bindings);\n }).error(function (data) {\n toastr.error(getError(data));\n }).finally(function () {\n $scope.filterResults();\n $scope.setLoader(false);\n });\n };\n\n $scope.buildPluginsArray = function (plugins) {\n return plugins.map((plugin) => ({\n name: plugin.s.value,\n enabled: plugin.o.value === 'true'\n })).filter(function (plugin) {\n return plugin.name !== 'plugincontrol' && plugin.name !== 'literals-index';\n }).sort(function (a, b) {\n const textA = a.name.toLowerCase();\n const textB = b.name.toLowerCase();\n return (textA < textB) ? -1 : (textA > textB) ? 1 : 0;\n });\n };\n\n $scope.filterResults = function () {\n const matchedPlugins = $scope.plugins.filter((plugin) => plugin.name.indexOf($scope.searchPluginsTerm) !== -1);\n if (displayedPluginsChanged(matchedPlugins)) {\n $scope.updateDisplayedPlugins(matchedPlugins);\n }\n };\n\n /**\n * Checks if displayed plugins in the view are different than <code>plugins</code>.\n * @param {*} plugins - plugins to be checked.\n * @return {boolean} returns true if <code>plugins</code> are different from those which are shown in the view.\n */\n const displayedPluginsChanged = function (plugins) {\n if (!$scope.displayedPlugins || $scope.displayedPlugins.length !== plugins.length) {\n return true;\n }\n\n for (const plugin in plugins) {\n if (!$scope.displayedPlugins.find((element) => angular.equals(element, plugins[plugin]))) {\n return true;\n }\n }\n\n return false;\n };\n\n $scope.updateDisplayedPlugins = function (plugins) {\n $scope.displayedPlugins = plugins;\n setTimeout(function () {\n $scope.applyRowStyles();\n }, 0);\n };\n\n $scope.setLoader = function (loader, message) {\n $timeout.cancel($scope.loaderTimeout);\n if (loader) {\n $scope.loaderTimeout = $timeout(function () {\n $scope.loader = loader;\n $scope.loaderMessage = message;\n }, 300);\n } else {\n $scope.loader = false;\n }\n };\n\n // this is used when repository is changed from the upper menu to refresh the plugins for it.\n $scope.$on('repositoryIsSet', function () {\n cancelTimer();\n init();\n });\n\n $scope.$on('$destroy', function () {\n cancelTimer();\n $(window).off('resize.plugin');\n });\n\n $(window).on('resize.plugin', function () {\n $scope.applyRowStyles();\n });\n\n function cancelTimer() {\n if (timer) {\n $interval.cancel(timer);\n }\n }\n\n $scope.applyRowStyles = function () {\n const tableWidth = $('#wb-plugins-pluginInPlugins').width();\n const rowWidth = $('tr').width();\n const columnPerRow = Math.floor(tableWidth / rowWidth);\n $('.wb-plugins-row').toArray().forEach((value, index) => {\n if ($scope.isGreyBackground(columnPerRow, index)) {\n $(value).addClass('grey-row');\n } else {\n $(value).removeClass('grey-row');\n }\n });\n };\n\n $scope.isGreyBackground = function (columnPerRow, index) {\n const row = Math.floor(index / columnPerRow) + 1;\n const oddRow = row % 2 !== 1;\n const evenElement = index % 2 !== 0;\n const evenColumns = columnPerRow % 2 !== 0;\n\n if (evenColumns) {\n if (oddRow && !evenElement || !oddRow && !evenElement) {\n return true;\n }\n if (oddRow && evenElement || !oddRow && evenElement) {\n return false;\n }\n } else {\n if (oddRow && !evenElement || !oddRow && evenElement) {\n return false;\n }\n if (oddRow && evenElement || !oddRow && !evenElement) {\n return true;\n }\n }\n };\n\n $scope.togglePlugin = function (pluginName, enabled) {\n const repoId = $scope.getActiveRepository();\n const message = enabled ? $translate.instant('deactivating.plugin', {pluginName: pluginName}) : $translate.instant('activating.plugin', {pluginName: pluginName});\n $scope.setLoader(true, message);\n PluginsRestService.togglePlugin(repoId, enabled, pluginName)\n .error(function (data) {\n toastr.error(getError(data));\n }).finally(function () {\n initPlugins();\n $scope.setLoader(false);\n });\n };\n\n $scope.getLoaderMessage = function () {\n return $scope.loaderMessage || $translate.instant('common.loading');\n };\n\n $scope.onSearchTermChanged = function () {\n $scope.filterResults();\n };\n\n init();\n}\n"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[104],{96:function(e,t,n){"use strict";n.r(t);n(4),n(13);const o=angular.module("graphdb.framework.jmx.queries.controllers",["ui.bootstrap","toastr","graphdb.framework.rest.monitoring.service"]);o.controller("QueriesCtrl",["$scope","$modal","toastr","$interval","$repositories","$jwtAuth","ModalService","MonitoringRestService","$translate",function(e,t,n,o,r,i,s,c,u){e.loader=!0,e.stringLimit=500,e.expanded={},e.error="",e.paused=!1;const a=document.createElement("a");e.parseNode=function(e){if(null==e)return null;let t="local";if(e.indexOf("://localhost:")<0&&e.indexOf("://localhost/")<0){a.href=e;let n=a.hostname;(function(e){const t=e.split(".");for(let e=0,n=0;e<t.length;e++)if(parseInt(t[e],10)>=0&&parseInt(t[e],10)<=255?n++:n=0,4===n)return!0;return!1})(a.hostname)||(n=a.hostname.split(".")[0]),t=n+":"+a.port}const n=e.match(/\/repositories\/([^\/]+)#(\d+)/);return[n[2],t,n[1]]},e.togglePause=function(){e.paused=!e.paused},e.getQueries=function(){e.getQueriesRunning||e.paused||e.error||!r.getActiveRepository()||(e.getQueriesRunning=!0,c.monitorQuery(r.getActiveRepository()).success((function(t){const n=t;e.noQueries=0===n.length,e.queries={};for(let t=0;t<n.length;t++)n[t].parsedNode=e.parseNode(n[t].node),e.queries[n[t].trackId]=n[t];e.noActiveRepository=!1,e.loader=!1,e.getQueriesRunning=!1})).error((function(t){e.error=getError(t),e.loader=!1,e.getQueriesRunning=!1})))};const l=o((function(){r.isActiveRepoOntopType()||e.getQueries()}),1e3);e.$on("$destroy",(function(){o.cancel(l)})),e.deleteQueryHttp=function(t){e.loader=!0,c.deleteQuery(t,r.getActiveRepository()).success((function(){n.success(u.instant("abort.request.sent.msg")),e.loader=!1})).error((function(t){const o=getError(t);n.error(o,u.instant("common.error")),e.loader=!1}))},e.abortQuery=function(t){s.openSimpleModal({title:u.instant("confirm.abort"),message:u.instant("confirm.abort.warning.msg"),warning:!0}).result.then((function(){e.deleteQueryHttp(t)}))},e.downloadQuery=function(e){const t="query_"+e+".rq";let n="/rest/monitor/repository/"+r.getActiveRepository()+"/query/download?query="+encodeURIComponent(e)+"&filename="+encodeURIComponent(t);i.isAuthenticated()&&(n=n+"&authToken="+encodeURIComponent(i.getAuthToken())),window.open(n,"_blank")},e.toggleQueryExpanded=function(t){e.expanded[t]=!e.expanded[t]}}]),o.controller("DeleteQueryCtrl",["$scope","$modalInstance",function(e,t){e.ok=function(){t.close()},e.cancel=function(){t.dismiss("cancel")}}])}}]);
2
- //# sourceMappingURL=104.b82229ea4c12400f6f5d.bundle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["webpack:///./src/js/angular/queries/controllers.js"],"names":["queriesCtrl","angular","module","controller","$scope","$modal","toastr","$interval","$repositories","$jwtAuth","ModalService","MonitoringRestService","$translate","loader","stringLimit","expanded","error","paused","parser","document","createElement","parseNode","node","shortUrl","indexOf","href","hostname","ip","blocks","split","i","sequence","length","parseInt","containsIPV4","port","match","togglePause","getQueries","getQueriesRunning","getActiveRepository","monitorQuery","success","data","newQueries","noQueries","queries","parsedNode","trackId","noActiveRepository","getError","timer","isActiveRepoOntopType","$on","cancel","deleteQueryHttp","queryId","deleteQuery","instant","msg","abortQuery","openSimpleModal","title","message","warning","result","then","downloadQuery","filename","link","encodeURIComponent","isAuthenticated","getAuthToken","window","open","toggleQueryExpanded","$modalInstance","ok","close","dismiss"],"mappings":"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","file":"104.b82229ea4c12400f6f5d.bundle.js","sourcesContent":["import 'angular/core/services';\nimport 'angular/rest/monitoring.rest.service';\n\nconst queriesCtrl = angular.module('graphdb.framework.jmx.queries.controllers', [\n 'ui.bootstrap',\n 'toastr',\n 'graphdb.framework.rest.monitoring.service'\n]);\n\nqueriesCtrl.controller('QueriesCtrl', ['$scope', '$modal', 'toastr', '$interval', '$repositories', '$jwtAuth', 'ModalService', 'MonitoringRestService', '$translate',\n function ($scope, $modal, toastr, $interval, $repositories, $jwtAuth, ModalService, MonitoringRestService, $translate) {\n\n $scope.loader = true;\n $scope.stringLimit = 500;\n $scope.expanded = {};\n $scope.error = '';\n $scope.paused = false;\n\n function containsIPV4(ip) {\n const blocks = ip.split('.');\n for (let i = 0, sequence = 0; i < blocks.length; i++) {\n if (parseInt(blocks[i], 10) >= 0 && parseInt(blocks[i], 10) <= 255) {\n sequence++;\n } else {\n sequence = 0;\n }\n if (sequence === 4) {\n return true;\n }\n }\n return false;\n }\n\n const parser = document.createElement('a');\n\n // Parses a node of the kind http://host.example.com:7200/repositories/repo#NN,\n // where NN is the track ID into an array [NN, host:7200, repo].\n $scope.parseNode = function (node) {\n if (node == null) {\n return null;\n }\n\n let shortUrl = 'local';\n if (node.indexOf('://localhost:') < 0 && node.indexOf('://localhost/') < 0) {\n parser.href = node;\n let hostname = parser.hostname;\n if (!containsIPV4(parser.hostname)) {\n hostname = parser.hostname.split('.')[0];\n }\n shortUrl = hostname + ':' + parser.port;\n }\n const match = node.match(/\\/repositories\\/([^\\/]+)#(\\d+)/); // eslint-disable-line no-useless-escape\n\n return [match[2], shortUrl, match[1]];\n };\n\n $scope.togglePause = function () {\n $scope.paused = !$scope.paused;\n }\n\n $scope.getQueries = function () {\n // Skip execution if already getting from previous call, if paused, if jolokia returned an error,\n // or if no repository is available\n if ($scope.getQueriesRunning || $scope.paused || $scope.error || !$repositories.getActiveRepository()) {\n return;\n }\n\n $scope.getQueriesRunning = true;\n MonitoringRestService.monitorQuery($repositories.getActiveRepository()).success(function (data) {\n const newQueries = data;\n $scope.noQueries = newQueries.length === 0;\n\n // Converts array to object. Angular seems to handle updates on objects better, i.e.\n // it doesn't recreate DOM elements for queries that are already displayed.\n $scope.queries = {};\n for (let i = 0; i < newQueries.length; i++) {\n newQueries[i].parsedNode = $scope.parseNode(newQueries[i].node);\n $scope.queries[newQueries[i].trackId] = newQueries[i];\n }\n\n $scope.noActiveRepository = false;\n $scope.loader = false;\n $scope.getQueriesRunning = false;\n }).error(function (data) {\n $scope.error = getError(data);\n $scope.loader = false;\n $scope.getQueriesRunning = false;\n });\n };\n\n const timer = $interval(function () {\n // Don't call getQueries for Ontop type repository\n if ($repositories.isActiveRepoOntopType()) {\n return;\n }\n $scope.getQueries();\n }, 1000);\n\n $scope.$on('$destroy', function () {\n $interval.cancel(timer);\n });\n\n $scope.deleteQueryHttp = function (queryId) {\n\n $scope.loader = true;\n MonitoringRestService.deleteQuery(queryId, $repositories.getActiveRepository()).success(function () {\n toastr.success($translate.instant('abort.request.sent.msg'));\n $scope.loader = false;\n }).error(function (data) {\n const msg = getError(data);\n toastr.error(msg, $translate.instant('common.error'));\n\n $scope.loader = false;\n });\n };\n\n $scope.abortQuery = function (queryId) {\n ModalService.openSimpleModal({\n title: $translate.instant('confirm.abort'),\n message: $translate.instant('confirm.abort.warning.msg'),\n warning: true\n }).result.then(function () {\n $scope.deleteQueryHttp(queryId);\n });\n };\n\n $scope.downloadQuery = function (queryId) {\n const filename = 'query_' + queryId + '.rq';\n let link = '/rest/monitor/repository/' + $repositories.getActiveRepository()\n + '/query/download?query=' + encodeURIComponent(queryId)\n + '&filename=' + encodeURIComponent(filename);\n if ($jwtAuth.isAuthenticated()) {\n link = link + '&authToken=' + encodeURIComponent($jwtAuth.getAuthToken());\n }\n\n window.open(link, '_blank');\n };\n\n $scope.toggleQueryExpanded = function (queryId) {\n $scope.expanded[queryId] = !$scope.expanded[queryId];\n };\n }]);\n\n\nqueriesCtrl.controller('DeleteQueryCtrl', ['$scope', '$modalInstance', function ($scope, $modalInstance) {\n\n $scope.ok = function () {\n $modalInstance.close();\n };\n\n $scope.cancel = function () {\n $modalInstance.dismiss('cancel');\n };\n}]);\n"],"sourceRoot":""}