graphdb-workbench 2.2.4-TR1 → 2.2.4

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 (160) hide show
  1. package/dist/{102.7141102a059ef5eba1ea.bundle.js → 102.d52dc777ce7b5de1a30a.bundle.js} +2 -2
  2. package/dist/{102.7141102a059ef5eba1ea.bundle.js.map → 102.d52dc777ce7b5de1a30a.bundle.js.map} +1 -1
  3. package/dist/{104.ecd04b9cba294e159ca5.bundle.js → 104.09c8b5802e53cd9dced9.bundle.js} +2 -2
  4. package/dist/{104.ecd04b9cba294e159ca5.bundle.js.map → 104.09c8b5802e53cd9dced9.bundle.js.map} +1 -1
  5. package/dist/{107.5972b71755d2f24f6f44.bundle.js → 107.481f84627ac231f49e56.bundle.js} +2 -2
  6. package/dist/{107.5972b71755d2f24f6f44.bundle.js.map → 107.481f84627ac231f49e56.bundle.js.map} +1 -1
  7. package/dist/108.d61b0e4a54e1d0e6550d.bundle.js +2 -0
  8. package/dist/{108.162ea156d1fc4ad2525f.bundle.js.map → 108.d61b0e4a54e1d0e6550d.bundle.js.map} +1 -1
  9. package/dist/{11.f7cb87be309f6bd00aa5.bundle.js → 11.89d3de4f2e80e373ecf2.bundle.js} +3 -3
  10. package/dist/{11.f7cb87be309f6bd00aa5.bundle.js.map → 11.89d3de4f2e80e373ecf2.bundle.js.map} +1 -1
  11. package/dist/{115.abb22e52d5886ed645c1.bundle.js → 115.36a12f5a0804f33cb569.bundle.js} +2 -2
  12. package/dist/{115.abb22e52d5886ed645c1.bundle.js.map → 115.36a12f5a0804f33cb569.bundle.js.map} +1 -1
  13. package/dist/{117.ed07ffe3ff3bead9b43b.bundle.js → 117.9c58e6155d7467c45284.bundle.js} +2 -2
  14. package/dist/{117.ed07ffe3ff3bead9b43b.bundle.js.map → 117.9c58e6155d7467c45284.bundle.js.map} +1 -1
  15. package/dist/{118.57c922b04fbcf0d65d1c.bundle.js → 118.7cdbf2a7be83e4cdc7e2.bundle.js} +2 -2
  16. package/dist/{118.57c922b04fbcf0d65d1c.bundle.js.map → 118.7cdbf2a7be83e4cdc7e2.bundle.js.map} +1 -1
  17. package/dist/{119.7b75484ef37c16039937.bundle.js → 119.f7c106efa2582220baa7.bundle.js} +2 -2
  18. package/dist/{119.7b75484ef37c16039937.bundle.js.map → 119.f7c106efa2582220baa7.bundle.js.map} +1 -1
  19. package/dist/{12.eb41e4af80fee51d893c.bundle.js → 12.b4ac6d1ff3d669d3e63f.bundle.js} +2 -2
  20. package/dist/{12.eb41e4af80fee51d893c.bundle.js.map → 12.b4ac6d1ff3d669d3e63f.bundle.js.map} +1 -1
  21. package/dist/{120.0f42d5a0967c1f4636ca.bundle.js → 120.d20d9e20e2d3c5476f8d.bundle.js} +2 -2
  22. package/dist/{120.0f42d5a0967c1f4636ca.bundle.js.map → 120.d20d9e20e2d3c5476f8d.bundle.js.map} +1 -1
  23. package/dist/{121.f85253eb7e057efdb05d.bundle.js → 121.dc96efcaf4dc5e63f58d.bundle.js} +2 -2
  24. package/dist/{121.f85253eb7e057efdb05d.bundle.js.map → 121.dc96efcaf4dc5e63f58d.bundle.js.map} +1 -1
  25. package/dist/{126.349ebcea493c77fecf7e.bundle.js → 126.4c2fb40676d2508bbc65.bundle.js} +2 -2
  26. package/dist/{126.349ebcea493c77fecf7e.bundle.js.map → 126.4c2fb40676d2508bbc65.bundle.js.map} +1 -1
  27. package/dist/{13.bc3607638ad1e2068125.bundle.js → 13.f6b8f9a2288e2485ee20.bundle.js} +2 -2
  28. package/dist/{13.bc3607638ad1e2068125.bundle.js.map → 13.f6b8f9a2288e2485ee20.bundle.js.map} +1 -1
  29. package/dist/148.45985ae23de642595544.bundle.js +1 -1
  30. package/dist/148.45985ae23de642595544.bundle.js.map +1 -1
  31. package/dist/16.2ca98f5bec0fae221cef.bundle.js +3 -0
  32. package/dist/{16.cd06772f9e031d37db03.bundle.js.map → 16.2ca98f5bec0fae221cef.bundle.js.map} +1 -1
  33. package/dist/{17.45b5c34f6c73bde1113d.bundle.js → 17.b19a2d3870590d21e8e9.bundle.js} +2 -2
  34. package/dist/{17.45b5c34f6c73bde1113d.bundle.js.map → 17.b19a2d3870590d21e8e9.bundle.js.map} +1 -1
  35. package/dist/{19.92f27dd146df127e8d6e.bundle.js → 19.34c180252e48207f01b4.bundle.js} +3 -3
  36. package/dist/{19.92f27dd146df127e8d6e.bundle.js.map → 19.34c180252e48207f01b4.bundle.js.map} +1 -1
  37. package/dist/20.9e9e388a98851c65f8f7.bundle.js +2 -0
  38. package/dist/{20.4eb25ede434dc329ecf1.bundle.js.map → 20.9e9e388a98851c65f8f7.bundle.js.map} +1 -1
  39. package/dist/21.8434e1ecb6fcfa06e1f1.bundle.js +2 -0
  40. package/dist/21.8434e1ecb6fcfa06e1f1.bundle.js.map +1 -0
  41. package/dist/{23.16fc17b0a8983ce3d809.bundle.js → 23.22e3720d741ee87c8108.bundle.js} +2 -2
  42. package/dist/{23.16fc17b0a8983ce3d809.bundle.js.map → 23.22e3720d741ee87c8108.bundle.js.map} +1 -1
  43. package/dist/{24.04d84edbd8f93d036633.bundle.js → 24.63acd0fc451fc797ff79.bundle.js} +2 -2
  44. package/dist/{24.04d84edbd8f93d036633.bundle.js.map → 24.63acd0fc451fc797ff79.bundle.js.map} +1 -1
  45. package/dist/{26.3a642e64c7803f3b32f1.bundle.js → 26.194b2d09daa679b7e09c.bundle.js} +2 -2
  46. package/dist/{26.3a642e64c7803f3b32f1.bundle.js.map → 26.194b2d09daa679b7e09c.bundle.js.map} +1 -1
  47. package/dist/27.35fe33bb9622c2e29c43.bundle.js +2 -0
  48. package/dist/{27.fef157d9275358c9f1a0.bundle.js.map → 27.35fe33bb9622c2e29c43.bundle.js.map} +1 -1
  49. package/dist/{29.a1b30610d7960a86b1cb.bundle.js → 29.e4eadb676659c5d6e44b.bundle.js} +3 -3
  50. package/dist/{29.a1b30610d7960a86b1cb.bundle.js.map → 29.e4eadb676659c5d6e44b.bundle.js.map} +1 -1
  51. package/dist/{30.3a05504ff287ca6df711.bundle.js → 30.0fb90b3cdf78fcde6251.bundle.js} +2 -2
  52. package/dist/{30.3a05504ff287ca6df711.bundle.js.map → 30.0fb90b3cdf78fcde6251.bundle.js.map} +1 -1
  53. package/dist/{31.13d5a8e9834cd5db589c.bundle.js → 31.8dd9fe71d36bd04a0433.bundle.js} +2 -2
  54. package/dist/{31.13d5a8e9834cd5db589c.bundle.js.map → 31.8dd9fe71d36bd04a0433.bundle.js.map} +1 -1
  55. package/dist/{32.59a7369287d15e8b9ab6.bundle.js → 32.8e1c25a47debdf5145d8.bundle.js} +2 -2
  56. package/dist/{32.59a7369287d15e8b9ab6.bundle.js.map → 32.8e1c25a47debdf5145d8.bundle.js.map} +1 -1
  57. package/dist/33.89b51420b48880728b96.bundle.js +2 -0
  58. package/dist/33.89b51420b48880728b96.bundle.js.map +1 -0
  59. package/dist/{35.fe688fc32270724c391d.bundle.js → 35.a9846fba95e98a294957.bundle.js} +2 -2
  60. package/dist/{35.fe688fc32270724c391d.bundle.js.map → 35.a9846fba95e98a294957.bundle.js.map} +1 -1
  61. package/dist/{36.7da22f08c8e850885cc5.bundle.js → 36.4dbd0f9007404b0adbe2.bundle.js} +2 -2
  62. package/dist/{36.7da22f08c8e850885cc5.bundle.js.map → 36.4dbd0f9007404b0adbe2.bundle.js.map} +1 -1
  63. package/dist/37.ac99eb00fe71266c5bff.bundle.js +2 -0
  64. package/dist/{37.8a9855206d5ae5eba9be.bundle.js.map → 37.ac99eb00fe71266c5bff.bundle.js.map} +1 -1
  65. package/dist/{39.0eebc4b972cff879c1c9.bundle.js → 39.8f8ae5c232bd2f023e7c.bundle.js} +2 -2
  66. package/dist/{39.0eebc4b972cff879c1c9.bundle.js.map → 39.8f8ae5c232bd2f023e7c.bundle.js.map} +1 -1
  67. package/dist/4.5391679fa01c55e842cc.bundle.js +2 -0
  68. package/dist/4.5391679fa01c55e842cc.bundle.js.map +1 -0
  69. package/dist/{40.10f42e3f6d8d87bd3221.bundle.js → 40.50f010a0a0ce99da5092.bundle.js} +2 -2
  70. package/dist/{40.10f42e3f6d8d87bd3221.bundle.js.map → 40.50f010a0a0ce99da5092.bundle.js.map} +1 -1
  71. package/dist/{41.368780c518c3f6cab4b7.bundle.js → 41.d09e0f01eac3492e3376.bundle.js} +2 -2
  72. package/dist/{41.368780c518c3f6cab4b7.bundle.js.map → 41.d09e0f01eac3492e3376.bundle.js.map} +1 -1
  73. package/dist/{42.1a48ae582180fa6374f9.bundle.js → 42.9561ff9cd77df0f86a91.bundle.js} +2 -2
  74. package/dist/{42.1a48ae582180fa6374f9.bundle.js.map → 42.9561ff9cd77df0f86a91.bundle.js.map} +1 -1
  75. package/dist/{43.64268be8880acd392fee.bundle.js → 43.0400aae23dac518b78ec.bundle.js} +2 -2
  76. package/dist/{43.64268be8880acd392fee.bundle.js.map → 43.0400aae23dac518b78ec.bundle.js.map} +1 -1
  77. package/dist/{53.58a23efc22865c67d57d.bundle.js → 53.54b20545d5504efa8958.bundle.js} +2 -2
  78. package/dist/{53.58a23efc22865c67d57d.bundle.js.map → 53.54b20545d5504efa8958.bundle.js.map} +1 -1
  79. package/dist/{54.1e2e99cd8cdf20b99a4f.bundle.js → 54.81f97307e31f5eabb5f0.bundle.js} +2 -2
  80. package/dist/{54.1e2e99cd8cdf20b99a4f.bundle.js.map → 54.81f97307e31f5eabb5f0.bundle.js.map} +1 -1
  81. package/dist/{55.693c1a0dd775181e1e29.bundle.js → 55.e8df33b84ca578a9a633.bundle.js} +2 -2
  82. package/dist/{55.693c1a0dd775181e1e29.bundle.js.map → 55.e8df33b84ca578a9a633.bundle.js.map} +1 -1
  83. package/dist/{56.62459de7af529d956b75.bundle.js → 56.d765faad673f618d41b0.bundle.js} +2 -2
  84. package/dist/{56.62459de7af529d956b75.bundle.js.map → 56.d765faad673f618d41b0.bundle.js.map} +1 -1
  85. package/dist/{60.2cb24e628b92cb3e0210.bundle.js → 60.f13766507ec5f29fde78.bundle.js} +2 -2
  86. package/dist/{60.2cb24e628b92cb3e0210.bundle.js.map → 60.f13766507ec5f29fde78.bundle.js.map} +1 -1
  87. package/dist/{65.6c12c48ac0d6f57a5079.bundle.js → 65.aa9736b7aad2582ca7ea.bundle.js} +2 -2
  88. package/dist/{65.6c12c48ac0d6f57a5079.bundle.js.map → 65.aa9736b7aad2582ca7ea.bundle.js.map} +1 -1
  89. package/dist/{67.5ae0610f77a1455ce92b.bundle.js → 67.e7bd652fadf93be1fbae.bundle.js} +2 -2
  90. package/dist/{67.5ae0610f77a1455ce92b.bundle.js.map → 67.e7bd652fadf93be1fbae.bundle.js.map} +1 -1
  91. package/dist/{69.90776e70cb361d1ac6d5.bundle.js → 69.6b915e6a7a9c36a78e2b.bundle.js} +2 -2
  92. package/dist/{69.90776e70cb361d1ac6d5.bundle.js.map → 69.6b915e6a7a9c36a78e2b.bundle.js.map} +1 -1
  93. package/dist/{71.3e927496e6e4175a3127.bundle.js → 71.624ca936339bf337e46a.bundle.js} +2 -2
  94. package/dist/{71.3e927496e6e4175a3127.bundle.js.map → 71.624ca936339bf337e46a.bundle.js.map} +1 -1
  95. package/dist/{72.bc99fbec188b4e49aa53.bundle.js → 72.3a5620a182219e9ea05d.bundle.js} +2 -2
  96. package/dist/{72.bc99fbec188b4e49aa53.bundle.js.map → 72.3a5620a182219e9ea05d.bundle.js.map} +1 -1
  97. package/dist/{73.40b5cbae08c7f3a58438.bundle.js → 73.f162e544378754078826.bundle.js} +2 -2
  98. package/dist/{73.40b5cbae08c7f3a58438.bundle.js.map → 73.f162e544378754078826.bundle.js.map} +1 -1
  99. package/dist/{74.cc42a1dcef7e9b830354.bundle.js → 74.7595755907badb1a99b8.bundle.js} +2 -2
  100. package/dist/{74.cc42a1dcef7e9b830354.bundle.js.map → 74.7595755907badb1a99b8.bundle.js.map} +1 -1
  101. package/dist/{75.31d1a4766c80c90b2afc.bundle.js → 75.4cc7ff534d56a05c578a.bundle.js} +2 -2
  102. package/dist/{75.31d1a4766c80c90b2afc.bundle.js.map → 75.4cc7ff534d56a05c578a.bundle.js.map} +1 -1
  103. package/dist/{76.89d209ce08efa7429e87.bundle.js → 76.cd0cfea4c96e88230dbe.bundle.js} +2 -2
  104. package/dist/{76.89d209ce08efa7429e87.bundle.js.map → 76.cd0cfea4c96e88230dbe.bundle.js.map} +1 -1
  105. package/dist/{77.64c49e9e99b0ae3fbbca.bundle.js → 77.df7767b1a0a3a0efa202.bundle.js} +2 -2
  106. package/dist/{77.64c49e9e99b0ae3fbbca.bundle.js.map → 77.df7767b1a0a3a0efa202.bundle.js.map} +1 -1
  107. package/dist/{79.0fbaedffc1f583a6064f.bundle.js → 79.4d64b377b0308809136f.bundle.js} +2 -2
  108. package/dist/{79.0fbaedffc1f583a6064f.bundle.js.map → 79.4d64b377b0308809136f.bundle.js.map} +1 -1
  109. package/dist/{80.6d489af9482e358c8dd8.bundle.js → 80.36e424031127d1743f20.bundle.js} +2 -2
  110. package/dist/{80.6d489af9482e358c8dd8.bundle.js.map → 80.36e424031127d1743f20.bundle.js.map} +1 -1
  111. package/dist/{94.94158487a9024ff3a623.bundle.js → 94.b1ccdd207229ae57569f.bundle.js} +2 -2
  112. package/dist/{94.94158487a9024ff3a623.bundle.js.map → 94.b1ccdd207229ae57569f.bundle.js.map} +1 -1
  113. package/dist/{97.48e14b67906b4d61a1b1.bundle.js → 97.951e03ffd2d5a10f868d.bundle.js} +2 -2
  114. package/dist/{97.48e14b67906b4d61a1b1.bundle.js.map → 97.951e03ffd2d5a10f868d.bundle.js.map} +1 -1
  115. package/dist/{98.cc7086155b76601af017.bundle.js → 98.745b4c457214d4189d7a.bundle.js} +2 -2
  116. package/dist/{98.cc7086155b76601af017.bundle.js.map → 98.745b4c457214d4189d7a.bundle.js.map} +1 -1
  117. package/dist/{bundle.afb7b0e2052d21766bfe.bundle.js → bundle.651116fe2383a66f32c9.bundle.js} +21 -21
  118. package/dist/{bundle.afb7b0e2052d21766bfe.bundle.js.map → bundle.651116fe2383a66f32c9.bundle.js.map} +1 -1
  119. package/dist/index.html +3 -3
  120. package/dist/js/angular/core/directives/rdfresourcesearch/templates/rdfResourceSearchTemplate.html +1 -1
  121. package/dist/pages/autocomplete.html +1 -1
  122. package/dist/pages/choose-repository-type.html +1 -1
  123. package/dist/pages/cluster-management/clusterInfo.html +3 -3
  124. package/dist/pages/create-index.html +4 -4
  125. package/dist/pages/dependencies.html +1 -1
  126. package/dist/pages/domainRangeInfo.html +2 -2
  127. package/dist/pages/edit.html +1 -1
  128. package/dist/pages/explore.html +1 -1
  129. package/dist/pages/export.html +1 -1
  130. package/dist/pages/find.html +1 -1
  131. package/dist/pages/graph-config/saveGraphConfig.html +11 -11
  132. package/dist/pages/graphs-visualizations.html +7 -7
  133. package/dist/pages/guides.html +1 -1
  134. package/dist/pages/import.html +1 -1
  135. package/dist/pages/jdbc-create.html +5 -5
  136. package/dist/pages/monitor/queries.html +1 -1
  137. package/dist/pages/monitor/resources.html +2 -2
  138. package/dist/pages/namespaces.html +2 -2
  139. package/dist/pages/plugins.html +1 -1
  140. package/dist/pages/rdfClassHierarchyInfo.html +7 -7
  141. package/dist/pages/rdfrank.html +2 -2
  142. package/dist/pages/repositories.html +2 -2
  143. package/dist/pages/repository.html +2 -2
  144. package/dist/pages/similarity-indexes.html +1 -1
  145. package/dist/pages/sparql-template-create.html +5 -5
  146. package/dist/pages/sparql.html +3 -3
  147. package/dist/pages/webapi.html +2 -2
  148. package/dist/res/swagger/index.html +27 -27
  149. package/package.json +1 -1
  150. package/dist/108.162ea156d1fc4ad2525f.bundle.js +0 -2
  151. package/dist/16.cd06772f9e031d37db03.bundle.js +0 -3
  152. package/dist/20.4eb25ede434dc329ecf1.bundle.js +0 -2
  153. package/dist/21.5586732af2e5cec0d05a.bundle.js +0 -2
  154. package/dist/21.5586732af2e5cec0d05a.bundle.js.map +0 -1
  155. package/dist/27.fef157d9275358c9f1a0.bundle.js +0 -2
  156. package/dist/33.fde8076c81c87c25c367.bundle.js +0 -2
  157. package/dist/33.fde8076c81c87c25c367.bundle.js.map +0 -1
  158. package/dist/37.8a9855206d5ae5eba9be.bundle.js +0 -2
  159. package/dist/4.112f94be76eae8c6eea6.bundle.js +0 -2
  160. package/dist/4.112f94be76eae8c6eea6.bundle.js.map +0 -1
