graphdb-workbench 2.1.2 → 2.1.3-TR1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (189) hide show
  1. package/dist/{0.1bd9b49fd9f95db7afda.bundle.js → 0.6f85dbec9122f837f5e7.bundle.js} +3 -3
  2. package/dist/0.6f85dbec9122f837f5e7.bundle.js.map +1 -0
  3. package/dist/{10.cabc799d9aabc46e7be7.bundle.js → 10.0d7e127640f8c0678145.bundle.js} +2 -2
  4. package/dist/{10.cabc799d9aabc46e7be7.bundle.js.map → 10.0d7e127640f8c0678145.bundle.js.map} +1 -1
  5. package/dist/{100.24bbc960b22ec8f26f68.bundle.js → 100.8a2c21d9df10d17f9291.bundle.js} +2 -2
  6. package/dist/{100.24bbc960b22ec8f26f68.bundle.js.map → 100.8a2c21d9df10d17f9291.bundle.js.map} +1 -1
  7. package/dist/{11.b2fd98471071348c3964.bundle.js → 11.c8ad938cfc97d57b4d9e.bundle.js} +2 -2
  8. package/dist/{11.b2fd98471071348c3964.bundle.js.map → 11.c8ad938cfc97d57b4d9e.bundle.js.map} +1 -1
  9. package/dist/{110.7419abdcd9b1e7b062ad.bundle.js → 110.4c6719423e79f089e594.bundle.js} +2 -2
  10. package/dist/{110.7419abdcd9b1e7b062ad.bundle.js.map → 110.4c6719423e79f089e594.bundle.js.map} +1 -1
  11. package/dist/{111.87635664a5306fc0c6bb.bundle.js → 111.93eb21f8bd85a9ef5d1b.bundle.js} +2 -2
  12. package/dist/{111.87635664a5306fc0c6bb.bundle.js.map → 111.93eb21f8bd85a9ef5d1b.bundle.js.map} +1 -1
  13. package/dist/{113.2a67bc73a80f0bbf6397.bundle.js → 113.b77f2a783cadc7a2d428.bundle.js} +2 -2
  14. package/dist/{113.2a67bc73a80f0bbf6397.bundle.js.map → 113.b77f2a783cadc7a2d428.bundle.js.map} +1 -1
  15. package/dist/114.db473421180e7bce6495.bundle.js +2 -0
  16. package/dist/114.db473421180e7bce6495.bundle.js.map +1 -0
  17. package/dist/{115.6751a154fb77d1efeec8.bundle.js → 115.00597ad4f535ccc61e03.bundle.js} +2 -2
  18. package/dist/{115.6751a154fb77d1efeec8.bundle.js.map → 115.00597ad4f535ccc61e03.bundle.js.map} +1 -1
  19. package/dist/{116.75f79d13526f131b61f0.bundle.js → 116.7a3c48b8b4348e54c7fd.bundle.js} +2 -2
  20. package/dist/{116.75f79d13526f131b61f0.bundle.js.map → 116.7a3c48b8b4348e54c7fd.bundle.js.map} +1 -1
  21. package/dist/{117.17c60bd040eada2f965d.bundle.js → 117.49b3141cc6594af99fbf.bundle.js} +2 -2
  22. package/dist/{117.17c60bd040eada2f965d.bundle.js.map → 117.49b3141cc6594af99fbf.bundle.js.map} +1 -1
  23. package/dist/{118.fc48834f75995ef9202f.bundle.js → 118.e1ebd5f3d7cf4f8e013a.bundle.js} +2 -2
  24. package/dist/{118.fc48834f75995ef9202f.bundle.js.map → 118.e1ebd5f3d7cf4f8e013a.bundle.js.map} +1 -1
  25. package/dist/{119.44cc6552449537efa8f5.bundle.js → 119.0427b867fee545388a66.bundle.js} +2 -2
  26. package/dist/{119.44cc6552449537efa8f5.bundle.js.map → 119.0427b867fee545388a66.bundle.js.map} +1 -1
  27. package/dist/{12.c008cc99a0d358fd58b7.bundle.js → 12.6bd2906fb955b8456713.bundle.js} +3 -3
  28. package/dist/{12.c008cc99a0d358fd58b7.bundle.js.map → 12.6bd2906fb955b8456713.bundle.js.map} +1 -1
  29. package/dist/{120.8f48d9b3f8071e4c42fd.bundle.js → 120.923b20db8c2c297742d8.bundle.js} +2 -2
  30. package/dist/{120.8f48d9b3f8071e4c42fd.bundle.js.map → 120.923b20db8c2c297742d8.bundle.js.map} +1 -1
  31. package/dist/13.d7290e4e69a54c71e974.bundle.js +3 -0
  32. package/dist/13.d7290e4e69a54c71e974.bundle.js.map +1 -0
  33. package/dist/136.3199d393576be61f53fd.bundle.js +1 -1
  34. package/dist/136.3199d393576be61f53fd.bundle.js.map +1 -1
  35. package/dist/14.638a884323fe9235b58f.bundle.js +2 -0
  36. package/dist/14.638a884323fe9235b58f.bundle.js.map +1 -0
  37. package/dist/{15.e870cbcf6346cc68bd66.bundle.js → 15.244542a39d9296cc4fd8.bundle.js} +2 -2
  38. package/dist/{15.e870cbcf6346cc68bd66.bundle.js.map → 15.244542a39d9296cc4fd8.bundle.js.map} +1 -1
  39. package/dist/{16.23e12f234078c8777ed0.bundle.js → 16.3b52e17f123523d84054.bundle.js} +2 -2
  40. package/dist/{16.23e12f234078c8777ed0.bundle.js.map → 16.3b52e17f123523d84054.bundle.js.map} +1 -1
  41. package/dist/{17.d1ac5f88f9ef9ee1c789.bundle.js → 17.a417430fca1e34e80912.bundle.js} +2 -2
  42. package/dist/{17.d1ac5f88f9ef9ee1c789.bundle.js.map → 17.a417430fca1e34e80912.bundle.js.map} +1 -1
  43. package/dist/{18.63478730d60e02069d90.bundle.js → 18.d6e541cf8e651a6d223e.bundle.js} +2 -2
  44. package/dist/{18.63478730d60e02069d90.bundle.js.map → 18.d6e541cf8e651a6d223e.bundle.js.map} +1 -1
  45. package/dist/19.b5b3699a309774176fc3.bundle.js +1 -1
  46. package/dist/19.b5b3699a309774176fc3.bundle.js.map +1 -1
  47. package/dist/{20.d707dfb57f695469ffaa.bundle.js → 20.a40b79082e0f2a9b3511.bundle.js} +2 -2
  48. package/dist/{20.d707dfb57f695469ffaa.bundle.js.map → 20.a40b79082e0f2a9b3511.bundle.js.map} +1 -1
  49. package/dist/{22.e1562d53daf95dd1fdca.bundle.js → 22.5f70a951e87768500861.bundle.js} +2 -2
  50. package/dist/{22.e1562d53daf95dd1fdca.bundle.js.map → 22.5f70a951e87768500861.bundle.js.map} +1 -1
  51. package/dist/{23.c1b822e6ccc61632355b.bundle.js → 23.3b94ee5770665e9f7ad6.bundle.js} +2 -2
  52. package/dist/{23.c1b822e6ccc61632355b.bundle.js.map → 23.3b94ee5770665e9f7ad6.bundle.js.map} +1 -1
  53. package/dist/{25.8c30b7bafb4875a3cc51.bundle.js → 25.7d9b6d389e1b3c30a2af.bundle.js} +2 -2
  54. package/dist/{25.8c30b7bafb4875a3cc51.bundle.js.map → 25.7d9b6d389e1b3c30a2af.bundle.js.map} +1 -1
  55. package/dist/26.176ffe2071a8d5d382b6.bundle.js +1 -1
  56. package/dist/26.176ffe2071a8d5d382b6.bundle.js.map +1 -1
  57. package/dist/{27.be71055c959c1ac75177.bundle.js → 27.5f249c88f0d56e478227.bundle.js} +2 -2
  58. package/dist/{27.be71055c959c1ac75177.bundle.js.map → 27.5f249c88f0d56e478227.bundle.js.map} +1 -1
  59. package/dist/{29.54cbff989a44a0f71dfd.bundle.js → 29.263746fd089adc12c9eb.bundle.js} +2 -2
  60. package/dist/{29.54cbff989a44a0f71dfd.bundle.js.map → 29.263746fd089adc12c9eb.bundle.js.map} +1 -1
  61. package/dist/31.4ecdb66b2c224a63525e.bundle.js +1 -1
  62. package/dist/31.4ecdb66b2c224a63525e.bundle.js.map +1 -1
  63. package/dist/{32.2582e2eccf29e8d5ec80.bundle.js → 32.31e5cd1ae5b1b26d0bc9.bundle.js} +2 -2
  64. package/dist/{32.2582e2eccf29e8d5ec80.bundle.js.map → 32.31e5cd1ae5b1b26d0bc9.bundle.js.map} +1 -1
  65. package/dist/34.024934549565ec56f905.bundle.js +2 -0
  66. package/dist/34.024934549565ec56f905.bundle.js.map +1 -0
  67. package/dist/{37.ef412d4cbc60967faa5e.bundle.js → 37.48944284f495dd519b6b.bundle.js} +2 -2
  68. package/dist/{37.ef412d4cbc60967faa5e.bundle.js.map → 37.48944284f495dd519b6b.bundle.js.map} +1 -1
  69. package/dist/{39.be2d8c75e4ab391ba984.bundle.js → 39.cd39b4ee76d8238325b0.bundle.js} +2 -2
  70. package/dist/{39.be2d8c75e4ab391ba984.bundle.js.map → 39.cd39b4ee76d8238325b0.bundle.js.map} +1 -1
  71. package/dist/{40.9272ebe1d2246ae3054f.bundle.js → 40.ba69b25514acd93c43c1.bundle.js} +2 -2
  72. package/dist/{40.9272ebe1d2246ae3054f.bundle.js.map → 40.ba69b25514acd93c43c1.bundle.js.map} +1 -1
  73. package/dist/{41.f69dd805b7e51756518f.bundle.js → 41.97280c0900f9b44ab8aa.bundle.js} +2 -2
  74. package/dist/{41.f69dd805b7e51756518f.bundle.js.map → 41.97280c0900f9b44ab8aa.bundle.js.map} +1 -1
  75. package/dist/43.166d4f55ba11d29b26ce.bundle.js +2 -0
  76. package/dist/43.166d4f55ba11d29b26ce.bundle.js.map +1 -0
  77. package/dist/46.c417c82de953a16f7489.bundle.js +2 -0
  78. package/dist/{46.a9d1c07290ab98930744.bundle.js.map → 46.c417c82de953a16f7489.bundle.js.map} +1 -1
  79. package/dist/{48.3c8d17c03f3fc081be89.bundle.js → 48.1c439f5ade00b986bb85.bundle.js} +2 -2
  80. package/dist/{48.3c8d17c03f3fc081be89.bundle.js.map → 48.1c439f5ade00b986bb85.bundle.js.map} +1 -1
  81. package/dist/{55.10bb020070b8c5910e4c.bundle.js → 55.80d6a899d8af7d382755.bundle.js} +2 -2
  82. package/dist/{55.10bb020070b8c5910e4c.bundle.js.map → 55.80d6a899d8af7d382755.bundle.js.map} +1 -1
  83. package/dist/{57.f432e4a7f6dbf5fa9e6e.bundle.js → 57.ff1a43af23df1c3e9eb6.bundle.js} +2 -2
  84. package/dist/{57.f432e4a7f6dbf5fa9e6e.bundle.js.map → 57.ff1a43af23df1c3e9eb6.bundle.js.map} +1 -1
  85. package/dist/{59.feebf4602360cb8257bb.bundle.js → 59.21763503ec43ce516ba9.bundle.js} +2 -2
  86. package/dist/{59.feebf4602360cb8257bb.bundle.js.map → 59.21763503ec43ce516ba9.bundle.js.map} +1 -1
  87. package/dist/{67.58d8539fcac19288b820.bundle.js → 67.d3301189c6f359502b7a.bundle.js} +2 -2
  88. package/dist/{67.58d8539fcac19288b820.bundle.js.map → 67.d3301189c6f359502b7a.bundle.js.map} +1 -1
  89. package/dist/{70.ede527b8438e19a67ebc.bundle.js → 70.bab18e599872f9ceb5bb.bundle.js} +2 -2
  90. package/dist/{70.ede527b8438e19a67ebc.bundle.js.map → 70.bab18e599872f9ceb5bb.bundle.js.map} +1 -1
  91. package/dist/{71.2ddcb945966fd051a3a1.bundle.js → 71.496a9c92cd02ea797086.bundle.js} +2 -2
  92. package/dist/{71.2ddcb945966fd051a3a1.bundle.js.map → 71.496a9c92cd02ea797086.bundle.js.map} +1 -1
  93. package/dist/{72.d2f8a53e83efcb8ab953.bundle.js → 72.e74783723284db9f1039.bundle.js} +2 -2
  94. package/dist/{72.d2f8a53e83efcb8ab953.bundle.js.map → 72.e74783723284db9f1039.bundle.js.map} +1 -1
  95. package/dist/{73.c29f06e5825684d56a9c.bundle.js → 73.c5ea427972a9d61d8bcf.bundle.js} +2 -2
  96. package/dist/{73.c29f06e5825684d56a9c.bundle.js.map → 73.c5ea427972a9d61d8bcf.bundle.js.map} +1 -1
  97. package/dist/{74.b50a23c1751e0fc30aec.bundle.js → 74.87400dce971708ada9bc.bundle.js} +2 -2
  98. package/dist/{74.b50a23c1751e0fc30aec.bundle.js.map → 74.87400dce971708ada9bc.bundle.js.map} +1 -1
  99. package/dist/{75.4f9197361b6427d97b6c.bundle.js → 75.f7026115ff4d35c53061.bundle.js} +2 -2
  100. package/dist/{75.4f9197361b6427d97b6c.bundle.js.map → 75.f7026115ff4d35c53061.bundle.js.map} +1 -1
  101. package/dist/{76.467d072ae323ab41fd3d.bundle.js → 76.7ed7e2f7802914105a2b.bundle.js} +2 -2
  102. package/dist/{76.467d072ae323ab41fd3d.bundle.js.map → 76.7ed7e2f7802914105a2b.bundle.js.map} +1 -1
  103. package/dist/{77.41a60a354d0fb3103b00.bundle.js → 77.8df8d6516be14b18a7c2.bundle.js} +2 -2
  104. package/dist/{77.41a60a354d0fb3103b00.bundle.js.map → 77.8df8d6516be14b18a7c2.bundle.js.map} +1 -1
  105. package/dist/{78.7de8a0f70f6dc1debd05.bundle.js → 78.3d0eba733bb5b528ee23.bundle.js} +2 -2
  106. package/dist/{78.7de8a0f70f6dc1debd05.bundle.js.map → 78.3d0eba733bb5b528ee23.bundle.js.map} +1 -1
  107. package/dist/{79.2f8b2ebcbd07d466c913.bundle.js → 79.f2adb62d49e1ff69c73d.bundle.js} +2 -2
  108. package/dist/{79.2f8b2ebcbd07d466c913.bundle.js.map → 79.f2adb62d49e1ff69c73d.bundle.js.map} +1 -1
  109. package/dist/{8.b21d6a5c1a9412deb34f.bundle.js → 8.fd2fec54b66b2afe1253.bundle.js} +2 -2
  110. package/dist/8.fd2fec54b66b2afe1253.bundle.js.map +1 -0
  111. package/dist/{80.8e71a1aaf3beb2320bf0.bundle.js → 80.40f6ab44b0f5a37f1f1b.bundle.js} +2 -2
  112. package/dist/{80.8e71a1aaf3beb2320bf0.bundle.js.map → 80.40f6ab44b0f5a37f1f1b.bundle.js.map} +1 -1
  113. package/dist/{81.2939c5d2b47cf48be6d5.bundle.js → 81.63bb784ce719c97dccc2.bundle.js} +2 -2
  114. package/dist/{81.2939c5d2b47cf48be6d5.bundle.js.map → 81.63bb784ce719c97dccc2.bundle.js.map} +1 -1
  115. package/dist/{82.69913e9f45a1dd96c6be.bundle.js → 82.f722c4f985e7c7375b7d.bundle.js} +2 -2
  116. package/dist/{82.69913e9f45a1dd96c6be.bundle.js.map → 82.f722c4f985e7c7375b7d.bundle.js.map} +1 -1
  117. package/dist/83.73515cde0a2215275d32.bundle.js +1 -1
  118. package/dist/83.73515cde0a2215275d32.bundle.js.map +1 -1
  119. package/dist/{84.5e89f3253c2c5885f662.bundle.js → 84.ed814bb2e6caa09eaf59.bundle.js} +2 -2
  120. package/dist/{84.5e89f3253c2c5885f662.bundle.js.map → 84.ed814bb2e6caa09eaf59.bundle.js.map} +1 -1
  121. package/dist/{85.f6ae072160876c4c5beb.bundle.js → 85.c1a85a647349f948774e.bundle.js} +2 -2
  122. package/dist/{85.f6ae072160876c4c5beb.bundle.js.map → 85.c1a85a647349f948774e.bundle.js.map} +1 -1
  123. package/dist/{88.4bfa7b74511d52c5c42f.bundle.js → 88.d3afc4e8e2613c803b60.bundle.js} +2 -2
  124. package/dist/{88.4bfa7b74511d52c5c42f.bundle.js.map → 88.d3afc4e8e2613c803b60.bundle.js.map} +1 -1
  125. package/dist/{89.6e767bc84921c435570c.bundle.js → 89.e206f700717532b86d4a.bundle.js} +2 -2
  126. package/dist/{89.6e767bc84921c435570c.bundle.js.map → 89.e206f700717532b86d4a.bundle.js.map} +1 -1
  127. package/dist/{90.5c5efc19e9053c029343.bundle.js → 90.192cdf37db2b7fe57457.bundle.js} +2 -2
  128. package/dist/{90.5c5efc19e9053c029343.bundle.js.map → 90.192cdf37db2b7fe57457.bundle.js.map} +1 -1
  129. package/dist/{92.b601c9bc8133fcf28163.bundle.js → 92.3adcb08e3ce3aa2196d9.bundle.js} +2 -2
  130. package/dist/{92.b601c9bc8133fcf28163.bundle.js.map → 92.3adcb08e3ce3aa2196d9.bundle.js.map} +1 -1
  131. package/dist/{94.4b1ada797602e279b977.bundle.js → 94.b7d4fbf7b903b58bbb9f.bundle.js} +2 -2
  132. package/dist/{94.4b1ada797602e279b977.bundle.js.map → 94.b7d4fbf7b903b58bbb9f.bundle.js.map} +1 -1
  133. package/dist/{95.95758068abd9eac4ed40.bundle.js → 95.4f4ec7e3bf1e54b69e22.bundle.js} +2 -2
  134. package/dist/{95.95758068abd9eac4ed40.bundle.js.map → 95.4f4ec7e3bf1e54b69e22.bundle.js.map} +1 -1
  135. package/dist/{98.8f1b6e94748a6049ed93.bundle.js → 98.46fcd4b9d0cee530a965.bundle.js} +2 -2
  136. package/dist/{98.8f1b6e94748a6049ed93.bundle.js.map → 98.46fcd4b9d0cee530a965.bundle.js.map} +1 -1
  137. package/dist/{bundle.595d7082ecc6c2683c9a.bundle.js → bundle.e02c0ceb3243288288de.bundle.js} +15 -15
  138. package/dist/bundle.e02c0ceb3243288288de.bundle.js.map +1 -0
  139. package/dist/css/yasr.custom.css +5 -1
  140. package/dist/index.html +4 -4
  141. package/dist/js/angular/core/directives/rdfresourcesearch/templates/rdfResourceSearchTemplate.html +1 -1
  142. package/dist/{main.96399f8393ca515638d2.bundle.js → main.e83e6336936d01c58d59.bundle.js} +2 -2
  143. package/dist/{main.96399f8393ca515638d2.bundle.js.map → main.e83e6336936d01c58d59.bundle.js.map} +1 -1
  144. package/dist/{main.c3519a595e24d0a69ccd.css → main.fa014240754b8b1655a9.css} +1 -1
  145. package/dist/pages/autocomplete.html +1 -1
  146. package/dist/pages/choose-repository-type.html +1 -1
  147. package/dist/pages/cluster-management/clusterInfo.html +3 -3
  148. package/dist/pages/create-index.html +4 -4
  149. package/dist/pages/dependencies.html +1 -1
  150. package/dist/pages/domainRangeInfo.html +2 -2
  151. package/dist/pages/edit.html +1 -1
  152. package/dist/pages/explore.html +1 -1
  153. package/dist/pages/export.html +1 -1
  154. package/dist/pages/find.html +1 -1
  155. package/dist/pages/graph-config/saveGraphConfig.html +15 -15
  156. package/dist/pages/graphs-visualizations.html +14 -14
  157. package/dist/pages/guides.html +1 -1
  158. package/dist/pages/import.html +1 -1
  159. package/dist/pages/jdbc-create.html +5 -5
  160. package/dist/pages/monitor/queries.html +1 -1
  161. package/dist/pages/monitor/resources.html +2 -2
  162. package/dist/pages/namespaces.html +4 -4
  163. package/dist/pages/plugins.html +1 -1
  164. package/dist/pages/rdfClassHierarchyInfo.html +7 -7
  165. package/dist/pages/rdfrank.html +2 -2
  166. package/dist/pages/repositories.html +2 -2
  167. package/dist/pages/repository.html +2 -2
  168. package/dist/pages/similarity-indexes.html +1 -1
  169. package/dist/pages/sparql-template-create.html +5 -5
  170. package/dist/pages/sparql.html +3 -3
  171. package/dist/pages/webapi.html +2 -2
  172. package/dist/res/swagger/index.html +27 -27
  173. package/dist/{vendor.31cf390ca240d8cd1ef3.bundle.js → vendor.7492dbcfefe195da8d15.bundle.js} +6 -6
  174. package/dist/{vendor.31cf390ca240d8cd1ef3.bundle.js.map → vendor.7492dbcfefe195da8d15.bundle.js.map} +1 -1
  175. package/package.json +1 -1
  176. package/dist/0.1bd9b49fd9f95db7afda.bundle.js.map +0 -1
  177. package/dist/114.ed2c2d1606cd75dbd7c6.bundle.js +0 -2
  178. package/dist/114.ed2c2d1606cd75dbd7c6.bundle.js.map +0 -1
  179. package/dist/13.9b9388352980715b16bb.bundle.js +0 -3
  180. package/dist/13.9b9388352980715b16bb.bundle.js.map +0 -1
  181. package/dist/14.c512cd1282fe7dec36bf.bundle.js +0 -2
  182. package/dist/14.c512cd1282fe7dec36bf.bundle.js.map +0 -1
  183. package/dist/34.100b126b4d89e99d4ac4.bundle.js +0 -2
  184. package/dist/34.100b126b4d89e99d4ac4.bundle.js.map +0 -1
  185. package/dist/43.f76be157f75bc7b3ea68.bundle.js +0 -2
  186. package/dist/43.f76be157f75bc7b3ea68.bundle.js.map +0 -1
  187. package/dist/46.a9d1c07290ab98930744.bundle.js +0 -2
  188. package/dist/8.b21d6a5c1a9412deb34f.bundle.js.map +0 -1
  189. package/dist/bundle.595d7082ecc6c2683c9a.bundle.js.map +0 -1
