graphdb-workbench 1.11.2 → 1.11.3-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 (273) hide show
  1. package/dist/10.94e753e068396d6b6ec9.bundle.js +2 -0
  2. package/dist/10.94e753e068396d6b6ec9.bundle.js.map +1 -0
  3. package/dist/11.043e8d20764e39c10e31.bundle.js +2 -0
  4. package/dist/11.043e8d20764e39c10e31.bundle.js.map +1 -0
  5. package/dist/111.73819c3722ceee587ce7.bundle.js +2 -0
  6. package/dist/111.73819c3722ceee587ce7.bundle.js.map +1 -0
  7. package/dist/112.b48a6ea437c1c3ddd7b5.bundle.js +2 -0
  8. package/dist/112.b48a6ea437c1c3ddd7b5.bundle.js.map +1 -0
  9. package/dist/113.09a0a17c31bfc387c352.bundle.js +2 -0
  10. package/dist/113.09a0a17c31bfc387c352.bundle.js.map +1 -0
  11. package/dist/{114.edebb3161ce52d4ca2e1.bundle.js → 114.dcc909bf7059e08fad2a.bundle.js} +2 -2
  12. package/dist/{114.edebb3161ce52d4ca2e1.bundle.js.map → 114.dcc909bf7059e08fad2a.bundle.js.map} +1 -1
  13. package/dist/119.08aed6d34851afdefac5.bundle.js +2 -0
  14. package/dist/119.08aed6d34851afdefac5.bundle.js.map +1 -0
  15. package/dist/12.bb55709d82da219afedf.bundle.js +2 -0
  16. package/dist/12.bb55709d82da219afedf.bundle.js.map +1 -0
  17. package/dist/121.574db48a413271cafc2e.bundle.js +2 -0
  18. package/dist/121.574db48a413271cafc2e.bundle.js.map +1 -0
  19. package/dist/123.9ba8fea15f3fcddc734d.bundle.js +2 -0
  20. package/dist/123.9ba8fea15f3fcddc734d.bundle.js.map +1 -0
  21. package/dist/125.4ffda62ed511df3132f6.bundle.js +2 -0
  22. package/dist/125.4ffda62ed511df3132f6.bundle.js.map +1 -0
  23. package/dist/126.c5fd3ba65878ffcc3c03.bundle.js +2 -0
  24. package/dist/126.c5fd3ba65878ffcc3c03.bundle.js.map +1 -0
  25. package/dist/129.5d023d0fbbb2c517932c.bundle.js +2 -0
  26. package/dist/129.5d023d0fbbb2c517932c.bundle.js.map +1 -0
  27. package/dist/131.e7a34e7f2b2e5898249d.bundle.js +2 -0
  28. package/dist/131.e7a34e7f2b2e5898249d.bundle.js.map +1 -0
  29. package/dist/132.b98cc245bf2c668b2ffd.bundle.js +2 -0
  30. package/dist/132.b98cc245bf2c668b2ffd.bundle.js.map +1 -0
  31. package/dist/134.72b76429fe72a9fc5119.bundle.js +2 -0
  32. package/dist/134.72b76429fe72a9fc5119.bundle.js.map +1 -0
  33. package/dist/136.991f41ef4565f68c31a7.bundle.js +2 -0
  34. package/dist/136.991f41ef4565f68c31a7.bundle.js.map +1 -0
  35. package/dist/137.b62f0afcb15c29764c04.bundle.js +2 -0
  36. package/dist/137.b62f0afcb15c29764c04.bundle.js.map +1 -0
  37. package/dist/138.fba22be7b3b98750e0c3.bundle.js +2 -0
  38. package/dist/138.fba22be7b3b98750e0c3.bundle.js.map +1 -0
  39. package/dist/{14.0c709b039159410b0b91.bundle.js → 14.6f8b993e972dee32e159.bundle.js} +2 -2
  40. package/dist/14.6f8b993e972dee32e159.bundle.js.map +1 -0
  41. package/dist/140.b4777706146b1ac867ed.bundle.js +2 -0
  42. package/dist/140.b4777706146b1ac867ed.bundle.js.map +1 -0
  43. package/dist/141.4464fb26b1893e0dbc7a.bundle.js +2 -0
  44. package/dist/141.4464fb26b1893e0dbc7a.bundle.js.map +1 -0
  45. package/dist/142.4d4fdae663dbeb2df310.bundle.js +2 -0
  46. package/dist/142.4d4fdae663dbeb2df310.bundle.js.map +1 -0
  47. package/dist/145.c9ab7d2a56005326406c.bundle.js +2 -0
  48. package/dist/145.c9ab7d2a56005326406c.bundle.js.map +1 -0
  49. package/dist/146.f5efcb8ef74bf52d3daf.bundle.js +2 -0
  50. package/dist/146.f5efcb8ef74bf52d3daf.bundle.js.map +1 -0
  51. package/dist/{147.0798c61ee5472e70b552.bundle.js → 147.fa44265c07ea2c3c5615.bundle.js} +2 -2
  52. package/dist/{147.0798c61ee5472e70b552.bundle.js.map → 147.fa44265c07ea2c3c5615.bundle.js.map} +1 -1
  53. package/dist/148.8b1e910543c6c25b2f0b.bundle.js +2 -0
  54. package/dist/148.8b1e910543c6c25b2f0b.bundle.js.map +1 -0
  55. package/dist/15.eb562ad073aa0fcd725f.bundle.js +2 -0
  56. package/dist/15.eb562ad073aa0fcd725f.bundle.js.map +1 -0
  57. package/dist/16.0a3c03f05a4bbdfe83ef.bundle.js +2 -0
  58. package/dist/16.0a3c03f05a4bbdfe83ef.bundle.js.map +1 -0
  59. package/dist/18.c3e44ed00a2532402729.bundle.js +3 -0
  60. package/dist/18.c3e44ed00a2532402729.bundle.js.map +1 -0
  61. package/dist/20.264daf29beccbf7de84a.bundle.js +2 -0
  62. package/dist/20.264daf29beccbf7de84a.bundle.js.map +1 -0
  63. package/dist/22.e85ffde858c596437b7a.bundle.js +1 -1
  64. package/dist/22.e85ffde858c596437b7a.bundle.js.map +1 -1
  65. package/dist/23.c58eff831306fad29d42.bundle.js +2 -0
  66. package/dist/23.c58eff831306fad29d42.bundle.js.map +1 -0
  67. package/dist/25.8c10d875bf32c8648157.bundle.js +2 -0
  68. package/dist/25.8c10d875bf32c8648157.bundle.js.map +1 -0
  69. package/dist/{26.57526f30f6b3c581334d.bundle.js → 26.c59631eb4bc0bf8d26b2.bundle.js} +2 -2
  70. package/dist/26.c59631eb4bc0bf8d26b2.bundle.js.map +1 -0
  71. package/dist/27.ed9e0cc8aaa3a12c1fa2.bundle.js +2 -0
  72. package/dist/27.ed9e0cc8aaa3a12c1fa2.bundle.js.map +1 -0
  73. package/dist/28.8f5d9fc8ee46db2a6357.bundle.js +2 -0
  74. package/dist/28.8f5d9fc8ee46db2a6357.bundle.js.map +1 -0
  75. package/dist/30.d341c7532759bc79f41a.bundle.js +1 -1
  76. package/dist/30.d341c7532759bc79f41a.bundle.js.map +1 -1
  77. package/dist/{32.ba5b5ca3e4b7dcf5bd15.bundle.js → 32.1059e272ed99ba3db699.bundle.js} +2 -2
  78. package/dist/32.1059e272ed99ba3db699.bundle.js.map +1 -0
  79. package/dist/{35.b8c8d16a8707c20a1fcb.bundle.js → 35.1f53c71368afc468cc10.bundle.js} +2 -2
  80. package/dist/35.1f53c71368afc468cc10.bundle.js.map +1 -0
  81. package/dist/{36.d96e6ee811e8340ae320.bundle.js → 36.aced0c9768c16e4d29ef.bundle.js} +2 -2
  82. package/dist/36.aced0c9768c16e4d29ef.bundle.js.map +1 -0
  83. package/dist/37.dcbe2e4e1f86ca2da209.bundle.js +1 -1
  84. package/dist/37.dcbe2e4e1f86ca2da209.bundle.js.map +1 -1
  85. package/dist/38.171aa543e807777b4f29.bundle.js +1 -1
  86. package/dist/38.171aa543e807777b4f29.bundle.js.map +1 -1
  87. package/dist/40.f660048c67e9b6d478dc.bundle.js +2 -0
  88. package/dist/40.f660048c67e9b6d478dc.bundle.js.map +1 -0
  89. package/dist/{42.190f8880ee8f3a97a042.bundle.js → 42.9bbccd6cb2c263d7b873.bundle.js} +2 -2
  90. package/dist/42.9bbccd6cb2c263d7b873.bundle.js.map +1 -0
  91. package/dist/{43.899bf21ce1de203ace21.bundle.js → 43.6f609ec150488009b166.bundle.js} +2 -2
  92. package/dist/43.6f609ec150488009b166.bundle.js.map +1 -0
  93. package/dist/{44.c649782fa0755b53a62c.bundle.js → 44.8be8b582a97146d3ad6f.bundle.js} +2 -2
  94. package/dist/44.8be8b582a97146d3ad6f.bundle.js.map +1 -0
  95. package/dist/47.b94dca10f70c70009f46.bundle.js +2 -0
  96. package/dist/47.b94dca10f70c70009f46.bundle.js.map +1 -0
  97. package/dist/{48.52c5b13ab244c45a8c43.bundle.js → 48.10699147cdbee9af3c2b.bundle.js} +2 -2
  98. package/dist/48.10699147cdbee9af3c2b.bundle.js.map +1 -0
  99. package/dist/{5.21d2da4b4bc2b26e2534.bundle.js → 5.275d1f74283aff0821f2.bundle.js} +2 -2
  100. package/dist/5.275d1f74283aff0821f2.bundle.js.map +1 -0
  101. package/dist/{56.ce399f5788c0f5fe937b.bundle.js → 56.dae3cb719fcb013d7a06.bundle.js} +2 -2
  102. package/dist/56.dae3cb719fcb013d7a06.bundle.js.map +1 -0
  103. package/dist/68.5fa639981e7ce624fb73.bundle.js +2 -0
  104. package/dist/68.5fa639981e7ce624fb73.bundle.js.map +1 -0
  105. package/dist/{7.a0f5ec224bebd08058f4.bundle.js → 7.9946929545b7635857ac.bundle.js} +2 -2
  106. package/dist/7.9946929545b7635857ac.bundle.js.map +1 -0
  107. package/dist/75.3dd1e0c0ad0cf40ed6a1.bundle.js +2 -0
  108. package/dist/75.3dd1e0c0ad0cf40ed6a1.bundle.js.map +1 -0
  109. package/dist/78.6caec59329b53bb098ee.bundle.js +2 -0
  110. package/dist/78.6caec59329b53bb098ee.bundle.js.map +1 -0
  111. package/dist/{79.f4a2c3ec71bed08d61b9.bundle.js → 79.0f7567cb18c210d45806.bundle.js} +2 -2
  112. package/dist/79.0f7567cb18c210d45806.bundle.js.map +1 -0
  113. package/dist/{9.c9fc88a79b7990e29e04.bundle.js → 9.c4b55fc1e3fc858be626.bundle.js} +2 -2
  114. package/dist/9.c4b55fc1e3fc858be626.bundle.js.map +1 -0
  115. package/dist/{94.3efcd047d4d4e506cbd7.bundle.js → 94.afe4c166f07dbf1bc30f.bundle.js} +2 -2
  116. package/dist/94.afe4c166f07dbf1bc30f.bundle.js.map +1 -0
  117. package/dist/{96.754454264340bc9d9a70.bundle.js → 96.f7d3f181e8860ce2bd8b.bundle.js} +2 -2
  118. package/dist/96.f7d3f181e8860ce2bd8b.bundle.js.map +1 -0
  119. package/dist/bundle.48ae48a008439cff2323.bundle.js +79 -0
  120. package/dist/bundle.48ae48a008439cff2323.bundle.js.map +1 -0
  121. package/dist/index.html +7 -7
  122. package/dist/js/angular/core/directives/queryeditor/templates/query-editor.html +18 -18
  123. package/dist/js/angular/core/directives/queryeditor/templates/query-sample.html +1 -1
  124. package/dist/js/angular/core/directives/rdfresourcesearch/templates/rdfResourceSearchTemplate.html +3 -3
  125. package/dist/js/angular/core/templates/core-errors.html +1 -1
  126. package/dist/js/angular/core/templates/search-resource-input.html +3 -3
  127. package/dist/js/angular/externalsync/templates/deleteConnector.html +1 -1
  128. package/dist/js/angular/graphexplore/templates/modal/save-graph.html +1 -1
  129. package/dist/js/angular/graphexplore/templates/rdfsCommentLabelTemplate.html +3 -3
  130. package/dist/js/angular/graphexplore/templates/searchIconInputTemplate.html +3 -3
  131. package/dist/js/angular/import/templates/filesTable.html +12 -12
  132. package/dist/js/angular/import/templates/settingsModal.html +19 -19
  133. package/dist/js/angular/import/templates/textSnippet.html +4 -4
  134. package/dist/js/angular/import/templates/urlImport.html +4 -4
  135. package/dist/js/angular/repositories/templates/fedx-repo.html +28 -19
  136. package/dist/js/angular/repositories/templates/ontop-repo.html +8 -8
  137. package/dist/js/angular/security/templates/modal/default-authorities.html +3 -3
  138. package/dist/js/angular/security/templates/user.html +12 -12
  139. package/dist/js/angular/security/templates/users.html +11 -11
  140. package/dist/js/angular/settings/modal/location-settings.html +5 -5
  141. package/dist/js/angular/templates/modal/add-location.html +3 -3
  142. package/dist/js/angular/templates/modal/edit-location.html +3 -3
  143. package/dist/js/angular/templates/modal/editRepoFile.html +1 -1
  144. package/dist/js/angular/templates/modal/upload-repository-config.html +2 -2
  145. package/dist/pages/autocomplete.html +8 -8
  146. package/dist/pages/choose-repository-type.html +1 -1
  147. package/dist/pages/clusterInfo.html +2 -2
  148. package/dist/pages/connectorsInfo.html +5 -5
  149. package/dist/pages/create-index.html +16 -16
  150. package/dist/pages/createConnector.html +22 -22
  151. package/dist/pages/dependencies.html +12 -12
  152. package/dist/pages/domainRangeInfo.html +4 -4
  153. package/dist/pages/edit.html +7 -7
  154. package/dist/pages/explore.html +10 -10
  155. package/dist/pages/export.html +14 -14
  156. package/dist/pages/find.html +2 -2
  157. package/dist/pages/graph-config/saveGraphConfig.html +28 -40
  158. package/dist/pages/graphs-visualizations.html +46 -46
  159. package/dist/pages/home.html +10 -10
  160. package/dist/pages/import.html +7 -7
  161. package/dist/pages/info.html +16 -16
  162. package/dist/pages/jdbc-create.html +20 -20
  163. package/dist/pages/jdbc.html +3 -3
  164. package/dist/pages/licenseInfo.html +1 -1
  165. package/dist/pages/login.html +2 -2
  166. package/dist/pages/monitor/queries.html +6 -6
  167. package/dist/pages/monitor/resources.html +3 -3
  168. package/dist/pages/namespaces.html +14 -14
  169. package/dist/pages/ontorefine.html +1 -1
  170. package/dist/pages/rdfClassHierarchyInfo.html +16 -16
  171. package/dist/pages/rdfrank.html +17 -17
  172. package/dist/pages/registerLicenseInfo.html +3 -3
  173. package/dist/pages/repositories.html +22 -22
  174. package/dist/pages/repository.html +28 -28
  175. package/dist/pages/similarity-indexes.html +15 -15
  176. package/dist/pages/sparql-template-create.html +9 -9
  177. package/dist/pages/sparql-templates.html +3 -3
  178. package/dist/pages/sparql.html +8 -8
  179. package/dist/pages/webapi.html +3 -3
  180. package/dist/res/swagger/index.html +25 -25
  181. package/package.json +5 -4
  182. package/dist/10.f0277e5092cea150b5a8.bundle.js +0 -2
  183. package/dist/10.f0277e5092cea150b5a8.bundle.js.map +0 -1
  184. package/dist/11.bdd794940dcfd5daa9a1.bundle.js +0 -2
  185. package/dist/11.bdd794940dcfd5daa9a1.bundle.js.map +0 -1
  186. package/dist/111.056eb71072bfd8f6551b.bundle.js +0 -2
  187. package/dist/111.056eb71072bfd8f6551b.bundle.js.map +0 -1
  188. package/dist/112.50fd62c66c6594e055a3.bundle.js +0 -2
  189. package/dist/112.50fd62c66c6594e055a3.bundle.js.map +0 -1
  190. package/dist/113.2c059fa7d06fd04149eb.bundle.js +0 -2
  191. package/dist/113.2c059fa7d06fd04149eb.bundle.js.map +0 -1
  192. package/dist/119.dfdf8b9afa2c31b90232.bundle.js +0 -2
  193. package/dist/119.dfdf8b9afa2c31b90232.bundle.js.map +0 -1
  194. package/dist/12.a3762f9fba854a28c1cb.bundle.js +0 -2
  195. package/dist/12.a3762f9fba854a28c1cb.bundle.js.map +0 -1
  196. package/dist/121.aa10886f87136602a6cf.bundle.js +0 -2
  197. package/dist/121.aa10886f87136602a6cf.bundle.js.map +0 -1
  198. package/dist/123.318a247a0939300080aa.bundle.js +0 -2
  199. package/dist/123.318a247a0939300080aa.bundle.js.map +0 -1
  200. package/dist/125.4978d60a14b65499a047.bundle.js +0 -2
  201. package/dist/125.4978d60a14b65499a047.bundle.js.map +0 -1
  202. package/dist/126.4a830f0d18f079b1dca7.bundle.js +0 -2
  203. package/dist/126.4a830f0d18f079b1dca7.bundle.js.map +0 -1
  204. package/dist/129.7ca4a0a32cacb6feb225.bundle.js +0 -2
  205. package/dist/129.7ca4a0a32cacb6feb225.bundle.js.map +0 -1
  206. package/dist/131.087611adf6562e7e1b00.bundle.js +0 -2
  207. package/dist/131.087611adf6562e7e1b00.bundle.js.map +0 -1
  208. package/dist/132.b1ed3e4c9238c5b6303b.bundle.js +0 -2
  209. package/dist/132.b1ed3e4c9238c5b6303b.bundle.js.map +0 -1
  210. package/dist/134.653804476f9803033cbe.bundle.js +0 -2
  211. package/dist/134.653804476f9803033cbe.bundle.js.map +0 -1
  212. package/dist/136.5d60eb9d8d66581003ce.bundle.js +0 -2
  213. package/dist/136.5d60eb9d8d66581003ce.bundle.js.map +0 -1
  214. package/dist/137.0cfdd5934c6a400ab990.bundle.js +0 -2
  215. package/dist/137.0cfdd5934c6a400ab990.bundle.js.map +0 -1
  216. package/dist/138.611df35cbfdfec860909.bundle.js +0 -2
  217. package/dist/138.611df35cbfdfec860909.bundle.js.map +0 -1
  218. package/dist/14.0c709b039159410b0b91.bundle.js.map +0 -1
  219. package/dist/140.b0310ba39e9c3237f48a.bundle.js +0 -2
  220. package/dist/140.b0310ba39e9c3237f48a.bundle.js.map +0 -1
  221. package/dist/141.5d76be84a3151e69fc9d.bundle.js +0 -2
  222. package/dist/141.5d76be84a3151e69fc9d.bundle.js.map +0 -1
  223. package/dist/142.a4094b510036aaf72b0b.bundle.js +0 -2
  224. package/dist/142.a4094b510036aaf72b0b.bundle.js.map +0 -1
  225. package/dist/145.6536295098a4f2e030e3.bundle.js +0 -2
  226. package/dist/145.6536295098a4f2e030e3.bundle.js.map +0 -1
  227. package/dist/146.ee9db0da29c25ec7fbf9.bundle.js +0 -2
  228. package/dist/146.ee9db0da29c25ec7fbf9.bundle.js.map +0 -1
  229. package/dist/148.0ce4968734a80e71b2b9.bundle.js +0 -2
  230. package/dist/148.0ce4968734a80e71b2b9.bundle.js.map +0 -1
  231. package/dist/15.fc7c799455b5aec64393.bundle.js +0 -2
  232. package/dist/15.fc7c799455b5aec64393.bundle.js.map +0 -1
  233. package/dist/16.005766c64d76f95231b1.bundle.js +0 -2
  234. package/dist/16.005766c64d76f95231b1.bundle.js.map +0 -1
  235. package/dist/18.2ddbba81e5b663db1894.bundle.js +0 -3
  236. package/dist/18.2ddbba81e5b663db1894.bundle.js.map +0 -1
  237. package/dist/20.a35d80fb5e80ae3874ce.bundle.js +0 -2
  238. package/dist/20.a35d80fb5e80ae3874ce.bundle.js.map +0 -1
  239. package/dist/23.102a20601f717ba91551.bundle.js +0 -2
  240. package/dist/23.102a20601f717ba91551.bundle.js.map +0 -1
  241. package/dist/25.bd69d5c4040e1547800b.bundle.js +0 -2
  242. package/dist/25.bd69d5c4040e1547800b.bundle.js.map +0 -1
  243. package/dist/26.57526f30f6b3c581334d.bundle.js.map +0 -1
  244. package/dist/27.ab75434b1389b977291c.bundle.js +0 -2
  245. package/dist/27.ab75434b1389b977291c.bundle.js.map +0 -1
  246. package/dist/28.b2180a7cba95d9328e1a.bundle.js +0 -2
  247. package/dist/28.b2180a7cba95d9328e1a.bundle.js.map +0 -1
  248. package/dist/32.ba5b5ca3e4b7dcf5bd15.bundle.js.map +0 -1
  249. package/dist/35.b8c8d16a8707c20a1fcb.bundle.js.map +0 -1
  250. package/dist/36.d96e6ee811e8340ae320.bundle.js.map +0 -1
  251. package/dist/40.c754ab2b3b35c2acb854.bundle.js +0 -2
  252. package/dist/40.c754ab2b3b35c2acb854.bundle.js.map +0 -1
  253. package/dist/42.190f8880ee8f3a97a042.bundle.js.map +0 -1
  254. package/dist/43.899bf21ce1de203ace21.bundle.js.map +0 -1
  255. package/dist/44.c649782fa0755b53a62c.bundle.js.map +0 -1
  256. package/dist/47.421938875d2461427ae3.bundle.js +0 -2
  257. package/dist/47.421938875d2461427ae3.bundle.js.map +0 -1
  258. package/dist/48.52c5b13ab244c45a8c43.bundle.js.map +0 -1
  259. package/dist/5.21d2da4b4bc2b26e2534.bundle.js.map +0 -1
  260. package/dist/56.ce399f5788c0f5fe937b.bundle.js.map +0 -1
  261. package/dist/68.6b887fe6160e5bd8742b.bundle.js +0 -2
  262. package/dist/68.6b887fe6160e5bd8742b.bundle.js.map +0 -1
  263. package/dist/7.a0f5ec224bebd08058f4.bundle.js.map +0 -1
  264. package/dist/75.dbd9915663de96056138.bundle.js +0 -2
  265. package/dist/75.dbd9915663de96056138.bundle.js.map +0 -1
  266. package/dist/78.608f8074bef29a89d68b.bundle.js +0 -2
  267. package/dist/78.608f8074bef29a89d68b.bundle.js.map +0 -1
  268. package/dist/79.f4a2c3ec71bed08d61b9.bundle.js.map +0 -1
  269. package/dist/9.c9fc88a79b7990e29e04.bundle.js.map +0 -1
  270. package/dist/94.3efcd047d4d4e506cbd7.bundle.js.map +0 -1
  271. package/dist/96.754454264340bc9d9a70.bundle.js.map +0 -1
  272. package/dist/bundle.ac70985c70f7da448f2d.bundle.js +0 -79
  273. package/dist/bundle.ac70985c70f7da448f2d.bundle.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["webpack:///./src/js/angular/utils/notifications.js","webpack:///./src/js/angular/similarity/controllers/create-index.controller.js"],"names":["Notifications","toastr","showToastMessageWithDelay","message","Promise","r","success","setTimeout","angular","module","factory","$inject","CreateSimilarityIdxCtrl","$scope","$uibModal","$timeout","SimilarityRestService","SparqlRestService","$location","productInfo","RDF4JRepositoriesRestService","LocalStorageAdapter","LSKeys","indexType","search","type","undefined","startsWith","viewType","newIndex","info","page","defaultTabConfig","id","name","query","inference","sameAs","initForViewType","indexNameFromLocation","editSearchQuery","options","searchQueries","searchQuery","analogicalQuery","currentQuery","notoolbarInference","notoolbarSameAs","window","editor","setQuery","allSamples","samples","stopList","analyzer","isLiteralIndex","getAndRemoveOption","getIndexes","data","literalIndexes","concat","filter","idx","status","map","inputIndex","desiredIdx","j","length","error","msg","getError","filenamePattern","RegExp","validateIndex","invalidIndexName","saveQueries","test","getQueryType","appendOption","option","value","key","optArr","split","i","join","saveQueryToLocal","currentQueryTab","setLoader","isRunning","progressMessage","extraMessage","yasrInnerContainer","element","document","getElementById","queryIsRunning","queryStartTime","Date","now","countTimeouted","addClass","removeClass","$$phase","$apply","fixSizesOnHorizontalViewModeSwitch","verticalViewParam","visibleWindowHeight","innerHeight","documentElement","clientHeight","body","verticalView","orientationViewMode","viewMode","newHeight","querySelector","getBoundingClientRect","style","height","noPadding","minHeight","paddingRight","paddingLeft","timer","$on","cancel","yasr","container","resize","showHideEditor","selectTab","$","tab","runQuery","changePage","explain","executedQueryTab","warning","getQueryMode","explainRequested","currentTabConfig","resultsCount","resetCurrentTabConfig","getNamespaces","getRepositoryNamespaces","usedPrefixes","results","bindings","forEach","e","prefix","namespace","namespaces","repositoryError","finally","addKnownPrefixes","JSON","stringify","getValue","isDefined","setValue","getExistingTabId","existingTabId","tabsData","item","loadTab","queryType","offset","allResultsCount","pageSize","timeFinished","timeTook","sizeDelta","css","getQueryID","attr","getSearchQueries","getSamples","selectQuery","infer","tabs","copy","$watch","helpHidden","get","HIDE_SIMILARITY_HELP","toggleHelp","set","viewQuery","getQuery","indexName","indexOptions","indexStopList","queryInference","querySameAs","indexAnalyzer","open","templateUrl","controller","resolve","isInvalidIndexName","isEmptyIndexName","trim","goToPage","showEditor","notoolbar","createIndex","index","err","url","xhr","abort","showPreview","outputType","queryExists","saveTab","findTabIndexByID","addNewTab","callback","tabName","savedQuery","changePagination","toggleSampleQueries","querySelected","tabId","getLoaderMessage","timeSeconds","timeHuman","getHumanReadableSeconds","changeViewMode","tabID","remove","focusQueryEditor","find","is","focus","getActiveRepository","on","$watchCollection","tabEvent","relatedTarget","target","showSampleQueries","sampleQueries","getResultsDescription","getUpdateDescription","getStaleWarningMessage","saveSearchQuery","changedQuery","isSearchQuery","then","async","response","getCloseBtnMsg"],"mappings":"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","file":"43.6f609ec150488009b166.bundle.js","sourcesContent":["angular\n .module('graphdb.framework.utils.notifications', [])\n .factory('Notifications', Notifications);\n\nNotifications.$inject = ['toastr'];\n\nfunction Notifications(toastr) {\n return {\n showToastMessageWithDelay\n };\n\n /**\n * This method will show message with tiny delay and only after completion\n * of latter redirection to \"graphs-visualizations\" page will happen.\n * @param {string} message The message to be displayed.\n * @return {Promise<any>}\n */\n function showToastMessageWithDelay(message) {\n return new Promise((r) => {\n toastr.success(message);\n setTimeout(r, 200);\n });\n }\n}\n","import 'angular/utils/notifications';\nimport 'angular/utils/local-storage-adapter';\n\nangular\n .module('graphdb.framework.similarity.controllers.create', [\n 'graphdb.framework.utils.notifications',\n 'graphdb.framework.utils.localstorageadapter'\n ])\n .controller('CreateSimilarityIdxCtrl', CreateSimilarityIdxCtrl);\n\nCreateSimilarityIdxCtrl.$inject = ['$scope', 'toastr', '$uibModal', '$timeout', 'SimilarityRestService', 'SparqlRestService', '$location', 'productInfo', 'Notifications', 'RDF4JRepositoriesRestService', 'LocalStorageAdapter', 'LSKeys'];\n\nfunction CreateSimilarityIdxCtrl($scope, toastr, $uibModal, $timeout, SimilarityRestService, SparqlRestService, $location, productInfo, Notifications, RDF4JRepositoriesRestService, LocalStorageAdapter, LSKeys) {\n\n const indexType = $location.search().type;\n if (indexType === undefined || indexType.startsWith('text')) {\n $scope.viewType = 'text';\n } else {\n $scope.viewType = indexType;\n }\n\n const textDefaultOptions = '-termweight idf';\n const predDefaultOptions = '';\n $scope.newIndex = {};\n\n $scope.info = productInfo;\n $scope.page = 1;\n\n const defaultTabConfig = {\n id: '1',\n name: '',\n query: '',\n inference: true,\n sameAs: true\n };\n\n let getNewIndexName = function (indexNameFromLocation) {\n if (indexNameFromLocation) {\n if ($scope.page !== 1) {\n return indexNameFromLocation;\n } else {\n return 'Copy_of_' + indexNameFromLocation;\n }\n }\n return '';\n };\n\n const initForViewType = function () {\n $scope.editSearchQuery = $location.search().editSearchQuery;\n $scope.page = $scope.editSearchQuery ? 2 : 1;\n $scope.newIndex.name = getNewIndexName($location.search().name);\n $scope.newIndex.options = ($location.search().options ? $location.search().options : ($scope.viewType === \"text\") ? textDefaultOptions : predDefaultOptions);\n\n if ($scope.searchQueries) {\n $scope.newIndex.searchQuery = $location.search().searchQuery ? $location.search().searchQuery : $scope.searchQueries[$scope.viewType];\n if ($scope.viewType === 'predication') {\n $scope.newIndex.analogicalQuery = $location.search().analogicalQuery ? $location.search().analogicalQuery : $scope.searchQueries['analogical'];\n }\n }\n\n if ($scope.editSearchQuery) {\n // Default will be opened search query tab for edition\n $scope.currentQuery.query = $scope.newIndex.searchQuery;\n $scope.notoolbarInference = true;\n $scope.notoolbarSameAs = true;\n if (window.editor) {\n $scope.setQuery($scope.newIndex.searchQuery);\n }\n } else {\n if ($scope.viewType === 'text' && $scope.allSamples) {\n $scope.samples = $scope.allSamples['text'];\n $scope.newIndex.stopList = ($location.search().stopList ? $location.search().stopList : undefined);\n $scope.newIndex.analyzer = ($location.search().analyzer ? $location.search().analyzer : 'org.apache.lucene.analysis.en.EnglishAnalyzer');\n const isLiteralIndex = getAndRemoveOption('-literal_index');\n if (isLiteralIndex !== undefined) {\n $scope.newIndex.isLiteralIndex = isLiteralIndex;\n }\n if (window.editor) {\n $scope.setQuery($scope.samples['literals']);\n }\n }\n if ($scope.viewType === 'predication' && $scope.allSamples) {\n SimilarityRestService.getIndexes()\n .success(function (data) {\n $scope.literalIndexes = ['no-index'].concat(data\n .filter(function (idx) {\n return idx.type === 'textLiteral' && (idx.status === 'BUILT' || idx.status === 'OUTDATED')\n })\n .map(function (idx) {\n return idx.name;\n }));\n\n if ($scope.newIndex.inputIndex === undefined) {\n const desiredIdx = getAndRemoveOption('-input_index');\n if (desiredIdx !== undefined) {\n for (let j = 0; j < $scope.literalIndexes.length; j++) {\n if (desiredIdx === $scope.literalIndexes[j]) {\n $scope.newIndex.inputIndex = $scope.literalIndexes[j];\n }\n }\n }\n }\n if ($scope.newIndex.inputIndex === undefined) {\n $scope.newIndex.inputIndex = $scope.literalIndexes[0];\n }\n })\n .error(function (data) {\n const msg = getError(data);\n toastr.error(msg, 'Could not get indexes');\n });\n\n $scope.samples = $scope.allSamples['predication'];\n if (window.editor) {\n $scope.setQuery($scope.samples['predication']);\n }\n }\n }\n };\n\n const filenamePattern = new RegExp('^[a-zA-Z0-9-_]+$');\n\n const validateIndex = function () {\n $scope.invalidIndexName = false;\n $scope.saveQueries();\n if (!$scope.newIndex.name) {\n $scope.invalidIndexName = 'Index name cannot be empty';\n return false;\n }\n if (!filenamePattern.test($scope.newIndex.name)) {\n $scope.invalidIndexName = 'Index name can contain only letters (a-z, A-Z), numbers (0-9), \"-\" and \"_\"';\n return false;\n }\n\n if (!$scope.newIndex.query) {\n toastr.error('Select query cannot be empty.');\n return false;\n }\n\n if (!$scope.newIndex.searchQuery) {\n toastr.error('Search query cannot be empty.');\n return false;\n }\n\n if ($scope.viewType === 'predication' && !$scope.newIndex.analogicalQuery) {\n toastr.error('Analogical query cannot be empty.');\n return false;\n }\n\n if (window.editor.getQueryType() !== 'SELECT') {\n toastr.error('Similarity index requires SELECT queries.');\n return;\n }\n\n return true;\n };\n\n const appendOption = function (option, value) {\n $scope.newIndex.options = $scope.newIndex.options + ($scope.newIndex.options === '' ? '' : ' ') + option + ' ' + value;\n };\n\n SimilarityRestService.getSearchQueries().success(function (data) {\n $scope.searchQueries = data;\n SimilarityRestService.getSamples().success(function (samples) {\n defaultTabConfig.query = $location.search().selectQuery ? $location.search().selectQuery : samples['text']['literals'];\n defaultTabConfig.inference = !($location.search().infer === 'false');\n defaultTabConfig.sameAs = !($location.search().sameAs === 'false');\n $scope.tabsData = $scope.tabs = [defaultTabConfig];\n $scope.currentQuery = angular.copy(defaultTabConfig);\n $scope.allSamples = samples;\n initForViewType();\n });\n }).error(function (data) {\n const msg = getError(data);\n toastr.error(msg, 'Could not get search queries');\n });\n\n $scope.$watch('viewType', function () {\n initForViewType();\n });\n\n $scope.helpHidden = LocalStorageAdapter.get(LSKeys.HIDE_SIMILARITY_HELP) === 1;\n $scope.toggleHelp = function (value) {\n if (value === undefined) {\n value = LocalStorageAdapter.get(LSKeys.HIDE_SIMILARITY_HELP);\n }\n if (value !== 1) {\n LocalStorageAdapter.set(LSKeys.HIDE_SIMILARITY_HELP, 1);\n $scope.helpHidden = true;\n } else {\n LocalStorageAdapter.set(LSKeys.HIDE_SIMILARITY_HELP, 0);\n $scope.helpHidden = false;\n }\n };\n\n $scope.viewQuery = function () {\n if (!validateIndex()) {\n return;\n }\n\n SimilarityRestService.getQuery({\n indexName: $scope.newIndex.name,\n indexOptions: $scope.newIndex.options,\n query: $scope.currentQuery.query,\n indexStopList: $scope.newIndex.stopList,\n queryInference: $scope.currentQuery.inference,\n querySameAs: $scope.currentQuery.sameAs,\n viewType: $scope.viewType,\n indexAnalyzer: $scope.newIndex.analyzer\n }).success(function (query) {\n if (query) {\n $uibModal.open({\n templateUrl: 'pages/viewQuery.html',\n controller: 'ViewQueryCtrl',\n resolve: {\n query: function () {\n return query;\n }\n }\n });\n }\n });\n };\n\n $scope.$watch('newIndex.name', function () {\n $scope.isInvalidIndexName = false;\n $scope.isEmptyIndexName = false;\n });\n\n $scope.saveQueries = function () {\n // save the current query\n const query = window.editor.getValue().trim();\n if ($scope.page === 1) {\n $scope.newIndex.query = query;\n } else if ($scope.page === 2) {\n $scope.newIndex.searchQuery = query;\n } else if ($scope.page === 3) {\n $scope.newIndex.analogicalQuery = query;\n }\n };\n\n $scope.goToPage = function (page) {\n // ugly fix for GDB-3099\n if (page !== 1 && $scope.viewMode !== 'yasr') {\n $scope.showEditor();\n $timeout(function () {\n if (page === 2) {\n $scope.currentQuery.query = $scope.newIndex.searchQuery;\n }\n if (page === 3) {\n $scope.currentQuery.query = $scope.newIndex.analogicalQuery;\n }\n\n window.editor.setValue($scope.currentQuery.query || ' ');\n });\n }\n\n $scope.saveQueries();\n // get the saved query\n if (page === 1) {\n $scope.currentQuery.query = $scope.newIndex.query;\n } else if (page === 2) {\n $scope.currentQuery.query = $scope.newIndex.searchQuery;\n } else if (page === 3) {\n $scope.currentQuery.query = $scope.newIndex.analogicalQuery;\n }\n\n loadTab();\n $scope.notoolbar = page !== 1;\n\n $scope.page = page;\n };\n\n $scope.createIndex = function () {\n if (!validateIndex()) {\n return;\n }\n // Check existing indexes\n SimilarityRestService.getIndexes()\n .success(function (data) {\n data.forEach(function (index) {\n if (index.name === $scope.newIndex.name) {\n $scope.invalidIndexName = 'Index with this name already exists.';\n }\n });\n if (!$scope.invalidIndexName) {\n let indexType = $scope.viewType;\n\n if ($scope.literalIndexes !== undefined) {\n const inputIndex = $scope.newIndex.inputIndex;\n if (inputIndex !== $scope.literalIndexes[0]) {\n appendOption('-input_index', inputIndex);\n }\n }\n if ($scope.newIndex.isLiteralIndex === 'true') {\n appendOption('-literal_index', 'true');\n indexType = 'textLiteral';\n }\n\n SimilarityRestService.createIndex('POST',\n $scope.newIndex.name,\n $scope.newIndex.options,\n $scope.newIndex.query,\n $scope.newIndex.searchQuery,\n $scope.newIndex.analogicalQuery,\n $scope.newIndex.stopList,\n $scope.currentQuery.inference,\n $scope.currentQuery.sameAs,\n indexType,\n $scope.newIndex.analyzer)\n .error(function (err) {\n toastr.error(getError(err), 'Could not create index');\n });\n $location.url('similarity');\n }\n\n })\n .error(function (data) {\n const msg = getError(data);\n toastr.error(msg, 'Could not get indexes');\n });\n };\n\n // Called when user clicks on a sample query\n $scope.setQuery = function (query) {\n // Hack for YASQE bug\n window.editor.setValue(query ? query : ' ');\n };\n\n // TODO don't copy paste each time, this is the same as in the graph config\n // DOWN HERE WE KEEP EVERYTHING PURELY QUERY EDITOR (MOSTLY BORROWED FROM query-editor.controller.js)\n\n $scope.showEditor = function () {\n if (window.editor.xhr) {\n window.editor.xhr.abort();\n }\n $scope.viewMode = 'yasr';\n };\n\n $scope.showPreview = function () {\n // For some reason YASR gets confused and sets this to rawResponse\n // if we execute a CONSTRUCT and then a SELECT. This makes sure it's always table.\n $scope.currentQuery.outputType = 'table';\n $scope.runQuery();\n };\n\n $scope.resetCurrentTabConfig = function () {\n $scope.currentTabConfig = {\n pageSize: 100, // page limit 100 as this is only used for preview\n page: 1,\n allResultsCount: 0,\n resultsCount: 0\n };\n };\n\n $scope.queryExists = false;\n\n $scope.resetCurrentTabConfig();\n\n $scope.tabsData = $scope.tabs = [defaultTabConfig];\n\n // query tab operations\n $scope.saveTab = saveTab;\n $scope.loadTab = loadTab;\n $scope.addNewTab = addNewTab;\n\n // query operations\n $scope.runQuery = runQuery;\n $scope.getNamespaces = getNamespaces;\n $scope.changePagination = changePagination;\n $scope.toggleSampleQueries = toggleSampleQueries;\n $scope.addKnownPrefixes = addKnownPrefixes;\n $scope.getExistingTabId = getExistingTabId;\n $scope.querySelected = querySelected;\n $scope.saveQueryToLocal = saveQueryToLocal;\n\n $scope.setLoader = setLoader;\n $scope.getLoaderMessage = getLoaderMessage;\n\n // query editor and results orientation\n $scope.fixSizesOnHorizontalViewModeSwitch = fixSizesOnHorizontalViewModeSwitch;\n $scope.changeViewMode = changeViewMode;\n $scope.showHideEditor = showHideEditor;\n $scope.focusQueryEditor = focusQueryEditor;\n $scope.orientationViewMode = true;\n\n // start of repository actions\n $scope.getActiveRepository();\n\n function getAndRemoveOption(key) {\n const optArr = $scope.newIndex.options.split(' ');\n for (let i = 0; i < optArr.length; i++) {\n if (optArr[i] === key && i + 1 < optArr.length) {\n const value = optArr[i + 1];\n\n delete optArr[i];\n delete optArr[i + 1];\n $scope.newIndex.options = optArr.join(' ');\n\n return value;\n }\n }\n return undefined;\n }\n\n function saveQueryToLocal(currentQueryTab) {\n }\n\n function setLoader(isRunning, progressMessage, extraMessage) {\n const yasrInnerContainer = angular.element(document.getElementById('yasr-inner'));\n $scope.queryIsRunning = isRunning;\n if (isRunning) {\n $scope.queryStartTime = Date.now();\n $scope.countTimeouted = false;\n $scope.progressMessage = progressMessage;\n $scope.extraMessage = extraMessage;\n yasrInnerContainer.addClass('hide');\n } else {\n $scope.progressMessage = '';\n $scope.extraMessage = '';\n yasrInnerContainer.removeClass('hide');\n }\n // We might call this from angular or outside angular so take care of applying the scope.\n if ($scope.$$phase === null) {\n $scope.$apply();\n }\n }\n\n function getLoaderMessage() {\n const timeSeconds = (Date.now() - $scope.queryStartTime) / 1000;\n const timeHuman = $scope.getHumanReadableSeconds(timeSeconds);\n let message = '';\n\n if ($scope.progressMessage) {\n message = $scope.progressMessage + '... ' + timeHuman;\n } else {\n message = 'Running operation...' + timeHuman;\n }\n if ($scope.extraMessage && timeSeconds > 10) {\n message += '\\n' + $scope.extraMessage;\n }\n\n return message;\n }\n\n // start of query editor results orientation operations\n function fixSizesOnHorizontalViewModeSwitch(verticalViewParam) {\n function visibleWindowHeight() {\n return window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight || 0;\n }\n\n const verticalView = verticalViewParam;\n if (!$scope.orientationViewMode) {\n $scope.noPadding = {paddingRight: 15, paddingLeft: 0};\n\n // window.editor is undefined if no repo is selected\n if (window.editor && document.querySelector('.CodeMirror-wrap')) {\n let newHeight = visibleWindowHeight() - (document.querySelector('.CodeMirror-wrap').getBoundingClientRect().top);\n newHeight -= 40;\n document.querySelector('.CodeMirror-wrap').style.height = newHeight + 'px';\n document.getElementById('yasr').style.minHeight = newHeight + 'px';\n //window.editor.refresh();\n } else {\n let timer;\n if (verticalView) {\n timer = $timeout(function () {\n $scope.fixSizesOnHorizontalViewModeSwitch(verticalView);\n }, 100);\n } else {\n timer = $timeout($scope.fixSizesOnHorizontalViewModeSwitch, 100);\n }\n\n $scope.$on('$destroy', function () {\n $timeout.cancel(timer);\n });\n }\n } else {\n if ($scope.viewMode === 'yasr') {\n let newHeight = visibleWindowHeight() - (document.querySelector('.CodeMirror-wrap').getBoundingClientRect().top);\n newHeight -= 40;\n document.querySelector('.CodeMirror-wrap').style.height = newHeight + 'px';\n } else {\n $scope.noPadding = {};\n document.querySelector('.CodeMirror-wrap').style.height = '';\n }\n document.getElementById('yasr').style.minHeight = '';\n }\n if (window.yasr && window.yasr.container) {\n $timeout(function () {\n window.yasr.container.resize();\n }, 100);\n }\n }\n\n if (!$scope.orientationViewMode) {\n showHideEditor();\n }\n\n function changeViewMode(tabID) {\n $scope.viewMode = 'none';\n $scope.orientationViewMode = !$scope.orientationViewMode;\n fixSizesOnHorizontalViewModeSwitch();\n $('.dataTables_filter').remove();\n $('.resultsTable').remove();\n $timeout(function () {\n loadTab();\n selectTab(tabID);\n }, 100);\n }\n\n function showHideEditor() {\n fixSizesOnHorizontalViewModeSwitch(true);\n }\n\n function focusQueryEditor() {\n if (!angular.element(document).find('.editable-input').is(':focus')) {\n angular.element(document).find('.CodeMirror textarea:first-child').focus();\n }\n }\n\n // end of query editor results orientation operations\n\n function selectTab(id) {\n $timeout(function () {\n $('a[data-id = \"' + id + '\"]').tab('show');\n }, 0);\n }\n\n // start of query operations\n function runQuery(changePage, explain) {\n $scope.executedQueryTab = $scope.currentQuery;\n if (window.editor.getQueryType() !== 'SELECT') {\n toastr.error('Similarity indexes work only with SELECT queries.');\n return;\n }\n if (explain && !(window.editor.getQueryType() === 'SELECT')) {\n toastr.warning('Explain only works with SELECT queries.');\n return;\n }\n\n if (window.editor.getQueryMode() === 'update') {\n toastr.warning('Cannot execute updates from this editor.');\n return;\n }\n\n $scope.explainRequested = explain;\n if (!$scope.queryIsRunning) {\n if (changePage) {\n $scope.currentTabConfig.resultsCount = 0;\n } else {\n $scope.resetCurrentTabConfig();\n }\n\n // Hides the editor and shows the yasr results\n $scope.viewMode = 'editor';\n if ($scope.orientationViewMode) {\n $scope.fixSizesOnHorizontalViewModeSwitch();\n }\n\n setLoader(true, 'Evaluating query');\n window.editor.query();\n }\n }\n\n // FIXME: this is copy-pasted in graphs-config.controller.js and query-editor.controller.js. Find a way to avoid duplications\n function getNamespaces() {\n // Signals the namespaces are to be fetched => loader will be shown\n setLoader(true, 'Refreshing namespaces', 'Normally this is a fast operation but it may take longer if a bigger repository needs to be initialised first.');\n RDF4JRepositoriesRestService.getRepositoryNamespaces()\n .success(function (data) {\n const usedPrefixes = {};\n data.results.bindings.forEach(function (e) {\n usedPrefixes[e.prefix.value] = e.namespace.value;\n });\n $scope.namespaces = usedPrefixes;\n })\n .error(function (data) {\n $scope.repositoryError = getError(data);\n })\n .finally(function () {\n // Signals namespaces were fetched => loader will be hidden\n setLoader(false);\n });\n }\n\n function changePagination() {\n runQuery(true, $scope.explainRequested);\n }\n\n if ($scope.getActiveRepository()) {\n getNamespaces();\n }\n\n $scope.$on('$destroy', function () {\n window.editor = null;\n window.yasr = null;\n });\n\n function toggleSampleQueries() {\n }\n\n // Add known prefixes\n function addKnownPrefixes() {\n SparqlRestService.addKnownPrefixes(JSON.stringify(window.editor.getValue()))\n .success(function (data) {\n if (angular.isDefined(window.editor) && angular.isDefined(data) && data !== window.editor.getValue()) {\n window.editor.setValue(data);\n }\n })\n .error(function (data) {\n const msg = getError(data);\n toastr.error(msg, 'Error! Could not add known prefixes');\n return true;\n });\n }\n\n $('textarea').on('paste', function () {\n $timeout(function () {\n addKnownPrefixes();\n }, 0);\n });\n\n function querySelected(query) {\n const tabId = getExistingTabId(query);\n $scope.toggleSampleQueries();\n if (!angular.isDefined(tabId)) {\n $scope.addNewTab(null, query.name, query.body);\n } else {\n selectTab(tabId);\n }\n }\n\n function getExistingTabId(query) {\n let existingTabId = undefined;\n angular.forEach($scope.tabsData, function (item) {\n if (item.name === query.name && item.query === query.body) {\n existingTabId = item.id;\n return item;\n }\n });\n\n return existingTabId;\n }\n\n\n // end of query operations\n\n // start of query tab operations\n function findTabIndexByID(id) {\n for (let i = 0; i < $scope.tabsData.length; i++) {\n const tab = $scope.tabsData[i];\n if (tab.id === id) {\n return i;\n }\n }\n }\n\n $scope.$watchCollection('[currentQuery.inference, currentQuery.sameAs]', function () {\n saveQueryToLocal($scope.currentQuery);\n });\n\n function saveTab(id) {\n const idx = findTabIndexByID(id);\n // Tab was deleted, don't try to save it's state\n if (idx === undefined) {\n return {};\n }\n const tab = $scope.tabsData[idx];\n //tab.query = window.editor.getValue();\n $scope.saveQueryToLocal(tab);\n return tab;\n }\n\n function addNewTab(callback, tabName, savedQuery) {\n }\n\n function loadTab() {\n $scope.tabsData = [$scope.currentQuery];\n\n const tab = $scope.currentQuery;\n\n if ($scope.currentQuery.query === null || $scope.currentQuery.query === '') {\n // hack for YASQE bug\n window.editor.setValue(' ');\n } else {\n window.editor.setValue($scope.currentQuery.query || ' ');\n }\n\n $timeout(function () {\n $scope.currentTabConfig = {};\n $scope.currentTabConfig.queryType = tab.queryType;\n $scope.currentTabConfig.resultsCount = tab.resultsCount;\n\n $scope.currentTabConfig.offset = tab.offset;\n $scope.currentTabConfig.allResultsCount = tab.allResultsCount;\n $scope.currentTabConfig.page = tab.page;\n $scope.currentTabConfig.pageSize = tab.pageSize;\n\n $scope.currentTabConfig.timeFinished = tab.timeFinished;\n $scope.currentTabConfig.timeTook = tab.timeTook;\n $scope.currentTabConfig.sizeDelta = tab.sizeDelta;\n $scope.$apply();\n }, 0);\n\n //Remove paddign of yasr so it will be aligned with sparql editor\n $('#yasr').css('padding', '0');\n }\n\n function getQueryID(element) {\n return $(element).attr('data-id');\n }\n\n $scope.$on('tabAction', function (e, tabEvent) {\n if (tabEvent.relatedTarget) {\n $scope.saveTab(getQueryID(tabEvent.relatedTarget));\n }\n $scope.loadTab(getQueryID(tabEvent.target));\n });\n\n $scope.$on('deleteAllexeptSelected', function (e, tabs) {\n $scope.tabsData = tabs;\n $scope.tabs = tabs;\n });\n // end of query tab operations\n\n $scope.currentQuery = angular.copy(defaultTabConfig);\n // $scope.state = {};\n $scope.showSampleQueries = false;\n $scope.savedQuery = {};\n $scope.sampleQueries = {};\n\n $scope.getResultsDescription = function () {\n };\n\n $scope.getUpdateDescription = function () {\n };\n\n $scope.getStaleWarningMessage = function () {\n };\n\n $scope.saveSearchQuery = function () {\n // Should validate that query is SELECT\n if (window.editor.getQueryType() !== 'SELECT') {\n toastr.error('Similarity index requires SELECT queries.');\n return;\n }\n let data = {\n name: $scope.newIndex.name,\n changedQuery: $scope.currentQuery.query,\n isSearchQuery: $scope.page === 2\n };\n\n return SimilarityRestService.saveSearchQuery(JSON.stringify(data))\n .then(async function () {\n await Notifications.showToastMessageWithDelay($scope.page === 2 ? 'Changed search query' : 'Changed analogical query');\n $location.url('similarity');\n }, function (response) {\n toastr.error(getError(response), 'Could not change query!');\n });\n };\n\n $scope.getCloseBtnMsg = function () {\n return \"Closes \" + ($scope.editSearchQuery ? \"query edition\": \"index creation\") + \" without saving the changes.\"\n }\n}\n"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[44],{44:function(e,o,t){"use strict";t.r(o);t(14);function n(e,o,t,n,r,c,i,u){let l;function a(){l&&o.cancel(l)}e.pluginName="autocomplete",e.setPluginIsActive=function(o){e.pluginIsActive=o};const s=function(){i.checkAutocompleteStatus().success((function(o){e.autocompleteEnabled=o,u.setAutocompleteStatus(o)})).error((function(e){t.error(getError(e))}))},d=function(){i.refreshIndexIRIs().success((function(o){e.shouldIndexIRIs=o})).error((function(e){t.error(getError(e))}))},f=function(){i.refreshIndexStatus().success((function(o){e.indexStatus=o})).error((function(e){t.error(getError(e))}))},g=function(){i.refreshLabelConfig().success((function(o){e.labelConfig=o})).error((function(e){t.error(getError(e))}))};e.checkForPlugin=function(){e.pluginFound=!1,e.setLoader(!0),i.checkForPlugin().success((function(o){e.pluginFound=!0===o,e.pluginFound?(s(),d(),f(),g()):(e.autocompleteEnabled=!1,e.loading=!1)})).error((function(e){t.error(getError(e))})).finally((function(){e.setLoader(!1)}))};const p=function(){l=o((function(){e.$broadcast("checkIsActive"),e.autocompleteEnabled&&f()}),5e3)};e.$on("$destroy",(function(){a()}));e.setLoader=function(o,t){c.cancel(e.loaderTimeout),o?e.loaderTimeout=c((function(){e.loader=o,e.loaderMessage=t}),300):e.loader=!1},e.getLoaderMessage=function(){return e.loaderMessage||"Loading..."},e.toggleAutocomplete=function(){const o=!e.autocompleteEnabled;e.setLoader(!0,o?"Enabling autocomplete...":"Disabling autocomplete..."),i.toggleAutocomplete(o).success((function(){s(),f()})).error((function(e){t.error(getError(e))})).finally((function(){e.setLoader(!1)}))},e.toggleIndexIRIs=function(){e.setLoader(!0,"Setting index IRIs..."),i.toggleIndexIRIs(!e.shouldIndexIRIs).success((function(){d(),f()})).error((function(e){t.error(getError(e))})).finally((function(){e.setLoader(!1)}))},e.buildIndex=function(){e.setLoader(!0,"Requesting index build..."),i.buildIndex().success((function(){e.indexStatus="BUILDING"})).error((function(e){t.error(getError(e))})).finally((function(){e.setLoader(!1)}))},e.interruptIndexing=function(){e.setLoader(!0,"Interrupting index..."),i.interruptIndexing().success((function(){f()})).error((function(e){t.error(getError(e))})).finally((function(){e.setLoader(!1)}))},e.getDegradedReason=function(){return n.getDegradedReason()},e.addLabel=function(){e.editLabel({labelIri:"",languages:""},!0)},e.editLabel=function(o,n){r.open({templateUrl:"js/angular/autocomplete/templates/modal/add-label.html",controller:"AddLabelCtrl",resolve:{data:function(){return{label:o,isNew:n}}}}).result.then((function(o){!function(o){e.setLoader(!0,"Updating label config..."),i.addLabelConfig(o).success((function(){g(),f()})).error((function(e){t.error(getError(e))})).finally((function(){e.setLoader(!1)}))}(o)}))},e.removeLabel=function(o){!function(o){e.setLoader(!0,"Updating label config..."),i.removeLabelConfig(o).success((function(){g(),f()})).error((function(e){t.error(getError(e))})).finally((function(){e.setLoader(!1)}))}(o)},e.$on("repositoryIsSet",(function(){a(),!n.getActiveRepository()||n.isActiveRepoOntopType()||n.isActiveRepoFedXType()||(e.checkForPlugin(),p())})),!n.getActiveRepository()||n.isActiveRepoOntopType()||n.isActiveRepoFedXType()||(e.checkForPlugin(),p())}function r(e,o,t,n){e.label=angular.copy(n.label),e.isNew=n.isNew,e.ok=function(){e.form.$valid&&o.close(e.label)},e.cancel=function(){o.dismiss("cancel")},e.setTemplate=function(o){e.label.labelIri=o,t((function(){$("#wb-autocomplete-languages").focus()}),0)}}angular.module("graphdb.framework.autocomplete.controllers",["toastr","graphdb.framework.rest.autocomplete.service"]).controller("AutocompleteCtrl",n).controller("AddLabelCtrl",r),n.$inject=["$scope","$interval","toastr","$repositories","$modal","$timeout","AutocompleteRestService","$autocompleteStatus"],r.$inject=["$scope","$modalInstance","$timeout","data"]}}]);