@@ -1,2 +1,2 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[102],{96:function(n,e,i){"use strict";i.r(e);i(19);function t(n,e,i,t,r,o,s,l){let u;const a=function(){n.clear(),r.isLicenseValid()&&t.getActiveRepository()&&!t.isActiveRepoOntopType()&&!t.isActiveRepoFedXType()&&c()};n.clear=function(){n.searchPluginsTerm="",n.plugins=[],n.displayedPlugins=[]};const c=function(){g(),u=e((function(){g()}),5e3)},g=function(){s.getPlugins(n.getActiveRepository()).success((function(e){n.plugins=n.buildPluginsArray(e.results.bindings)})).error((function(n){i.error(getError(n))})).finally((function(){n.filterResults(),n.setLoader(!1)}))};n.buildPluginsArray=function(n){return n.map(n=>({name:n.s.value,enabled:"true"===n.o.value})).filter((function(n){return"plugincontrol"!==n.name&&"literals-index"!==n.name})).sort((function(n,e){const i=n.name.toLowerCase(),t=e.name.toLowerCase();return i<t?-1:i>t?1:0}))},n.filterResults=function(){const e=n.plugins.filter(e=>-1!==e.name.indexOf(n.searchPluginsTerm));f(e)&&n.updateDisplayedPlugins(e)};const f=function(e){if(!n.displayedPlugins||n.displayedPlugins.length!==e.length)return!0;for(const i in e)if(!n.displayedPlugins.find(n=>angular.equals(n,e[i])))return!0;return!1};function d(){u&&e.cancel(u)}n.updateDisplayedPlugins=function(e){n.displayedPlugins=e,setTimeout((function(){n.applyRowStyles()}),0)},n.setLoader=function(e,i){o.cancel(n.loaderTimeout),e?n.loaderTimeout=o((function(){n.loader=e,n.loaderMessage=i}),300):n.loader=!1},n.$on("repositoryIsSet",(function(){d(),a()})),n.$on("$destroy",(function(){d(),$(window).off("resize.plugin")})),$(window).on("resize.plugin",(function(){n.applyRowStyles()})),n.applyRowStyles=function(){const e=$("#wb-plugins-pluginInPlugins").width(),i=$("tr").width(),t=Math.floor(e/i);$(".wb-plugins-row").toArray().forEach((e,i)=>{n.isGreyBackground(t,i)?$(e).addClass("grey-row"):$(e).removeClass("grey-row")})},n.isGreyBackground=function(n,e){const i=(Math.floor(e/n)+1)%2!=1,t=e%2!=0;if(n%2!=0){if(i&&!t||!i&&!t)return!0;if(i&&t||!i&&t)return!1}else{if(i&&!t||!i&&t)return!1;if(i&&t||!i&&!t)return!0}},n.togglePlugin=function(e,t){const r=n.getActiveRepository(),o=t?l.instant("deactivating.plugin",{pluginName:e}):l.instant("activating.plugin",{pluginName:e});n.setLoader(!0,o),s.togglePlugin(r,t,e).error((function(n){i.error(getError(n))})).finally((function(){g(),n.setLoader(!1)}))},n.getLoaderMessage=function(){return n.loaderMessage||l.instant("common.loading")},n.onSearchTermChanged=function(){n.filterResults()},a()}angular.module("graphdb.framework.plugins.controllers",["graphdb.framework.rest.plugins.service"]).controller("PluginsCtrl",t),t.$inject=["$scope","$interval","toastr","$repositories","$licenseService","$timeout","PluginsRestService","$translate"]}}]);
2
- //# sourceMappingURL=102.7141102a059ef5eba1ea.bundle.js.map
1
+ (window.webpackJsonp=window.webpackJsonp||[]).push([[102],{97:function(n,e,i){"use strict";i.r(e);i(19);function t(n,e,i,t,r,o,s,l){let u;const a=function(){n.clear(),r.isLicenseValid()&&t.getActiveRepository()&&!t.isActiveRepoOntopType()&&!t.isActiveRepoFedXType()&&c()};n.clear=function(){n.searchPluginsTerm="",n.plugins=[],n.displayedPlugins=[]};const c=function(){g(),u=e((function(){g()}),5e3)},g=function(){s.getPlugins(n.getActiveRepository()).success((function(e){n.plugins=n.buildPluginsArray(e.results.bindings)})).error((function(n){i.error(getError(n))})).finally((function(){n.filterResults(),n.setLoader(!1)}))};n.buildPluginsArray=function(n){return n.map(n=>({name:n.s.value,enabled:"true"===n.o.value})).filter((function(n){return"plugincontrol"!==n.name&&"literals-index"!==n.name})).sort((function(n,e){const i=n.name.toLowerCase(),t=e.name.toLowerCase();return i<t?-1:i>t?1:0}))},n.filterResults=function(){const e=n.plugins.filter(e=>-1!==e.name.indexOf(n.searchPluginsTerm));f(e)&&n.updateDisplayedPlugins(e)};const f=function(e){if(!n.displayedPlugins||n.displayedPlugins.length!==e.length)return!0;for(const i in e)if(!n.displayedPlugins.find(n=>angular.equals(n,e[i])))return!0;return!1};function d(){u&&e.cancel(u)}n.updateDisplayedPlugins=function(e){n.displayedPlugins=e,setTimeout((function(){n.applyRowStyles()}),0)},n.setLoader=function(e,i){o.cancel(n.loaderTimeout),e?n.loaderTimeout=o((function(){n.loader=e,n.loaderMessage=i}),300):n.loader=!1},n.$on("repositoryIsSet",(function(){d(),a()})),n.$on("$destroy",(function(){d(),$(window).off("resize.plugin")})),$(window).on("resize.plugin",(function(){n.applyRowStyles()})),n.applyRowStyles=function(){const e=$("#wb-plugins-pluginInPlugins").width(),i=$("tr").width(),t=Math.floor(e/i);$(".wb-plugins-row").toArray().forEach((e,i)=>{n.isGreyBackground(t,i)?$(e).addClass("grey-row"):$(e).removeClass("grey-row")})},n.isGreyBackground=function(n,e){const i=(Math.floor(e/n)+1)%2!=1,t=e%2!=0;if(n%2!=0){if(i&&!t||!i&&!t)return!0;if(i&&t||!i&&t)return!1}else{if(i&&!t||!i&&t)return!1;if(i&&t||!i&&!t)return!0}},n.togglePlugin=function(e,t){const r=n.getActiveRepository(),o=t?l.instant("deactivating.plugin",{pluginName:e}):l.instant("activating.plugin",{pluginName:e});n.setLoader(!0,o),s.togglePlugin(r,t,e).error((function(n){i.error(getError(n))})).finally((function(){g(),n.setLoader(!1)}))},n.getLoaderMessage=function(){return n.loaderMessage||l.instant("common.loading")},n.onSearchTermChanged=function(){n.filterResults()},a()}angular.module("graphdb.framework.plugins.controllers",["graphdb.framework.rest.plugins.service"]).controller("PluginsCtrl",t),t.$inject=["$scope","$interval","toastr","$repositories","$licenseService","$timeout","PluginsRestService","$translate"]}}]);
2
+ //# sourceMappingURL=102.d52dc777ce7b5de1a30a.bundle.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack:///./src/js/angular/plugins/controllers.js"],"names":["PluginsCtrl","$scope","$interval","toastr","$repositories","$licenseService","$timeout","PluginsRestService","$translate","timer","init","clear","isLicenseValid","getActiveRepository","isActiveRepoOntopType","isActiveRepoFedXType","getPlugins","searchPluginsTerm","plugins","displayedPlugins","initPlugins","success","data","buildPluginsArray","results","bindings","error","getError","finally","filterResults","setLoader","map","plugin","name","s","value","enabled","o","filter","sort","a","b","textA","toLowerCase","textB","matchedPlugins","indexOf","displayedPluginsChanged","updateDisplayedPlugins","length","find","element","angular","equals","cancelTimer","cancel","setTimeout","applyRowStyles","loader","message","loaderTimeout","loaderMessage","$on","$","window","off","on","tableWidth","width","rowWidth","columnPerRow","Math","floor","toArray","forEach","index","isGreyBackground","addClass","removeClass","oddRow","evenElement","togglePlugin","pluginName","repoId","instant","getLoaderMessage","onSearchTermChanged","module","controller","$inject"],"mappings":"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","file":"102.7141102a059ef5eba1ea.bundle.js","sourcesContent":["import 'angular/rest/plugins.rest.service';\n\nconst modules = [\n 'graphdb.framework.rest.plugins.service'\n];\n\nangular\n .module('graphdb.framework.plugins.controllers', modules)\n .controller('PluginsCtrl', PluginsCtrl);\n\nPluginsCtrl.$inject = ['$scope', '$interval', 'toastr', '$repositories', '$licenseService', '$timeout', 'PluginsRestService', '$translate'];\n\nfunction PluginsCtrl($scope, $interval, toastr, $repositories, $licenseService, $timeout, PluginsRestService, $translate) {\n\n let timer;\n\n const init = function () {\n $scope.clear();\n if (!$licenseService.isLicenseValid() ||\n !$repositories.getActiveRepository() ||\n $repositories.isActiveRepoOntopType() ||\n $repositories.isActiveRepoFedXType()) {\n return;\n }\n getPlugins();\n };\n\n $scope.clear = function () {\n $scope.searchPluginsTerm = '';\n $scope.plugins = [];\n $scope.displayedPlugins = [];\n };\n\n const getPlugins = function () {\n initPlugins();\n timer = $interval(function () {\n initPlugins();\n }, 5000);\n };\n\n const initPlugins = function () {\n PluginsRestService.getPlugins($scope.getActiveRepository())\n .success(function (data) {\n $scope.plugins = $scope.buildPluginsArray(data.results.bindings);\n }).error(function (data) {\n toastr.error(getError(data));\n }).finally(function () {\n $scope.filterResults();\n $scope.setLoader(false);\n });\n };\n\n $scope.buildPluginsArray = function (plugins) {\n return plugins.map((plugin) => ({\n name: plugin.s.value,\n enabled: plugin.o.value === 'true'\n })).filter(function (plugin) {\n return plugin.name !== 'plugincontrol' && plugin.name !== 'literals-index';\n }).sort(function (a, b) {\n const textA = a.name.toLowerCase();\n const textB = b.name.toLowerCase();\n return (textA < textB) ? -1 : (textA > textB) ? 1 : 0;\n });\n };\n\n $scope.filterResults = function () {\n const matchedPlugins = $scope.plugins.filter((plugin) => plugin.name.indexOf($scope.searchPluginsTerm) !== -1);\n if (displayedPluginsChanged(matchedPlugins)) {\n $scope.updateDisplayedPlugins(matchedPlugins);\n }\n };\n\n /**\n * Checks if displayed plugins in the view are different than <code>plugins</code>.\n * @param {*} plugins - plugins to be checked.\n * @return {boolean} returns true if <code>plugins</code> are different from those which are shown in the view.\n */\n const displayedPluginsChanged = function (plugins) {\n if (!$scope.displayedPlugins || $scope.displayedPlugins.length !== plugins.length) {\n return true;\n }\n\n for (const plugin in plugins) {\n if (!$scope.displayedPlugins.find((element) => angular.equals(element, plugins[plugin]))) {\n return true;\n }\n }\n\n return false;\n };\n\n $scope.updateDisplayedPlugins = function (plugins) {\n $scope.displayedPlugins = plugins;\n setTimeout(function () {\n $scope.applyRowStyles();\n }, 0);\n };\n\n $scope.setLoader = function (loader, message) {\n $timeout.cancel($scope.loaderTimeout);\n if (loader) {\n $scope.loaderTimeout = $timeout(function () {\n $scope.loader = loader;\n $scope.loaderMessage = message;\n }, 300);\n } else {\n $scope.loader = false;\n }\n };\n\n // this is used when repository is changed from the upper menu to refresh the plugins for it.\n $scope.$on('repositoryIsSet', function () {\n cancelTimer();\n init();\n });\n\n $scope.$on('$destroy', function () {\n cancelTimer();\n $(window).off('resize.plugin');\n });\n\n $(window).on('resize.plugin', function () {\n $scope.applyRowStyles();\n });\n\n function cancelTimer() {\n if (timer) {\n $interval.cancel(timer);\n }\n }\n\n $scope.applyRowStyles = function () {\n const tableWidth = $('#wb-plugins-pluginInPlugins').width();\n const rowWidth = $('tr').width();\n const columnPerRow = Math.floor(tableWidth / rowWidth);\n $('.wb-plugins-row').toArray().forEach((value, index) => {\n if ($scope.isGreyBackground(columnPerRow, index)) {\n $(value).addClass('grey-row');\n } else {\n $(value).removeClass('grey-row');\n }\n });\n };\n\n $scope.isGreyBackground = function (columnPerRow, index) {\n const row = Math.floor(index / columnPerRow) + 1;\n const oddRow = row % 2 !== 1;\n const evenElement = index % 2 !== 0;\n const evenColumns = columnPerRow % 2 !== 0;\n\n if (evenColumns) {\n if (oddRow && !evenElement || !oddRow && !evenElement) {\n return true;\n }\n if (oddRow && evenElement || !oddRow && evenElement) {\n return false;\n }\n } else {\n if (oddRow && !evenElement || !oddRow && evenElement) {\n return false;\n }\n if (oddRow && evenElement || !oddRow && !evenElement) {\n return true;\n }\n }\n };\n\n $scope.togglePlugin = function (pluginName, enabled) {\n const repoId = $scope.getActiveRepository();\n const message = enabled ? $translate.instant('deactivating.plugin', {pluginName: pluginName}) : $translate.instant('activating.plugin', {pluginName: pluginName});\n $scope.setLoader(true, message);\n PluginsRestService.togglePlugin(repoId, enabled, pluginName)\n .error(function (data) {\n toastr.error(getError(data));\n }).finally(function () {\n initPlugins();\n $scope.setLoader(false);\n });\n };\n\n $scope.getLoaderMessage = function () {\n return $scope.loaderMessage || $translate.instant('common.loading');\n };\n\n $scope.onSearchTermChanged = function () {\n $scope.filterResults();\n };\n\n init();\n}\n"],"sourceRoot":""}
1
+ {"version":3,"sources":["webpack:///./src/js/angular/plugins/controllers.js"],"names":["PluginsCtrl","$scope","$interval","toastr","$repositories","$licenseService","$timeout","PluginsRestService","$translate","timer","init","clear","isLicenseValid","getActiveRepository","isActiveRepoOntopType","isActiveRepoFedXType","getPlugins","searchPluginsTerm","plugins","displayedPlugins","initPlugins","success","data","buildPluginsArray","results","bindings","error","getError","finally","filterResults","setLoader","map","plugin","name","s","value","enabled","o","filter","sort","a","b","textA","toLowerCase","textB","matchedPlugins","indexOf","displayedPluginsChanged","updateDisplayedPlugins","length","find","element","angular","equals","cancelTimer","cancel","setTimeout","applyRowStyles","loader","message","loaderTimeout","loaderMessage","$on","$","window","off","on","tableWidth","width","rowWidth","columnPerRow","Math","floor","toArray","forEach","index","isGreyBackground","addClass","removeClass","oddRow","evenElement","togglePlugin","pluginName","repoId","instant","getLoaderMessage","onSearchTermChanged","module","controller","$inject"],"mappings":"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","file":"102.d52dc777ce7b5de1a30a.bundle.js","sourcesContent":["import 'angular/rest/plugins.rest.service';\n\nconst modules = [\n 'graphdb.framework.rest.plugins.service'\n];\n\nangular\n .module('graphdb.framework.plugins.controllers', modules)\n .controller('PluginsCtrl', PluginsCtrl);\n\nPluginsCtrl.$inject = ['$scope', '$interval', 'toastr', '$repositories', '$licenseService', '$timeout', 'PluginsRestService', '$translate'];\n\nfunction PluginsCtrl($scope, $interval, toastr, $repositories, $licenseService, $timeout, PluginsRestService, $translate) {\n\n let timer;\n\n const init = function () {\n $scope.clear();\n if (!$licenseService.isLicenseValid() ||\n !$repositories.getActiveRepository() ||\n $repositories.isActiveRepoOntopType() ||\n $repositories.isActiveRepoFedXType()) {\n return;\n }\n getPlugins();\n };\n\n $scope.clear = function () {\n $scope.searchPluginsTerm = '';\n $scope.plugins = [];\n $scope.displayedPlugins = [];\n };\n\n const getPlugins = function () {\n initPlugins();\n timer = $interval(function () {\n initPlugins();\n }, 5000);\n };\n\n const initPlugins = function () {\n PluginsRestService.getPlugins($scope.getActiveRepository())\n .success(function (data) {\n $scope.plugins = $scope.buildPluginsArray(data.results.bindings);\n }).error(function (data) {\n toastr.error(getError(data));\n }).finally(function () {\n $scope.filterResults();\n $scope.setLoader(false);\n });\n };\n\n $scope.buildPluginsArray = function (plugins) {\n return plugins.map((plugin) => ({\n name: plugin.s.value,\n enabled: plugin.o.value === 'true'\n })).filter(function (plugin) {\n return plugin.name !== 'plugincontrol' && plugin.name !== 'literals-index';\n }).sort(function (a, b) {\n const textA = a.name.toLowerCase();\n const textB = b.name.toLowerCase();\n return (textA < textB) ? -1 : (textA > textB) ? 1 : 0;\n });\n };\n\n $scope.filterResults = function () {\n const matchedPlugins = $scope.plugins.filter((plugin) => plugin.name.indexOf($scope.searchPluginsTerm) !== -1);\n if (displayedPluginsChanged(matchedPlugins)) {\n $scope.updateDisplayedPlugins(matchedPlugins);\n }\n };\n\n /**\n * Checks if displayed plugins in the view are different than <code>plugins</code>.\n * @param {*} plugins - plugins to be checked.\n * @return {boolean} returns true if <code>plugins</code> are different from those which are shown in the view.\n */\n const displayedPluginsChanged = function (plugins) {\n if (!$scope.displayedPlugins || $scope.displayedPlugins.length !== plugins.length) {\n return true;\n }\n\n for (const plugin in plugins) {\n if (!$scope.displayedPlugins.find((element) => angular.equals(element, plugins[plugin]))) {\n return true;\n }\n }\n\n return false;\n };\n\n $scope.updateDisplayedPlugins = function (plugins) {\n $scope.displayedPlugins = plugins;\n setTimeout(function () {\n $scope.applyRowStyles();\n }, 0);\n };\n\n $scope.setLoader = function (loader, message) {\n $timeout.cancel($scope.loaderTimeout);\n if (loader) {\n $scope.loaderTimeout = $timeout(function () {\n $scope.loader = loader;\n $scope.loaderMessage = message;\n }, 300);\n } else {\n $scope.loader = false;\n }\n };\n\n // this is used when repository is changed from the upper menu to refresh the plugins for it.\n $scope.$on('repositoryIsSet', function () {\n cancelTimer();\n init();\n });\n\n $scope.$on('$destroy', function () {\n cancelTimer();\n $(window).off('resize.plugin');\n });\n\n $(window).on('resize.plugin', function () {\n $scope.applyRowStyles();\n });\n\n function cancelTimer() {\n if (timer) {\n $interval.cancel(timer);\n }\n }\n\n $scope.applyRowStyles = function () {\n const tableWidth = $('#wb-plugins-pluginInPlugins').width();\n const rowWidth = $('tr').width();\n const columnPerRow = Math.floor(tableWidth / rowWidth);\n $('.wb-plugins-row').toArray().forEach((value, index) => {\n if ($scope.isGreyBackground(columnPerRow, index)) {\n $(value).addClass('grey-row');\n } else {\n $(value).removeClass('grey-row');\n }\n });\n };\n\n $scope.isGreyBackground = function (columnPerRow, index) {\n const row = Math.floor(index / columnPerRow) + 1;\n const oddRow = row % 2 !== 1;\n const evenElement = index % 2 !== 0;\n const evenColumns = columnPerRow % 2 !== 0;\n\n if (evenColumns) {\n if (oddRow && !evenElement || !oddRow && !evenElement) {\n return true;\n }\n if (oddRow && evenElement || !oddRow && evenElement) {\n return false;\n }\n } else {\n if (oddRow && !evenElement || !oddRow && evenElement) {\n return false;\n }\n if (oddRow && evenElement || !oddRow && !evenElement) {\n return true;\n }\n }\n };\n\n $scope.togglePlugin = function (pluginName, enabled) {\n const repoId = $scope.getActiveRepository();\n const message = enabled ? $translate.instant('deactivating.plugin', {pluginName: pluginName}) : $translate.instant('activating.plugin', {pluginName: pluginName});\n $scope.setLoader(true, message);\n PluginsRestService.togglePlugin(repoId, enabled, pluginName)\n .error(function (data) {\n toastr.error(getError(data));\n }).finally(function () {\n initPlugins();\n $scope.setLoader(false);\n });\n };\n\n $scope.getLoaderMessage = function () {\n return $scope.loaderMessage || $translate.instant('common.loading');\n };\n\n $scope.onSearchTermChanged = function () {\n $scope.filterResults();\n };\n\n init();\n}\n"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[104],{97:function(e,t,n){"use strict";n.r(t);n(4),n(13);const o=angular.module("graphdb.framework.jmx.queries.controllers",["ui.bootstrap","toastr","graphdb.framework.rest.monitoring.service"]);o.controller("QueriesCtrl",["$scope","$uibModal","toastr","$interval","$repositories","$jwtAuth","ModalService","MonitoringRestService","$translate",function(e,t,n,o,r,i,s,u,c){e.loader=!0,e.stringLimit=500,e.expanded={},e.error="",e.paused=!1;const a=document.createElement("a");e.parseNode=function(e){if(null==e)return null;let t="local";if(e.indexOf("://localhost:")<0&&e.indexOf("://localhost/")<0){a.href=e;let n=a.hostname;(function(e){const t=e.split(".");for(let e=0,n=0;e<t.length;e++)if(parseInt(t[e],10)>=0&&parseInt(t[e],10)<=255?n++:n=0,4===n)return!0;return!1})(a.hostname)||(n=a.hostname.split(".")[0]),t=n+":"+a.port}const n=e.match(/\/repositories\/([^\/]+)#(\d+)/);return[n[2],t,n[1]]},e.togglePause=function(){e.paused=!e.paused},e.getQueries=function(){e.getQueriesRunning||e.paused||e.error||!r.getActiveRepository()||(e.getQueriesRunning=!0,u.monitorQuery(r.getActiveRepository()).success((function(t){const n=t;e.noQueries=0===n.length,e.queries={};for(let t=0;t<n.length;t++)n[t].parsedNode=e.parseNode(n[t].node),e.queries[n[t].trackId]=n[t];e.noActiveRepository=!1,e.loader=!1,e.getQueriesRunning=!1})).error((function(t){e.error=getError(t),e.loader=!1,e.getQueriesRunning=!1})))};const l=o((function(){r.isActiveRepoOntopType()||e.getQueries()}),1e3);e.$on("$destroy",(function(){o.cancel(l)})),e.deleteQueryHttp=function(t){e.loader=!0,u.deleteQuery(t,r.getActiveRepository()).success((function(){n.success(c.instant("abort.request.sent.msg")),e.loader=!1})).error((function(t){const o=getError(t);n.error(o,c.instant("common.error")),e.loader=!1}))},e.abortQuery=function(t){s.openSimpleModal({title:c.instant("confirm.abort"),message:c.instant("confirm.abort.warning.msg"),warning:!0}).result.then((function(){e.deleteQueryHttp(t)}))},e.downloadQuery=function(e){const t="query_"+e+".rq";let n="/rest/monitor/repository/"+r.getActiveRepository()+"/query/download?query="+encodeURIComponent(e)+"&filename="+encodeURIComponent(t);i.isAuthenticated()&&(n=n+"&authToken="+encodeURIComponent(i.getAuthToken())),window.open(n,"_blank")},e.toggleQueryExpanded=function(t){e.expanded[t]=!e.expanded[t]}}]),o.controller("DeleteQueryCtrl",["$scope","$uibModalInstance",function(e,t){e.ok=function(){t.close()},e.cancel=function(){t.dismiss("cancel")}}])}}]);
2
- //# sourceMappingURL=104.ecd04b9cba294e159ca5.bundle.js.map
1
+ (window.webpackJsonp=window.webpackJsonp||[]).push([[104],{98:function(e,t,n){"use strict";n.r(t);n(4),n(13);const o=angular.module("graphdb.framework.jmx.queries.controllers",["ui.bootstrap","toastr","graphdb.framework.rest.monitoring.service"]);o.controller("QueriesCtrl",["$scope","$uibModal","toastr","$interval","$repositories","$jwtAuth","ModalService","MonitoringRestService","$translate",function(e,t,n,o,r,i,s,u,c){e.loader=!0,e.stringLimit=500,e.expanded={},e.error="",e.paused=!1;const a=document.createElement("a");e.parseNode=function(e){if(null==e)return null;let t="local";if(e.indexOf("://localhost:")<0&&e.indexOf("://localhost/")<0){a.href=e;let n=a.hostname;(function(e){const t=e.split(".");for(let e=0,n=0;e<t.length;e++)if(parseInt(t[e],10)>=0&&parseInt(t[e],10)<=255?n++:n=0,4===n)return!0;return!1})(a.hostname)||(n=a.hostname.split(".")[0]),t=n+":"+a.port}const n=e.match(/\/repositories\/([^\/]+)#(\d+)/);return[n[2],t,n[1]]},e.togglePause=function(){e.paused=!e.paused},e.getQueries=function(){e.getQueriesRunning||e.paused||e.error||!r.getActiveRepository()||(e.getQueriesRunning=!0,u.monitorQuery(r.getActiveRepository()).success((function(t){const n=t;e.noQueries=0===n.length,e.queries={};for(let t=0;t<n.length;t++)n[t].parsedNode=e.parseNode(n[t].node),e.queries[n[t].trackId]=n[t];e.noActiveRepository=!1,e.loader=!1,e.getQueriesRunning=!1})).error((function(t){e.error=getError(t),e.loader=!1,e.getQueriesRunning=!1})))};const l=o((function(){r.isActiveRepoOntopType()||e.getQueries()}),1e3);e.$on("$destroy",(function(){o.cancel(l)})),e.deleteQueryHttp=function(t){e.loader=!0,u.deleteQuery(t,r.getActiveRepository()).success((function(){n.success(c.instant("abort.request.sent.msg")),e.loader=!1})).error((function(t){const o=getError(t);n.error(o,c.instant("common.error")),e.loader=!1}))},e.abortQuery=function(t){s.openSimpleModal({title:c.instant("confirm.abort"),message:c.instant("confirm.abort.warning.msg"),warning:!0}).result.then((function(){e.deleteQueryHttp(t)}))},e.downloadQuery=function(e){const t="query_"+e+".rq";let n="/rest/monitor/repository/"+r.getActiveRepository()+"/query/download?query="+encodeURIComponent(e)+"&filename="+encodeURIComponent(t);i.isAuthenticated()&&(n=n+"&authToken="+encodeURIComponent(i.getAuthToken())),window.open(n,"_blank")},e.toggleQueryExpanded=function(t){e.expanded[t]=!e.expanded[t]}}]),o.controller("DeleteQueryCtrl",["$scope","$uibModalInstance",function(e,t){e.ok=function(){t.close()},e.cancel=function(){t.dismiss("cancel")}}])}}]);
2
+ //# sourceMappingURL=104.09c8b5802e53cd9dced9.bundle.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack:///./src/js/angular/queries/controllers.js"],"names":["queriesCtrl","angular","module","controller","$scope","$uibModal","toastr","$interval","$repositories","$jwtAuth","ModalService","MonitoringRestService","$translate","loader","stringLimit","expanded","error","paused","parser","document","createElement","parseNode","node","shortUrl","indexOf","href","hostname","ip","blocks","split","i","sequence","length","parseInt","containsIPV4","port","match","togglePause","getQueries","getQueriesRunning","getActiveRepository","monitorQuery","success","data","newQueries","noQueries","queries","parsedNode","trackId","noActiveRepository","getError","timer","isActiveRepoOntopType","$on","cancel","deleteQueryHttp","queryId","deleteQuery","instant","msg","abortQuery","openSimpleModal","title","message","warning","result","then","downloadQuery","filename","link","encodeURIComponent","isAuthenticated","getAuthToken","window","open","toggleQueryExpanded","$uibModalInstance","ok","close","dismiss"],"mappings":"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","file":"104.ecd04b9cba294e159ca5.bundle.js","sourcesContent":["import 'angular/core/services';\nimport 'angular/rest/monitoring.rest.service';\n\nconst queriesCtrl = angular.module('graphdb.framework.jmx.queries.controllers', [\n 'ui.bootstrap',\n 'toastr',\n 'graphdb.framework.rest.monitoring.service'\n]);\n\nqueriesCtrl.controller('QueriesCtrl', ['$scope', '$uibModal', 'toastr', '$interval', '$repositories', '$jwtAuth', 'ModalService', 'MonitoringRestService', '$translate',\n function ($scope, $uibModal, toastr, $interval, $repositories, $jwtAuth, ModalService, MonitoringRestService, $translate) {\n\n $scope.loader = true;\n $scope.stringLimit = 500;\n $scope.expanded = {};\n $scope.error = '';\n $scope.paused = false;\n\n function containsIPV4(ip) {\n const blocks = ip.split('.');\n for (let i = 0, sequence = 0; i < blocks.length; i++) {\n if (parseInt(blocks[i], 10) >= 0 && parseInt(blocks[i], 10) <= 255) {\n sequence++;\n } else {\n sequence = 0;\n }\n if (sequence === 4) {\n return true;\n }\n }\n return false;\n }\n\n const parser = document.createElement('a');\n\n // Parses a node of the kind http://host.example.com:7200/repositories/repo#NN,\n // where NN is the track ID into an array [NN, host:7200, repo].\n $scope.parseNode = function (node) {\n if (node == null) {\n return null;\n }\n\n let shortUrl = 'local';\n if (node.indexOf('://localhost:') < 0 && node.indexOf('://localhost/') < 0) {\n parser.href = node;\n let hostname = parser.hostname;\n if (!containsIPV4(parser.hostname)) {\n hostname = parser.hostname.split('.')[0];\n }\n shortUrl = hostname + ':' + parser.port;\n }\n const match = node.match(/\\/repositories\\/([^\\/]+)#(\\d+)/); // eslint-disable-line no-useless-escape\n\n return [match[2], shortUrl, match[1]];\n };\n\n $scope.togglePause = function () {\n $scope.paused = !$scope.paused;\n }\n\n $scope.getQueries = function () {\n // Skip execution if already getting from previous call, if paused, if jolokia returned an error,\n // or if no repository is available\n if ($scope.getQueriesRunning || $scope.paused || $scope.error || !$repositories.getActiveRepository()) {\n return;\n }\n\n $scope.getQueriesRunning = true;\n MonitoringRestService.monitorQuery($repositories.getActiveRepository()).success(function (data) {\n const newQueries = data;\n $scope.noQueries = newQueries.length === 0;\n\n // Converts array to object. Angular seems to handle updates on objects better, i.e.\n // it doesn't recreate DOM elements for queries that are already displayed.\n $scope.queries = {};\n for (let i = 0; i < newQueries.length; i++) {\n newQueries[i].parsedNode = $scope.parseNode(newQueries[i].node);\n $scope.queries[newQueries[i].trackId] = newQueries[i];\n }\n\n $scope.noActiveRepository = false;\n $scope.loader = false;\n $scope.getQueriesRunning = false;\n }).error(function (data) {\n $scope.error = getError(data);\n $scope.loader = false;\n $scope.getQueriesRunning = false;\n });\n };\n\n const timer = $interval(function () {\n // Don't call getQueries for Ontop type repository\n if ($repositories.isActiveRepoOntopType()) {\n return;\n }\n $scope.getQueries();\n }, 1000);\n\n $scope.$on('$destroy', function () {\n $interval.cancel(timer);\n });\n\n $scope.deleteQueryHttp = function (queryId) {\n\n $scope.loader = true;\n MonitoringRestService.deleteQuery(queryId, $repositories.getActiveRepository()).success(function () {\n toastr.success($translate.instant('abort.request.sent.msg'));\n $scope.loader = false;\n }).error(function (data) {\n const msg = getError(data);\n toastr.error(msg, $translate.instant('common.error'));\n\n $scope.loader = false;\n });\n };\n\n $scope.abortQuery = function (queryId) {\n ModalService.openSimpleModal({\n title: $translate.instant('confirm.abort'),\n message: $translate.instant('confirm.abort.warning.msg'),\n warning: true\n }).result.then(function () {\n $scope.deleteQueryHttp(queryId);\n });\n };\n\n $scope.downloadQuery = function (queryId) {\n const filename = 'query_' + queryId + '.rq';\n let link = '/rest/monitor/repository/' + $repositories.getActiveRepository()\n + '/query/download?query=' + encodeURIComponent(queryId)\n + '&filename=' + encodeURIComponent(filename);\n if ($jwtAuth.isAuthenticated()) {\n link = link + '&authToken=' + encodeURIComponent($jwtAuth.getAuthToken());\n }\n\n window.open(link, '_blank');\n };\n\n $scope.toggleQueryExpanded = function (queryId) {\n $scope.expanded[queryId] = !$scope.expanded[queryId];\n };\n }]);\n\n\nqueriesCtrl.controller('DeleteQueryCtrl', ['$scope', '$uibModalInstance', function ($scope, $uibModalInstance) {\n\n $scope.ok = function () {\n $uibModalInstance.close();\n };\n\n $scope.cancel = function () {\n $uibModalInstance.dismiss('cancel');\n };\n}]);\n"],"sourceRoot":""}
1
+ {"version":3,"sources":["webpack:///./src/js/angular/queries/controllers.js"],"names":["queriesCtrl","angular","module","controller","$scope","$uibModal","toastr","$interval","$repositories","$jwtAuth","ModalService","MonitoringRestService","$translate","loader","stringLimit","expanded","error","paused","parser","document","createElement","parseNode","node","shortUrl","indexOf","href","hostname","ip","blocks","split","i","sequence","length","parseInt","containsIPV4","port","match","togglePause","getQueries","getQueriesRunning","getActiveRepository","monitorQuery","success","data","newQueries","noQueries","queries","parsedNode","trackId","noActiveRepository","getError","timer","isActiveRepoOntopType","$on","cancel","deleteQueryHttp","queryId","deleteQuery","instant","msg","abortQuery","openSimpleModal","title","message","warning","result","then","downloadQuery","filename","link","encodeURIComponent","isAuthenticated","getAuthToken","window","open","toggleQueryExpanded","$uibModalInstance","ok","close","dismiss"],"mappings":"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","file":"104.09c8b5802e53cd9dced9.bundle.js","sourcesContent":["import 'angular/core/services';\nimport 'angular/rest/monitoring.rest.service';\n\nconst queriesCtrl = angular.module('graphdb.framework.jmx.queries.controllers', [\n 'ui.bootstrap',\n 'toastr',\n 'graphdb.framework.rest.monitoring.service'\n]);\n\nqueriesCtrl.controller('QueriesCtrl', ['$scope', '$uibModal', 'toastr', '$interval', '$repositories', '$jwtAuth', 'ModalService', 'MonitoringRestService', '$translate',\n function ($scope, $uibModal, toastr, $interval, $repositories, $jwtAuth, ModalService, MonitoringRestService, $translate) {\n\n $scope.loader = true;\n $scope.stringLimit = 500;\n $scope.expanded = {};\n $scope.error = '';\n $scope.paused = false;\n\n function containsIPV4(ip) {\n const blocks = ip.split('.');\n for (let i = 0, sequence = 0; i < blocks.length; i++) {\n if (parseInt(blocks[i], 10) >= 0 && parseInt(blocks[i], 10) <= 255) {\n sequence++;\n } else {\n sequence = 0;\n }\n if (sequence === 4) {\n return true;\n }\n }\n return false;\n }\n\n const parser = document.createElement('a');\n\n // Parses a node of the kind http://host.example.com:7200/repositories/repo#NN,\n // where NN is the track ID into an array [NN, host:7200, repo].\n $scope.parseNode = function (node) {\n if (node == null) {\n return null;\n }\n\n let shortUrl = 'local';\n if (node.indexOf('://localhost:') < 0 && node.indexOf('://localhost/') < 0) {\n parser.href = node;\n let hostname = parser.hostname;\n if (!containsIPV4(parser.hostname)) {\n hostname = parser.hostname.split('.')[0];\n }\n shortUrl = hostname + ':' + parser.port;\n }\n const match = node.match(/\\/repositories\\/([^\\/]+)#(\\d+)/); // eslint-disable-line no-useless-escape\n\n return [match[2], shortUrl, match[1]];\n };\n\n $scope.togglePause = function () {\n $scope.paused = !$scope.paused;\n }\n\n $scope.getQueries = function () {\n // Skip execution if already getting from previous call, if paused, if jolokia returned an error,\n // or if no repository is available\n if ($scope.getQueriesRunning || $scope.paused || $scope.error || !$repositories.getActiveRepository()) {\n return;\n }\n\n $scope.getQueriesRunning = true;\n MonitoringRestService.monitorQuery($repositories.getActiveRepository()).success(function (data) {\n const newQueries = data;\n $scope.noQueries = newQueries.length === 0;\n\n // Converts array to object. Angular seems to handle updates on objects better, i.e.\n // it doesn't recreate DOM elements for queries that are already displayed.\n $scope.queries = {};\n for (let i = 0; i < newQueries.length; i++) {\n newQueries[i].parsedNode = $scope.parseNode(newQueries[i].node);\n $scope.queries[newQueries[i].trackId] = newQueries[i];\n }\n\n $scope.noActiveRepository = false;\n $scope.loader = false;\n $scope.getQueriesRunning = false;\n }).error(function (data) {\n $scope.error = getError(data);\n $scope.loader = false;\n $scope.getQueriesRunning = false;\n });\n };\n\n const timer = $interval(function () {\n // Don't call getQueries for Ontop type repository\n if ($repositories.isActiveRepoOntopType()) {\n return;\n }\n $scope.getQueries();\n }, 1000);\n\n $scope.$on('$destroy', function () {\n $interval.cancel(timer);\n });\n\n $scope.deleteQueryHttp = function (queryId) {\n\n $scope.loader = true;\n MonitoringRestService.deleteQuery(queryId, $repositories.getActiveRepository()).success(function () {\n toastr.success($translate.instant('abort.request.sent.msg'));\n $scope.loader = false;\n }).error(function (data) {\n const msg = getError(data);\n toastr.error(msg, $translate.instant('common.error'));\n\n $scope.loader = false;\n });\n };\n\n $scope.abortQuery = function (queryId) {\n ModalService.openSimpleModal({\n title: $translate.instant('confirm.abort'),\n message: $translate.instant('confirm.abort.warning.msg'),\n warning: true\n }).result.then(function () {\n $scope.deleteQueryHttp(queryId);\n });\n };\n\n $scope.downloadQuery = function (queryId) {\n const filename = 'query_' + queryId + '.rq';\n let link = '/rest/monitor/repository/' + $repositories.getActiveRepository()\n + '/query/download?query=' + encodeURIComponent(queryId)\n + '&filename=' + encodeURIComponent(filename);\n if ($jwtAuth.isAuthenticated()) {\n link = link + '&authToken=' + encodeURIComponent($jwtAuth.getAuthToken());\n }\n\n window.open(link, '_blank');\n };\n\n $scope.toggleQueryExpanded = function (queryId) {\n $scope.expanded[queryId] = !$scope.expanded[queryId];\n };\n }]);\n\n\nqueriesCtrl.controller('DeleteQueryCtrl', ['$scope', '$uibModalInstance', function ($scope, $uibModalInstance) {\n\n $scope.ok = function () {\n $uibModalInstance.close();\n };\n\n $scope.cancel = function () {\n $uibModalInstance.dismiss('cancel');\n };\n}]);\n"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[107],{100:function(e,r){function o(e,r,o,t){return{restrict:"E",scope:!0,templateUrl:"js/angular/repositories/templates/fedx-repo.html",link:function(s){const i="ResolvableRepository";s.fedxMembers=[],s.knownRepos=[],s.allAttachedRepos=[],s.editRepoPage&&(s.fedxMembers=s.repositoryInfo.params.member.value.slice());function n(){for(const e of s.fedxMembers)s.knownRepos=s.knownRepos.filter((function(r){return e.repositoryServer?r.id!==e.repositoryName||r.location!==e.repositoryServer:r.id!==e.repositoryName||!r.local}))}function a(){r.getRepositories(s.repositoryInfo.location).success((function(e){let r=[];_.values(e).forEach(e=>{r.push.apply(r,e)}),s.allAttachedRepos=_.cloneDeep(r)})).error((function(e){const r=getError(e);o.error(r,t.instant("common.error"))})).then((function(){s.knownRepos=s.allAttachedRepos.slice(),n()}))}s.setWritableRepo=function(e){let r=s.fedxMembers.find(e=>"true"===e.writable);r&&((r.store!==i||e.store===i&&r.repositoryName===e.repositoryName)&&("RemoteRepository"!==r.store||"RemoteRepository"===e.store&&r.repositoryName===e.repositoryName&&r.repositoryServer===e.repositoryServer)||(r.writable="false")),e.writable=JSON.stringify("false"===e.writable)},s.getActiveClass=function(e){return"true"===e.writable?" active":""},s.checkIfRepoExist=function(e){return!s.allAttachedRepos.length||(e.store===i?s.allAttachedRepos.find(r=>r.id===e.repositoryName&&!r.location):"RemoteRepository"!==e.store||s.allAttachedRepos.find(r=>r.id===e.repositoryName&&r.location===e.repositoryServer))},s.getRepositoryServer=function(e){return e.local?"Local":e.location};const p=setInterval((function(){a()}),5e3);function l(e){s.fedxMembers.push(e),s.repositoryInfo.params.member.value=s.fedxMembers}function d(e){return"/"===e.slice(-1)?e.slice(0,-1):e}function m(){return s.editRepoPage&&!s.editRepoPage||!s.model.editMode}s.$on("$destroy",(function(){clearInterval(p)})),s.addMember=function(e){let r;r="Local"===s.getRepositoryServer(e)?{store:i,repositoryName:e.id,repoType:e.type,respectRights:"true",writable:"false"}:{store:"RemoteRepository",repositoryName:e.id,repositoryServer:e.location,username:"",password:"",supportsASKQueries:"true",writable:"false"},s.knownRepos=s.knownRepos.filter(r=>r.id!==e.id||r.location!==e.location),l(r)},s.removeMember=function(e){e.store&&e.store===i?(s.fedxMembers=s.fedxMembers.filter(r=>r.store!==e.store||r.repositoryName!==e.repositoryName&&!r.repositoryServer),a()):e.store&&"SPARQLEndpoint"===e.store?s.fedxMembers=s.fedxMembers.filter(r=>r.endpoint!==e.endpoint):e.store&&"NativeStore"===e.store?s.fedxMembers=s.fedxMembers.filter(r=>r.repositoryLocation!==e.repositoryLocation):e.store&&"RemoteRepository"===e.store&&(s.fedxMembers=s.fedxMembers.filter(r=>r.store!==e.store||r.repositoryName!==e.repositoryName||r.repositoryServer!==e.repositoryServer),a()),s.repositoryInfo.params.member.value=s.fedxMembers},s.addRemoteMember=function(){s.mode="remote",s.model={editMode:!1,store:"RemoteRepository",repositoryName:"",repositoryServer:"",sparqlEndpoint:"",username:"",password:"",supportsASKQueries:"true",writable:"false"},s.$uibModalInstance=e.open({templateUrl:"js/angular/templates/modal/add-fedx-remote-repo.html",scope:s})},s.getMemberIcon=function(e){return e.repoType?"icon-repo-"+e.repoType:"NativeStore"===e.store?"icon-warning":"icon-link"},s.editFedXRepository=function(r){r.store===i?(s.mode="local",s.model={editMode:!0,store:r.store,respectRights:r.respectRights,repositoryName:r.repositoryName,repoType:r.repoType,writable:r.writable}):(s.mode="remote",s.model={editMode:!0,store:r.store,repositoryName:r.repositoryName,repositoryServer:r.repositoryServer,sparqlEndpoint:"SPARQLEndpoint"===r.store?r.endpoint:r.repositoryLocation,username:r.username,password:r.password,supportsASKQueries:r.supportsASKQueries,writable:r.writable}),s.$uibModalInstance=e.open({templateUrl:"js/angular/templates/modal/add-fedx-remote-repo.html",scope:s})},s.resolveName=function(e){switch(e.store){case i:return e.repositoryName;case"RemoteRepository":return e.repositoryName+"@"+e.repositoryServer;case"SPARQLEndpoint":return e.endpoint;case"NativeStore":return e.repositoryLocation;default:return""}},s.cancel=function(){s.$uibModalInstance.dismiss("cancel")},s.ok=function(){let e;if(s.model.repositoryName&&s.model.store===i)e={store:i,repositoryName:s.model.repositoryName,repoType:s.model.repoType,respectRights:s.model.respectRights,writable:s.model.writable},s.fedxMembers=s.fedxMembers.filter(r=>r.repositoryName!==e.repositoryName||r.store!==e.store);else if(s.model.repositoryName&&"RemoteRepository"===s.model.store){if(e={store:"RemoteRepository",repositoryName:s.model.repositoryName,repositoryServer:d(s.model.repositoryServer),username:s.model.username,password:s.model.password,writable:s.model.writable},m()&&s.fedxMembers.find(r=>r.repositoryName===e.repositoryName&&r.repositoryServer===e.repositoryServer)){let r=s.resolveName(e);return o.error(t.instant("fedx.repo.already.added.member.error",{name:r})),void s.$uibModalInstance.close()}s.fedxMembers=s.fedxMembers.filter(r=>r.repositoryName!==e.repositoryName||r.repositoryServer!==e.repositoryServer)}else{if(e={store:"SPARQLEndpoint",endpoint:d(s.model.sparqlEndpoint),username:s.model.username,password:s.model.password,supportsASKQueries:s.model.supportsASKQueries,writable:s.model.writable},m()&&s.fedxMembers.find(r=>r.endpoint===e.endpoint)){let r=s.resolveName(e);return o.error(t.instant("fedx.repo.already.added.sparql.endpoint.error",{name:r})),void s.$uibModalInstance.close()}s.fedxMembers=s.fedxMembers.filter(r=>r.endpoint!==e.endpoint)}l(e),n(),s.$uibModalInstance.close()},s.$on("changedLocation",(function(){s.fedxMembers=[],a()})),a()}}}angular.module("graphdb.framework.repositories.fedx-repo.directive",[]).directive("fedxRepo",o),o.$inject=["$uibModal","RepositoriesRestService","toastr","$translate"]}}]);
2
- //# sourceMappingURL=107.5972b71755d2f24f6f44.bundle.js.map
1
+ (window.webpackJsonp=window.webpackJsonp||[]).push([[107],{101:function(e,r){function o(e,r,o,t){return{restrict:"E",scope:!0,templateUrl:"js/angular/repositories/templates/fedx-repo.html",link:function(s){const i="ResolvableRepository";s.fedxMembers=[],s.knownRepos=[],s.allAttachedRepos=[],s.editRepoPage&&(s.fedxMembers=s.repositoryInfo.params.member.value.slice());function n(){for(const e of s.fedxMembers)s.knownRepos=s.knownRepos.filter((function(r){return e.repositoryServer?r.id!==e.repositoryName||r.location!==e.repositoryServer:r.id!==e.repositoryName||!r.local}))}function a(){r.getRepositories(s.repositoryInfo.location).success((function(e){let r=[];_.values(e).forEach(e=>{r.push.apply(r,e)}),s.allAttachedRepos=_.cloneDeep(r)})).error((function(e){const r=getError(e);o.error(r,t.instant("common.error"))})).then((function(){s.knownRepos=s.allAttachedRepos.slice(),n()}))}s.setWritableRepo=function(e){let r=s.fedxMembers.find(e=>"true"===e.writable);r&&((r.store!==i||e.store===i&&r.repositoryName===e.repositoryName)&&("RemoteRepository"!==r.store||"RemoteRepository"===e.store&&r.repositoryName===e.repositoryName&&r.repositoryServer===e.repositoryServer)||(r.writable="false")),e.writable=JSON.stringify("false"===e.writable)},s.getActiveClass=function(e){return"true"===e.writable?" active":""},s.checkIfRepoExist=function(e){return!s.allAttachedRepos.length||(e.store===i?s.allAttachedRepos.find(r=>r.id===e.repositoryName&&!r.location):"RemoteRepository"!==e.store||s.allAttachedRepos.find(r=>r.id===e.repositoryName&&r.location===e.repositoryServer))},s.getRepositoryServer=function(e){return e.local?"Local":e.location};const p=setInterval((function(){a()}),5e3);function l(e){s.fedxMembers.push(e),s.repositoryInfo.params.member.value=s.fedxMembers}function d(e){return"/"===e.slice(-1)?e.slice(0,-1):e}function m(){return s.editRepoPage&&!s.editRepoPage||!s.model.editMode}s.$on("$destroy",(function(){clearInterval(p)})),s.addMember=function(e){let r;r="Local"===s.getRepositoryServer(e)?{store:i,repositoryName:e.id,repoType:e.type,respectRights:"true",writable:"false"}:{store:"RemoteRepository",repositoryName:e.id,repositoryServer:e.location,username:"",password:"",supportsASKQueries:"true",writable:"false"},s.knownRepos=s.knownRepos.filter(r=>r.id!==e.id||r.location!==e.location),l(r)},s.removeMember=function(e){e.store&&e.store===i?(s.fedxMembers=s.fedxMembers.filter(r=>r.store!==e.store||r.repositoryName!==e.repositoryName&&!r.repositoryServer),a()):e.store&&"SPARQLEndpoint"===e.store?s.fedxMembers=s.fedxMembers.filter(r=>r.endpoint!==e.endpoint):e.store&&"NativeStore"===e.store?s.fedxMembers=s.fedxMembers.filter(r=>r.repositoryLocation!==e.repositoryLocation):e.store&&"RemoteRepository"===e.store&&(s.fedxMembers=s.fedxMembers.filter(r=>r.store!==e.store||r.repositoryName!==e.repositoryName||r.repositoryServer!==e.repositoryServer),a()),s.repositoryInfo.params.member.value=s.fedxMembers},s.addRemoteMember=function(){s.mode="remote",s.model={editMode:!1,store:"RemoteRepository",repositoryName:"",repositoryServer:"",sparqlEndpoint:"",username:"",password:"",supportsASKQueries:"true",writable:"false"},s.$uibModalInstance=e.open({templateUrl:"js/angular/templates/modal/add-fedx-remote-repo.html",scope:s})},s.getMemberIcon=function(e){return e.repoType?"icon-repo-"+e.repoType:"NativeStore"===e.store?"icon-warning":"icon-link"},s.editFedXRepository=function(r){r.store===i?(s.mode="local",s.model={editMode:!0,store:r.store,respectRights:r.respectRights,repositoryName:r.repositoryName,repoType:r.repoType,writable:r.writable}):(s.mode="remote",s.model={editMode:!0,store:r.store,repositoryName:r.repositoryName,repositoryServer:r.repositoryServer,sparqlEndpoint:"SPARQLEndpoint"===r.store?r.endpoint:r.repositoryLocation,username:r.username,password:r.password,supportsASKQueries:r.supportsASKQueries,writable:r.writable}),s.$uibModalInstance=e.open({templateUrl:"js/angular/templates/modal/add-fedx-remote-repo.html",scope:s})},s.resolveName=function(e){switch(e.store){case i:return e.repositoryName;case"RemoteRepository":return e.repositoryName+"@"+e.repositoryServer;case"SPARQLEndpoint":return e.endpoint;case"NativeStore":return e.repositoryLocation;default:return""}},s.cancel=function(){s.$uibModalInstance.dismiss("cancel")},s.ok=function(){let e;if(s.model.repositoryName&&s.model.store===i)e={store:i,repositoryName:s.model.repositoryName,repoType:s.model.repoType,respectRights:s.model.respectRights,writable:s.model.writable},s.fedxMembers=s.fedxMembers.filter(r=>r.repositoryName!==e.repositoryName||r.store!==e.store);else if(s.model.repositoryName&&"RemoteRepository"===s.model.store){if(e={store:"RemoteRepository",repositoryName:s.model.repositoryName,repositoryServer:d(s.model.repositoryServer),username:s.model.username,password:s.model.password,writable:s.model.writable},m()&&s.fedxMembers.find(r=>r.repositoryName===e.repositoryName&&r.repositoryServer===e.repositoryServer)){let r=s.resolveName(e);return o.error(t.instant("fedx.repo.already.added.member.error",{name:r})),void s.$uibModalInstance.close()}s.fedxMembers=s.fedxMembers.filter(r=>r.repositoryName!==e.repositoryName||r.repositoryServer!==e.repositoryServer)}else{if(e={store:"SPARQLEndpoint",endpoint:d(s.model.sparqlEndpoint),username:s.model.username,password:s.model.password,supportsASKQueries:s.model.supportsASKQueries,writable:s.model.writable},m()&&s.fedxMembers.find(r=>r.endpoint===e.endpoint)){let r=s.resolveName(e);return o.error(t.instant("fedx.repo.already.added.sparql.endpoint.error",{name:r})),void s.$uibModalInstance.close()}s.fedxMembers=s.fedxMembers.filter(r=>r.endpoint!==e.endpoint)}l(e),n(),s.$uibModalInstance.close()},s.$on("changedLocation",(function(){s.fedxMembers=[],a()})),a()}}}angular.module("graphdb.framework.repositories.fedx-repo.directive",[]).directive("fedxRepo",o),o.$inject=["$uibModal","RepositoriesRestService","toastr","$translate"]}}]);
2
+ //# sourceMappingURL=107.481f84627ac231f49e56.bundle.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack:///./src/js/angular/repositories/fedx-repo.directive.js"],"names":["fedxRepoDirective","$uibModal","RepositoriesRestService","toastr","$translate","restrict","scope","templateUrl","link","$scope","LOCAL_REPO_STORE","fedxMembers","knownRepos","allAttachedRepos","editRepoPage","repositoryInfo","params","member","value","slice","populateKnownRepos","filter","repo","repositoryServer","id","repositoryName","location","local","getKnownRepos","getRepositories","success","response","repos","_","values","forEach","push","apply","cloneDeep","error","msg","getError","instant","then","setWritableRepo","currentWritable","find","writable","store","JSON","stringify","getActiveClass","checkIfRepoExist","length","getRepositoryServer","localReposTimer","setInterval","updateMembers","removeEndingSlash","url","checkEditMode","model","editMode","$on","clearInterval","addMember","repository","repoType","type","respectRights","username","password","supportsASKQueries","removeMember","el","endpoint","repositoryLocation","addRemoteMember","mode","sparqlEndpoint","$uibModalInstance","open","getMemberIcon","editFedXRepository","resolveName","cancel","dismiss","ok","resolvedName","name","close","angular","module","directive","$inject"],"mappings":"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","file":"107.5972b71755d2f24f6f44.bundle.js","sourcesContent":["angular\n .module('graphdb.framework.repositories.fedx-repo.directive', [])\n .directive('fedxRepo', fedxRepoDirective);\n\nfedxRepoDirective.$inject = ['$uibModal', 'RepositoriesRestService', 'toastr', '$translate'];\n\nfunction fedxRepoDirective($uibModal, RepositoriesRestService, toastr, $translate) {\n return {\n restrict: 'E',\n scope: true,\n templateUrl: 'js/angular/repositories/templates/fedx-repo.html',\n\n link: linkFunc\n };\n\n function linkFunc($scope) {\n\n const LOCAL_REPO_STORE = 'ResolvableRepository';\n const REMOTE_REPO_STORE = 'RemoteRepository';\n const SPARQL_ENDPOINT_STORE = 'SPARQLEndpoint';\n const NATIVE_STORE = 'NativeStore';\n\n $scope.fedxMembers = [];\n $scope.knownRepos = [];\n $scope.allAttachedRepos = [];\n\n if ($scope.editRepoPage) {\n $scope.fedxMembers = $scope.repositoryInfo.params.member.value.slice();\n }\n\n function getRepositories() {\n return RepositoriesRestService.getRepositories($scope.repositoryInfo.location)\n .success(function (response) {\n let repos = [];\n _.values(response).forEach((value) => {\n repos.push.apply(repos, value);\n });\n $scope.allAttachedRepos = _.cloneDeep(repos);\n }).error(function (response) {\n const msg = getError(response);\n toastr.error(msg, $translate.instant('common.error'));\n });\n }\n\n function populateKnownRepos() {\n for (const member of $scope.fedxMembers) {\n $scope.knownRepos = $scope.knownRepos.filter(function (repo) {\n if (member.repositoryServer) {\n // if the member is a remote attached member\n return repo.id !== member.repositoryName || repo.location !== member.repositoryServer;\n } else {\n // if the member is a local one\n return repo.id !== member.repositoryName || !repo.local;\n }\n });\n }\n }\n\n $scope.setWritableRepo = function (member) {\n let currentWritable = getWritableRepo();\n if (currentWritable) {\n if (currentWritable.store === LOCAL_REPO_STORE && (member.store !== LOCAL_REPO_STORE || currentWritable.repositoryName !== member.repositoryName) ) {\n currentWritable.writable = 'false';\n } else if (currentWritable.store === REMOTE_REPO_STORE && (member.store !== REMOTE_REPO_STORE || currentWritable.repositoryName !== member.repositoryName || currentWritable.repositoryServer !== member.repositoryServer)) {\n currentWritable.writable = 'false';\n }\n }\n member.writable = JSON.stringify(member.writable === 'false');\n }\n\n $scope.getActiveClass = function (member) {\n return member.writable === 'true' ? ' active' : '';\n }\n\n function getWritableRepo() {\n return $scope.fedxMembers.find(member => member.writable === \"true\");\n }\n\n function getKnownRepos() {\n getRepositories()\n .then(function () {\n $scope.knownRepos = $scope.allAttachedRepos.slice();\n populateKnownRepos();\n });\n }\n\n $scope.checkIfRepoExist = function (member) {\n if (!$scope.allAttachedRepos.length) {\n return true;\n }\n if (member.store === LOCAL_REPO_STORE) {\n return $scope.allAttachedRepos.find(repo => repo.id === member.repositoryName && !repo.location);\n } else if (member.store === REMOTE_REPO_STORE) {\n return $scope.allAttachedRepos.find(repo => repo.id === member.repositoryName && repo.location === member.repositoryServer);\n } else {\n return true;\n }\n }\n\n $scope.getRepositoryServer = function (repo) {\n if (repo.local) {\n return \"Local\";\n } else {\n return repo.location;\n }\n }\n\n const localReposTimer = setInterval(function () {\n getKnownRepos();\n }, 5000);\n\n $scope.$on('$destroy', function () {\n clearInterval(localReposTimer);\n });\n\n $scope.addMember = function(repository) {\n let member;\n if ($scope.getRepositoryServer(repository) === \"Local\") {\n member = {\n store: LOCAL_REPO_STORE,\n repositoryName: repository.id,\n repoType: repository.type,\n respectRights: \"true\",\n writable: \"false\"\n };\n } else {\n member = {\n store: REMOTE_REPO_STORE,\n repositoryName: repository.id,\n repositoryServer: repository.location,\n username: '',\n password: '',\n supportsASKQueries: \"true\",\n writable: \"false\"\n };\n }\n $scope.knownRepos = $scope.knownRepos.filter(repo => repo.id !== repository.id || repo.location !== repository.location);\n updateMembers(member);\n }\n\n $scope.removeMember = function (member) {\n if (member.store && member.store === LOCAL_REPO_STORE) {\n $scope.fedxMembers = $scope.fedxMembers.filter(el => el.store !== member.store || el.repositoryName !== member.repositoryName && !el.repositoryServer);\n getKnownRepos();\n } else if (member.store && member.store === SPARQL_ENDPOINT_STORE) {\n $scope.fedxMembers = $scope.fedxMembers.filter(el => el.endpoint !== member.endpoint);\n } else if (member.store && member.store === NATIVE_STORE) {\n $scope.fedxMembers = $scope.fedxMembers.filter(el => el.repositoryLocation !== member.repositoryLocation);\n } else if (member.store && member.store === REMOTE_REPO_STORE) {\n $scope.fedxMembers = $scope.fedxMembers.filter(el => el.store !== member.store || el.repositoryName !== member.repositoryName\n || el.repositoryServer !== member.repositoryServer);\n getKnownRepos();\n }\n $scope.repositoryInfo.params['member'].value = $scope.fedxMembers;\n }\n\n $scope.addRemoteMember = function () {\n $scope.mode = 'remote';\n $scope.model = {\n editMode: false,\n store: REMOTE_REPO_STORE,\n repositoryName: '',\n repositoryServer: '',\n sparqlEndpoint: '',\n username: '',\n password: '',\n supportsASKQueries: \"true\",\n writable: \"false\"\n }\n\n $scope.$uibModalInstance = $uibModal.open({\n templateUrl: 'js/angular/templates/modal/add-fedx-remote-repo.html',\n scope: $scope,\n });\n };\n\n $scope.getMemberIcon = function (member) {\n if (member.repoType) {\n return 'icon-repo-' + member.repoType;\n } else if (member.store === NATIVE_STORE) {\n return 'icon-warning';\n } else {\n return 'icon-link';\n }\n }\n\n $scope.editFedXRepository = function (member) {\n if (member.store === LOCAL_REPO_STORE) {\n $scope.mode = 'local';\n $scope.model = {\n editMode: true,\n store: member.store,\n respectRights: member.respectRights,\n repositoryName: member.repositoryName,\n repoType: member.repoType,\n writable: member.writable\n }\n } else {\n $scope.mode = 'remote';\n $scope.model = {\n editMode: true,\n store: member.store,\n repositoryName: member.repositoryName,\n repositoryServer: member.repositoryServer,\n sparqlEndpoint: member.store === SPARQL_ENDPOINT_STORE ? member.endpoint : member.repositoryLocation,\n username: member.username,\n password: member.password,\n supportsASKQueries: member.supportsASKQueries,\n writable: member.writable\n }\n }\n\n $scope.$uibModalInstance = $uibModal.open({\n templateUrl: 'js/angular/templates/modal/add-fedx-remote-repo.html',\n scope: $scope\n });\n };\n\n $scope.resolveName = function (member) {\n switch (member.store) {\n case LOCAL_REPO_STORE : {\n return member.repositoryName;\n }\n case REMOTE_REPO_STORE : {\n return member.repositoryName + '@' + member.repositoryServer;\n }\n case SPARQL_ENDPOINT_STORE : {\n return member.endpoint;\n }\n case NATIVE_STORE : {\n return member.repositoryLocation;\n }\n default :\n return \"\";\n }\n }\n\n $scope.cancel = function () {\n $scope.$uibModalInstance.dismiss('cancel');\n };\n\n function updateMembers(member) {\n $scope.fedxMembers.push(member);\n $scope.repositoryInfo.params['member'].value = $scope.fedxMembers;\n }\n\n function removeEndingSlash(url) {\n return url.slice(-1) === '/' ? url.slice(0, -1) : url\n }\n\n function checkEditMode() {\n return $scope.editRepoPage && !$scope.editRepoPage || !$scope.model.editMode;\n }\n\n $scope.ok = function () {\n let member;\n if ($scope.model.repositoryName && $scope.model.store === LOCAL_REPO_STORE) {\n member = {\n store: LOCAL_REPO_STORE,\n repositoryName: $scope.model.repositoryName,\n repoType: $scope.model.repoType,\n respectRights: $scope.model.respectRights,\n writable: $scope.model.writable\n }\n $scope.fedxMembers = $scope.fedxMembers.filter(el => el.repositoryName !== member.repositoryName || el.store !== member.store );\n } else if ($scope.model.repositoryName && $scope.model.store === REMOTE_REPO_STORE) {\n member = {\n store: REMOTE_REPO_STORE,\n repositoryName: $scope.model.repositoryName,\n repositoryServer: removeEndingSlash($scope.model.repositoryServer),\n username: $scope.model.username,\n password: $scope.model.password,\n writable: $scope.model.writable\n };\n if (checkEditMode() && $scope.fedxMembers.find(el => el.repositoryName === member.repositoryName\n && el.repositoryServer === member.repositoryServer)) {\n let resolvedName = $scope.resolveName(member);\n toastr.error($translate.instant('fedx.repo.already.added.member.error', {name: resolvedName}));\n $scope.$uibModalInstance.close();\n return;\n }\n $scope.fedxMembers = $scope.fedxMembers.filter(el => el.repositoryName !== member.repositoryName\n || el.repositoryServer !== member.repositoryServer);\n } else {\n member = {\n store: SPARQL_ENDPOINT_STORE,\n endpoint: removeEndingSlash($scope.model.sparqlEndpoint),\n username: $scope.model.username,\n password: $scope.model.password,\n supportsASKQueries: $scope.model.supportsASKQueries,\n writable: $scope.model.writable\n };\n\n if (checkEditMode() && $scope.fedxMembers.find(el => el.endpoint === member.endpoint)) {\n let resolvedName = $scope.resolveName(member);\n toastr.error($translate.instant('fedx.repo.already.added.sparql.endpoint.error', {name: resolvedName}));\n $scope.$uibModalInstance.close();\n return;\n }\n\n $scope.fedxMembers = $scope.fedxMembers.filter(el => el.endpoint !== member.endpoint);\n }\n\n updateMembers(member);\n populateKnownRepos();\n $scope.$uibModalInstance.close();\n };\n\n $scope.$on('changedLocation', function () {\n $scope.fedxMembers = [];\n getKnownRepos();\n });\n\n getKnownRepos();\n }\n}\n"],"sourceRoot":""}
1
+ {"version":3,"sources":["webpack:///./src/js/angular/repositories/fedx-repo.directive.js"],"names":["fedxRepoDirective","$uibModal","RepositoriesRestService","toastr","$translate","restrict","scope","templateUrl","link","$scope","LOCAL_REPO_STORE","fedxMembers","knownRepos","allAttachedRepos","editRepoPage","repositoryInfo","params","member","value","slice","populateKnownRepos","filter","repo","repositoryServer","id","repositoryName","location","local","getKnownRepos","getRepositories","success","response","repos","_","values","forEach","push","apply","cloneDeep","error","msg","getError","instant","then","setWritableRepo","currentWritable","find","writable","store","JSON","stringify","getActiveClass","checkIfRepoExist","length","getRepositoryServer","localReposTimer","setInterval","updateMembers","removeEndingSlash","url","checkEditMode","model","editMode","$on","clearInterval","addMember","repository","repoType","type","respectRights","username","password","supportsASKQueries","removeMember","el","endpoint","repositoryLocation","addRemoteMember","mode","sparqlEndpoint","$uibModalInstance","open","getMemberIcon","editFedXRepository","resolveName","cancel","dismiss","ok","resolvedName","name","close","angular","module","directive","$inject"],"mappings":"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","file":"107.481f84627ac231f49e56.bundle.js","sourcesContent":["angular\n .module('graphdb.framework.repositories.fedx-repo.directive', [])\n .directive('fedxRepo', fedxRepoDirective);\n\nfedxRepoDirective.$inject = ['$uibModal', 'RepositoriesRestService', 'toastr', '$translate'];\n\nfunction fedxRepoDirective($uibModal, RepositoriesRestService, toastr, $translate) {\n return {\n restrict: 'E',\n scope: true,\n templateUrl: 'js/angular/repositories/templates/fedx-repo.html',\n\n link: linkFunc\n };\n\n function linkFunc($scope) {\n\n const LOCAL_REPO_STORE = 'ResolvableRepository';\n const REMOTE_REPO_STORE = 'RemoteRepository';\n const SPARQL_ENDPOINT_STORE = 'SPARQLEndpoint';\n const NATIVE_STORE = 'NativeStore';\n\n $scope.fedxMembers = [];\n $scope.knownRepos = [];\n $scope.allAttachedRepos = [];\n\n if ($scope.editRepoPage) {\n $scope.fedxMembers = $scope.repositoryInfo.params.member.value.slice();\n }\n\n function getRepositories() {\n return RepositoriesRestService.getRepositories($scope.repositoryInfo.location)\n .success(function (response) {\n let repos = [];\n _.values(response).forEach((value) => {\n repos.push.apply(repos, value);\n });\n $scope.allAttachedRepos = _.cloneDeep(repos);\n }).error(function (response) {\n const msg = getError(response);\n toastr.error(msg, $translate.instant('common.error'));\n });\n }\n\n function populateKnownRepos() {\n for (const member of $scope.fedxMembers) {\n $scope.knownRepos = $scope.knownRepos.filter(function (repo) {\n if (member.repositoryServer) {\n // if the member is a remote attached member\n return repo.id !== member.repositoryName || repo.location !== member.repositoryServer;\n } else {\n // if the member is a local one\n return repo.id !== member.repositoryName || !repo.local;\n }\n });\n }\n }\n\n $scope.setWritableRepo = function (member) {\n let currentWritable = getWritableRepo();\n if (currentWritable) {\n if (currentWritable.store === LOCAL_REPO_STORE && (member.store !== LOCAL_REPO_STORE || currentWritable.repositoryName !== member.repositoryName) ) {\n currentWritable.writable = 'false';\n } else if (currentWritable.store === REMOTE_REPO_STORE && (member.store !== REMOTE_REPO_STORE || currentWritable.repositoryName !== member.repositoryName || currentWritable.repositoryServer !== member.repositoryServer)) {\n currentWritable.writable = 'false';\n }\n }\n member.writable = JSON.stringify(member.writable === 'false');\n }\n\n $scope.getActiveClass = function (member) {\n return member.writable === 'true' ? ' active' : '';\n }\n\n function getWritableRepo() {\n return $scope.fedxMembers.find(member => member.writable === \"true\");\n }\n\n function getKnownRepos() {\n getRepositories()\n .then(function () {\n $scope.knownRepos = $scope.allAttachedRepos.slice();\n populateKnownRepos();\n });\n }\n\n $scope.checkIfRepoExist = function (member) {\n if (!$scope.allAttachedRepos.length) {\n return true;\n }\n if (member.store === LOCAL_REPO_STORE) {\n return $scope.allAttachedRepos.find(repo => repo.id === member.repositoryName && !repo.location);\n } else if (member.store === REMOTE_REPO_STORE) {\n return $scope.allAttachedRepos.find(repo => repo.id === member.repositoryName && repo.location === member.repositoryServer);\n } else {\n return true;\n }\n }\n\n $scope.getRepositoryServer = function (repo) {\n if (repo.local) {\n return \"Local\";\n } else {\n return repo.location;\n }\n }\n\n const localReposTimer = setInterval(function () {\n getKnownRepos();\n }, 5000);\n\n $scope.$on('$destroy', function () {\n clearInterval(localReposTimer);\n });\n\n $scope.addMember = function(repository) {\n let member;\n if ($scope.getRepositoryServer(repository) === \"Local\") {\n member = {\n store: LOCAL_REPO_STORE,\n repositoryName: repository.id,\n repoType: repository.type,\n respectRights: \"true\",\n writable: \"false\"\n };\n } else {\n member = {\n store: REMOTE_REPO_STORE,\n repositoryName: repository.id,\n repositoryServer: repository.location,\n username: '',\n password: '',\n supportsASKQueries: \"true\",\n writable: \"false\"\n };\n }\n $scope.knownRepos = $scope.knownRepos.filter(repo => repo.id !== repository.id || repo.location !== repository.location);\n updateMembers(member);\n }\n\n $scope.removeMember = function (member) {\n if (member.store && member.store === LOCAL_REPO_STORE) {\n $scope.fedxMembers = $scope.fedxMembers.filter(el => el.store !== member.store || el.repositoryName !== member.repositoryName && !el.repositoryServer);\n getKnownRepos();\n } else if (member.store && member.store === SPARQL_ENDPOINT_STORE) {\n $scope.fedxMembers = $scope.fedxMembers.filter(el => el.endpoint !== member.endpoint);\n } else if (member.store && member.store === NATIVE_STORE) {\n $scope.fedxMembers = $scope.fedxMembers.filter(el => el.repositoryLocation !== member.repositoryLocation);\n } else if (member.store && member.store === REMOTE_REPO_STORE) {\n $scope.fedxMembers = $scope.fedxMembers.filter(el => el.store !== member.store || el.repositoryName !== member.repositoryName\n || el.repositoryServer !== member.repositoryServer);\n getKnownRepos();\n }\n $scope.repositoryInfo.params['member'].value = $scope.fedxMembers;\n }\n\n $scope.addRemoteMember = function () {\n $scope.mode = 'remote';\n $scope.model = {\n editMode: false,\n store: REMOTE_REPO_STORE,\n repositoryName: '',\n repositoryServer: '',\n sparqlEndpoint: '',\n username: '',\n password: '',\n supportsASKQueries: \"true\",\n writable: \"false\"\n }\n\n $scope.$uibModalInstance = $uibModal.open({\n templateUrl: 'js/angular/templates/modal/add-fedx-remote-repo.html',\n scope: $scope,\n });\n };\n\n $scope.getMemberIcon = function (member) {\n if (member.repoType) {\n return 'icon-repo-' + member.repoType;\n } else if (member.store === NATIVE_STORE) {\n return 'icon-warning';\n } else {\n return 'icon-link';\n }\n }\n\n $scope.editFedXRepository = function (member) {\n if (member.store === LOCAL_REPO_STORE) {\n $scope.mode = 'local';\n $scope.model = {\n editMode: true,\n store: member.store,\n respectRights: member.respectRights,\n repositoryName: member.repositoryName,\n repoType: member.repoType,\n writable: member.writable\n }\n } else {\n $scope.mode = 'remote';\n $scope.model = {\n editMode: true,\n store: member.store,\n repositoryName: member.repositoryName,\n repositoryServer: member.repositoryServer,\n sparqlEndpoint: member.store === SPARQL_ENDPOINT_STORE ? member.endpoint : member.repositoryLocation,\n username: member.username,\n password: member.password,\n supportsASKQueries: member.supportsASKQueries,\n writable: member.writable\n }\n }\n\n $scope.$uibModalInstance = $uibModal.open({\n templateUrl: 'js/angular/templates/modal/add-fedx-remote-repo.html',\n scope: $scope\n });\n };\n\n $scope.resolveName = function (member) {\n switch (member.store) {\n case LOCAL_REPO_STORE : {\n return member.repositoryName;\n }\n case REMOTE_REPO_STORE : {\n return member.repositoryName + '@' + member.repositoryServer;\n }\n case SPARQL_ENDPOINT_STORE : {\n return member.endpoint;\n }\n case NATIVE_STORE : {\n return member.repositoryLocation;\n }\n default :\n return \"\";\n }\n }\n\n $scope.cancel = function () {\n $scope.$uibModalInstance.dismiss('cancel');\n };\n\n function updateMembers(member) {\n $scope.fedxMembers.push(member);\n $scope.repositoryInfo.params['member'].value = $scope.fedxMembers;\n }\n\n function removeEndingSlash(url) {\n return url.slice(-1) === '/' ? url.slice(0, -1) : url\n }\n\n function checkEditMode() {\n return $scope.editRepoPage && !$scope.editRepoPage || !$scope.model.editMode;\n }\n\n $scope.ok = function () {\n let member;\n if ($scope.model.repositoryName && $scope.model.store === LOCAL_REPO_STORE) {\n member = {\n store: LOCAL_REPO_STORE,\n repositoryName: $scope.model.repositoryName,\n repoType: $scope.model.repoType,\n respectRights: $scope.model.respectRights,\n writable: $scope.model.writable\n }\n $scope.fedxMembers = $scope.fedxMembers.filter(el => el.repositoryName !== member.repositoryName || el.store !== member.store );\n } else if ($scope.model.repositoryName && $scope.model.store === REMOTE_REPO_STORE) {\n member = {\n store: REMOTE_REPO_STORE,\n repositoryName: $scope.model.repositoryName,\n repositoryServer: removeEndingSlash($scope.model.repositoryServer),\n username: $scope.model.username,\n password: $scope.model.password,\n writable: $scope.model.writable\n };\n if (checkEditMode() && $scope.fedxMembers.find(el => el.repositoryName === member.repositoryName\n && el.repositoryServer === member.repositoryServer)) {\n let resolvedName = $scope.resolveName(member);\n toastr.error($translate.instant('fedx.repo.already.added.member.error', {name: resolvedName}));\n $scope.$uibModalInstance.close();\n return;\n }\n $scope.fedxMembers = $scope.fedxMembers.filter(el => el.repositoryName !== member.repositoryName\n || el.repositoryServer !== member.repositoryServer);\n } else {\n member = {\n store: SPARQL_ENDPOINT_STORE,\n endpoint: removeEndingSlash($scope.model.sparqlEndpoint),\n username: $scope.model.username,\n password: $scope.model.password,\n supportsASKQueries: $scope.model.supportsASKQueries,\n writable: $scope.model.writable\n };\n\n if (checkEditMode() && $scope.fedxMembers.find(el => el.endpoint === member.endpoint)) {\n let resolvedName = $scope.resolveName(member);\n toastr.error($translate.instant('fedx.repo.already.added.sparql.endpoint.error', {name: resolvedName}));\n $scope.$uibModalInstance.close();\n return;\n }\n\n $scope.fedxMembers = $scope.fedxMembers.filter(el => el.endpoint !== member.endpoint);\n }\n\n updateMembers(member);\n populateKnownRepos();\n $scope.$uibModalInstance.close();\n };\n\n $scope.$on('changedLocation', function () {\n $scope.fedxMembers = [];\n getKnownRepos();\n });\n\n getKnownRepos();\n }\n}\n"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ (window.webpackJsonp=window.webpackJsonp||[]).push([[108],{100:function(e,r,o){"use strict";o.r(r);var t=o(66);function i(e,r,o,i,s){return{restrict:"E",scope:!1,templateUrl:"js/angular/repositories/templates/ontop-repo.html",link:function(n){n.selectedDriver={driverType:"generic",driverName:"Generic JDBC Driver",jdbc:{hostName:"",port:"",databaseName:"",userName:"",password:"",driverClass:"",url:""},urlTemplate:"",downloadDriverUrl:""},n.ontopRepoFileNames={},n.supportedDriversData=[],n.ontopRepoFileLabels={propertiesFile:"JDBC properties",obdaFile:"OBDA or R2RML",owlFile:"ontology file",constraintFile:"constraint file",dbMetadataFile:"DB metadata file"},n.ontopRepoFiles=Object.keys(n.ontopRepoFileLabels),n.ontopRepoFiles.forEach((function(e){n.repositoryInfo.params[e]&&(n.ontopRepoFileNames[e]=Object(t.getFileName)(n.repositoryInfo.params[e].value))})),n.supportedDriverLabels={hostName:"Hostname",port:"Port",databaseName:"Database name",userName:"Username",password:"Password",driverClass:"Driver class",url:"URL"},n.propertiesFileParams=Object.keys(n.supportedDriverLabels),n.classAvailable=!1,n.genericDriverType="generic",n.propertiesFile="propertiesFile";const a=[n.propertiesFile,"obdaFile"],l=["hostName","databaseName","userName"];function p(){return n.selectedDriver.driverType!==n.genericDriverType?l.filter((function(e){return!n.selectedDriver.jdbc[e]})).length>0&&(o.error(s.instant("missing.required.field.error")),1)?Promise.reject(s.instant("missing.required.field.error")):(n.uploadFileLoader=!0,r.updatePropertiesFile(n.repositoryInfo.params[n.propertiesFile].value,n.selectedDriver.jdbc,n.repositoryInfo.location).success((function(e){n.ontopRepoFileNames[n.propertiesFile]=Object(t.getFileName)(e.fileLocation),n.repositoryInfo.params[n.propertiesFile].value=e.fileLocation,n.uploadFileLoader=!1})).error((function(e){c(s.instant("common.error"),e),n.uploadFileLoader=!1}))):Promise.resolve()}function c(e,r){const t=getError(r);o.error(t,e)}n.loadDriverByClass=function(e){const r=n.supportedDriversData.find(r=>r.driverClass===e);return r&&n.copyDriverProperties(r),r},n.selectDriverByType=function(e){n.copyDriverProperties(n.supportedDriversData.find(r=>r.driverType===e)),n.concatURL("hostName",n)},n.copyDriverProperties=function(e){n.selectedDriver.driverType=e.driverType,n.selectedDriver.jdbc.driverClass=e.driverClass,n.selectedDriver.jdbc.url=e.urlTemplate,n.selectedDriver.urlTemplate=e.urlTemplate,n.selectedDriver.downloadDriverUrl=e.downloadDriverUrl,n.selectedDriver.portRequired=e.portRequired,n.classAvailable=e.classAvailable},n.isReadOnly=function(e){return"driverClass"===e||"url"===e},n.editFile=function(o){e.open({templateUrl:"js/angular/templates/modal/editRepoFile.html",controller:"EditRepositoryFileCtrl",resolve:{file:function(){return n.repositoryInfo.params[o]?n.repositoryInfo.params[o].value:""}}}).result.then((function(e){r.updateRepositoryFileContent(e.fileLocation,e.content,n.repositoryInfo.location).success((function(e){n.ontopRepoFileNames[o]=Object(t.getFileName)(e.fileLocation),n.repositoryInfo.params[o].value=e.fileLocation})).error((function(e){c(s.instant("common.error"),e)}))}))},n.uploadOntopRepoFile=function(e,r){e&&e.length&&(n.uploadFile=e[0],n.uploadFileLoader=!0,i.upload({url:"rest/repositories/file/upload",data:{file:n.uploadFile,location:n.repositoryInfo.location}}).success((function(e){e.success?(n.ontopRepoFileNames[r]=n.uploadFile.name,n.repositoryInfo.params[r].value=e.fileLocation):o.error(e.errorMessage),n.uploadFileLoader=!1})).error((function(e){c(s.instant("common.error"),e),n.uploadFile="",n.uploadFileLoader=!1})))},n.concatURL=function(e){if("hostName"===e||"port"===e||"databaseName"===e){let e=n.selectedDriver.urlTemplate;n.selectedDriver.jdbc.hostName&&(e=n.selectedDriver.jdbc.port?e.replace("{hostport}",`${n.selectedDriver.jdbc.hostName}:${n.selectedDriver.jdbc.port}`):e.replace("{hostport}",n.selectedDriver.jdbc.hostName)),n.selectedDriver.jdbc.databaseName&&(e=e.replace("{database}",n.selectedDriver.jdbc.databaseName)),n.selectedDriver.jdbc.url=e}},n.getInputType=function(e){switch(e){case"password":return"password";case"port":return"number";default:return"text"}},n.checkForRequiredOntopFiles=function(){return p().then((function(){return a.filter((function(e){return!n.repositoryInfo.params[e].value})).length>0?(o.error(s.instant("ontop.repo.missing.required.file.error")),Promise.reject(s.instant("ontop.repo.missing.required.file.error"))):Promise.resolve()}))},n.validateOntopPropertiesConnection=function(){p().then((function(){r.validateOntopPropertiesConnection(n.repositoryInfo).success((function(){o.success(s.instant("ontop.repo.successful.connection.msg"))})).error((function(e){c(s.instant("ontop.repo.failed.to.connect"),e)}))}))},n.isOntopRepoFileUploaded=function(){return n.repositoryInfo.params.propertiesFile&&n.repositoryInfo.params.propertiesFile.value.length>0},n.isRequiredOntopRepoFile=function(e){return a.indexOf(e)>-1},n.isRequiredField=function(e){return l.indexOf(e)>-1||"port"===e&&n.selectedDriver.portRequired},n.getFieldTooltip=function(e){return"port"===e&&n.selectedDriver.portRequired&&(e="portIfRequired"),s.instant("repoTooltips.ontop."+e)},n.editOntopRepo=function(){n.checkForRequiredOntopFiles().then((function(){n.editRepository()})).catch((function(e){}))},n.createOntopRepo=function(){n.repositoryInfo.id?n.checkForRequiredOntopFiles().then((function(){n.createRepo()})).catch((function(e){})):o.error(s.instant("empty.repoid.warning"))},n.goBackToPrevious=function(){n.goBackToPreviousLocation()},r.getSupportedDriversData(n.repositoryInfo).success((function(e){n.supportedDriversData=e})).error((function(e){c(s.instant("common.error"),e)})).then((function(){n.editRepoPage&&r.loadPropertiesFile(n.repositoryInfo.params[n.propertiesFile].value,n.repositoryInfo.location).success((function(e){n.loadDriverByClass(e.driverClass)&&(n.selectedDriver.jdbc.hostName=e.hostName,n.selectedDriver.jdbc.port=parseInt(e.port),n.selectedDriver.jdbc.databaseName=e.databaseName,n.selectedDriver.jdbc.userName=e.userName,n.selectedDriver.jdbc.password=e.password,n.selectedDriver.jdbc.url=e.url)})).error((function(e){c(s.instant("common.error"),e),n.uploadFileLoader=!1}))}))}}}angular.module("graphdb.framework.repositories.ontop-repo.directive",[]).directive("ontopRepo",i),i.$inject=["$uibModal","RepositoriesRestService","toastr","Upload","$translate"]}}]);
2
+ //# sourceMappingURL=108.d61b0e4a54e1d0e6550d.bundle.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack:///./src/js/angular/repositories/ontop-repo.directive.js"],"names":["ontopRepoDirective","$uibModal","RepositoriesRestService","toastr","Upload","$translate","restrict","scope","templateUrl","link","$scope","selectedDriver","driverType","driverName","jdbc","hostName","port","databaseName","userName","password","driverClass","url","urlTemplate","downloadDriverUrl","ontopRepoFileNames","supportedDriversData","ontopRepoFileLabels","propertiesFile","obdaFile","owlFile","constraintFile","dbMetadataFile","ontopRepoFiles","Object","keys","forEach","key","repositoryInfo","params","value","supportedDriverLabels","propertiesFileParams","classAvailable","genericDriverType","REQUIRED_ONTOP_REPO_PARAMS","REQUIRED_PROPERTIES_FIELD_PARAMS","updateProperties","filter","requiredField","length","error","instant","Promise","reject","uploadFileLoader","updatePropertiesFile","location","success","data","fileLocation","showErrorMsg","resolve","title","msg","getError","loadDriverByClass","foundDriver","find","driver","copyDriverProperties","selectDriverByType","concatURL","portRequired","isReadOnly","labelName","editFile","file","open","controller","result","then","updateRepositoryFileContent","content","uploadOntopRepoFile","files","param","uploadFile","upload","name","errorMessage","replace","getInputType","checkForRequiredOntopFiles","requiredFile","validateOntopPropertiesConnection","isOntopRepoFileUploaded","isRequiredOntopRepoFile","indexOf","isRequiredField","field","getFieldTooltip","editOntopRepo","editRepository","catch","err","createOntopRepo","id","createRepo","goBackToPrevious","goBackToPreviousLocation","getSupportedDriversData","response","editRepoPage","loadPropertiesFile","driverData","parseInt","angular","module","directive","$inject"],"mappings":"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","file":"108.162ea156d1fc4ad2525f.bundle.js","sourcesContent":["import {getFileName} from \"./controllers\";\n\nangular\n .module('graphdb.framework.repositories.ontop-repo.directive', [])\n .directive('ontopRepo', ontopRepoDirective);\n\nontopRepoDirective.$inject = ['$uibModal', 'RepositoriesRestService', 'toastr', 'Upload', '$translate'];\n\nfunction ontopRepoDirective($uibModal, RepositoriesRestService, toastr, Upload, $translate) {\n return {\n restrict: 'E',\n scope: false,\n templateUrl: 'js/angular/repositories/templates/ontop-repo.html',\n\n link: linkFunc\n };\n\n function linkFunc($scope) {\n\n $scope.selectedDriver = {\n driverType: \"generic\",\n driverName: \"Generic JDBC Driver\",\n jdbc: {\n hostName: \"\",\n port: \"\",\n databaseName: \"\",\n userName: \"\",\n password: \"\",\n driverClass: \"\",\n url: \"\"\n },\n urlTemplate: \"\",\n downloadDriverUrl: \"\"\n };\n $scope.ontopRepoFileNames = {};\n $scope.supportedDriversData = [];\n $scope.ontopRepoFileLabels =\n {propertiesFile: 'JDBC properties', obdaFile: 'OBDA or R2RML', owlFile: 'ontology file',\n constraintFile: 'constraint file', dbMetadataFile: 'DB metadata file'};\n $scope.ontopRepoFiles = Object.keys($scope.ontopRepoFileLabels);\n $scope.ontopRepoFiles.forEach(function(key) {\n if ($scope.repositoryInfo.params[key]) {\n $scope.ontopRepoFileNames[key] = getFileName($scope.repositoryInfo.params[key].value);\n }\n });\n $scope.supportedDriverLabels = {hostName: 'Hostname', port: \"Port\", databaseName: 'Database name',\n userName: 'Username', password: 'Password', driverClass: 'Driver class', url: 'URL'};\n $scope.propertiesFileParams = Object.keys($scope.supportedDriverLabels);\n $scope.classAvailable = false;\n $scope.genericDriverType = 'generic';\n $scope.propertiesFile = 'propertiesFile';\n\n const REQUIRED_ONTOP_REPO_PARAMS = [$scope.propertiesFile, 'obdaFile'];\n const REQUIRED_PROPERTIES_FIELD_PARAMS = ['hostName', 'databaseName', 'userName'];\n\n function getSupportedDriversData() {\n return RepositoriesRestService.getSupportedDriversData($scope.repositoryInfo)\n .success(function (response) {\n $scope.supportedDriversData = response;\n }).error(function (response) {\n showErrorMsg($translate.instant('common.error'), response);\n });\n }\n\n $scope.loadDriverByClass = function (driverClass) {\n const foundDriver = $scope.supportedDriversData\n .find((driver) => driver.driverClass === driverClass);\n if (foundDriver) {\n $scope.copyDriverProperties(foundDriver);\n }\n return foundDriver;\n };\n\n $scope.selectDriverByType = function (driverType) {\n $scope.copyDriverProperties($scope.supportedDriversData\n .find((driver) => driver.driverType === driverType));\n // Call concatURL with proper labelName to apply changes to url field\n $scope.concatURL('hostName', $scope);\n };\n\n $scope.copyDriverProperties = function (driver) {\n $scope.selectedDriver.driverType = driver.driverType;\n $scope.selectedDriver.jdbc.driverClass = driver.driverClass;\n $scope.selectedDriver.jdbc.url = driver.urlTemplate;\n $scope.selectedDriver.urlTemplate = driver.urlTemplate;\n $scope.selectedDriver.downloadDriverUrl = driver.downloadDriverUrl;\n $scope.selectedDriver.portRequired = driver.portRequired;\n $scope.classAvailable = driver.classAvailable;\n };\n\n $scope.isReadOnly = function (labelName) {\n return labelName === 'driverClass' || labelName === 'url';\n }\n\n $scope.editFile = function(file) {\n const modalInstance = $uibModal.open({\n templateUrl: 'js/angular/templates/modal/editRepoFile.html',\n controller: 'EditRepositoryFileCtrl',\n resolve: {\n file: function () {\n return $scope.repositoryInfo.params[file] ? $scope.repositoryInfo.params[file].value : '';\n }\n }\n });\n\n modalInstance.result.then(function (data) {\n // send data to backend\n RepositoriesRestService.updateRepositoryFileContent(data.fileLocation, data.content, $scope.repositoryInfo.location).success(function(result) {\n $scope.ontopRepoFileNames[file] = getFileName(result.fileLocation);\n $scope.repositoryInfo.params[file].value = result.fileLocation;\n }).error(function (error) {\n showErrorMsg($translate.instant('common.error'), error);\n })\n });\n }\n\n $scope.uploadOntopRepoFile = function(files, param) {\n if (files && files.length) {\n $scope.uploadFile = files[0];\n $scope.uploadFileLoader = true;\n Upload.upload({\n url: 'rest/repositories/file/upload',\n data: {file: $scope.uploadFile, location: $scope.repositoryInfo.location}\n })\n .success(function (data) {\n if (!data.success) {\n toastr.error(data.errorMessage);\n } else {\n $scope.ontopRepoFileNames[param] = $scope.uploadFile.name;\n $scope.repositoryInfo.params[param].value = data.fileLocation;\n }\n $scope.uploadFileLoader = false;\n }).error(function (data) {\n showErrorMsg($translate.instant('common.error'), data);\n $scope.uploadFile = '';\n $scope.uploadFileLoader = false;\n });\n }\n }\n\n $scope.concatURL = function(labelName) {\n if (labelName === 'hostName' || labelName === 'port' || labelName === 'databaseName') {\n let result = $scope.selectedDriver.urlTemplate;\n if ($scope.selectedDriver.jdbc.hostName) {\n if ($scope.selectedDriver.jdbc.port) {\n result = result.replace('{hostport}',\n `${$scope.selectedDriver.jdbc.hostName}:${$scope.selectedDriver.jdbc.port}`);\n } else {\n result = result.replace('{hostport}', $scope.selectedDriver.jdbc.hostName);\n }\n }\n\n if ($scope.selectedDriver.jdbc.databaseName) {\n result = result.replace('{database}', $scope.selectedDriver.jdbc.databaseName);\n }\n\n $scope.selectedDriver.jdbc.url = result;\n }\n }\n\n $scope.getInputType = function (labelName) {\n switch (labelName) {\n case 'password':\n return 'password';\n case 'port':\n return 'number';\n default:\n return 'text';\n }\n }\n\n $scope.checkForRequiredOntopFiles = function () {\n // Should guarantee that code will be executed in sequential manner,\n // because properties file is not created yet\n return updateProperties()\n .then(function () {\n const missingRequired = REQUIRED_ONTOP_REPO_PARAMS.filter(function (requiredFile) {\n return !$scope.repositoryInfo.params[requiredFile].value;\n });\n if (missingRequired.length > 0) {\n toastr.error($translate.instant('ontop.repo.missing.required.file.error'));\n return Promise.reject($translate.instant('ontop.repo.missing.required.file.error'));\n }\n return Promise.resolve();\n });\n }\n\n function loadPropertiesFile() {\n RepositoriesRestService.loadPropertiesFile($scope.repositoryInfo.params[$scope.propertiesFile].value, $scope.repositoryInfo.location)\n .success(function (driverData) {\n const driver = $scope.loadDriverByClass(driverData.driverClass);\n // If driver class is not found means that the selected driver is a GENERIC ONE\n if (driver) {\n $scope.selectedDriver.jdbc.hostName = driverData.hostName;\n $scope.selectedDriver.jdbc.port = parseInt(driverData.port);\n $scope.selectedDriver.jdbc.databaseName = driverData.databaseName;\n $scope.selectedDriver.jdbc.userName = driverData.userName;\n $scope.selectedDriver.jdbc.password = driverData.password;\n $scope.selectedDriver.jdbc.url = driverData.url;\n }\n }).error(function (data) {\n showErrorMsg($translate.instant('common.error'), data);\n $scope.uploadFileLoader = false;\n });\n }\n\n $scope.validateOntopPropertiesConnection = function () {\n updateProperties()\n .then(function () {\n RepositoriesRestService.validateOntopPropertiesConnection($scope.repositoryInfo)\n .success(function () {\n toastr.success($translate.instant('ontop.repo.successful.connection.msg'));\n }).error(function (data) {\n showErrorMsg($translate.instant('ontop.repo.failed.to.connect'), data);\n });\n });\n }\n\n $scope.isOntopRepoFileUploaded = function() {\n return $scope.repositoryInfo.params.propertiesFile &&\n $scope.repositoryInfo.params.propertiesFile.value.length > 0\n };\n\n function missingRequiredField() {\n const missing = REQUIRED_PROPERTIES_FIELD_PARAMS\n .filter(function (requiredField) {\n return !$scope.selectedDriver.jdbc[requiredField]\n });\n if (missing.length > 0) {\n toastr.error($translate.instant('missing.required.field.error'));\n return true;\n }\n return false;\n }\n\n function updateProperties() {\n if ($scope.selectedDriver.driverType !== $scope.genericDriverType) {\n if (missingRequiredField()) {\n return Promise.reject($translate.instant('missing.required.field.error'));\n }\n return updatePropertiesFile();\n }\n return Promise.resolve();\n }\n\n function updatePropertiesFile() {\n $scope.uploadFileLoader = true;\n return RepositoriesRestService\n .updatePropertiesFile($scope.repositoryInfo.params[$scope.propertiesFile].value, $scope.selectedDriver.jdbc, $scope.repositoryInfo.location)\n .success(function (data) {\n $scope.ontopRepoFileNames[$scope.propertiesFile] = getFileName(data.fileLocation);\n $scope.repositoryInfo.params[$scope.propertiesFile].value = data.fileLocation;\n $scope.uploadFileLoader = false;\n }).error(function (data) {\n showErrorMsg($translate.instant('common.error'), data);\n $scope.uploadFileLoader = false;\n });\n }\n\n $scope.isRequiredOntopRepoFile = function(file) {\n return REQUIRED_ONTOP_REPO_PARAMS.indexOf(file) > -1;\n };\n\n $scope.isRequiredField = function (field) {\n return REQUIRED_PROPERTIES_FIELD_PARAMS.indexOf(field) > -1\n || field === 'port' && $scope.selectedDriver.portRequired;\n };\n\n $scope.getFieldTooltip = function (field) {\n if (field === 'port' && $scope.selectedDriver.portRequired) {\n field = 'portIfRequired';\n }\n return $translate.instant('repoTooltips.ontop.' + field);\n };\n\n $scope.editOntopRepo = function () {\n $scope.checkForRequiredOntopFiles()\n .then(function () {\n $scope.editRepository();\n }).catch(function (err) {\n // The catch block is empty, because error is handled in promise\n });\n }\n\n $scope.createOntopRepo = function () {\n if (!$scope.repositoryInfo.id) {\n toastr.error($translate.instant('empty.repoid.warning'));\n return;\n }\n\n $scope.checkForRequiredOntopFiles()\n .then(function () {\n $scope.createRepo();\n }).catch(function (err) {\n // The catch block is empty, because error is handled in promise\n });\n };\n\n $scope.goBackToPrevious = function () {\n $scope.goBackToPreviousLocation();\n }\n\n function showErrorMsg (title, data) {\n const msg = getError(data);\n toastr.error(msg, title);\n }\n\n getSupportedDriversData()\n .then(function () {\n if ($scope.editRepoPage) {\n loadPropertiesFile();\n }\n });\n }\n}\n"],"sourceRoot":""}
1
+ {"version":3,"sources":["webpack:///./src/js/angular/repositories/ontop-repo.directive.js"],"names":["ontopRepoDirective","$uibModal","RepositoriesRestService","toastr","Upload","$translate","restrict","scope","templateUrl","link","$scope","selectedDriver","driverType","driverName","jdbc","hostName","port","databaseName","userName","password","driverClass","url","urlTemplate","downloadDriverUrl","ontopRepoFileNames","supportedDriversData","ontopRepoFileLabels","propertiesFile","obdaFile","owlFile","constraintFile","dbMetadataFile","ontopRepoFiles","Object","keys","forEach","key","repositoryInfo","params","value","supportedDriverLabels","propertiesFileParams","classAvailable","genericDriverType","REQUIRED_ONTOP_REPO_PARAMS","REQUIRED_PROPERTIES_FIELD_PARAMS","updateProperties","filter","requiredField","length","error","instant","Promise","reject","uploadFileLoader","updatePropertiesFile","location","success","data","fileLocation","showErrorMsg","resolve","title","msg","getError","loadDriverByClass","foundDriver","find","driver","copyDriverProperties","selectDriverByType","concatURL","portRequired","isReadOnly","labelName","editFile","file","open","controller","result","then","updateRepositoryFileContent","content","uploadOntopRepoFile","files","param","uploadFile","upload","name","errorMessage","replace","getInputType","checkForRequiredOntopFiles","requiredFile","validateOntopPropertiesConnection","isOntopRepoFileUploaded","isRequiredOntopRepoFile","indexOf","isRequiredField","field","getFieldTooltip","editOntopRepo","editRepository","catch","err","createOntopRepo","id","createRepo","goBackToPrevious","goBackToPreviousLocation","getSupportedDriversData","response","editRepoPage","loadPropertiesFile","driverData","parseInt","angular","module","directive","$inject"],"mappings":"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","file":"108.d61b0e4a54e1d0e6550d.bundle.js","sourcesContent":["import {getFileName} from \"./controllers\";\n\nangular\n .module('graphdb.framework.repositories.ontop-repo.directive', [])\n .directive('ontopRepo', ontopRepoDirective);\n\nontopRepoDirective.$inject = ['$uibModal', 'RepositoriesRestService', 'toastr', 'Upload', '$translate'];\n\nfunction ontopRepoDirective($uibModal, RepositoriesRestService, toastr, Upload, $translate) {\n return {\n restrict: 'E',\n scope: false,\n templateUrl: 'js/angular/repositories/templates/ontop-repo.html',\n\n link: linkFunc\n };\n\n function linkFunc($scope) {\n\n $scope.selectedDriver = {\n driverType: \"generic\",\n driverName: \"Generic JDBC Driver\",\n jdbc: {\n hostName: \"\",\n port: \"\",\n databaseName: \"\",\n userName: \"\",\n password: \"\",\n driverClass: \"\",\n url: \"\"\n },\n urlTemplate: \"\",\n downloadDriverUrl: \"\"\n };\n $scope.ontopRepoFileNames = {};\n $scope.supportedDriversData = [];\n $scope.ontopRepoFileLabels =\n {propertiesFile: 'JDBC properties', obdaFile: 'OBDA or R2RML', owlFile: 'ontology file',\n constraintFile: 'constraint file', dbMetadataFile: 'DB metadata file'};\n $scope.ontopRepoFiles = Object.keys($scope.ontopRepoFileLabels);\n $scope.ontopRepoFiles.forEach(function(key) {\n if ($scope.repositoryInfo.params[key]) {\n $scope.ontopRepoFileNames[key] = getFileName($scope.repositoryInfo.params[key].value);\n }\n });\n $scope.supportedDriverLabels = {hostName: 'Hostname', port: \"Port\", databaseName: 'Database name',\n userName: 'Username', password: 'Password', driverClass: 'Driver class', url: 'URL'};\n $scope.propertiesFileParams = Object.keys($scope.supportedDriverLabels);\n $scope.classAvailable = false;\n $scope.genericDriverType = 'generic';\n $scope.propertiesFile = 'propertiesFile';\n\n const REQUIRED_ONTOP_REPO_PARAMS = [$scope.propertiesFile, 'obdaFile'];\n const REQUIRED_PROPERTIES_FIELD_PARAMS = ['hostName', 'databaseName', 'userName'];\n\n function getSupportedDriversData() {\n return RepositoriesRestService.getSupportedDriversData($scope.repositoryInfo)\n .success(function (response) {\n $scope.supportedDriversData = response;\n }).error(function (response) {\n showErrorMsg($translate.instant('common.error'), response);\n });\n }\n\n $scope.loadDriverByClass = function (driverClass) {\n const foundDriver = $scope.supportedDriversData\n .find((driver) => driver.driverClass === driverClass);\n if (foundDriver) {\n $scope.copyDriverProperties(foundDriver);\n }\n return foundDriver;\n };\n\n $scope.selectDriverByType = function (driverType) {\n $scope.copyDriverProperties($scope.supportedDriversData\n .find((driver) => driver.driverType === driverType));\n // Call concatURL with proper labelName to apply changes to url field\n $scope.concatURL('hostName', $scope);\n };\n\n $scope.copyDriverProperties = function (driver) {\n $scope.selectedDriver.driverType = driver.driverType;\n $scope.selectedDriver.jdbc.driverClass = driver.driverClass;\n $scope.selectedDriver.jdbc.url = driver.urlTemplate;\n $scope.selectedDriver.urlTemplate = driver.urlTemplate;\n $scope.selectedDriver.downloadDriverUrl = driver.downloadDriverUrl;\n $scope.selectedDriver.portRequired = driver.portRequired;\n $scope.classAvailable = driver.classAvailable;\n };\n\n $scope.isReadOnly = function (labelName) {\n return labelName === 'driverClass' || labelName === 'url';\n }\n\n $scope.editFile = function(file) {\n const modalInstance = $uibModal.open({\n templateUrl: 'js/angular/templates/modal/editRepoFile.html',\n controller: 'EditRepositoryFileCtrl',\n resolve: {\n file: function () {\n return $scope.repositoryInfo.params[file] ? $scope.repositoryInfo.params[file].value : '';\n }\n }\n });\n\n modalInstance.result.then(function (data) {\n // send data to backend\n RepositoriesRestService.updateRepositoryFileContent(data.fileLocation, data.content, $scope.repositoryInfo.location).success(function(result) {\n $scope.ontopRepoFileNames[file] = getFileName(result.fileLocation);\n $scope.repositoryInfo.params[file].value = result.fileLocation;\n }).error(function (error) {\n showErrorMsg($translate.instant('common.error'), error);\n })\n });\n }\n\n $scope.uploadOntopRepoFile = function(files, param) {\n if (files && files.length) {\n $scope.uploadFile = files[0];\n $scope.uploadFileLoader = true;\n Upload.upload({\n url: 'rest/repositories/file/upload',\n data: {file: $scope.uploadFile, location: $scope.repositoryInfo.location}\n })\n .success(function (data) {\n if (!data.success) {\n toastr.error(data.errorMessage);\n } else {\n $scope.ontopRepoFileNames[param] = $scope.uploadFile.name;\n $scope.repositoryInfo.params[param].value = data.fileLocation;\n }\n $scope.uploadFileLoader = false;\n }).error(function (data) {\n showErrorMsg($translate.instant('common.error'), data);\n $scope.uploadFile = '';\n $scope.uploadFileLoader = false;\n });\n }\n }\n\n $scope.concatURL = function(labelName) {\n if (labelName === 'hostName' || labelName === 'port' || labelName === 'databaseName') {\n let result = $scope.selectedDriver.urlTemplate;\n if ($scope.selectedDriver.jdbc.hostName) {\n if ($scope.selectedDriver.jdbc.port) {\n result = result.replace('{hostport}',\n `${$scope.selectedDriver.jdbc.hostName}:${$scope.selectedDriver.jdbc.port}`);\n } else {\n result = result.replace('{hostport}', $scope.selectedDriver.jdbc.hostName);\n }\n }\n\n if ($scope.selectedDriver.jdbc.databaseName) {\n result = result.replace('{database}', $scope.selectedDriver.jdbc.databaseName);\n }\n\n $scope.selectedDriver.jdbc.url = result;\n }\n }\n\n $scope.getInputType = function (labelName) {\n switch (labelName) {\n case 'password':\n return 'password';\n case 'port':\n return 'number';\n default:\n return 'text';\n }\n }\n\n $scope.checkForRequiredOntopFiles = function () {\n // Should guarantee that code will be executed in sequential manner,\n // because properties file is not created yet\n return updateProperties()\n .then(function () {\n const missingRequired = REQUIRED_ONTOP_REPO_PARAMS.filter(function (requiredFile) {\n return !$scope.repositoryInfo.params[requiredFile].value;\n });\n if (missingRequired.length > 0) {\n toastr.error($translate.instant('ontop.repo.missing.required.file.error'));\n return Promise.reject($translate.instant('ontop.repo.missing.required.file.error'));\n }\n return Promise.resolve();\n });\n }\n\n function loadPropertiesFile() {\n RepositoriesRestService.loadPropertiesFile($scope.repositoryInfo.params[$scope.propertiesFile].value, $scope.repositoryInfo.location)\n .success(function (driverData) {\n const driver = $scope.loadDriverByClass(driverData.driverClass);\n // If driver class is not found means that the selected driver is a GENERIC ONE\n if (driver) {\n $scope.selectedDriver.jdbc.hostName = driverData.hostName;\n $scope.selectedDriver.jdbc.port = parseInt(driverData.port);\n $scope.selectedDriver.jdbc.databaseName = driverData.databaseName;\n $scope.selectedDriver.jdbc.userName = driverData.userName;\n $scope.selectedDriver.jdbc.password = driverData.password;\n $scope.selectedDriver.jdbc.url = driverData.url;\n }\n }).error(function (data) {\n showErrorMsg($translate.instant('common.error'), data);\n $scope.uploadFileLoader = false;\n });\n }\n\n $scope.validateOntopPropertiesConnection = function () {\n updateProperties()\n .then(function () {\n RepositoriesRestService.validateOntopPropertiesConnection($scope.repositoryInfo)\n .success(function () {\n toastr.success($translate.instant('ontop.repo.successful.connection.msg'));\n }).error(function (data) {\n showErrorMsg($translate.instant('ontop.repo.failed.to.connect'), data);\n });\n });\n }\n\n $scope.isOntopRepoFileUploaded = function() {\n return $scope.repositoryInfo.params.propertiesFile &&\n $scope.repositoryInfo.params.propertiesFile.value.length > 0\n };\n\n function missingRequiredField() {\n const missing = REQUIRED_PROPERTIES_FIELD_PARAMS\n .filter(function (requiredField) {\n return !$scope.selectedDriver.jdbc[requiredField]\n });\n if (missing.length > 0) {\n toastr.error($translate.instant('missing.required.field.error'));\n return true;\n }\n return false;\n }\n\n function updateProperties() {\n if ($scope.selectedDriver.driverType !== $scope.genericDriverType) {\n if (missingRequiredField()) {\n return Promise.reject($translate.instant('missing.required.field.error'));\n }\n return updatePropertiesFile();\n }\n return Promise.resolve();\n }\n\n function updatePropertiesFile() {\n $scope.uploadFileLoader = true;\n return RepositoriesRestService\n .updatePropertiesFile($scope.repositoryInfo.params[$scope.propertiesFile].value, $scope.selectedDriver.jdbc, $scope.repositoryInfo.location)\n .success(function (data) {\n $scope.ontopRepoFileNames[$scope.propertiesFile] = getFileName(data.fileLocation);\n $scope.repositoryInfo.params[$scope.propertiesFile].value = data.fileLocation;\n $scope.uploadFileLoader = false;\n }).error(function (data) {\n showErrorMsg($translate.instant('common.error'), data);\n $scope.uploadFileLoader = false;\n });\n }\n\n $scope.isRequiredOntopRepoFile = function(file) {\n return REQUIRED_ONTOP_REPO_PARAMS.indexOf(file) > -1;\n };\n\n $scope.isRequiredField = function (field) {\n return REQUIRED_PROPERTIES_FIELD_PARAMS.indexOf(field) > -1\n || field === 'port' && $scope.selectedDriver.portRequired;\n };\n\n $scope.getFieldTooltip = function (field) {\n if (field === 'port' && $scope.selectedDriver.portRequired) {\n field = 'portIfRequired';\n }\n return $translate.instant('repoTooltips.ontop.' + field);\n };\n\n $scope.editOntopRepo = function () {\n $scope.checkForRequiredOntopFiles()\n .then(function () {\n $scope.editRepository();\n }).catch(function (err) {\n // The catch block is empty, because error is handled in promise\n });\n }\n\n $scope.createOntopRepo = function () {\n if (!$scope.repositoryInfo.id) {\n toastr.error($translate.instant('empty.repoid.warning'));\n return;\n }\n\n $scope.checkForRequiredOntopFiles()\n .then(function () {\n $scope.createRepo();\n }).catch(function (err) {\n // The catch block is empty, because error is handled in promise\n });\n };\n\n $scope.goBackToPrevious = function () {\n $scope.goBackToPreviousLocation();\n }\n\n function showErrorMsg (title, data) {\n const msg = getError(data);\n toastr.error(msg, title);\n }\n\n getSupportedDriversData()\n .then(function () {\n if ($scope.editRepoPage) {\n loadPropertiesFile();\n }\n });\n }\n}\n"],"sourceRoot":""}