@@ -1,2 +1,2 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[10],{96:function(t,e,n){"use strict";n.r(e);n(4),n(13);const r="UPLOADING",i="PENDING",s="ERROR",a="DONE",o="NONE",l=angular.module("graphdb.framework.impex.import.controllers",["ui.bootstrap","toastr","graphdb.framework.core.services.repositories","graphdb.framework.utils.uriutils","graphdb.framework.guides.services"]);l.controller("CommonCtrl",["$scope","$http","toastr","$interval","$repositories","$modal","$filter","$jwtAuth","$location","$translate","LicenseRestService","GuidesService",function(t,e,n,r,i,o,l,c,u,p,f,m){t.files=[],t.fileChecked={},t.checkAll=!1,t.popoverTemplateUrl="settingsPopoverTemplate.html",t.fileQuery="",t.getAppData=function(){f.getInfo().success((function(e){t.appData={},t.appData.properties={};for(let n=0;n<e.length;n++)t.appData.properties[e[n].key]={source:e[n].source,value:e[n].value};t.maxUploadFileSizeMB=t.appData.properties["graphdb.workbench.maxUploadSize"].value/1048576})).error((function(t){const e=getError(t);n.error(e,p.instant("common.error"))}))},t.getAppData(),t.fileFormats=["ttl","ttls","rdf","rj","n3","nt","nq","trig","trigs","trix","brf","owl","jsonld"];{const e=_.map(t.fileFormats,(function(t){return"."+t+".gz"})),n=_.map(t.fileFormats,(function(t){return"."+t}));t.fileFormatsExtended=_.reduce(_.union(e,n,[".zip"]),(function(t,e){return t+", "+e})),t.fileFormatsHuman=_.reduce(n,(function(t,e){return t+" "+e}))+p.instant("import.gz.zip"),t.textFileFormatsHuman=_.reduce(_.filter(n,(function(t){return".brf"!==t})),(function(t,e){return t+" "+e}))}t.updateListHttp=function(r){e({method:"GET",url:t.getBaseUrl()}).success((function(e){0===t.files.length||r?(t.files=e,_.forEach(t.files,(function(e){e.type||(e.type=t.defaultType)})),t.rebatch()):t.files.forEach((function(n){const r=_.find(e,_.matches({name:n.name}));n.status&&r&&_.assign(n,r),n.type||(n.type=t.defaultType)})),r&&"user"===t.viewType&&(t.files=_.filter(t.files,(function(t){return void 0!==t.status}))),t.showClearStatuses=_.filter(t.files,(function(t){return t.status===a||t.status===s})).length>0,t.savedSettings=_.mapKeys(_.filter(t.files,"parserSettings"),"name"),t.loader=!1})).error((function(e){n.warning(p.instant("import.error.could.not.get.files",{data:getError(e)})),t.loader=!1}))},t.$watch((function(){return $(t.tabId).is(":visible")}),(function(){$(t.tabId).is(":visible")&&(t.updateListHttp(!1),u.hash(t.viewType))})),t.updateList=function(e){t.canWriteActiveRepo()&&$(t.tabId).is(":visible")&&t.updateListHttp(e)},t.init=function(){t.setRestricted(),t.isRestricted||(t.updateList(!0),t.getSettings())},t.$on("repositoryIsSet",t.init),t.pullList=function(){const e=r((function(){t.updating||t.updateList(!1)}),4e3);t.$on("$destroy",(function(){r.cancel(e)}))},t.getVisibleFiles=function(){return l("filter")(t.files,{name:t.fileQuery,type:t.getTypeFilter()})},t.getTypeFilter=function(){return"server"!==t.viewType||"file"!==t.showItems&&"directory"!==t.showItems?"":t.showItems},t.selectAllFiles=function(){t.getVisibleFiles().forEach((function(e){t.fileChecked[e.name]=t.checkAll&&t.importable(e)}))},t.getSettingsFor=function(e,n){return n||_.isEmpty(e)||_.isEmpty(t.savedSettings[e])?angular.copy(t.defaultSettings):t.savedSettings[e]},t.setSettingsFor=function(e,n){t.settingsFor=e,t.settings=t.getSettingsFor(e,n);const r={templateUrl:"js/angular/import/templates/settingsModal.html",controller:"SettingsModalCtrl",resolve:{settings:function(){return angular.copy(t.settings)},hasParserSettings:t.isLocalLocation,defaultSettings:function(){return t.defaultSettings},isMultiple:function(){return!e}},size:"lg"};m.isActive()&&(r.backdrop="static",r.keyboard=!1);o.open(r).result.then((function(e){t.settings=e,""===t.settingsFor?t.importSelected():t.importFile(t.settingsFor,!0)}),(function(e){t.settings=e}))},t.updateImport=function(e,n){t.settingsFor=e,t.settings=t.getSettingsFor(e,n),t.importFile(e,!1)},t.stopImport=function(r){e({method:"DELETE",url:t.getBaseUrl(),params:{name:r.name,type:r.type}}).success((function(){t.updateList()})).error((function(t){n.warning(p.instant("import.error.could.not.stop",{data:getError(t)}))}))},t.importable=function(){return!0},t.hasImportable=function(){return _.filter(t.files,(function(e){return t.importable(e)})).length>0},t.showTable=function(){const e=t.files.length>0&&("user"===t.viewType||"server"===t.viewType);return t.checkAll&&t.switchBatch(!0),e},t.switchBatch=function(e){e?t.selectAllFiles():t.checkAll&&(t.checkAll=!1),t.batch=_.map(_.filter(t.files,(function(e){return t.fileChecked[e.name]&&t.importable(e)})),"name").length>0},t.rebatch=function(){const e={};t.batch=!1,_.each(t.files,(function(n){e[n.name]=t.fileChecked[n.name],t.batch|=t.fileChecked[n.name]})),t.batch||(t.checkAll=!1),t.fileChecked=e},t.getSelectedFiles=function(){return _.map(_.filter(t.getVisibleFiles(),(function(e){return t.fileChecked[e.name]&&t.importable(e)})),"name")},t.importSelected=function(e){const n=t.getSelectedFiles(),r=function(){const i=n.shift();i&&(e&&(t.settings=t.getSettingsFor(i)),t.importFile(i,!0,r))};r()};const d=function(r,i){e({method:"DELETE",url:t.getBaseUrl()+"/status",params:{remove:i},data:r,headers:{"Content-type":"application/json;charset=utf-8"}}).success((function(){t.updateList(!0)})).error((function(t){n.warning(p.instant("import.error.could.not.clear",{data:getError(t)}))}))};t.resetStatus=function(t){d(t,!1)},t.resetStatusSelected=function(){t.resetStatus(t.getSelectedFiles())},t.removeEntry=function(t){d(t,!0)},t.removeEntrySelected=function(){t.removeEntry(t.getSelectedFiles())},t.isLocalLocation=function(){const t=i.getActiveLocation();return t&&t.local},t.filterSettings=function(e){let n=_.omitBy(t.savedSettings[e],_.isNull);return n=_.omit(n,["repoLocationHash","status","message","name","data","type","format","fileNames","$$hashKey"]),_.map(_.keys(n),(function(t){return[t,n[t]]}))},t.getSettings=function(){t.canWriteActiveRepo()&&e({method:"GET",url:"rest/repositories/"+i.getActiveRepository()+"/import/settings/default"}).success((function(e){t.defaultSettings=e})).error((function(t){n.warning(p.instant("import.error.default.settings",{data:getError(t)}))}))},t.getBaseUrl=function(){return"rest/repositories/"+i.getActiveRepository()+"/import/"+t.viewUrl},t.pritifySettings=function(t){return JSON.stringify(t,null," ")},t.toTitleCase=function(t){return t?_.upperFirst(t.toLowerCase()):t}}]),l.controller("ImportCtrl",["$scope","$http","toastr","$controller",function(t,e,n,r){t.loader=!0,angular.extend(this,r("CommonCtrl",{$scope:t})),t.viewUrl="server",t.defaultType="server",t.tabId="#import-server",t.showItems="all",t.pullList();const i=function(r,i){t.canWriteActiveRepo()&&e({method:"POST",url:t.getBaseUrl(),data:{importSettings:i?null:t.settings,fileNames:r}}).success((function(){t.updateList(),t.batch=!1,t.fileChecked={}})).error((function(t){n.error($translate.instant("import.could.not.send.file",{data:getError(t)}))}))};t.importSelected=function(e){const n=t.getSelectedFiles();i(n,e)},t.importFile=function(t){i([t])},t.init()}]),l.controller("UploadCtrl",["$scope","Upload","$http","toastr","$controller","$modal","$translate",function(t,e,n,a,l,c,u){t.loader=!0,angular.extend(this,l("CommonCtrl",{$scope:t})),t.viewUrl="upload",t.defaultType="file",t.tabId="#import-user",t.pullList(),t.currentFiles=[],t.importable=function(){return!0},t.fileSelected=function(t,e,n,r,i){i.length>0&&i.forEach((function(t){a.warning(u.instant("import.large.file",{name:t.name,size:Math.floor(t.size/1048576)}))}))},t.$watchCollection("currentFiles",(function(){t.currentFiles&&t.currentFiles.forEach((function(e){if("bz2"===e.name.substr(e.name.lastIndexOf(".")+1)){const n=t.currentFiles.indexOf(e);n>-1&&t.currentFiles.splice(n,1),a.error(u.instant("import.could.not.upload",{name:e.name}))}})),t.files=_.uniqBy(_.union(_.map(t.currentFiles,(function(t){return{name:t.name,type:"file",file:t}})),t.files),(function(t){return t.name})),t.savedSettings=_.mapKeys(_.filter(t.files,"parserSettings"),"name"),_.each(t.currentFiles,(function(e){t.updateImport(e.name)}))})),t.importFile=function(o,l,c){const p=_.findIndex(t.files,{name:o});if(p<0)a.warning(u.instant("import.no.such.file",{name:o}));else{const o=t.files[p];if("text"===o.type)t.settings.name=o.name,t.settings.type=o.type,t.settings.data=o.data,t.settings.format=o.format,o.status=i,n({method:"POST",url:t.getBaseUrl()+(l?"":"/update")+"/text",data:t.settings}).success((function(){t.updateList()})).error((function(t){a.error(u.instant("import.could.not.send.data",{data:getError(t)})),o.status=s,o.message=getError(t)})).finally(c||function(){});else if("url"===o.type)t.settings.name=o.name,t.settings.type=o.type,t.settings.data=o.data,t.settings.format=o.format,o.status=i,n({method:"POST",url:t.getBaseUrl()+(l?"":"/update")+"/url",data:t.settings}).success((function(){t.updateList()})).error((function(t){a.error(u.instant("import.could.not.send.url",{data:getError(t)}))})).finally(c||function(){});else{let n;t.settings.name=o.name,n=o.file?{file:o.file,importSettings:e.jsonBlob(t.settings)}:{importSettings:e.jsonBlob(t.settings)},e.upload({url:t.getBaseUrl()+(l?"":"/update")+"/file",data:n}).progress((function(t){if(o.file?(o.file=null,o.status=r):o.status!==r&&(o.status=i),o.status===r){const e=parseInt(100*t.loaded/t.total);o.message=e+"% uploaded"}})).success((function(){t.updateList()})).error((function(t){a.error(u.instant("import.could.not.upload.file",{data:getError(t)})),o.status=s,o.message=getError(t)})).finally(c||function(){})}}},t.updateTextImport=function(e){t.updating=!0,n({method:"POST",url:t.getBaseUrl()+"/update/text",data:e}).success((function(t){})).error((function(t){a.error(u.instant("import.could.not.update.text",{data:getError(t)}))})).finally((function(){t.updating=!1}))},t.pastedDataIdx=1;const p=function(){const t=new Date;return t.getFullYear()+"-"+_.padStart(t.getMonth()+1,2,"0")+"-"+_.padStart(t.getDate(),2,"0")+" "+_.padStart(t.getHours(),2,"0")+":"+_.padStart(t.getMinutes(),2,"0")+":"+_.padStart(t.getSeconds(),2,"0")+"."+_.padStart(t.getMilliseconds(),3,"0")};t.pasteData=function(e){e&&e.data;c.open({templateUrl:"js/angular/import/templates/textSnippet.html",controller:"TextCtrl",resolve:{text:function(){return e?e.data:""},format:function(){return e?e.format:"text/turtle"}}}).result.then((function(n){e?(e.data===n.text&&e.format===n.format||e.status===o||(e.status=o,e.message=u.instant("import.text.snippet.not.imported")),e.data=n.text,e.format=n.format,t.updateTextImport(e)):(e={type:"text",name:"Text snippet "+p(),format:n.format,data:n.text},t.files.unshift(e),t.updateImport(e.name)),n.startImport&&t.setSettingsFor(e.name)}))},t.rdfDataFromURL=function(){c.open({templateUrl:"js/angular/import/templates/urlImport.html",controller:"UrlCtrl",scope:t}).result.then((function(e){const n=_.find(t.files,{type:"url",name:e.url});n?n.format=e.format:t.files.unshift({type:"url",name:e.url,format:e.format,data:e.url}),t.updateImport(e.url,!0),e.startImport&&t.setSettingsFor(e.url,!0)}))},t.init()}]),l.controller("UrlCtrl",["$scope","$modalInstance","toastr",function(t,e){t.importFormat={name:"Auto",type:""},t.startImport=!0,t.cancel=function(){e.dismiss()},t.ok=function(){e.close({url:t.dataUrl,format:t.importFormat.type,startImport:t.startImport})}}]),l.controller("TextCtrl",["$scope","$modalInstance","text","format",function(t,e,n,r){t.importFormats=[{name:"RDF/JSON",type:"application/rdf+json"},{name:"JSON-LD",type:"application/ld+json"},{name:"RDF/XML",type:"application/rdf+xml"},{name:"N3",type:"text/rdf+n3"},{name:"N-Triples",type:"text/plain"},{name:"N-Quads",type:"text/x-nquads"},{name:"Turtle",type:"text/turtle"},{name:"Turtle*",type:"application/x-turtlestar"},{name:"TriX",type:"application/trix"},{name:"TriG",type:"application/x-trig"},{name:"TriG*",type:"application/x-trigstar"}],t.rdfText=n,t.importFormat=_.find(t.importFormats,{type:r}),t.startImport=!0,t.setFormat=function(e){t.importFormat=e},t.cancel=function(){e.dismiss()},t.ok=function(){e.close({text:t.rdfText,format:t.importFormat.type,startImport:t.startImport})}}]),l.controller("TabCtrl",["$scope","$location",function(t,e){t.viewType=e.hash(),"user"!==t.viewType&&"server"!==t.viewType&&(t.viewType="user"),t.isCollapsed=!1,"user"===t.viewType?t.templateUrl="js/angular/import/templates/uploadInfo.html":t.templateUrl="js/angular/import/templates/importInfo.html",t.changeHelpTemplate=function(e){t.templateUrl="js/angular/import/templates/"+e},t.commonUrl="js/angular/import/templates/commonInfo.html"}]),l.controller("SettingsModalCtrl",["$scope","$modalInstance","toastr","UriUtils","settings","hasParserSettings","defaultSettings","isMultiple","$translate",function(t,e,n,r,i,s,a,o,l){t.hasError=function(t,e){return _.find(t,(function(t){return e===t.$name}))},t.settings=i,t.hasParserSettings=s,t.settings.context?"default"===t.settings.context?(t.target="default",t.settings.context=""):t.target="named":t.target="data",t.isMultiple=o,t.enableReplace=!(!t.settings.replaceGraphs||!t.settings.replaceGraphs.length);const c=function(){"default"===t.target?t.settings.context="default":"data"===t.target&&(t.settings.context=""),t.enableReplace?"default"!==t.target&&"named"!==t.target||(t.settings.replaceGraphs=[t.settings.context]):t.settings.replaceGraphs=[]};t.ok=function(){t.settingsForm.replaceGraph.$setValidity("replaceGraph",!0),t.settingsForm.$valid&&(c(),e.close(t.settings))},t.cancel=function(){c(),e.dismiss(t.settings)},t.reset=function(){t.settings=angular.copy(a),t.target="data"},t.addReplaceGraph=function(e){let i=!0;"default"!==e&&(i=r.isValidIri(e)),t.settingsForm.replaceGraph.$setTouched(),t.settingsForm.replaceGraph.$setValidity("replaceGraph",i),t.settingsForm.replaceGraph.$valid&&(t.settings.replaceGraphs=t.settings.replaceGraphs||[],-1===_.indexOf(t.settings.replaceGraphs,e)?(t.replaceGraph="",t.settings.replaceGraphs.push(e)):n.warning(l.instant("import.graph.already.in.list")))},t.checkEnterReplaceGraph=function(e,n){13===e.keyCode&&(e.preventDefault(),t.addReplaceGraph(n))},t.showAdvancedSettings=!1,t.switchParserSettings=function(){t.showAdvancedSettings=!t.showAdvancedSettings}}])}}]);
2
- //# sourceMappingURL=10.cabc799d9aabc46e7be7.bundle.js.map
1
+ (window.webpackJsonp=window.webpackJsonp||[]).push([[10],{97:function(t,e,n){"use strict";n.r(e);n(4),n(13);const r="UPLOADING",i="PENDING",s="ERROR",a="DONE",o="NONE",l=angular.module("graphdb.framework.impex.import.controllers",["ui.bootstrap","toastr","graphdb.framework.core.services.repositories","graphdb.framework.utils.uriutils","graphdb.framework.guides.services"]);l.controller("CommonCtrl",["$scope","$http","toastr","$interval","$repositories","$modal","$filter","$jwtAuth","$location","$translate","LicenseRestService","GuidesService",function(t,e,n,r,i,o,l,c,u,p,f,m){t.files=[],t.fileChecked={},t.checkAll=!1,t.popoverTemplateUrl="settingsPopoverTemplate.html",t.fileQuery="",t.getAppData=function(){f.getInfo().success((function(e){t.appData={},t.appData.properties={};for(let n=0;n<e.length;n++)t.appData.properties[e[n].key]={source:e[n].source,value:e[n].value};t.maxUploadFileSizeMB=t.appData.properties["graphdb.workbench.maxUploadSize"].value/1048576})).error((function(t){const e=getError(t);n.error(e,p.instant("common.error"))}))},t.getAppData(),t.fileFormats=["ttl","ttls","rdf","rj","n3","nt","nq","trig","trigs","trix","brf","owl","jsonld"];{const e=_.map(t.fileFormats,(function(t){return"."+t+".gz"})),n=_.map(t.fileFormats,(function(t){return"."+t}));t.fileFormatsExtended=_.reduce(_.union(e,n,[".zip"]),(function(t,e){return t+", "+e})),t.fileFormatsHuman=_.reduce(n,(function(t,e){return t+" "+e}))+p.instant("import.gz.zip"),t.textFileFormatsHuman=_.reduce(_.filter(n,(function(t){return".brf"!==t})),(function(t,e){return t+" "+e}))}t.updateListHttp=function(r){e({method:"GET",url:t.getBaseUrl()}).success((function(e){0===t.files.length||r?(t.files=e,_.forEach(t.files,(function(e){e.type||(e.type=t.defaultType)})),t.rebatch()):t.files.forEach((function(n){const r=_.find(e,_.matches({name:n.name}));n.status&&r&&_.assign(n,r),n.type||(n.type=t.defaultType)})),r&&"user"===t.viewType&&(t.files=_.filter(t.files,(function(t){return void 0!==t.status}))),t.showClearStatuses=_.filter(t.files,(function(t){return t.status===a||t.status===s})).length>0,t.savedSettings=_.mapKeys(_.filter(t.files,"parserSettings"),"name"),t.loader=!1})).error((function(e){n.warning(p.instant("import.error.could.not.get.files",{data:getError(e)})),t.loader=!1}))},t.$watch((function(){return $(t.tabId).is(":visible")}),(function(){$(t.tabId).is(":visible")&&(t.updateListHttp(!1),u.hash(t.viewType))})),t.updateList=function(e){t.canWriteActiveRepo()&&$(t.tabId).is(":visible")&&t.updateListHttp(e)},t.init=function(){t.setRestricted(),t.isRestricted||(t.updateList(!0),t.getSettings())},t.$on("repositoryIsSet",t.init),t.pullList=function(){const e=r((function(){t.updating||t.updateList(!1)}),4e3);t.$on("$destroy",(function(){r.cancel(e)}))},t.getVisibleFiles=function(){return l("filter")(t.files,{name:t.fileQuery,type:t.getTypeFilter()})},t.getTypeFilter=function(){return"server"!==t.viewType||"file"!==t.showItems&&"directory"!==t.showItems?"":t.showItems},t.selectAllFiles=function(){t.getVisibleFiles().forEach((function(e){t.fileChecked[e.name]=t.checkAll&&t.importable(e)}))},t.getSettingsFor=function(e,n){return n||_.isEmpty(e)||_.isEmpty(t.savedSettings[e])?angular.copy(t.defaultSettings):t.savedSettings[e]},t.setSettingsFor=function(e,n){t.settingsFor=e,t.settings=t.getSettingsFor(e,n);const r={templateUrl:"js/angular/import/templates/settingsModal.html",controller:"SettingsModalCtrl",resolve:{settings:function(){return angular.copy(t.settings)},hasParserSettings:t.isLocalLocation,defaultSettings:function(){return t.defaultSettings},isMultiple:function(){return!e}},size:"lg"};m.isActive()&&(r.backdrop="static",r.keyboard=!1);o.open(r).result.then((function(e){t.settings=e,""===t.settingsFor?t.importSelected():t.importFile(t.settingsFor,!0)}),(function(e){t.settings=e}))},t.updateImport=function(e,n){t.settingsFor=e,t.settings=t.getSettingsFor(e,n),t.importFile(e,!1)},t.stopImport=function(r){e({method:"DELETE",url:t.getBaseUrl(),params:{name:r.name,type:r.type}}).success((function(){t.updateList()})).error((function(t){n.warning(p.instant("import.error.could.not.stop",{data:getError(t)}))}))},t.importable=function(){return!0},t.hasImportable=function(){return _.filter(t.files,(function(e){return t.importable(e)})).length>0},t.showTable=function(){const e=t.files.length>0&&("user"===t.viewType||"server"===t.viewType);return t.checkAll&&t.switchBatch(!0),e},t.switchBatch=function(e){e?t.selectAllFiles():t.checkAll&&(t.checkAll=!1),t.batch=_.map(_.filter(t.files,(function(e){return t.fileChecked[e.name]&&t.importable(e)})),"name").length>0},t.rebatch=function(){const e={};t.batch=!1,_.each(t.files,(function(n){e[n.name]=t.fileChecked[n.name],t.batch|=t.fileChecked[n.name]})),t.batch||(t.checkAll=!1),t.fileChecked=e},t.getSelectedFiles=function(){return _.map(_.filter(t.getVisibleFiles(),(function(e){return t.fileChecked[e.name]&&t.importable(e)})),"name")},t.importSelected=function(e){const n=t.getSelectedFiles(),r=function(){const i=n.shift();i&&(e&&(t.settings=t.getSettingsFor(i)),t.importFile(i,!0,r))};r()};const d=function(r,i){e({method:"DELETE",url:t.getBaseUrl()+"/status",params:{remove:i},data:r,headers:{"Content-type":"application/json;charset=utf-8"}}).success((function(){t.updateList(!0)})).error((function(t){n.warning(p.instant("import.error.could.not.clear",{data:getError(t)}))}))};t.resetStatus=function(t){d(t,!1)},t.resetStatusSelected=function(){t.resetStatus(t.getSelectedFiles())},t.removeEntry=function(t){d(t,!0)},t.removeEntrySelected=function(){t.removeEntry(t.getSelectedFiles())},t.isLocalLocation=function(){const t=i.getActiveLocation();return t&&t.local},t.filterSettings=function(e){let n=_.omitBy(t.savedSettings[e],_.isNull);return n=_.omit(n,["repoLocationHash","status","message","name","data","type","format","fileNames","$$hashKey"]),_.map(_.keys(n),(function(t){return[t,n[t]]}))},t.getSettings=function(){t.canWriteActiveRepo()&&e({method:"GET",url:"rest/repositories/"+i.getActiveRepository()+"/import/settings/default"}).success((function(e){t.defaultSettings=e})).error((function(t){n.warning(p.instant("import.error.default.settings",{data:getError(t)}))}))},t.getBaseUrl=function(){return"rest/repositories/"+i.getActiveRepository()+"/import/"+t.viewUrl},t.pritifySettings=function(t){return JSON.stringify(t,null," ")},t.toTitleCase=function(t){return t?_.upperFirst(t.toLowerCase()):t}}]),l.controller("ImportCtrl",["$scope","$http","toastr","$controller",function(t,e,n,r){t.loader=!0,angular.extend(this,r("CommonCtrl",{$scope:t})),t.viewUrl="server",t.defaultType="server",t.tabId="#import-server",t.showItems="all",t.pullList();const i=function(r,i){t.canWriteActiveRepo()&&e({method:"POST",url:t.getBaseUrl(),data:{importSettings:i?null:t.settings,fileNames:r}}).success((function(){t.updateList(),t.batch=!1,t.fileChecked={}})).error((function(t){n.error($translate.instant("import.could.not.send.file",{data:getError(t)}))}))};t.importSelected=function(e){const n=t.getSelectedFiles();i(n,e)},t.importFile=function(t){i([t])},t.init()}]),l.controller("UploadCtrl",["$scope","Upload","$http","toastr","$controller","$modal","$translate",function(t,e,n,a,l,c,u){t.loader=!0,angular.extend(this,l("CommonCtrl",{$scope:t})),t.viewUrl="upload",t.defaultType="file",t.tabId="#import-user",t.pullList(),t.currentFiles=[],t.importable=function(){return!0},t.fileSelected=function(t,e,n,r,i){i.length>0&&i.forEach((function(t){a.warning(u.instant("import.large.file",{name:t.name,size:Math.floor(t.size/1048576)}))}))},t.$watchCollection("currentFiles",(function(){t.currentFiles&&t.currentFiles.forEach((function(e){if("bz2"===e.name.substr(e.name.lastIndexOf(".")+1)){const n=t.currentFiles.indexOf(e);n>-1&&t.currentFiles.splice(n,1),a.error(u.instant("import.could.not.upload",{name:e.name}))}})),t.files=_.uniqBy(_.union(_.map(t.currentFiles,(function(t){return{name:t.name,type:"file",file:t}})),t.files),(function(t){return t.name})),t.savedSettings=_.mapKeys(_.filter(t.files,"parserSettings"),"name"),_.each(t.currentFiles,(function(e){t.updateImport(e.name)}))})),t.importFile=function(o,l,c){const p=_.findIndex(t.files,{name:o});if(p<0)a.warning(u.instant("import.no.such.file",{name:o}));else{const o=t.files[p];if("text"===o.type)t.settings.name=o.name,t.settings.type=o.type,t.settings.data=o.data,t.settings.format=o.format,o.status=i,n({method:"POST",url:t.getBaseUrl()+(l?"":"/update")+"/text",data:t.settings}).success((function(){t.updateList()})).error((function(t){a.error(u.instant("import.could.not.send.data",{data:getError(t)})),o.status=s,o.message=getError(t)})).finally(c||function(){});else if("url"===o.type)t.settings.name=o.name,t.settings.type=o.type,t.settings.data=o.data,t.settings.format=o.format,o.status=i,n({method:"POST",url:t.getBaseUrl()+(l?"":"/update")+"/url",data:t.settings}).success((function(){t.updateList()})).error((function(t){a.error(u.instant("import.could.not.send.url",{data:getError(t)}))})).finally(c||function(){});else{let n;t.settings.name=o.name,n=o.file?{file:o.file,importSettings:e.jsonBlob(t.settings)}:{importSettings:e.jsonBlob(t.settings)},e.upload({url:t.getBaseUrl()+(l?"":"/update")+"/file",data:n}).progress((function(t){if(o.file?(o.file=null,o.status=r):o.status!==r&&(o.status=i),o.status===r){const e=parseInt(100*t.loaded/t.total);o.message=e+"% uploaded"}})).success((function(){t.updateList()})).error((function(t){a.error(u.instant("import.could.not.upload.file",{data:getError(t)})),o.status=s,o.message=getError(t)})).finally(c||function(){})}}},t.updateTextImport=function(e){t.updating=!0,n({method:"POST",url:t.getBaseUrl()+"/update/text",data:e}).success((function(t){})).error((function(t){a.error(u.instant("import.could.not.update.text",{data:getError(t)}))})).finally((function(){t.updating=!1}))},t.pastedDataIdx=1;const p=function(){const t=new Date;return t.getFullYear()+"-"+_.padStart(t.getMonth()+1,2,"0")+"-"+_.padStart(t.getDate(),2,"0")+" "+_.padStart(t.getHours(),2,"0")+":"+_.padStart(t.getMinutes(),2,"0")+":"+_.padStart(t.getSeconds(),2,"0")+"."+_.padStart(t.getMilliseconds(),3,"0")};t.pasteData=function(e){e&&e.data;c.open({templateUrl:"js/angular/import/templates/textSnippet.html",controller:"TextCtrl",resolve:{text:function(){return e?e.data:""},format:function(){return e?e.format:"text/turtle"}}}).result.then((function(n){e?(e.data===n.text&&e.format===n.format||e.status===o||(e.status=o,e.message=u.instant("import.text.snippet.not.imported")),e.data=n.text,e.format=n.format,t.updateTextImport(e)):(e={type:"text",name:"Text snippet "+p(),format:n.format,data:n.text},t.files.unshift(e),t.updateImport(e.name)),n.startImport&&t.setSettingsFor(e.name)}))},t.rdfDataFromURL=function(){c.open({templateUrl:"js/angular/import/templates/urlImport.html",controller:"UrlCtrl",scope:t}).result.then((function(e){const n=_.find(t.files,{type:"url",name:e.url});n?n.format=e.format:t.files.unshift({type:"url",name:e.url,format:e.format,data:e.url}),t.updateImport(e.url,!0),e.startImport&&t.setSettingsFor(e.url,!0)}))},t.init()}]),l.controller("UrlCtrl",["$scope","$modalInstance","toastr",function(t,e){t.importFormat={name:"Auto",type:""},t.startImport=!0,t.cancel=function(){e.dismiss()},t.ok=function(){e.close({url:t.dataUrl,format:t.importFormat.type,startImport:t.startImport})}}]),l.controller("TextCtrl",["$scope","$modalInstance","text","format",function(t,e,n,r){t.importFormats=[{name:"RDF/JSON",type:"application/rdf+json"},{name:"JSON-LD",type:"application/ld+json"},{name:"RDF/XML",type:"application/rdf+xml"},{name:"N3",type:"text/rdf+n3"},{name:"N-Triples",type:"text/plain"},{name:"N-Quads",type:"text/x-nquads"},{name:"Turtle",type:"text/turtle"},{name:"Turtle*",type:"application/x-turtlestar"},{name:"TriX",type:"application/trix"},{name:"TriG",type:"application/x-trig"},{name:"TriG*",type:"application/x-trigstar"}],t.rdfText=n,t.importFormat=_.find(t.importFormats,{type:r}),t.startImport=!0,t.setFormat=function(e){t.importFormat=e},t.cancel=function(){e.dismiss()},t.ok=function(){e.close({text:t.rdfText,format:t.importFormat.type,startImport:t.startImport})}}]),l.controller("TabCtrl",["$scope","$location",function(t,e){t.viewType=e.hash(),"user"!==t.viewType&&"server"!==t.viewType&&(t.viewType="user"),t.isCollapsed=!1,"user"===t.viewType?t.templateUrl="js/angular/import/templates/uploadInfo.html":t.templateUrl="js/angular/import/templates/importInfo.html",t.changeHelpTemplate=function(e){t.templateUrl="js/angular/import/templates/"+e},t.commonUrl="js/angular/import/templates/commonInfo.html"}]),l.controller("SettingsModalCtrl",["$scope","$modalInstance","toastr","UriUtils","settings","hasParserSettings","defaultSettings","isMultiple","$translate",function(t,e,n,r,i,s,a,o,l){t.hasError=function(t,e){return _.find(t,(function(t){return e===t.$name}))},t.settings=i,t.hasParserSettings=s,t.settings.context?"default"===t.settings.context?(t.target="default",t.settings.context=""):t.target="named":t.target="data",t.isMultiple=o,t.enableReplace=!(!t.settings.replaceGraphs||!t.settings.replaceGraphs.length);const c=function(){"default"===t.target?t.settings.context="default":"data"===t.target&&(t.settings.context=""),t.enableReplace?"default"!==t.target&&"named"!==t.target||(t.settings.replaceGraphs=[t.settings.context]):t.settings.replaceGraphs=[]};t.ok=function(){t.settingsForm.replaceGraph.$setValidity("replaceGraph",!0),t.settingsForm.$valid&&(c(),e.close(t.settings))},t.cancel=function(){c(),e.dismiss(t.settings)},t.reset=function(){t.settings=angular.copy(a),t.target="data"},t.addReplaceGraph=function(e){let i=!0;"default"!==e&&(i=r.isValidIri(e)),t.settingsForm.replaceGraph.$setTouched(),t.settingsForm.replaceGraph.$setValidity("replaceGraph",i),t.settingsForm.replaceGraph.$valid&&(t.settings.replaceGraphs=t.settings.replaceGraphs||[],-1===_.indexOf(t.settings.replaceGraphs,e)?(t.replaceGraph="",t.settings.replaceGraphs.push(e)):n.warning(l.instant("import.graph.already.in.list")))},t.checkEnterReplaceGraph=function(e,n){13===e.keyCode&&(e.preventDefault(),t.addReplaceGraph(n))},t.showAdvancedSettings=!1,t.switchParserSettings=function(){t.showAdvancedSettings=!t.showAdvancedSettings}}])}}]);
2
+ //# sourceMappingURL=10.0d7e127640f8c0678145.bundle.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack:///./src/js/angular/import/controllers.js"],"names":["FILE_STATUS","importCtrl","angular","module","controller","$scope","$http","toastr","$interval","$repositories","$modal","$filter","$jwtAuth","$location","$translate","LicenseRestService","GuidesService","files","fileChecked","checkAll","popoverTemplateUrl","fileQuery","getAppData","getInfo","success","data","appData","properties","i","length","key","source","value","maxUploadFileSizeMB","error","msg","getError","instant","fileFormats","gzs","_","map","f","basics","fileFormatsExtended","reduce","union","el","all","fileFormatsHuman","textFileFormatsHuman","filter","updateListHttp","force","method","url","getBaseUrl","forEach","type","defaultType","rebatch","remoteStatus","find","matches","name","status","assign","viewType","undefined","showClearStatuses","file","savedSettings","mapKeys","loader","warning","$watch","$","tabId","is","hash","updateList","canWriteActiveRepo","init","setRestricted","isRestricted","getSettings","$on","pullList","timer","updating","cancel","getVisibleFiles","getTypeFilter","showItems","selectAllFiles","importable","getSettingsFor","fileName","withDefaultSettings","isEmpty","copy","defaultSettings","setSettingsFor","settingsFor","settings","options","templateUrl","resolve","hasParserSettings","isLocalLocation","isMultiple","size","isActive","backdrop","keyboard","open","result","then","importSelected","importFile","updateImport","stopImport","params","hasImportable","showTable","switchBatch","batch","newFileChecked","each","getSelectedFiles","overrideSettings","selectedFileNames","importNext","shift","resetStatusOrRemoveEntry","names","remove","headers","resetStatus","resetStatusSelected","removeEntry","removeEntrySelected","location","getActiveLocation","local","filterSettings","filtered","omitBy","isNull","omit","keys","getActiveRepository","viewUrl","pritifySettings","JSON","stringify","toTitleCase","s","upperFirst","toLowerCase","$controller","extend","this","importServerFiles","importSettings","fileNames","Upload","currentFiles","fileSelected","$files","$file","$newFiles","$duplicateFiles","$invalidFiles","Math","floor","$watchCollection","substr","lastIndexOf","fileIdx","indexOf","splice","uniqBy","startImport","nextCallback","fileIndex","findIndex","format","message","finally","jsonBlob","upload","progress","evt","progressPercentage","parseInt","loaded","total","updateTextImport","pastedDataIdx","formattedDate","date","Date","getFullYear","padStart","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","pasteData","text","unshift","rdfDataFromURL","scope","existing","$modalInstance","importFormat","dismiss","ok","close","dataUrl","importFormats","rdfText","setFormat","isCollapsed","changeHelpTemplate","templateFile","commonUrl","UriUtils","hasError","input","o","context","target","enableReplace","replaceGraphs","fixSettings","settingsForm","replaceGraph","$setValidity","$valid","reset","addReplaceGraph","graph","valid","isValidIri","$setTouched","push","checkEnterReplaceGraph","event","keyCode","preventDefault","showAdvancedSettings","switchParserSettings"],"mappings":"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","file":"10.cabc799d9aabc46e7be7.bundle.js","sourcesContent":["import 'angular/core/services';\nimport 'angular/utils/uri-utils';\n\nconst FILE_STATUS = {\n 'UPLOADING': 'UPLOADING',\n 'PENDING': 'PENDING',\n 'ERROR': 'ERROR',\n 'DONE': 'DONE',\n 'NONE': 'NONE'\n};\n\nconst modules = [\n 'ui.bootstrap',\n 'toastr',\n 'graphdb.framework.core.services.repositories',\n 'graphdb.framework.utils.uriutils',\n 'graphdb.framework.guides.services'\n];\n\nconst importCtrl = angular.module('graphdb.framework.impex.import.controllers', modules);\n\nimportCtrl.controller('CommonCtrl', ['$scope', '$http', 'toastr', '$interval', '$repositories', '$modal', '$filter', '$jwtAuth', '$location', '$translate', 'LicenseRestService', 'GuidesService',\n function ($scope, $http, toastr, $interval, $repositories, $modal, $filter, $jwtAuth, $location, $translate, LicenseRestService, GuidesService) {\n $scope.files = [];\n $scope.fileChecked = {};\n $scope.checkAll = false;\n $scope.popoverTemplateUrl = 'settingsPopoverTemplate.html';\n $scope.fileQuery = '';\n\n $scope.getAppData = function () {\n LicenseRestService.getInfo().success(function (data) {\n $scope.appData = {};\n\n $scope.appData.properties = {};\n\n for (let i = 0; i < data.length; i++) {\n $scope.appData.properties[data[i].key] = {\n source: data[i].source,\n value: data[i].value\n };\n }\n $scope.maxUploadFileSizeMB = $scope.appData.properties['graphdb.workbench.maxUploadSize'].value / (1024 * 1024);\n }).error(function (data) {\n const msg = getError(data);\n toastr.error(msg, $translate.instant('common.error'));\n });\n };\n\n $scope.getAppData();\n\n $scope.fileFormats = ['ttl', 'ttls', 'rdf', 'rj', 'n3', 'nt', 'nq', 'trig', 'trigs', 'trix', 'brf', 'owl', 'jsonld'];\n\n {\n const gzs = _.map($scope.fileFormats, function (f) {\n return '.' + f + '.gz';\n });\n const basics = _.map($scope.fileFormats, function (f) {\n return '.' + f;\n });\n $scope.fileFormatsExtended = _.reduce(_.union(gzs, basics, ['.zip']), function (el, all) {\n return el + ', ' + all;\n });\n $scope.fileFormatsHuman = _.reduce(basics, function (el, all) {\n return el + ' ' + all;\n }) + $translate.instant('import.gz.zip');\n $scope.textFileFormatsHuman = _.reduce(_.filter(basics, function (el) {\n return el !== '.brf';\n }),\n function (el, all) {\n return el + ' ' + all;\n });\n }\n\n $scope.updateListHttp = function (force) {\n $http({\n method: 'GET',\n url: $scope.getBaseUrl()\n }).success(function (data) {\n if ($scope.files.length === 0 || force) {\n $scope.files = data;\n _.forEach($scope.files, function (f) {\n if (!f.type) {\n f.type = $scope.defaultType;\n }\n });\n $scope.rebatch();\n } else {\n $scope.files.forEach(function (f) {\n const remoteStatus = _.find(data, _.matches({'name': f.name}));\n if (f.status && remoteStatus) {\n _.assign(f, remoteStatus);\n }\n if (!f.type) {\n f.type = $scope.defaultType;\n }\n });\n }\n // Need new status here\n if (force && 'user' === $scope.viewType) {\n $scope.files = _.filter($scope.files, function (f) {\n return f.status !== undefined;\n });\n }\n $scope.showClearStatuses = _.filter($scope.files, function (file) {\n return file.status === FILE_STATUS.DONE || file.status === FILE_STATUS.ERROR;\n }).length > 0;\n\n $scope.savedSettings = _.mapKeys(_.filter($scope.files, 'parserSettings'), 'name');\n\n $scope.loader = false;\n }).error(function (data) {\n toastr.warning($translate.instant('import.error.could.not.get.files', {data: getError(data)}));\n $scope.loader = false;\n });\n };\n\n // update the list instantly when the tab is changed\n $scope.$watch(function () {\n return $($scope.tabId).is(':visible');\n }, function () {\n if ($($scope.tabId).is(':visible')) {\n $scope.updateListHttp(false);\n $location.hash($scope.viewType);\n }\n });\n\n $scope.updateList = function (force) {\n if (!$scope.canWriteActiveRepo()) {\n return;\n }\n\n if (!$($scope.tabId).is(':visible')) {\n return;\n }\n $scope.updateListHttp(force);\n };\n\n $scope.init = function () {\n // Update restricted on repositoryIsSet\n $scope.setRestricted();\n if ($scope.isRestricted) {\n return;\n }\n $scope.updateList(true);\n $scope.getSettings();\n };\n\n $scope.$on('repositoryIsSet', $scope.init);\n\n $scope.pullList = function () {\n const timer = $interval(function () {\n // Skip iteration if we are updating something\n if (!$scope.updating) {\n $scope.updateList(false);\n }\n }, 4000);\n $scope.$on('$destroy', function () {\n $interval.cancel(timer);\n });\n };\n\n $scope.getVisibleFiles = function () {\n return $filter('filter')($scope.files, {name: $scope.fileQuery, type: $scope.getTypeFilter()});\n };\n\n $scope.getTypeFilter = function () {\n if ($scope.viewType === 'server' && ($scope.showItems === 'file' || $scope.showItems === 'directory')) {\n return $scope.showItems;\n } else {\n return '';\n }\n };\n\n $scope.selectAllFiles = function () {\n $scope.getVisibleFiles().forEach(function (file) {\n $scope.fileChecked[file.name] = $scope.checkAll && $scope.importable(file);\n });\n };\n\n $scope.getSettingsFor = function (fileName, withDefaultSettings) {\n if (!withDefaultSettings && !_.isEmpty(fileName) && !_.isEmpty($scope.savedSettings[fileName])) {\n return $scope.savedSettings[fileName];\n } else {\n return angular.copy($scope.defaultSettings);\n }\n };\n\n $scope.setSettingsFor = function (fileName, withDefaultSettings) {\n $scope.settingsFor = fileName;\n $scope.settings = $scope.getSettingsFor(fileName, withDefaultSettings);\n\n const options = {\n templateUrl: 'js/angular/import/templates/settingsModal.html',\n controller: 'SettingsModalCtrl',\n resolve: {\n settings: function () {\n return angular.copy($scope.settings);\n },\n hasParserSettings: $scope.isLocalLocation,\n defaultSettings: function () {\n return $scope.defaultSettings;\n },\n isMultiple: function () {\n return !fileName;\n }\n },\n size: 'lg'\n };\n\n if (GuidesService.isActive()) {\n // Prevents closing dialog when user click outside the if.\n options.backdrop = 'static';\n options.keyboard = false;\n }\n\n const modalInstance = $modal.open(options);\n\n\n modalInstance.result.then(function (settings) {\n $scope.settings = settings;\n if ($scope.settingsFor === '') {\n $scope.importSelected();\n } else {\n $scope.importFile($scope.settingsFor, true);\n }\n\n }, function (settings) {\n $scope.settings = settings;\n });\n };\n\n $scope.updateImport = function (fileName, withDefaultSettings) {\n $scope.settingsFor = fileName;\n $scope.settings = $scope.getSettingsFor(fileName, withDefaultSettings);\n\n $scope.importFile(fileName, false);\n };\n\n $scope.stopImport = function (file) {\n $http({\n method: 'DELETE',\n url: $scope.getBaseUrl(),\n params: {name: file.name, type: file.type}\n }).success(function () {\n $scope.updateList();\n }).error(function (data) {\n toastr.warning($translate.instant('import.error.could.not.stop', {data: getError(data)}));\n });\n };\n\n $scope.importable = function () {\n return true;\n };\n\n $scope.hasImportable = function () {\n return _.filter($scope.files, function (f) {\n return $scope.importable(f);\n }).length > 0;\n };\n\n $scope.showTable = function () {\n const showTable = $scope.files.length > 0 && ('user' === $scope.viewType || 'server' === $scope.viewType);\n if ($scope.checkAll) {\n $scope.switchBatch(true);\n }\n return showTable;\n };\n\n $scope.switchBatch = function (all) {\n if (all) {\n $scope.selectAllFiles();\n } else {\n if ($scope.checkAll) {\n $scope.checkAll = false;\n }\n }\n $scope.batch = _.map(_.filter($scope.files, function (f) {\n return $scope.fileChecked[f.name] && $scope.importable(f);\n }), 'name').length > 0;\n };\n\n $scope.rebatch = function () {\n const newFileChecked = {};\n $scope.batch = false;\n _.each($scope.files, function (file) {\n newFileChecked[file.name] = $scope.fileChecked[file.name];\n $scope.batch |= $scope.fileChecked[file.name];\n });\n if (!$scope.batch) {\n $scope.checkAll = false;\n }\n $scope.fileChecked = newFileChecked;\n };\n\n $scope.getSelectedFiles = function () {\n return _.map(_.filter($scope.getVisibleFiles(), function (f) {\n return $scope.fileChecked[f.name] && $scope.importable(f);\n }), 'name');\n };\n\n $scope.importSelected = function (overrideSettings) {\n const selectedFileNames = $scope.getSelectedFiles();\n\n // Calls the REST API sequentially for the selected files\n const importNext = function () {\n const fileName = selectedFileNames.shift();\n if (fileName) {\n if (overrideSettings) {\n $scope.settings = $scope.getSettingsFor(fileName);\n }\n $scope.importFile(fileName, true, importNext);\n }\n };\n\n importNext();\n };\n\n const resetStatusOrRemoveEntry = function (names, remove) {\n $http({\n method: 'DELETE',\n url: $scope.getBaseUrl() + '/status',\n params: {remove: remove},\n data: names,\n headers: {'Content-type': 'application/json;charset=utf-8'}\n }).success(function () {\n $scope.updateList(true);\n }).error(function (data) {\n toastr.warning($translate.instant('import.error.could.not.clear', {data: getError(data)}));\n });\n };\n\n $scope.resetStatus = function (names) {\n resetStatusOrRemoveEntry(names, false);\n };\n\n $scope.resetStatusSelected = function () {\n $scope.resetStatus($scope.getSelectedFiles());\n };\n\n $scope.removeEntry = function (names) {\n resetStatusOrRemoveEntry(names, true);\n };\n\n $scope.removeEntrySelected = function () {\n $scope.removeEntry($scope.getSelectedFiles());\n };\n\n $scope.isLocalLocation = function () {\n const location = $repositories.getActiveLocation();\n return location && location.local;\n };\n // Settings\n\n $scope.filterSettings = function (fileName) {\n let filtered = _.omitBy($scope.savedSettings[fileName], _.isNull);\n filtered = _.omit(filtered, ['repoLocationHash', 'status', 'message', 'name', 'data', 'type', 'format', 'fileNames', '$$hashKey']);\n return _.map(_.keys(filtered), function (key) {\n return [key, filtered[key]];\n });\n };\n\n $scope.getSettings = function () {\n if (!$scope.canWriteActiveRepo()) {\n return;\n }\n\n $http({\n method: 'GET',\n url: 'rest/repositories/' + $repositories.getActiveRepository() + '/import/settings/default'\n }).success(function (data) {\n $scope.defaultSettings = data;\n }).error(function (data) {\n toastr.warning($translate.instant('import.error.default.settings', {data: getError(data)}));\n });\n };\n\n $scope.getBaseUrl = function () {\n return 'rest/repositories/' + $repositories.getActiveRepository() + '/import/' + $scope.viewUrl;\n };\n\n $scope.pritifySettings = function (settings) {\n return JSON.stringify(settings, null, ' ');\n };\n\n $scope.toTitleCase = function (s) {\n if (!s) {\n return s;\n }\n return _.upperFirst(s.toLowerCase());\n };\n }]);\n\nimportCtrl.controller('ImportCtrl', ['$scope', '$http', 'toastr', '$controller', function ($scope, $http, toastr, $controller) {\n $scope.loader = true;\n angular.extend(this, $controller('CommonCtrl', {$scope: $scope}));\n $scope.viewUrl = 'server';\n $scope.defaultType = 'server';\n $scope.tabId = '#import-server';\n $scope.showItems = 'all';\n\n $scope.pullList();\n\n const importServerFiles = function (selectedFileNames, overrideSettings) {\n if (!$scope.canWriteActiveRepo()) {\n return;\n }\n\n $http({\n method: 'POST',\n url: $scope.getBaseUrl(),\n data: {importSettings: overrideSettings ? null : $scope.settings, fileNames: selectedFileNames}\n }).success(function () {\n $scope.updateList();\n $scope.batch = false;\n $scope.fileChecked = {};\n }).error(function (data) {\n toastr.error($translate.instant('import.could.not.send.file', {data: getError(data)}));\n });\n };\n\n $scope.importSelected = function (overrideSettings) {\n const selectedFileNames = $scope.getSelectedFiles();\n importServerFiles(selectedFileNames, overrideSettings);\n };\n\n $scope.importFile = function (fileName) {\n importServerFiles([fileName]);\n };\n\n $scope.init();\n}]);\n\nimportCtrl.controller('UploadCtrl', ['$scope', 'Upload', '$http', 'toastr', '$controller', '$modal', '$translate', function ($scope, Upload, $http, toastr, $controller, $modal, $translate) {\n $scope.loader = true;\n angular.extend(this, $controller('CommonCtrl', {$scope: $scope}));\n $scope.viewUrl = 'upload';\n $scope.defaultType = 'file';\n $scope.tabId = '#import-user';\n\n $scope.pullList();\n\n $scope.currentFiles = [];\n\n $scope.importable = function () {\n return true;\n };\n\n $scope.fileSelected = function ($files, $file, $newFiles, $duplicateFiles, $invalidFiles) {\n if ($invalidFiles.length > 0) {\n $invalidFiles.forEach(function (f) {\n toastr.warning($translate.instant('import.large.file', {name: f.name, size: Math.floor(f.size / (1024 * 1024))}));\n });\n }\n };\n\n $scope.$watchCollection('currentFiles', function () {\n function disallowBZip2Files() {\n $scope.currentFiles.forEach(function (f) {\n if (f.name.substr(f.name.lastIndexOf('.') + 1) === 'bz2') {\n const fileIdx = $scope.currentFiles.indexOf(f);\n if (fileIdx > -1) {\n $scope.currentFiles.splice(fileIdx, 1);\n }\n toastr.error($translate.instant('import.could.not.upload', {name: f.name}));\n }\n });\n }\n\n if ($scope.currentFiles) {\n // RDF4J does not support decompressing .bz2 files so we want to reject importing them\n disallowBZip2Files();\n }\n $scope.files = _.uniqBy(\n _.union(\n _.map($scope.currentFiles, function (file) {\n return {name: file.name, type: 'file', file: file}\n }),\n $scope.files\n ),\n function (file) {\n return file.name;\n }\n );\n $scope.savedSettings = _.mapKeys(_.filter($scope.files, 'parserSettings'), 'name');\n _.each($scope.currentFiles, function (file) {\n $scope.updateImport(file.name);\n });\n });\n\n $scope.importFile = function (fileName, startImport, nextCallback) {\n const fileIndex = _.findIndex($scope.files, {name: fileName});\n if (fileIndex < 0) {\n toastr.warning($translate.instant('import.no.such.file', {name: fileName}));\n } else {\n const file = $scope.files[fileIndex];\n if (file.type === 'text') {\n // Import text snippet\n $scope.settings.name = file.name;\n $scope.settings.type = file.type;\n $scope.settings.data = file.data;\n $scope.settings.format = file.format;\n file.status = FILE_STATUS.PENDING;\n $http({\n method: 'POST',\n url: $scope.getBaseUrl() + (startImport ? '' : '/update') + '/text',\n data: $scope.settings\n }).success(function () {\n $scope.updateList();\n }).error(function (data) {\n toastr.error($translate.instant('import.could.not.send.data', {data: getError(data)}));\n file.status = FILE_STATUS.ERROR;\n file.message = getError(data);\n }).finally(nextCallback || function () {\n });\n } else if (file.type === 'url') {\n // Submit URL\n $scope.settings.name = file.name;\n $scope.settings.type = file.type;\n $scope.settings.data = file.data;\n $scope.settings.format = file.format;\n file.status = FILE_STATUS.PENDING;\n $http({\n method: 'POST',\n url: $scope.getBaseUrl() + (startImport ? '' : '/update') + '/url',\n data: $scope.settings\n }).success(function () {\n $scope.updateList();\n }).error(function (data) {\n toastr.error($translate.instant('import.could.not.send.url', {data: getError(data)}));\n }).finally(nextCallback || function () {\n });\n } else {\n // Upload real file\n $scope.settings.name = file.name;\n let data;\n if (file.file) {\n data = {file: file.file, importSettings: Upload.jsonBlob($scope.settings)};\n } else {\n data = {importSettings: Upload.jsonBlob($scope.settings)};\n }\n Upload.upload({\n url: $scope.getBaseUrl() + (startImport ? '' : '/update') + '/file',\n data: data\n }).progress(function (evt) {\n if (file.file) {\n file.file = null;\n file.status = FILE_STATUS.UPLOADING;\n } else if (file.status !== FILE_STATUS.UPLOADING) {\n file.status = FILE_STATUS.PENDING;\n }\n\n if (file.status === FILE_STATUS.UPLOADING) {\n const progressPercentage = parseInt(100.0 * evt.loaded / evt.total);\n file.message = progressPercentage + '% uploaded';\n }\n }).success(function () {\n $scope.updateList();\n }).error(function (data) {\n toastr.error($translate.instant('import.could.not.upload.file', {data: getError(data)}));\n file.status = FILE_STATUS.ERROR;\n file.message = getError(data);\n }).finally(nextCallback || function () {\n });\n }\n }\n };\n\n $scope.updateTextImport = function (settings) {\n $scope.updating = true;\n $http({\n method: 'POST',\n url: $scope.getBaseUrl() + '/update/text',\n data: settings\n }).success(function (data) {\n }).error(function (data) {\n toastr.error($translate.instant('import.could.not.update.text', {data: getError(data)}));\n }).finally(function () {\n $scope.updating = false;\n });\n };\n\n $scope.pastedDataIdx = 1;\n\n const formattedDate = function () {\n const date = new Date();\n return date.getFullYear() + '-' + _.padStart(date.getMonth() + 1, 2, '0') + '-' + _.padStart(date.getDate(), 2, '0')\n + ' ' + _.padStart(date.getHours(), 2, '0') + ':' + _.padStart(date.getMinutes(), 2, '0') + ':' + _.padStart(date.getSeconds(), 2, '0')\n + '.' + _.padStart(date.getMilliseconds(), 3, '0');\n };\n\n $scope.pasteData = function (file) {\n const scope = {};\n if (file) {\n scope.rdfText = file.data;\n }\n const modalInstance = $modal.open({\n templateUrl: 'js/angular/import/templates/textSnippet.html',\n controller: 'TextCtrl',\n resolve: {\n text: function () {\n return file ? file.data : '';\n },\n format: function () {\n return file ? file.format : 'text/turtle';\n }\n }\n });\n\n modalInstance.result.then(function (data) {\n if (file) {\n if ((file.data !== data.text || file.format !== data.format) && file.status !== FILE_STATUS.NONE) {\n file.status = FILE_STATUS.NONE;\n file.message = $translate.instant('import.text.snippet.not.imported');\n }\n file.data = data.text;\n file.format = data.format;\n $scope.updateTextImport(file);\n } else {\n file = {type: 'text', name: 'Text snippet ' + formattedDate(), format: data.format, data: data.text};\n $scope.files.unshift(file);\n $scope.updateImport(file.name);\n }\n if (data.startImport) {\n $scope.setSettingsFor(file.name);\n }\n });\n };\n\n $scope.rdfDataFromURL = function () {\n const modalInstance = $modal.open({\n templateUrl: 'js/angular/import/templates/urlImport.html',\n controller: 'UrlCtrl',\n scope: $scope\n });\n\n modalInstance.result.then(function (data) {\n // URL may already exist\n const existing = _.find($scope.files, {type: 'url', name: data.url});\n if (existing) {\n existing.format = data.format;\n } else {\n $scope.files.unshift({type: 'url', name: data.url, format: data.format, data: data.url});\n }\n $scope.updateImport(data.url, true);\n if (data.startImport) {\n $scope.setSettingsFor(data.url, true);\n }\n });\n };\n\n $scope.init();\n}]);\n\nimportCtrl.controller('UrlCtrl', ['$scope', '$modalInstance', 'toastr', function ($scope, $modalInstance) {\n $scope.importFormat = {name: 'Auto', type: ''};\n $scope.startImport = true;\n\n $scope.cancel = function () {\n $modalInstance.dismiss();\n };\n\n $scope.ok = function () {\n $modalInstance.close({\n url: $scope.dataUrl,\n format: $scope.importFormat.type,\n startImport: $scope.startImport\n });\n };\n}]);\n\nimportCtrl.controller('TextCtrl', ['$scope', '$modalInstance', 'text', 'format', function ($scope, $modalInstance, text, format) {\n $scope.importFormats = [\n {name: 'RDF/JSON', type: 'application/rdf+json'},\n {name: 'JSON-LD', type: 'application/ld+json'},\n {name: 'RDF/XML', type: 'application/rdf+xml'},\n {name: 'N3', type: 'text/rdf+n3'},\n {name: 'N-Triples', type: 'text/plain'},\n {name: 'N-Quads', type: 'text/x-nquads'},\n {name: 'Turtle', type: 'text/turtle'},\n {name: 'Turtle*', type: 'application/x-turtlestar'},\n {name: 'TriX', type: 'application/trix'},\n {name: 'TriG', type: 'application/x-trig'},\n {name: 'TriG*', type: 'application/x-trigstar'},\n ];\n\n $scope.rdfText = text;\n $scope.importFormat = _.find($scope.importFormats, {type: format});\n $scope.startImport = true;\n\n $scope.setFormat = function (format) {\n $scope.importFormat = format;\n };\n\n $scope.cancel = function () {\n $modalInstance.dismiss();\n };\n\n $scope.ok = function () {\n $modalInstance.close({\n text: $scope.rdfText,\n format: $scope.importFormat.type,\n startImport: $scope.startImport\n });\n };\n}]);\n\nimportCtrl.controller('TabCtrl', ['$scope', '$location', function ($scope, $location) {\n $scope.viewType = $location.hash();\n if ($scope.viewType !== 'user' && $scope.viewType !== 'server') {\n $scope.viewType = 'user';\n }\n $scope.isCollapsed = false;\n if ($scope.viewType === 'user') {\n $scope.templateUrl = 'js/angular/import/templates/uploadInfo.html';\n } else {\n $scope.templateUrl = 'js/angular/import/templates/importInfo.html';\n }\n $scope.changeHelpTemplate = function (templateFile) {\n $scope.templateUrl = 'js/angular/import/templates/' + templateFile;\n };\n $scope.commonUrl = 'js/angular/import/templates/commonInfo.html';\n}]);\n\nimportCtrl.controller('SettingsModalCtrl', ['$scope', '$modalInstance', 'toastr', 'UriUtils', 'settings', 'hasParserSettings', 'defaultSettings', 'isMultiple', '$translate',\n function ($scope, $modalInstance, toastr, UriUtils, settings, hasParserSettings, defaultSettings, isMultiple, $translate) {\n $scope.hasError = function (error, input) {\n return _.find(error, function (o) {\n return input === o['$name'];\n });\n };\n\n $scope.settings = settings;\n $scope.hasParserSettings = hasParserSettings;\n if ($scope.settings.context) {\n if ($scope.settings.context === 'default') {\n $scope.target = 'default';\n $scope.settings.context = '';\n } else {\n $scope.target = 'named';\n }\n } else {\n $scope.target = 'data';\n }\n $scope.isMultiple = isMultiple;\n $scope.enableReplace = !!($scope.settings.replaceGraphs && $scope.settings.replaceGraphs.length);\n\n const fixSettings = function () {\n if ($scope.target === 'default') {\n $scope.settings.context = 'default';\n } else if ($scope.target === 'data') {\n $scope.settings.context = '';\n }\n if ($scope.enableReplace) {\n if ($scope.target === 'default' || $scope.target === 'named') {\n $scope.settings.replaceGraphs = [$scope.settings.context];\n }\n } else {\n $scope.settings.replaceGraphs = [];\n }\n };\n\n $scope.ok = function () {\n // resets the validity of a field only used for temporary things\n $scope.settingsForm.replaceGraph.$setValidity('replaceGraph', true);\n\n if ($scope.settingsForm.$valid) {\n fixSettings();\n $modalInstance.close($scope.settings);\n }\n };\n\n $scope.cancel = function () {\n fixSettings();\n $modalInstance.dismiss($scope.settings);\n };\n\n $scope.reset = function () {\n $scope.settings = angular.copy(defaultSettings);\n $scope.target = 'data';\n };\n\n $scope.addReplaceGraph = function (graph) {\n let valid = true;\n if (graph !== 'default') {\n valid = UriUtils.isValidIri(graph);\n }\n $scope.settingsForm.replaceGraph.$setTouched();\n $scope.settingsForm.replaceGraph.$setValidity('replaceGraph', valid);\n\n if ($scope.settingsForm.replaceGraph.$valid) {\n $scope.settings.replaceGraphs = $scope.settings.replaceGraphs || [];\n if (_.indexOf($scope.settings.replaceGraphs, graph) === -1) {\n $scope.replaceGraph = '';\n $scope.settings.replaceGraphs.push(graph);\n } else {\n toastr.warning($translate.instant('import.graph.already.in.list'));\n }\n }\n };\n\n $scope.checkEnterReplaceGraph = function (event, graph) {\n if (event.keyCode === 13) {\n event.preventDefault();\n\n $scope.addReplaceGraph(graph);\n }\n };\n\n $scope.showAdvancedSettings = false;\n $scope.switchParserSettings = function () {\n $scope.showAdvancedSettings = !$scope.showAdvancedSettings;\n };\n}]);\n"],"sourceRoot":""}
1
+ {"version":3,"sources":["webpack:///./src/js/angular/import/controllers.js"],"names":["FILE_STATUS","importCtrl","angular","module","controller","$scope","$http","toastr","$interval","$repositories","$modal","$filter","$jwtAuth","$location","$translate","LicenseRestService","GuidesService","files","fileChecked","checkAll","popoverTemplateUrl","fileQuery","getAppData","getInfo","success","data","appData","properties","i","length","key","source","value","maxUploadFileSizeMB","error","msg","getError","instant","fileFormats","gzs","_","map","f","basics","fileFormatsExtended","reduce","union","el","all","fileFormatsHuman","textFileFormatsHuman","filter","updateListHttp","force","method","url","getBaseUrl","forEach","type","defaultType","rebatch","remoteStatus","find","matches","name","status","assign","viewType","undefined","showClearStatuses","file","savedSettings","mapKeys","loader","warning","$watch","$","tabId","is","hash","updateList","canWriteActiveRepo","init","setRestricted","isRestricted","getSettings","$on","pullList","timer","updating","cancel","getVisibleFiles","getTypeFilter","showItems","selectAllFiles","importable","getSettingsFor","fileName","withDefaultSettings","isEmpty","copy","defaultSettings","setSettingsFor","settingsFor","settings","options","templateUrl","resolve","hasParserSettings","isLocalLocation","isMultiple","size","isActive","backdrop","keyboard","open","result","then","importSelected","importFile","updateImport","stopImport","params","hasImportable","showTable","switchBatch","batch","newFileChecked","each","getSelectedFiles","overrideSettings","selectedFileNames","importNext","shift","resetStatusOrRemoveEntry","names","remove","headers","resetStatus","resetStatusSelected","removeEntry","removeEntrySelected","location","getActiveLocation","local","filterSettings","filtered","omitBy","isNull","omit","keys","getActiveRepository","viewUrl","pritifySettings","JSON","stringify","toTitleCase","s","upperFirst","toLowerCase","$controller","extend","this","importServerFiles","importSettings","fileNames","Upload","currentFiles","fileSelected","$files","$file","$newFiles","$duplicateFiles","$invalidFiles","Math","floor","$watchCollection","substr","lastIndexOf","fileIdx","indexOf","splice","uniqBy","startImport","nextCallback","fileIndex","findIndex","format","message","finally","jsonBlob","upload","progress","evt","progressPercentage","parseInt","loaded","total","updateTextImport","pastedDataIdx","formattedDate","date","Date","getFullYear","padStart","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","pasteData","text","unshift","rdfDataFromURL","scope","existing","$modalInstance","importFormat","dismiss","ok","close","dataUrl","importFormats","rdfText","setFormat","isCollapsed","changeHelpTemplate","templateFile","commonUrl","UriUtils","hasError","input","o","context","target","enableReplace","replaceGraphs","fixSettings","settingsForm","replaceGraph","$setValidity","$valid","reset","addReplaceGraph","graph","valid","isValidIri","$setTouched","push","checkEnterReplaceGraph","event","keyCode","preventDefault","showAdvancedSettings","switchParserSettings"],"mappings":"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","file":"10.0d7e127640f8c0678145.bundle.js","sourcesContent":["import 'angular/core/services';\nimport 'angular/utils/uri-utils';\n\nconst FILE_STATUS = {\n 'UPLOADING': 'UPLOADING',\n 'PENDING': 'PENDING',\n 'ERROR': 'ERROR',\n 'DONE': 'DONE',\n 'NONE': 'NONE'\n};\n\nconst modules = [\n 'ui.bootstrap',\n 'toastr',\n 'graphdb.framework.core.services.repositories',\n 'graphdb.framework.utils.uriutils',\n 'graphdb.framework.guides.services'\n];\n\nconst importCtrl = angular.module('graphdb.framework.impex.import.controllers', modules);\n\nimportCtrl.controller('CommonCtrl', ['$scope', '$http', 'toastr', '$interval', '$repositories', '$modal', '$filter', '$jwtAuth', '$location', '$translate', 'LicenseRestService', 'GuidesService',\n function ($scope, $http, toastr, $interval, $repositories, $modal, $filter, $jwtAuth, $location, $translate, LicenseRestService, GuidesService) {\n $scope.files = [];\n $scope.fileChecked = {};\n $scope.checkAll = false;\n $scope.popoverTemplateUrl = 'settingsPopoverTemplate.html';\n $scope.fileQuery = '';\n\n $scope.getAppData = function () {\n LicenseRestService.getInfo().success(function (data) {\n $scope.appData = {};\n\n $scope.appData.properties = {};\n\n for (let i = 0; i < data.length; i++) {\n $scope.appData.properties[data[i].key] = {\n source: data[i].source,\n value: data[i].value\n };\n }\n $scope.maxUploadFileSizeMB = $scope.appData.properties['graphdb.workbench.maxUploadSize'].value / (1024 * 1024);\n }).error(function (data) {\n const msg = getError(data);\n toastr.error(msg, $translate.instant('common.error'));\n });\n };\n\n $scope.getAppData();\n\n $scope.fileFormats = ['ttl', 'ttls', 'rdf', 'rj', 'n3', 'nt', 'nq', 'trig', 'trigs', 'trix', 'brf', 'owl', 'jsonld'];\n\n {\n const gzs = _.map($scope.fileFormats, function (f) {\n return '.' + f + '.gz';\n });\n const basics = _.map($scope.fileFormats, function (f) {\n return '.' + f;\n });\n $scope.fileFormatsExtended = _.reduce(_.union(gzs, basics, ['.zip']), function (el, all) {\n return el + ', ' + all;\n });\n $scope.fileFormatsHuman = _.reduce(basics, function (el, all) {\n return el + ' ' + all;\n }) + $translate.instant('import.gz.zip');\n $scope.textFileFormatsHuman = _.reduce(_.filter(basics, function (el) {\n return el !== '.brf';\n }),\n function (el, all) {\n return el + ' ' + all;\n });\n }\n\n $scope.updateListHttp = function (force) {\n $http({\n method: 'GET',\n url: $scope.getBaseUrl()\n }).success(function (data) {\n if ($scope.files.length === 0 || force) {\n $scope.files = data;\n _.forEach($scope.files, function (f) {\n if (!f.type) {\n f.type = $scope.defaultType;\n }\n });\n $scope.rebatch();\n } else {\n $scope.files.forEach(function (f) {\n const remoteStatus = _.find(data, _.matches({'name': f.name}));\n if (f.status && remoteStatus) {\n _.assign(f, remoteStatus);\n }\n if (!f.type) {\n f.type = $scope.defaultType;\n }\n });\n }\n // Need new status here\n if (force && 'user' === $scope.viewType) {\n $scope.files = _.filter($scope.files, function (f) {\n return f.status !== undefined;\n });\n }\n $scope.showClearStatuses = _.filter($scope.files, function (file) {\n return file.status === FILE_STATUS.DONE || file.status === FILE_STATUS.ERROR;\n }).length > 0;\n\n $scope.savedSettings = _.mapKeys(_.filter($scope.files, 'parserSettings'), 'name');\n\n $scope.loader = false;\n }).error(function (data) {\n toastr.warning($translate.instant('import.error.could.not.get.files', {data: getError(data)}));\n $scope.loader = false;\n });\n };\n\n // update the list instantly when the tab is changed\n $scope.$watch(function () {\n return $($scope.tabId).is(':visible');\n }, function () {\n if ($($scope.tabId).is(':visible')) {\n $scope.updateListHttp(false);\n $location.hash($scope.viewType);\n }\n });\n\n $scope.updateList = function (force) {\n if (!$scope.canWriteActiveRepo()) {\n return;\n }\n\n if (!$($scope.tabId).is(':visible')) {\n return;\n }\n $scope.updateListHttp(force);\n };\n\n $scope.init = function () {\n // Update restricted on repositoryIsSet\n $scope.setRestricted();\n if ($scope.isRestricted) {\n return;\n }\n $scope.updateList(true);\n $scope.getSettings();\n };\n\n $scope.$on('repositoryIsSet', $scope.init);\n\n $scope.pullList = function () {\n const timer = $interval(function () {\n // Skip iteration if we are updating something\n if (!$scope.updating) {\n $scope.updateList(false);\n }\n }, 4000);\n $scope.$on('$destroy', function () {\n $interval.cancel(timer);\n });\n };\n\n $scope.getVisibleFiles = function () {\n return $filter('filter')($scope.files, {name: $scope.fileQuery, type: $scope.getTypeFilter()});\n };\n\n $scope.getTypeFilter = function () {\n if ($scope.viewType === 'server' && ($scope.showItems === 'file' || $scope.showItems === 'directory')) {\n return $scope.showItems;\n } else {\n return '';\n }\n };\n\n $scope.selectAllFiles = function () {\n $scope.getVisibleFiles().forEach(function (file) {\n $scope.fileChecked[file.name] = $scope.checkAll && $scope.importable(file);\n });\n };\n\n $scope.getSettingsFor = function (fileName, withDefaultSettings) {\n if (!withDefaultSettings && !_.isEmpty(fileName) && !_.isEmpty($scope.savedSettings[fileName])) {\n return $scope.savedSettings[fileName];\n } else {\n return angular.copy($scope.defaultSettings);\n }\n };\n\n $scope.setSettingsFor = function (fileName, withDefaultSettings) {\n $scope.settingsFor = fileName;\n $scope.settings = $scope.getSettingsFor(fileName, withDefaultSettings);\n\n const options = {\n templateUrl: 'js/angular/import/templates/settingsModal.html',\n controller: 'SettingsModalCtrl',\n resolve: {\n settings: function () {\n return angular.copy($scope.settings);\n },\n hasParserSettings: $scope.isLocalLocation,\n defaultSettings: function () {\n return $scope.defaultSettings;\n },\n isMultiple: function () {\n return !fileName;\n }\n },\n size: 'lg'\n };\n\n if (GuidesService.isActive()) {\n // Prevents closing dialog when user click outside the if.\n options.backdrop = 'static';\n options.keyboard = false;\n }\n\n const modalInstance = $modal.open(options);\n\n\n modalInstance.result.then(function (settings) {\n $scope.settings = settings;\n if ($scope.settingsFor === '') {\n $scope.importSelected();\n } else {\n $scope.importFile($scope.settingsFor, true);\n }\n\n }, function (settings) {\n $scope.settings = settings;\n });\n };\n\n $scope.updateImport = function (fileName, withDefaultSettings) {\n $scope.settingsFor = fileName;\n $scope.settings = $scope.getSettingsFor(fileName, withDefaultSettings);\n\n $scope.importFile(fileName, false);\n };\n\n $scope.stopImport = function (file) {\n $http({\n method: 'DELETE',\n url: $scope.getBaseUrl(),\n params: {name: file.name, type: file.type}\n }).success(function () {\n $scope.updateList();\n }).error(function (data) {\n toastr.warning($translate.instant('import.error.could.not.stop', {data: getError(data)}));\n });\n };\n\n $scope.importable = function () {\n return true;\n };\n\n $scope.hasImportable = function () {\n return _.filter($scope.files, function (f) {\n return $scope.importable(f);\n }).length > 0;\n };\n\n $scope.showTable = function () {\n const showTable = $scope.files.length > 0 && ('user' === $scope.viewType || 'server' === $scope.viewType);\n if ($scope.checkAll) {\n $scope.switchBatch(true);\n }\n return showTable;\n };\n\n $scope.switchBatch = function (all) {\n if (all) {\n $scope.selectAllFiles();\n } else {\n if ($scope.checkAll) {\n $scope.checkAll = false;\n }\n }\n $scope.batch = _.map(_.filter($scope.files, function (f) {\n return $scope.fileChecked[f.name] && $scope.importable(f);\n }), 'name').length > 0;\n };\n\n $scope.rebatch = function () {\n const newFileChecked = {};\n $scope.batch = false;\n _.each($scope.files, function (file) {\n newFileChecked[file.name] = $scope.fileChecked[file.name];\n $scope.batch |= $scope.fileChecked[file.name];\n });\n if (!$scope.batch) {\n $scope.checkAll = false;\n }\n $scope.fileChecked = newFileChecked;\n };\n\n $scope.getSelectedFiles = function () {\n return _.map(_.filter($scope.getVisibleFiles(), function (f) {\n return $scope.fileChecked[f.name] && $scope.importable(f);\n }), 'name');\n };\n\n $scope.importSelected = function (overrideSettings) {\n const selectedFileNames = $scope.getSelectedFiles();\n\n // Calls the REST API sequentially for the selected files\n const importNext = function () {\n const fileName = selectedFileNames.shift();\n if (fileName) {\n if (overrideSettings) {\n $scope.settings = $scope.getSettingsFor(fileName);\n }\n $scope.importFile(fileName, true, importNext);\n }\n };\n\n importNext();\n };\n\n const resetStatusOrRemoveEntry = function (names, remove) {\n $http({\n method: 'DELETE',\n url: $scope.getBaseUrl() + '/status',\n params: {remove: remove},\n data: names,\n headers: {'Content-type': 'application/json;charset=utf-8'}\n }).success(function () {\n $scope.updateList(true);\n }).error(function (data) {\n toastr.warning($translate.instant('import.error.could.not.clear', {data: getError(data)}));\n });\n };\n\n $scope.resetStatus = function (names) {\n resetStatusOrRemoveEntry(names, false);\n };\n\n $scope.resetStatusSelected = function () {\n $scope.resetStatus($scope.getSelectedFiles());\n };\n\n $scope.removeEntry = function (names) {\n resetStatusOrRemoveEntry(names, true);\n };\n\n $scope.removeEntrySelected = function () {\n $scope.removeEntry($scope.getSelectedFiles());\n };\n\n $scope.isLocalLocation = function () {\n const location = $repositories.getActiveLocation();\n return location && location.local;\n };\n // Settings\n\n $scope.filterSettings = function (fileName) {\n let filtered = _.omitBy($scope.savedSettings[fileName], _.isNull);\n filtered = _.omit(filtered, ['repoLocationHash', 'status', 'message', 'name', 'data', 'type', 'format', 'fileNames', '$$hashKey']);\n return _.map(_.keys(filtered), function (key) {\n return [key, filtered[key]];\n });\n };\n\n $scope.getSettings = function () {\n if (!$scope.canWriteActiveRepo()) {\n return;\n }\n\n $http({\n method: 'GET',\n url: 'rest/repositories/' + $repositories.getActiveRepository() + '/import/settings/default'\n }).success(function (data) {\n $scope.defaultSettings = data;\n }).error(function (data) {\n toastr.warning($translate.instant('import.error.default.settings', {data: getError(data)}));\n });\n };\n\n $scope.getBaseUrl = function () {\n return 'rest/repositories/' + $repositories.getActiveRepository() + '/import/' + $scope.viewUrl;\n };\n\n $scope.pritifySettings = function (settings) {\n return JSON.stringify(settings, null, ' ');\n };\n\n $scope.toTitleCase = function (s) {\n if (!s) {\n return s;\n }\n return _.upperFirst(s.toLowerCase());\n };\n }]);\n\nimportCtrl.controller('ImportCtrl', ['$scope', '$http', 'toastr', '$controller', function ($scope, $http, toastr, $controller) {\n $scope.loader = true;\n angular.extend(this, $controller('CommonCtrl', {$scope: $scope}));\n $scope.viewUrl = 'server';\n $scope.defaultType = 'server';\n $scope.tabId = '#import-server';\n $scope.showItems = 'all';\n\n $scope.pullList();\n\n const importServerFiles = function (selectedFileNames, overrideSettings) {\n if (!$scope.canWriteActiveRepo()) {\n return;\n }\n\n $http({\n method: 'POST',\n url: $scope.getBaseUrl(),\n data: {importSettings: overrideSettings ? null : $scope.settings, fileNames: selectedFileNames}\n }).success(function () {\n $scope.updateList();\n $scope.batch = false;\n $scope.fileChecked = {};\n }).error(function (data) {\n toastr.error($translate.instant('import.could.not.send.file', {data: getError(data)}));\n });\n };\n\n $scope.importSelected = function (overrideSettings) {\n const selectedFileNames = $scope.getSelectedFiles();\n importServerFiles(selectedFileNames, overrideSettings);\n };\n\n $scope.importFile = function (fileName) {\n importServerFiles([fileName]);\n };\n\n $scope.init();\n}]);\n\nimportCtrl.controller('UploadCtrl', ['$scope', 'Upload', '$http', 'toastr', '$controller', '$modal', '$translate', function ($scope, Upload, $http, toastr, $controller, $modal, $translate) {\n $scope.loader = true;\n angular.extend(this, $controller('CommonCtrl', {$scope: $scope}));\n $scope.viewUrl = 'upload';\n $scope.defaultType = 'file';\n $scope.tabId = '#import-user';\n\n $scope.pullList();\n\n $scope.currentFiles = [];\n\n $scope.importable = function () {\n return true;\n };\n\n $scope.fileSelected = function ($files, $file, $newFiles, $duplicateFiles, $invalidFiles) {\n if ($invalidFiles.length > 0) {\n $invalidFiles.forEach(function (f) {\n toastr.warning($translate.instant('import.large.file', {name: f.name, size: Math.floor(f.size / (1024 * 1024))}));\n });\n }\n };\n\n $scope.$watchCollection('currentFiles', function () {\n function disallowBZip2Files() {\n $scope.currentFiles.forEach(function (f) {\n if (f.name.substr(f.name.lastIndexOf('.') + 1) === 'bz2') {\n const fileIdx = $scope.currentFiles.indexOf(f);\n if (fileIdx > -1) {\n $scope.currentFiles.splice(fileIdx, 1);\n }\n toastr.error($translate.instant('import.could.not.upload', {name: f.name}));\n }\n });\n }\n\n if ($scope.currentFiles) {\n // RDF4J does not support decompressing .bz2 files so we want to reject importing them\n disallowBZip2Files();\n }\n $scope.files = _.uniqBy(\n _.union(\n _.map($scope.currentFiles, function (file) {\n return {name: file.name, type: 'file', file: file}\n }),\n $scope.files\n ),\n function (file) {\n return file.name;\n }\n );\n $scope.savedSettings = _.mapKeys(_.filter($scope.files, 'parserSettings'), 'name');\n _.each($scope.currentFiles, function (file) {\n $scope.updateImport(file.name);\n });\n });\n\n $scope.importFile = function (fileName, startImport, nextCallback) {\n const fileIndex = _.findIndex($scope.files, {name: fileName});\n if (fileIndex < 0) {\n toastr.warning($translate.instant('import.no.such.file', {name: fileName}));\n } else {\n const file = $scope.files[fileIndex];\n if (file.type === 'text') {\n // Import text snippet\n $scope.settings.name = file.name;\n $scope.settings.type = file.type;\n $scope.settings.data = file.data;\n $scope.settings.format = file.format;\n file.status = FILE_STATUS.PENDING;\n $http({\n method: 'POST',\n url: $scope.getBaseUrl() + (startImport ? '' : '/update') + '/text',\n data: $scope.settings\n }).success(function () {\n $scope.updateList();\n }).error(function (data) {\n toastr.error($translate.instant('import.could.not.send.data', {data: getError(data)}));\n file.status = FILE_STATUS.ERROR;\n file.message = getError(data);\n }).finally(nextCallback || function () {\n });\n } else if (file.type === 'url') {\n // Submit URL\n $scope.settings.name = file.name;\n $scope.settings.type = file.type;\n $scope.settings.data = file.data;\n $scope.settings.format = file.format;\n file.status = FILE_STATUS.PENDING;\n $http({\n method: 'POST',\n url: $scope.getBaseUrl() + (startImport ? '' : '/update') + '/url',\n data: $scope.settings\n }).success(function () {\n $scope.updateList();\n }).error(function (data) {\n toastr.error($translate.instant('import.could.not.send.url', {data: getError(data)}));\n }).finally(nextCallback || function () {\n });\n } else {\n // Upload real file\n $scope.settings.name = file.name;\n let data;\n if (file.file) {\n data = {file: file.file, importSettings: Upload.jsonBlob($scope.settings)};\n } else {\n data = {importSettings: Upload.jsonBlob($scope.settings)};\n }\n Upload.upload({\n url: $scope.getBaseUrl() + (startImport ? '' : '/update') + '/file',\n data: data\n }).progress(function (evt) {\n if (file.file) {\n file.file = null;\n file.status = FILE_STATUS.UPLOADING;\n } else if (file.status !== FILE_STATUS.UPLOADING) {\n file.status = FILE_STATUS.PENDING;\n }\n\n if (file.status === FILE_STATUS.UPLOADING) {\n const progressPercentage = parseInt(100.0 * evt.loaded / evt.total);\n file.message = progressPercentage + '% uploaded';\n }\n }).success(function () {\n $scope.updateList();\n }).error(function (data) {\n toastr.error($translate.instant('import.could.not.upload.file', {data: getError(data)}));\n file.status = FILE_STATUS.ERROR;\n file.message = getError(data);\n }).finally(nextCallback || function () {\n });\n }\n }\n };\n\n $scope.updateTextImport = function (settings) {\n $scope.updating = true;\n $http({\n method: 'POST',\n url: $scope.getBaseUrl() + '/update/text',\n data: settings\n }).success(function (data) {\n }).error(function (data) {\n toastr.error($translate.instant('import.could.not.update.text', {data: getError(data)}));\n }).finally(function () {\n $scope.updating = false;\n });\n };\n\n $scope.pastedDataIdx = 1;\n\n const formattedDate = function () {\n const date = new Date();\n return date.getFullYear() + '-' + _.padStart(date.getMonth() + 1, 2, '0') + '-' + _.padStart(date.getDate(), 2, '0')\n + ' ' + _.padStart(date.getHours(), 2, '0') + ':' + _.padStart(date.getMinutes(), 2, '0') + ':' + _.padStart(date.getSeconds(), 2, '0')\n + '.' + _.padStart(date.getMilliseconds(), 3, '0');\n };\n\n $scope.pasteData = function (file) {\n const scope = {};\n if (file) {\n scope.rdfText = file.data;\n }\n const modalInstance = $modal.open({\n templateUrl: 'js/angular/import/templates/textSnippet.html',\n controller: 'TextCtrl',\n resolve: {\n text: function () {\n return file ? file.data : '';\n },\n format: function () {\n return file ? file.format : 'text/turtle';\n }\n }\n });\n\n modalInstance.result.then(function (data) {\n if (file) {\n if ((file.data !== data.text || file.format !== data.format) && file.status !== FILE_STATUS.NONE) {\n file.status = FILE_STATUS.NONE;\n file.message = $translate.instant('import.text.snippet.not.imported');\n }\n file.data = data.text;\n file.format = data.format;\n $scope.updateTextImport(file);\n } else {\n file = {type: 'text', name: 'Text snippet ' + formattedDate(), format: data.format, data: data.text};\n $scope.files.unshift(file);\n $scope.updateImport(file.name);\n }\n if (data.startImport) {\n $scope.setSettingsFor(file.name);\n }\n });\n };\n\n $scope.rdfDataFromURL = function () {\n const modalInstance = $modal.open({\n templateUrl: 'js/angular/import/templates/urlImport.html',\n controller: 'UrlCtrl',\n scope: $scope\n });\n\n modalInstance.result.then(function (data) {\n // URL may already exist\n const existing = _.find($scope.files, {type: 'url', name: data.url});\n if (existing) {\n existing.format = data.format;\n } else {\n $scope.files.unshift({type: 'url', name: data.url, format: data.format, data: data.url});\n }\n $scope.updateImport(data.url, true);\n if (data.startImport) {\n $scope.setSettingsFor(data.url, true);\n }\n });\n };\n\n $scope.init();\n}]);\n\nimportCtrl.controller('UrlCtrl', ['$scope', '$modalInstance', 'toastr', function ($scope, $modalInstance) {\n $scope.importFormat = {name: 'Auto', type: ''};\n $scope.startImport = true;\n\n $scope.cancel = function () {\n $modalInstance.dismiss();\n };\n\n $scope.ok = function () {\n $modalInstance.close({\n url: $scope.dataUrl,\n format: $scope.importFormat.type,\n startImport: $scope.startImport\n });\n };\n}]);\n\nimportCtrl.controller('TextCtrl', ['$scope', '$modalInstance', 'text', 'format', function ($scope, $modalInstance, text, format) {\n $scope.importFormats = [\n {name: 'RDF/JSON', type: 'application/rdf+json'},\n {name: 'JSON-LD', type: 'application/ld+json'},\n {name: 'RDF/XML', type: 'application/rdf+xml'},\n {name: 'N3', type: 'text/rdf+n3'},\n {name: 'N-Triples', type: 'text/plain'},\n {name: 'N-Quads', type: 'text/x-nquads'},\n {name: 'Turtle', type: 'text/turtle'},\n {name: 'Turtle*', type: 'application/x-turtlestar'},\n {name: 'TriX', type: 'application/trix'},\n {name: 'TriG', type: 'application/x-trig'},\n {name: 'TriG*', type: 'application/x-trigstar'},\n ];\n\n $scope.rdfText = text;\n $scope.importFormat = _.find($scope.importFormats, {type: format});\n $scope.startImport = true;\n\n $scope.setFormat = function (format) {\n $scope.importFormat = format;\n };\n\n $scope.cancel = function () {\n $modalInstance.dismiss();\n };\n\n $scope.ok = function () {\n $modalInstance.close({\n text: $scope.rdfText,\n format: $scope.importFormat.type,\n startImport: $scope.startImport\n });\n };\n}]);\n\nimportCtrl.controller('TabCtrl', ['$scope', '$location', function ($scope, $location) {\n $scope.viewType = $location.hash();\n if ($scope.viewType !== 'user' && $scope.viewType !== 'server') {\n $scope.viewType = 'user';\n }\n $scope.isCollapsed = false;\n if ($scope.viewType === 'user') {\n $scope.templateUrl = 'js/angular/import/templates/uploadInfo.html';\n } else {\n $scope.templateUrl = 'js/angular/import/templates/importInfo.html';\n }\n $scope.changeHelpTemplate = function (templateFile) {\n $scope.templateUrl = 'js/angular/import/templates/' + templateFile;\n };\n $scope.commonUrl = 'js/angular/import/templates/commonInfo.html';\n}]);\n\nimportCtrl.controller('SettingsModalCtrl', ['$scope', '$modalInstance', 'toastr', 'UriUtils', 'settings', 'hasParserSettings', 'defaultSettings', 'isMultiple', '$translate',\n function ($scope, $modalInstance, toastr, UriUtils, settings, hasParserSettings, defaultSettings, isMultiple, $translate) {\n $scope.hasError = function (error, input) {\n return _.find(error, function (o) {\n return input === o['$name'];\n });\n };\n\n $scope.settings = settings;\n $scope.hasParserSettings = hasParserSettings;\n if ($scope.settings.context) {\n if ($scope.settings.context === 'default') {\n $scope.target = 'default';\n $scope.settings.context = '';\n } else {\n $scope.target = 'named';\n }\n } else {\n $scope.target = 'data';\n }\n $scope.isMultiple = isMultiple;\n $scope.enableReplace = !!($scope.settings.replaceGraphs && $scope.settings.replaceGraphs.length);\n\n const fixSettings = function () {\n if ($scope.target === 'default') {\n $scope.settings.context = 'default';\n } else if ($scope.target === 'data') {\n $scope.settings.context = '';\n }\n if ($scope.enableReplace) {\n if ($scope.target === 'default' || $scope.target === 'named') {\n $scope.settings.replaceGraphs = [$scope.settings.context];\n }\n } else {\n $scope.settings.replaceGraphs = [];\n }\n };\n\n $scope.ok = function () {\n // resets the validity of a field only used for temporary things\n $scope.settingsForm.replaceGraph.$setValidity('replaceGraph', true);\n\n if ($scope.settingsForm.$valid) {\n fixSettings();\n $modalInstance.close($scope.settings);\n }\n };\n\n $scope.cancel = function () {\n fixSettings();\n $modalInstance.dismiss($scope.settings);\n };\n\n $scope.reset = function () {\n $scope.settings = angular.copy(defaultSettings);\n $scope.target = 'data';\n };\n\n $scope.addReplaceGraph = function (graph) {\n let valid = true;\n if (graph !== 'default') {\n valid = UriUtils.isValidIri(graph);\n }\n $scope.settingsForm.replaceGraph.$setTouched();\n $scope.settingsForm.replaceGraph.$setValidity('replaceGraph', valid);\n\n if ($scope.settingsForm.replaceGraph.$valid) {\n $scope.settings.replaceGraphs = $scope.settings.replaceGraphs || [];\n if (_.indexOf($scope.settings.replaceGraphs, graph) === -1) {\n $scope.replaceGraph = '';\n $scope.settings.replaceGraphs.push(graph);\n } else {\n toastr.warning($translate.instant('import.graph.already.in.list'));\n }\n }\n };\n\n $scope.checkEnterReplaceGraph = function (event, graph) {\n if (event.keyCode === 13) {\n event.preventDefault();\n\n $scope.addReplaceGraph(graph);\n }\n };\n\n $scope.showAdvancedSettings = false;\n $scope.switchParserSettings = function () {\n $scope.showAdvancedSettings = !$scope.showAdvancedSettings;\n };\n}]);\n"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[100],{141:function(e,r){PluginRegistry.add("route",{url:"/monitor/resources",module:"graphdb.framework.jmx.resources",path:"resources/app",chunk:"resources",controller:"ResourcesCtrl",templateUrl:"pages/monitor/resources.html",title:"view.resource.monitoring.title",helpInfo:"view.resource.monitoring.helpInfo"}),PluginRegistry.add("main.menu",{items:[{label:"Monitor",labelKey:"menu.monitor.label",href:"#",order:3,role:"ROLE_MONITORING",icon:"icon-monitoring",guideSelector:"menu-monitor"},{label:"Resources",labelKey:"menu.resources.label",href:"monitor/resources",role:"ROLE_MONITORING",order:2,parent:"Monitor",guideSelector:"sub-menu-resources"}]})}}]);
2
- //# sourceMappingURL=100.24bbc960b22ec8f26f68.bundle.js.map
1
+ (window.webpackJsonp=window.webpackJsonp||[]).push([[100],{142:function(e,r){PluginRegistry.add("route",{url:"/monitor/resources",module:"graphdb.framework.jmx.resources",path:"resources/app",chunk:"resources",controller:"ResourcesCtrl",templateUrl:"pages/monitor/resources.html",title:"view.resource.monitoring.title",helpInfo:"view.resource.monitoring.helpInfo"}),PluginRegistry.add("main.menu",{items:[{label:"Monitor",labelKey:"menu.monitor.label",href:"#",order:3,role:"ROLE_MONITORING",icon:"icon-monitoring",guideSelector:"menu-monitor"},{label:"Resources",labelKey:"menu.resources.label",href:"monitor/resources",role:"ROLE_MONITORING",order:2,parent:"Monitor",guideSelector:"sub-menu-resources"}]})}}]);
2
+ //# sourceMappingURL=100.8a2c21d9df10d17f9291.bundle.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack:///./src/js/angular/resources/plugin.js"],"names":["PluginRegistry","add","label","labelKey","href","order","role","icon","guideSelector","parent"],"mappings":"6EAAAA,eAAeC,IAAI,QAAS,CACxB,IAAO,qBACP,OAAU,kCACV,KAAQ,gBACR,MAAS,YACT,WAAc,gBACd,YAAe,+BACf,MAAS,iCACT,SAAY,sCAGhBD,eAAeC,IAAI,YAAa,CAC5B,MAAS,CACL,CACIC,MAAO,UACPC,SAAU,qBACVC,KAAM,IACNC,MAAO,EACPC,KAAM,kBACNC,KAAM,kBACNC,cAAe,gBAChB,CACCN,MAAO,YACPC,SAAU,uBACVC,KAAM,oBAENE,KAAM,kBACND,MAAO,EACPI,OAAQ,UACRD,cAAe","file":"100.24bbc960b22ec8f26f68.bundle.js","sourcesContent":["PluginRegistry.add('route', {\n 'url': '/monitor/resources',\n 'module': 'graphdb.framework.jmx.resources',\n 'path': 'resources/app',\n 'chunk': 'resources',\n 'controller': 'ResourcesCtrl',\n 'templateUrl': 'pages/monitor/resources.html',\n 'title': 'view.resource.monitoring.title',\n 'helpInfo': 'view.resource.monitoring.helpInfo'\n});\n\nPluginRegistry.add('main.menu', {\n 'items': [\n {\n label: 'Monitor',\n labelKey: 'menu.monitor.label',\n href: '#',\n order: 3,\n role: 'ROLE_MONITORING',\n icon: 'icon-monitoring',\n guideSelector: 'menu-monitor'\n }, {\n label: 'Resources',\n labelKey: 'menu.resources.label',\n href: 'monitor/resources',\n // Added role requirement here to assert that users cannot see Resources menu item\n role: 'ROLE_MONITORING',\n order: 2,\n parent: 'Monitor',\n guideSelector: 'sub-menu-resources'\n }\n ]\n});\n"],"sourceRoot":""}
1
+ {"version":3,"sources":["webpack:///./src/js/angular/resources/plugin.js"],"names":["PluginRegistry","add","label","labelKey","href","order","role","icon","guideSelector","parent"],"mappings":"6EAAAA,eAAeC,IAAI,QAAS,CACxB,IAAO,qBACP,OAAU,kCACV,KAAQ,gBACR,MAAS,YACT,WAAc,gBACd,YAAe,+BACf,MAAS,iCACT,SAAY,sCAGhBD,eAAeC,IAAI,YAAa,CAC5B,MAAS,CACL,CACIC,MAAO,UACPC,SAAU,qBACVC,KAAM,IACNC,MAAO,EACPC,KAAM,kBACNC,KAAM,kBACNC,cAAe,gBAChB,CACCN,MAAO,YACPC,SAAU,uBACVC,KAAM,oBAENE,KAAM,kBACND,MAAO,EACPI,OAAQ,UACRD,cAAe","file":"100.8a2c21d9df10d17f9291.bundle.js","sourcesContent":["PluginRegistry.add('route', {\n 'url': '/monitor/resources',\n 'module': 'graphdb.framework.jmx.resources',\n 'path': 'resources/app',\n 'chunk': 'resources',\n 'controller': 'ResourcesCtrl',\n 'templateUrl': 'pages/monitor/resources.html',\n 'title': 'view.resource.monitoring.title',\n 'helpInfo': 'view.resource.monitoring.helpInfo'\n});\n\nPluginRegistry.add('main.menu', {\n 'items': [\n {\n label: 'Monitor',\n labelKey: 'menu.monitor.label',\n href: '#',\n order: 3,\n role: 'ROLE_MONITORING',\n icon: 'icon-monitoring',\n guideSelector: 'menu-monitor'\n }, {\n label: 'Resources',\n labelKey: 'menu.resources.label',\n href: 'monitor/resources',\n // Added role requirement here to assert that users cannot see Resources menu item\n role: 'ROLE_MONITORING',\n order: 2,\n parent: 'Monitor',\n guideSelector: 'sub-menu-resources'\n }\n ]\n});\n"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[11],{97:function(e,r,t){"use strict";t.r(r);t(4),t(12),t(23),t(24);var s=t(2);const n=function(e){return e.location?`${e.id}@${e.location}`:e.id},o=angular.module("graphdb.framework.security.controllers",["ngCookies","ui.bootstrap","graphdb.framework.core.services.jwtauth","graphdb.framework.core.services.openIDService","graphdb.framework.rest.security.service","graphdb.framework.utils.localstorageadapter","toastr"]),i=function(e){let r=s.UserType.USER;const t={READ_REPO:{},WRITE_REPO:{}},n={};for(let o=0;o<e.length;o++){const i=e[o];if(i===s.UserRole.ROLE_ADMIN)r=s.UserType.ADMIN;else if(i===s.UserRole.ROLE_REPO_MANAGER)r!==s.UserType.ADMIN&&(r=s.UserType.REPO_MANAGER);else if(i===s.UserRole.ROLE_USER)r=s.UserType.USER;else if(0!==i.indexOf("ROLE_")){const e=i.indexOf("_",i.indexOf("_")+1),r=i.substr(0,e),s=i.substr(e+1);t[r][s]=!0,n[s]=n[s]||{},"READ_REPO"===r?n[s].read=!0:"WRITE_REPO"===r&&(n[s].write=!0)}}return{userType:r,userTypeDescription:s.UserUtils.getUserRoleName(r),grantedAuthorities:t,repositories:n}};o.controller("LoginCtrl",["$scope","$http","toastr","$jwtAuth","$openIDAuth","$location","$rootScope","$translate",function(e,r,t,s,n,o,i,a){e.username="",e.password="",s.reinitializeSecurity(),e.loginWithOpenID=function(){s.loginOpenID()},o.search().noaccess?t.error(a.instant("security.no.rights.config.error"),a.instant("security.login.error")):o.search().expired&&t.error(a.instant("security.auth.token.expired"),a.instant("security.login.error")),e.isGDBLoginEnabled=function(){return s.passwordLoginEnabled},e.isOpenIDEnabled=function(){return s.openIDEnabled},e.login=function(){return r({method:"POST",url:"rest/login",data:{username:e.username,password:e.password}}).success((function(e,r,t){s.authenticate(e,t("Authorization")).then(()=>{i.returnToUrl?o.url(i.returnToUrl):o.path("/")})})).error((function(r,s){if(401===s)t.error(a.instant("security.wrong.credentials"),a.instant("common.error")),e.wrongCredentials=!0,e.username="",e.password="";else{const e=getError(r);t.error(e,s)}}))}}]),o.controller("UsersCtrl",["$scope","$modal","toastr","$window","$jwtAuth","$timeout","ModalService","SecurityRestService","$translate",function(e,r,t,s,o,a,u,c,d){e.loader=!0,e.securityEnabled=function(){return o.isSecurityEnabled()},e.hasExternalAuth=function(){return o.hasExternalAuth()},e.getAuthImplementation=function(){return o.getAuthImplementation()},e.freeAccessEnabled=function(){return o.isFreeAccessEnabled()},e.getUsers=function(){c.getUsers().success((function(r){e.users=r;for(let r=0;r<e.users.length;r++){const t=i(e.users[r].grantedAuthorities);e.users[r].userType=t.userType,e.users[r].userTypeDescription=t.userTypeDescription,e.users[r].repositories=t.repositories}e.loader=!1})).error((function(r){const s=getError(r);t.error(s,d.instant("common.error")),e.loader=!1}))},e.getUsers(),e.$on("repositoryIsSet",(function(){e.getUsers()})),e.toggleSecurity=function(){if(o.toggleSecurity(!o.isSecurityEnabled()),o.isSecurityEnabled()){const r=a((function(){s.location.reload()}),500);e.$on("$destroy",(function(){a.cancel(r)}))}},e.toggleFreeAccess=function(t){!o.isFreeAccessEnabled()||o.isFreeAccessEnabled()&&t?c.getFreeAccess().then((function(s){let i=s.data.authorities,a=s.data.appSettings||{DEFAULT_SAMEAS:!0,DEFAULT_INFERENCE:!0,EXECUTE_COUNT:!0,IGNORE_SHARED_QUERIES:!1,DEFAULT_VIS_GRAPH_SCHEMA:!0};r.open({templateUrl:"js/angular/security/templates/modal/default-authorities.html",controller:"DefaultAuthoritiesCtrl",resolve:{data:function(){return{defaultAuthorities:function(){const r={READ_REPO:{},WRITE_REPO:{}},t=_.mapKeys(e.getRepositories(),(function(e){return n(e)}));return _.each(i,(function(e){0===e.indexOf("WRITE_REPO_")?t.hasOwnProperty(e.substr(11))&&(r.WRITE_REPO[e.substr(11)]=!0):0===e.indexOf("READ_REPO_")&&t.hasOwnProperty(e.substr(10))&&(r.READ_REPO[e.substr(10)]=!0)})),r},appSettings:a}}}}).result.then((function(e){i=e.authorities,a=e.appSettings,o.toggleFreeAccess(t||!o.isFreeAccessEnabled(),i,a,t)}))})):o.toggleFreeAccess(!o.isFreeAccessEnabled(),[])},e.editFreeAccess=function(){e.toggleFreeAccess(!0)},e.removeUser=function(r){u.openSimpleModal({title:d.instant("common.confirm.delete"),message:d.instant("security.confirm.delete.user",{name:r}),warning:!0}).result.then((function(){e.loader=!0,c.deleteUser(r).success((function(){e.getUsers()})).error((function(r){const s=getError(r);t.error(s,d.instant("common.error")),e.loader=!1}))}))},e.encodeURIComponent=function(e){return encodeURIComponent(e)}}]),o.controller("DefaultAuthoritiesCtrl",["$scope","$http","$modalInstance","data","$rootScope",function(e,r,t,s,o){e.grantedAuthorities=s.defaultAuthorities(),e.appSettings=s.appSettings,e.hasActiveLocation=function(){return!_.isEmpty(o.globalLocation)},e.getRepositories=function(){return o.globalRepositories},e.ok=function(){const r=[];e.repositoryCheckError=!0;for(const t in e.grantedAuthorities.WRITE_REPO)e.grantedAuthorities.WRITE_REPO[t]&&(r.push("WRITE_REPO_"+t),r.push("READ_REPO_"+t),e.repositoryCheckError=!1);for(const t in e.grantedAuthorities.READ_REPO)e.grantedAuthorities.READ_REPO[t]&&-1===r.indexOf("READ_REPO_"+t)&&(r.push("READ_REPO_"+t),e.repositoryCheckError=!1);e.repositoryCheckError||t.close({authorities:r,appSettings:e.appSettings})},e.cancel=function(){t.dismiss("cancel")},e.createUniqueKey=function(e){return n(e)}}]),o.controller("CommonUserCtrl",["$rootScope","$scope","$http","toastr","$window","$timeout","$location","$jwtAuth","$translate","passwordPlaceholder",function(e,r,t,o,i,a,u,c,d,p){e.$on("$translateChangeSuccess",(function(){r.passwordPlaceholder=d.instant(p)})),r.isAdmin=function(){return c.hasRole(s.UserRole.ROLE_ADMIN)},r.hasExternalAuth=function(){return c.hasExternalAuth()},r.hasEditRestrictions=function(){return r.user&&r.user.username===s.UserType.ADMIN},r.isOverrideAuth=function(){return c.isDefaultAuthEnabled()},r.setGrantedAuthorities=function(){!function(e){function r(){for(let r=0;r<arguments.length;r++){const t=arguments[r];_.indexOf(e.user.grantedAuthorities,t)<0&&e.user.grantedAuthorities.push(t)}}if(e.user.grantedAuthorities=[],e.repositoryCheckError=!0,e.userType===s.UserType.ADMIN)e.repositoryCheckError=!1,r(s.UserRole.ROLE_ADMIN);else if(e.userType===s.UserType.REPO_MANAGER)e.repositoryCheckError=!1,r(s.UserRole.ROLE_REPO_MANAGER);else{r(s.UserRole.ROLE_USER);for(const t in e.grantedAuthorities.WRITE_REPO)e.grantedAuthorities.WRITE_REPO[t]&&(e.repositoryCheckError=!1,r("WRITE_REPO_"+t,"READ_REPO_"+t));for(const t in e.grantedAuthorities.READ_REPO)e.grantedAuthorities.READ_REPO[t]&&(e.repositoryCheckError=!1,r("READ_REPO_"+t))}}(r)},r.hasReadPermission=function(e){const t=n(e);return r.userType===s.UserType.ADMIN||r.userType===s.UserType.REPO_MANAGER||"SYSTEM"!==e.id&&(r.grantedAuthorities.READ_REPO["*"]||r.grantedAuthorities.WRITE_REPO["*"])||r.grantedAuthorities.READ_REPO[t]||r.grantedAuthorities.WRITE_REPO[t]},r.hasWritePermission=function(e){const t=n(e);return r.userType===s.UserType.ADMIN||r.userType===s.UserType.REPO_MANAGER||"SYSTEM"!==e.id&&r.grantedAuthorities.WRITE_REPO["*"]||r.grantedAuthorities.WRITE_REPO[t]},r.readCheckDisabled=function(e){return r.hasWritePermission(e)||"SYSTEM"!==e.id&&"*"!==e&&r.grantedAuthorities.READ_REPO["*"]||r.hasEditRestrictions()},r.writeCheckDisabled=function(e){return r.userType===s.UserType.ADMIN||r.userType===s.UserType.REPO_MANAGER||"SYSTEM"!==e.id&&"*"!==e&&r.grantedAuthorities.WRITE_REPO["*"]||r.hasEditRestrictions()},r.createUniqueKey=function(e){return n(e)},r.userType=s.UserType.USER,r.grantedAuthorities={READ_REPO:{},WRITE_REPO:{}},r.validatePassword=function(){return r.noPassword?(r.passwordError="",r.confirmPasswordError="",!0):r.user.password!==r.user.confirmpassword?(r.user.password?(r.passwordError="",r.confirmPasswordError=d.instant("security.confirm.password")):(r.passwordError=d.instant("security.enter.password"),r.confirmPasswordError=""),!1):(r.passwordError="",r.confirmPasswordError="",!0)},r.isLocalAuthentication=function(){return"Local"===c.getAuthImplementation()},r.updateUser=function(){if(!r.validateForm())return!1;r.isLocalAuthentication()&&r.setGrantedAuthorities(),r.repositoryCheckError||r.updateUserHttp()},r.setNoPassword=function(){r.noPassword&&(r.user.password="",r.user.confirmpassword="",r.passwordError="",r.confirmPasswordError="")},r.shouldDisableSameAs=function(){const e=$("#sameAsCheck");return r.user&&!r.user.appSettings.DEFAULT_INFERENCE&&e.prop("checked")&&(e.prop("checked",!1),r.user.appSettings.DEFAULT_SAMEAS=!1),r.user&&!r.user.appSettings.DEFAULT_INFERENCE}}]),o.controller("AddUserCtrl",["$scope","$http","toastr","$window","$timeout","$location","$jwtAuth","$controller","SecurityRestService","ModalService","$translate",function(e,r,t,n,o,i,a,u,c,d,p){angular.extend(this,u("CommonUserCtrl",{$scope:e,passwordPlaceholder:"security.password.placeholder"})),e.mode="add",e.saveButtonText=p.instant("common.create.btn"),e.goBack=function(){const r=o((function(){n.history.back()}),100);e.$on("$destroy",(function(){o.cancel(r)}))},e.pageTitle=p.instant("view.create.user.title"),e.passwordPlaceholder=p.instant("security.password.placeholder"),e.user={username:"",password:"",confirmpassword:"",grantedAuthorities:[],appSettings:{DEFAULT_SAMEAS:!0,DEFAULT_INFERENCE:!0,EXECUTE_COUNT:!0,IGNORE_SHARED_QUERIES:!1,DEFAULT_VIS_GRAPH_SCHEMA:!0}},e.submit=function(){e.noPassword&&e.userType===s.UserType.ADMIN?d.openSimpleModal({title:p.instant("security.create.admin"),message:p.instant("security.admin.login.warning"),warning:!0}).result.then((function(){e.createUser()})):e.createUser()},e.createUserHttp=function(){e.loader=!0,c.createUser({username:e.user.username,pass:e.user.password,appSettings:e.user.appSettings,grantedAuthorities:e.user.grantedAuthorities}).success((function(){t.success(p.instant("security.user.created",{name:e.user.username}));const r=o((function(){e.loader=!1,n.history.back()}),2e3);e.$on("$destroy",(function(){o.cancel(r)}))})).error((function(r){const s=getError(r);e.loader=!1,t.error(s,p.instant("common.error"))}))},e.createUser=function(){e.validateForm()&&(e.setGrantedAuthorities(),e.repositoryCheckError||e.createUserHttp())},e.validateForm=function(){let r=!0;return e.user.username?e.usernameError="":(e.usernameError=p.instant("security.enter.username"),r=!1),e.noPassword?(e.passwordError="",e.confirmPasswordError=""):(e.user.password?e.passwordError="":(e.passwordError=p.instant("security.enter.password"),r=!1),e.user.confirmpassword&&e.user.password===e.user.confirmpassword?e.confirmPasswordError="":(e.confirmPasswordError=p.instant("security.confirm.password"),r=!1)),r}}]),o.controller("EditUserCtrl",["$scope","$http","toastr","$window","$routeParams","$timeout","$location","$jwtAuth","$controller","SecurityRestService","ModalService","$translate",function(e,r,t,n,o,a,u,c,d,p,l,E){angular.extend(this,d("CommonUserCtrl",{$scope:e,passwordPlaceholder:"security.new.password"})),e.mode="edit",e.saveButtonText=E.instant("common.save.btn"),e.goBack=function(){const r=a((function(){n.history.back()}),100);e.$on("$destroy",(function(){a.cancel(r)}))},e.params=o,e.pageTitle=E.instant("view.edit.user.title",{userId:e.params.userId}),e.passwordPlaceholder=E.instant("security.new.password"),e.userType=s.UserType.USER;const g={DEFAULT_SAMEAS:!0,DEFAULT_INFERENCE:!0,EXECUTE_COUNT:!0,IGNORE_SHARED_QUERIES:!1,DEFAULT_VIS_GRAPH_SCHEMA:!0};c.hasRole(s.UserRole.ROLE_ADMIN)||u.url("settings"),e.getUserData=function(){p.getUser(e.params.userId).success((function(r){e.userData=r,e.user={username:e.userData.username},e.user.password="",e.user.confirmpassword="",e.user.external=e.userData.external,e.user.appSettings=r.appSettings||g,e.userType=s.UserType.USER;const t=i(r.grantedAuthorities);e.userType=t.userType,e.grantedAuthorities=t.grantedAuthorities})).error((function(e){const r=getError(e);t.error(r,E.instant("common.error"))}))},e.getUserData(),e.submit=function(){e.noPassword&&e.userType===s.UserType.ADMIN?l.openSimpleModal({title:E.instant("security.save.admin.settings"),message:E.instant("security.admin.pass.unset"),warning:!0}).result.then((function(){e.updateUser()})):e.updateUser()},e.updateUserHttp=function(){e.loader=!0,p.updateUser({username:e.user.username,pass:e.noPassword?"":e.user.password||void 0,appSettings:e.user.appSettings,grantedAuthorities:e.user.grantedAuthorities}).success((function(){t.success(E.instant("security.user.updated",{name:e.user.username}));const r=a((function(){e.loader=!1,n.history.back()}),2e3);e.$on("$destroy",(function(){a.cancel(r)})),c.getPrincipal().then(r=>{e.user.username===r.username&&(r.appSettings=e.user.appSettings)})})).error((function(r){const s=getError(r);e.loader=!1,t.error(s,E.instant("common.error"))}))},e.validateForm=function(){return e.validatePassword()}}]),o.controller("RolesMappingController",["$scope","toastr","SecurityRestService","$translate",function(e,r,t,s){e.debugMapping=function(e,r){const s=r.split(":");t.getRolesMapping({role:e,method:s[1],mapping:s[0]})};e.$on("repositoryIsSet",(function(){t.getRoles().success((function(r){e.roleMappings=r,e.roles=_.keys(e.roleMappings),e.mappings=_.keys(e.roleMappings[e.roles[0]]);const t=_.map(e.roles,(function(r){return[r,_.filter(e.roleMappings[r]).length]}));e.roles=_.reverse(_.map(_.orderBy(t,(function(e){return e[1]})),(function(e){return e[0]})))})).error((function(t){const n=getError(t);e.loader=!1,r.error(n,s.instant("common.error"))}))}))}]),o.controller("ChangeUserPasswordSettingsCtrl",["$scope","toastr","$window","$timeout","$jwtAuth","$rootScope","$controller","SecurityRestService","ModalService","$translate","LocalStorageAdapter","LSKeys","$q",function(e,r,t,n,o,a,u,c,d,p,l,E,g){angular.extend(this,u("CommonUserCtrl",{$scope:e,passwordPlaceholder:"security.new.password"})),e.mode="settings",e.hasEditRestrictions=function(){return!0},e.saveButtonText=p.instant("common.save.btn"),e.goBack=function(){const r=n((function(){t.history.back()}),100);e.$on("$destroy",(function(){n.cancel(r)}))},e.getPrincipal=function(){return o.getPrincipal().then(r=>{e.currentUserData=angular.copy(r)})},e.getPrincipal().then(()=>{e.redirectAdmin(),h(e)}),e.showWorkbenchSettings=!0,e.updateCurrentUserData=function(){g.when(o.getPrincipal()).then(r=>_.assign(r,e.userData))},e.redirectAdmin=function(){e.currentUserData||a.redirectToLogin()},e.pageTitle=p.instant("view.settings.title"),e.passwordPlaceholder=p.instant("security.new.password"),e.grantedAuthorities={READ_REPO:{},WRITE_REPO:{}};const h=function(r){r.userData=angular.copy(r.currentUserData),r.user={username:r.userData.username},r.user.password="",r.user.confirmpassword="",r.user.external=r.userData.external,r.user.appSettings=r.userData.appSettings,void 0===r.user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA&&(r.user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA=!0);const t=i(r.userData.authorities);e.userType=t.userType,e.grantedAuthorities=t.grantedAuthorities};e.loader=!1,e.submit=function(){e.noPassword&&e.userType===s.UserType.ADMIN?d.openSimpleModal({title:p.instant("security.save.admin.settings"),message:p.instant("security.admin.pass.unset"),warning:!0}).result.then((function(){e.updateUser()})):e.updateUser()},e.updateUserHttp=function(){e.loader=!0,c.updateUserData({username:e.user.username,pass:e.noPassword?"":e.user.password||void 0,appSettings:e.user.appSettings}).success((function(){e.updateCurrentUserData(),r.success(p.instant("security.user.updated",{name:e.user.username}));const s=n((function(){e.loader=!1,t.history.back()}),2e3);l.set(E.WORKBENCH_SETTINGS,e.workbenchSettings),e.$on("$destroy",(function(){n.cancel(s)}))})).error((function(t){const s=getError(t);e.loader=!1,r.error(s,p.instant("common.error"))}))},e.updateUser=function(){if(!e.validateForm())return!1;e.updateUserHttp()},e.validateForm=function(){return e.validatePassword()},e.setWorkbenchTheme=function(){const r=document.querySelector(":root");"dark"===e.workbenchSettings.theme?r.classList.add("dark"):r.classList.remove("dark")},e.workbenchSettings=l.get(E.WORKBENCH_SETTINGS),e.workbenchSettings||(e.workbenchSettings={theme:"light"}),e.setWorkbenchTheme(),e.$on("$destroy",(function(){const e=l.get(E.WORKBENCH_SETTINGS),r=document.querySelector(":root");e&&"dark"===e.theme?r.classList.add("dark"):r.classList.remove("dark")}))}]),o.controller("DeleteUserCtrl",["$scope","$modalInstance","username",function(e,r,t){e.username=t,e.ok=function(){r.close()},e.cancel=function(){r.dismiss("cancel")}}])}}]);
2
- //# sourceMappingURL=11.b2fd98471071348c3964.bundle.js.map
1
+ (window.webpackJsonp=window.webpackJsonp||[]).push([[11],{98:function(e,r,t){"use strict";t.r(r);t(4),t(12),t(23),t(24);var s=t(2);const n=function(e){return e.location?`${e.id}@${e.location}`:e.id},o=angular.module("graphdb.framework.security.controllers",["ngCookies","ui.bootstrap","graphdb.framework.core.services.jwtauth","graphdb.framework.core.services.openIDService","graphdb.framework.rest.security.service","graphdb.framework.utils.localstorageadapter","toastr"]),i=function(e){let r=s.UserType.USER;const t={READ_REPO:{},WRITE_REPO:{}},n={};for(let o=0;o<e.length;o++){const i=e[o];if(i===s.UserRole.ROLE_ADMIN)r=s.UserType.ADMIN;else if(i===s.UserRole.ROLE_REPO_MANAGER)r!==s.UserType.ADMIN&&(r=s.UserType.REPO_MANAGER);else if(i===s.UserRole.ROLE_USER)r=s.UserType.USER;else if(0!==i.indexOf("ROLE_")){const e=i.indexOf("_",i.indexOf("_")+1),r=i.substr(0,e),s=i.substr(e+1);t[r][s]=!0,n[s]=n[s]||{},"READ_REPO"===r?n[s].read=!0:"WRITE_REPO"===r&&(n[s].write=!0)}}return{userType:r,userTypeDescription:s.UserUtils.getUserRoleName(r),grantedAuthorities:t,repositories:n}};o.controller("LoginCtrl",["$scope","$http","toastr","$jwtAuth","$openIDAuth","$location","$rootScope","$translate",function(e,r,t,s,n,o,i,a){e.username="",e.password="",s.reinitializeSecurity(),e.loginWithOpenID=function(){s.loginOpenID()},o.search().noaccess?t.error(a.instant("security.no.rights.config.error"),a.instant("security.login.error")):o.search().expired&&t.error(a.instant("security.auth.token.expired"),a.instant("security.login.error")),e.isGDBLoginEnabled=function(){return s.passwordLoginEnabled},e.isOpenIDEnabled=function(){return s.openIDEnabled},e.login=function(){return r({method:"POST",url:"rest/login",data:{username:e.username,password:e.password}}).success((function(e,r,t){s.authenticate(e,t("Authorization")).then(()=>{i.returnToUrl?o.url(i.returnToUrl):o.path("/")})})).error((function(r,s){if(401===s)t.error(a.instant("security.wrong.credentials"),a.instant("common.error")),e.wrongCredentials=!0,e.username="",e.password="";else{const e=getError(r);t.error(e,s)}}))}}]),o.controller("UsersCtrl",["$scope","$modal","toastr","$window","$jwtAuth","$timeout","ModalService","SecurityRestService","$translate",function(e,r,t,s,o,a,u,c,d){e.loader=!0,e.securityEnabled=function(){return o.isSecurityEnabled()},e.hasExternalAuth=function(){return o.hasExternalAuth()},e.getAuthImplementation=function(){return o.getAuthImplementation()},e.freeAccessEnabled=function(){return o.isFreeAccessEnabled()},e.getUsers=function(){c.getUsers().success((function(r){e.users=r;for(let r=0;r<e.users.length;r++){const t=i(e.users[r].grantedAuthorities);e.users[r].userType=t.userType,e.users[r].userTypeDescription=t.userTypeDescription,e.users[r].repositories=t.repositories}e.loader=!1})).error((function(r){const s=getError(r);t.error(s,d.instant("common.error")),e.loader=!1}))},e.getUsers(),e.$on("repositoryIsSet",(function(){e.getUsers()})),e.toggleSecurity=function(){if(o.toggleSecurity(!o.isSecurityEnabled()),o.isSecurityEnabled()){const r=a((function(){s.location.reload()}),500);e.$on("$destroy",(function(){a.cancel(r)}))}},e.toggleFreeAccess=function(t){!o.isFreeAccessEnabled()||o.isFreeAccessEnabled()&&t?c.getFreeAccess().then((function(s){let i=s.data.authorities,a=s.data.appSettings||{DEFAULT_SAMEAS:!0,DEFAULT_INFERENCE:!0,EXECUTE_COUNT:!0,IGNORE_SHARED_QUERIES:!1,DEFAULT_VIS_GRAPH_SCHEMA:!0};r.open({templateUrl:"js/angular/security/templates/modal/default-authorities.html",controller:"DefaultAuthoritiesCtrl",resolve:{data:function(){return{defaultAuthorities:function(){const r={READ_REPO:{},WRITE_REPO:{}},t=_.mapKeys(e.getRepositories(),(function(e){return n(e)}));return _.each(i,(function(e){0===e.indexOf("WRITE_REPO_")?t.hasOwnProperty(e.substr(11))&&(r.WRITE_REPO[e.substr(11)]=!0):0===e.indexOf("READ_REPO_")&&t.hasOwnProperty(e.substr(10))&&(r.READ_REPO[e.substr(10)]=!0)})),r},appSettings:a}}}}).result.then((function(e){i=e.authorities,a=e.appSettings,o.toggleFreeAccess(t||!o.isFreeAccessEnabled(),i,a,t)}))})):o.toggleFreeAccess(!o.isFreeAccessEnabled(),[])},e.editFreeAccess=function(){e.toggleFreeAccess(!0)},e.removeUser=function(r){u.openSimpleModal({title:d.instant("common.confirm.delete"),message:d.instant("security.confirm.delete.user",{name:r}),warning:!0}).result.then((function(){e.loader=!0,c.deleteUser(r).success((function(){e.getUsers()})).error((function(r){const s=getError(r);t.error(s,d.instant("common.error")),e.loader=!1}))}))},e.encodeURIComponent=function(e){return encodeURIComponent(e)}}]),o.controller("DefaultAuthoritiesCtrl",["$scope","$http","$modalInstance","data","$rootScope",function(e,r,t,s,o){e.grantedAuthorities=s.defaultAuthorities(),e.appSettings=s.appSettings,e.hasActiveLocation=function(){return!_.isEmpty(o.globalLocation)},e.getRepositories=function(){return o.globalRepositories},e.ok=function(){const r=[];e.repositoryCheckError=!0;for(const t in e.grantedAuthorities.WRITE_REPO)e.grantedAuthorities.WRITE_REPO[t]&&(r.push("WRITE_REPO_"+t),r.push("READ_REPO_"+t),e.repositoryCheckError=!1);for(const t in e.grantedAuthorities.READ_REPO)e.grantedAuthorities.READ_REPO[t]&&-1===r.indexOf("READ_REPO_"+t)&&(r.push("READ_REPO_"+t),e.repositoryCheckError=!1);e.repositoryCheckError||t.close({authorities:r,appSettings:e.appSettings})},e.cancel=function(){t.dismiss("cancel")},e.createUniqueKey=function(e){return n(e)}}]),o.controller("CommonUserCtrl",["$rootScope","$scope","$http","toastr","$window","$timeout","$location","$jwtAuth","$translate","passwordPlaceholder",function(e,r,t,o,i,a,u,c,d,p){e.$on("$translateChangeSuccess",(function(){r.passwordPlaceholder=d.instant(p)})),r.isAdmin=function(){return c.hasRole(s.UserRole.ROLE_ADMIN)},r.hasExternalAuth=function(){return c.hasExternalAuth()},r.hasEditRestrictions=function(){return r.user&&r.user.username===s.UserType.ADMIN},r.isOverrideAuth=function(){return c.isDefaultAuthEnabled()},r.setGrantedAuthorities=function(){!function(e){function r(){for(let r=0;r<arguments.length;r++){const t=arguments[r];_.indexOf(e.user.grantedAuthorities,t)<0&&e.user.grantedAuthorities.push(t)}}if(e.user.grantedAuthorities=[],e.repositoryCheckError=!0,e.userType===s.UserType.ADMIN)e.repositoryCheckError=!1,r(s.UserRole.ROLE_ADMIN);else if(e.userType===s.UserType.REPO_MANAGER)e.repositoryCheckError=!1,r(s.UserRole.ROLE_REPO_MANAGER);else{r(s.UserRole.ROLE_USER);for(const t in e.grantedAuthorities.WRITE_REPO)e.grantedAuthorities.WRITE_REPO[t]&&(e.repositoryCheckError=!1,r("WRITE_REPO_"+t,"READ_REPO_"+t));for(const t in e.grantedAuthorities.READ_REPO)e.grantedAuthorities.READ_REPO[t]&&(e.repositoryCheckError=!1,r("READ_REPO_"+t))}}(r)},r.hasReadPermission=function(e){const t=n(e);return r.userType===s.UserType.ADMIN||r.userType===s.UserType.REPO_MANAGER||"SYSTEM"!==e.id&&(r.grantedAuthorities.READ_REPO["*"]||r.grantedAuthorities.WRITE_REPO["*"])||r.grantedAuthorities.READ_REPO[t]||r.grantedAuthorities.WRITE_REPO[t]},r.hasWritePermission=function(e){const t=n(e);return r.userType===s.UserType.ADMIN||r.userType===s.UserType.REPO_MANAGER||"SYSTEM"!==e.id&&r.grantedAuthorities.WRITE_REPO["*"]||r.grantedAuthorities.WRITE_REPO[t]},r.readCheckDisabled=function(e){return r.hasWritePermission(e)||"SYSTEM"!==e.id&&"*"!==e&&r.grantedAuthorities.READ_REPO["*"]||r.hasEditRestrictions()},r.writeCheckDisabled=function(e){return r.userType===s.UserType.ADMIN||r.userType===s.UserType.REPO_MANAGER||"SYSTEM"!==e.id&&"*"!==e&&r.grantedAuthorities.WRITE_REPO["*"]||r.hasEditRestrictions()},r.createUniqueKey=function(e){return n(e)},r.userType=s.UserType.USER,r.grantedAuthorities={READ_REPO:{},WRITE_REPO:{}},r.validatePassword=function(){return r.noPassword?(r.passwordError="",r.confirmPasswordError="",!0):r.user.password!==r.user.confirmpassword?(r.user.password?(r.passwordError="",r.confirmPasswordError=d.instant("security.confirm.password")):(r.passwordError=d.instant("security.enter.password"),r.confirmPasswordError=""),!1):(r.passwordError="",r.confirmPasswordError="",!0)},r.isLocalAuthentication=function(){return"Local"===c.getAuthImplementation()},r.updateUser=function(){if(!r.validateForm())return!1;r.isLocalAuthentication()&&r.setGrantedAuthorities(),r.repositoryCheckError||r.updateUserHttp()},r.setNoPassword=function(){r.noPassword&&(r.user.password="",r.user.confirmpassword="",r.passwordError="",r.confirmPasswordError="")},r.shouldDisableSameAs=function(){const e=$("#sameAsCheck");return r.user&&!r.user.appSettings.DEFAULT_INFERENCE&&e.prop("checked")&&(e.prop("checked",!1),r.user.appSettings.DEFAULT_SAMEAS=!1),r.user&&!r.user.appSettings.DEFAULT_INFERENCE}}]),o.controller("AddUserCtrl",["$scope","$http","toastr","$window","$timeout","$location","$jwtAuth","$controller","SecurityRestService","ModalService","$translate",function(e,r,t,n,o,i,a,u,c,d,p){angular.extend(this,u("CommonUserCtrl",{$scope:e,passwordPlaceholder:"security.password.placeholder"})),e.mode="add",e.saveButtonText=p.instant("common.create.btn"),e.goBack=function(){const r=o((function(){n.history.back()}),100);e.$on("$destroy",(function(){o.cancel(r)}))},e.pageTitle=p.instant("view.create.user.title"),e.passwordPlaceholder=p.instant("security.password.placeholder"),e.user={username:"",password:"",confirmpassword:"",grantedAuthorities:[],appSettings:{DEFAULT_SAMEAS:!0,DEFAULT_INFERENCE:!0,EXECUTE_COUNT:!0,IGNORE_SHARED_QUERIES:!1,DEFAULT_VIS_GRAPH_SCHEMA:!0}},e.submit=function(){e.noPassword&&e.userType===s.UserType.ADMIN?d.openSimpleModal({title:p.instant("security.create.admin"),message:p.instant("security.admin.login.warning"),warning:!0}).result.then((function(){e.createUser()})):e.createUser()},e.createUserHttp=function(){e.loader=!0,c.createUser({username:e.user.username,pass:e.user.password,appSettings:e.user.appSettings,grantedAuthorities:e.user.grantedAuthorities}).success((function(){t.success(p.instant("security.user.created",{name:e.user.username}));const r=o((function(){e.loader=!1,n.history.back()}),2e3);e.$on("$destroy",(function(){o.cancel(r)}))})).error((function(r){const s=getError(r);e.loader=!1,t.error(s,p.instant("common.error"))}))},e.createUser=function(){e.validateForm()&&(e.setGrantedAuthorities(),e.repositoryCheckError||e.createUserHttp())},e.validateForm=function(){let r=!0;return e.user.username?e.usernameError="":(e.usernameError=p.instant("security.enter.username"),r=!1),e.noPassword?(e.passwordError="",e.confirmPasswordError=""):(e.user.password?e.passwordError="":(e.passwordError=p.instant("security.enter.password"),r=!1),e.user.confirmpassword&&e.user.password===e.user.confirmpassword?e.confirmPasswordError="":(e.confirmPasswordError=p.instant("security.confirm.password"),r=!1)),r}}]),o.controller("EditUserCtrl",["$scope","$http","toastr","$window","$routeParams","$timeout","$location","$jwtAuth","$controller","SecurityRestService","ModalService","$translate",function(e,r,t,n,o,a,u,c,d,p,l,E){angular.extend(this,d("CommonUserCtrl",{$scope:e,passwordPlaceholder:"security.new.password"})),e.mode="edit",e.saveButtonText=E.instant("common.save.btn"),e.goBack=function(){const r=a((function(){n.history.back()}),100);e.$on("$destroy",(function(){a.cancel(r)}))},e.params=o,e.pageTitle=E.instant("view.edit.user.title",{userId:e.params.userId}),e.passwordPlaceholder=E.instant("security.new.password"),e.userType=s.UserType.USER;const g={DEFAULT_SAMEAS:!0,DEFAULT_INFERENCE:!0,EXECUTE_COUNT:!0,IGNORE_SHARED_QUERIES:!1,DEFAULT_VIS_GRAPH_SCHEMA:!0};c.hasRole(s.UserRole.ROLE_ADMIN)||u.url("settings"),e.getUserData=function(){p.getUser(e.params.userId).success((function(r){e.userData=r,e.user={username:e.userData.username},e.user.password="",e.user.confirmpassword="",e.user.external=e.userData.external,e.user.appSettings=r.appSettings||g,e.userType=s.UserType.USER;const t=i(r.grantedAuthorities);e.userType=t.userType,e.grantedAuthorities=t.grantedAuthorities})).error((function(e){const r=getError(e);t.error(r,E.instant("common.error"))}))},e.getUserData(),e.submit=function(){e.noPassword&&e.userType===s.UserType.ADMIN?l.openSimpleModal({title:E.instant("security.save.admin.settings"),message:E.instant("security.admin.pass.unset"),warning:!0}).result.then((function(){e.updateUser()})):e.updateUser()},e.updateUserHttp=function(){e.loader=!0,p.updateUser({username:e.user.username,pass:e.noPassword?"":e.user.password||void 0,appSettings:e.user.appSettings,grantedAuthorities:e.user.grantedAuthorities}).success((function(){t.success(E.instant("security.user.updated",{name:e.user.username}));const r=a((function(){e.loader=!1,n.history.back()}),2e3);e.$on("$destroy",(function(){a.cancel(r)})),c.getPrincipal().then(r=>{e.user.username===r.username&&(r.appSettings=e.user.appSettings)})})).error((function(r){const s=getError(r);e.loader=!1,t.error(s,E.instant("common.error"))}))},e.validateForm=function(){return e.validatePassword()}}]),o.controller("RolesMappingController",["$scope","toastr","SecurityRestService","$translate",function(e,r,t,s){e.debugMapping=function(e,r){const s=r.split(":");t.getRolesMapping({role:e,method:s[1],mapping:s[0]})};e.$on("repositoryIsSet",(function(){t.getRoles().success((function(r){e.roleMappings=r,e.roles=_.keys(e.roleMappings),e.mappings=_.keys(e.roleMappings[e.roles[0]]);const t=_.map(e.roles,(function(r){return[r,_.filter(e.roleMappings[r]).length]}));e.roles=_.reverse(_.map(_.orderBy(t,(function(e){return e[1]})),(function(e){return e[0]})))})).error((function(t){const n=getError(t);e.loader=!1,r.error(n,s.instant("common.error"))}))}))}]),o.controller("ChangeUserPasswordSettingsCtrl",["$scope","toastr","$window","$timeout","$jwtAuth","$rootScope","$controller","SecurityRestService","ModalService","$translate","LocalStorageAdapter","LSKeys","$q",function(e,r,t,n,o,a,u,c,d,p,l,E,g){angular.extend(this,u("CommonUserCtrl",{$scope:e,passwordPlaceholder:"security.new.password"})),e.mode="settings",e.hasEditRestrictions=function(){return!0},e.saveButtonText=p.instant("common.save.btn"),e.goBack=function(){const r=n((function(){t.history.back()}),100);e.$on("$destroy",(function(){n.cancel(r)}))},e.getPrincipal=function(){return o.getPrincipal().then(r=>{e.currentUserData=angular.copy(r)})},e.getPrincipal().then(()=>{e.redirectAdmin(),h(e)}),e.showWorkbenchSettings=!0,e.updateCurrentUserData=function(){g.when(o.getPrincipal()).then(r=>_.assign(r,e.userData))},e.redirectAdmin=function(){e.currentUserData||a.redirectToLogin()},e.pageTitle=p.instant("view.settings.title"),e.passwordPlaceholder=p.instant("security.new.password"),e.grantedAuthorities={READ_REPO:{},WRITE_REPO:{}};const h=function(r){r.userData=angular.copy(r.currentUserData),r.user={username:r.userData.username},r.user.password="",r.user.confirmpassword="",r.user.external=r.userData.external,r.user.appSettings=r.userData.appSettings,void 0===r.user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA&&(r.user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA=!0);const t=i(r.userData.authorities);e.userType=t.userType,e.grantedAuthorities=t.grantedAuthorities};e.loader=!1,e.submit=function(){e.noPassword&&e.userType===s.UserType.ADMIN?d.openSimpleModal({title:p.instant("security.save.admin.settings"),message:p.instant("security.admin.pass.unset"),warning:!0}).result.then((function(){e.updateUser()})):e.updateUser()},e.updateUserHttp=function(){e.loader=!0,c.updateUserData({username:e.user.username,pass:e.noPassword?"":e.user.password||void 0,appSettings:e.user.appSettings}).success((function(){e.updateCurrentUserData(),r.success(p.instant("security.user.updated",{name:e.user.username}));const s=n((function(){e.loader=!1,t.history.back()}),2e3);l.set(E.WORKBENCH_SETTINGS,e.workbenchSettings),e.$on("$destroy",(function(){n.cancel(s)}))})).error((function(t){const s=getError(t);e.loader=!1,r.error(s,p.instant("common.error"))}))},e.updateUser=function(){if(!e.validateForm())return!1;e.updateUserHttp()},e.validateForm=function(){return e.validatePassword()},e.setWorkbenchTheme=function(){const r=document.querySelector(":root");"dark"===e.workbenchSettings.theme?r.classList.add("dark"):r.classList.remove("dark")},e.workbenchSettings=l.get(E.WORKBENCH_SETTINGS),e.workbenchSettings||(e.workbenchSettings={theme:"light"}),e.setWorkbenchTheme(),e.$on("$destroy",(function(){const e=l.get(E.WORKBENCH_SETTINGS),r=document.querySelector(":root");e&&"dark"===e.theme?r.classList.add("dark"):r.classList.remove("dark")}))}]),o.controller("DeleteUserCtrl",["$scope","$modalInstance","username",function(e,r,t){e.username=t,e.ok=function(){r.close()},e.cancel=function(){r.dismiss("cancel")}}])}}]);
2
+ //# sourceMappingURL=11.c8ad938cfc97d57b4d9e.bundle.js.map