2
- //# sourceMappingURL=44.c649782fa0755b53a62c.bundle.js.map
1
+ (window.webpackJsonp=window.webpackJsonp||[]).push([[44],{44:function(e,o,t){"use strict";t.r(o);t(14);function n(e,o,t,n,r,c,i,u){let l;function a(){l&&o.cancel(l)}e.pluginName="autocomplete",e.setPluginIsActive=function(o){e.pluginIsActive=o};const s=function(){i.checkAutocompleteStatus().success((function(o){e.autocompleteEnabled=o,u.setAutocompleteStatus(o)})).error((function(e){t.error(getError(e))}))},d=function(){i.refreshIndexIRIs().success((function(o){e.shouldIndexIRIs=o})).error((function(e){t.error(getError(e))}))},f=function(){i.refreshIndexStatus().success((function(o){e.indexStatus=o})).error((function(e){t.error(getError(e))}))},g=function(){i.refreshLabelConfig().success((function(o){e.labelConfig=o})).error((function(e){t.error(getError(e))}))};e.checkForPlugin=function(){e.pluginFound=!1,e.setLoader(!0),i.checkForPlugin().success((function(o){e.pluginFound=!0===o,e.pluginFound?(s(),d(),f(),g()):(e.autocompleteEnabled=!1,e.loading=!1)})).error((function(e){t.error(getError(e))})).finally((function(){e.setLoader(!1)}))};const p=function(){l=o((function(){e.$broadcast("checkIsActive"),e.autocompleteEnabled&&f()}),5e3)};e.$on("$destroy",(function(){a()}));e.setLoader=function(o,t){c.cancel(e.loaderTimeout),o?e.loaderTimeout=c((function(){e.loader=o,e.loaderMessage=t}),300):e.loader=!1},e.getLoaderMessage=function(){return e.loaderMessage||"Loading..."},e.toggleAutocomplete=function(){const o=!e.autocompleteEnabled;e.setLoader(!0,o?"Enabling autocomplete...":"Disabling autocomplete..."),i.toggleAutocomplete(o).success((function(){s(),f()})).error((function(e){t.error(getError(e))})).finally((function(){e.setLoader(!1)}))},e.toggleIndexIRIs=function(){e.setLoader(!0,"Setting index IRIs..."),i.toggleIndexIRIs(!e.shouldIndexIRIs).success((function(){d(),f()})).error((function(e){t.error(getError(e))})).finally((function(){e.setLoader(!1)}))},e.buildIndex=function(){e.setLoader(!0,"Requesting index build..."),i.buildIndex().success((function(){e.indexStatus="BUILDING"})).error((function(e){t.error(getError(e))})).finally((function(){e.setLoader(!1)}))},e.interruptIndexing=function(){e.setLoader(!0,"Interrupting index..."),i.interruptIndexing().success((function(){f()})).error((function(e){t.error(getError(e))})).finally((function(){e.setLoader(!1)}))},e.getDegradedReason=function(){return n.getDegradedReason()},e.addLabel=function(){e.editLabel({labelIri:"",languages:""},!0)},e.editLabel=function(o,n){r.open({templateUrl:"js/angular/autocomplete/templates/modal/add-label.html",controller:"AddLabelCtrl",resolve:{data:function(){return{label:o,isNew:n}}}}).result.then((function(o){!function(o){e.setLoader(!0,"Updating label config..."),i.addLabelConfig(o).success((function(){g(),f()})).error((function(e){t.error(getError(e))})).finally((function(){e.setLoader(!1)}))}(o)}))},e.removeLabel=function(o){!function(o){e.setLoader(!0,"Updating label config..."),i.removeLabelConfig(o).success((function(){g(),f()})).error((function(e){t.error(getError(e))})).finally((function(){e.setLoader(!1)}))}(o)},e.$on("repositoryIsSet",(function(){a(),!n.getActiveRepository()||n.isActiveRepoOntopType()||n.isActiveRepoFedXType()||(e.checkForPlugin(),p())})),!n.getActiveRepository()||n.isActiveRepoOntopType()||n.isActiveRepoFedXType()||(e.checkForPlugin(),p())}function r(e,o,t,n){e.label=angular.copy(n.label),e.isNew=n.isNew,e.ok=function(){e.form.$valid&&o.close(e.label)},e.cancel=function(){o.dismiss("cancel")},e.setTemplate=function(o){e.label.labelIri=o,t((function(){$("#wb-autocomplete-languages").focus()}),0)}}angular.module("graphdb.framework.autocomplete.controllers",["toastr","graphdb.framework.rest.autocomplete.service"]).controller("AutocompleteCtrl",n).controller("AddLabelCtrl",r),n.$inject=["$scope","$interval","toastr","$repositories","$uibModal","$timeout","AutocompleteRestService","$autocompleteStatus"],r.$inject=["$scope","$uibModalInstance","$timeout","data"]}}]);
2
+ //# sourceMappingURL=44.8be8b582a97146d3ad6f.bundle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["webpack:///./src/js/angular/autocomplete/controllers.js"],"names":["AutocompleteCtrl","$scope","$interval","toastr","$repositories","$uibModal","$timeout","AutocompleteRestService","$autocompleteStatus","timer","cancelTimer","cancel","pluginName","setPluginIsActive","isPluginActive","pluginIsActive","refreshEnabledStatus","checkAutocompleteStatus","success","data","autocompleteEnabled","setAutocompleteStatus","error","getError","refreshIndexIRIs","shouldIndexIRIs","refreshIndexStatus","indexStatus","refreshLabelConfig","labelConfig","checkForPlugin","pluginFound","setLoader","loading","finally","pullStatus","$broadcast","$on","loader","message","loaderTimeout","loaderMessage","getLoaderMessage","toggleAutocomplete","newValue","toggleIndexIRIs","buildIndex","interruptIndexing","getDegradedReason","addLabel","editLabel","labelIri","languages","label","isNew","open","templateUrl","controller","resolve","result","then","addLabelConfig","removeLabel","removeLabelConfig","getActiveRepository","isActiveRepoOntopType","isActiveRepoFedXType","AddLabelCtrl","$uibModalInstance","angular","copy","ok","form","$valid","close","dismiss","setTemplate","iri","$","focus","module","$inject"],"mappings":"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","file":"44.8be8b582a97146d3ad6f.bundle.js","sourcesContent":["import 'angular/rest/autocomplete.rest.service';\n\nconst modules = [\n 'toastr',\n 'graphdb.framework.rest.autocomplete.service'\n];\n\nangular\n .module('graphdb.framework.autocomplete.controllers', modules)\n .controller('AutocompleteCtrl', AutocompleteCtrl)\n .controller('AddLabelCtrl', AddLabelCtrl);\n\nAutocompleteCtrl.$inject = ['$scope', '$interval', 'toastr', '$repositories', '$uibModal', '$timeout', 'AutocompleteRestService', '$autocompleteStatus'];\n\nfunction AutocompleteCtrl($scope, $interval, toastr, $repositories, $uibModal, $timeout, AutocompleteRestService, $autocompleteStatus) {\n\n let timer;\n\n function cancelTimer() {\n if (timer) {\n $interval.cancel(timer);\n }\n }\n\n $scope.pluginName = 'autocomplete';\n\n $scope.setPluginIsActive = function (isPluginActive) {\n $scope.pluginIsActive = isPluginActive;\n }\n\n const refreshEnabledStatus = function () {\n AutocompleteRestService.checkAutocompleteStatus()\n .success(function (data) {\n $scope.autocompleteEnabled = data;\n $autocompleteStatus.setAutocompleteStatus(data);\n }).error(function (data) {\n toastr.error(getError(data));\n });\n };\n\n const refreshIndexIRIs = function () {\n AutocompleteRestService.refreshIndexIRIs()\n .success(function (data) {\n $scope.shouldIndexIRIs = data;\n }).error(function (data) {\n toastr.error(getError(data));\n });\n };\n\n const refreshIndexStatus = function () {\n AutocompleteRestService.refreshIndexStatus()\n .success(function (data) {\n $scope.indexStatus = data;\n })\n .error(function (data) {\n toastr.error(getError(data));\n });\n };\n\n const refreshLabelConfig = function () {\n AutocompleteRestService.refreshLabelConfig()\n .success(function (data) {\n $scope.labelConfig = data;\n }).error(function (data) {\n toastr.error(getError(data));\n });\n };\n\n const addLabelConfig = function (label) {\n $scope.setLoader(true, 'Updating label config...');\n\n AutocompleteRestService.addLabelConfig(label)\n .success(function () {\n refreshLabelConfig();\n refreshIndexStatus();\n }).error(function (data) {\n toastr.error(getError(data));\n }).finally(function () {\n $scope.setLoader(false);\n });\n };\n\n const removeLabelConfig = function (label) {\n $scope.setLoader(true, 'Updating label config...');\n\n AutocompleteRestService.removeLabelConfig(label)\n .success(function () {\n refreshLabelConfig();\n refreshIndexStatus();\n }).error(function (data) {\n toastr.error(getError(data));\n }).finally(function () {\n $scope.setLoader(false);\n });\n };\n\n $scope.checkForPlugin = function () {\n $scope.pluginFound = false;\n\n $scope.setLoader(true);\n\n AutocompleteRestService.checkForPlugin()\n .success(function (data) {\n $scope.pluginFound = data === true;\n if ($scope.pluginFound) {\n refreshEnabledStatus();\n refreshIndexIRIs();\n refreshIndexStatus();\n refreshLabelConfig();\n } else {\n $scope.autocompleteEnabled = false;\n $scope.loading = false;\n }\n }).error(function (data) {\n toastr.error(getError(data));\n }).finally(function () {\n $scope.setLoader(false);\n });\n };\n\n const pullStatus = function () {\n timer = $interval(function () {\n $scope.$broadcast('checkIsActive');\n if ($scope.autocompleteEnabled) {\n refreshIndexStatus();\n }\n }, 5000);\n };\n\n $scope.$on(\"$destroy\", function () {\n cancelTimer();\n });\n\n const init = function() {\n if (!$repositories.getActiveRepository() ||\n $repositories.isActiveRepoOntopType() ||\n $repositories.isActiveRepoFedXType()) {\n return;\n }\n $scope.checkForPlugin();\n pullStatus();\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 $scope.getLoaderMessage = function () {\n return $scope.loaderMessage || 'Loading...';\n };\n\n $scope.toggleAutocomplete = function () {\n const newValue = !$scope.autocompleteEnabled;\n $scope.setLoader(true, newValue ? 'Enabling autocomplete...' : 'Disabling autocomplete...');\n\n AutocompleteRestService.toggleAutocomplete(newValue)\n .success(function () {\n refreshEnabledStatus();\n refreshIndexStatus();\n }).error(function (data) {\n toastr.error(getError(data));\n }).finally(function () {\n $scope.setLoader(false);\n });\n };\n\n $scope.toggleIndexIRIs = function () {\n $scope.setLoader(true, 'Setting index IRIs...');\n\n AutocompleteRestService.toggleIndexIRIs(!$scope.shouldIndexIRIs)\n .success(function () {\n refreshIndexIRIs();\n refreshIndexStatus();\n }).error(function (data) {\n toastr.error(getError(data));\n }).finally(function () {\n $scope.setLoader(false);\n });\n };\n\n $scope.buildIndex = function () {\n $scope.setLoader(true, 'Requesting index build...');\n\n AutocompleteRestService.buildIndex()\n .success(function () {\n $scope.indexStatus = 'BUILDING';\n }).error(function (data) {\n toastr.error(getError(data));\n }).finally(function () {\n $scope.setLoader(false);\n });\n };\n\n $scope.interruptIndexing = function () {\n $scope.setLoader(true, 'Interrupting index...');\n\n AutocompleteRestService.interruptIndexing()\n .success(function () {\n refreshIndexStatus();\n }).error(function (data) {\n toastr.error(getError(data));\n }).finally(function () {\n $scope.setLoader(false);\n });\n };\n\n $scope.getDegradedReason = function () {\n return $repositories.getDegradedReason();\n };\n\n $scope.addLabel = function () {\n $scope.editLabel({labelIri: '', languages: ''}, true);\n };\n\n $scope.editLabel = function (label, isNew) {\n const modalInstance = $uibModal.open({\n templateUrl: 'js/angular/autocomplete/templates/modal/add-label.html',\n controller: 'AddLabelCtrl',\n resolve: {\n data: function () {\n return {\n label: label,\n isNew: isNew\n };\n }\n }\n });\n\n modalInstance.result.then(function (label) {\n addLabelConfig(label);\n });\n };\n\n $scope.removeLabel = function (label) {\n removeLabelConfig(label);\n };\n\n $scope.$on('repositoryIsSet', function () {\n cancelTimer();\n if (!$repositories.getActiveRepository() ||\n $repositories.isActiveRepoOntopType() ||\n $repositories.isActiveRepoFedXType()) {\n return;\n }\n $scope.checkForPlugin();\n pullStatus();\n });\n\n init();\n}\n\nAddLabelCtrl.$inject = ['$scope', '$uibModalInstance', '$timeout', 'data'];\n\nfunction AddLabelCtrl($scope, $uibModalInstance, $timeout, data) {\n $scope.label = angular.copy(data.label);\n $scope.isNew = data.isNew;\n\n $scope.ok = function () {\n if ($scope.form.$valid) {\n $uibModalInstance.close($scope.label);\n }\n };\n\n $scope.cancel = function () {\n $uibModalInstance.dismiss('cancel');\n };\n\n $scope.setTemplate = function (iri) {\n $scope.label.labelIri = iri;\n $timeout(function () {\n $('#wb-autocomplete-languages').focus();\n }, 0);\n };\n}\n"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ (window.webpackJsonp=window.webpackJsonp||[]).push([[47],{39:function(a,e){angular.module("graphdb.framework.core.directives.paginations",[]).directive("paginations",(function(){return{template:'<uib-pagination class="nav navbar-right" total-items="matchedElements.length" items-per-page="pageSize" ng-model="page" ng-change="changePagination()" direction-links="false" boundary-links="true" max-size="5" rotate="true"></uib-pagination>'}}))}}]);
2
+ //# sourceMappingURL=47.b94dca10f70c70009f46.bundle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["webpack:///./src/js/angular/core/directives/paginations.js"],"names":["angular","module","directive","template"],"mappings":"2EAAAA,QAAQC,OAAO,gDAAiD,IAC3DC,UAAU,eAAe,WACtB,MAAO,CACHC,SAAU","file":"47.b94dca10f70c70009f46.bundle.js","sourcesContent":["angular.module('graphdb.framework.core.directives.paginations', [])\n .directive('paginations', function () {\n return {\n template: '<uib-pagination class=\"nav navbar-right\" total-items=\"matchedElements.length\" items-per-page=\"pageSize\" ng-model=\"page\" ng-change=\"changePagination()\" direction-links=\"false\" boundary-links=\"true\" max-size=\"5\" rotate=\"true\"></uib-pagination>',\n };\n });\n"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[48],{33:function(e,t,n){"use strict";n.r(t);n(4),n(12);function r(e,t,n,r,o,i,a,s,u,c,d,l,g,f){const y={id:"1",name:"",query:"select * where { \n\t?s ?p ?o .\n} limit 100 \n",inference:!0,sameAs:!0};let p,m=c.getPrincipal();function h(e,t){y.inference=t.appSettings.DEFAULT_INFERENCE,y.sameAs=t.appSettings.DEFAULT_SAMEAS,e.skipCountQuery=!t.appSettings.EXECUTE_COUNT,e.ignoreSharedQueries=t.appSettings.IGNORE_SHARED_QUERIES,e.tabsData=e.tabs=g.get(f.TABS_STATE)||[y],e.$watchCollection("[currentQuery.inference, currentQuery.sameAs]",(function(e,t,n){T(n.currentQuery)})),e.$on("repositoryIsSet",S)}function T(t){!function(){if(r.isActiveRepoOntopType())return;const t=document.getElementById("sameAs");!t||e.currentQuery.inference||t.disabled?e.currentQuery.inference&&t.disabled&&(t.removeAttribute("disabled"),e.currentQuery.sameAs=m.appSettings.DEFAULT_SAMEAS):(t.disabled=!0,e.currentQuery.sameAs=!1)}(),e.tabs.forEach((function(n,o){n.id===t.id&&(e.tabs[o].query=t.query,r.isActiveRepoOntopType()||(e.tabs[o].inference=t.inference,e.tabs[o].sameAs=t.sameAs))})),g.set(f.TABS_STATE,e.tabs)}function b(t,n,r,o){const i=angular.element(document.getElementById("yasr-inner"));e.queryIsRunning=t,t?(e.queryStartTime=Date.now(),e.countTimeouted=!1,e.progressMessage=n,e.extraMessage=r,e.noLoaderTimer=o,i.addClass("hide")):(e.progressMessage="",e.extraMessage="",e.noLoaderTimer=!1,e.currentTrackAlias=null,e.abortRequested=!1,i.removeClass("hide")),null===e.$$phase&&e.$apply()}function w(n){function r(){return window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight||0}if(e.orientationViewMode){if("yasr"===e.viewMode){let e=r()-document.querySelector(".CodeMirror-wrap").getBoundingClientRect().top;e-=40,document.querySelector(".CodeMirror-wrap").style.height=e+"px"}else e.noPadding={},document.querySelector(".CodeMirror-wrap").style.height="";document.getElementById("yasr").style.minHeight=""}else if(e.noPadding={paddingRight:15,paddingLeft:0},window.editor&&document.querySelector(".CodeMirror-wrap")){let e=r()-document.querySelector(".CodeMirror-wrap").getBoundingClientRect().top;e-=40,document.querySelector(".CodeMirror-wrap").style.height=e+"px",document.getElementById("yasr").style.minHeight=e+"px"}else{let r;r=t(n?function(){e.fixSizesOnHorizontalViewModeSwitch(n)}:e.fixSizesOnHorizontalViewModeSwitch,100),e.$on("$destroy",(function(){t.cancel(r)}))}window.yasr&&window.yasr.container&&t((function(){window.yasr.container.resize()}),100)}function C(){w(!0)}function S(t,n){n.newRepo&&(e.tabsData=g.get(f.TABS_STATE),e.tabsData.forEach((function(e){e.yasrData=void 0,e.queryType=void 0,e.resultsCount=0,e.allResultsCount=0,e.sizeDelta=void 0})),g.set(f.TABS_STATE,e.tabsData),e.tabs=e.tabsData,e.currentQuery={},e.errorMessage=null,e.repositoryError=null)}function E(e){t((function(){$('a[data-id = "'+e+'"]').tab("show")}),0)}function v(o,i){if(e.executedQueryTab=e.currentQuery,i){if("SELECT"!==window.editor.getQueryType()&&"CONSTRUCT"!==window.editor.getQueryType())return void n.warning("Explain only works with SELECT or CONSTRUCT queries.");if(r.isActiveRepoOntopType())return void n.warning("Explain not supported for Virtual repositories.")}if(e.explainRequested=i,!e.queryIsRunning){if(o?e.currentTabConfig.resultsCount=0:e.resetCurrentTabConfig(),e.lastRunQueryMode=window.editor.getQueryMode(),"update"===e.lastRunQueryMode&&r.isActiveRepoOntopType())return void n.warning("Updates are not supported for Virtual repositories.");if(b(!0,"update"===e.lastRunQueryMode?"Executing update":"Evaluating query"),"none"!==e.viewMode){e.viewMode="none",e.orientationViewMode&&e.fixSizesOnHorizontalViewModeSwitch();const n=t(window.editor.query,500);e.$on("$destroy",(function(){t.cancel(n)}))}else window.editor.query()}}function Q(){e.showSampleQueries=!e.showSampleQueries,e.showSampleQueries?a.getSavedQueries().success((function(t){e.sampleQueries=t,$("#sampleQueriesCollapse").collapse("show").width("300px")})).error((function(e){const t=getError(e);n.error(t,"Error! Could not get saved queries")})):$("#sampleQueriesCollapse").collapse("hide")}function A(t){let n=void 0;return e.tabsData.forEach((function(e){if(e.name===t.name&&e.query===t.body)return n=e.id,e})),n}function M(t){return function(n,r,o){e.savedQuery={name:n,query:r||window.editor.getValue(),shared:o},$(t).modal("show")}}function q(t){for(let n=0;n<e.tabsData.length;n++){if(e.tabsData[n].id===t)return n}}m?h(e,m):e.$on("securityInit",(function(e){m=c.getPrincipal(),h(e.currentScope,m)})),this.hint=document.createElement("span"),this.hint.innerHTML='Hint: "abC" matches "abC*", "ab c*" and "ab-c*"',this.hint.style.fontSize="12px",this.hint.style.color="gray",this.hint.style.backgroundColor="white",this.hint.style.position="absolute",this.hint.style.zIndex="3",this.hint.style.paddingLeft="12px",e.$watch((function(){return angular.element(".CodeMirror-hints").length}),e=>{if(e){const e=angular.element(".CodeMirror-hints")[0].getBoundingClientRect();document.body.appendChild(this.hint),this.hint.style.top=e.top-20+"px",this.hint.style.left=e.right-this.hint.offsetWidth-12+"px"}else this.hint&&this.hint.parentNode&&this.hint.parentNode.removeChild(this.hint)}),e.resetCurrentTabConfig=function(){e.currentTabConfig={pageSize:1e3,page:1,allResultsCount:0,resultsCount:0}},e.queryExists=!1,e.resetCurrentTabConfig(),e.saveTab=function(t){const n=q(t);if(void 0===n)return{};const r=e.tabsData[n];return e.saveQueryToLocal(r),r},e.loadTab=function(n){e.tabsData=g.get(f.TABS_STATE)||[y];const o=q(n),i=e.tabsData[o];i.yasrData&&b(!0,"Rendering results",null,!0);t((function(){""===e.currentQuery.query&&(e.currentQuery.query=" "),t((function(){window.editor.setValue(e.currentQuery.query),e.yasr.updateDownloadDropdown(),e.$broadcast("tabLoaded",e.currentQuery.id),e.yasr.options.output=i.outputType,i.yasrData&&(i.yasrData.customError?(e.yasr.results={getException:function(){return i.yasrData.customError}},b(!1)):t((function(){e.setYasrResponse(i.yasrData,i.textStatus,i.jqXhrOrErrorString),b(!1),$(".yasr_btnGroup li:nth-child(2)").hasClass("active")&&t((function(){$(".yasr_btnGroup li:nth-child(2) a").get(0).click()}),0)}),0))}),0)}),0),g.set(f.TABS_STATE_CURRENT_ID,n),e.currentQuery=i,t((function(){e.currentTabConfig={},e.currentTabConfig.queryType=i.queryType,e.currentTabConfig.resultsCount=i.resultsCount,e.currentTabConfig.offset=i.offset,e.currentTabConfig.allResultsCount=i.allResultsCount,e.currentTabConfig.allResultsCountExact=i.allResultsCountExact,e.currentTabConfig.page=i.page,e.currentTabConfig.pageSize=i.pageSize,e.currentTabConfig.timeFinished=i.timeFinished,e.currentTabConfig.timeTook=i.timeTook,e.currentTabConfig.sizeDelta=i.sizeDelta,e.currentTabConfig.customUpdateMessage=i.customUpdateMessage,e.currentTabConfig.errorMessage=i.errorMessage,e.currentTabConfig.warningMessage=i.warningMessage,e.$apply()}),0),$("#yasr").css("padding","0"),p||(p=setInterval(x,200));!function(){const t=r.isActiveRepoOntopType(),n=r.isActiveRepoFedXType();(function(e){const t=document.getElementById("sameAs"),n=document.getElementById("inference");t&&(t.disabled=!!e);n&&(n.disabled=!!e)})(t),e.nocount=!(!t&&!n)||!m.appSettings.EXECUTE_COUNT,t&&(e.currentQuery.inference=!0,e.currentQuery.sameAs=!0)}()},e.addNewTab=function(n,r,o){if(!_(!0))return;let i;i=r||o?{id:"1",name:r,query:o,inference:m.appSettings.DEFAULT_INFERENCE,sameAs:m.appSettings.DEFAULT_SAMEAS}:{id:"1",name:"",query:"select * where { \n\t?s ?p ?o .\n} limit 100 \n",inference:m.appSettings.DEFAULT_INFERENCE,sameAs:m.appSettings.DEFAULT_SAMEAS};D++;const a=""+D;e.tabsData=e.tabs;const s=i;s.id=a,e.tabsData.push(s),g.set(f.TABS_STATE_MAXID,D),g.set(f.TABS_STATE,e.tabsData);const u=Array.prototype.slice.call(arguments,1);t((function(){e.$apply(),E(a),n&&n.apply(this,u)}),0),e.tabs=e.tabsData},e.isTabChangeOk=_,e.runQuery=v,e.abortCurrentQuery=function(){l.abortQueryByAlias(e.currentTrackAlias).success((function(){e.abortRequested=!0}))},e.editQuery=function(t){o.open({templateUrl:"js/angular/core/directives/queryeditor/templates/query-sample.html",controller:"QuerySampleModalCtrl",resolve:{data:function(){return{title:'Edit Saved Query: "'+t.name+'"',query:t,edit:!0,okButtonText:"Save"}}}}).result.then((function(r){const o={name:r.name,body:r.body,shared:r.shared};t.name!==r.name?a.addNewSavedQuery(o).success((function(){e.deleteQueryHttp(t.name,!0)})).error((function(e){const t=getError(e);n.error(t,"Error! Cannot edit saved query")})):a.editSavedQuery(o).success((function(){$("#editQueryContainer").modal("hide"),e.toggleSampleQueries(),n.success("Saved query "+t.name+" was edited.")})).error((function(e){const t=getError(e);n.error(t,"Error! Cannot edit Saved query")}))}))},e.getNamespaces=function(){b(!0,"Refreshing namespaces","Normally this is a fast operation but it may take longer if a bigger repository needs to be initialised first."),e.namespacesLoading=!0,d.getRepositoryNamespaces().success((function(t){const n={};t.results.bindings.forEach((function(e){n[e.prefix.value]=e.namespace.value})),e.namespaces=n})).error((function(t){e.repositoryError=getError(t)})).finally((function(){b(!1),e.namespacesLoading=!1}))},e.changePagination=function(){v(!0,e.explainRequested)},e.toggleSampleQueries=Q,e.addKnownPrefixes=function(){a.addKnownPrefixes(JSON.stringify(window.editor.getValue())).success((function(e){angular.isDefined(window.editor)&&angular.isDefined(e)&&e!==window.editor.getValue()&&window.editor.setValue(e)})).error((function(e){const t=getError(e);return n.error(t,"Error! Could not add known prefixes"),!0}))},e.getExistingTabId=A,e.querySelected=function(t){const n=A(t);e.toggleSampleQueries(),e.isTabChangeOk(!1)&&(e.highlightNextTabChange=!0,angular.isDefined(n)?E(n):e.addNewTab(null,t.name,t.body))},e.deleteQuery=function(t){i.openSimpleModal({title:"Confirm",message:"Are you sure you want to delete the saved query '"+t+"'?",warning:!0}).result.then((function(){e.deleteQueryHttp(t)}))},e.deleteQueryHttp=function(t,r){a.deleteSavedQuery(t).success((function(){e.toggleSampleQueries(),r||n.success("Saved query: "+t+" was deleted.")})).error((function(e){const t=getError(e);n.error(t,"Error! Cannot delete saved query")}))},e.saveQuery=function(t,n){o.open({templateUrl:"js/angular/core/directives/queryeditor/templates/query-sample.html",controller:"QuerySampleModalCtrl",resolve:{data:function(){return{title:"Create New Saved Query",query:{name:t.name,body:t.query,shared:t.shared},edit:!1,okButtonText:"Create",queryExists:n}}}}).result.then((function(t){e.saveQueryHttp(t)}),(function(){}))},e.saveQueryHttp=function(t){a.addNewSavedQuery(t).success((function(){n.success("Saved query "+t.name+" was saved.")})).error((function(r){let o=getError(r);if(n.error(o,"Error! Cannot create saved query"),o="Query '"+t.name+"' already exists!"){t.query=t.body;const n=!0;e.saveQuery(t,n)}}))},e.saveQueryToLocal=T,e.setLoader=b,e.getLoaderMessage=function(){const t=(Date.now()-e.queryStartTime)/1e3;let n="",r="";e.noLoaderTimer||(n=e.getHumanReadableSeconds(t));r=e.progressMessage?e.progressMessage+"... "+n:"Running operation... "+n;e.extraMessage&&t>10&&(r+="\n"+e.extraMessage);return r},e.fixSizesOnHorizontalViewModeSwitch=w,e.changeViewMode=function(){e.viewMode="none",e.orientationViewMode=!e.orientationViewMode,g.set(f.VIEW_MODE,e.orientationViewMode),w()},e.showHideEditor=C,e.focusQueryEditor=function(){angular.element(document).find(".editable-input").is(":focus")||angular.element(document).find(".CodeMirror textarea:first-child").focus()},e.orientationViewMode=!g.get(f.VIEW_MODE)||"true"===g.get(f.VIEW_MODE),e.viewMode="none",e.getActiveRepository=function(){return r.getActiveRepository()},e.getActiveRepositoryNoError=function(){if(!e.repositoryError)return r.getActiveRepository()},e.orientationViewMode||C(),window.onbeforeunload=function(){e.currentQuery&&e.saveTab(e.currentQuery.id),g.set(f.TABS_STATE,e.tabs)},e.$on("$destroy",(function(){e.currentQuery&&e.saveTab(e.currentQuery.id),g.set(f.TABS_STATE,e.tabs),clearInterval(p)})),e.$on("$destroy",(function(){clearInterval(p),window.editor=null,window.yasr=null})),$(document).mouseup((function(t){const n=$("#sampleQueriesCollapse");!n.is(t.target)&&0===n.has(t.target).length&&e.showSampleQueries&&Q()}));let D=g.get(f.TABS_STATE_MAXID)||1;function R(e){return $(e).attr("data-id")}function x(){if(e.currentTabConfig.resultsCount>=0){const e=$(".saveAsDropDown");e.length>0&&!window.editor.queryValid?yasr.header.find(".saveAsDropDown").remove():0===e.length&&window.editor.queryValid&&yasr.updateDownloadDropdown()}}function _(t){return!(e.queryIsRunning&&!e.namespacesLoading)||(t?n.info("New tabs may not be opened while query or update is running."):n.info("Tabs may not be switched while query or update is running."),!1)}e.highlightNextTabChange=!1,e.$on("tabAction",(function(n,r){r.relatedTarget&&(t.cancel(r.relatedTarget.timer),$(r.relatedTarget).css("color",""),e.saveTab(R(r.relatedTarget))),e.loadTab(R(r.target));const o=["#ED4F2F","","#ED4F2F"],i=[400,400,400];if(e.highlightNextTabChange){e.highlightNextTabChange=!1;let n=0;$(r.target).css("color",o[n]);const a=function(){n++,n<o.length?($(r.target).css("color",o[n]),r.target.timer=t(a,i[n])):$(r.target).css("color","")};t(a,i[n])}})),e.$on("deleteAllexeptSelected",(function(t,n){e.tabsData=n,e.tabs=n})),e.currentQuery={},e.showSampleQueries=!1,e.savedQuery={},e.sampleQueries={},e.editQueryModal=M("#editQueryContainer"),e.deleteQueryModal=M("#confirmDeleteContainer"),e.saveQueryModal=M("#saveQueryContainer"),e.getResultsDescription=function(){let t;if(0===e.currentTabConfig.resultsCount)t="No results.";else{const n=(e.currentTabConfig.page-1)*e.currentTabConfig.pageSize+Math.min(e.currentTabConfig.resultsCount,e.currentTabConfig.pageSize);t="Showing results from "+s("currency")(e.currentTabConfig.offset,"",0)+" to "+s("currency")(n,"",0),e.currentTabConfig.allResultsCount>0&&(t+=e.currentTabConfig.allResultsCountExact?" of ":" of at least ",t+=s("currency")(e.currentTabConfig.allResultsCount,"",0)),t+="."}return t},e.getUpdateDescription=function(){return e.currentTabConfig.customUpdateMessage?e.currentTabConfig.customUpdateMessage:void 0===e.currentTabConfig.sizeDelta?"":e.currentTabConfig.sizeDelta<0?"Removed "+Math.abs(e.currentTabConfig.sizeDelta)+" statements.":e.currentTabConfig.sizeDelta>0?"Added "+e.currentTabConfig.sizeDelta+" statements.":"The number of statements did not change."},e.getStaleWarningMessage=function(){const t=60*Math.round((Date.now()-e.currentTabConfig.timeFinished)/6e4);if(t>=3600)return"Possibly stale result (obtained "+e.getHumanReadableSeconds(t)+" ago)."};const N=function(){};angular.element(u).bind("resize",N),e.$on("$destroy",(function(){angular.element(u).unbind("resize",N)}))}function o(e,t,n){n.queryExists&&(e.queryExists=!0),e.query=angular.copy(n.query),e.title=n.title,e.edit=n.edit,e.okButtonText=n.okButtonText,e.ok=function(){e.form.$valid&&t.close(e.query)},e.cancel=function(){t.dismiss("cancel")}}angular.module("graphdb.framework.core.directives.queryeditor.controllers",["graphdb.framework.utils.localstorageadapter","graphdb.framework.rest.sparql.service"]).controller("QueryEditorCtrl",r).controller("QuerySampleModalCtrl",o),r.$inject=["$scope","$timeout","toastr","$repositories","$modal","ModalService","SparqlRestService","$filter","$window","$jwtAuth","RDF4JRepositoriesRestService","MonitoringRestService","LocalStorageAdapter","LSKeys"],o.$inject=["$scope","$modalInstance","data"]}}]);
2
- //# sourceMappingURL=48.52c5b13ab244c45a8c43.bundle.js.map
1
+ (window.webpackJsonp=window.webpackJsonp||[]).push([[48],{33:function(e,t,n){"use strict";n.r(t);n(4),n(12);function r(e,t,n,r,o,i,a,s,u,c,d,l,g,f){const y={id:"1",name:"",query:"select * where { \n\t?s ?p ?o .\n} limit 100 \n",inference:!0,sameAs:!0};let p,m=c.getPrincipal();function h(e,t){y.inference=t.appSettings.DEFAULT_INFERENCE,y.sameAs=t.appSettings.DEFAULT_SAMEAS,e.skipCountQuery=!t.appSettings.EXECUTE_COUNT,e.ignoreSharedQueries=t.appSettings.IGNORE_SHARED_QUERIES,e.tabsData=e.tabs=g.get(f.TABS_STATE)||[y],e.$watchCollection("[currentQuery.inference, currentQuery.sameAs]",(function(e,t,n){T(n.currentQuery)})),e.$on("repositoryIsSet",S)}function T(t){!function(){if(r.isActiveRepoOntopType())return;const t=document.getElementById("sameAs");!t||e.currentQuery.inference||t.disabled?e.currentQuery.inference&&t.disabled&&(t.removeAttribute("disabled"),e.currentQuery.sameAs=m.appSettings.DEFAULT_SAMEAS):(t.disabled=!0,e.currentQuery.sameAs=!1)}(),e.tabs.forEach((function(n,o){n.id===t.id&&(e.tabs[o].query=t.query,r.isActiveRepoOntopType()||(e.tabs[o].inference=t.inference,e.tabs[o].sameAs=t.sameAs))})),g.set(f.TABS_STATE,e.tabs)}function b(t,n,r,o){const i=angular.element(document.getElementById("yasr-inner"));e.queryIsRunning=t,t?(e.queryStartTime=Date.now(),e.countTimeouted=!1,e.progressMessage=n,e.extraMessage=r,e.noLoaderTimer=o,i.addClass("hide")):(e.progressMessage="",e.extraMessage="",e.noLoaderTimer=!1,e.currentTrackAlias=null,e.abortRequested=!1,i.removeClass("hide")),null===e.$$phase&&e.$apply()}function w(n){function r(){return window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight||0}if(e.orientationViewMode){if("yasr"===e.viewMode){let e=r()-document.querySelector(".CodeMirror-wrap").getBoundingClientRect().top;e-=40,document.querySelector(".CodeMirror-wrap").style.height=e+"px"}else e.noPadding={},document.querySelector(".CodeMirror-wrap").style.height="";document.getElementById("yasr").style.minHeight=""}else if(e.noPadding={paddingRight:15,paddingLeft:0},window.editor&&document.querySelector(".CodeMirror-wrap")){let e=r()-document.querySelector(".CodeMirror-wrap").getBoundingClientRect().top;e-=40,document.querySelector(".CodeMirror-wrap").style.height=e+"px",document.getElementById("yasr").style.minHeight=e+"px"}else{let r;r=t(n?function(){e.fixSizesOnHorizontalViewModeSwitch(n)}:e.fixSizesOnHorizontalViewModeSwitch,100),e.$on("$destroy",(function(){t.cancel(r)}))}window.yasr&&window.yasr.container&&t((function(){window.yasr.container.resize()}),100)}function C(){w(!0)}function S(t,n){n.newRepo&&(e.tabsData=g.get(f.TABS_STATE),e.tabsData.forEach((function(e){e.yasrData=void 0,e.queryType=void 0,e.resultsCount=0,e.allResultsCount=0,e.sizeDelta=void 0})),g.set(f.TABS_STATE,e.tabsData),e.tabs=e.tabsData,e.currentQuery={},e.errorMessage=null,e.repositoryError=null)}function E(e){t((function(){$('a[data-id = "'+e+'"]').tab("show")}),0)}function v(o,i){if(e.executedQueryTab=e.currentQuery,i){if("SELECT"!==window.editor.getQueryType()&&"CONSTRUCT"!==window.editor.getQueryType())return void n.warning("Explain only works with SELECT or CONSTRUCT queries.");if(r.isActiveRepoOntopType())return void n.warning("Explain not supported for Virtual repositories.")}if(e.explainRequested=i,!e.queryIsRunning){if(o?e.currentTabConfig.resultsCount=0:e.resetCurrentTabConfig(),e.lastRunQueryMode=window.editor.getQueryMode(),"update"===e.lastRunQueryMode&&r.isActiveRepoOntopType())return void n.warning("Updates are not supported for Virtual repositories.");if(b(!0,"update"===e.lastRunQueryMode?"Executing update":"Evaluating query"),"none"!==e.viewMode){e.viewMode="none",e.orientationViewMode&&e.fixSizesOnHorizontalViewModeSwitch();const n=t(window.editor.query,500);e.$on("$destroy",(function(){t.cancel(n)}))}else window.editor.query()}}function Q(){e.showSampleQueries=!e.showSampleQueries,e.showSampleQueries?a.getSavedQueries().success((function(t){e.sampleQueries=t,$("#sampleQueriesCollapse").collapse("show").width("300px")})).error((function(e){const t=getError(e);n.error(t,"Error! Could not get saved queries")})):$("#sampleQueriesCollapse").collapse("hide")}function A(t){let n=void 0;return e.tabsData.forEach((function(e){if(e.name===t.name&&e.query===t.body)return n=e.id,e})),n}function M(t){return function(n,r,o){e.savedQuery={name:n,query:r||window.editor.getValue(),shared:o},$(t).modal("show")}}function q(t){for(let n=0;n<e.tabsData.length;n++){if(e.tabsData[n].id===t)return n}}m?h(e,m):e.$on("securityInit",(function(e){m=c.getPrincipal(),h(e.currentScope,m)})),this.hint=document.createElement("span"),this.hint.innerHTML='Hint: "abC" matches "abC*", "ab c*" and "ab-c*"',this.hint.style.fontSize="12px",this.hint.style.color="gray",this.hint.style.backgroundColor="white",this.hint.style.position="absolute",this.hint.style.zIndex="3",this.hint.style.paddingLeft="12px",e.$watch((function(){return angular.element(".CodeMirror-hints").length}),e=>{if(e){const e=angular.element(".CodeMirror-hints")[0].getBoundingClientRect();document.body.appendChild(this.hint),this.hint.style.top=e.top-20+"px",this.hint.style.left=e.right-this.hint.offsetWidth-12+"px"}else this.hint&&this.hint.parentNode&&this.hint.parentNode.removeChild(this.hint)}),e.resetCurrentTabConfig=function(){e.currentTabConfig={pageSize:1e3,page:1,allResultsCount:0,resultsCount:0}},e.queryExists=!1,e.resetCurrentTabConfig(),e.saveTab=function(t){const n=q(t);if(void 0===n)return{};const r=e.tabsData[n];return e.saveQueryToLocal(r),r},e.loadTab=function(n){e.tabsData=g.get(f.TABS_STATE)||[y];const o=q(n),i=e.tabsData[o];i.yasrData&&b(!0,"Rendering results",null,!0);t((function(){""===e.currentQuery.query&&(e.currentQuery.query=" "),t((function(){window.editor.setValue(e.currentQuery.query),e.yasr.updateDownloadDropdown(),e.$broadcast("tabLoaded",e.currentQuery.id),e.yasr.options.output=i.outputType,i.yasrData&&(i.yasrData.customError?(e.yasr.results={getException:function(){return i.yasrData.customError}},b(!1)):t((function(){e.setYasrResponse(i.yasrData,i.textStatus,i.jqXhrOrErrorString),b(!1),$(".yasr_btnGroup li:nth-child(2)").hasClass("active")&&t((function(){$(".yasr_btnGroup li:nth-child(2) a").get(0).click()}),0)}),0))}),0)}),0),g.set(f.TABS_STATE_CURRENT_ID,n),e.currentQuery=i,t((function(){e.currentTabConfig={},e.currentTabConfig.queryType=i.queryType,e.currentTabConfig.resultsCount=i.resultsCount,e.currentTabConfig.offset=i.offset,e.currentTabConfig.allResultsCount=i.allResultsCount,e.currentTabConfig.allResultsCountExact=i.allResultsCountExact,e.currentTabConfig.page=i.page,e.currentTabConfig.pageSize=i.pageSize,e.currentTabConfig.timeFinished=i.timeFinished,e.currentTabConfig.timeTook=i.timeTook,e.currentTabConfig.sizeDelta=i.sizeDelta,e.currentTabConfig.customUpdateMessage=i.customUpdateMessage,e.currentTabConfig.errorMessage=i.errorMessage,e.currentTabConfig.warningMessage=i.warningMessage,e.$apply()}),0),$("#yasr").css("padding","0"),p||(p=setInterval(x,200));!function(){const t=r.isActiveRepoOntopType(),n=r.isActiveRepoFedXType();(function(e){const t=document.getElementById("sameAs"),n=document.getElementById("inference");t&&(t.disabled=!!e);n&&(n.disabled=!!e)})(t),e.nocount=!(!t&&!n)||!m.appSettings.EXECUTE_COUNT,t&&(e.currentQuery.inference=!0,e.currentQuery.sameAs=!0)}()},e.addNewTab=function(n,r,o){if(!_(!0))return;let i;i=r||o?{id:"1",name:r,query:o,inference:m.appSettings.DEFAULT_INFERENCE,sameAs:m.appSettings.DEFAULT_SAMEAS}:{id:"1",name:"",query:"select * where { \n\t?s ?p ?o .\n} limit 100 \n",inference:m.appSettings.DEFAULT_INFERENCE,sameAs:m.appSettings.DEFAULT_SAMEAS};D++;const a=""+D;e.tabsData=e.tabs;const s=i;s.id=a,e.tabsData.push(s),g.set(f.TABS_STATE_MAXID,D),g.set(f.TABS_STATE,e.tabsData);const u=Array.prototype.slice.call(arguments,1);t((function(){e.$apply(),E(a),n&&n.apply(this,u)}),0),e.tabs=e.tabsData},e.isTabChangeOk=_,e.runQuery=v,e.abortCurrentQuery=function(){l.abortQueryByAlias(e.currentTrackAlias).success((function(){e.abortRequested=!0}))},e.editQuery=function(t){o.open({templateUrl:"js/angular/core/directives/queryeditor/templates/query-sample.html",controller:"QuerySampleModalCtrl",resolve:{data:function(){return{title:'Edit Saved Query: "'+t.name+'"',query:t,edit:!0,okButtonText:"Save"}}}}).result.then((function(r){const o={name:r.name,body:r.body,shared:r.shared};t.name!==r.name?a.addNewSavedQuery(o).success((function(){e.deleteQueryHttp(t.name,!0)})).error((function(e){const t=getError(e);n.error(t,"Error! Cannot edit saved query")})):a.editSavedQuery(o).success((function(){$("#editQueryContainer").modal("hide"),e.toggleSampleQueries(),n.success("Saved query "+t.name+" was edited.")})).error((function(e){const t=getError(e);n.error(t,"Error! Cannot edit Saved query")}))}))},e.getNamespaces=function(){b(!0,"Refreshing namespaces","Normally this is a fast operation but it may take longer if a bigger repository needs to be initialised first."),e.namespacesLoading=!0,d.getRepositoryNamespaces().success((function(t){const n={};t.results.bindings.forEach((function(e){n[e.prefix.value]=e.namespace.value})),e.namespaces=n})).error((function(t){e.repositoryError=getError(t)})).finally((function(){b(!1),e.namespacesLoading=!1}))},e.changePagination=function(){v(!0,e.explainRequested)},e.toggleSampleQueries=Q,e.addKnownPrefixes=function(){a.addKnownPrefixes(JSON.stringify(window.editor.getValue())).success((function(e){angular.isDefined(window.editor)&&angular.isDefined(e)&&e!==window.editor.getValue()&&window.editor.setValue(e)})).error((function(e){const t=getError(e);return n.error(t,"Error! Could not add known prefixes"),!0}))},e.getExistingTabId=A,e.querySelected=function(t){const n=A(t);e.toggleSampleQueries(),e.isTabChangeOk(!1)&&(e.highlightNextTabChange=!0,angular.isDefined(n)?E(n):e.addNewTab(null,t.name,t.body))},e.deleteQuery=function(t){i.openSimpleModal({title:"Confirm",message:"Are you sure you want to delete the saved query '"+t+"'?",warning:!0}).result.then((function(){e.deleteQueryHttp(t)}))},e.deleteQueryHttp=function(t,r){a.deleteSavedQuery(t).success((function(){e.toggleSampleQueries(),r||n.success("Saved query: "+t+" was deleted.")})).error((function(e){const t=getError(e);n.error(t,"Error! Cannot delete saved query")}))},e.saveQuery=function(t,n){o.open({templateUrl:"js/angular/core/directives/queryeditor/templates/query-sample.html",controller:"QuerySampleModalCtrl",resolve:{data:function(){return{title:"Create New Saved Query",query:{name:t.name,body:t.query,shared:t.shared},edit:!1,okButtonText:"Create",queryExists:n}}}}).result.then((function(t){e.saveQueryHttp(t)}),(function(){}))},e.saveQueryHttp=function(t){a.addNewSavedQuery(t).success((function(){n.success("Saved query "+t.name+" was saved.")})).error((function(r){let o=getError(r);if(n.error(o,"Error! Cannot create saved query"),o="Query '"+t.name+"' already exists!"){t.query=t.body;const n=!0;e.saveQuery(t,n)}}))},e.saveQueryToLocal=T,e.setLoader=b,e.getLoaderMessage=function(){const t=(Date.now()-e.queryStartTime)/1e3;let n="",r="";e.noLoaderTimer||(n=e.getHumanReadableSeconds(t));r=e.progressMessage?e.progressMessage+"... "+n:"Running operation... "+n;e.extraMessage&&t>10&&(r+="\n"+e.extraMessage);return r},e.fixSizesOnHorizontalViewModeSwitch=w,e.changeViewMode=function(){e.viewMode="none",e.orientationViewMode=!e.orientationViewMode,g.set(f.VIEW_MODE,e.orientationViewMode),w()},e.showHideEditor=C,e.focusQueryEditor=function(){angular.element(document).find(".editable-input").is(":focus")||angular.element(document).find(".CodeMirror textarea:first-child").focus()},e.orientationViewMode=!g.get(f.VIEW_MODE)||"true"===g.get(f.VIEW_MODE),e.viewMode="none",e.getActiveRepository=function(){return r.getActiveRepository()},e.getActiveRepositoryNoError=function(){if(!e.repositoryError)return r.getActiveRepository()},e.orientationViewMode||C(),window.onbeforeunload=function(){e.currentQuery&&e.saveTab(e.currentQuery.id),g.set(f.TABS_STATE,e.tabs)},e.$on("$destroy",(function(){e.currentQuery&&e.saveTab(e.currentQuery.id),g.set(f.TABS_STATE,e.tabs),clearInterval(p)})),e.$on("$destroy",(function(){clearInterval(p),window.editor=null,window.yasr=null})),$(document).mouseup((function(t){const n=$("#sampleQueriesCollapse");!n.is(t.target)&&0===n.has(t.target).length&&e.showSampleQueries&&Q()}));let D=g.get(f.TABS_STATE_MAXID)||1;function R(e){return $(e).attr("data-id")}function x(){if(e.currentTabConfig.resultsCount>=0){const e=$(".saveAsDropDown");e.length>0&&!window.editor.queryValid?yasr.header.find(".saveAsDropDown").remove():0===e.length&&window.editor.queryValid&&yasr.updateDownloadDropdown()}}function _(t){return!(e.queryIsRunning&&!e.namespacesLoading)||(t?n.info("New tabs may not be opened while query or update is running."):n.info("Tabs may not be switched while query or update is running."),!1)}e.highlightNextTabChange=!1,e.$on("tabAction",(function(n,r){r.relatedTarget&&(t.cancel(r.relatedTarget.timer),$(r.relatedTarget).css("color",""),e.saveTab(R(r.relatedTarget))),e.loadTab(R(r.target));const o=["#ED4F2F","","#ED4F2F"],i=[400,400,400];if(e.highlightNextTabChange){e.highlightNextTabChange=!1;let n=0;$(r.target).css("color",o[n]);const a=function(){n++,n<o.length?($(r.target).css("color",o[n]),r.target.timer=t(a,i[n])):$(r.target).css("color","")};t(a,i[n])}})),e.$on("deleteAllexeptSelected",(function(t,n){e.tabsData=n,e.tabs=n})),e.currentQuery={},e.showSampleQueries=!1,e.savedQuery={},e.sampleQueries={},e.editQueryModal=M("#editQueryContainer"),e.deleteQueryModal=M("#confirmDeleteContainer"),e.saveQueryModal=M("#saveQueryContainer"),e.getResultsDescription=function(){let t;if(0===e.currentTabConfig.resultsCount)t="No results.";else{const n=(e.currentTabConfig.page-1)*e.currentTabConfig.pageSize+Math.min(e.currentTabConfig.resultsCount,e.currentTabConfig.pageSize);t="Showing results from "+s("currency")(e.currentTabConfig.offset,"",0)+" to "+s("currency")(n,"",0),e.currentTabConfig.allResultsCount>0&&(t+=e.currentTabConfig.allResultsCountExact?" of ":" of at least ",t+=s("currency")(e.currentTabConfig.allResultsCount,"",0)),t+="."}return t},e.getUpdateDescription=function(){return e.currentTabConfig.customUpdateMessage?e.currentTabConfig.customUpdateMessage:void 0===e.currentTabConfig.sizeDelta?"":e.currentTabConfig.sizeDelta<0?"Removed "+Math.abs(e.currentTabConfig.sizeDelta)+" statements.":e.currentTabConfig.sizeDelta>0?"Added "+e.currentTabConfig.sizeDelta+" statements.":"The number of statements did not change."},e.getStaleWarningMessage=function(){const t=60*Math.round((Date.now()-e.currentTabConfig.timeFinished)/6e4);if(t>=3600)return"Possibly stale result (obtained "+e.getHumanReadableSeconds(t)+" ago)."};const N=function(){};angular.element(u).bind("resize",N),e.$on("$destroy",(function(){angular.element(u).unbind("resize",N)}))}function o(e,t,n){n.queryExists&&(e.queryExists=!0),e.query=angular.copy(n.query),e.title=n.title,e.edit=n.edit,e.okButtonText=n.okButtonText,e.ok=function(){e.form.$valid&&t.close(e.query)},e.cancel=function(){t.dismiss("cancel")}}angular.module("graphdb.framework.core.directives.queryeditor.controllers",["graphdb.framework.utils.localstorageadapter","graphdb.framework.rest.sparql.service"]).controller("QueryEditorCtrl",r).controller("QuerySampleModalCtrl",o),r.$inject=["$scope","$timeout","toastr","$repositories","$uibModal","ModalService","SparqlRestService","$filter","$window","$jwtAuth","RDF4JRepositoriesRestService","MonitoringRestService","LocalStorageAdapter","LSKeys"],o.$inject=["$scope","$uibModalInstance","data"]}}]);
2
+ //# sourceMappingURL=48.10699147cdbee9af3c2b.bundle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["webpack:///./src/js/angular/core/directives/queryeditor/query-editor.controller.js"],"names":["QueryEditorCtrl","$scope","$timeout","toastr","$repositories","$uibModal","ModalService","SparqlRestService","$filter","$window","$jwtAuth","RDF4JRepositoriesRestService","MonitoringRestService","LocalStorageAdapter","LSKeys","defaultTabConfig","id","name","query","inference","sameAs","checkQueryIntervalId","principal","getPrincipal","initTabs","scope","appSettings","DEFAULT_INFERENCE","DEFAULT_SAMEAS","skipCountQuery","EXECUTE_COUNT","ignoreSharedQueries","IGNORE_SHARED_QUERIES","tabsData","tabs","get","TABS_STATE","$watchCollection","newVal","oldVal","saveQueryToLocal","currentQuery","$on","deleteCachedSparqlResults","currentQueryTab","isActiveRepoOntopType","sameAsBtn","document","getElementById","disabled","removeAttribute","shouldDisableSameAs","forEach","tab","index","set","setLoader","isRunning","progressMessage","extraMessage","noTimer","yasrInnerContainer","angular","element","queryIsRunning","queryStartTime","Date","now","countTimeouted","noLoaderTimer","addClass","currentTrackAlias","abortRequested","removeClass","$$phase","$apply","fixSizesOnHorizontalViewModeSwitch","verticalView","visibleWindowHeight","window","innerHeight","documentElement","clientHeight","body","orientationViewMode","viewMode","newHeight","querySelector","getBoundingClientRect","style","height","noPadding","minHeight","paddingRight","paddingLeft","editor","timer","cancel","yasr","container","resize","showHideEditor","foo","params","newRepo","item","yasrData","undefined","queryType","resultsCount","allResultsCount","sizeDelta","errorMessage","repositoryError","selectTab","$","runQuery","changePage","explain","executedQueryTab","getQueryType","warning","explainRequested","currentTabConfig","resetCurrentTabConfig","lastRunQueryMode","getQueryMode","toggleSampleQueries","showSampleQueries","getSavedQueries","success","data","sampleQueries","collapse","width","error","msg","getError","getExistingTabId","existingTabId","showModal","modalSelector","shared","savedQuery","getValue","modal","findTabIndexByID","i","length","currentScope","this","hint","createElement","innerHTML","fontSize","color","backgroundColor","position","zIndex","$watch","newValue","elRect","appendChild","top","left","right","offsetWidth","parentNode","removeChild","pageSize","page","queryExists","saveTab","idx","loadTab","setValue","updateDownloadDropdown","$broadcast","options","output","outputType","customError","results","getException","setYasrResponse","textStatus","jqXhrOrErrorString","hasClass","click","TABS_STATE_CURRENT_ID","offset","allResultsCountExact","timeFinished","timeTook","customUpdateMessage","warningMessage","css","setInterval","showOrHideSaveAsDropDown","isOntop","isFedX","isActiveRepoFedXType","inferenceBtn","handleSameAsAndInferenceBtns","nocount","overrideSameAsInferenceAndNoCountIfNeeded","addNewTab","callback","tabName","isTabChangeOk","maxID","newID","newTab","push","TABS_STATE_MAXID","callbackArgs","Array","prototype","slice","call","arguments","apply","abortCurrentQuery","abortQueryByAlias","editQuery","open","templateUrl","controller","resolve","title","edit","okButtonText","result","then","queryModal","addNewSavedQuery","deleteQueryHttp","editSavedQuery","getNamespaces","namespacesLoading","getRepositoryNamespaces","usedPrefixes","bindings","e","prefix","value","namespace","namespaces","finally","changePagination","addKnownPrefixes","JSON","stringify","isDefined","querySelected","tabId","highlightNextTabChange","deleteQuery","savedQueryName","openSimpleModal","message","deleteSavedQuery","saveQuery","saveQueryHttp","getLoaderMessage","timeSeconds","timeHuman","getHumanReadableSeconds","changeViewMode","VIEW_MODE","focusQueryEditor","find","is","focus","getActiveRepository","getActiveRepositoryNoError","onbeforeunload","clearInterval","mouseup","event","target","has","getQueryID","attr","$saveAsDropDown","queryValid","header","remove","isNew","info","tabEvent","relatedTarget","colors","times","highlightFun","editQueryModal","deleteQueryModal","saveQueryModal","getResultsDescription","desc","currentPageEnd","Math","min","getUpdateDescription","abs","getStaleWarningMessage","secondsAgo","round","bind","unbind","QuerySampleModalCtrl","$uibModalInstance","copy","ok","form","$valid","close","dismiss","module","$inject"],"mappings":"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","file":"48.10699147cdbee9af3c2b.bundle.js","sourcesContent":["import 'angular/utils/local-storage-adapter';\nimport 'angular/rest/sparql.rest.service';\n\nangular\n .module('graphdb.framework.core.directives.queryeditor.controllers', [\n 'graphdb.framework.utils.localstorageadapter',\n 'graphdb.framework.rest.sparql.service'\n ])\n .controller('QueryEditorCtrl', QueryEditorCtrl)\n .controller('QuerySampleModalCtrl', QuerySampleModalCtrl);\n\nQueryEditorCtrl.$inject = ['$scope', '$timeout', 'toastr', '$repositories', '$uibModal', 'ModalService', 'SparqlRestService', '$filter', '$window', '$jwtAuth', 'RDF4JRepositoriesRestService', 'MonitoringRestService', 'LocalStorageAdapter', 'LSKeys'];\n\nfunction QueryEditorCtrl($scope, $timeout, toastr, $repositories, $uibModal, ModalService, SparqlRestService, $filter, $window, $jwtAuth, RDF4JRepositoriesRestService, MonitoringRestService, LocalStorageAdapter, LSKeys) {\n const defaultTabConfig = {\n id: \"1\",\n name: '',\n query: 'select * where { \\n' +\n '\\t?s ?p ?o .\\n' +\n '} limit 100 \\n',\n inference: true,\n sameAs: true\n };\n\n let principal = $jwtAuth.getPrincipal();\n let checkQueryIntervalId;\n if (principal) {\n initTabs($scope, principal);\n // principal is not yet set, wait for its initialization\n } else {\n $scope.$on('securityInit', function (scope) {\n principal = $jwtAuth.getPrincipal();\n initTabs(scope.currentScope, principal);\n });\n }\n\n function initTabs(scope, principal) {\n defaultTabConfig.inference = principal.appSettings.DEFAULT_INFERENCE;\n defaultTabConfig.sameAs = principal.appSettings.DEFAULT_SAMEAS;\n\n scope.skipCountQuery = !principal.appSettings.EXECUTE_COUNT;\n scope.ignoreSharedQueries = principal.appSettings.IGNORE_SHARED_QUERIES;\n scope.tabsData = scope.tabs = LocalStorageAdapter.get(LSKeys.TABS_STATE) || [defaultTabConfig];\n\n scope.$watchCollection('[currentQuery.inference, currentQuery.sameAs]', function (newVal, oldVal, scope) {\n saveQueryToLocal(scope.currentQuery);\n });\n\n scope.$on('repositoryIsSet', deleteCachedSparqlResults);\n }\n\n this.hint = document.createElement(\"span\");\n this.hint.innerHTML = \"Hint: \\\"abC\\\" matches \\\"abC*\\\", \\\"ab c*\\\" and \\\"ab-c*\\\"\";\n this.hint.style.fontSize = \"12px\";\n this.hint.style.color = \"gray\";\n this.hint.style.backgroundColor = \"white\";\n this.hint.style.position = \"absolute\";\n this.hint.style.zIndex = \"3\";\n this.hint.style.paddingLeft = 12 + \"px\";\n\n $scope.$watch(function() {\n return angular.element('.CodeMirror-hints').length;\n }, (newValue) => {\n if (newValue) {\n const elRect = angular.element('.CodeMirror-hints')[0].getBoundingClientRect();\n document.body.appendChild(this.hint);\n this.hint.style.top = elRect.top - 20 + \"px\";\n this.hint.style.left = elRect.right - this.hint.offsetWidth - 12 + \"px\";\n } else {\n this.hint && this.hint.parentNode && this.hint.parentNode.removeChild(this.hint);\n }\n });\n\n $scope.resetCurrentTabConfig = function () {\n $scope.currentTabConfig = {\n pageSize: 1000,\n page: 1,\n allResultsCount: 0,\n resultsCount: 0\n };\n };\n\n $scope.queryExists = false;\n\n $scope.resetCurrentTabConfig();\n\n // query tab operations\n $scope.saveTab = saveTab;\n $scope.loadTab = loadTab;\n $scope.addNewTab = addNewTab;\n $scope.isTabChangeOk = isTabChangeOk;\n\n // query operations\n $scope.runQuery = runQuery;\n $scope.abortCurrentQuery = abortCurrentQuery;\n $scope.editQuery = editQuery;\n $scope.getNamespaces = getNamespaces;\n $scope.changePagination = changePagination;\n $scope.toggleSampleQueries = toggleSampleQueries;\n $scope.addKnownPrefixes = addKnownPrefixes;\n $scope.getExistingTabId = getExistingTabId;\n $scope.querySelected = querySelected;\n $scope.deleteQuery = deleteQuery;\n $scope.deleteQueryHttp = deleteQueryHttp;\n $scope.saveQuery = saveQuery;\n $scope.saveQueryHttp = saveQueryHttp;\n $scope.saveQueryToLocal = saveQueryToLocal;\n\n $scope.setLoader = setLoader;\n $scope.getLoaderMessage = getLoaderMessage;\n\n // query editor and results orientation\n $scope.fixSizesOnHorizontalViewModeSwitch = fixSizesOnHorizontalViewModeSwitch;\n $scope.changeViewMode = changeViewMode;\n $scope.showHideEditor = showHideEditor;\n $scope.focusQueryEditor = focusQueryEditor;\n $scope.orientationViewMode = LocalStorageAdapter.get(LSKeys.VIEW_MODE) ? LocalStorageAdapter.get(LSKeys.VIEW_MODE) === \"true\" : true;\n $scope.viewMode = 'none';\n\n // start of repository actions\n // FIXME: do we need this??\n // $scope.getActiveRepository();\n $scope.getActiveRepository = function () {\n // same as getActiveRepository() but takes into account repo errors\n return $repositories.getActiveRepository();\n };\n\n $scope.getActiveRepositoryNoError = function () {\n if (!$scope.repositoryError) {\n return $repositories.getActiveRepository();\n }\n };\n\n function saveQueryToLocal(currentQueryTab) {\n shouldDisableSameAs();\n $scope.tabs.forEach(function (tab, index) {\n if (tab.id === currentQueryTab.id) {\n $scope.tabs[index].query = currentQueryTab.query;\n // Don't store inference and sameAs values for Ontop repository,\n // because they are overridden afterwards to true\n if (!$repositories.isActiveRepoOntopType()) {\n $scope.tabs[index].inference = currentQueryTab.inference;\n $scope.tabs[index].sameAs = currentQueryTab.sameAs;\n }\n }\n });\n LocalStorageAdapter.set(LSKeys.TABS_STATE, $scope.tabs);\n }\n\n function setLoader(isRunning, progressMessage, extraMessage, noTimer) {\n const yasrInnerContainer = angular.element(document.getElementById(\"yasr-inner\"));\n $scope.queryIsRunning = isRunning;\n if (isRunning) {\n $scope.queryStartTime = Date.now();\n $scope.countTimeouted = false;\n $scope.progressMessage = progressMessage;\n $scope.extraMessage = extraMessage;\n $scope.noLoaderTimer = noTimer;\n yasrInnerContainer.addClass(\"hide\");\n } else {\n $scope.progressMessage = \"\";\n $scope.extraMessage = \"\";\n $scope.noLoaderTimer = false;\n $scope.currentTrackAlias = null;\n $scope.abortRequested = false;\n yasrInnerContainer.removeClass(\"hide\");\n }\n // We might call this from angular or outside angular so take care of applying the scope.\n if ($scope.$$phase === null) {\n $scope.$apply();\n }\n }\n\n function getLoaderMessage() {\n const timeSeconds = (Date.now() - $scope.queryStartTime) / 1000;\n let timeHuman = \"\";\n let message = \"\";\n\n if (!$scope.noLoaderTimer) {\n timeHuman = $scope.getHumanReadableSeconds(timeSeconds);\n }\n\n if ($scope.progressMessage) {\n message = $scope.progressMessage + \"... \" + timeHuman;\n } else {\n message = \"Running operation... \" + timeHuman;\n }\n if ($scope.extraMessage && timeSeconds > 10) {\n message += \"\\n\" + $scope.extraMessage;\n }\n\n return message;\n }\n\n // start of query editor results orientation operations\n function fixSizesOnHorizontalViewModeSwitch(verticalView) {\n function visibleWindowHeight() {\n return window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight || 0;\n }\n\n if (!$scope.orientationViewMode) {\n $scope.noPadding = {paddingRight: 15, paddingLeft: 0};\n\n // window.editor is undefined if no repo is selected\n if (window.editor && document.querySelector('.CodeMirror-wrap')) {\n let newHeight = visibleWindowHeight() - (document.querySelector('.CodeMirror-wrap').getBoundingClientRect().top);\n newHeight -= 40;\n document.querySelector('.CodeMirror-wrap').style.height = newHeight + 'px';\n document.getElementById('yasr').style.minHeight = newHeight + 'px';\n //window.editor.refresh();\n } else {\n let timer;\n if (verticalView) {\n timer = $timeout(function () {\n $scope.fixSizesOnHorizontalViewModeSwitch(verticalView);\n }, 100);\n } else {\n timer = $timeout($scope.fixSizesOnHorizontalViewModeSwitch, 100);\n }\n\n $scope.$on(\"$destroy\", function () {\n $timeout.cancel(timer);\n });\n }\n } else {\n if ($scope.viewMode === 'yasr') {\n let newHeight = visibleWindowHeight() - (document.querySelector('.CodeMirror-wrap').getBoundingClientRect().top);\n newHeight -= 40;\n document.querySelector('.CodeMirror-wrap').style.height = newHeight + 'px';\n //window.editor.refresh();\n } else {\n $scope.noPadding = {};\n document.querySelector('.CodeMirror-wrap').style.height = '';\n //window.editor.refresh();\n }\n document.getElementById('yasr').style.minHeight = '';\n }\n if (window.yasr && window.yasr.container) {\n $timeout(function () {\n window.yasr.container.resize();\n }, 100);\n }\n }\n\n if (!$scope.orientationViewMode) {\n showHideEditor();\n }\n\n function changeViewMode() {\n $scope.viewMode = 'none';\n $scope.orientationViewMode = !$scope.orientationViewMode;\n LocalStorageAdapter.set(LSKeys.VIEW_MODE, $scope.orientationViewMode);\n fixSizesOnHorizontalViewModeSwitch();\n }\n\n function showHideEditor() {\n fixSizesOnHorizontalViewModeSwitch(true);\n }\n\n function focusQueryEditor() {\n if (!angular.element(document).find('.editable-input').is(\":focus\")) {\n angular.element(document).find('.CodeMirror textarea:first-child').focus();\n }\n }\n\n // end of query editor results orientation operations\n\n function deleteCachedSparqlResults(foo, params) {\n if (params.newRepo) {\n $scope.tabsData = LocalStorageAdapter.get(LSKeys.TABS_STATE);\n $scope.tabsData.forEach(function (item) {\n item.yasrData = undefined;\n item.queryType = undefined;\n item.resultsCount = 0;\n item.allResultsCount = 0;\n item.sizeDelta = undefined;\n });\n\n LocalStorageAdapter.set(LSKeys.TABS_STATE, $scope.tabsData);\n $scope.tabs = $scope.tabsData;\n\n // The repository is changed. Remove error messages as well, if any\n $scope.currentQuery = {};\n $scope.errorMessage = null;\n $scope.repositoryError = null;\n }\n }\n\n function selectTab(id) {\n $timeout(function () {\n $('a[data-id = \"' + id + '\"]').tab('show');\n }, 0);\n }\n\n window.onbeforeunload = function () {\n if ($scope.currentQuery) {\n $scope.saveTab($scope.currentQuery.id);\n }\n LocalStorageAdapter.set(LSKeys.TABS_STATE, $scope.tabs);\n };\n\n $scope.$on('$destroy', function () {\n if ($scope.currentQuery) {\n $scope.saveTab($scope.currentQuery.id);\n }\n LocalStorageAdapter.set(LSKeys.TABS_STATE, $scope.tabs);\n clearInterval(checkQueryIntervalId);\n });\n\n // start of query operations\n function runQuery(changePage, explain) {\n $scope.executedQueryTab = $scope.currentQuery;\n if (explain) {\n if (!(window.editor.getQueryType() === 'SELECT' || window.editor.getQueryType() === 'CONSTRUCT')) {\n toastr.warning('Explain only works with SELECT or CONSTRUCT queries.');\n return;\n }\n\n if ($repositories.isActiveRepoOntopType()) {\n toastr.warning('Explain not supported for Virtual repositories.');\n return;\n }\n }\n\n $scope.explainRequested = explain;\n if (!$scope.queryIsRunning) {\n if (changePage) {\n $scope.currentTabConfig.resultsCount = 0;\n } else {\n $scope.resetCurrentTabConfig();\n }\n\n $scope.lastRunQueryMode = window.editor.getQueryMode();\n\n if ($scope.lastRunQueryMode === 'update' && $repositories.isActiveRepoOntopType()) {\n toastr.warning('Updates are not supported for Virtual repositories.');\n return;\n }\n\n setLoader(true, $scope.lastRunQueryMode === 'update' ? 'Executing update' : 'Evaluating query');\n if ($scope.viewMode !== 'none') {\n $scope.viewMode = 'none';\n if ($scope.orientationViewMode) {\n $scope.fixSizesOnHorizontalViewModeSwitch();\n }\n const timer = $timeout(window.editor.query, 500);\n $scope.$on('$destroy', function () {\n $timeout.cancel(timer);\n });\n } else {\n window.editor.query();\n }\n }\n }\n\n function abortCurrentQuery() {\n MonitoringRestService.abortQueryByAlias($scope.currentTrackAlias)\n .success(function () {\n $scope.abortRequested = true;\n });\n }\n\n function getNamespaces() {\n // Signals the namespaces are to be fetched => loader will be shown\n setLoader(true, 'Refreshing namespaces', 'Normally this is a fast operation but it may take longer if a bigger repository needs to be initialised first.');\n $scope.namespacesLoading = true;\n\n RDF4JRepositoriesRestService.getRepositoryNamespaces()\n .success(function (data) {\n const usedPrefixes = {};\n data.results.bindings.forEach(function (e) {\n usedPrefixes[e.prefix.value] = e.namespace.value;\n });\n $scope.namespaces = usedPrefixes;\n })\n .error(function (data) {\n $scope.repositoryError = getError(data);\n })\n .finally(function () {\n // Signals namespaces were fetched => loader will be hidden\n setLoader(false);\n $scope.namespacesLoading = false;\n });\n }\n\n function changePagination() {\n runQuery(true, $scope.explainRequested);\n }\n\n $scope.$on(\"$destroy\", function () {\n clearInterval(checkQueryIntervalId);\n window.editor = null;\n window.yasr = null;\n });\n\n function toggleSampleQueries() {\n $scope.showSampleQueries = !$scope.showSampleQueries;\n if ($scope.showSampleQueries) {\n SparqlRestService.getSavedQueries()\n .success(function (data) {\n $scope.sampleQueries = data;\n $('#sampleQueriesCollapse').collapse('show').width('300px');\n })\n .error(function (data) {\n const msg = getError(data);\n toastr.error(msg, 'Error! Could not get saved queries');\n });\n } else {\n $('#sampleQueriesCollapse').collapse('hide');\n }\n }\n\n // Hide the sample queries when the user clicks somewhere else in the UI.\n $(document).mouseup(function (event) {\n const container = $('#sampleQueriesCollapse');\n if (!container.is(event.target) // if the target of the click isn't the container..\n && container.has(event.target).length === 0 //... nor a descendant of the container\n && $scope.showSampleQueries) {\n toggleSampleQueries();\n }\n });\n\n // Add known prefixes\n function addKnownPrefixes() {\n SparqlRestService.addKnownPrefixes(JSON.stringify(window.editor.getValue()))\n .success(function (data) {\n if (angular.isDefined(window.editor) && angular.isDefined(data) && data !== window.editor.getValue()) {\n window.editor.setValue(data);\n }\n })\n .error(function (data) {\n const msg = getError(data);\n toastr.error(msg, 'Error! Could not add known prefixes');\n return true;\n });\n }\n\n function querySelected(query) {\n const tabId = getExistingTabId(query);\n $scope.toggleSampleQueries();\n\n if ($scope.isTabChangeOk(false)) {\n $scope.highlightNextTabChange = true;\n if (!angular.isDefined(tabId)) {\n $scope.addNewTab(null, query.name, query.body);\n } else {\n selectTab(tabId);\n }\n }\n }\n\n function getExistingTabId(query) {\n let existingTabId = undefined;\n $scope.tabsData.forEach(function (item) {\n if (item.name === query.name && item.query === query.body) {\n existingTabId = item.id;\n return item;\n }\n });\n return existingTabId;\n }\n\n function editQuery(query) {\n const modalInstance = $uibModal.open({\n templateUrl: 'js/angular/core/directives/queryeditor/templates/query-sample.html',\n controller: 'QuerySampleModalCtrl',\n resolve: {\n data: function () {\n return {\n title: 'Edit Saved Query: \"' + query.name + '\"',\n query: query,\n edit: true,\n okButtonText: 'Save'\n };\n }\n }\n });\n\n modalInstance.result.then(function (queryModal) {\n const data = {\n name: queryModal.name,\n body: queryModal.body,\n shared: queryModal.shared\n };\n if (query.name !== queryModal.name) {\n SparqlRestService.addNewSavedQuery(data)\n .success(function () {\n $scope.deleteQueryHttp(query.name, true);\n })\n .error(function (error) {\n const msg = getError(error);\n toastr.error(msg, 'Error! Cannot edit saved query');\n });\n } else {\n SparqlRestService.editSavedQuery(data)\n .success(function () {\n $('#editQueryContainer').modal('hide');\n $scope.toggleSampleQueries();\n toastr.success('Saved query ' + query.name + ' was edited.');\n })\n .error(function (error) {\n const msg = getError(error);\n toastr.error(msg, 'Error! Cannot edit Saved query');\n });\n }\n });\n }\n\n function deleteQueryHttp(savedQueryName, edit) {\n SparqlRestService.deleteSavedQuery(savedQueryName)\n .success(function () {\n $scope.toggleSampleQueries();\n if (!edit) {\n toastr.success('Saved query: ' + savedQueryName + ' was deleted.');\n }\n })\n .error(function (data) {\n const msg = getError(data);\n toastr.error(msg, 'Error! Cannot delete saved query');\n });\n }\n\n function deleteQuery(savedQueryName) {\n ModalService.openSimpleModal({\n title: 'Confirm',\n message: 'Are you sure you want to delete the saved query ' + '\\'' + savedQueryName + '\\'?',\n warning: true\n }).result\n .then(function () {\n $scope.deleteQueryHttp(savedQueryName);\n });\n }\n\n function saveQueryHttp(query) {\n SparqlRestService.addNewSavedQuery(query)\n .success(function () {\n toastr.success('Saved query ' + query.name + ' was saved.');\n })\n .error(function (data) {\n let msg = getError(data);\n toastr.error(msg, 'Error! Cannot create saved query');\n // TODO: This condition will always be true\n if (msg = \"Query '\" + query.name + \"' already exists!\") {\n query.query = query.body;\n const queryExists = true;\n $scope.saveQuery(query, queryExists);\n }\n });\n }\n\n function saveQuery(query, queryExists) {\n const modalInstance = $uibModal.open({\n templateUrl: 'js/angular/core/directives/queryeditor/templates/query-sample.html',\n controller: 'QuerySampleModalCtrl',\n resolve: {\n data: function () {\n return {\n title: 'Create New Saved Query',\n query: {name: query.name, body: query.query, shared: query.shared},\n edit: false,\n okButtonText: 'Create',\n queryExists: queryExists\n };\n }\n }\n });\n\n modalInstance.result.then(function (query) {\n $scope.saveQueryHttp(query);\n }, function () {\n });\n }\n\n // end of query operations\n\n function showModal(modalSelector) {\n return function (name, query, shared) {\n $scope.savedQuery = {\n name: name,\n query: query || window.editor.getValue(),\n shared: shared\n };\n $(modalSelector).modal('show');\n };\n }\n\n\n // start of query tab operations\n function findTabIndexByID(id) {\n for (let i = 0; i < $scope.tabsData.length; i++) {\n const tab = $scope.tabsData[i];\n if (tab.id === id) {\n return i;\n }\n }\n }\n\n function saveTab(id) {\n const idx = findTabIndexByID(id);\n // Tab was deleted, don't try to save it's state\n if (idx === undefined) {\n return {};\n }\n const tab = $scope.tabsData[idx];\n //tab.query = window.editor.getValue();\n $scope.saveQueryToLocal(tab);\n return tab;\n }\n\n let maxID = LocalStorageAdapter.get(LSKeys.TABS_STATE_MAXID) || 1;\n\n function addNewTab(callback, tabName, savedQuery) { // optional callback to call after tab has been added\n if (!isTabChangeOk(true)) {\n return;\n }\n let defaultTabConfig;\n if (tabName || savedQuery) {\n defaultTabConfig = {\n id: \"1\",\n name: tabName,\n query: savedQuery,\n inference: principal.appSettings.DEFAULT_INFERENCE,\n sameAs: principal.appSettings.DEFAULT_SAMEAS\n };\n } else {\n defaultTabConfig = {\n id: \"1\",\n name: '',\n query: 'select * where { \\n' +\n '\\t?s ?p ?o .\\n' +\n '} limit 100 \\n',\n inference: principal.appSettings.DEFAULT_INFERENCE,\n sameAs: principal.appSettings.DEFAULT_SAMEAS\n };\n }\n\n maxID++;\n const newID = '' + maxID;\n $scope.tabsData = $scope.tabs;\n\n const newTab = defaultTabConfig;\n newTab.id = newID;\n\n $scope.tabsData.push(newTab);\n\n LocalStorageAdapter.set(LSKeys.TABS_STATE_MAXID, maxID);\n LocalStorageAdapter.set(LSKeys.TABS_STATE, $scope.tabsData);\n const callbackArgs = Array.prototype.slice.call(arguments, 1); // skip one argument, i.e. the callback itself\n $timeout(function () {\n $scope.$apply();\n selectTab(newID);\n if (callback) {\n callback.apply(this, callbackArgs);\n }\n }, 0);\n $scope.tabs = $scope.tabsData;\n }\n\n function loadTab(id) {\n $scope.tabsData = LocalStorageAdapter.get(LSKeys.TABS_STATE) || [defaultTabConfig];\n\n // find available tab\n const idx = findTabIndexByID(id);\n const tab = $scope.tabsData[idx];\n\n if (tab.yasrData) {\n setLoader(true, 'Rendering results', null, true);\n }\n\n // set query in editor available on the current tab\n $timeout(function () {\n if ($scope.currentQuery.query === '') {\n $scope.currentQuery.query = \" \";\n }\n $timeout(function () {\n window.editor.setValue($scope.currentQuery.query);\n $scope.yasr.updateDownloadDropdown();\n $scope.$broadcast('tabLoaded', $scope.currentQuery.id);\n\n // set query results in query results sections after\n // previous query execution. Yasr response rendering depends on the\n // query type of window.editor!\n $scope.yasr.options.output = tab.outputType; // this may be undefined, that's fine!\n if (tab.yasrData) {\n if (tab.yasrData.customError) {\n // Our injected custom (not real HTTP) error\n $scope.yasr.results = {\n getException: function () {\n return tab.yasrData.customError;\n }\n };\n setLoader(false);\n } else {\n // Real YASR result\n $timeout(function () {\n $scope.setYasrResponse(tab.yasrData, tab.textStatus, tab.jqXhrOrErrorString);\n setLoader(false);\n if ($('.yasr_btnGroup li:nth-child(2)').hasClass(\"active\")) {\n $timeout(function () {\n $('.yasr_btnGroup li:nth-child(2) a').get(0).click();\n }, 0);\n }\n }, 0);\n }\n }\n }, 0);\n }, 0);\n\n\n // persist current tab id in local storage\n LocalStorageAdapter.set(LSKeys.TABS_STATE_CURRENT_ID, id);\n\n $scope.currentQuery = tab;\n\n $timeout(function () {\n $scope.currentTabConfig = {};\n $scope.currentTabConfig.queryType = tab.queryType;\n $scope.currentTabConfig.resultsCount = tab.resultsCount;\n\n $scope.currentTabConfig.offset = tab.offset;\n $scope.currentTabConfig.allResultsCount = tab.allResultsCount;\n $scope.currentTabConfig.allResultsCountExact = tab.allResultsCountExact;\n $scope.currentTabConfig.page = tab.page;\n $scope.currentTabConfig.pageSize = tab.pageSize;\n\n $scope.currentTabConfig.timeFinished = tab.timeFinished;\n $scope.currentTabConfig.timeTook = tab.timeTook;\n $scope.currentTabConfig.sizeDelta = tab.sizeDelta;\n $scope.currentTabConfig.customUpdateMessage = tab.customUpdateMessage;\n $scope.currentTabConfig.errorMessage = tab.errorMessage;\n $scope.currentTabConfig.warningMessage = tab.warningMessage;\n\n $scope.$apply();\n }, 0);\n\n //Remove paddign of yasr so it will be aligned with sparql editor\n $('#yasr').css('padding', '0');\n\n if (!checkQueryIntervalId) {\n checkQueryIntervalId = setInterval(showOrHideSaveAsDropDown, 200);\n }\n overrideSameAsInferenceAndNoCountIfNeeded();\n }\n\n function getQueryID(element) {\n return $(element).attr('data-id');\n }\n\n function showOrHideSaveAsDropDown() {\n // If selected tab has results and query in editor controller is invalid save as\n // dropdown menu will be removed and on fixing query latter will be added\n if ($scope.currentTabConfig.resultsCount >= 0) {\n const $saveAsDropDown = $('.saveAsDropDown');\n if ($saveAsDropDown.length > 0 && !window.editor.queryValid) {\n yasr.header.find('.saveAsDropDown').remove();\n } else if ($saveAsDropDown.length === 0 && window.editor.queryValid) {\n yasr.updateDownloadDropdown();\n }\n }\n }\n\n function isTabChangeOk(isNew) {\n if ($scope.queryIsRunning && !$scope.namespacesLoading) {\n if (isNew) {\n toastr.info('New tabs may not be opened while query or update is running.');\n } else {\n toastr.info('Tabs may not be switched while query or update is running.');\n }\n\n return false;\n }\n\n return true;\n }\n\n // Raise this flag to provide visual feedback to the user the next time a tab changes\n // (either manually or by the system). See GDB-1983.\n $scope.highlightNextTabChange = false;\n $scope.$on('tabAction', function (e, tabEvent) {\n if (tabEvent.relatedTarget) {\n // Cancel any highlight timer that might have been left by the last highlight\n $timeout.cancel(tabEvent.relatedTarget.timer);\n $(tabEvent.relatedTarget).css('color', '');\n\n $scope.saveTab(getQueryID(tabEvent.relatedTarget));\n }\n\n $scope.loadTab(getQueryID(tabEvent.target));\n\n // These arrays define how the tab change will be visually enhanced.\n // colors contains the colors to set to the tab name,\n // while times defines the times in milliseconds to keep each color.\n // Once we cycle through the arrays we restore the default color.\n const colors = ['#ED4F2F', '', '#ED4F2F'];\n const times = [400, 400, 400];\n if ($scope.highlightNextTabChange) {\n $scope.highlightNextTabChange = false;\n let index = 0;\n $(tabEvent.target).css('color', colors[index]);\n const highlightFun = function () {\n index++;\n if (index < colors.length) {\n $(tabEvent.target).css('color', colors[index]);\n tabEvent.target.timer = $timeout(highlightFun, times[index]);\n } else {\n $(tabEvent.target).css('color', '');\n }\n };\n $timeout(highlightFun, times[index]);\n }\n });\n\n $scope.$on('deleteAllexeptSelected', function (e, tabs) {\n $scope.tabsData = tabs;\n $scope.tabs = tabs;\n });\n // end of query tab operations\n\n $scope.currentQuery = {};\n // $scope.state = {};\n $scope.showSampleQueries = false;\n $scope.savedQuery = {};\n $scope.sampleQueries = {};\n $scope.editQueryModal = showModal('#editQueryContainer');\n $scope.deleteQueryModal = showModal('#confirmDeleteContainer');\n $scope.saveQueryModal = showModal('#saveQueryContainer');\n\n $scope.getResultsDescription = function () {\n let desc;\n if ($scope.currentTabConfig.resultsCount === 0) {\n desc = \"No results.\";\n } else {\n const currentPageEnd = ($scope.currentTabConfig.page - 1) * $scope.currentTabConfig.pageSize\n + Math.min($scope.currentTabConfig.resultsCount, $scope.currentTabConfig.pageSize);\n desc = \"Showing results from \" + $filter('currency')($scope.currentTabConfig.offset, '', 0)\n + \" to \" + $filter('currency')(currentPageEnd, '', 0);\n if ($scope.currentTabConfig.allResultsCount > 0) {\n // Unsure total results count \"of at least\" happens if counting timed out or\n // counting was disabled and we got at least $pageSize + 1 results for the current page.\n // It may reset become exact when we navigate and reach the end of results.\n desc += $scope.currentTabConfig.allResultsCountExact\n ? \" of \" : \" of at least \";\n desc += $filter('currency')($scope.currentTabConfig.allResultsCount, '', 0);\n }\n desc += \".\";\n }\n\n return desc;\n };\n\n $scope.getUpdateDescription = function () {\n if ($scope.currentTabConfig.customUpdateMessage) {\n return $scope.currentTabConfig.customUpdateMessage;\n } else if ($scope.currentTabConfig.sizeDelta === undefined) {\n return '';\n } else if ($scope.currentTabConfig.sizeDelta < 0) {\n return 'Removed ' + Math.abs($scope.currentTabConfig.sizeDelta) + ' statements.';\n } else if ($scope.currentTabConfig.sizeDelta > 0) {\n return 'Added ' + $scope.currentTabConfig.sizeDelta + ' statements.';\n } else {\n return 'The number of statements did not change.';\n }\n };\n\n $scope.getStaleWarningMessage = function () {\n const secondsAgo = Math.round((Date.now() - $scope.currentTabConfig.timeFinished) / 60000) * 60;\n if (secondsAgo >= 3600) { // must be at least an hour\n return \"Possibly stale result (obtained \" + $scope.getHumanReadableSeconds(secondsAgo) + \" ago).\";\n }\n };\n\n const resize = function () {\n // $scope.fixSizesOnHorizontalViewModeSwitch();\n };\n\n angular.element($window).bind('resize', resize);\n\n $scope.$on('$destroy', function () {\n angular.element($window).unbind('resize', resize);\n });\n\n /**\n * In case of Ontop repository, sameAs, inference and nocount are\n * overridden to true and #sameAs and #inference buttons are disabled, In case of FedX repo nocount is overridden\n */\n function overrideSameAsInferenceAndNoCountIfNeeded() {\n const isOntop = $repositories.isActiveRepoOntopType();\n const isFedX = $repositories.isActiveRepoFedXType();\n handleSameAsAndInferenceBtns(isOntop);\n\n $scope.nocount = (isOntop || isFedX) ? true : !principal.appSettings.EXECUTE_COUNT;\n if (isOntop) {\n $scope.currentQuery.inference = true;\n $scope.currentQuery.sameAs = true;\n }\n }\n\n function handleSameAsAndInferenceBtns(isOntop) {\n const sameAsBtn = document.getElementById('sameAs');\n const inferenceBtn = document.getElementById('inference');\n\n if (sameAsBtn) {\n sameAsBtn.disabled = !!isOntop;\n }\n\n if (inferenceBtn) {\n inferenceBtn.disabled = !!isOntop;\n }\n }\n\n // The sameAs is meaningless without inference.\n // Set its value to false and disable button\n function shouldDisableSameAs() {\n // don't try to override sameAs if repository is Ontop type\n if ($repositories.isActiveRepoOntopType()) {\n return;\n }\n const sameAsBtn = document.getElementById('sameAs');\n if (sameAsBtn && !$scope.currentQuery.inference && !sameAsBtn.disabled) {\n sameAsBtn.disabled = true;\n $scope.currentQuery.sameAs = false;\n } else if ($scope.currentQuery.inference && sameAsBtn.disabled) {\n sameAsBtn.removeAttribute('disabled');\n $scope.currentQuery.sameAs = principal.appSettings.DEFAULT_SAMEAS;\n }\n }\n}\n\nQuerySampleModalCtrl.$inject = ['$scope', '$uibModalInstance', 'data'];\n\nfunction QuerySampleModalCtrl($scope, $uibModalInstance, data) {\n if (data.queryExists) {\n $scope.queryExists = true;\n }\n $scope.query = angular.copy(data.query);\n $scope.title = data.title;\n $scope.edit = data.edit;\n $scope.okButtonText = data.okButtonText;\n $scope.ok = function () {\n if ($scope.form.$valid) {\n $uibModalInstance.close($scope.query);\n }\n };\n\n $scope.cancel = function () {\n $uibModalInstance.dismiss('cancel');\n };\n}\n"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[5,81],{37:function(e,t,o){"use strict";o.r(t),o.d(t,"STATIC_RULESETS",(function(){return i})),o.d(t,"REPOSITORY_TYPES",(function(){return r})),o.d(t,"FILENAME_PATTERN",(function(){return n})),o.d(t,"NUMBER_PATTERN",(function(){return a})),o.d(t,"REPO_TOOLTIPS",(function(){return s}));const i=[{id:"empty",name:"No inference"},{id:"rdfs-optimized",name:"RDFS (Optimized)"},{id:"rdfs",name:"RDFS"},{id:"rdfsplus-optimized",name:"RDFS-Plus (Optimized)"},{id:"owl-horst-optimized",name:"OWL-Horst (Optimized)"},{id:"owl-horst",name:"OWL-Horst"},{id:"owl2-ql-optimized",name:"OWL2-QL (Optimized)"},{id:"owl2-ql",name:"OWL2-QL"},{id:"owl-max-optimized",name:"OWL-Max (Optimized)"},{id:"owl-max",name:"OWL-Max"},{id:"owl2-rl-optimized",name:"OWL2-RL (Optimized)"},{id:"owl2-rl",name:"OWL2-RL"}],r={free:"free",eeWorker:"worker",eeMaster:"master",ontop:"ontop",se:"se",fedx:"fedx"},n=new RegExp("^[a-zA-Z0-9-_]+$"),a=new RegExp("^[0-9]+$"),s={id:"Unique identifier for the repository. The ID must contain only letters (a-z, A-Z), numbers (0-9), '-' and '_'.",title:"Human readable description of the repository.",readOnly:"Protects the repository against any changes.",ruleset:"Sets of axiomatic triples, consistency checks and entailment rules, which determine the applied semantics with a PIE file.",rulesetWarnings:{needsSameAs:"Disabling owl:sameAs for this ruleset may cause incomplete inference with owl:sameAs statements.",doesntNeedSameAs:"This ruleset does not need owl:sameAs, consider disabling it.",customRuleset:"If the custom ruleset does not use owl:sameAs, consider disabling it. <br>If the ruleset uses owl:sameAs, disabling it may cause incomplete inference with owl:sameAs statements."},disableSameAs:"GraphDB uses a non-rule implementation of owl:sameAs, which can be enabled or disabled independently of the ruleset.",checkForInconsistencies:"Enables the consistency checks from the ruleset.",isShacl:"Enables support for SHACL validation.",shaclOptions:{cacheSelectNodes:"The SHACL implementation retrieves a lot of its relevant data through running SPARQL Select queries against the repository and against the changes in the transaction. This is usually good for performance, but while validating large amounts of data disabling this cache will use less memory.",undefinedTargetValidatesAllSubjects:"If no target is defined for a NodeShape, that NodeShape will be ignored. Enabling this will make such NodeShapes wildcard shapes and validate all subjects. Equivalent to setting sh:targetClass to owl:Thing or rdfs:Resource in an environment with a reasoner.",logValidationPlans:"Log (INFO) the executed validation plans as GraphViz DOT. It is recommended to disable parallel validation when this is enabled.",logValidationViolations:"Log (INFO) a list of violations and the triples that caused the violations. It is recommended to disable parallel validation when this is enabled.",parallelValidation:"Run SHACL validation in parallel.",globalLogValidationExecution:"Log (INFO) every execution step of the SHACL validation. This is fairly costly and should not be used in production. It is recommended to disable parallel validation when this is enabled.",performanceLogging:"Log (INFO) the execution time per shape. It is recommended to disable parallel validation and caching of select nodes when this is enabled.",eclipseRdf4jShaclExtensions:"Activates RDF4J's SHACL extensions that provide additional functionality (experimental).",dashDataShapes:"Activates DASH Data Shapes extensions that provide additional functionality (experimental)."},entityIdSize:"Defines the bit size of internal IDs used to index entities (URIs, blank nodes, literals, and RDF* embedded triples).<br>Use 40 bit ID only if you expect more than 2 billion unique RDF values.",enableContextIndex:"Builds an additional Context-Predicate-Subject-Object index to boost the SPARQL query performance of queries with GRAPH/FROM/FROM NAMED clauses.",enablePredicateList:"Enables the mappings from an entity (subject or object) to its predicates; enabling it can significantly speed up queries that use wildcard predicate patterns.",queryTimeout:"Sets the number of seconds after which the evaluation of a query will be terminated; values less than or equal to zero mean no limit.",throwQueryEvaluationExceptionOnTimeout:"Repository throws QueryEvaluationException when the duration of a query execution exceeds the timeout parameter.",queryLimitResults:"Sets the maximum number of results returned from a query after which the evaluation of a query will be terminated; values less than or equal to zero mean no limit.",nonInterpretablePredicates:"Semicolon-delimited list of predicates (full URIs) that GraphDB will not try to process with the registered GraphDB plugins.",ontop:{driverType:"Determines the type of SQL database to connect to.",propertiesFile:"Describes the JDBC configuration such as hostname and database name to connect to.",hostName:"The JDBC hostname to connect to.",port:"The JDBC port to connect to if different from the default for the chosen JDBC driver.",portIfRequired:"The JDBC port to connect to.",databaseName:"The database name to connect to.",userName:"The username to use for the JDBC connection.",password:"The password to use for the JDBC connection.",driverClass:"Classname of the chosen JDBC driver. It must be on the classpath (in the lib directory).",driverClassWarning:"JDBC driver not found in the classpath, please save it in the lib directory and restart GraphDB",url:"The JDBC URL that will be used. It is constructed using the supplied hostname, port and database name.",obdaFile:"Describes the mapping from SQL to RDF in either the OBDA or the R2RML format.",owlFile:"Specifies relations between the classes and properties in the cosntructed RDF graph. It can be in any supported RDF format.",constraintFile:"Specifies override of SQL primary and foreign keys.",dbMetadataFile:"Specifies metadata for the SQL database.",testConn:"Attempts to establish a connection to the SQL database to test if the supplied configuration is correct."},fedx:{repositoryNotExistWarning:"The repository member has been removed from the local repositories",localReposInstructions:"Click on a repo to add a local repository as a member",withLogQueries:"Set whether to log queries",withDebugQueryPlan:"Whether to print the optimized query execution plan to stdout",enforceMaxQueryTime:"Max query time in seconds, 0 to disable",withIncludeInferredDefault:"Set whether to include inferred statements or not",withBoundJoinBlockSize:"Set the block size for bound joins",withJoinWorkerThreads:"Set the number of join worker threads for parallelization",withLeftJoinWorkerThreads:"Set the number of left join worker threads",unionWorkerThreads:"Set the number of union worker threads for parallelization",withLogQueryPlan:"Whether to log the query plan",withEnableServiceAsBoundJoin:"Whether external SERVICE clauses are evaluated using bound join",withSourceSelectionCacheSpec:"The cache specification for the SourceSelectionMemoryCache",removeMember:"Remove repository as a FedX member",editRepository:"Edit repository",setAsWritable:"Set repository as writable"}}},42:function(e,t,o){"use strict";o.r(t),o.d(t,"getFileName",(function(){return r}));var i=o(37);const r=function(e){let t=e.lastIndexOf("/");-1===t&&(t=e.lastIndexOf("\\"));let o=e;return-1!==t&&(o=o.substring(t+1)),o},n=function(e){e&&(e.queryTimeout&&(e.queryTimeout.value=parseInt(e.queryTimeout.value)),e.queryLimitResults&&e.validationResultsLimitTotal&&e.validationResultsLimitPerConstraint?(e.queryLimitResults.value=parseInt(e.queryLimitResults.value),e.validationResultsLimitTotal.value=parseInt(e.validationResultsLimitTotal.value),e.validationResultsLimitPerConstraint.value=parseInt(e.validationResultsLimitPerConstraint.value)):e.leftJoinWorkerThreads&&e.boundJoinBlockSize&&e.joinWorkerThreads&&e.unionWorkerThreads&&(e.leftJoinWorkerThreads.value=parseInt(e.leftJoinWorkerThreads.value),e.boundJoinBlockSize.value=parseInt(e.boundJoinBlockSize.value),e.joinWorkerThreads.value=parseInt(e.joinWorkerThreads.value),e.unionWorkerThreads.value=parseInt(e.unionWorkerThreads.value)))},a=function(e){e&&e.member&&(e.member.value=[])},s=function(){const e=document.getElementById("shaclOptions");if(e){const t=e.getAttribute("aria-expanded");if(t&&"true"===t)return"fa fa-angle-down"}return"fa fa-angle-right"},l=function(e,t){e.queryTimeout&&(t.isInvalidQueryTimeout=!i.NUMBER_PATTERN.test(e.queryTimeout.value)),e.validationResultsLimitTotal&&e.validationResultsLimitPerConstraint&&e.queryLimitResults?(t.isInvalidValidationResultsLimitTotal=!i.NUMBER_PATTERN.test(e.validationResultsLimitTotal.value),t.isInvalidValidationResultsLimitPerConstraint=!i.NUMBER_PATTERN.test(e.validationResultsLimitPerConstraint.value),t.isInvalidQueryLimit=!i.NUMBER_PATTERN.test(e.queryLimitResults.value)):e.leftJoinWorkerThreads&&e.boundJoinBlockSize&&e.joinWorkerThreads&&e.unionWorkerThreads&&(t.isInvalidLeftJoinWorkerThreads=!i.NUMBER_PATTERN.test(e.leftJoinWorkerThreads.value),t.isInvalidBoundJoinBlockSize=!i.NUMBER_PATTERN.test(e.boundJoinBlockSize.value),t.isInvalidJoinWorkerThreads=!i.NUMBER_PATTERN.test(e.joinWorkerThreads.value),t.isInvalidUnionWorkerThreads=!i.NUMBER_PATTERN.test(e.unionWorkerThreads.value))},d=function(e){let t=Object.keys(e),o=Object.values(e);for(let e=0;e<t.length;e++)if(o[e])return"isInvalidQueryLimit"===(i=t[e])?"Invalid parameter query limit":"isInvalidQueryTimeout"===i?"Invalid parameter query timeout":"isInvalidValidationResultsLimitTotal"===i?"Invalid parameter validation results limit total":"isInvalidValidationResultsLimitPerConstraint"===i?"Invalid parameter validation results limit per constraint":"isInvalidJoinWorkerThreads"===i?"Invalid parameter join worker threads":"isInvalidLeftJoinWorkerThreads"===i?"Invalid parameter left join worker threads":"isInvalidUnionWorkerThreads"===i?"Invalid parameter union worker threads":"isInvalidBoundJoinBlockSize"===i?"Invalid parameter bound join block size":void 0;var i;return""},c=function(e){return`https://graphdb.ontotext.com/documentation/${e.productShortVersion}/${e.productType}`};function u(e,t,o,r,n,a,s,l,d){e.loader=!0,e.isLocationInactive=function(t){return!t.active||!e.hasActiveLocation()},e.getLocations=function(){return r.getLocations()},e.hasActiveLocation=function(){return r.hasActiveLocation()},e.getActiveLocation=function(){return r.getActiveLocation()},e.getLocationError=function(){return r.getLocationError()},e.getDegradedReason=function(){return r.getDegradedReason()},e.getRepositories=function(){return r.getRepositories()},e.deleteLocation=function(t){n.openSimpleModal({title:"Confirm detach",message:"Are you sure you want to detach the location '"+t+"'?",warning:!0}).result.then((function(){e.loader=!0,r.deleteLocation(t)}))},e.addLocationHttp=function(t){e.loader=!0,s.addLocation(t).success((function(t){e.locations=t,r.init()})).error((function(t){const i=getError(t);o.error(i,"Error"),e.loader=!1}))},e.addLocation=function(){t.open({templateUrl:"js/angular/templates/modal/add-location.html",windowClass:"addLocationDialog",controller:"AddLocationCtrl"}).result.then((function(t){e.addLocationHttp(t)}))},e.editLocationHttp=function(t){e.loader=!0,s.editLocation(t).success((function(t){e.locations=t,r.init()})).error((function(t){const i=getError(t);o.error(i,"Error"),e.loader=!1}))},e.editLocation=function(o){t.open({templateUrl:"js/angular/templates/modal/edit-location.html",controller:"EditLocationCtrl",resolve:{location:function(){return o}}}).result.then((function(t){e.editLocationHttp(t)}),(function(){}))},e.activateLocationRequest=function(t){e.loader=!0;const i={uri:t.uri};s.enableLocation(i).success((function(){r.setRepository(""),r.init()})).error((function(e){const i=getError(e);o.error(i,"Error"),document.getElementById("switch-"+t.$$hashKey).checked=!1}))},e.activateLocation=function(t){e.hasActiveLocation()?n.openSimpleModal({title:"Confirm location change",message:"Are you sure you want to change the location?",warning:!0}).result.then((function(){e.activateLocationRequest(t)}),(function(){document.getElementById("switch-"+t.$$hashKey).checked=!1})):e.activateLocationRequest(t)},e.setRepository=function(e){r.setRepository(e)},e.deleteRepository=function(t){n.openSimpleModal({title:"Confirm delete",message:`<p>Are you sure you want to delete the repository <strong>${t}</strong>?</p>\n <p><span class="icon-2x icon-warning" style="color: #d54a33"/>\n All data in the repository will be lost.</p>`,warning:!0}).result.then((function(){e.loader=!0,r.deleteRepository(t),function(e){const t=`dependencies-selectedGraph-${e}`,o=`classHierarchy-selectedGraph-${e}`;angular.forEach(l.keys(),(function(e){(e.startsWith(o)||e.startsWith(t))&&l.remove(e)}))}(t)}))},e.restartRepository=function(t){n.openSimpleModal({title:"Confirm restart",message:`<p>Are you sure you want to restart the repository <strong>${t}</strong>?</p>\n <p><span class="icon-2x icon-warning" style="color: #d54a33"/>\n The repository will be shut down immediately and all running queries\n and updates will be cancelled.</p>`,warning:!0}).result.then((function(){e.loader=!0,r.restartRepository(t)}))},e.toggleDefaultRepository=function(t){e.getDefaultRepository()===t?r.setDefaultRepository(null):r.setDefaultRepository(t)},e.getDefaultRepository=function(){return r.getDefaultRepository()},e.getRepositoryDownloadLink=function(e){let t=`rest/repositories/${e.id}${e.type===i.REPOSITORY_TYPES.ontop?"/downloadZip":"/download"}`;const o=a.getAuthToken();return o&&(t=`${t}?authToken=${encodeURIComponent(o)}`),t},e.copyToClipboard=function(e){n.openCopyToClipboardModal(e)},e.fromFile=function(){t.open({templateUrl:"js/angular/templates/modal/upload-repository-config.html",controller:"UploadRepositoryConfigCtrl"}).result.then((function(){r.init()}))},e.openActiveLocationSettings=function(){t.open({templateUrl:"js/angular/settings/modal/location-settings.html",controller:"ActiveLocationSettingsCtrl"})};const c=d((function(){r.initQuick()}),5e3);e.$on("$destroy",(function(){d.cancel(c)}))}function p(e,t,o,i){e.upload=function(t){t&&t.length&&(e.uploadFile=t[0])},e.ok=function(){e.uploadFile&&(e.uploadFileLoader=!0,o.upload({url:"rest/repositories",method:"POST",data:{config:e.uploadFile}}).success((function(){e.uploadFileLoader=!1,t.close()})).error((function(t){const o=getError(t);i.error(o,"Error"),e.uploadFileLoader=!1})))},e.cancel=function(){t.dismiss("cancel")}}function f(e,t,o,i){e.newLocation={uri:"",authType:"none",username:"",password:"",active:!1},e.docBase=c(i),e.isValidLocation=function(){return(e.newLocation.uri.length<6||0===e.newLocation.uri.indexOf("http:")||0===e.newLocation.uri.indexOf("https:"))&&e.newLocation.uri.indexOf("/repositories")<=-1},e.ok=function(){e.newLocation?t.close(e.newLocation):o.error("Location cannot be empty")},e.cancel=function(){t.dismiss("cancel")}}function m(e,t,o,i){e.editedLocation=angular.copy(o),e.docBase=c(i),e.ok=function(){t.close(e.editedLocation)},e.cancel=function(){t.dismiss("cancel")}}function h(e,t,o,r){e.pageTitle="Select repository type",e.repositoryTypes=i.REPOSITORY_TYPES,e.isEnterprise=o,e.isFreeEdition=r,e.chooseRepositoryType=function(e){t.path(`${t.path()}/${e}`)}}function y(e,t,o,r,c,u,p,f,m,h){var y;e.rulesets=i.STATIC_RULESETS.slice(),e.repositoryTypes=i.REPOSITORY_TYPES,e.repoTooltips=i.REPO_TOOLTIPS,e.params=m,e.repositoryType=m.repositoryType,e.enable=!0,e.loader=!0,e.pageTitle="Create Repository",e.repositoryInfo={id:"",params:{},title:"",type:""},e.isEnterprise=p,e.isFreeEdition=f,e.invalidValues={isInvalidQueryTimeout:!1,isInvalidQueryLimit:!1,isInvalidLeftJoinWorkerThreads:!1,isInvalidBoundJoinBlockSize:!1,isInvalidJoinWorkerThreads:!1,isInvalidUnionWorkerThreads:!1,isInvalidValidationResultsLimitPerConstraint:!1,isInvalidValidationResultsLimitTotal:!1},e.getConfig=function(o){h.getRepositoryConfiguration(o).success((function(t){e.repositoryInfo.params=t.params,e.repositoryInfo.type=t.type,n(e.repositoryInfo.params),a(e.repositoryInfo.params),e.loader=!1,c((function(){angular.element(document).find("#id").focus()}),50)})).error((function(o){const i=getError(o);t.error(i,"Error"),e.loader=!1}))},e.repositoryType&&(function(t){return e.isEnterprise&&(t===i.REPOSITORY_TYPES.eeMaster||t===i.REPOSITORY_TYPES.eeWorker)}(y=e.repositoryType)||function(t){return!e.isFreeEdition&&!e.isEnterprise&&t===i.REPOSITORY_TYPES.se}(y)||function(t){return e.isFreeEdition&&t===i.REPOSITORY_TYPES.free}(y)||function(e){return e===i.REPOSITORY_TYPES.ontop}(y)||function(e){return e===i.REPOSITORY_TYPES.fedx}(y))?(e.repositoryInfo.type=e.repositoryType,e.getConfig(e.repositoryType),function(t){switch(t){case i.REPOSITORY_TYPES.free:e.pageTitle="Create GraphDB Free repository";break;case i.REPOSITORY_TYPES.eeWorker:e.pageTitle="Create GraphDB EE Worker repository";break;case i.REPOSITORY_TYPES.eeMaster:e.pageTitle="Create GraphDB EE Master repository";break;case i.REPOSITORY_TYPES.se:e.pageTitle="Create GraphDB SE repository";break;case i.REPOSITORY_TYPES.ontop:e.pageTitle="Create Ontop Virtual SPARQL repository";break;case i.REPOSITORY_TYPES.fedx:e.pageTitle="Create FedX Virtual SPARQL repository"}}(e.repositoryType)):r.path("/repository/create"),e.hasActiveLocation=function(){return o.hasActiveLocation()},e.activeLocation=function(){return o.getActiveLocation()};let v=!1;e.uploadRuleset=function(o){o&&o.length&&(e.uploadFile=o[0],e.uploadFileLoader=!0,u.upload({url:"rest/repositories/uploadRuleSet",data:{ruleset:e.uploadFile}}).progress((function(e){})).success((function(o){if(o.success){const t=e.uploadFile.name,i={id:o.fileLocation,name:"Custom: "+t};e.rulesetPie?e.rulesets[0]=i:e.rulesets.unshift(i),e.rulesetPie=o.fileLocation,e.rulesetPieFile=t,e.repositoryInfo.params.ruleset.value=e.rulesetPie}else t.error(o.errorMessage),v=!0;e.uploadFileLoader=!1})).error((function(o){const i=getError(o);t.error(i,"Error"),e.uploadFile="",e.uploadFileLoader=!1})))},e.noMembersError=function(){t.error("FedX repository should be created with at least one member!")},e.goBackToPreviousLocation=function(){angular.isDefined(m.previous)?(delete r.$$search.previous,r.path("/")):r.path("/repository")},e.createRepoHttp=function(){e.loader=!0,h.createRepository(e.repositoryInfo).success((function(){t.success("The repository "+e.repositoryInfo.id+" has been created."),o.init(e.goBackToPreviousLocation)})).error((function(o){const i=getError(o);t.error(i,"Error"),e.loader=!1}))},e.createRepo=function(){if(!e.repositoryInfo.id)return void t.error("Repository ID cannot be empty");e.isInvalidRepoName=!i.FILENAME_PATTERN.test(e.repositoryInfo.id),l(e.repositoryInfo.params,e.invalidValues);const o=d(e.invalidValues);v?t.error("Invalid rule-set file. Please upload a valid one."):e.isInvalidRepoName?t.error("Wrong repo name"):"fedx"===e.repositoryType&&0===e.repositoryInfo.params.member.value.length?e.noMembersError():o?t.error(o):e.createRepoHttp()},e.rulesetWarning=function(){const t=e.repositoryInfo.params;return void 0===t||void 0===t.ruleset||void 0===t.disableSameAs?"":0===t.ruleset.value.indexOf("owl")&&"true"===t.disableSameAs.value?i.REPO_TOOLTIPS.rulesetWarnings.needsSameAs:0===t.ruleset.value.indexOf("rdfs")&&"false"===t.disableSameAs.value?i.REPO_TOOLTIPS.rulesetWarnings.doesntNeedSameAs:t.ruleset.value===e.rulesetPie?i.REPO_TOOLTIPS.rulesetWarnings.customRuleset:""},e.validateNumberInput=function(){l(e.repositoryInfo.params,e.invalidValues)},e.getShaclOptionsClass=function(){return s()},e.autofocusId="autofocus"}function v(e,t,o,i,r){i&&o.getRepositoryFileContent(i).success((function(t){e.fileContent=t})).error((function(e){const t=getError(e);r.error(t,"Error")})),e.ok=function(){t.close({content:e.fileContent,fileLocation:i})},e.cancel=function(){t.dismiss("cancel")}}function R(e,t,o,a,c,u,p,f,m){e.rulesets=i.STATIC_RULESETS.slice(),e.repositoryTypes=i.REPOSITORY_TYPES,e.repoTooltips=i.REPO_TOOLTIPS,e.editRepoPage=!0,e.canEditRepoId=!1,e.params=t,e.loader=!0,e.isEnterprise=p,e.isFreeEdition=f,e.repositoryInfo={},e.repositoryInfo.id=e.params.repositoryId,e.repositoryInfo.restartRequested=!1,e.repositoryType="",e.saveRepoId=e.params.repositoryId,e.pageTitle="Edit Repository: "+e.params.repositoryId,e.invalidValues={isInvalidQueryTimeout:!1,isInvalidQueryLimit:!1,isInvalidLeftJoinWorkerThreads:!1,isInvalidBoundJoinBlockSize:!1,isInvalidJoinWorkerThreads:!1,isInvalidUnionWorkerThreads:!1,isInvalidValidationResultsLimitPerConstraint:!1,isInvalidValidationResultsLimitTotal:!1},e.hasActiveLocation=function(){return a.hasActiveLocation()},e.$watch(e.hasActiveLocation,(function(){e.hasActiveLocation&&m.getRepository(e.repositoryInfo.id).success((function(t){if(angular.isDefined(t.params.ruleset)){let o=!1;if(angular.forEach(e.rulesets,(function(e){e.id===t.params.ruleset.value&&(o=!0)})),t.params.ruleset&&!o){let o=r(t.params.ruleset.value);e.rulesets.unshift({id:t.params.ruleset.value,name:"Custom: "+o})}}e.repositoryInfo=t,e.setRepositoryType(t.type),n(e.repositoryInfo.params),e.repositoryInfo.saveId=e.saveRepoId,e.loader=!1})).error((function(i,r){if(404===r&&"system"!==t.repositoryId)o.error("Repo with name <b>"+t.repositoryId+"</b> doesn't exists","Error",{allowHtml:!0}),e.loader=!1,c.path("repository");else if(404===r&&"system"===t.repositoryId)o.error("<b>System</b> repository can't be edited","Error",{allowHtml:!0}),e.loader=!1,c.path("repository");else{const t=getError(i);o.error(t,"Error"),e.loader=!1}}))})),e.setRepositoryType=function(t){e.repositoryType=t},e.noMembersError=function(){o.error("FedX repository should be created with at least one member!")},e.editRepoHttp=function(){e.loader=!0,m.editRepository(e.repositoryInfo.saveId,e.repositoryInfo).success((function(){o.success("The repository "+e.repositoryInfo.saveId+" has been edited."),a.init(e.goBackToPreviousLocation),e.repositoryInfo.saveId===e.repositoryInfo.id&&e.repositoryInfo.restartRequested&&a.restartRepository(e.repositoryInfo.id)})).error((function(t){const i=getError(t);o.error(i,"Error"),e.loader=!1}))},e.editRepository=function(){e.isInvalidRepoName=!i.FILENAME_PATTERN.test(e.repositoryInfo.id),l(e.repositoryInfo.params,e.invalidValues);const t=d(e.invalidValues);let r=`Save changes to repository <strong>${e.repositoryInfo.id}</strong>?<br><br>`;e.repositoryInfo.saveId!==e.repositoryInfo.id?r+='<span class="icon-2x icon-warning" style="color: #d54a33"/>\n The repository will be stopped and renamed.':e.repositoryInfo.restartRequested?r+='<span class="icon-2x icon-warning" style="color: #d54a33"/>\n The repository will be restarted.':r+='<span class="icon-2x icon-warning" style="color: #d54a33"/>\n Repository restart required for changes to take effect.',e.isInvalidRepoName?o.error("Wrong repo name"):"fedx"===e.repositoryType&&0===e.repositoryInfo.params.member.value.length?e.noMembersError():t?o.error(t):u.openSimpleModal({title:"Confirm save",message:r,warning:!0}).result.then((function(){e.editRepoHttp()}))},e.editRepositoryId=function(){let t="<p>Changing the repository ID is a dangerous operation since it renames the repository folder and enforces repository shutdown.</p>";e.isEnterprise&&(t+="<p>If your repository is in a cluster, it is your responsibility to update the cluster after renaming.</p>"),u.openSimpleModal({title:"Confirm enable edit",message:t,warning:!0}).result.then((function(){e.canEditRepoId=!0}))},e.goBackToPreviousLocation=function(){angular.isDefined(t.previous)?(delete c.$$search.previous,c.path("/")):c.path("/repository")},e.validateNumberInput=function(){l(e.repositoryInfo.params,e.invalidValues)},e.getShaclOptionsClass=function(){return s()}}angular.module("graphdb.framework.repositories.controllers",["ngCookies","ui.bootstrap","graphdb.framework.core.services.repositories","graphdb.framework.utils.localstorageadapter","toastr","ngFileUpload"]).controller("LocationsAndRepositoriesCtrl",u).controller("AddLocationCtrl",f).controller("EditLocationCtrl",m).controller("ChooseRepositoryCtrl",h).controller("AddRepositoryCtrl",y).controller("EditRepositoryCtrl",R).controller("EditRepositoryFileCtrl",v).controller("UploadRepositoryConfigCtrl",p),u.$inject=["$scope","$modal","toastr","$repositories","ModalService","$jwtAuth","LocationsRestService","LocalStorageAdapter","$interval"],p.$inject=["$scope","$modalInstance","Upload","toastr"],f.$inject=["$scope","$modalInstance","toastr","productInfo"],m.$inject=["$scope","$modalInstance","location","productInfo"],h.$inject=["$scope","$location","isEnterprise","isFreeEdition"],y.$inject=["$scope","toastr","$repositories","$location","$timeout","Upload","isEnterprise","isFreeEdition","$routeParams","RepositoriesRestService"],v.$inject=["$scope","$modalInstance","RepositoriesRestService","file","toastr"],R.$inject=["$scope","$routeParams","toastr","$repositories","$location","ModalService","isEnterprise","isFreeEdition","RepositoriesRestService"]}}]);
2
- //# sourceMappingURL=5.21d2da4b4bc2b26e2534.bundle.js.map
1
+ (window.webpackJsonp=window.webpackJsonp||[]).push([[5,81],{37:function(e,t,o){"use strict";o.r(t),o.d(t,"STATIC_RULESETS",(function(){return i})),o.d(t,"REPOSITORY_TYPES",(function(){return r})),o.d(t,"FILENAME_PATTERN",(function(){return n})),o.d(t,"NUMBER_PATTERN",(function(){return a})),o.d(t,"REPO_TOOLTIPS",(function(){return s}));const i=[{id:"empty",name:"No inference"},{id:"rdfs-optimized",name:"RDFS (Optimized)"},{id:"rdfs",name:"RDFS"},{id:"rdfsplus-optimized",name:"RDFS-Plus (Optimized)"},{id:"owl-horst-optimized",name:"OWL-Horst (Optimized)"},{id:"owl-horst",name:"OWL-Horst"},{id:"owl2-ql-optimized",name:"OWL2-QL (Optimized)"},{id:"owl2-ql",name:"OWL2-QL"},{id:"owl-max-optimized",name:"OWL-Max (Optimized)"},{id:"owl-max",name:"OWL-Max"},{id:"owl2-rl-optimized",name:"OWL2-RL (Optimized)"},{id:"owl2-rl",name:"OWL2-RL"}],r={free:"free",eeWorker:"worker",eeMaster:"master",ontop:"ontop",se:"se",fedx:"fedx"},n=new RegExp("^[a-zA-Z0-9-_]+$"),a=new RegExp("^[0-9]+$"),s={id:"Unique identifier for the repository. The ID must contain only letters (a-z, A-Z), numbers (0-9), '-' and '_'.",title:"Human readable description of the repository.",readOnly:"Protects the repository against any changes.",ruleset:"Sets of axiomatic triples, consistency checks and entailment rules, which determine the applied semantics with a PIE file.",rulesetWarnings:{needsSameAs:"Disabling owl:sameAs for this ruleset may cause incomplete inference with owl:sameAs statements.",doesntNeedSameAs:"This ruleset does not need owl:sameAs, consider disabling it.",customRuleset:"If the custom ruleset does not use owl:sameAs, consider disabling it. <br>If the ruleset uses owl:sameAs, disabling it may cause incomplete inference with owl:sameAs statements."},disableSameAs:"GraphDB uses a non-rule implementation of owl:sameAs, which can be enabled or disabled independently of the ruleset.",checkForInconsistencies:"Enables the consistency checks from the ruleset.",isShacl:"Enables support for SHACL validation.",shaclOptions:{cacheSelectNodes:"The SHACL implementation retrieves a lot of its relevant data through running SPARQL Select queries against the repository and against the changes in the transaction. This is usually good for performance, but while validating large amounts of data disabling this cache will use less memory.",undefinedTargetValidatesAllSubjects:"If no target is defined for a NodeShape, that NodeShape will be ignored. Enabling this will make such NodeShapes wildcard shapes and validate all subjects. Equivalent to setting sh:targetClass to owl:Thing or rdfs:Resource in an environment with a reasoner.",logValidationPlans:"Log (INFO) the executed validation plans as GraphViz DOT. It is recommended to disable parallel validation when this is enabled.",logValidationViolations:"Log (INFO) a list of violations and the triples that caused the violations. It is recommended to disable parallel validation when this is enabled.",parallelValidation:"Run SHACL validation in parallel.",globalLogValidationExecution:"Log (INFO) every execution step of the SHACL validation. This is fairly costly and should not be used in production. It is recommended to disable parallel validation when this is enabled.",performanceLogging:"Log (INFO) the execution time per shape. It is recommended to disable parallel validation and caching of select nodes when this is enabled.",eclipseRdf4jShaclExtensions:"Activates RDF4J's SHACL extensions that provide additional functionality (experimental).",dashDataShapes:"Activates DASH Data Shapes extensions that provide additional functionality (experimental)."},entityIdSize:"Defines the bit size of internal IDs used to index entities (URIs, blank nodes, literals, and RDF* embedded triples).<br>Use 40 bit ID only if you expect more than 2 billion unique RDF values.",enableContextIndex:"Builds an additional Context-Predicate-Subject-Object index to boost the SPARQL query performance of queries with GRAPH/FROM/FROM NAMED clauses.",enablePredicateList:"Enables the mappings from an entity (subject or object) to its predicates; enabling it can significantly speed up queries that use wildcard predicate patterns.",queryTimeout:"Sets the number of seconds after which the evaluation of a query will be terminated; values less than or equal to zero mean no limit.",throwQueryEvaluationExceptionOnTimeout:"Repository throws QueryEvaluationException when the duration of a query execution exceeds the timeout parameter.",queryLimitResults:"Sets the maximum number of results returned from a query after which the evaluation of a query will be terminated; values less than or equal to zero mean no limit.",nonInterpretablePredicates:"Semicolon-delimited list of predicates (full URIs) that GraphDB will not try to process with the registered GraphDB plugins.",ontop:{driverType:"Determines the type of SQL database to connect to.",propertiesFile:"Describes the JDBC configuration such as hostname and database name to connect to.",hostName:"The JDBC hostname to connect to.",port:"The JDBC port to connect to if different from the default for the chosen JDBC driver.",portIfRequired:"The JDBC port to connect to.",databaseName:"The database name to connect to.",userName:"The username to use for the JDBC connection.",password:"The password to use for the JDBC connection.",driverClass:"Classname of the chosen JDBC driver. It must be on the classpath (in the lib directory).",driverClassWarning:"JDBC driver not found in the classpath, please save it in the lib directory and restart GraphDB",url:"The JDBC URL that will be used. It is constructed using the supplied hostname, port and database name.",obdaFile:"Describes the mapping from SQL to RDF in either the OBDA or the R2RML format.",owlFile:"Specifies relations between the classes and properties in the cosntructed RDF graph. It can be in any supported RDF format.",constraintFile:"Specifies override of SQL primary and foreign keys.",dbMetadataFile:"Specifies metadata for the SQL database.",testConn:"Attempts to establish a connection to the SQL database to test if the supplied configuration is correct."},fedx:{repositoryNotExistWarning:"The repository member has been removed from the local repositories",localReposInstructions:"Click on a repo to add a local repository as a member",withLogQueries:"Set whether to log queries",withDebugQueryPlan:"Whether to print the optimized query execution plan to stdout",enforceMaxQueryTime:"Max query time in seconds, 0 to disable",withIncludeInferredDefault:"Set whether to include inferred statements or not",withBoundJoinBlockSize:"Set the block size for bound joins",withJoinWorkerThreads:"Set the number of join worker threads for parallelization",withLeftJoinWorkerThreads:"Set the number of left join worker threads",unionWorkerThreads:"Set the number of union worker threads for parallelization",withLogQueryPlan:"Whether to log the query plan",withEnableServiceAsBoundJoin:"Whether external SERVICE clauses are evaluated using bound join",withSourceSelectionCacheSpec:"The cache specification for the SourceSelectionMemoryCache",removeMember:"Remove repository as a FedX member",editRepository:"Edit repository",setAsWritable:"Set repository as writable"}}},42:function(e,t,o){"use strict";o.r(t),o.d(t,"getFileName",(function(){return r}));var i=o(37);const r=function(e){let t=e.lastIndexOf("/");-1===t&&(t=e.lastIndexOf("\\"));let o=e;return-1!==t&&(o=o.substring(t+1)),o},n=function(e){e&&(e.queryTimeout&&(e.queryTimeout.value=parseInt(e.queryTimeout.value)),e.queryLimitResults&&e.validationResultsLimitTotal&&e.validationResultsLimitPerConstraint?(e.queryLimitResults.value=parseInt(e.queryLimitResults.value),e.validationResultsLimitTotal.value=parseInt(e.validationResultsLimitTotal.value),e.validationResultsLimitPerConstraint.value=parseInt(e.validationResultsLimitPerConstraint.value)):e.leftJoinWorkerThreads&&e.boundJoinBlockSize&&e.joinWorkerThreads&&e.unionWorkerThreads&&(e.leftJoinWorkerThreads.value=parseInt(e.leftJoinWorkerThreads.value),e.boundJoinBlockSize.value=parseInt(e.boundJoinBlockSize.value),e.joinWorkerThreads.value=parseInt(e.joinWorkerThreads.value),e.unionWorkerThreads.value=parseInt(e.unionWorkerThreads.value)))},a=function(e){e&&e.member&&(e.member.value=[])},s=function(){const e=document.getElementById("shaclOptions");if(e){const t=e.getAttribute("aria-expanded");if(t&&"true"===t)return"fa fa-angle-down"}return"fa fa-angle-right"},l=function(e,t){e.queryTimeout&&(t.isInvalidQueryTimeout=!i.NUMBER_PATTERN.test(e.queryTimeout.value)),e.validationResultsLimitTotal&&e.validationResultsLimitPerConstraint&&e.queryLimitResults?(t.isInvalidValidationResultsLimitTotal=!i.NUMBER_PATTERN.test(e.validationResultsLimitTotal.value),t.isInvalidValidationResultsLimitPerConstraint=!i.NUMBER_PATTERN.test(e.validationResultsLimitPerConstraint.value),t.isInvalidQueryLimit=!i.NUMBER_PATTERN.test(e.queryLimitResults.value)):e.leftJoinWorkerThreads&&e.boundJoinBlockSize&&e.joinWorkerThreads&&e.unionWorkerThreads&&(t.isInvalidLeftJoinWorkerThreads=!i.NUMBER_PATTERN.test(e.leftJoinWorkerThreads.value),t.isInvalidBoundJoinBlockSize=!i.NUMBER_PATTERN.test(e.boundJoinBlockSize.value),t.isInvalidJoinWorkerThreads=!i.NUMBER_PATTERN.test(e.joinWorkerThreads.value),t.isInvalidUnionWorkerThreads=!i.NUMBER_PATTERN.test(e.unionWorkerThreads.value))},d=function(e){let t=Object.keys(e),o=Object.values(e);for(let e=0;e<t.length;e++)if(o[e])return"isInvalidQueryLimit"===(i=t[e])?"Invalid parameter query limit":"isInvalidQueryTimeout"===i?"Invalid parameter query timeout":"isInvalidValidationResultsLimitTotal"===i?"Invalid parameter validation results limit total":"isInvalidValidationResultsLimitPerConstraint"===i?"Invalid parameter validation results limit per constraint":"isInvalidJoinWorkerThreads"===i?"Invalid parameter join worker threads":"isInvalidLeftJoinWorkerThreads"===i?"Invalid parameter left join worker threads":"isInvalidUnionWorkerThreads"===i?"Invalid parameter union worker threads":"isInvalidBoundJoinBlockSize"===i?"Invalid parameter bound join block size":void 0;var i;return""},c=function(e){return`https://graphdb.ontotext.com/documentation/${e.productShortVersion}/${e.productType}`};function u(e,t,o,r,n,a,s,l,d){e.loader=!0,e.isLocationInactive=function(t){return!t.active||!e.hasActiveLocation()},e.getLocations=function(){return r.getLocations()},e.hasActiveLocation=function(){return r.hasActiveLocation()},e.getActiveLocation=function(){return r.getActiveLocation()},e.getLocationError=function(){return r.getLocationError()},e.getDegradedReason=function(){return r.getDegradedReason()},e.getRepositories=function(){return r.getRepositories()},e.deleteLocation=function(t){n.openSimpleModal({title:"Confirm detach",message:"Are you sure you want to detach the location '"+t+"'?",warning:!0}).result.then((function(){e.loader=!0,r.deleteLocation(t)}))},e.addLocationHttp=function(t){e.loader=!0,s.addLocation(t).success((function(t){e.locations=t,r.init()})).error((function(t){const i=getError(t);o.error(i,"Error"),e.loader=!1}))},e.addLocation=function(){t.open({templateUrl:"js/angular/templates/modal/add-location.html",windowClass:"addLocationDialog",controller:"AddLocationCtrl"}).result.then((function(t){e.addLocationHttp(t)}))},e.editLocationHttp=function(t){e.loader=!0,s.editLocation(t).success((function(t){e.locations=t,r.init()})).error((function(t){const i=getError(t);o.error(i,"Error"),e.loader=!1}))},e.editLocation=function(o){t.open({templateUrl:"js/angular/templates/modal/edit-location.html",controller:"EditLocationCtrl",resolve:{location:function(){return o}}}).result.then((function(t){e.editLocationHttp(t)}),(function(){}))},e.activateLocationRequest=function(t){e.loader=!0;const i={uri:t.uri};s.enableLocation(i).success((function(){r.setRepository(""),r.init()})).error((function(e){const i=getError(e);o.error(i,"Error"),document.getElementById("switch-"+t.$$hashKey).checked=!1}))},e.activateLocation=function(t){e.hasActiveLocation()?n.openSimpleModal({title:"Confirm location change",message:"Are you sure you want to change the location?",warning:!0}).result.then((function(){e.activateLocationRequest(t)}),(function(){document.getElementById("switch-"+t.$$hashKey).checked=!1})):e.activateLocationRequest(t)},e.setRepository=function(e){r.setRepository(e)},e.deleteRepository=function(t){n.openSimpleModal({title:"Confirm delete",message:`<p>Are you sure you want to delete the repository <strong>${t}</strong>?</p>\n <p><span class="icon-2x icon-warning" style="color: #d54a33"/>\n All data in the repository will be lost.</p>`,warning:!0}).result.then((function(){e.loader=!0,r.deleteRepository(t),function(e){const t=`dependencies-selectedGraph-${e}`,o=`classHierarchy-selectedGraph-${e}`;angular.forEach(l.keys(),(function(e){(e.startsWith(o)||e.startsWith(t))&&l.remove(e)}))}(t)}))},e.restartRepository=function(t){n.openSimpleModal({title:"Confirm restart",message:`<p>Are you sure you want to restart the repository <strong>${t}</strong>?</p>\n <p><span class="icon-2x icon-warning" style="color: #d54a33"/>\n The repository will be shut down immediately and all running queries\n and updates will be cancelled.</p>`,warning:!0}).result.then((function(){e.loader=!0,r.restartRepository(t)}))},e.toggleDefaultRepository=function(t){e.getDefaultRepository()===t?r.setDefaultRepository(null):r.setDefaultRepository(t)},e.getDefaultRepository=function(){return r.getDefaultRepository()},e.getRepositoryDownloadLink=function(e){let t=`rest/repositories/${e.id}${e.type===i.REPOSITORY_TYPES.ontop?"/downloadZip":"/download"}`;const o=a.getAuthToken();return o&&(t=`${t}?authToken=${encodeURIComponent(o)}`),t},e.copyToClipboard=function(e){n.openCopyToClipboardModal(e)},e.fromFile=function(){t.open({templateUrl:"js/angular/templates/modal/upload-repository-config.html",controller:"UploadRepositoryConfigCtrl"}).result.then((function(){r.init()}))},e.openActiveLocationSettings=function(){t.open({templateUrl:"js/angular/settings/modal/location-settings.html",controller:"ActiveLocationSettingsCtrl"})};const c=d((function(){r.initQuick()}),5e3);e.$on("$destroy",(function(){d.cancel(c)}))}function p(e,t,o,i){e.upload=function(t){t&&t.length&&(e.uploadFile=t[0])},e.ok=function(){e.uploadFile&&(e.uploadFileLoader=!0,o.upload({url:"rest/repositories",method:"POST",data:{config:e.uploadFile}}).success((function(){e.uploadFileLoader=!1,t.close()})).error((function(t){const o=getError(t);i.error(o,"Error"),e.uploadFileLoader=!1})))},e.cancel=function(){t.dismiss("cancel")}}function f(e,t,o,i){e.newLocation={uri:"",authType:"none",username:"",password:"",active:!1},e.docBase=c(i),e.isValidLocation=function(){return(e.newLocation.uri.length<6||0===e.newLocation.uri.indexOf("http:")||0===e.newLocation.uri.indexOf("https:"))&&e.newLocation.uri.indexOf("/repositories")<=-1},e.ok=function(){e.newLocation?t.close(e.newLocation):o.error("Location cannot be empty")},e.cancel=function(){t.dismiss("cancel")}}function h(e,t,o,i){e.editedLocation=angular.copy(o),e.docBase=c(i),e.ok=function(){t.close(e.editedLocation)},e.cancel=function(){t.dismiss("cancel")}}function m(e,t,o,r){e.pageTitle="Select repository type",e.repositoryTypes=i.REPOSITORY_TYPES,e.isEnterprise=o,e.isFreeEdition=r,e.chooseRepositoryType=function(e){t.path(`${t.path()}/${e}`)}}function y(e,t,o,r,c,u,p,f,h,m){var y;e.rulesets=i.STATIC_RULESETS.slice(),e.repositoryTypes=i.REPOSITORY_TYPES,e.repoTooltips=i.REPO_TOOLTIPS,e.params=h,e.repositoryType=h.repositoryType,e.enable=!0,e.loader=!0,e.pageTitle="Create Repository",e.repositoryInfo={id:"",params:{},title:"",type:""},e.isEnterprise=p,e.isFreeEdition=f,e.invalidValues={isInvalidQueryTimeout:!1,isInvalidQueryLimit:!1,isInvalidLeftJoinWorkerThreads:!1,isInvalidBoundJoinBlockSize:!1,isInvalidJoinWorkerThreads:!1,isInvalidUnionWorkerThreads:!1,isInvalidValidationResultsLimitPerConstraint:!1,isInvalidValidationResultsLimitTotal:!1},e.getConfig=function(o){m.getRepositoryConfiguration(o).success((function(t){e.repositoryInfo.params=t.params,e.repositoryInfo.type=t.type,n(e.repositoryInfo.params),a(e.repositoryInfo.params),e.loader=!1,c((function(){angular.element(document).find("#id").focus()}),50)})).error((function(o){const i=getError(o);t.error(i,"Error"),e.loader=!1}))},e.repositoryType&&(function(t){return e.isEnterprise&&(t===i.REPOSITORY_TYPES.eeMaster||t===i.REPOSITORY_TYPES.eeWorker)}(y=e.repositoryType)||function(t){return!e.isFreeEdition&&!e.isEnterprise&&t===i.REPOSITORY_TYPES.se}(y)||function(t){return e.isFreeEdition&&t===i.REPOSITORY_TYPES.free}(y)||function(e){return e===i.REPOSITORY_TYPES.ontop}(y)||function(e){return e===i.REPOSITORY_TYPES.fedx}(y))?(e.repositoryInfo.type=e.repositoryType,e.getConfig(e.repositoryType),function(t){switch(t){case i.REPOSITORY_TYPES.free:e.pageTitle="Create GraphDB Free repository";break;case i.REPOSITORY_TYPES.eeWorker:e.pageTitle="Create GraphDB EE Worker repository";break;case i.REPOSITORY_TYPES.eeMaster:e.pageTitle="Create GraphDB EE Master repository";break;case i.REPOSITORY_TYPES.se:e.pageTitle="Create GraphDB SE repository";break;case i.REPOSITORY_TYPES.ontop:e.pageTitle="Create Ontop Virtual SPARQL repository";break;case i.REPOSITORY_TYPES.fedx:e.pageTitle="Create FedX Virtual SPARQL repository"}}(e.repositoryType)):r.path("/repository/create"),e.hasActiveLocation=function(){return o.hasActiveLocation()},e.activeLocation=function(){return o.getActiveLocation()};let v=!1;e.uploadRuleset=function(o){o&&o.length&&(e.uploadFile=o[0],e.uploadFileLoader=!0,u.upload({url:"rest/repositories/uploadRuleSet",data:{ruleset:e.uploadFile}}).progress((function(e){})).success((function(o){if(o.success){const t=e.uploadFile.name,i={id:o.fileLocation,name:"Custom: "+t};e.rulesetPie?e.rulesets[0]=i:e.rulesets.unshift(i),e.rulesetPie=o.fileLocation,e.rulesetPieFile=t,e.repositoryInfo.params.ruleset.value=e.rulesetPie}else t.error(o.errorMessage),v=!0;e.uploadFileLoader=!1})).error((function(o){const i=getError(o);t.error(i,"Error"),e.uploadFile="",e.uploadFileLoader=!1})))},e.noMembersError=function(){t.error("FedX repository should be created with at least one member!")},e.goBackToPreviousLocation=function(){angular.isDefined(h.previous)?(delete r.$$search.previous,r.path("/")):r.path("/repository")},e.createRepoHttp=function(){e.loader=!0,m.createRepository(e.repositoryInfo).success((function(){t.success("The repository "+e.repositoryInfo.id+" has been created."),o.init(e.goBackToPreviousLocation)})).error((function(o){const i=getError(o);t.error(i,"Error"),e.loader=!1}))},e.createRepo=function(){if(!e.repositoryInfo.id)return void t.error("Repository ID cannot be empty");e.isInvalidRepoName=!i.FILENAME_PATTERN.test(e.repositoryInfo.id),l(e.repositoryInfo.params,e.invalidValues);const o=d(e.invalidValues);v?t.error("Invalid rule-set file. Please upload a valid one."):e.isInvalidRepoName?t.error("Wrong repo name"):"fedx"===e.repositoryType&&0===e.repositoryInfo.params.member.value.length?e.noMembersError():o?t.error(o):e.createRepoHttp()},e.rulesetWarning=function(){const t=e.repositoryInfo.params;return void 0===t||void 0===t.ruleset||void 0===t.disableSameAs?"":0===t.ruleset.value.indexOf("owl")&&"true"===t.disableSameAs.value?i.REPO_TOOLTIPS.rulesetWarnings.needsSameAs:0===t.ruleset.value.indexOf("rdfs")&&"false"===t.disableSameAs.value?i.REPO_TOOLTIPS.rulesetWarnings.doesntNeedSameAs:t.ruleset.value===e.rulesetPie?i.REPO_TOOLTIPS.rulesetWarnings.customRuleset:""},e.validateNumberInput=function(){l(e.repositoryInfo.params,e.invalidValues)},e.getShaclOptionsClass=function(){return s()},e.autofocusId="autofocus"}function v(e,t,o,i,r){i&&o.getRepositoryFileContent(i).success((function(t){e.fileContent=t})).error((function(e){const t=getError(e);r.error(t,"Error")})),e.ok=function(){t.close({content:e.fileContent,fileLocation:i})},e.cancel=function(){t.dismiss("cancel")}}function R(e,t,o,a,c,u,p,f,h){e.rulesets=i.STATIC_RULESETS.slice(),e.repositoryTypes=i.REPOSITORY_TYPES,e.repoTooltips=i.REPO_TOOLTIPS,e.editRepoPage=!0,e.canEditRepoId=!1,e.params=t,e.loader=!0,e.isEnterprise=p,e.isFreeEdition=f,e.repositoryInfo={},e.repositoryInfo.id=e.params.repositoryId,e.repositoryInfo.restartRequested=!1,e.repositoryType="",e.saveRepoId=e.params.repositoryId,e.pageTitle="Edit Repository: "+e.params.repositoryId,e.invalidValues={isInvalidQueryTimeout:!1,isInvalidQueryLimit:!1,isInvalidLeftJoinWorkerThreads:!1,isInvalidBoundJoinBlockSize:!1,isInvalidJoinWorkerThreads:!1,isInvalidUnionWorkerThreads:!1,isInvalidValidationResultsLimitPerConstraint:!1,isInvalidValidationResultsLimitTotal:!1},e.hasActiveLocation=function(){return a.hasActiveLocation()},e.$watch(e.hasActiveLocation,(function(){e.hasActiveLocation&&h.getRepository(e.repositoryInfo.id).success((function(t){if(angular.isDefined(t.params.ruleset)){let o=!1;if(angular.forEach(e.rulesets,(function(e){e.id===t.params.ruleset.value&&(o=!0)})),t.params.ruleset&&!o){let o=r(t.params.ruleset.value);e.rulesets.unshift({id:t.params.ruleset.value,name:"Custom: "+o})}}e.repositoryInfo=t,e.setRepositoryType(t.type),n(e.repositoryInfo.params),e.repositoryInfo.saveId=e.saveRepoId,e.loader=!1})).error((function(i,r){if(404===r&&"system"!==t.repositoryId)o.error("Repo with name <b>"+t.repositoryId+"</b> doesn't exists","Error",{allowHtml:!0}),e.loader=!1,c.path("repository");else if(404===r&&"system"===t.repositoryId)o.error("<b>System</b> repository can't be edited","Error",{allowHtml:!0}),e.loader=!1,c.path("repository");else{const t=getError(i);o.error(t,"Error"),e.loader=!1}}))})),e.setRepositoryType=function(t){e.repositoryType=t},e.noMembersError=function(){o.error("FedX repository should be created with at least one member!")},e.editRepoHttp=function(){e.loader=!0,h.editRepository(e.repositoryInfo.saveId,e.repositoryInfo).success((function(){o.success("The repository "+e.repositoryInfo.saveId+" has been edited."),a.init(e.goBackToPreviousLocation),e.repositoryInfo.saveId===e.repositoryInfo.id&&e.repositoryInfo.restartRequested&&a.restartRepository(e.repositoryInfo.id)})).error((function(t){const i=getError(t);o.error(i,"Error"),e.loader=!1}))},e.editRepository=function(){e.isInvalidRepoName=!i.FILENAME_PATTERN.test(e.repositoryInfo.id),l(e.repositoryInfo.params,e.invalidValues);const t=d(e.invalidValues);let r=`Save changes to repository <strong>${e.repositoryInfo.id}</strong>?<br><br>`;e.repositoryInfo.saveId!==e.repositoryInfo.id?r+='<span class="icon-2x icon-warning" style="color: #d54a33"/>\n The repository will be stopped and renamed.':e.repositoryInfo.restartRequested?r+='<span class="icon-2x icon-warning" style="color: #d54a33"/>\n The repository will be restarted.':r+='<span class="icon-2x icon-warning" style="color: #d54a33"/>\n Repository restart required for changes to take effect.',e.isInvalidRepoName?o.error("Wrong repo name"):"fedx"===e.repositoryType&&0===e.repositoryInfo.params.member.value.length?e.noMembersError():t?o.error(t):u.openSimpleModal({title:"Confirm save",message:r,warning:!0}).result.then((function(){e.editRepoHttp()}))},e.editRepositoryId=function(){let t="<p>Changing the repository ID is a dangerous operation since it renames the repository folder and enforces repository shutdown.</p>";e.isEnterprise&&(t+="<p>If your repository is in a cluster, it is your responsibility to update the cluster after renaming.</p>"),u.openSimpleModal({title:"Confirm enable edit",message:t,warning:!0}).result.then((function(){e.canEditRepoId=!0}))},e.goBackToPreviousLocation=function(){angular.isDefined(t.previous)?(delete c.$$search.previous,c.path("/")):c.path("/repository")},e.validateNumberInput=function(){l(e.repositoryInfo.params,e.invalidValues)},e.getShaclOptionsClass=function(){return s()}}angular.module("graphdb.framework.repositories.controllers",["ngCookies","ui.bootstrap","graphdb.framework.core.services.repositories","graphdb.framework.utils.localstorageadapter","toastr","ngFileUpload"]).controller("LocationsAndRepositoriesCtrl",u).controller("AddLocationCtrl",f).controller("EditLocationCtrl",h).controller("ChooseRepositoryCtrl",m).controller("AddRepositoryCtrl",y).controller("EditRepositoryCtrl",R).controller("EditRepositoryFileCtrl",v).controller("UploadRepositoryConfigCtrl",p),u.$inject=["$scope","$uibModal","toastr","$repositories","ModalService","$jwtAuth","LocationsRestService","LocalStorageAdapter","$interval"],p.$inject=["$scope","$uibModalInstance","Upload","toastr"],f.$inject=["$scope","$uibModalInstance","toastr","productInfo"],h.$inject=["$scope","$uibModalInstance","location","productInfo"],m.$inject=["$scope","$location","isEnterprise","isFreeEdition"],y.$inject=["$scope","toastr","$repositories","$location","$timeout","Upload","isEnterprise","isFreeEdition","$routeParams","RepositoriesRestService"],v.$inject=["$scope","$uibModalInstance","RepositoriesRestService","file","toastr"],R.$inject=["$scope","$routeParams","toastr","$repositories","$location","ModalService","isEnterprise","isFreeEdition","RepositoriesRestService"]}}]);
2
+ //# sourceMappingURL=5.275d1f74283aff0821f2.bundle.js.map