graphdb-workbench 2.2.2-TR2 → 2.3.0-TR1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/10.2c7c4caeb5771a2a98d1.bundle.js +2 -0
- package/dist/10.2c7c4caeb5771a2a98d1.bundle.js.map +1 -0
- package/dist/102.850f372bb910e3a64905.bundle.js +2 -0
- package/dist/102.850f372bb910e3a64905.bundle.js.map +1 -0
- package/dist/104.2e04965e98d05ada03fd.bundle.js +2 -0
- package/dist/104.2e04965e98d05ada03fd.bundle.js.map +1 -0
- package/dist/{107.37693ea0237c39fda863.bundle.js → 107.e401af35eca7e21cc9c2.bundle.js} +2 -2
- package/dist/107.e401af35eca7e21cc9c2.bundle.js.map +1 -0
- package/dist/{108.3c3f9c242e6a3e18fff5.bundle.js → 108.90cf8908233ccb473643.bundle.js} +2 -2
- package/dist/108.90cf8908233ccb473643.bundle.js.map +1 -0
- package/dist/{11.f4c5533cd200c8568ff6.bundle.js → 11.f912f1a9f37160d23a3b.bundle.js} +2 -2
- package/dist/11.f912f1a9f37160d23a3b.bundle.js.map +1 -0
- package/dist/{124.6a31dfbe4ac2f9064a29.bundle.js → 124.82728aea87e9d1190441.bundle.js} +2 -2
- package/dist/124.82728aea87e9d1190441.bundle.js.map +1 -0
- package/dist/{126.48e00b0525b3ef8efbe8.bundle.js → 126.d21b0bf850be03830298.bundle.js} +2 -2
- package/dist/126.d21b0bf850be03830298.bundle.js.map +1 -0
- package/dist/140.08e0e8799d3d5fefcda5.bundle.js +2 -0
- package/dist/140.08e0e8799d3d5fefcda5.bundle.js.map +1 -0
- package/dist/141.c16968e963be850e7a7b.bundle.js +2 -0
- package/dist/141.c16968e963be850e7a7b.bundle.js.map +1 -0
- package/dist/142.0204215ce1bf7b2cf84d.bundle.js +2 -0
- package/dist/142.0204215ce1bf7b2cf84d.bundle.js.map +1 -0
- package/dist/143.c194ab0648b274f3b554.bundle.js +2 -0
- package/dist/143.c194ab0648b274f3b554.bundle.js.map +1 -0
- package/dist/145.828376c0cb6b5ba6e015.bundle.js +2 -0
- package/dist/145.828376c0cb6b5ba6e015.bundle.js.map +1 -0
- package/dist/146.581f1af823b55dc358d6.bundle.js +2 -0
- package/dist/146.581f1af823b55dc358d6.bundle.js.map +1 -0
- package/dist/147.66395fd5d79176a79c38.bundle.js +2 -0
- package/dist/147.66395fd5d79176a79c38.bundle.js.map +1 -0
- package/dist/{148.dd250d3cc5aafade33c6.bundle.js → 148.78e7398de964231883f3.bundle.js} +2 -2
- package/dist/{148.dd250d3cc5aafade33c6.bundle.js.map → 148.78e7398de964231883f3.bundle.js.map} +1 -1
- package/dist/{149.a0873076f2dd40830be9.bundle.js → 149.6eb6ef704b8da7bfc6ce.bundle.js} +2 -2
- package/dist/{149.a0873076f2dd40830be9.bundle.js.map → 149.6eb6ef704b8da7bfc6ce.bundle.js.map} +1 -1
- package/dist/{150.3bd8af24551408342185.bundle.js → 150.283dd1f6da002f1ca17f.bundle.js} +2 -2
- package/dist/{150.3bd8af24551408342185.bundle.js.map → 150.283dd1f6da002f1ca17f.bundle.js.map} +1 -1
- package/dist/154.056ec5c8aafbc07484e0.bundle.js +2 -0
- package/dist/154.056ec5c8aafbc07484e0.bundle.js.map +1 -0
- package/dist/156.e15f9befbcfaf6677387.bundle.js +2 -0
- package/dist/156.e15f9befbcfaf6677387.bundle.js.map +1 -0
- package/dist/158.29813ed563736e5c85b2.bundle.js +2 -0
- package/dist/158.29813ed563736e5c85b2.bundle.js.map +1 -0
- package/dist/16.b8bb2389b9f026a298f7.bundle.js +3 -0
- package/dist/16.b8bb2389b9f026a298f7.bundle.js.map +1 -0
- package/dist/160.d5f5ab14c56efd04e404.bundle.js +2 -0
- package/dist/160.d5f5ab14c56efd04e404.bundle.js.map +1 -0
- package/dist/161.f142c1fe18346f00882a.bundle.js +2 -0
- package/dist/161.f142c1fe18346f00882a.bundle.js.map +1 -0
- package/dist/164.d4b744057d28ed5e7e47.bundle.js +2 -0
- package/dist/164.d4b744057d28ed5e7e47.bundle.js.map +1 -0
- package/dist/166.256169db442fec472d9d.bundle.js +2 -0
- package/dist/166.256169db442fec472d9d.bundle.js.map +1 -0
- package/dist/167.f79a82f7de6734cca660.bundle.js +2 -0
- package/dist/167.f79a82f7de6734cca660.bundle.js.map +1 -0
- package/dist/169.16292782069da22a11c0.bundle.js +2 -0
- package/dist/169.16292782069da22a11c0.bundle.js.map +1 -0
- package/dist/17.675eef636eb095240fab.bundle.js +2 -0
- package/dist/17.675eef636eb095240fab.bundle.js.map +1 -0
- package/dist/171.2aecfe97c1fa24db3bf3.bundle.js +2 -0
- package/dist/171.2aecfe97c1fa24db3bf3.bundle.js.map +1 -0
- package/dist/172.558d9080f05080a0dac2.bundle.js +2 -0
- package/dist/172.558d9080f05080a0dac2.bundle.js.map +1 -0
- package/dist/173.c1546a02befda215609d.bundle.js +2 -0
- package/dist/173.c1546a02befda215609d.bundle.js.map +1 -0
- package/dist/175.943ac5019fe29113e1f2.bundle.js +2 -0
- package/dist/175.943ac5019fe29113e1f2.bundle.js.map +1 -0
- package/dist/176.96a2ffd87018134c7b29.bundle.js +2 -0
- package/dist/176.96a2ffd87018134c7b29.bundle.js.map +1 -0
- package/dist/177.443034c31f85d8ac396c.bundle.js +2 -0
- package/dist/177.443034c31f85d8ac396c.bundle.js.map +1 -0
- package/dist/180.384be4faad5d0b1716b5.bundle.js +2 -0
- package/dist/180.384be4faad5d0b1716b5.bundle.js.map +1 -0
- package/dist/181.ce536d7a1f4cb278f82c.bundle.js +2 -0
- package/dist/181.ce536d7a1f4cb278f82c.bundle.js.map +1 -0
- package/dist/182.6154b3558b619301bfdf.bundle.js +2 -0
- package/dist/{182.1b40c7e8a8424e87da32.bundle.js.map → 182.6154b3558b619301bfdf.bundle.js.map} +1 -1
- package/dist/183.67e81437028990463d1a.bundle.js +2 -0
- package/dist/183.67e81437028990463d1a.bundle.js.map +1 -0
- package/dist/20.fbcb31706f03a07e8827.bundle.js +1 -1
- package/dist/20.fbcb31706f03a07e8827.bundle.js.map +1 -1
- package/dist/21.081b98fe7cc1b3dbbd72.bundle.js +2 -0
- package/dist/21.081b98fe7cc1b3dbbd72.bundle.js.map +1 -0
- package/dist/{23.b945d0565ded44df49c5.bundle.js → 23.24787bc4590d48521f4b.bundle.js} +2 -2
- package/dist/23.24787bc4590d48521f4b.bundle.js.map +1 -0
- package/dist/24.7468162b4988a0ad6eaa.bundle.js +2 -0
- package/dist/24.7468162b4988a0ad6eaa.bundle.js.map +1 -0
- package/dist/{25.9d7a3d8f98840b1fc5da.bundle.js → 25.64b95438d07ae2d82d8c.bundle.js} +2 -2
- package/dist/25.64b95438d07ae2d82d8c.bundle.js.map +1 -0
- package/dist/{26.a15a1adb6b30ab849e62.bundle.js → 26.7b0b040185949c4eb865.bundle.js} +2 -2
- package/dist/26.7b0b040185949c4eb865.bundle.js.map +1 -0
- package/dist/{27.83b24ef9ec0fd6964d92.bundle.js → 27.78b1f59da6f702484766.bundle.js} +2 -2
- package/dist/27.78b1f59da6f702484766.bundle.js.map +1 -0
- package/dist/{3.7f19eec4e1cff6bb8ff2.bundle.js → 3.9b969c666ea9ed46ea4f.bundle.js} +2 -2
- package/dist/3.9b969c666ea9ed46ea4f.bundle.js.map +1 -0
- package/dist/{30.a2596e679fb09411b854.bundle.js → 30.67e342e8f1485d26a99b.bundle.js} +2 -2
- package/dist/30.67e342e8f1485d26a99b.bundle.js.map +1 -0
- package/dist/31.133397ed26eda58c7e18.bundle.js +2 -0
- package/dist/31.133397ed26eda58c7e18.bundle.js.map +1 -0
- package/dist/33.4d23fa109c9184727386.bundle.js +1 -1
- package/dist/33.4d23fa109c9184727386.bundle.js.map +1 -1
- package/dist/{35.8be1042671722a19f3b4.bundle.js → 35.541a97f880621d5f7031.bundle.js} +2 -2
- package/dist/35.541a97f880621d5f7031.bundle.js.map +1 -0
- package/dist/36.239dd56c03aeda760f8b.bundle.js +2 -0
- package/dist/36.239dd56c03aeda760f8b.bundle.js.map +1 -0
- package/dist/{38.f4b561d7ee5b236ba481.bundle.js → 38.c8620e7cbab859b6f236.bundle.js} +2 -2
- package/dist/38.c8620e7cbab859b6f236.bundle.js.map +1 -0
- package/dist/39.c630c0e36b0dc913bbe3.bundle.js +2 -0
- package/dist/39.c630c0e36b0dc913bbe3.bundle.js.map +1 -0
- package/dist/{4.186c084105c931abbe1a.bundle.js → 4.d3fb6d0dcca79643bcb3.bundle.js} +2 -2
- package/dist/4.d3fb6d0dcca79643bcb3.bundle.js.map +1 -0
- package/dist/40.50b40301c8cc69a70457.bundle.js +1 -1
- package/dist/40.50b40301c8cc69a70457.bundle.js.map +1 -1
- package/dist/42.45ee7b629beac3e06cc2.bundle.js +2 -0
- package/dist/42.45ee7b629beac3e06cc2.bundle.js.map +1 -0
- package/dist/43.72fbe7e5d290c40db9ec.bundle.js +2 -0
- package/dist/43.72fbe7e5d290c40db9ec.bundle.js.map +1 -0
- package/dist/{5.5f48e5c6fc10b52dd415.bundle.js → 5.a44aa21343f8bf48f0e0.bundle.js} +2 -2
- package/dist/5.a44aa21343f8bf48f0e0.bundle.js.map +1 -0
- package/dist/{53.78084dd64a27f7a6d2e8.bundle.js → 53.c6d488d0fb81a54a3e55.bundle.js} +2 -2
- package/dist/53.c6d488d0fb81a54a3e55.bundle.js.map +1 -0
- package/dist/{54.fe5e554af6ba2c5778c1.bundle.js → 54.6209da75289a30ff366b.bundle.js} +2 -2
- package/dist/54.6209da75289a30ff366b.bundle.js.map +1 -0
- package/dist/{56.9c6f6ecafc1909c42dda.bundle.js → 56.0d89e5b9f6403aab1c8e.bundle.js} +2 -2
- package/dist/56.0d89e5b9f6403aab1c8e.bundle.js.map +1 -0
- package/dist/61.6332e06d94ef4426f068.bundle.js +2 -0
- package/dist/61.6332e06d94ef4426f068.bundle.js.map +1 -0
- package/dist/{62.86f5ed4f7b582a8aa17d.bundle.js → 62.14d5882e16c3da266b6f.bundle.js} +2 -2
- package/dist/62.14d5882e16c3da266b6f.bundle.js.map +1 -0
- package/dist/{7.c7d8fb1dfdb444052435.bundle.js → 7.8ca1f2ef4d0aa49b93ac.bundle.js} +2 -2
- package/dist/7.8ca1f2ef4d0aa49b93ac.bundle.js.map +1 -0
- package/dist/{71.4dbbc366049697f736c5.bundle.js → 71.48a75ab912070cdb19f5.bundle.js} +2 -2
- package/dist/71.48a75ab912070cdb19f5.bundle.js.map +1 -0
- package/dist/9.3b571539df8c3b22cf6e.bundle.js +2 -0
- package/dist/9.3b571539df8c3b22cf6e.bundle.js.map +1 -0
- package/dist/94.38349f52df66313fbcc0.bundle.js +1 -1
- package/dist/94.38349f52df66313fbcc0.bundle.js.map +1 -1
- package/dist/97.df243fffeb4322e50f63.bundle.js +2 -0
- package/dist/97.df243fffeb4322e50f63.bundle.js.map +1 -0
- package/dist/bundle.73c02a0d535f14462730.bundle.js +92 -0
- package/dist/bundle.73c02a0d535f14462730.bundle.js.map +1 -0
- package/dist/index.html +7 -7
- package/dist/js/angular/clustermanagement/templates/modal/add-nodes-dialog.html +2 -2
- package/dist/js/angular/clustermanagement/templates/modal/cluster-create-dialog.html +8 -8
- package/dist/js/angular/clustermanagement/templates/modal/cluster-delete-dialog.html +1 -1
- package/dist/js/angular/clustermanagement/templates/modal/cluster-edit-dialog.html +5 -5
- package/dist/js/angular/core/directives/languageselector/templates/languageSelector.html +2 -2
- package/dist/js/angular/core/directives/queryeditor/templates/query-editor.html +19 -19
- package/dist/js/angular/core/directives/queryeditor/templates/query-sample.html +1 -1
- package/dist/js/angular/core/directives/rdfresourcesearch/templates/rdfResourceSearchTemplate.html +3 -3
- package/dist/js/angular/core/templates/core-errors.html +1 -1
- package/dist/js/angular/core/templates/inactive-plugin-warning-page.html +1 -1
- package/dist/js/angular/core/templates/search-resource-input.html +3 -3
- package/dist/js/angular/externalsync/templates/deleteConnector.html +1 -1
- package/dist/js/angular/graphexplore/templates/modal/save-graph.html +1 -1
- package/dist/js/angular/graphexplore/templates/rdfsCommentLabelTemplate.html +2 -2
- package/dist/js/angular/graphexplore/templates/searchIconInputTemplate.html +3 -3
- package/dist/js/angular/import/templates/filesTable.html +12 -12
- package/dist/js/angular/import/templates/settingsModal.html +19 -19
- package/dist/js/angular/import/templates/textSnippet.html +4 -4
- package/dist/js/angular/import/templates/urlImport.html +4 -4
- package/dist/js/angular/repositories/templates/fedx-repo.html +15 -15
- package/dist/js/angular/repositories/templates/ontop-repo.html +8 -8
- package/dist/js/angular/security/templates/modal/default-authorities.html +2 -2
- package/dist/js/angular/security/templates/user.html +13 -13
- package/dist/js/angular/security/templates/users.html +8 -8
- package/dist/js/angular/settings/modal/location-settings.html +1 -1
- package/dist/js/angular/templates/modal/add-location.html +3 -3
- package/dist/js/angular/templates/modal/edit-location.html +3 -3
- package/dist/js/angular/templates/modal/editRepoFile.html +1 -1
- package/dist/js/angular/templates/modal/upload-repository-config.html +2 -2
- package/dist/pages/autocomplete.html +8 -8
- package/dist/pages/choose-repository-type.html +1 -1
- package/dist/pages/cluster-management/clusterInfo.html +15 -15
- package/dist/pages/connectorsInfo.html +5 -5
- package/dist/pages/create-index.html +15 -15
- package/dist/pages/createConnector.html +23 -23
- package/dist/pages/dependencies.html +12 -12
- package/dist/pages/domainRangeInfo.html +6 -6
- package/dist/pages/edit.html +7 -7
- package/dist/pages/explore.html +10 -10
- package/dist/pages/export.html +14 -14
- package/dist/pages/find.html +2 -2
- package/dist/pages/graph-config/saveGraphConfig.html +22 -22
- package/dist/pages/graphs-visualizations.html +47 -47
- package/dist/pages/guides.html +6 -6
- package/dist/pages/home.html +10 -10
- package/dist/pages/import.html +7 -7
- package/dist/pages/info.html +16 -16
- package/dist/pages/jdbc-create.html +18 -18
- package/dist/pages/jdbc.html +3 -3
- package/dist/pages/licenseInfo.html +1 -1
- package/dist/pages/login.html +2 -2
- package/dist/pages/monitor/queries.html +5 -5
- package/dist/pages/monitor/resources.html +13 -13
- package/dist/pages/namespaces.html +14 -14
- package/dist/pages/plugins.html +4 -4
- package/dist/pages/rdfClassHierarchyInfo.html +16 -16
- package/dist/pages/rdfrank.html +17 -17
- package/dist/pages/registerLicenseInfo.html +3 -3
- package/dist/pages/repositories.html +20 -20
- package/dist/pages/repository.html +37 -37
- package/dist/pages/similarity-indexes.html +15 -15
- package/dist/pages/sparql-template-create.html +9 -9
- package/dist/pages/sparql-templates.html +3 -3
- package/dist/pages/sparql.html +8 -8
- package/dist/pages/webapi.html +3 -3
- package/dist/res/swagger/index.html +27 -27
- package/package.json +2 -2
- package/dist/10.973caeed3c05ef2cfd1c.bundle.js +0 -2
- package/dist/10.973caeed3c05ef2cfd1c.bundle.js.map +0 -1
- package/dist/102.93af0905ca1ff2be2dbf.bundle.js +0 -2
- package/dist/102.93af0905ca1ff2be2dbf.bundle.js.map +0 -1
- package/dist/104.b82229ea4c12400f6f5d.bundle.js +0 -2
- package/dist/104.b82229ea4c12400f6f5d.bundle.js.map +0 -1
- package/dist/107.37693ea0237c39fda863.bundle.js.map +0 -1
- package/dist/108.3c3f9c242e6a3e18fff5.bundle.js.map +0 -1
- package/dist/11.f4c5533cd200c8568ff6.bundle.js.map +0 -1
- package/dist/124.6a31dfbe4ac2f9064a29.bundle.js.map +0 -1
- package/dist/126.48e00b0525b3ef8efbe8.bundle.js.map +0 -1
- package/dist/140.8f22a20a0689c072368f.bundle.js +0 -2
- package/dist/140.8f22a20a0689c072368f.bundle.js.map +0 -1
- package/dist/141.6ffbf225a69b845e5e07.bundle.js +0 -2
- package/dist/141.6ffbf225a69b845e5e07.bundle.js.map +0 -1
- package/dist/142.355ab1a9716ce7315ad6.bundle.js +0 -2
- package/dist/142.355ab1a9716ce7315ad6.bundle.js.map +0 -1
- package/dist/143.64b1142c8e48b388717f.bundle.js +0 -2
- package/dist/143.64b1142c8e48b388717f.bundle.js.map +0 -1
- package/dist/145.9858a584e01b6c01a57c.bundle.js +0 -2
- package/dist/145.9858a584e01b6c01a57c.bundle.js.map +0 -1
- package/dist/146.15a2396be0b56a454857.bundle.js +0 -2
- package/dist/146.15a2396be0b56a454857.bundle.js.map +0 -1
- package/dist/147.638cfbfdf711a97e19f1.bundle.js +0 -2
- package/dist/147.638cfbfdf711a97e19f1.bundle.js.map +0 -1
- package/dist/154.6dadeaa5b9cdab265cb3.bundle.js +0 -2
- package/dist/154.6dadeaa5b9cdab265cb3.bundle.js.map +0 -1
- package/dist/156.4252f16fc656c91fba0c.bundle.js +0 -2
- package/dist/156.4252f16fc656c91fba0c.bundle.js.map +0 -1
- package/dist/158.13d4aafb2c7f02af028b.bundle.js +0 -2
- package/dist/158.13d4aafb2c7f02af028b.bundle.js.map +0 -1
- package/dist/16.61454b9a7360266e544a.bundle.js +0 -3
- package/dist/16.61454b9a7360266e544a.bundle.js.map +0 -1
- package/dist/160.3b604e0909b8a932d959.bundle.js +0 -2
- package/dist/160.3b604e0909b8a932d959.bundle.js.map +0 -1
- package/dist/161.c72cc3169ea1191e49e8.bundle.js +0 -2
- package/dist/161.c72cc3169ea1191e49e8.bundle.js.map +0 -1
- package/dist/164.a03f4da227b54ad97c18.bundle.js +0 -2
- package/dist/164.a03f4da227b54ad97c18.bundle.js.map +0 -1
- package/dist/166.b4fd0bd3df4985d3e74a.bundle.js +0 -2
- package/dist/166.b4fd0bd3df4985d3e74a.bundle.js.map +0 -1
- package/dist/167.0e3773d3b16936a2a72a.bundle.js +0 -2
- package/dist/167.0e3773d3b16936a2a72a.bundle.js.map +0 -1
- package/dist/169.a43d9e76a361ad2cabb5.bundle.js +0 -2
- package/dist/169.a43d9e76a361ad2cabb5.bundle.js.map +0 -1
- package/dist/17.545bc1027c226502e3b8.bundle.js +0 -2
- package/dist/17.545bc1027c226502e3b8.bundle.js.map +0 -1
- package/dist/171.584fa763e2fe9a4d34f4.bundle.js +0 -2
- package/dist/171.584fa763e2fe9a4d34f4.bundle.js.map +0 -1
- package/dist/172.67ba9379059ac602d509.bundle.js +0 -2
- package/dist/172.67ba9379059ac602d509.bundle.js.map +0 -1
- package/dist/173.fd7ee2abdf75fc0ed3a3.bundle.js +0 -2
- package/dist/173.fd7ee2abdf75fc0ed3a3.bundle.js.map +0 -1
- package/dist/175.341ea8612291026d2630.bundle.js +0 -2
- package/dist/175.341ea8612291026d2630.bundle.js.map +0 -1
- package/dist/176.7cdff30cd9372f424163.bundle.js +0 -2
- package/dist/176.7cdff30cd9372f424163.bundle.js.map +0 -1
- package/dist/177.57ac19484b6430c0f242.bundle.js +0 -2
- package/dist/177.57ac19484b6430c0f242.bundle.js.map +0 -1
- package/dist/180.f19924b6b550773f9163.bundle.js +0 -2
- package/dist/180.f19924b6b550773f9163.bundle.js.map +0 -1
- package/dist/181.db05a22a05f9c928b08c.bundle.js +0 -2
- package/dist/181.db05a22a05f9c928b08c.bundle.js.map +0 -1
- package/dist/182.1b40c7e8a8424e87da32.bundle.js +0 -2
- package/dist/183.1ed57fba52ab51806ec3.bundle.js +0 -2
- package/dist/183.1ed57fba52ab51806ec3.bundle.js.map +0 -1
- package/dist/21.ea150df1291050bc1c4a.bundle.js +0 -2
- package/dist/21.ea150df1291050bc1c4a.bundle.js.map +0 -1
- package/dist/23.b945d0565ded44df49c5.bundle.js.map +0 -1
- package/dist/24.77907cc1d707305663c9.bundle.js +0 -2
- package/dist/24.77907cc1d707305663c9.bundle.js.map +0 -1
- package/dist/25.9d7a3d8f98840b1fc5da.bundle.js.map +0 -1
- package/dist/26.a15a1adb6b30ab849e62.bundle.js.map +0 -1
- package/dist/27.83b24ef9ec0fd6964d92.bundle.js.map +0 -1
- package/dist/3.7f19eec4e1cff6bb8ff2.bundle.js.map +0 -1
- package/dist/30.a2596e679fb09411b854.bundle.js.map +0 -1
- package/dist/31.fbcd8b1840a84a281e47.bundle.js +0 -2
- package/dist/31.fbcd8b1840a84a281e47.bundle.js.map +0 -1
- package/dist/35.8be1042671722a19f3b4.bundle.js.map +0 -1
- package/dist/36.8d7becdfce12d9a0de33.bundle.js +0 -2
- package/dist/36.8d7becdfce12d9a0de33.bundle.js.map +0 -1
- package/dist/38.f4b561d7ee5b236ba481.bundle.js.map +0 -1
- package/dist/39.68f59c2a9aeb4c4100c9.bundle.js +0 -2
- package/dist/39.68f59c2a9aeb4c4100c9.bundle.js.map +0 -1
- package/dist/4.186c084105c931abbe1a.bundle.js.map +0 -1
- package/dist/42.87fe547d27ce0c30deef.bundle.js +0 -2
- package/dist/42.87fe547d27ce0c30deef.bundle.js.map +0 -1
- package/dist/43.34060633fa9548ec3437.bundle.js +0 -2
- package/dist/43.34060633fa9548ec3437.bundle.js.map +0 -1
- package/dist/5.5f48e5c6fc10b52dd415.bundle.js.map +0 -1
- package/dist/53.78084dd64a27f7a6d2e8.bundle.js.map +0 -1
- package/dist/54.fe5e554af6ba2c5778c1.bundle.js.map +0 -1
- package/dist/56.9c6f6ecafc1909c42dda.bundle.js.map +0 -1
- package/dist/61.faf4ab26276a053ccac5.bundle.js +0 -2
- package/dist/61.faf4ab26276a053ccac5.bundle.js.map +0 -1
- package/dist/62.86f5ed4f7b582a8aa17d.bundle.js.map +0 -1
- package/dist/7.c7d8fb1dfdb444052435.bundle.js.map +0 -1
- package/dist/71.4dbbc366049697f736c5.bundle.js.map +0 -1
- package/dist/9.7bdbee8225f687ec81bc.bundle.js +0 -2
- package/dist/9.7bdbee8225f687ec81bc.bundle.js.map +0 -1
- package/dist/97.e88574ad257bd44724c3.bundle.js +0 -2
- package/dist/97.e88574ad257bd44724c3.bundle.js.map +0 -1
- package/dist/bundle.f540ee201846422b1cb9.bundle.js +0 -92
- package/dist/bundle.f540ee201846422b1cb9.bundle.js.map +0 -1
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[10],{109:function(e,r,t){"use strict";t.r(r);t(4),t(12),t(23),t(24);var s=t(2);const n=function(e){return e.location?`${e.id}@${e.location}`:e.id},o=angular.module("graphdb.framework.security.controllers",["ngCookies","ui.bootstrap","graphdb.framework.core.services.jwtauth","graphdb.framework.core.services.openIDService","graphdb.framework.rest.security.service","graphdb.framework.utils.localstorageadapter","toastr"]),i=function(e){let r=s.UserType.USER;const t={READ_REPO:{},WRITE_REPO:{}},n={};for(let o=0;o<e.length;o++){const i=e[o];if(i===s.UserRole.ROLE_ADMIN)r=s.UserType.ADMIN;else if(i===s.UserRole.ROLE_REPO_MANAGER)r!==s.UserType.ADMIN&&(r=s.UserType.REPO_MANAGER);else if(i===s.UserRole.ROLE_USER)r=s.UserType.USER;else if(0!==i.indexOf("ROLE_")){const e=i.indexOf("_",i.indexOf("_")+1),r=i.substr(0,e),s=i.substr(e+1);t[r][s]=!0,n[s]=n[s]||{},"READ_REPO"===r?n[s].read=!0:"WRITE_REPO"===r&&(n[s].write=!0)}}return{userType:r,userTypeDescription:s.UserUtils.getUserRoleName(r),grantedAuthorities:t,repositories:n}};o.controller("LoginCtrl",["$scope","$http","toastr","$jwtAuth","$openIDAuth","$location","$rootScope","$translate",function(e,r,t,s,n,o,i,a){e.username="",e.password="",s.reinitializeSecurity(),e.loginWithOpenID=function(){s.loginOpenID()},o.search().noaccess?t.error(a.instant("security.no.rights.config.error"),a.instant("security.login.error")):o.search().expired&&t.error(a.instant("security.auth.token.expired"),a.instant("security.login.error")),e.isGDBLoginEnabled=function(){return s.passwordLoginEnabled},e.isOpenIDEnabled=function(){return s.openIDEnabled},e.login=function(){return r({method:"POST",url:"rest/login",data:{username:e.username,password:e.password}}).success((function(e,r,t){s.authenticate(e,t("Authorization")).then(()=>{i.returnToUrl?o.url(i.returnToUrl):o.path("/")})})).error((function(r,s){if(401===s)t.error(a.instant("security.wrong.credentials"),a.instant("common.error")),e.wrongCredentials=!0,e.username="",e.password="";else{const e=getError(r);t.error(e,s)}}))}}]),o.controller("UsersCtrl",["$scope","$uibModal","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","$uibModalInstance","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","$uibModalInstance","username",function(e,r,t){e.username=t,e.ok=function(){r.close()},e.cancel=function(){r.dismiss("cancel")}}])}}]);
|
|
2
|
+
//# sourceMappingURL=10.2c7c4caeb5771a2a98d1.bundle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["webpack:///./src/js/angular/security/controllers.js"],"names":["createUniqueKey","repository","location","id","securityCtrl","angular","module","parseAuthorities","authorities","userType","USER","grantedAuthorities","repositories","i","length","role","ROLE_ADMIN","ADMIN","ROLE_REPO_MANAGER","REPO_MANAGER","ROLE_USER","indexOf","index","op","substr","repo","read","write","userTypeDescription","getUserRoleName","controller","$scope","$http","toastr","$jwtAuth","$openIDAuth","$location","$rootScope","$translate","username","password","reinitializeSecurity","loginWithOpenID","loginOpenID","search","noaccess","error","instant","expired","isGDBLoginEnabled","passwordLoginEnabled","isOpenIDEnabled","openIDEnabled","login","method","url","data","success","status","headers","authenticate","then","returnToUrl","path","wrongCredentials","msg","getError","$uibModal","$window","$timeout","ModalService","SecurityRestService","loader","securityEnabled","isSecurityEnabled","hasExternalAuth","getAuthImplementation","freeAccessEnabled","isFreeAccessEnabled","getUsers","users","pa","$on","toggleSecurity","timer","reload","cancel","toggleFreeAccess","updateFreeAccess","getFreeAccess","res","appSettings","open","templateUrl","resolve","defaultAuthorities","repoIds","_","mapKeys","getRepositories","r","each","a","hasOwnProperty","result","editFreeAccess","removeUser","openSimpleModal","title","message","name","warning","deleteUser","encodeURIComponent","$uibModalInstance","hasActiveLocation","isEmpty","globalLocation","globalRepositories","ok","auth","repositoryCheckError","WRITE_REPO","push","READ_REPO","close","dismiss","passwordPlaceholder","isAdmin","hasRole","hasEditRestrictions","user","isOverrideAuth","isDefaultAuthEnabled","setGrantedAuthorities","pushAuthority","arguments","authority","hasReadPermission","uniqueKey","hasWritePermission","repoOrWildCard","readCheckDisabled","writeCheckDisabled","validatePassword","noPassword","passwordError","confirmPasswordError","confirmpassword","isLocalAuthentication","updateUser","validateForm","updateUserHttp","setNoPassword","shouldDisableSameAs","sameAsCheckbox","$","DEFAULT_INFERENCE","prop","DEFAULT_SAMEAS","$controller","extend","this","mode","saveButtonText","goBack","history","back","pageTitle","submit","createUser","createUserHttp","pass","usernameError","$routeParams","params","userId","defaultUserSettings","getUserData","getUser","userData","external","undefined","getPrincipal","principal","debugMapping","mapping","split","getRolesMapping","getRoles","roleMappings","roles","keys","mappings","permissionsCount","map","filter","reverse","orderBy","p","LocalStorageAdapter","LSKeys","$q","currentUserData","copy","redirectAdmin","initUserData","showWorkbenchSettings","updateCurrentUserData","when","assign","redirectToLogin","scope","updateUserData","set","WORKBENCH_SETTINGS","workbenchSettings","setWorkbenchTheme","rootElement","document","querySelector","theme","classList","add","remove","get"],"mappings":"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","file":"10.2c7c4caeb5771a2a98d1.bundle.js","sourcesContent":["import 'angular/core/services';\nimport 'angular/core/services/jwt-auth.service';\nimport 'angular/core/services/openid-auth.service';\nimport 'angular/rest/security.rest.service';\nimport {UserUtils, UserRole, UserType} from 'angular/utils/user-utils';\n\nconst SYSTEM_REPO = 'SYSTEM';\nconst READ_REPO = 'READ_REPO';\nconst READ_REPO_PREFIX = 'READ_REPO_';\nconst WRITE_REPO = 'WRITE_REPO';\nconst WRITE_REPO_PREFIX = 'WRITE_REPO_';\n\nconst modules = [\n 'ngCookies',\n 'ui.bootstrap',\n 'graphdb.framework.core.services.jwtauth',\n 'graphdb.framework.core.services.openIDService',\n 'graphdb.framework.rest.security.service',\n 'graphdb.framework.utils.localstorageadapter',\n 'toastr'\n];\n\nconst createUniqueKey = function (repository) {\n if (repository.location) {\n return `${repository.id}@${repository.location}`;\n }\n return repository.id;\n};\n\nconst securityCtrl = angular.module('graphdb.framework.security.controllers', modules);\n\nconst setGrantedAuthorities = function ($scope) {\n function pushAuthority() {\n for (let i = 0; i < arguments.length; i++) {\n const authority = arguments[i];\n if (_.indexOf($scope.user.grantedAuthorities, authority) < 0) {\n $scope.user.grantedAuthorities.push(authority);\n }\n }\n }\n\n $scope.user.grantedAuthorities = [];\n\n $scope.repositoryCheckError = true;\n if ($scope.userType === UserType.ADMIN) {\n $scope.repositoryCheckError = false;\n pushAuthority(UserRole.ROLE_ADMIN);\n } else if ($scope.userType === UserType.REPO_MANAGER) {\n $scope.repositoryCheckError = false;\n pushAuthority(UserRole.ROLE_REPO_MANAGER);\n } else {\n pushAuthority(UserRole.ROLE_USER);\n for (const index in $scope.grantedAuthorities.WRITE_REPO) {\n if ($scope.grantedAuthorities.WRITE_REPO[index]) {\n $scope.repositoryCheckError = false;\n pushAuthority(WRITE_REPO_PREFIX + index, READ_REPO_PREFIX + index);\n }\n }\n for (const index in $scope.grantedAuthorities.READ_REPO) {\n if ($scope.grantedAuthorities.READ_REPO[index]) {\n $scope.repositoryCheckError = false;\n pushAuthority(READ_REPO_PREFIX + index);\n }\n }\n }\n};\n\nconst parseAuthorities = function (authorities) {\n let userType = UserType.USER;\n const grantedAuthorities = {\n [READ_REPO]: {},\n [WRITE_REPO]: {}\n };\n const repositories = {};\n for (let i = 0; i < authorities.length; i++) {\n const role = authorities[i];\n if (role === UserRole.ROLE_ADMIN) {\n userType = UserType.ADMIN;\n } else if (role === UserRole.ROLE_REPO_MANAGER) {\n if (userType !== UserType.ADMIN) {\n userType = UserType.REPO_MANAGER;\n }\n } else if (role === UserRole.ROLE_USER) {\n userType = UserType.USER;\n } else if (role.indexOf('ROLE_') !== 0) {\n const index = role.indexOf('_', role.indexOf('_') + 1);\n const op = role.substr(0, index);\n const repo = role.substr(index + 1);\n grantedAuthorities[op][repo] = true;\n repositories[repo] = repositories[repo] || {};\n if (op === READ_REPO) {\n repositories[repo].read = true;\n } else if (op === WRITE_REPO) {\n repositories[repo].write = true;\n }\n }\n }\n\n return {\n userType: userType,\n userTypeDescription: UserUtils.getUserRoleName(userType),\n grantedAuthorities: grantedAuthorities,\n repositories: repositories\n };\n};\n\nsecurityCtrl.controller('LoginCtrl', ['$scope', '$http', 'toastr', '$jwtAuth', '$openIDAuth', '$location', '$rootScope', '$translate',\n function ($scope, $http, toastr, $jwtAuth, $openIDAuth, $location, $rootScope, $translate) {\n $scope.username = '';\n $scope.password = '';\n\n // Reinitialize security settings, if failed for some reason\n $jwtAuth.reinitializeSecurity();\n\n $scope.loginWithOpenID = function() {\n $jwtAuth.loginOpenID();\n };\n\n if ($location.search().noaccess) {\n toastr.error($translate.instant('security.no.rights.config.error'), $translate.instant('security.login.error'));\n } else if ($location.search().expired) {\n toastr.error($translate.instant('security.auth.token.expired'), $translate.instant('security.login.error'));\n }\n\n $scope.isGDBLoginEnabled = function() {\n return $jwtAuth.passwordLoginEnabled;\n };\n\n $scope.isOpenIDEnabled = function() {\n return $jwtAuth.openIDEnabled;\n };\n\n $scope.login = function () {\n return $http({\n method: 'POST',\n url: 'rest/login',\n data: {\n 'username': $scope.username,\n 'password': $scope.password\n }\n }).success(function (data, status, headers) {\n $jwtAuth.authenticate(data, headers('Authorization'))\n .then(() => {\n if ($rootScope.returnToUrl) {\n // go back to remembered url\n $location.url($rootScope.returnToUrl);\n } else {\n // don't have a remembered url, go home\n $location.path('/');\n }\n });\n }).error(function (data, status) {\n if (status === 401) {\n toastr.error($translate.instant('security.wrong.credentials'), $translate.instant('common.error'));\n $scope.wrongCredentials = true;\n $scope.username = '';\n $scope.password = '';\n } else {\n const msg = getError(data);\n toastr.error(msg, status);\n }\n });\n };\n }]);\n\nsecurityCtrl.controller('UsersCtrl', ['$scope', '$uibModal', 'toastr', '$window', '$jwtAuth', '$timeout', 'ModalService', 'SecurityRestService', '$translate',\n function ($scope, $uibModal, toastr, $window, $jwtAuth, $timeout, ModalService, SecurityRestService, $translate) {\n\n $scope.loader = true;\n $scope.securityEnabled = function () {\n return $jwtAuth.isSecurityEnabled();\n };\n $scope.hasExternalAuth = function () {\n return $jwtAuth.hasExternalAuth();\n };\n $scope.getAuthImplementation = function () {\n return $jwtAuth.getAuthImplementation();\n };\n $scope.freeAccessEnabled = function () {\n return $jwtAuth.isFreeAccessEnabled();\n };\n $scope.getUsers = function () {\n SecurityRestService.getUsers()\n .success(function (data) {\n $scope.users = data;\n for (let i = 0; i < $scope.users.length; i++) {\n const pa = parseAuthorities($scope.users[i].grantedAuthorities);\n $scope.users[i].userType = pa.userType;\n $scope.users[i].userTypeDescription = pa.userTypeDescription;\n $scope.users[i].repositories = pa.repositories;\n }\n $scope.loader = false;\n }).error(function (data) {\n const msg = getError(data);\n toastr.error(msg, $translate.instant('common.error'));\n $scope.loader = false;\n });\n };\n $scope.getUsers();\n\n $scope.$on('repositoryIsSet', function () {\n $scope.getUsers();\n });\n\n $scope.toggleSecurity = function () {\n $jwtAuth.toggleSecurity(!$jwtAuth.isSecurityEnabled());\n if ($jwtAuth.isSecurityEnabled()) {\n const timer = $timeout(function () {\n $window.location.reload();\n }, 500);\n $scope.$on('$destroy', function () {\n $timeout.cancel(timer);\n });\n }\n };\n\n $scope.toggleFreeAccess = function (updateFreeAccess) {\n if (!$jwtAuth.isFreeAccessEnabled() || ($jwtAuth.isFreeAccessEnabled() && updateFreeAccess)) {\n SecurityRestService.getFreeAccess().then(function (res) {\n let authorities = res.data.authorities;\n let appSettings = res.data.appSettings || {\n 'DEFAULT_SAMEAS': true,\n 'DEFAULT_INFERENCE': true,\n 'EXECUTE_COUNT': true,\n 'IGNORE_SHARED_QUERIES': false,\n 'DEFAULT_VIS_GRAPH_SCHEMA': true\n };\n const modalInstance = $uibModal.open({\n templateUrl: 'js/angular/security/templates/modal/default-authorities.html',\n controller: 'DefaultAuthoritiesCtrl',\n resolve: {\n data: function () {\n return {\n // converts the array rights to hash ones. why, oh, why do we have both formats?\n defaultAuthorities: function () {\n const defaultAuthorities = {\n [READ_REPO]: {},\n [WRITE_REPO]: {}\n };\n // We might have old (no longer existing) repositories so we have to check that\n const repoIds = _.mapKeys($scope.getRepositories(), function (r) {\n return createUniqueKey(r);\n });\n _.each(authorities, function (a) {\n // indexOf works in IE 11, startsWith doesn't\n if (a.indexOf(WRITE_REPO_PREFIX) === 0) {\n if (repoIds.hasOwnProperty(a.substr(11))) {\n defaultAuthorities[WRITE_REPO][a.substr(11)] = true;\n }\n } else if (a.indexOf(READ_REPO_PREFIX) === 0) {\n if (repoIds.hasOwnProperty(a.substr(10))) {\n defaultAuthorities[READ_REPO][a.substr(10)] = true;\n }\n }\n });\n return defaultAuthorities;\n },\n appSettings: appSettings\n };\n }\n }\n });\n modalInstance.result.then(function (data) {\n authorities = data.authorities;\n appSettings = data.appSettings;\n $jwtAuth.toggleFreeAccess(updateFreeAccess || !$jwtAuth.isFreeAccessEnabled(), authorities, appSettings, updateFreeAccess);\n });\n });\n } else {\n $jwtAuth.toggleFreeAccess(!$jwtAuth.isFreeAccessEnabled(), []);\n }\n };\n\n $scope.editFreeAccess = function () {\n $scope.toggleFreeAccess(true);\n };\n\n $scope.removeUser = function (username) {\n ModalService.openSimpleModal({\n title: $translate.instant('common.confirm.delete'),\n message: $translate.instant('security.confirm.delete.user', {name: username}),\n warning: true\n }).result.then(function () {\n $scope.loader = true;\n SecurityRestService.deleteUser(username).success(function () {\n $scope.getUsers();\n }).error(function (data) {\n const msg = getError(data);\n toastr.error(msg, $translate.instant('common.error'));\n\n $scope.loader = false;\n });\n\n });\n };\n\n // Should be able to send the original username to $routeParams\n $scope.encodeURIComponent = function (name) {\n return encodeURIComponent(name);\n };\n }]);\n\nsecurityCtrl.controller('DefaultAuthoritiesCtrl', ['$scope', '$http', '$uibModalInstance', 'data', '$rootScope',\n function ($scope, $http, $uibModalInstance, data, $rootScope) {\n $scope.grantedAuthorities = data.defaultAuthorities();\n $scope.appSettings = data.appSettings;\n\n $scope.hasActiveLocation = function () {\n // Hack to get this from root scope to avoid cyclic dependency\n return !_.isEmpty($rootScope.globalLocation);\n };\n\n $scope.getRepositories = function () {\n // Hack to get this from root scope to avoid cyclic dependency\n return $rootScope.globalRepositories;\n };\n\n $scope.ok = function () {\n const auth = [];\n $scope.repositoryCheckError = true;\n for (const index in $scope.grantedAuthorities.WRITE_REPO) {\n if ($scope.grantedAuthorities.WRITE_REPO[index]) {\n auth.push(WRITE_REPO_PREFIX + index);\n auth.push(READ_REPO_PREFIX + index);\n $scope.repositoryCheckError = false;\n }\n }\n for (const index in $scope.grantedAuthorities.READ_REPO) {\n if ($scope.grantedAuthorities.READ_REPO[index] && auth.indexOf(READ_REPO_PREFIX + index) === -1) {\n auth.push(READ_REPO_PREFIX + index);\n $scope.repositoryCheckError = false;\n }\n }\n if (!$scope.repositoryCheckError) {\n $uibModalInstance.close({authorities: auth, appSettings: $scope.appSettings});\n }\n };\n\n $scope.cancel = function () {\n $uibModalInstance.dismiss('cancel');\n };\n\n $scope.createUniqueKey = function (repository) {\n return createUniqueKey(repository);\n };\n }]);\n\nsecurityCtrl.controller('CommonUserCtrl', ['$rootScope', '$scope', '$http', 'toastr', '$window', '$timeout', '$location', '$jwtAuth', '$translate', 'passwordPlaceholder',\n function ($rootScope, $scope, $http, toastr, $window, $timeout, $location, $jwtAuth, $translate, passwordPlaceholder) {\n $rootScope.$on('$translateChangeSuccess', function () {\n $scope.passwordPlaceholder = $translate.instant(passwordPlaceholder);\n });\n $scope.isAdmin = function () {\n return $jwtAuth.hasRole(UserRole.ROLE_ADMIN);\n };\n $scope.hasExternalAuth = function () {\n return $jwtAuth.hasExternalAuth();\n };\n\n $scope.hasEditRestrictions = function () {\n return $scope.user && $scope.user.username === UserType.ADMIN;\n };\n\n $scope.isOverrideAuth = function () {\n return $jwtAuth.isDefaultAuthEnabled();\n };\n\n $scope.setGrantedAuthorities = function () {\n setGrantedAuthorities($scope);\n };\n\n $scope.hasReadPermission = function (repository) {\n const uniqueKey = createUniqueKey(repository);\n return $scope.userType === UserType.ADMIN || $scope.userType === UserType.REPO_MANAGER\n || repository.id !== SYSTEM_REPO\n && ($scope.grantedAuthorities.READ_REPO['*'] || $scope.grantedAuthorities.WRITE_REPO['*'])\n || $scope.grantedAuthorities.READ_REPO[uniqueKey]\n || $scope.grantedAuthorities.WRITE_REPO[uniqueKey];\n };\n\n $scope.hasWritePermission = function (repoOrWildCard) {\n const uniqueKey = createUniqueKey(repoOrWildCard);\n return $scope.userType === UserType.ADMIN || $scope.userType === UserType.REPO_MANAGER\n || repoOrWildCard.id !== SYSTEM_REPO && $scope.grantedAuthorities.WRITE_REPO['*']\n || $scope.grantedAuthorities.WRITE_REPO[uniqueKey];\n };\n\n $scope.readCheckDisabled = function (repoOrWildCard) {\n return $scope.hasWritePermission(repoOrWildCard)\n || repoOrWildCard.id !== SYSTEM_REPO && repoOrWildCard !== '*' && $scope.grantedAuthorities.READ_REPO['*']\n || $scope.hasEditRestrictions();\n };\n\n $scope.writeCheckDisabled = function (repoOrWildCard) {\n return $scope.userType === UserType.ADMIN || $scope.userType === UserType.REPO_MANAGER\n || repoOrWildCard.id !== SYSTEM_REPO && repoOrWildCard !== '*' && $scope.grantedAuthorities.WRITE_REPO['*']\n || $scope.hasEditRestrictions();\n };\n\n $scope.createUniqueKey = function (repository) {\n return createUniqueKey(repository);\n };\n\n $scope.userType = UserType.USER;\n $scope.grantedAuthorities = {\n [READ_REPO]: {},\n [WRITE_REPO]: {}\n };\n\n $scope.validatePassword = function() {\n if ($scope.noPassword) {\n $scope.passwordError = '';\n $scope.confirmPasswordError = '';\n return true;\n }\n if ($scope.user.password !== $scope.user.confirmpassword) {\n if (!$scope.user.password) {\n $scope.passwordError = $translate.instant('security.enter.password');\n $scope.confirmPasswordError = '';\n } else {\n $scope.passwordError = '';\n $scope.confirmPasswordError = $translate.instant('security.confirm.password');\n }\n return false;\n } else {\n $scope.passwordError = '';\n $scope.confirmPasswordError = '';\n }\n return true;\n };\n\n $scope.isLocalAuthentication = function() {\n return $jwtAuth.getAuthImplementation() === 'Local';\n };\n\n $scope.updateUser = function () {\n if (!$scope.validateForm()) {\n return false;\n }\n\n if ($scope.isLocalAuthentication()) {\n $scope.setGrantedAuthorities();\n }\n\n if (!$scope.repositoryCheckError) {\n $scope.updateUserHttp();\n }\n };\n\n $scope.setNoPassword = function() {\n if ($scope.noPassword) {\n $scope.user.password = '';\n $scope.user.confirmpassword = '';\n $scope.passwordError = '';\n $scope.confirmPasswordError = '';\n }\n };\n\n $scope.shouldDisableSameAs = function () {\n const sameAsCheckbox = $('#sameAsCheck');\n if ($scope.user && !$scope.user.appSettings.DEFAULT_INFERENCE && sameAsCheckbox.prop('checked')) {\n sameAsCheckbox.prop(\"checked\", false);\n $scope.user.appSettings.DEFAULT_SAMEAS = false;\n }\n\n return $scope.user && !$scope.user.appSettings.DEFAULT_INFERENCE;\n };\n }]);\n\nsecurityCtrl.controller('AddUserCtrl', ['$scope', '$http', 'toastr', '$window', '$timeout', '$location', '$jwtAuth', '$controller', 'SecurityRestService', 'ModalService', '$translate',\n function ($scope, $http, toastr, $window, $timeout, $location, $jwtAuth, $controller, SecurityRestService, ModalService, $translate) {\n\n angular.extend(this, $controller('CommonUserCtrl', {$scope: $scope, passwordPlaceholder: 'security.password.placeholder'}));\n\n $scope.mode = 'add';\n $scope.saveButtonText = $translate.instant('common.create.btn');\n $scope.goBack = function () {\n const timer = $timeout(function () {\n $window.history.back();\n }, 100);\n $scope.$on('$destroy', function () {\n $timeout.cancel(timer);\n });\n };\n $scope.pageTitle = $translate.instant('view.create.user.title');\n $scope.passwordPlaceholder = $translate.instant('security.password.placeholder');\n\n $scope.user = {\n 'username': '',\n 'password': '',\n 'confirmpassword': '',\n 'grantedAuthorities': [],\n 'appSettings': {\n 'DEFAULT_SAMEAS': true,\n 'DEFAULT_INFERENCE': true,\n 'EXECUTE_COUNT': true,\n 'IGNORE_SHARED_QUERIES': false,\n 'DEFAULT_VIS_GRAPH_SCHEMA': true\n }\n };\n\n $scope.submit = function () {\n if ($scope.noPassword && $scope.userType === UserType.ADMIN) {\n ModalService.openSimpleModal({\n title: $translate.instant('security.create.admin'),\n message: $translate.instant('security.admin.login.warning'),\n warning: true\n }).result.then(function () {\n $scope.createUser();\n });\n } else {\n $scope.createUser();\n }\n };\n\n $scope.createUserHttp = function () {\n $scope.loader = true;\n SecurityRestService.createUser({\n username: $scope.user.username,\n pass: $scope.user.password,\n appSettings: $scope.user.appSettings,\n grantedAuthorities: $scope.user.grantedAuthorities\n }).success(function () {\n toastr.success($translate.instant('security.user.created', {name: $scope.user.username}));\n const timer = $timeout(function () {\n $scope.loader = false;\n $window.history.back();\n }, 2000);\n $scope.$on('$destroy', function () {\n $timeout.cancel(timer);\n });\n }).error(function (data) {\n const msg = getError(data);\n $scope.loader = false;\n toastr.error(msg, $translate.instant('common.error'));\n });\n };\n\n $scope.createUser = function () {\n if ($scope.validateForm()) {\n $scope.setGrantedAuthorities();\n\n if (!$scope.repositoryCheckError) {\n $scope.createUserHttp();\n }\n }\n };\n\n $scope.validateForm = function () {\n let result = true;\n if (!$scope.user.username) {\n $scope.usernameError = $translate.instant('security.enter.username');\n result = false;\n } else {\n $scope.usernameError = '';\n }\n if ($scope.noPassword) {\n $scope.passwordError = '';\n $scope.confirmPasswordError = '';\n } else {\n if (!$scope.user.password) {\n $scope.passwordError = $translate.instant('security.enter.password');\n result = false;\n } else {\n $scope.passwordError = '';\n }\n if (!$scope.user.confirmpassword || $scope.user.password !== $scope.user.confirmpassword) {\n $scope.confirmPasswordError = $translate.instant('security.confirm.password');\n result = false;\n } else {\n $scope.confirmPasswordError = '';\n }\n }\n\n return result;\n };\n }]);\n\nsecurityCtrl.controller('EditUserCtrl', ['$scope', '$http', 'toastr', '$window', '$routeParams', '$timeout', '$location', '$jwtAuth', '$controller', 'SecurityRestService', 'ModalService', '$translate',\n function ($scope, $http, toastr, $window, $routeParams, $timeout, $location, $jwtAuth, $controller, SecurityRestService, ModalService, $translate) {\n\n angular.extend(this, $controller('CommonUserCtrl', {$scope: $scope, passwordPlaceholder: 'security.new.password'}));\n\n $scope.mode = 'edit';\n $scope.saveButtonText = $translate.instant('common.save.btn');\n $scope.goBack = function () {\n const timer = $timeout(function () {\n $window.history.back();\n }, 100);\n $scope.$on('$destroy', function () {\n $timeout.cancel(timer);\n });\n };\n $scope.params = $routeParams;\n $scope.pageTitle = $translate.instant('view.edit.user.title', {userId: $scope.params.userId});\n $scope.passwordPlaceholder = $translate.instant('security.new.password');\n $scope.userType = UserType.USER;\n const defaultUserSettings = {\n 'DEFAULT_SAMEAS': true,\n 'DEFAULT_INFERENCE': true,\n 'EXECUTE_COUNT': true,\n 'IGNORE_SHARED_QUERIES': false,\n 'DEFAULT_VIS_GRAPH_SCHEMA': true\n };\n\n if (!$jwtAuth.hasRole(UserRole.ROLE_ADMIN)) {\n $location.url('settings');\n }\n $scope.getUserData = function () {\n SecurityRestService.getUser($scope.params.userId).success(function (data) {\n $scope.userData = data;\n $scope.user = {username: $scope.userData.username};\n $scope.user.password = '';\n $scope.user.confirmpassword = '';\n $scope.user.external = $scope.userData.external;\n $scope.user.appSettings = data.appSettings || defaultUserSettings;\n $scope.userType = UserType.USER;\n const pa = parseAuthorities(data.grantedAuthorities);\n $scope.userType = pa.userType;\n $scope.grantedAuthorities = pa.grantedAuthorities;\n }).error(function (data) {\n const msg = getError(data);\n toastr.error(msg, $translate.instant('common.error'));\n });\n };\n\n $scope.getUserData();\n\n $scope.submit = function () {\n if ($scope.noPassword && $scope.userType === UserType.ADMIN) {\n ModalService.openSimpleModal({\n title: $translate.instant('security.save.admin.settings'),\n message: $translate.instant('security.admin.pass.unset'),\n warning: true\n }).result.then(function () {\n $scope.updateUser();\n });\n } else {\n $scope.updateUser();\n }\n };\n\n $scope.updateUserHttp = function () {\n $scope.loader = true;\n SecurityRestService.updateUser({\n username: $scope.user.username,\n pass: ($scope.noPassword) ? '' : $scope.user.password || undefined,\n appSettings: $scope.user.appSettings,\n grantedAuthorities: $scope.user.grantedAuthorities\n }).success(function () {\n toastr.success($translate.instant('security.user.updated', {name: $scope.user.username}));\n const timer = $timeout(function () {\n $scope.loader = false;\n $window.history.back();\n }, 2000);\n $scope.$on('$destroy', function () {\n $timeout.cancel(timer);\n });\n // if we update the settings of the currently logged user, update the principal\n $jwtAuth.getPrincipal().then((principal) => {\n if ($scope.user.username === principal.username) {\n principal.appSettings = $scope.user.appSettings;\n }\n });\n }).error(function (data) {\n const msg = getError(data);\n $scope.loader = false;\n toastr.error(msg, $translate.instant('common.error'));\n });\n };\n\n $scope.validateForm = function () {\n return $scope.validatePassword();\n };\n }]);\n\nsecurityCtrl.controller('RolesMappingController', ['$scope', 'toastr', 'SecurityRestService', '$translate',\n function ($scope, toastr, SecurityRestService, $translate) {\n\n $scope.debugMapping = function (role, mapping) {\n const method = mapping.split(':');\n SecurityRestService.getRolesMapping({\n role: role,\n method: method[1],\n mapping: method[0]\n });\n };\n\n const loadRoles = function () {\n SecurityRestService.getRoles()\n .success(function (data) {\n $scope.roleMappings = data;\n $scope.roles = _.keys($scope.roleMappings);\n $scope.mappings = _.keys($scope.roleMappings[$scope.roles[0]]);\n const permissionsCount = _.map($scope.roles, function (role) {\n return [role, _.filter($scope.roleMappings[role]).length];\n });\n $scope.roles = _.reverse(_.map(_.orderBy(permissionsCount, function (p) {\n return p[1];\n }), function (p) {\n return p[0];\n }));\n })\n .error(function (data) {\n const msg = getError(data);\n $scope.loader = false;\n toastr.error(msg, $translate.instant('common.error'));\n });\n };\n\n $scope.$on('repositoryIsSet', function () {\n loadRoles();\n });\n}]);\n\nsecurityCtrl.controller('ChangeUserPasswordSettingsCtrl', ['$scope', 'toastr', '$window', '$timeout', '$jwtAuth', '$rootScope', '$controller', 'SecurityRestService', 'ModalService', '$translate', 'LocalStorageAdapter', 'LSKeys', '$q',\n function ($scope, toastr, $window, $timeout, $jwtAuth, $rootScope, $controller, SecurityRestService, ModalService, $translate, LocalStorageAdapter, LSKeys, $q) {\n\n angular.extend(this, $controller('CommonUserCtrl', {$scope: $scope, passwordPlaceholder: 'security.new.password'}));\n\n $scope.mode = 'settings';\n $scope.hasEditRestrictions = function () {\n return true;\n };\n $scope.saveButtonText = $translate.instant('common.save.btn');\n $scope.goBack = function () {\n const timer = $timeout(function () {\n $window.history.back();\n }, 100);\n $scope.$on('$destroy', function () {\n $timeout.cancel(timer);\n });\n };\n // Wrapped in a scope function for ease of testing\n $scope.getPrincipal = function () {\n return $jwtAuth.getPrincipal()\n .then((principal) => {\n $scope.currentUserData = angular.copy(principal);\n });\n };\n\n $scope.getPrincipal().then(() => {\n $scope.redirectAdmin();\n initUserData($scope);\n });\n\n $scope.showWorkbenchSettings = true;\n\n $scope.updateCurrentUserData = function () {\n // Using $q.when to proper set values in view\n $q.when($jwtAuth.getPrincipal())\n .then((principal) => _.assign(principal, $scope.userData));\n };\n\n //call it as a function so I can make test on it\n $scope.redirectAdmin = function () {\n if (!$scope.currentUserData) {\n $rootScope.redirectToLogin();\n }\n };\n\n $scope.pageTitle = $translate.instant('view.settings.title');\n $scope.passwordPlaceholder = $translate.instant('security.new.password');\n $scope.grantedAuthorities = {\n [READ_REPO]: {},\n [WRITE_REPO]: {}\n };\n\n const initUserData = function (scope) {\n // Copy needed so that Cancel would work correctly, need to call updateCurrentUserData on OK\n scope.userData = angular.copy(scope.currentUserData);\n scope.user = {username: scope.userData.username};\n scope.user.password = '';\n scope.user.confirmpassword = '';\n scope.user.external = scope.userData.external;\n scope.user.appSettings = scope.userData.appSettings;\n // For backward compatibility\n if (scope.user.appSettings['DEFAULT_VIS_GRAPH_SCHEMA'] === undefined) {\n scope.user.appSettings['DEFAULT_VIS_GRAPH_SCHEMA'] = true;\n }\n\n const pa = parseAuthorities(scope.userData.authorities);\n $scope.userType = pa.userType;\n $scope.grantedAuthorities = pa.grantedAuthorities;\n };\n\n $scope.loader = false;\n\n $scope.submit = function () {\n if ($scope.noPassword && $scope.userType === UserType.ADMIN) {\n ModalService.openSimpleModal({\n title: $translate.instant('security.save.admin.settings'),\n message: $translate.instant('security.admin.pass.unset'),\n warning: true\n }).result.then(function () {\n $scope.updateUser();\n });\n } else {\n $scope.updateUser();\n }\n };\n\n $scope.updateUserHttp = function () {\n $scope.loader = true;\n SecurityRestService.updateUserData({\n username: $scope.user.username,\n pass: ($scope.noPassword) ? '' : $scope.user.password || undefined,\n appSettings: $scope.user.appSettings\n }).success(function () {\n $scope.updateCurrentUserData();\n toastr.success($translate.instant('security.user.updated', {name: $scope.user.username}));\n const timer = $timeout(function () {\n $scope.loader = false;\n $window.history.back();\n }, 2000);\n LocalStorageAdapter.set(LSKeys.WORKBENCH_SETTINGS, $scope.workbenchSettings);\n $scope.$on('$destroy', function () {\n $timeout.cancel(timer);\n });\n }).error(function (data) {\n const msg = getError(data);\n $scope.loader = false;\n toastr.error(msg, $translate.instant('common.error'));\n });\n };\n\n $scope.updateUser = function () {\n if (!$scope.validateForm()) {\n return false;\n }\n\n $scope.updateUserHttp();\n };\n\n $scope.validateForm = function () {\n return $scope.validatePassword();\n };\n\n $scope.setWorkbenchTheme = function () {\n const rootElement = document.querySelector(':root');\n if ($scope.workbenchSettings.theme === 'dark') {\n rootElement.classList.add(\"dark\");\n } else {\n rootElement.classList.remove(\"dark\");\n }\n };\n\n $scope.workbenchSettings = LocalStorageAdapter.get(LSKeys.WORKBENCH_SETTINGS);\n if (!$scope.workbenchSettings) {\n $scope.workbenchSettings = {\n theme: 'light'\n };\n }\n $scope.setWorkbenchTheme();\n\n $scope.$on(\"$destroy\", function () {\n const workbenchSettings = LocalStorageAdapter.get(LSKeys.WORKBENCH_SETTINGS);\n const rootElement = document.querySelector(':root');\n if (workbenchSettings && workbenchSettings.theme === 'dark') {\n rootElement.classList.add(\"dark\");\n } else {\n rootElement.classList.remove(\"dark\");\n }\n });\n }]);\n\nsecurityCtrl.controller('DeleteUserCtrl', ['$scope', '$uibModalInstance', 'username', function ($scope, $uibModalInstance, username) {\n $scope.username = username;\n\n $scope.ok = function () {\n $uibModalInstance.close();\n };\n\n $scope.cancel = function () {\n $uibModalInstance.dismiss('cancel');\n };\n}]);\n"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[102],{95:function(n,e,i){"use strict";i.r(e);i(19);function t(n,e,i,t,r,o,s,l){let u;const a=function(){n.clear(),r.isLicenseValid()&&t.getActiveRepository()&&!t.isActiveRepoOntopType()&&!t.isActiveRepoFedXType()&&c()};n.clear=function(){n.searchPluginsTerm="",n.plugins=[],n.displayedPlugins=[]};const c=function(){g(),u=e((function(){g()}),5e3)},g=function(){s.getPlugins(n.getActiveRepository()).success((function(e){n.plugins=n.buildPluginsArray(e.results.bindings)})).error((function(n){i.error(getError(n))})).finally((function(){n.filterResults(),n.setLoader(!1)}))};n.buildPluginsArray=function(n){return n.map(n=>({name:n.s.value,enabled:"true"===n.o.value})).filter((function(n){return"plugincontrol"!==n.name&&"literals-index"!==n.name})).sort((function(n,e){const i=n.name.toLowerCase(),t=e.name.toLowerCase();return i<t?-1:i>t?1:0}))},n.filterResults=function(){const e=n.plugins.filter(e=>-1!==e.name.indexOf(n.searchPluginsTerm));f(e)&&n.updateDisplayedPlugins(e)};const f=function(e){if(!n.displayedPlugins||n.displayedPlugins.length!==e.length)return!0;for(const i in e)if(!n.displayedPlugins.find(n=>angular.equals(n,e[i])))return!0;return!1};function d(){u&&e.cancel(u)}n.updateDisplayedPlugins=function(e){n.displayedPlugins=e,setTimeout((function(){n.applyRowStyles()}),0)},n.setLoader=function(e,i){o.cancel(n.loaderTimeout),e?n.loaderTimeout=o((function(){n.loader=e,n.loaderMessage=i}),300):n.loader=!1},n.$on("repositoryIsSet",(function(){d(),a()})),n.$on("$destroy",(function(){d(),$(window).off("resize.plugin")})),$(window).on("resize.plugin",(function(){n.applyRowStyles()})),n.applyRowStyles=function(){const e=$("#wb-plugins-pluginInPlugins").width(),i=$("tr").width(),t=Math.floor(e/i);$(".wb-plugins-row").toArray().forEach((e,i)=>{n.isGreyBackground(t,i)?$(e).addClass("grey-row"):$(e).removeClass("grey-row")})},n.isGreyBackground=function(n,e){const i=(Math.floor(e/n)+1)%2!=1,t=e%2!=0;if(n%2!=0){if(i&&!t||!i&&!t)return!0;if(i&&t||!i&&t)return!1}else{if(i&&!t||!i&&t)return!1;if(i&&t||!i&&!t)return!0}},n.togglePlugin=function(e,t){const r=n.getActiveRepository(),o=t?l.instant("deactivating.plugin",{pluginName:e}):l.instant("activating.plugin",{pluginName:e});n.setLoader(!0,o),s.togglePlugin(r,t,e).error((function(n){i.error(getError(n))})).finally((function(){g(),n.setLoader(!1)}))},n.getLoaderMessage=function(){return n.loaderMessage||l.instant("common.loading")},n.onSearchTermChanged=function(){n.filterResults()},a()}angular.module("graphdb.framework.plugins.controllers",["graphdb.framework.rest.plugins.service"]).controller("PluginsCtrl",t),t.$inject=["$scope","$interval","toastr","$repositories","$licenseService","$timeout","PluginsRestService","$translate"]}}]);
|
|
2
|
+
//# sourceMappingURL=102.850f372bb910e3a64905.bundle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["webpack:///./src/js/angular/plugins/controllers.js"],"names":["PluginsCtrl","$scope","$interval","toastr","$repositories","$licenseService","$timeout","PluginsRestService","$translate","timer","init","clear","isLicenseValid","getActiveRepository","isActiveRepoOntopType","isActiveRepoFedXType","getPlugins","searchPluginsTerm","plugins","displayedPlugins","initPlugins","success","data","buildPluginsArray","results","bindings","error","getError","finally","filterResults","setLoader","map","plugin","name","s","value","enabled","o","filter","sort","a","b","textA","toLowerCase","textB","matchedPlugins","indexOf","displayedPluginsChanged","updateDisplayedPlugins","length","find","element","angular","equals","cancelTimer","cancel","setTimeout","applyRowStyles","loader","message","loaderTimeout","loaderMessage","$on","$","window","off","on","tableWidth","width","rowWidth","columnPerRow","Math","floor","toArray","forEach","index","isGreyBackground","addClass","removeClass","oddRow","evenElement","togglePlugin","pluginName","repoId","instant","getLoaderMessage","onSearchTermChanged","module","controller","$inject"],"mappings":"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","file":"102.850f372bb910e3a64905.bundle.js","sourcesContent":["import 'angular/rest/plugins.rest.service';\n\nconst modules = [\n 'graphdb.framework.rest.plugins.service'\n];\n\nangular\n .module('graphdb.framework.plugins.controllers', modules)\n .controller('PluginsCtrl', PluginsCtrl);\n\nPluginsCtrl.$inject = ['$scope', '$interval', 'toastr', '$repositories', '$licenseService', '$timeout', 'PluginsRestService', '$translate'];\n\nfunction PluginsCtrl($scope, $interval, toastr, $repositories, $licenseService, $timeout, PluginsRestService, $translate) {\n\n let timer;\n\n const init = function () {\n $scope.clear();\n if (!$licenseService.isLicenseValid() ||\n !$repositories.getActiveRepository() ||\n $repositories.isActiveRepoOntopType() ||\n $repositories.isActiveRepoFedXType()) {\n return;\n }\n getPlugins();\n };\n\n $scope.clear = function () {\n $scope.searchPluginsTerm = '';\n $scope.plugins = [];\n $scope.displayedPlugins = [];\n };\n\n const getPlugins = function () {\n initPlugins();\n timer = $interval(function () {\n initPlugins();\n }, 5000);\n };\n\n const initPlugins = function () {\n PluginsRestService.getPlugins($scope.getActiveRepository())\n .success(function (data) {\n $scope.plugins = $scope.buildPluginsArray(data.results.bindings);\n }).error(function (data) {\n toastr.error(getError(data));\n }).finally(function () {\n $scope.filterResults();\n $scope.setLoader(false);\n });\n };\n\n $scope.buildPluginsArray = function (plugins) {\n return plugins.map((plugin) => ({\n name: plugin.s.value,\n enabled: plugin.o.value === 'true'\n })).filter(function (plugin) {\n return plugin.name !== 'plugincontrol' && plugin.name !== 'literals-index';\n }).sort(function (a, b) {\n const textA = a.name.toLowerCase();\n const textB = b.name.toLowerCase();\n return (textA < textB) ? -1 : (textA > textB) ? 1 : 0;\n });\n };\n\n $scope.filterResults = function () {\n const matchedPlugins = $scope.plugins.filter((plugin) => plugin.name.indexOf($scope.searchPluginsTerm) !== -1);\n if (displayedPluginsChanged(matchedPlugins)) {\n $scope.updateDisplayedPlugins(matchedPlugins);\n }\n };\n\n /**\n * Checks if displayed plugins in the view are different than <code>plugins</code>.\n * @param {*} plugins - plugins to be checked.\n * @return {boolean} returns true if <code>plugins</code> are different from those which are shown in the view.\n */\n const displayedPluginsChanged = function (plugins) {\n if (!$scope.displayedPlugins || $scope.displayedPlugins.length !== plugins.length) {\n return true;\n }\n\n for (const plugin in plugins) {\n if (!$scope.displayedPlugins.find((element) => angular.equals(element, plugins[plugin]))) {\n return true;\n }\n }\n\n return false;\n };\n\n $scope.updateDisplayedPlugins = function (plugins) {\n $scope.displayedPlugins = plugins;\n setTimeout(function () {\n $scope.applyRowStyles();\n }, 0);\n };\n\n $scope.setLoader = function (loader, message) {\n $timeout.cancel($scope.loaderTimeout);\n if (loader) {\n $scope.loaderTimeout = $timeout(function () {\n $scope.loader = loader;\n $scope.loaderMessage = message;\n }, 300);\n } else {\n $scope.loader = false;\n }\n };\n\n // this is used when repository is changed from the upper menu to refresh the plugins for it.\n $scope.$on('repositoryIsSet', function () {\n cancelTimer();\n init();\n });\n\n $scope.$on('$destroy', function () {\n cancelTimer();\n $(window).off('resize.plugin');\n });\n\n $(window).on('resize.plugin', function () {\n $scope.applyRowStyles();\n });\n\n function cancelTimer() {\n if (timer) {\n $interval.cancel(timer);\n }\n }\n\n $scope.applyRowStyles = function () {\n const tableWidth = $('#wb-plugins-pluginInPlugins').width();\n const rowWidth = $('tr').width();\n const columnPerRow = Math.floor(tableWidth / rowWidth);\n $('.wb-plugins-row').toArray().forEach((value, index) => {\n if ($scope.isGreyBackground(columnPerRow, index)) {\n $(value).addClass('grey-row');\n } else {\n $(value).removeClass('grey-row');\n }\n });\n };\n\n $scope.isGreyBackground = function (columnPerRow, index) {\n const row = Math.floor(index / columnPerRow) + 1;\n const oddRow = row % 2 !== 1;\n const evenElement = index % 2 !== 0;\n const evenColumns = columnPerRow % 2 !== 0;\n\n if (evenColumns) {\n if (oddRow && !evenElement || !oddRow && !evenElement) {\n return true;\n }\n if (oddRow && evenElement || !oddRow && evenElement) {\n return false;\n }\n } else {\n if (oddRow && !evenElement || !oddRow && evenElement) {\n return false;\n }\n if (oddRow && evenElement || !oddRow && !evenElement) {\n return true;\n }\n }\n };\n\n $scope.togglePlugin = function (pluginName, enabled) {\n const repoId = $scope.getActiveRepository();\n const message = enabled ? $translate.instant('deactivating.plugin', {pluginName: pluginName}) : $translate.instant('activating.plugin', {pluginName: pluginName});\n $scope.setLoader(true, message);\n PluginsRestService.togglePlugin(repoId, enabled, pluginName)\n .error(function (data) {\n toastr.error(getError(data));\n }).finally(function () {\n initPlugins();\n $scope.setLoader(false);\n });\n };\n\n $scope.getLoaderMessage = function () {\n return $scope.loaderMessage || $translate.instant('common.loading');\n };\n\n $scope.onSearchTermChanged = function () {\n $scope.filterResults();\n };\n\n init();\n}\n"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[104],{96:function(e,t,n){"use strict";n.r(t);n(4),n(13);const o=angular.module("graphdb.framework.jmx.queries.controllers",["ui.bootstrap","toastr","graphdb.framework.rest.monitoring.service"]);o.controller("QueriesCtrl",["$scope","$uibModal","toastr","$interval","$repositories","$jwtAuth","ModalService","MonitoringRestService","$translate",function(e,t,n,o,r,i,s,u,c){e.loader=!0,e.stringLimit=500,e.expanded={},e.error="",e.paused=!1;const a=document.createElement("a");e.parseNode=function(e){if(null==e)return null;let t="local";if(e.indexOf("://localhost:")<0&&e.indexOf("://localhost/")<0){a.href=e;let n=a.hostname;(function(e){const t=e.split(".");for(let e=0,n=0;e<t.length;e++)if(parseInt(t[e],10)>=0&&parseInt(t[e],10)<=255?n++:n=0,4===n)return!0;return!1})(a.hostname)||(n=a.hostname.split(".")[0]),t=n+":"+a.port}const n=e.match(/\/repositories\/([^\/]+)#(\d+)/);return[n[2],t,n[1]]},e.togglePause=function(){e.paused=!e.paused},e.getQueries=function(){e.getQueriesRunning||e.paused||e.error||!r.getActiveRepository()||(e.getQueriesRunning=!0,u.monitorQuery(r.getActiveRepository()).success((function(t){const n=t;e.noQueries=0===n.length,e.queries={};for(let t=0;t<n.length;t++)n[t].parsedNode=e.parseNode(n[t].node),e.queries[n[t].trackId]=n[t];e.noActiveRepository=!1,e.loader=!1,e.getQueriesRunning=!1})).error((function(t){e.error=getError(t),e.loader=!1,e.getQueriesRunning=!1})))};const l=o((function(){r.isActiveRepoOntopType()||e.getQueries()}),1e3);e.$on("$destroy",(function(){o.cancel(l)})),e.deleteQueryHttp=function(t){e.loader=!0,u.deleteQuery(t,r.getActiveRepository()).success((function(){n.success(c.instant("abort.request.sent.msg")),e.loader=!1})).error((function(t){const o=getError(t);n.error(o,c.instant("common.error")),e.loader=!1}))},e.abortQuery=function(t){s.openSimpleModal({title:c.instant("confirm.abort"),message:c.instant("confirm.abort.warning.msg"),warning:!0}).result.then((function(){e.deleteQueryHttp(t)}))},e.downloadQuery=function(e){const t="query_"+e+".rq";let n="/rest/monitor/repository/"+r.getActiveRepository()+"/query/download?query="+encodeURIComponent(e)+"&filename="+encodeURIComponent(t);i.isAuthenticated()&&(n=n+"&authToken="+encodeURIComponent(i.getAuthToken())),window.open(n,"_blank")},e.toggleQueryExpanded=function(t){e.expanded[t]=!e.expanded[t]}}]),o.controller("DeleteQueryCtrl",["$scope","$uibModalInstance",function(e,t){e.ok=function(){t.close()},e.cancel=function(){t.dismiss("cancel")}}])}}]);
|
|
2
|
+
//# sourceMappingURL=104.2e04965e98d05ada03fd.bundle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["webpack:///./src/js/angular/queries/controllers.js"],"names":["queriesCtrl","angular","module","controller","$scope","$uibModal","toastr","$interval","$repositories","$jwtAuth","ModalService","MonitoringRestService","$translate","loader","stringLimit","expanded","error","paused","parser","document","createElement","parseNode","node","shortUrl","indexOf","href","hostname","ip","blocks","split","i","sequence","length","parseInt","containsIPV4","port","match","togglePause","getQueries","getQueriesRunning","getActiveRepository","monitorQuery","success","data","newQueries","noQueries","queries","parsedNode","trackId","noActiveRepository","getError","timer","isActiveRepoOntopType","$on","cancel","deleteQueryHttp","queryId","deleteQuery","instant","msg","abortQuery","openSimpleModal","title","message","warning","result","then","downloadQuery","filename","link","encodeURIComponent","isAuthenticated","getAuthToken","window","open","toggleQueryExpanded","$uibModalInstance","ok","close","dismiss"],"mappings":"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","file":"104.2e04965e98d05ada03fd.bundle.js","sourcesContent":["import 'angular/core/services';\nimport 'angular/rest/monitoring.rest.service';\n\nconst queriesCtrl = angular.module('graphdb.framework.jmx.queries.controllers', [\n 'ui.bootstrap',\n 'toastr',\n 'graphdb.framework.rest.monitoring.service'\n]);\n\nqueriesCtrl.controller('QueriesCtrl', ['$scope', '$uibModal', 'toastr', '$interval', '$repositories', '$jwtAuth', 'ModalService', 'MonitoringRestService', '$translate',\n function ($scope, $uibModal, toastr, $interval, $repositories, $jwtAuth, ModalService, MonitoringRestService, $translate) {\n\n $scope.loader = true;\n $scope.stringLimit = 500;\n $scope.expanded = {};\n $scope.error = '';\n $scope.paused = false;\n\n function containsIPV4(ip) {\n const blocks = ip.split('.');\n for (let i = 0, sequence = 0; i < blocks.length; i++) {\n if (parseInt(blocks[i], 10) >= 0 && parseInt(blocks[i], 10) <= 255) {\n sequence++;\n } else {\n sequence = 0;\n }\n if (sequence === 4) {\n return true;\n }\n }\n return false;\n }\n\n const parser = document.createElement('a');\n\n // Parses a node of the kind http://host.example.com:7200/repositories/repo#NN,\n // where NN is the track ID into an array [NN, host:7200, repo].\n $scope.parseNode = function (node) {\n if (node == null) {\n return null;\n }\n\n let shortUrl = 'local';\n if (node.indexOf('://localhost:') < 0 && node.indexOf('://localhost/') < 0) {\n parser.href = node;\n let hostname = parser.hostname;\n if (!containsIPV4(parser.hostname)) {\n hostname = parser.hostname.split('.')[0];\n }\n shortUrl = hostname + ':' + parser.port;\n }\n const match = node.match(/\\/repositories\\/([^\\/]+)#(\\d+)/); // eslint-disable-line no-useless-escape\n\n return [match[2], shortUrl, match[1]];\n };\n\n $scope.togglePause = function () {\n $scope.paused = !$scope.paused;\n }\n\n $scope.getQueries = function () {\n // Skip execution if already getting from previous call, if paused, if jolokia returned an error,\n // or if no repository is available\n if ($scope.getQueriesRunning || $scope.paused || $scope.error || !$repositories.getActiveRepository()) {\n return;\n }\n\n $scope.getQueriesRunning = true;\n MonitoringRestService.monitorQuery($repositories.getActiveRepository()).success(function (data) {\n const newQueries = data;\n $scope.noQueries = newQueries.length === 0;\n\n // Converts array to object. Angular seems to handle updates on objects better, i.e.\n // it doesn't recreate DOM elements for queries that are already displayed.\n $scope.queries = {};\n for (let i = 0; i < newQueries.length; i++) {\n newQueries[i].parsedNode = $scope.parseNode(newQueries[i].node);\n $scope.queries[newQueries[i].trackId] = newQueries[i];\n }\n\n $scope.noActiveRepository = false;\n $scope.loader = false;\n $scope.getQueriesRunning = false;\n }).error(function (data) {\n $scope.error = getError(data);\n $scope.loader = false;\n $scope.getQueriesRunning = false;\n });\n };\n\n const timer = $interval(function () {\n // Don't call getQueries for Ontop type repository\n if ($repositories.isActiveRepoOntopType()) {\n return;\n }\n $scope.getQueries();\n }, 1000);\n\n $scope.$on('$destroy', function () {\n $interval.cancel(timer);\n });\n\n $scope.deleteQueryHttp = function (queryId) {\n\n $scope.loader = true;\n MonitoringRestService.deleteQuery(queryId, $repositories.getActiveRepository()).success(function () {\n toastr.success($translate.instant('abort.request.sent.msg'));\n $scope.loader = false;\n }).error(function (data) {\n const msg = getError(data);\n toastr.error(msg, $translate.instant('common.error'));\n\n $scope.loader = false;\n });\n };\n\n $scope.abortQuery = function (queryId) {\n ModalService.openSimpleModal({\n title: $translate.instant('confirm.abort'),\n message: $translate.instant('confirm.abort.warning.msg'),\n warning: true\n }).result.then(function () {\n $scope.deleteQueryHttp(queryId);\n });\n };\n\n $scope.downloadQuery = function (queryId) {\n const filename = 'query_' + queryId + '.rq';\n let link = '/rest/monitor/repository/' + $repositories.getActiveRepository()\n + '/query/download?query=' + encodeURIComponent(queryId)\n + '&filename=' + encodeURIComponent(filename);\n if ($jwtAuth.isAuthenticated()) {\n link = link + '&authToken=' + encodeURIComponent($jwtAuth.getAuthToken());\n }\n\n window.open(link, '_blank');\n };\n\n $scope.toggleQueryExpanded = function (queryId) {\n $scope.expanded[queryId] = !$scope.expanded[queryId];\n };\n }]);\n\n\nqueriesCtrl.controller('DeleteQueryCtrl', ['$scope', '$uibModalInstance', function ($scope, $uibModalInstance) {\n\n $scope.ok = function () {\n $uibModalInstance.close();\n };\n\n $scope.cancel = function () {\n $uibModalInstance.dismiss('cancel');\n };\n}]);\n"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[107],{99:function(e,r){function o(e,r,o,t){return{restrict:"E",scope:!0,templateUrl:"js/angular/repositories/templates/fedx-repo.html",link:function(s){const i="ResolvableRepository";s.fedxMembers=[],s.knownRepos=[],s.allAttachedRepos=[],s.editRepoPage&&(s.fedxMembers=s.repositoryInfo.params.member.value.slice());function n(){for(const e of s.fedxMembers)s.knownRepos=s.knownRepos.filter((function(r){return e.repositoryServer?r.id!==e.repositoryName||r.location!==e.repositoryServer:r.id!==e.repositoryName||!r.local}))}function a(){r.getRepositories(s.repositoryInfo.location).success((function(e){let r=[];_.values(e).forEach(e=>{r.push.apply(r,e)}),s.allAttachedRepos=_.cloneDeep(r)})).error((function(e){const r=getError(e);o.error(r,t.instant("common.error"))})).then((function(){s.knownRepos=s.allAttachedRepos.slice(),n()}))}s.setWritableRepo=function(e){let r=s.fedxMembers.find(e=>"true"===e.writable);r&&((r.store!==i||e.store===i&&r.repositoryName===e.repositoryName)&&("RemoteRepository"!==r.store||"RemoteRepository"===e.store&&r.repositoryName===e.repositoryName&&r.repositoryServer===e.repositoryServer)||(r.writable="false")),e.writable=JSON.stringify("false"===e.writable)},s.getActiveClass=function(e){return"true"===e.writable?" active":""},s.checkIfRepoExist=function(e){return!s.allAttachedRepos.length||(e.store===i?s.allAttachedRepos.find(r=>r.id===e.repositoryName&&!r.location):"RemoteRepository"!==e.store||s.allAttachedRepos.find(r=>r.id===e.repositoryName&&r.location===e.repositoryServer))},s.getRepositoryServer=function(e){return e.local?"Local":e.location};const p=setInterval((function(){a()}),5e3);function l(e){s.fedxMembers.push(e),s.repositoryInfo.params.member.value=s.fedxMembers}function d(e){return"/"===e.slice(-1)?e.slice(0,-1):e}function m(){return s.editRepoPage&&!s.editRepoPage||!s.model.editMode}s.$on("$destroy",(function(){clearInterval(p)})),s.addMember=function(e){let r;r="Local"===s.getRepositoryServer(e)?{store:i,repositoryName:e.id,repoType:e.type,respectRights:"true",writable:"false"}:{store:"RemoteRepository",repositoryName:e.id,repositoryServer:e.location,username:"",password:"",supportsASKQueries:"true",writable:"false"},s.knownRepos=s.knownRepos.filter(r=>r.id!==e.id||r.location!==e.location),l(r)},s.removeMember=function(e){e.store&&e.store===i?(s.fedxMembers=s.fedxMembers.filter(r=>r.store!==e.store||r.repositoryName!==e.repositoryName&&!r.repositoryServer),a()):e.store&&"SPARQLEndpoint"===e.store?s.fedxMembers=s.fedxMembers.filter(r=>r.endpoint!==e.endpoint):e.store&&"NativeStore"===e.store?s.fedxMembers=s.fedxMembers.filter(r=>r.repositoryLocation!==e.repositoryLocation):e.store&&"RemoteRepository"===e.store&&(s.fedxMembers=s.fedxMembers.filter(r=>r.store!==e.store||r.repositoryName!==e.repositoryName||r.repositoryServer!==e.repositoryServer),a()),s.repositoryInfo.params.member.value=s.fedxMembers},s.addRemoteMember=function(){s.mode="remote",s.model={editMode:!1,store:"RemoteRepository",repositoryName:"",repositoryServer:"",sparqlEndpoint:"",username:"",password:"",supportsASKQueries:"true",writable:"false"},s.$
|
|
2
|
-
//# sourceMappingURL=107.
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[107],{99:function(e,r){function o(e,r,o,t){return{restrict:"E",scope:!0,templateUrl:"js/angular/repositories/templates/fedx-repo.html",link:function(s){const i="ResolvableRepository";s.fedxMembers=[],s.knownRepos=[],s.allAttachedRepos=[],s.editRepoPage&&(s.fedxMembers=s.repositoryInfo.params.member.value.slice());function n(){for(const e of s.fedxMembers)s.knownRepos=s.knownRepos.filter((function(r){return e.repositoryServer?r.id!==e.repositoryName||r.location!==e.repositoryServer:r.id!==e.repositoryName||!r.local}))}function a(){r.getRepositories(s.repositoryInfo.location).success((function(e){let r=[];_.values(e).forEach(e=>{r.push.apply(r,e)}),s.allAttachedRepos=_.cloneDeep(r)})).error((function(e){const r=getError(e);o.error(r,t.instant("common.error"))})).then((function(){s.knownRepos=s.allAttachedRepos.slice(),n()}))}s.setWritableRepo=function(e){let r=s.fedxMembers.find(e=>"true"===e.writable);r&&((r.store!==i||e.store===i&&r.repositoryName===e.repositoryName)&&("RemoteRepository"!==r.store||"RemoteRepository"===e.store&&r.repositoryName===e.repositoryName&&r.repositoryServer===e.repositoryServer)||(r.writable="false")),e.writable=JSON.stringify("false"===e.writable)},s.getActiveClass=function(e){return"true"===e.writable?" active":""},s.checkIfRepoExist=function(e){return!s.allAttachedRepos.length||(e.store===i?s.allAttachedRepos.find(r=>r.id===e.repositoryName&&!r.location):"RemoteRepository"!==e.store||s.allAttachedRepos.find(r=>r.id===e.repositoryName&&r.location===e.repositoryServer))},s.getRepositoryServer=function(e){return e.local?"Local":e.location};const p=setInterval((function(){a()}),5e3);function l(e){s.fedxMembers.push(e),s.repositoryInfo.params.member.value=s.fedxMembers}function d(e){return"/"===e.slice(-1)?e.slice(0,-1):e}function m(){return s.editRepoPage&&!s.editRepoPage||!s.model.editMode}s.$on("$destroy",(function(){clearInterval(p)})),s.addMember=function(e){let r;r="Local"===s.getRepositoryServer(e)?{store:i,repositoryName:e.id,repoType:e.type,respectRights:"true",writable:"false"}:{store:"RemoteRepository",repositoryName:e.id,repositoryServer:e.location,username:"",password:"",supportsASKQueries:"true",writable:"false"},s.knownRepos=s.knownRepos.filter(r=>r.id!==e.id||r.location!==e.location),l(r)},s.removeMember=function(e){e.store&&e.store===i?(s.fedxMembers=s.fedxMembers.filter(r=>r.store!==e.store||r.repositoryName!==e.repositoryName&&!r.repositoryServer),a()):e.store&&"SPARQLEndpoint"===e.store?s.fedxMembers=s.fedxMembers.filter(r=>r.endpoint!==e.endpoint):e.store&&"NativeStore"===e.store?s.fedxMembers=s.fedxMembers.filter(r=>r.repositoryLocation!==e.repositoryLocation):e.store&&"RemoteRepository"===e.store&&(s.fedxMembers=s.fedxMembers.filter(r=>r.store!==e.store||r.repositoryName!==e.repositoryName||r.repositoryServer!==e.repositoryServer),a()),s.repositoryInfo.params.member.value=s.fedxMembers},s.addRemoteMember=function(){s.mode="remote",s.model={editMode:!1,store:"RemoteRepository",repositoryName:"",repositoryServer:"",sparqlEndpoint:"",username:"",password:"",supportsASKQueries:"true",writable:"false"},s.$uibModalInstance=e.open({templateUrl:"js/angular/templates/modal/add-fedx-remote-repo.html",scope:s})},s.getMemberIcon=function(e){return e.repoType?"icon-repo-"+e.repoType:"NativeStore"===e.store?"icon-warning":"icon-link"},s.editFedXRepository=function(r){r.store===i?(s.mode="local",s.model={editMode:!0,store:r.store,respectRights:r.respectRights,repositoryName:r.repositoryName,repoType:r.repoType,writable:r.writable}):(s.mode="remote",s.model={editMode:!0,store:r.store,repositoryName:r.repositoryName,repositoryServer:r.repositoryServer,sparqlEndpoint:"SPARQLEndpoint"===r.store?r.endpoint:r.repositoryLocation,username:r.username,password:r.password,supportsASKQueries:r.supportsASKQueries,writable:r.writable}),s.$uibModalInstance=e.open({templateUrl:"js/angular/templates/modal/add-fedx-remote-repo.html",scope:s})},s.resolveName=function(e){switch(e.store){case i:return e.repositoryName;case"RemoteRepository":return e.repositoryName+"@"+e.repositoryServer;case"SPARQLEndpoint":return e.endpoint;case"NativeStore":return e.repositoryLocation;default:return""}},s.cancel=function(){s.$uibModalInstance.dismiss("cancel")},s.ok=function(){let e;if(s.model.repositoryName&&s.model.store===i)e={store:i,repositoryName:s.model.repositoryName,repoType:s.model.repoType,respectRights:s.model.respectRights,writable:s.model.writable},s.fedxMembers=s.fedxMembers.filter(r=>r.repositoryName!==e.repositoryName||r.store!==e.store);else if(s.model.repositoryName&&"RemoteRepository"===s.model.store){if(e={store:"RemoteRepository",repositoryName:s.model.repositoryName,repositoryServer:d(s.model.repositoryServer),username:s.model.username,password:s.model.password,writable:s.model.writable},m()&&s.fedxMembers.find(r=>r.repositoryName===e.repositoryName&&r.repositoryServer===e.repositoryServer)){let r=s.resolveName(e);return o.error(t.instant("fedx.repo.already.added.member.error",{name:r})),void s.$uibModalInstance.close()}s.fedxMembers=s.fedxMembers.filter(r=>r.repositoryName!==e.repositoryName||r.repositoryServer!==e.repositoryServer)}else{if(e={store:"SPARQLEndpoint",endpoint:d(s.model.sparqlEndpoint),username:s.model.username,password:s.model.password,supportsASKQueries:s.model.supportsASKQueries,writable:s.model.writable},m()&&s.fedxMembers.find(r=>r.endpoint===e.endpoint)){let r=s.resolveName(e);return o.error(t.instant("fedx.repo.already.added.sparql.endpoint.error",{name:r})),void s.$uibModalInstance.close()}s.fedxMembers=s.fedxMembers.filter(r=>r.endpoint!==e.endpoint)}l(e),n(),s.$uibModalInstance.close()},s.$on("changedLocation",(function(){s.fedxMembers=[],a()})),a()}}}angular.module("graphdb.framework.repositories.fedx-repo.directive",[]).directive("fedxRepo",o),o.$inject=["$uibModal","RepositoriesRestService","toastr","$translate"]}}]);
|
|
2
|
+
//# sourceMappingURL=107.e401af35eca7e21cc9c2.bundle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["webpack:///./src/js/angular/repositories/fedx-repo.directive.js"],"names":["fedxRepoDirective","$uibModal","RepositoriesRestService","toastr","$translate","restrict","scope","templateUrl","link","$scope","LOCAL_REPO_STORE","fedxMembers","knownRepos","allAttachedRepos","editRepoPage","repositoryInfo","params","member","value","slice","populateKnownRepos","filter","repo","repositoryServer","id","repositoryName","location","local","getKnownRepos","getRepositories","success","response","repos","_","values","forEach","push","apply","cloneDeep","error","msg","getError","instant","then","setWritableRepo","currentWritable","find","writable","store","JSON","stringify","getActiveClass","checkIfRepoExist","length","getRepositoryServer","localReposTimer","setInterval","updateMembers","removeEndingSlash","url","checkEditMode","model","editMode","$on","clearInterval","addMember","repository","repoType","type","respectRights","username","password","supportsASKQueries","removeMember","el","endpoint","repositoryLocation","addRemoteMember","mode","sparqlEndpoint","$uibModalInstance","open","getMemberIcon","editFedXRepository","resolveName","cancel","dismiss","ok","resolvedName","name","close","angular","module","directive","$inject"],"mappings":"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","file":"107.e401af35eca7e21cc9c2.bundle.js","sourcesContent":["angular\n .module('graphdb.framework.repositories.fedx-repo.directive', [])\n .directive('fedxRepo', fedxRepoDirective);\n\nfedxRepoDirective.$inject = ['$uibModal', 'RepositoriesRestService', 'toastr', '$translate'];\n\nfunction fedxRepoDirective($uibModal, RepositoriesRestService, toastr, $translate) {\n return {\n restrict: 'E',\n scope: true,\n templateUrl: 'js/angular/repositories/templates/fedx-repo.html',\n\n link: linkFunc\n };\n\n function linkFunc($scope) {\n\n const LOCAL_REPO_STORE = 'ResolvableRepository';\n const REMOTE_REPO_STORE = 'RemoteRepository';\n const SPARQL_ENDPOINT_STORE = 'SPARQLEndpoint';\n const NATIVE_STORE = 'NativeStore';\n\n $scope.fedxMembers = [];\n $scope.knownRepos = [];\n $scope.allAttachedRepos = [];\n\n if ($scope.editRepoPage) {\n $scope.fedxMembers = $scope.repositoryInfo.params.member.value.slice();\n }\n\n function getRepositories() {\n return RepositoriesRestService.getRepositories($scope.repositoryInfo.location)\n .success(function (response) {\n let repos = [];\n _.values(response).forEach((value) => {\n repos.push.apply(repos, value);\n });\n $scope.allAttachedRepos = _.cloneDeep(repos);\n }).error(function (response) {\n const msg = getError(response);\n toastr.error(msg, $translate.instant('common.error'));\n });\n }\n\n function populateKnownRepos() {\n for (const member of $scope.fedxMembers) {\n $scope.knownRepos = $scope.knownRepos.filter(function (repo) {\n if (member.repositoryServer) {\n // if the member is a remote attached member\n return repo.id !== member.repositoryName || repo.location !== member.repositoryServer;\n } else {\n // if the member is a local one\n return repo.id !== member.repositoryName || !repo.local;\n }\n });\n }\n }\n\n $scope.setWritableRepo = function (member) {\n let currentWritable = getWritableRepo();\n if (currentWritable) {\n if (currentWritable.store === LOCAL_REPO_STORE && (member.store !== LOCAL_REPO_STORE || currentWritable.repositoryName !== member.repositoryName) ) {\n currentWritable.writable = 'false';\n } else if (currentWritable.store === REMOTE_REPO_STORE && (member.store !== REMOTE_REPO_STORE || currentWritable.repositoryName !== member.repositoryName || currentWritable.repositoryServer !== member.repositoryServer)) {\n currentWritable.writable = 'false';\n }\n }\n member.writable = JSON.stringify(member.writable === 'false');\n }\n\n $scope.getActiveClass = function (member) {\n return member.writable === 'true' ? ' active' : '';\n }\n\n function getWritableRepo() {\n return $scope.fedxMembers.find(member => member.writable === \"true\");\n }\n\n function getKnownRepos() {\n getRepositories()\n .then(function () {\n $scope.knownRepos = $scope.allAttachedRepos.slice();\n populateKnownRepos();\n });\n }\n\n $scope.checkIfRepoExist = function (member) {\n if (!$scope.allAttachedRepos.length) {\n return true;\n }\n if (member.store === LOCAL_REPO_STORE) {\n return $scope.allAttachedRepos.find(repo => repo.id === member.repositoryName && !repo.location);\n } else if (member.store === REMOTE_REPO_STORE) {\n return $scope.allAttachedRepos.find(repo => repo.id === member.repositoryName && repo.location === member.repositoryServer);\n } else {\n return true;\n }\n }\n\n $scope.getRepositoryServer = function (repo) {\n if (repo.local) {\n return \"Local\";\n } else {\n return repo.location;\n }\n }\n\n const localReposTimer = setInterval(function () {\n getKnownRepos();\n }, 5000);\n\n $scope.$on('$destroy', function () {\n clearInterval(localReposTimer);\n });\n\n $scope.addMember = function(repository) {\n let member;\n if ($scope.getRepositoryServer(repository) === \"Local\") {\n member = {\n store: LOCAL_REPO_STORE,\n repositoryName: repository.id,\n repoType: repository.type,\n respectRights: \"true\",\n writable: \"false\"\n };\n } else {\n member = {\n store: REMOTE_REPO_STORE,\n repositoryName: repository.id,\n repositoryServer: repository.location,\n username: '',\n password: '',\n supportsASKQueries: \"true\",\n writable: \"false\"\n };\n }\n $scope.knownRepos = $scope.knownRepos.filter(repo => repo.id !== repository.id || repo.location !== repository.location);\n updateMembers(member);\n }\n\n $scope.removeMember = function (member) {\n if (member.store && member.store === LOCAL_REPO_STORE) {\n $scope.fedxMembers = $scope.fedxMembers.filter(el => el.store !== member.store || el.repositoryName !== member.repositoryName && !el.repositoryServer);\n getKnownRepos();\n } else if (member.store && member.store === SPARQL_ENDPOINT_STORE) {\n $scope.fedxMembers = $scope.fedxMembers.filter(el => el.endpoint !== member.endpoint);\n } else if (member.store && member.store === NATIVE_STORE) {\n $scope.fedxMembers = $scope.fedxMembers.filter(el => el.repositoryLocation !== member.repositoryLocation);\n } else if (member.store && member.store === REMOTE_REPO_STORE) {\n $scope.fedxMembers = $scope.fedxMembers.filter(el => el.store !== member.store || el.repositoryName !== member.repositoryName\n || el.repositoryServer !== member.repositoryServer);\n getKnownRepos();\n }\n $scope.repositoryInfo.params['member'].value = $scope.fedxMembers;\n }\n\n $scope.addRemoteMember = function () {\n $scope.mode = 'remote';\n $scope.model = {\n editMode: false,\n store: REMOTE_REPO_STORE,\n repositoryName: '',\n repositoryServer: '',\n sparqlEndpoint: '',\n username: '',\n password: '',\n supportsASKQueries: \"true\",\n writable: \"false\"\n }\n\n $scope.$uibModalInstance = $uibModal.open({\n templateUrl: 'js/angular/templates/modal/add-fedx-remote-repo.html',\n scope: $scope,\n });\n };\n\n $scope.getMemberIcon = function (member) {\n if (member.repoType) {\n return 'icon-repo-' + member.repoType;\n } else if (member.store === NATIVE_STORE) {\n return 'icon-warning';\n } else {\n return 'icon-link';\n }\n }\n\n $scope.editFedXRepository = function (member) {\n if (member.store === LOCAL_REPO_STORE) {\n $scope.mode = 'local';\n $scope.model = {\n editMode: true,\n store: member.store,\n respectRights: member.respectRights,\n repositoryName: member.repositoryName,\n repoType: member.repoType,\n writable: member.writable\n }\n } else {\n $scope.mode = 'remote';\n $scope.model = {\n editMode: true,\n store: member.store,\n repositoryName: member.repositoryName,\n repositoryServer: member.repositoryServer,\n sparqlEndpoint: member.store === SPARQL_ENDPOINT_STORE ? member.endpoint : member.repositoryLocation,\n username: member.username,\n password: member.password,\n supportsASKQueries: member.supportsASKQueries,\n writable: member.writable\n }\n }\n\n $scope.$uibModalInstance = $uibModal.open({\n templateUrl: 'js/angular/templates/modal/add-fedx-remote-repo.html',\n scope: $scope\n });\n };\n\n $scope.resolveName = function (member) {\n switch (member.store) {\n case LOCAL_REPO_STORE : {\n return member.repositoryName;\n }\n case REMOTE_REPO_STORE : {\n return member.repositoryName + '@' + member.repositoryServer;\n }\n case SPARQL_ENDPOINT_STORE : {\n return member.endpoint;\n }\n case NATIVE_STORE : {\n return member.repositoryLocation;\n }\n default :\n return \"\";\n }\n }\n\n $scope.cancel = function () {\n $scope.$uibModalInstance.dismiss('cancel');\n };\n\n function updateMembers(member) {\n $scope.fedxMembers.push(member);\n $scope.repositoryInfo.params['member'].value = $scope.fedxMembers;\n }\n\n function removeEndingSlash(url) {\n return url.slice(-1) === '/' ? url.slice(0, -1) : url\n }\n\n function checkEditMode() {\n return $scope.editRepoPage && !$scope.editRepoPage || !$scope.model.editMode;\n }\n\n $scope.ok = function () {\n let member;\n if ($scope.model.repositoryName && $scope.model.store === LOCAL_REPO_STORE) {\n member = {\n store: LOCAL_REPO_STORE,\n repositoryName: $scope.model.repositoryName,\n repoType: $scope.model.repoType,\n respectRights: $scope.model.respectRights,\n writable: $scope.model.writable\n }\n $scope.fedxMembers = $scope.fedxMembers.filter(el => el.repositoryName !== member.repositoryName || el.store !== member.store );\n } else if ($scope.model.repositoryName && $scope.model.store === REMOTE_REPO_STORE) {\n member = {\n store: REMOTE_REPO_STORE,\n repositoryName: $scope.model.repositoryName,\n repositoryServer: removeEndingSlash($scope.model.repositoryServer),\n username: $scope.model.username,\n password: $scope.model.password,\n writable: $scope.model.writable\n };\n if (checkEditMode() && $scope.fedxMembers.find(el => el.repositoryName === member.repositoryName\n && el.repositoryServer === member.repositoryServer)) {\n let resolvedName = $scope.resolveName(member);\n toastr.error($translate.instant('fedx.repo.already.added.member.error', {name: resolvedName}));\n $scope.$uibModalInstance.close();\n return;\n }\n $scope.fedxMembers = $scope.fedxMembers.filter(el => el.repositoryName !== member.repositoryName\n || el.repositoryServer !== member.repositoryServer);\n } else {\n member = {\n store: SPARQL_ENDPOINT_STORE,\n endpoint: removeEndingSlash($scope.model.sparqlEndpoint),\n username: $scope.model.username,\n password: $scope.model.password,\n supportsASKQueries: $scope.model.supportsASKQueries,\n writable: $scope.model.writable\n };\n\n if (checkEditMode() && $scope.fedxMembers.find(el => el.endpoint === member.endpoint)) {\n let resolvedName = $scope.resolveName(member);\n toastr.error($translate.instant('fedx.repo.already.added.sparql.endpoint.error', {name: resolvedName}));\n $scope.$uibModalInstance.close();\n return;\n }\n\n $scope.fedxMembers = $scope.fedxMembers.filter(el => el.endpoint !== member.endpoint);\n }\n\n updateMembers(member);\n populateKnownRepos();\n $scope.$uibModalInstance.close();\n };\n\n $scope.$on('changedLocation', function () {\n $scope.fedxMembers = [];\n getKnownRepos();\n });\n\n getKnownRepos();\n }\n}\n"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[108],{98:function(e,r,o){"use strict";o.r(r);var t=o(65);function i(e,r,o,i,s){return{restrict:"E",scope:!1,templateUrl:"js/angular/repositories/templates/ontop-repo.html",link:function(n){n.selectedDriver={driverType:"generic",driverName:"Generic JDBC Driver",jdbc:{hostName:"",port:"",databaseName:"",userName:"",password:"",driverClass:"",url:""},urlTemplate:"",downloadDriverUrl:""},n.ontopRepoFileNames={},n.supportedDriversData=[],n.ontopRepoFileLabels={propertiesFile:"JDBC properties",obdaFile:"OBDA or R2RML",owlFile:"ontology file",constraintFile:"constraint file",dbMetadataFile:"DB metadata file"},n.ontopRepoFiles=Object.keys(n.ontopRepoFileLabels),n.ontopRepoFiles.forEach((function(e){n.repositoryInfo.params[e]&&(n.ontopRepoFileNames[e]=Object(t.getFileName)(n.repositoryInfo.params[e].value))})),n.supportedDriverLabels={hostName:"Hostname",port:"Port",databaseName:"Database name",userName:"Username",password:"Password",driverClass:"Driver class",url:"URL"},n.propertiesFileParams=Object.keys(n.supportedDriverLabels),n.classAvailable=!1,n.genericDriverType="generic",n.propertiesFile="propertiesFile";const a=[n.propertiesFile,"obdaFile"],l=["hostName","databaseName","userName"];function p(){return n.selectedDriver.driverType!==n.genericDriverType?l.filter((function(e){return!n.selectedDriver.jdbc[e]})).length>0&&(o.error(s.instant("missing.required.field.error")),1)?Promise.reject(s.instant("missing.required.field.error")):(n.uploadFileLoader=!0,r.updatePropertiesFile(n.repositoryInfo.params[n.propertiesFile].value,n.selectedDriver.jdbc,n.repositoryInfo.location).success((function(e){n.ontopRepoFileNames[n.propertiesFile]=Object(t.getFileName)(e.fileLocation),n.repositoryInfo.params[n.propertiesFile].value=e.fileLocation,n.uploadFileLoader=!1})).error((function(e){c(s.instant("common.error"),e),n.uploadFileLoader=!1}))):Promise.resolve()}function c(e,r){const t=getError(r);o.error(t,e)}n.loadDriverByClass=function(e){const r=n.supportedDriversData.find(r=>r.driverClass===e);return r&&n.copyDriverProperties(r),r},n.selectDriverByType=function(e){n.copyDriverProperties(n.supportedDriversData.find(r=>r.driverType===e)),n.concatURL("hostName",n)},n.copyDriverProperties=function(e){n.selectedDriver.driverType=e.driverType,n.selectedDriver.jdbc.driverClass=e.driverClass,n.selectedDriver.jdbc.url=e.urlTemplate,n.selectedDriver.urlTemplate=e.urlTemplate,n.selectedDriver.downloadDriverUrl=e.downloadDriverUrl,n.selectedDriver.portRequired=e.portRequired,n.classAvailable=e.classAvailable},n.isReadOnly=function(e){return"driverClass"===e||"url"===e},n.editFile=function(o){e.open({templateUrl:"js/angular/templates/modal/editRepoFile.html",controller:"EditRepositoryFileCtrl",resolve:{file:function(){return n.repositoryInfo.params[o]?n.repositoryInfo.params[o].value:""}}}).result.then((function(e){r.updateRepositoryFileContent(e.fileLocation,e.content,n.repositoryInfo.location).success((function(e){n.ontopRepoFileNames[o]=Object(t.getFileName)(e.fileLocation),n.repositoryInfo.params[o].value=e.fileLocation})).error((function(e){c(s.instant("common.error"),e)}))}))},n.uploadOntopRepoFile=function(e,r){e&&e.length&&(n.uploadFile=e[0],n.uploadFileLoader=!0,i.upload({url:"rest/repositories/file/upload",data:{file:n.uploadFile,location:n.repositoryInfo.location}}).success((function(e){e.success?(n.ontopRepoFileNames[r]=n.uploadFile.name,n.repositoryInfo.params[r].value=e.fileLocation):o.error(e.errorMessage),n.uploadFileLoader=!1})).error((function(e){c(s.instant("common.error"),e),n.uploadFile="",n.uploadFileLoader=!1})))},n.concatURL=function(e){if("hostName"===e||"port"===e||"databaseName"===e){let e=n.selectedDriver.urlTemplate;n.selectedDriver.jdbc.hostName&&(e=n.selectedDriver.jdbc.port?e.replace("{hostport}",`${n.selectedDriver.jdbc.hostName}:${n.selectedDriver.jdbc.port}`):e.replace("{hostport}",n.selectedDriver.jdbc.hostName)),n.selectedDriver.jdbc.databaseName&&(e=e.replace("{database}",n.selectedDriver.jdbc.databaseName)),n.selectedDriver.jdbc.url=e}},n.getInputType=function(e){switch(e){case"password":return"password";case"port":return"number";default:return"text"}},n.checkForRequiredOntopFiles=function(){return p().then((function(){return a.filter((function(e){return!n.repositoryInfo.params[e].value})).length>0?(o.error(s.instant("ontop.repo.missing.required.file.error")),Promise.reject(s.instant("ontop.repo.missing.required.file.error"))):Promise.resolve()}))},n.validateOntopPropertiesConnection=function(){p().then((function(){r.validateOntopPropertiesConnection(n.repositoryInfo).success((function(){o.success(s.instant("ontop.repo.successful.connection.msg"))})).error((function(e){c(s.instant("ontop.repo.failed.to.connect"),e)}))}))},n.isOntopRepoFileUploaded=function(){return n.repositoryInfo.params.propertiesFile&&n.repositoryInfo.params.propertiesFile.value.length>0},n.isRequiredOntopRepoFile=function(e){return a.indexOf(e)>-1},n.isRequiredField=function(e){return l.indexOf(e)>-1||"port"===e&&n.selectedDriver.portRequired},n.getFieldTooltip=function(e){return"port"===e&&n.selectedDriver.portRequired&&(e="portIfRequired"),s.instant("repoTooltips.ontop."+e)},n.editOntopRepo=function(){n.checkForRequiredOntopFiles().then((function(){n.editRepository()})).catch((function(e){}))},n.createOntopRepo=function(){n.repositoryInfo.id?n.checkForRequiredOntopFiles().then((function(){n.createRepo()})).catch((function(e){})):o.error(s.instant("empty.repoid.warning"))},n.goBackToPrevious=function(){n.goBackToPreviousLocation()},r.getSupportedDriversData(n.repositoryInfo).success((function(e){n.supportedDriversData=e})).error((function(e){c(s.instant("common.error"),e)})).then((function(){n.editRepoPage&&r.loadPropertiesFile(n.repositoryInfo.params[n.propertiesFile].value,n.repositoryInfo.location).success((function(e){n.loadDriverByClass(e.driverClass)&&(n.selectedDriver.jdbc.hostName=e.hostName,n.selectedDriver.jdbc.port=parseInt(e.port),n.selectedDriver.jdbc.databaseName=e.databaseName,n.selectedDriver.jdbc.userName=e.userName,n.selectedDriver.jdbc.password=e.password,n.selectedDriver.jdbc.url=e.url)})).error((function(e){c(s.instant("common.error"),e),n.uploadFileLoader=!1}))}))}}}angular.module("graphdb.framework.repositories.ontop-repo.directive",[]).directive("ontopRepo",i),i.$inject=["$
|
|
2
|
-
//# sourceMappingURL=108.
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[108],{98:function(e,r,o){"use strict";o.r(r);var t=o(65);function i(e,r,o,i,s){return{restrict:"E",scope:!1,templateUrl:"js/angular/repositories/templates/ontop-repo.html",link:function(n){n.selectedDriver={driverType:"generic",driverName:"Generic JDBC Driver",jdbc:{hostName:"",port:"",databaseName:"",userName:"",password:"",driverClass:"",url:""},urlTemplate:"",downloadDriverUrl:""},n.ontopRepoFileNames={},n.supportedDriversData=[],n.ontopRepoFileLabels={propertiesFile:"JDBC properties",obdaFile:"OBDA or R2RML",owlFile:"ontology file",constraintFile:"constraint file",dbMetadataFile:"DB metadata file"},n.ontopRepoFiles=Object.keys(n.ontopRepoFileLabels),n.ontopRepoFiles.forEach((function(e){n.repositoryInfo.params[e]&&(n.ontopRepoFileNames[e]=Object(t.getFileName)(n.repositoryInfo.params[e].value))})),n.supportedDriverLabels={hostName:"Hostname",port:"Port",databaseName:"Database name",userName:"Username",password:"Password",driverClass:"Driver class",url:"URL"},n.propertiesFileParams=Object.keys(n.supportedDriverLabels),n.classAvailable=!1,n.genericDriverType="generic",n.propertiesFile="propertiesFile";const a=[n.propertiesFile,"obdaFile"],l=["hostName","databaseName","userName"];function p(){return n.selectedDriver.driverType!==n.genericDriverType?l.filter((function(e){return!n.selectedDriver.jdbc[e]})).length>0&&(o.error(s.instant("missing.required.field.error")),1)?Promise.reject(s.instant("missing.required.field.error")):(n.uploadFileLoader=!0,r.updatePropertiesFile(n.repositoryInfo.params[n.propertiesFile].value,n.selectedDriver.jdbc,n.repositoryInfo.location).success((function(e){n.ontopRepoFileNames[n.propertiesFile]=Object(t.getFileName)(e.fileLocation),n.repositoryInfo.params[n.propertiesFile].value=e.fileLocation,n.uploadFileLoader=!1})).error((function(e){c(s.instant("common.error"),e),n.uploadFileLoader=!1}))):Promise.resolve()}function c(e,r){const t=getError(r);o.error(t,e)}n.loadDriverByClass=function(e){const r=n.supportedDriversData.find(r=>r.driverClass===e);return r&&n.copyDriverProperties(r),r},n.selectDriverByType=function(e){n.copyDriverProperties(n.supportedDriversData.find(r=>r.driverType===e)),n.concatURL("hostName",n)},n.copyDriverProperties=function(e){n.selectedDriver.driverType=e.driverType,n.selectedDriver.jdbc.driverClass=e.driverClass,n.selectedDriver.jdbc.url=e.urlTemplate,n.selectedDriver.urlTemplate=e.urlTemplate,n.selectedDriver.downloadDriverUrl=e.downloadDriverUrl,n.selectedDriver.portRequired=e.portRequired,n.classAvailable=e.classAvailable},n.isReadOnly=function(e){return"driverClass"===e||"url"===e},n.editFile=function(o){e.open({templateUrl:"js/angular/templates/modal/editRepoFile.html",controller:"EditRepositoryFileCtrl",resolve:{file:function(){return n.repositoryInfo.params[o]?n.repositoryInfo.params[o].value:""}}}).result.then((function(e){r.updateRepositoryFileContent(e.fileLocation,e.content,n.repositoryInfo.location).success((function(e){n.ontopRepoFileNames[o]=Object(t.getFileName)(e.fileLocation),n.repositoryInfo.params[o].value=e.fileLocation})).error((function(e){c(s.instant("common.error"),e)}))}))},n.uploadOntopRepoFile=function(e,r){e&&e.length&&(n.uploadFile=e[0],n.uploadFileLoader=!0,i.upload({url:"rest/repositories/file/upload",data:{file:n.uploadFile,location:n.repositoryInfo.location}}).success((function(e){e.success?(n.ontopRepoFileNames[r]=n.uploadFile.name,n.repositoryInfo.params[r].value=e.fileLocation):o.error(e.errorMessage),n.uploadFileLoader=!1})).error((function(e){c(s.instant("common.error"),e),n.uploadFile="",n.uploadFileLoader=!1})))},n.concatURL=function(e){if("hostName"===e||"port"===e||"databaseName"===e){let e=n.selectedDriver.urlTemplate;n.selectedDriver.jdbc.hostName&&(e=n.selectedDriver.jdbc.port?e.replace("{hostport}",`${n.selectedDriver.jdbc.hostName}:${n.selectedDriver.jdbc.port}`):e.replace("{hostport}",n.selectedDriver.jdbc.hostName)),n.selectedDriver.jdbc.databaseName&&(e=e.replace("{database}",n.selectedDriver.jdbc.databaseName)),n.selectedDriver.jdbc.url=e}},n.getInputType=function(e){switch(e){case"password":return"password";case"port":return"number";default:return"text"}},n.checkForRequiredOntopFiles=function(){return p().then((function(){return a.filter((function(e){return!n.repositoryInfo.params[e].value})).length>0?(o.error(s.instant("ontop.repo.missing.required.file.error")),Promise.reject(s.instant("ontop.repo.missing.required.file.error"))):Promise.resolve()}))},n.validateOntopPropertiesConnection=function(){p().then((function(){r.validateOntopPropertiesConnection(n.repositoryInfo).success((function(){o.success(s.instant("ontop.repo.successful.connection.msg"))})).error((function(e){c(s.instant("ontop.repo.failed.to.connect"),e)}))}))},n.isOntopRepoFileUploaded=function(){return n.repositoryInfo.params.propertiesFile&&n.repositoryInfo.params.propertiesFile.value.length>0},n.isRequiredOntopRepoFile=function(e){return a.indexOf(e)>-1},n.isRequiredField=function(e){return l.indexOf(e)>-1||"port"===e&&n.selectedDriver.portRequired},n.getFieldTooltip=function(e){return"port"===e&&n.selectedDriver.portRequired&&(e="portIfRequired"),s.instant("repoTooltips.ontop."+e)},n.editOntopRepo=function(){n.checkForRequiredOntopFiles().then((function(){n.editRepository()})).catch((function(e){}))},n.createOntopRepo=function(){n.repositoryInfo.id?n.checkForRequiredOntopFiles().then((function(){n.createRepo()})).catch((function(e){})):o.error(s.instant("empty.repoid.warning"))},n.goBackToPrevious=function(){n.goBackToPreviousLocation()},r.getSupportedDriversData(n.repositoryInfo).success((function(e){n.supportedDriversData=e})).error((function(e){c(s.instant("common.error"),e)})).then((function(){n.editRepoPage&&r.loadPropertiesFile(n.repositoryInfo.params[n.propertiesFile].value,n.repositoryInfo.location).success((function(e){n.loadDriverByClass(e.driverClass)&&(n.selectedDriver.jdbc.hostName=e.hostName,n.selectedDriver.jdbc.port=parseInt(e.port),n.selectedDriver.jdbc.databaseName=e.databaseName,n.selectedDriver.jdbc.userName=e.userName,n.selectedDriver.jdbc.password=e.password,n.selectedDriver.jdbc.url=e.url)})).error((function(e){c(s.instant("common.error"),e),n.uploadFileLoader=!1}))}))}}}angular.module("graphdb.framework.repositories.ontop-repo.directive",[]).directive("ontopRepo",i),i.$inject=["$uibModal","RepositoriesRestService","toastr","Upload","$translate"]}}]);
|
|
2
|
+
//# sourceMappingURL=108.90cf8908233ccb473643.bundle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["webpack:///./src/js/angular/repositories/ontop-repo.directive.js"],"names":["ontopRepoDirective","$uibModal","RepositoriesRestService","toastr","Upload","$translate","restrict","scope","templateUrl","link","$scope","selectedDriver","driverType","driverName","jdbc","hostName","port","databaseName","userName","password","driverClass","url","urlTemplate","downloadDriverUrl","ontopRepoFileNames","supportedDriversData","ontopRepoFileLabels","propertiesFile","obdaFile","owlFile","constraintFile","dbMetadataFile","ontopRepoFiles","Object","keys","forEach","key","repositoryInfo","params","value","supportedDriverLabels","propertiesFileParams","classAvailable","genericDriverType","REQUIRED_ONTOP_REPO_PARAMS","REQUIRED_PROPERTIES_FIELD_PARAMS","updateProperties","filter","requiredField","length","error","instant","Promise","reject","uploadFileLoader","updatePropertiesFile","location","success","data","fileLocation","showErrorMsg","resolve","title","msg","getError","loadDriverByClass","foundDriver","find","driver","copyDriverProperties","selectDriverByType","concatURL","portRequired","isReadOnly","labelName","editFile","file","open","controller","result","then","updateRepositoryFileContent","content","uploadOntopRepoFile","files","param","uploadFile","upload","name","errorMessage","replace","getInputType","checkForRequiredOntopFiles","requiredFile","validateOntopPropertiesConnection","isOntopRepoFileUploaded","isRequiredOntopRepoFile","indexOf","isRequiredField","field","getFieldTooltip","editOntopRepo","editRepository","catch","err","createOntopRepo","id","createRepo","goBackToPrevious","goBackToPreviousLocation","getSupportedDriversData","response","editRepoPage","loadPropertiesFile","driverData","parseInt","angular","module","directive","$inject"],"mappings":"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","file":"108.90cf8908233ccb473643.bundle.js","sourcesContent":["import {getFileName} from \"./controllers\";\n\nangular\n .module('graphdb.framework.repositories.ontop-repo.directive', [])\n .directive('ontopRepo', ontopRepoDirective);\n\nontopRepoDirective.$inject = ['$uibModal', 'RepositoriesRestService', 'toastr', 'Upload', '$translate'];\n\nfunction ontopRepoDirective($uibModal, RepositoriesRestService, toastr, Upload, $translate) {\n return {\n restrict: 'E',\n scope: false,\n templateUrl: 'js/angular/repositories/templates/ontop-repo.html',\n\n link: linkFunc\n };\n\n function linkFunc($scope) {\n\n $scope.selectedDriver = {\n driverType: \"generic\",\n driverName: \"Generic JDBC Driver\",\n jdbc: {\n hostName: \"\",\n port: \"\",\n databaseName: \"\",\n userName: \"\",\n password: \"\",\n driverClass: \"\",\n url: \"\"\n },\n urlTemplate: \"\",\n downloadDriverUrl: \"\"\n };\n $scope.ontopRepoFileNames = {};\n $scope.supportedDriversData = [];\n $scope.ontopRepoFileLabels =\n {propertiesFile: 'JDBC properties', obdaFile: 'OBDA or R2RML', owlFile: 'ontology file',\n constraintFile: 'constraint file', dbMetadataFile: 'DB metadata file'};\n $scope.ontopRepoFiles = Object.keys($scope.ontopRepoFileLabels);\n $scope.ontopRepoFiles.forEach(function(key) {\n if ($scope.repositoryInfo.params[key]) {\n $scope.ontopRepoFileNames[key] = getFileName($scope.repositoryInfo.params[key].value);\n }\n });\n $scope.supportedDriverLabels = {hostName: 'Hostname', port: \"Port\", databaseName: 'Database name',\n userName: 'Username', password: 'Password', driverClass: 'Driver class', url: 'URL'};\n $scope.propertiesFileParams = Object.keys($scope.supportedDriverLabels);\n $scope.classAvailable = false;\n $scope.genericDriverType = 'generic';\n $scope.propertiesFile = 'propertiesFile';\n\n const REQUIRED_ONTOP_REPO_PARAMS = [$scope.propertiesFile, 'obdaFile'];\n const REQUIRED_PROPERTIES_FIELD_PARAMS = ['hostName', 'databaseName', 'userName'];\n\n function getSupportedDriversData() {\n return RepositoriesRestService.getSupportedDriversData($scope.repositoryInfo)\n .success(function (response) {\n $scope.supportedDriversData = response;\n }).error(function (response) {\n showErrorMsg($translate.instant('common.error'), response);\n });\n }\n\n $scope.loadDriverByClass = function (driverClass) {\n const foundDriver = $scope.supportedDriversData\n .find((driver) => driver.driverClass === driverClass);\n if (foundDriver) {\n $scope.copyDriverProperties(foundDriver);\n }\n return foundDriver;\n };\n\n $scope.selectDriverByType = function (driverType) {\n $scope.copyDriverProperties($scope.supportedDriversData\n .find((driver) => driver.driverType === driverType));\n // Call concatURL with proper labelName to apply changes to url field\n $scope.concatURL('hostName', $scope);\n };\n\n $scope.copyDriverProperties = function (driver) {\n $scope.selectedDriver.driverType = driver.driverType;\n $scope.selectedDriver.jdbc.driverClass = driver.driverClass;\n $scope.selectedDriver.jdbc.url = driver.urlTemplate;\n $scope.selectedDriver.urlTemplate = driver.urlTemplate;\n $scope.selectedDriver.downloadDriverUrl = driver.downloadDriverUrl;\n $scope.selectedDriver.portRequired = driver.portRequired;\n $scope.classAvailable = driver.classAvailable;\n };\n\n $scope.isReadOnly = function (labelName) {\n return labelName === 'driverClass' || labelName === 'url';\n }\n\n $scope.editFile = function(file) {\n const modalInstance = $uibModal.open({\n templateUrl: 'js/angular/templates/modal/editRepoFile.html',\n controller: 'EditRepositoryFileCtrl',\n resolve: {\n file: function () {\n return $scope.repositoryInfo.params[file] ? $scope.repositoryInfo.params[file].value : '';\n }\n }\n });\n\n modalInstance.result.then(function (data) {\n // send data to backend\n RepositoriesRestService.updateRepositoryFileContent(data.fileLocation, data.content, $scope.repositoryInfo.location).success(function(result) {\n $scope.ontopRepoFileNames[file] = getFileName(result.fileLocation);\n $scope.repositoryInfo.params[file].value = result.fileLocation;\n }).error(function (error) {\n showErrorMsg($translate.instant('common.error'), error);\n })\n });\n }\n\n $scope.uploadOntopRepoFile = function(files, param) {\n if (files && files.length) {\n $scope.uploadFile = files[0];\n $scope.uploadFileLoader = true;\n Upload.upload({\n url: 'rest/repositories/file/upload',\n data: {file: $scope.uploadFile, location: $scope.repositoryInfo.location}\n })\n .success(function (data) {\n if (!data.success) {\n toastr.error(data.errorMessage);\n } else {\n $scope.ontopRepoFileNames[param] = $scope.uploadFile.name;\n $scope.repositoryInfo.params[param].value = data.fileLocation;\n }\n $scope.uploadFileLoader = false;\n }).error(function (data) {\n showErrorMsg($translate.instant('common.error'), data);\n $scope.uploadFile = '';\n $scope.uploadFileLoader = false;\n });\n }\n }\n\n $scope.concatURL = function(labelName) {\n if (labelName === 'hostName' || labelName === 'port' || labelName === 'databaseName') {\n let result = $scope.selectedDriver.urlTemplate;\n if ($scope.selectedDriver.jdbc.hostName) {\n if ($scope.selectedDriver.jdbc.port) {\n result = result.replace('{hostport}',\n `${$scope.selectedDriver.jdbc.hostName}:${$scope.selectedDriver.jdbc.port}`);\n } else {\n result = result.replace('{hostport}', $scope.selectedDriver.jdbc.hostName);\n }\n }\n\n if ($scope.selectedDriver.jdbc.databaseName) {\n result = result.replace('{database}', $scope.selectedDriver.jdbc.databaseName);\n }\n\n $scope.selectedDriver.jdbc.url = result;\n }\n }\n\n $scope.getInputType = function (labelName) {\n switch (labelName) {\n case 'password':\n return 'password';\n case 'port':\n return 'number';\n default:\n return 'text';\n }\n }\n\n $scope.checkForRequiredOntopFiles = function () {\n // Should guarantee that code will be executed in sequential manner,\n // because properties file is not created yet\n return updateProperties()\n .then(function () {\n const missingRequired = REQUIRED_ONTOP_REPO_PARAMS.filter(function (requiredFile) {\n return !$scope.repositoryInfo.params[requiredFile].value;\n });\n if (missingRequired.length > 0) {\n toastr.error($translate.instant('ontop.repo.missing.required.file.error'));\n return Promise.reject($translate.instant('ontop.repo.missing.required.file.error'));\n }\n return Promise.resolve();\n });\n }\n\n function loadPropertiesFile() {\n RepositoriesRestService.loadPropertiesFile($scope.repositoryInfo.params[$scope.propertiesFile].value, $scope.repositoryInfo.location)\n .success(function (driverData) {\n const driver = $scope.loadDriverByClass(driverData.driverClass);\n // If driver class is not found means that the selected driver is a GENERIC ONE\n if (driver) {\n $scope.selectedDriver.jdbc.hostName = driverData.hostName;\n $scope.selectedDriver.jdbc.port = parseInt(driverData.port);\n $scope.selectedDriver.jdbc.databaseName = driverData.databaseName;\n $scope.selectedDriver.jdbc.userName = driverData.userName;\n $scope.selectedDriver.jdbc.password = driverData.password;\n $scope.selectedDriver.jdbc.url = driverData.url;\n }\n }).error(function (data) {\n showErrorMsg($translate.instant('common.error'), data);\n $scope.uploadFileLoader = false;\n });\n }\n\n $scope.validateOntopPropertiesConnection = function () {\n updateProperties()\n .then(function () {\n RepositoriesRestService.validateOntopPropertiesConnection($scope.repositoryInfo)\n .success(function () {\n toastr.success($translate.instant('ontop.repo.successful.connection.msg'));\n }).error(function (data) {\n showErrorMsg($translate.instant('ontop.repo.failed.to.connect'), data);\n });\n });\n }\n\n $scope.isOntopRepoFileUploaded = function() {\n return $scope.repositoryInfo.params.propertiesFile &&\n $scope.repositoryInfo.params.propertiesFile.value.length > 0\n };\n\n function missingRequiredField() {\n const missing = REQUIRED_PROPERTIES_FIELD_PARAMS\n .filter(function (requiredField) {\n return !$scope.selectedDriver.jdbc[requiredField]\n });\n if (missing.length > 0) {\n toastr.error($translate.instant('missing.required.field.error'));\n return true;\n }\n return false;\n }\n\n function updateProperties() {\n if ($scope.selectedDriver.driverType !== $scope.genericDriverType) {\n if (missingRequiredField()) {\n return Promise.reject($translate.instant('missing.required.field.error'));\n }\n return updatePropertiesFile();\n }\n return Promise.resolve();\n }\n\n function updatePropertiesFile() {\n $scope.uploadFileLoader = true;\n return RepositoriesRestService\n .updatePropertiesFile($scope.repositoryInfo.params[$scope.propertiesFile].value, $scope.selectedDriver.jdbc, $scope.repositoryInfo.location)\n .success(function (data) {\n $scope.ontopRepoFileNames[$scope.propertiesFile] = getFileName(data.fileLocation);\n $scope.repositoryInfo.params[$scope.propertiesFile].value = data.fileLocation;\n $scope.uploadFileLoader = false;\n }).error(function (data) {\n showErrorMsg($translate.instant('common.error'), data);\n $scope.uploadFileLoader = false;\n });\n }\n\n $scope.isRequiredOntopRepoFile = function(file) {\n return REQUIRED_ONTOP_REPO_PARAMS.indexOf(file) > -1;\n };\n\n $scope.isRequiredField = function (field) {\n return REQUIRED_PROPERTIES_FIELD_PARAMS.indexOf(field) > -1\n || field === 'port' && $scope.selectedDriver.portRequired;\n };\n\n $scope.getFieldTooltip = function (field) {\n if (field === 'port' && $scope.selectedDriver.portRequired) {\n field = 'portIfRequired';\n }\n return $translate.instant('repoTooltips.ontop.' + field);\n };\n\n $scope.editOntopRepo = function () {\n $scope.checkForRequiredOntopFiles()\n .then(function () {\n $scope.editRepository();\n }).catch(function (err) {\n // The catch block is empty, because error is handled in promise\n });\n }\n\n $scope.createOntopRepo = function () {\n if (!$scope.repositoryInfo.id) {\n toastr.error($translate.instant('empty.repoid.warning'));\n return;\n }\n\n $scope.checkForRequiredOntopFiles()\n .then(function () {\n $scope.createRepo();\n }).catch(function (err) {\n // The catch block is empty, because error is handled in promise\n });\n };\n\n $scope.goBackToPrevious = function () {\n $scope.goBackToPreviousLocation();\n }\n\n function showErrorMsg (title, data) {\n const msg = getError(data);\n toastr.error(msg, title);\n }\n\n getSupportedDriversData()\n .then(function () {\n if ($scope.editRepoPage) {\n loadPropertiesFile();\n }\n });\n }\n}\n"],"sourceRoot":""}
|