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
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[181],{248:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='\x3c!-- Start editLocation.html --\x3e\n\n<div class="modal-header">\n\t<button type="button" class="close" ng-click="cancel();" aria-hidden="true"></button>\n\t<h3 class="modal-title">{{\'edit.location\' | translate}}</h3>\n</div>\n<div class="modal-body">\n <form id="addLocationForm" autocomplete="off" name="form">\n <div class="form-group row">\n <label class="col-md-4 col-form-label">{{\'auth.type.header\' | translate}}</label>\n <div class="col-md-8">\n <label class="col-form-label" tooltip="{{\'remote.location.no.auth.used.tooltip\' | translate}}">\n <input type="radio" name="authType" ng-model="editedLocation.authType" value="none"/>\n {{\'auth.type.none\' | translate}}\n </label>\n \n <label class="col-form-label" tooltip="{{\'basic.auth.type.tooltip\' | translate}}">\n <input type="radio" name="authType" ng-model="editedLocation.authType" value="basic"/>\n {{\'auth.type.basic\' | translate}}\n </label>\n \n <label class="col-form-label" tooltip="{{\'signature.auth.type.tooltip\' | translate}}">\n <input type="radio" name="authType" ng-model="editedLocation.authType" value="signature"/>\n {{\'auth.type.signature\' | translate}}\n </label>\n </div>\n </div>\n <div class="form-group row" ng-if="editedLocation.authType === \'none\'">\n <div class="col-md-12">{{\'remote.location.no.auth.used.header\' | translate}}</div>\n </div>\n <div ng-if="editedLocation.authType === \'basic\'">\n <div class="form-group row">\n <div class="col-md-12">{{\'basic.auth.type.constraint\' | translate}}</div>\n </div>\n <div class="form-group row">\n <label for="username" class="col-md-4 col-form-label">{{\'username.required\' | translate}}</label>\n <div class="col-md-8">\n <input id="username" ng-model="editedLocation.username" name="locationUsername" placeholder="{{\'my.user.placeholder\' | translate}}"\n class="form-control" ng-required="editedLocation.authType === \'basic\'"/>\n </div>\n </div>\n <div class="form-group row">\n <label for="password" class="col-md-4 col-form-label">{{\'password.required\' | translate}}</label>\n <div class="col-md-8">\n <input id="password" ng-model="editedLocation.password" name="locationPassword" placeholder="{{\'my.password.placeholder\' | translate}}"\n type="password" class="form-control" ng-required="editedLocation.authType === \'basic\'"/>\n </div>\n </div>\n </div>\n <div class="form-group row" ng-if="editedLocation.authType === \'signature\'">\n <div class="col-md-12">\n {{\'signature.auth.info\' | translate}}<a href="{{docBase}}/access-control.html#gdb-authentication"\n rel="noopener" target="_blank">Access Control / GDB authentication</a>{{\'signature.auth.info.last\' | translate}}\n </div>\n </div>\n </form>\n</div>\n<div class="modal-footer">\n <button type="button" ng-click="cancel();" class="btn btn-secondary">{{\'common.cancel.btn\' | translate}}</button>\n <button ng-click="ok();" form="addLocationForm" class="btn btn-primary" ng-disabled="form.$invalid">{{\'common.save.btn\' | translate}}</button>\n</div>\n\n\x3c!-- End editLocation.html --\x3e\n';return __p}}}]);
|
|
2
|
-
//# sourceMappingURL=181.db05a22a05f9c928b08c.bundle.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack:///./src/js/angular/templates/modal/edit-location.html"],"names":["module","exports","obj","__t","__p"],"mappings":"wFAAAA,OAAOC,QAAU,SAASC,KAC1BA,MAAQA,IAAM,IACd,IAAIC,IAAKC,IAAM,GACf,KAAMF,IACNE,KAAO,yqHAGP,OAAOA","file":"181.db05a22a05f9c928b08c.bundle.js","sourcesContent":["module.exports = function(obj) {\nobj || (obj = {});\nvar __t, __p = '';\nwith (obj) {\n__p += '<!-- Start editLocation.html -->\\n\\n<div class=\"modal-header\">\\n\t<button type=\"button\" class=\"close\" ng-click=\"cancel();\" aria-hidden=\"true\"></button>\\n\t<h3 class=\"modal-title\">{{\\'edit.location\\' | translate}}</h3>\\n</div>\\n<div class=\"modal-body\">\\n <form id=\"addLocationForm\" autocomplete=\"off\" name=\"form\">\\n <div class=\"form-group row\">\\n <label class=\"col-md-4 col-form-label\">{{\\'auth.type.header\\' | translate}}</label>\\n <div class=\"col-md-8\">\\n <label class=\"col-form-label\" tooltip=\"{{\\'remote.location.no.auth.used.tooltip\\' | translate}}\">\\n <input type=\"radio\" name=\"authType\" ng-model=\"editedLocation.authType\" value=\"none\"/>\\n {{\\'auth.type.none\\' | translate}}\\n </label>\\n \\n <label class=\"col-form-label\" tooltip=\"{{\\'basic.auth.type.tooltip\\' | translate}}\">\\n <input type=\"radio\" name=\"authType\" ng-model=\"editedLocation.authType\" value=\"basic\"/>\\n {{\\'auth.type.basic\\' | translate}}\\n </label>\\n \\n <label class=\"col-form-label\" tooltip=\"{{\\'signature.auth.type.tooltip\\' | translate}}\">\\n <input type=\"radio\" name=\"authType\" ng-model=\"editedLocation.authType\" value=\"signature\"/>\\n {{\\'auth.type.signature\\' | translate}}\\n </label>\\n </div>\\n </div>\\n <div class=\"form-group row\" ng-if=\"editedLocation.authType === \\'none\\'\">\\n <div class=\"col-md-12\">{{\\'remote.location.no.auth.used.header\\' | translate}}</div>\\n </div>\\n <div ng-if=\"editedLocation.authType === \\'basic\\'\">\\n <div class=\"form-group row\">\\n <div class=\"col-md-12\">{{\\'basic.auth.type.constraint\\' | translate}}</div>\\n </div>\\n <div class=\"form-group row\">\\n <label for=\"username\" class=\"col-md-4 col-form-label\">{{\\'username.required\\' | translate}}</label>\\n <div class=\"col-md-8\">\\n <input id=\"username\" ng-model=\"editedLocation.username\" name=\"locationUsername\" placeholder=\"{{\\'my.user.placeholder\\' | translate}}\"\\n class=\"form-control\" ng-required=\"editedLocation.authType === \\'basic\\'\"/>\\n </div>\\n </div>\\n <div class=\"form-group row\">\\n <label for=\"password\" class=\"col-md-4 col-form-label\">{{\\'password.required\\' | translate}}</label>\\n <div class=\"col-md-8\">\\n <input id=\"password\" ng-model=\"editedLocation.password\" name=\"locationPassword\" placeholder=\"{{\\'my.password.placeholder\\' | translate}}\"\\n type=\"password\" class=\"form-control\" ng-required=\"editedLocation.authType === \\'basic\\'\"/>\\n </div>\\n </div>\\n </div>\\n <div class=\"form-group row\" ng-if=\"editedLocation.authType === \\'signature\\'\">\\n <div class=\"col-md-12\">\\n {{\\'signature.auth.info\\' | translate}}<a href=\"{{docBase}}/access-control.html#gdb-authentication\"\\n rel=\"noopener\" target=\"_blank\">Access Control / GDB authentication</a>{{\\'signature.auth.info.last\\' | translate}}\\n </div>\\n </div>\\n </form>\\n</div>\\n<div class=\"modal-footer\">\\n <button type=\"button\" ng-click=\"cancel();\" class=\"btn btn-secondary\">{{\\'common.cancel.btn\\' | translate}}</button>\\n <button ng-click=\"ok();\" form=\"addLocationForm\" class=\"btn btn-primary\" ng-disabled=\"form.$invalid\">{{\\'common.save.btn\\' | translate}}</button>\\n</div>\\n\\n<!-- End editLocation.html -->\\n';\n\n}\nreturn __p\n}"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[182],{249:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<div class="modal-header">\n <button type="button" class="close" ng-click="cancel()"></button>\n <h4 class="modal-title">{{\'update.file.content.header\' | translate}}</h4>\n</div>\n\n<div class="modal-body">\n <div class="form-group">\n <textarea id="wb-repository-file-textarea" class="form-control" rows="10" ng-model="fileContent"\n placeholder="{{\'update.file.content.placeholder\' | translate}}"\n popover="{{\'update.file.content.tooltip\' | translate}}"\n popover-placement="bottom"\n popover-trigger="focus"></textarea>\n </div>\n</div>\n\n<div class="modal-footer">\n <div>\n <button type="button" ng-click="cancel()" class="btn btn-secondary">{{\'common.cancel.btn\' | translate}}</button>\n <button id="wb-repository-saveFile" class="btn btn-primary" type="button"\n ng-click="ok()">{{\'common.save.btn\' | translate}}</button>\n </div>\n</div>\n';return __p}}}]);
|
|
2
|
-
//# sourceMappingURL=182.1b40c7e8a8424e87da32.bundle.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[183],{250:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='\x3c!-- Start editLocation.html --\x3e\n\n<div class="modal-header">\n\t<button class="close" ng-click="cancel();" aria-hidden="true"></button>\n\t<h3 class="modal-title">{{\'upload.repo.config.header\' | translate}}</h3>\n</div>\n<div class="modal-body">\n\t<div class="btn btn-outline-primary btn-lg btn-block" ng-if="!editRepoPage">\n\t\t<a ngf-select ngf-change="upload($files)" ngf-multiple="false" class="selectFiles pointer clearfix"\n\t\t accept=".ttl" tooltip="{{\'select.repo.config.tooltip\' | translate}}" tooltip-trigger="mouseenter">\n\t\t\t<em class="icon-upload icon-lg pull-left" tooltip="Select files" tooltip-trigger="mouseenter" tooltip-append-to-body="true"></em>\n\t\t\t<div class="pull-left">\n\t\t\t\t<span>{{\'upload.ttl.file.btn\' | translate}}</span>\n\t\t\t\t<br>\n\t\t\t\t<small ng-hide="uploadFile" class="text-muted">{{\'no.file.selected.error\' | translate}}</small>\n\t\t\t\t<small ng-show="uploadFile" class="text-muted"\n translate="selected.file.msg"\n translate-value-name="{{uploadFile.name}}"></small>\n\t\t\t</div>\n\t\t\t<div ng-show="uploadFileLoader" onto-loader size="48" class="ot-loader pull-right"></div>\n\t\t</a>\n\t</div>\n</div>\n<div class="modal-footer">\n <button type="button" class="btn btn-secondary" ng-click="cancel()">{{\'common.cancel.btn\' | translate}}</button>\n <button class="btn btn-primary" ng-click="ok()">{{\'common.create.btn\' | translate}}</button>\n</div>\n\n\x3c!-- End editLocation.html --\x3e\n';return __p}}}]);
|
|
2
|
-
//# sourceMappingURL=183.1ed57fba52ab51806ec3.bundle.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack:///./src/js/angular/templates/modal/upload-repository-config.html"],"names":["module","exports","obj","__t","__p"],"mappings":"wFAAAA,OAAOC,QAAU,SAASC,KAC1BA,MAAQA,IAAM,IACd,IAAIC,IAAKC,IAAM,GACf,KAAMF,IACNE,KAAO,++CAGP,OAAOA","file":"183.1ed57fba52ab51806ec3.bundle.js","sourcesContent":["module.exports = function(obj) {\nobj || (obj = {});\nvar __t, __p = '';\nwith (obj) {\n__p += '<!-- Start editLocation.html -->\\n\\n<div class=\"modal-header\">\\n\t<button class=\"close\" ng-click=\"cancel();\" aria-hidden=\"true\"></button>\\n\t<h3 class=\"modal-title\">{{\\'upload.repo.config.header\\' | translate}}</h3>\\n</div>\\n<div class=\"modal-body\">\\n\t<div class=\"btn btn-outline-primary btn-lg btn-block\" ng-if=\"!editRepoPage\">\\n\t\t<a ngf-select ngf-change=\"upload($files)\" ngf-multiple=\"false\" class=\"selectFiles pointer clearfix\"\\n\t\t accept=\".ttl\" tooltip=\"{{\\'select.repo.config.tooltip\\' | translate}}\" tooltip-trigger=\"mouseenter\">\\n\t\t\t<em class=\"icon-upload icon-lg pull-left\" tooltip=\"Select files\" tooltip-trigger=\"mouseenter\" tooltip-append-to-body=\"true\"></em>\\n\t\t\t<div class=\"pull-left\">\\n\t\t\t\t<span>{{\\'upload.ttl.file.btn\\' | translate}}</span>\\n\t\t\t\t<br>\\n\t\t\t\t<small ng-hide=\"uploadFile\" class=\"text-muted\">{{\\'no.file.selected.error\\' | translate}}</small>\\n\t\t\t\t<small ng-show=\"uploadFile\" class=\"text-muted\"\\n translate=\"selected.file.msg\"\\n translate-value-name=\"{{uploadFile.name}}\"></small>\\n\t\t\t</div>\\n\t\t\t<div ng-show=\"uploadFileLoader\" onto-loader size=\"48\" class=\"ot-loader pull-right\"></div>\\n\t\t</a>\\n\t</div>\\n</div>\\n<div class=\"modal-footer\">\\n <button type=\"button\" class=\"btn btn-secondary\" ng-click=\"cancel()\">{{\\'common.cancel.btn\\' | translate}}</button>\\n <button class=\"btn btn-primary\" ng-click=\"ok()\">{{\\'common.create.btn\\' | translate}}</button>\\n</div>\\n\\n<!-- End editLocation.html -->\\n';\n\n}\nreturn __p\n}"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[21,53,107,108,124],{100:function(e,r,o){"use strict";o.r(r);o(4),o(11),o(8),o(64),o(21),o(12),o(34),o(35);function t(e){e.interceptors.push("$unauthorizedInterceptor")}function i(e,r,o){e.$on("$locationChangeStart",(function(){o.isLicenseHardcoded&&"/license/register"===r.url()&&r.path("license")}))}angular.module("graphdb.framework.settings",["toastr","ui.bootstrap","graphdb.framework.rest.license.service","graphdb.framework.settings.controllers","graphdb.framework.core.interceptors.unauthorized","graphdb.framework.core.services.jwtauth"]).config(t).run(i),t.$inject=["$httpProvider","$routeProvider"],i.$inject=["$rootScope","$location","$licenseService"]},150:function(e,r,o){"use strict";o.r(r);o(4),o(11),o(16),o(65),o(98),o(99),o(10),o(100),o(34),o(35);angular.module("graphdb.framework.repositories",["ui.bootstrap","toastr","ngCookies","ngRoute","graphdb.framework.repositories.controllers","graphdb.framework.repositories.ontop-repo.directive","graphdb.framework.repositories.fedx-repo.directive","graphdb.framework.core.services.repositories","graphdb.framework.core.directives","graphdb.framework.core.controllers","graphdb.framework.settings"])},64:function(e,r,o){"use strict";o.r(r);o(4),o(12);function t(e,r,o,t,i){e.supportsStatistics=!0,e.settings={statistics:!1},e.getSettings=function(){e.loader=!0,t.getStatistics().then((function(r){e.settings.statistics="true"===r.data,e.supportsStatistics=!0}),(function(o){if(404===o.status)e.supportsStatistics=!1;else{const e=getError(o.data);r.error(e,i.instant("error.getting.settings"))}}))},e.getSettings(),e.setSettings=function(){e.loader=!0,t.toggleStatistics(e.settings.statistics).then((function(){o.close(),r.success(i.instant("saving.settings.success"))}),(function(e){const o=getError(e.data);r.error(o,i.instant("saving.settings.error"))}))},e.submitForm=function(){e.setSettings()},e.cancel=function(){o.dismiss("cancel")}}function i(e,r,o,t,i,s,n){e.loadingLicense=function(){return o.loadingLicense},o.checkLicenseStatus(),e.revertToFree=function(){s.openSimpleModal({title:n.instant("confirm.operation"),message:n.instant("revert.to.free.warning.msg"),warning:!0}).result.then((function(){r.unregisterLicense().success((function(){o.checkLicenseStatus()}))}))}}function s(e,r,o,t,i,s,n,a){e.$on("securityInit",(function(){n.isAdmin()||o.path("/license")})),e.sendLicenseToValidateAndActivate=l;const c=$(".license-textarea");function l(e){r.sendLicenseToValidate(e).success((function(o){"Invalid"!==o.licensee?(c.val(e),function(e,o){t.open({templateUrl:"js/angular/settings/modal/validate-license.html",controller:"ValidateLicenseModalCtrl",size:"lg",resolve:{license:function(){return e}}}).result.then((function(){!function(e){e||(e=c.val());if(e){const o=atob(e.replace(/\s/g,""));r.registerLicense(o).success((function(){s.history.back()})).error((function(){i.error(a.instant("license.register.error"))}))}else i.error(a.instant("no.license.code.error"))}(o)}))}(o,e)):(c.val(""),i.error(o.message))})).error((function(){i.error(a.instant("invalid.license"))}))}e.$watch("currentFile",(function(){if(e.currentFile){const o=e.currentFile;r.extractFromLicenseFile(o).success((function(e){l(e)})).error((function(){i.error(a.instant("could.not.upload.file.error"))}))}})),e.getBackToPreviousPage=function(){s.history.back()}}function n(e,r,o){e.ok=function(){r.close()},e.cancel=function(){r.dismiss("cancel")},e.license=o}function a(e){e.loader=!0,e.setLoader=function(r){e.loader=r}}angular.module("graphdb.framework.settings.controllers",["ngCookies","ui.bootstrap","graphdb.framework.core.services.jwtauth","toastr"]).controller("ActiveLocationSettingsCtrl",t).controller("ValidateLicenseModalCtrl",n).controller("LicenseCtrl",i).controller("RegisterLicenseCtrl",s).controller("LoaderSamplesCtrl",a),t.$inject=["$scope","toastr","$modalInstance","LicenseRestService","$translate"],i.$inject=["$scope","LicenseRestService","$licenseService","toastr","$rootScope","ModalService","$translate"],s.$inject=["$scope","LicenseRestService","$location","$modal","toastr","$window","$jwtAuth","$translate"],n.$inject=["$scope","$modalInstance","license"],a.$inject=["$scope"]},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"],c=["hostName","databaseName","userName"];function l(){return n.selectedDriver.driverType!==n.genericDriverType?c.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){p(s.instant("common.error"),e),n.uploadFileLoader=!1}))):Promise.resolve()}function p(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){p(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){p(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 l().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(){l().then((function(){r.validateOntopPropertiesConnection(n.repositoryInfo).success((function(){o.success(s.instant("ontop.repo.successful.connection.msg"))})).error((function(e){p(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 c.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){p(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){p(s.instant("common.error"),e),n.uploadFileLoader=!1}))}))}}}angular.module("graphdb.framework.repositories.ontop-repo.directive",[]).directive("ontopRepo",i),i.$inject=["$modal","RepositoriesRestService","toastr","Upload","$translate"]},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(i){const s="ResolvableRepository";i.fedxMembers=[],i.knownRepos=[],i.allAttachedRepos=[],i.editRepoPage&&(i.fedxMembers=i.repositoryInfo.params.member.value.slice());function n(){for(const e of i.fedxMembers)i.knownRepos=i.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(i.repositoryInfo.location).success((function(e){let r=[];_.values(e).forEach(e=>{r.push.apply(r,e)}),i.allAttachedRepos=_.cloneDeep(r)})).error((function(e){const r=getError(e);o.error(r,t.instant("common.error"))})).then((function(){i.knownRepos=i.allAttachedRepos.slice(),n()}))}i.setWritableRepo=function(e){let r=i.fedxMembers.find(e=>"true"===e.writable);r&&((r.store!==s||e.store===s&&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)},i.getActiveClass=function(e){return"true"===e.writable?" active":""},i.checkIfRepoExist=function(e){return!i.allAttachedRepos.length||(e.store===s?i.allAttachedRepos.find(r=>r.id===e.repositoryName&&!r.location):"RemoteRepository"!==e.store||i.allAttachedRepos.find(r=>r.id===e.repositoryName&&r.location===e.repositoryServer))},i.getRepositoryServer=function(e){return e.local?"Local":e.location};const c=setInterval((function(){a()}),5e3);function l(e){i.fedxMembers.push(e),i.repositoryInfo.params.member.value=i.fedxMembers}function p(e){return"/"===e.slice(-1)?e.slice(0,-1):e}function d(){return i.editRepoPage&&!i.editRepoPage||!i.model.editMode}i.$on("$destroy",(function(){clearInterval(c)})),i.addMember=function(e){let r;r="Local"===i.getRepositoryServer(e)?{store:s,repositoryName:e.id,repoType:e.type,respectRights:"true",writable:"false"}:{store:"RemoteRepository",repositoryName:e.id,repositoryServer:e.location,username:"",password:"",supportsASKQueries:"true",writable:"false"},i.knownRepos=i.knownRepos.filter(r=>r.id!==e.id||r.location!==e.location),l(r)},i.removeMember=function(e){e.store&&e.store===s?(i.fedxMembers=i.fedxMembers.filter(r=>r.store!==e.store||r.repositoryName!==e.repositoryName&&!r.repositoryServer),a()):e.store&&"SPARQLEndpoint"===e.store?i.fedxMembers=i.fedxMembers.filter(r=>r.endpoint!==e.endpoint):e.store&&"NativeStore"===e.store?i.fedxMembers=i.fedxMembers.filter(r=>r.repositoryLocation!==e.repositoryLocation):e.store&&"RemoteRepository"===e.store&&(i.fedxMembers=i.fedxMembers.filter(r=>r.store!==e.store||r.repositoryName!==e.repositoryName||r.repositoryServer!==e.repositoryServer),a()),i.repositoryInfo.params.member.value=i.fedxMembers},i.addRemoteMember=function(){i.mode="remote",i.model={editMode:!1,store:"RemoteRepository",repositoryName:"",repositoryServer:"",sparqlEndpoint:"",username:"",password:"",supportsASKQueries:"true",writable:"false"},i.$modalInstance=e.open({templateUrl:"js/angular/templates/modal/add-fedx-remote-repo.html",scope:i})},i.getMemberIcon=function(e){return e.repoType?"icon-repo-"+e.repoType:"NativeStore"===e.store?"icon-warning":"icon-link"},i.editFedXRepository=function(r){r.store===s?(i.mode="local",i.model={editMode:!0,store:r.store,respectRights:r.respectRights,repositoryName:r.repositoryName,repoType:r.repoType,writable:r.writable}):(i.mode="remote",i.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}),i.$modalInstance=e.open({templateUrl:"js/angular/templates/modal/add-fedx-remote-repo.html",scope:i})},i.resolveName=function(e){switch(e.store){case s:return e.repositoryName;case"RemoteRepository":return e.repositoryName+"@"+e.repositoryServer;case"SPARQLEndpoint":return e.endpoint;case"NativeStore":return e.repositoryLocation;default:return""}},i.cancel=function(){i.$modalInstance.dismiss("cancel")},i.ok=function(){let e;if(i.model.repositoryName&&i.model.store===s)e={store:s,repositoryName:i.model.repositoryName,repoType:i.model.repoType,respectRights:i.model.respectRights,writable:i.model.writable},i.fedxMembers=i.fedxMembers.filter(r=>r.repositoryName!==e.repositoryName||r.store!==e.store);else if(i.model.repositoryName&&"RemoteRepository"===i.model.store){if(e={store:"RemoteRepository",repositoryName:i.model.repositoryName,repositoryServer:p(i.model.repositoryServer),username:i.model.username,password:i.model.password,writable:i.model.writable},d()&&i.fedxMembers.find(r=>r.repositoryName===e.repositoryName&&r.repositoryServer===e.repositoryServer)){let r=i.resolveName(e);return o.error(t.instant("fedx.repo.already.added.member.error",{name:r})),void i.$modalInstance.close()}i.fedxMembers=i.fedxMembers.filter(r=>r.repositoryName!==e.repositoryName||r.repositoryServer!==e.repositoryServer)}else{if(e={store:"SPARQLEndpoint",endpoint:p(i.model.sparqlEndpoint),username:i.model.username,password:i.model.password,supportsASKQueries:i.model.supportsASKQueries,writable:i.model.writable},d()&&i.fedxMembers.find(r=>r.endpoint===e.endpoint)){let r=i.resolveName(e);return o.error(t.instant("fedx.repo.already.added.sparql.endpoint.error",{name:r})),void i.$modalInstance.close()}i.fedxMembers=i.fedxMembers.filter(r=>r.endpoint!==e.endpoint)}l(e),n(),i.$modalInstance.close()},i.$on("changedLocation",(function(){i.fedxMembers=[],a()})),a()}}}angular.module("graphdb.framework.repositories.fedx-repo.directive",[]).directive("fedxRepo",o),o.$inject=["$modal","RepositoriesRestService","toastr","$translate"]}}]);
|
|
2
|
-
//# sourceMappingURL=21.ea150df1291050bc1c4a.bundle.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack:///./src/js/angular/settings/app.js","webpack:///./src/js/angular/repositories/app.js","webpack:///./src/js/angular/settings/controllers.js","webpack:///./src/js/angular/repositories/ontop-repo.directive.js","webpack:///./src/js/angular/repositories/fedx-repo.directive.js"],"names":["config","$httpProvider","interceptors","push","run","$rootScope","$location","$licenseService","$on","isLicenseHardcoded","url","path","angular","module","$inject","ActiveLocationSettingsCtrl","$scope","toastr","$modalInstance","LicenseRestService","$translate","supportsStatistics","settings","statistics","getSettings","loader","getStatistics","then","response","data","status","msg","getError","error","instant","setSettings","toggleStatistics","close","success","submitForm","cancel","dismiss","LicenseCtrl","ModalService","loadingLicense","checkLicenseStatus","revertToFree","openSimpleModal","title","message","warning","result","unregisterLicense","RegisterLicenseCtrl","$modal","$window","$jwtAuth","isAdmin","sendLicenseToValidateAndActivate","textAreaSel","$","licenseCode","sendLicenseToValidate","validatedLicense","licensee","val","license","open","templateUrl","controller","size","resolve","decodedLicense","atob","replace","registerLicense","history","back","confirmWantedNewLicenseDetails","$watch","currentFile","file","extractFromLicenseFile","getBackToPreviousPage","ValidateLicenseModalCtrl","ok","LoaderSamplesCtrl","setLoader","ontopRepoDirective","RepositoriesRestService","Upload","restrict","scope","link","selectedDriver","driverType","driverName","jdbc","hostName","port","databaseName","userName","password","driverClass","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","Promise","reject","uploadFileLoader","updatePropertiesFile","location","fileLocation","showErrorMsg","loadDriverByClass","foundDriver","find","driver","copyDriverProperties","selectDriverByType","concatURL","portRequired","isReadOnly","labelName","editFile","updateRepositoryFileContent","content","uploadOntopRepoFile","files","param","uploadFile","upload","name","errorMessage","getInputType","checkForRequiredOntopFiles","requiredFile","validateOntopPropertiesConnection","isOntopRepoFileUploaded","isRequiredOntopRepoFile","indexOf","isRequiredField","field","getFieldTooltip","editOntopRepo","editRepository","catch","err","createOntopRepo","id","createRepo","goBackToPrevious","goBackToPreviousLocation","getSupportedDriversData","editRepoPage","loadPropertiesFile","driverData","parseInt","directive","fedxRepoDirective","LOCAL_REPO_STORE","fedxMembers","knownRepos","allAttachedRepos","member","slice","populateKnownRepos","repo","repositoryServer","repositoryName","local","getKnownRepos","getRepositories","repos","_","values","apply","cloneDeep","setWritableRepo","currentWritable","writable","store","JSON","stringify","getActiveClass","checkIfRepoExist","getRepositoryServer","localReposTimer","setInterval","updateMembers","removeEndingSlash","checkEditMode","model","editMode","clearInterval","addMember","repository","repoType","type","respectRights","username","supportsASKQueries","removeMember","el","endpoint","repositoryLocation","addRemoteMember","mode","sparqlEndpoint","getMemberIcon","editFedXRepository","resolveName","resolvedName"],"mappings":"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","file":"21.ea150df1291050bc1c4a.bundle.js","sourcesContent":["import 'angular/core/services';\nimport 'angular/core/directives';\nimport 'angular/rest/license.rest.service';\nimport 'angular/settings/controllers';\nimport 'angular/core/interceptors/unauthorized.interceptor';\nimport 'angular/core/services/jwt-auth.service';\nimport 'ng-file-upload/dist/ng-file-upload.min';\nimport 'ng-file-upload/dist/ng-file-upload-shim.min';\n\nangular.module('graphdb.framework.settings', [\n 'toastr',\n 'ui.bootstrap',\n 'graphdb.framework.rest.license.service',\n 'graphdb.framework.settings.controllers',\n 'graphdb.framework.core.interceptors.unauthorized',\n 'graphdb.framework.core.services.jwtauth'\n])\n .config(config)\n .run(run);\n\nconfig.$inject = ['$httpProvider', '$routeProvider'];\n\nfunction config($httpProvider) {\n $httpProvider.interceptors.push('$unauthorizedInterceptor');\n}\n\nrun.$inject = ['$rootScope', '$location', '$licenseService'];\n\nfunction run($rootScope, $location, $licenseService) {\n $rootScope.$on('$locationChangeStart', function () {\n if ($licenseService.isLicenseHardcoded && $location.url() === '/license/register') {\n $location.path('license');\n }\n });\n}\n","import 'angular/core/services';\nimport 'angular/core/directives';\nimport 'angular/core/controllers';\nimport 'angular/repositories/controllers';\nimport 'angular/repositories/ontop-repo.directive';\nimport 'angular/repositories/fedx-repo.directive';\nimport 'angular/core/services/repositories.service';\nimport 'angular/settings/app';\nimport 'ng-file-upload/dist/ng-file-upload.min';\nimport 'ng-file-upload/dist/ng-file-upload-shim.min';\n\nconst modules = [\n 'ui.bootstrap',\n 'toastr',\n 'ngCookies',\n 'ngRoute',\n 'graphdb.framework.repositories.controllers',\n 'graphdb.framework.repositories.ontop-repo.directive',\n 'graphdb.framework.repositories.fedx-repo.directive',\n 'graphdb.framework.core.services.repositories',\n 'graphdb.framework.core.directives',\n 'graphdb.framework.core.controllers',\n 'graphdb.framework.settings'\n];\n\nangular.module('graphdb.framework.repositories', modules);\n","import 'angular/core/services';\nimport 'angular/core/services/jwt-auth.service';\n\nangular\n .module('graphdb.framework.settings.controllers', [\n 'ngCookies',\n 'ui.bootstrap',\n 'graphdb.framework.core.services.jwtauth',\n 'toastr'\n ])\n .controller('ActiveLocationSettingsCtrl', ActiveLocationSettingsCtrl)\n .controller('ValidateLicenseModalCtrl', ValidateLicenseModalCtrl)\n .controller('LicenseCtrl', LicenseCtrl)\n .controller('RegisterLicenseCtrl', RegisterLicenseCtrl)\n .controller('LoaderSamplesCtrl', LoaderSamplesCtrl);\n\nActiveLocationSettingsCtrl.$inject = ['$scope', 'toastr', '$modalInstance', 'LicenseRestService', '$translate'];\n\nfunction ActiveLocationSettingsCtrl($scope, toastr, $modalInstance, LicenseRestService, $translate) {\n $scope.supportsStatistics = true;\n $scope.settings = {statistics: false};\n $scope.getSettings = getSettings;\n\n function getSettings() {\n $scope.loader = true;\n LicenseRestService.getStatistics().then(function (response) {\n $scope.settings.statistics = response.data === 'true';\n $scope.supportsStatistics = true;\n }, function (response) {\n if (response.status === 404) {\n $scope.supportsStatistics = false;\n } else {\n const msg = getError(response.data);\n toastr.error(msg, $translate.instant('error.getting.settings'));\n }\n });\n }\n\n $scope.getSettings();\n\n $scope.setSettings = function () {\n $scope.loader = true;\n LicenseRestService.toggleStatistics($scope.settings.statistics).then(function () {\n $modalInstance.close();\n toastr.success($translate.instant('saving.settings.success'));\n }, function (response) {\n const msg = getError(response.data);\n toastr.error(msg, $translate.instant('saving.settings.error'));\n });\n };\n\n $scope.submitForm = function () {\n $scope.setSettings();\n };\n\n $scope.cancel = function () {\n $modalInstance.dismiss('cancel');\n };\n}\n\nLicenseCtrl.$inject = ['$scope', 'LicenseRestService', '$licenseService', 'toastr', '$rootScope', 'ModalService', '$translate'];\n\nfunction LicenseCtrl($scope, LicenseRestService, $licenseService, toastr, $rootScope, ModalService, $translate) {\n\n $scope.loadingLicense = function() {\n return $licenseService.loadingLicense;\n };\n\n $licenseService.checkLicenseStatus();\n\n $scope.revertToFree = function () {\n ModalService.openSimpleModal({\n title: $translate.instant('confirm.operation'),\n message: $translate.instant(\"revert.to.free.warning.msg\"),\n warning: true\n }).result\n .then(function () {\n LicenseRestService.unregisterLicense()\n .success(function () {\n $licenseService.checkLicenseStatus();\n });\n });\n };\n}\n\nRegisterLicenseCtrl.$inject = ['$scope', 'LicenseRestService', '$location', '$modal', 'toastr', '$window', '$jwtAuth', '$translate'];\n\nfunction RegisterLicenseCtrl($scope, LicenseRestService, $location, $modal, toastr, $window, $jwtAuth, $translate) {\n $scope.$on('securityInit', function () {\n if (!$jwtAuth.isAdmin()) {\n $location.path('/license');\n }\n });\n\n $scope.sendLicenseToValidateAndActivate = sendLicenseToValidateAndActivate;\n\n const textAreaSel = $('.license-textarea');\n\n // watch for uploaded license file\n $scope.$watch('currentFile', function () {\n if ($scope.currentFile) {\n const file = $scope.currentFile;\n LicenseRestService.extractFromLicenseFile(file)\n .success(function (licenseCode) {\n sendLicenseToValidateAndActivate(licenseCode);\n }).error(function () {\n toastr.error($translate.instant('could.not.upload.file.error'));\n });\n }\n });\n\n $scope.getBackToPreviousPage = function () {\n $window.history.back();\n };\n\n // send license code for validation and activation\n function sendLicenseToValidateAndActivate(licenseCode) {\n LicenseRestService.sendLicenseToValidate(licenseCode)\n .success(function (validatedLicense) {\n if (validatedLicense.licensee !== 'Invalid') {\n // write code to textarea\n textAreaSel.val(licenseCode);\n // pop dialog for license details confirmation\n confirmWantedNewLicenseDetails(validatedLicense, licenseCode);\n } else {\n // clear textarea on invalid license\n textAreaSel.val('');\n // show error\n toastr.error(validatedLicense.message);\n }\n })\n .error(function () {\n toastr.error($translate.instant('invalid.license'));\n });\n }\n\n\n // pops a modal dialog which asks you if your expected license details are correct\n // and sends license to GraphDB upon confirmation\n function confirmWantedNewLicenseDetails(license, licenseCode) {\n const modalInstance = $modal.open({\n templateUrl: 'js/angular/settings/modal/validate-license.html',\n controller: 'ValidateLicenseModalCtrl',\n size: 'lg',\n resolve: {\n license: function () {\n return license;\n }\n }\n });\n\n modalInstance.result.then(function () {\n registerLicense(licenseCode);\n });\n }\n\n // send license code to GraphDB for activation\n function registerLicense(licenseCode) {\n if (!licenseCode) {\n licenseCode = textAreaSel.val();\n }\n\n if (licenseCode) {\n // replacing whitespace makes this work on Safari too,\n // whereas other browser happily ignore the whitespace\n const decodedLicense = atob(licenseCode.replace(/\\s/g, ''));\n LicenseRestService.registerLicense(decodedLicense)\n .success(function () {\n $window.history.back();\n }).error(function () {\n toastr.error($translate.instant('license.register.error'));\n });\n } else {\n toastr.error($translate.instant('no.license.code.error'));\n }\n }\n}\n\nValidateLicenseModalCtrl.$inject = ['$scope', '$modalInstance', 'license'];\n\nfunction ValidateLicenseModalCtrl($scope, $modalInstance, license) {\n $scope.ok = ok;\n $scope.cancel = cancel;\n $scope.license = license;\n\n function ok() {\n $modalInstance.close();\n }\n\n function cancel() {\n $modalInstance.dismiss('cancel');\n }\n}\n\nLoaderSamplesCtrl.$inject = ['$scope'];\n\nfunction LoaderSamplesCtrl($scope) {\n $scope.loader = true;\n $scope.setLoader = function (loader) {\n $scope.loader = loader;\n };\n}\n","import {getFileName} from \"./controllers\";\n\nangular\n .module('graphdb.framework.repositories.ontop-repo.directive', [])\n .directive('ontopRepo', ontopRepoDirective);\n\nontopRepoDirective.$inject = ['$modal', 'RepositoriesRestService', 'toastr', 'Upload', '$translate'];\n\nfunction ontopRepoDirective($modal, 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 = $modal.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","angular\n .module('graphdb.framework.repositories.fedx-repo.directive', [])\n .directive('fedxRepo', fedxRepoDirective);\n\nfedxRepoDirective.$inject = ['$modal', 'RepositoriesRestService', 'toastr', '$translate'];\n\nfunction fedxRepoDirective($modal, 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.$modalInstance = $modal.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.$modalInstance = $modal.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.$modalInstance.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.$modalInstance.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.$modalInstance.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.$modalInstance.close();\n };\n\n $scope.$on('changedLocation', function () {\n $scope.fedxMembers = [];\n getKnownRepos();\n });\n\n getKnownRepos();\n }\n}\n"],"sourceRoot":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack:///./src/js/angular/clustermanagement/app.js","webpack:///./src/js/lib/d3-tip/d3-tip-patch.js","webpack:///./src/js/angular/clustermanagement/cluster-drawing.service.js","webpack:///./src/js/angular/clustermanagement/directives.js"],"names":["angular","module","direction","offset","html","node","initNode","svg","point","target","customPosition","tip","vis","el","tagName","toLowerCase","ownerSVGElement","createSVGPoint","document","body","appendChild","show","args","Array","prototype","slice","call","arguments","length","SVGElement","pop","coords","content","apply","this","poffset","dir","nodel","getNodeEl","i","directions","scrollTop","documentElement","scrollLeft","customPos","style","opacity","classed","direction_callbacks","get","top","left","hide","attr","n","v","d3","selection","functor","destroy","remove","map","bbox","getScreenBBox","y","offsetHeight","x","offsetWidth","s","e","w","nw","ne","sw","se","keys","select","createElement","position","targetel","event","getScreenCTM","parentNode","matrix","tbbox","getBBox","width","height","matrixTransform","clusterColors","ontoOrange","ontoBlue","ontoGreen","ontoGrey","createClusterSvgElement","element","append","createClusterZone","parent","clusterZone","setCreateClusterZone","hasCluster","translationsMap","selectAll","textGroup","text","no_cluster_configured","create_cluster_btn","updateClusterZoneLabels","moveElement","createNodes","nodesDataBinding","nodeRadius","isLegend","nodeGroup","enter","radius","_s32","Math","sqrt","points","data","line","createHexagon","exit","nodeElements","nodeTextHost","addHostnameToNodes","updateNodes","nodes","getNodeIconType","updateNodesIcon","nodeState","LEADER","FOLLOWER","CANDIDATE","updateNodesClasses","each","d","labelNode","hostname","updateNodesHostnameText","NO_CONNECTION","OUT_OF_SYNC","READ_ONLY","RESTRICTED","createLinks","linksDataBinding","updateLinks","setLinkColor","setLinkStyle","link","source","find","address","deltaX","deltaY","dist","normX","normY","sourceX","sourceY","targetX","targetY","getLinkCoordinates","status","IN_SYNC","SYNCING","positionNodesOnClusterZone","clusterZoneX","clusterZoneY","clusterZoneRadius","index","theta","PI","cos","sin","navigationBarWidth","clusterManagementDirectives","legend_node_state","legend_link_state","node_state_leader","node_state_follower","node_state_candidate","node_state_no_cluster","node_state_out_of_sync","node_state_no_connection","node_state_read_only","node_state_restricted","link_state_in_sync","link_state_syncing","link_state_out_of_sync","idTranslationKeyMap","node_state","link_state","directive","$window","LocalStorageAdapter","LSKeys","UriUtils","$translate","$rootScope","restrict","scope","updateTranslations","Object","forEach","key","instant","getWindowWidth","collapsed","MENU_STATE","max","floor","innerWidth","getWindowHeight","innerHeight","legendNodesGroup","legendWidth","legendHeight","showLegend","$on","elementId","getLabelFor","createLegendGroup","createClusterLegend","updateLabels","legendTooltip","nodesGroup","linksGroup","tooltipElement","min","getBoundingClientRect","toolTip","showLegendTooltip","hideLegendTooltip","legendNodes","getLegendNodes","legendLinks","getLegendLinks","customText","linkTypeText","linkTypeKey","translateLegendLinksAndNodes","nodeStateLabel","legendPadding","linkStateLabel","nodeStateLabelY","legendNodeData","on","stopPropagation","row","id","linkWidth","endX","linkG","positionLegend","resizeClusterComponent","plot","clusterModel","mouseupCallback","$apply","showCreateClusterDialog","setClusterZoneType","_","cloneDeep","links","shortenIri","endpoint","nodeData","childContext","selectNode","tooltip","windowWidth","$","window","pageX","pageY","linksData","drawLinks","redraw","resize","toggleLegend","config","$tooltipProvider","options","appendToBody","push","NO_CLUSTER"],"mappings":"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","file":"23.b945d0565ded44df49c5.bundle.js","sourcesContent":["import 'angular/core/services';\nimport 'angular/core/directives';\nimport 'angular/clustermanagement/controllers';\nimport 'angular/clustermanagement/directives';\nimport 'angular/core/services/repositories.service';\nimport 'd3/build/d3';\nimport 'lib/d3-ONTO-chord-patch';\nimport 'angular-pageslide-directive/dist/angular-pageslide-directive';\n\nconst modules = [\n 'ngAnimate',\n 'toastr',\n 'graphdb.framework.clustermanagement.controllers',\n 'graphdb.framework.clustermanagement.directives'\n];\n\nconst clusterManagementApp = angular.module('graphdb.framework.clustermanagement', modules);\n","// d3.tip\n// Copyright (c) 2013 Justin Palmer\n//\n// Tooltips for d3.js SVG visualizations\n\n(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module with d3 as a dependency.\n define([], factory)\n } else if (typeof module === 'object' && module.exports) {\n // CommonJS\n module.exports = function(d3) {\n d3.tip = factory(d3)\n return d3.tip\n }\n } else {\n // Browser global.\n root.d3.tip = factory(root.d3)\n }\n}(this, function () {\n // Public - contructs a new tooltip\n //\n // Returns a tip\n return function() {\n var direction = d3_tip_direction,\n offset = d3_tip_offset,\n html = d3_tip_html,\n node = initNode(),\n svg = null,\n point = null,\n target = null,\n customPosition = null\n\n function tip(vis) {\n svg = getSVGNode(vis)\n point = svg.createSVGPoint()\n document.body.appendChild(node)\n }\n\n // Public - show the tooltip on the screen\n //\n // Returns a tip\n tip.show = function() {\n var args = Array.prototype.slice.call(arguments)\n if(args[args.length - 1] instanceof SVGElement) target = args.pop()\n\n var content = html.apply(this, args),\n poffset = offset.apply(this, args),\n dir = direction.apply(this, args),\n nodel = getNodeEl(),\n i = directions.length,\n coords,\n scrollTop = document.documentElement.scrollTop || document.body.scrollTop,\n scrollLeft = document.documentElement.scrollLeft || document.body.scrollLeft,\n customPos = customPosition.apply(this, args)\n\n nodel.html(content)\n .style({ opacity: 1, 'pointer-events': 'all' })\n\n while(i--) nodel.classed(directions[i], false)\n coords = direction_callbacks.get(dir).apply(this)\n\n if (customPos) {\n nodel.style(customPos)\n } else {\n nodel.classed(dir, true).style({\n top: (coords.top + poffset[0]) + scrollTop + 'px',\n left: (coords.left + poffset[1]) + scrollLeft + 'px'\n })\n }\n\n return tip\n }\n\n // Public - hide the tooltip\n //\n // Returns a tip\n tip.hide = function() {\n var nodel = getNodeEl()\n nodel.style({ opacity: 0, 'pointer-events': 'none' })\n return tip\n }\n\n // Public: Proxy attr calls to the d3 tip container. Sets or gets attribute value.\n //\n // n - name of the attribute\n // v - value of the attribute\n //\n // Returns tip or attribute value\n tip.attr = function(n, v) {\n if (arguments.length < 2 && typeof n === 'string') {\n return getNodeEl().attr(n)\n } else {\n var args = Array.prototype.slice.call(arguments)\n d3.selection.prototype.attr.apply(getNodeEl(), args)\n }\n\n return tip\n }\n\n // Public: Proxy style calls to the d3 tip container. Sets or gets a style value.\n //\n // n - name of the property\n // v - value of the property\n //\n // Returns tip or style property value\n tip.style = function(n, v) {\n if (arguments.length < 2 && typeof n === 'string') {\n return getNodeEl().style(n)\n } else {\n var args = Array.prototype.slice.call(arguments)\n d3.selection.prototype.style.apply(getNodeEl(), args)\n }\n\n return tip\n }\n\n // Public: Set or get the direction of the tooltip\n //\n // v - One of n(north), s(south), e(east), or w(west), nw(northwest),\n // sw(southwest), ne(northeast) or se(southeast)\n //\n // Returns tip or direction\n tip.direction = function(v) {\n if (!arguments.length) return direction\n direction = v == null ? v : d3.functor(v)\n\n return tip\n }\n\n // Public: Sets or gets the offset of the tip\n //\n // v - Array of [x, y] offset\n //\n // Returns offset or\n tip.offset = function(v) {\n if (!arguments.length) return offset\n offset = v == null ? v : d3.functor(v)\n\n return tip\n }\n\n // Public: sets or gets the html value of the tooltip\n //\n // v - String value of the tip\n //\n // Returns html value or tip\n tip.html = function(v) {\n if (!arguments.length) return html\n html = v == null ? v : d3.functor(v)\n\n return tip\n }\n\n tip.customPosition = function(v) {\n if (!arguments.length) return customPosition\n customPosition = v == null ? v : d3.functor(v)\n\n return tip\n }\n\n // Public: destroys the tooltip and removes it from the DOM\n //\n // Returns a tip\n tip.destroy = function() {\n if(node) {\n getNodeEl().remove();\n node = null;\n }\n return tip;\n }\n\n function d3_tip_direction() { return 'n' }\n function d3_tip_offset() { return [0, 0] }\n function d3_tip_html() { return ' ' }\n\n var direction_callbacks = d3.map({\n n: direction_n,\n s: direction_s,\n e: direction_e,\n w: direction_w,\n nw: direction_nw,\n ne: direction_ne,\n sw: direction_sw,\n se: direction_se\n }),\n\n directions = direction_callbacks.keys()\n\n function direction_n() {\n var bbox = getScreenBBox()\n return {\n top: bbox.n.y - node.offsetHeight,\n left: bbox.n.x - node.offsetWidth / 2\n }\n }\n\n function direction_s() {\n var bbox = getScreenBBox()\n return {\n top: bbox.s.y,\n left: bbox.s.x - node.offsetWidth / 2\n }\n }\n\n function direction_e() {\n var bbox = getScreenBBox()\n return {\n top: bbox.e.y - node.offsetHeight / 2,\n left: bbox.e.x\n }\n }\n\n function direction_w() {\n var bbox = getScreenBBox()\n return {\n top: bbox.w.y - node.offsetHeight / 2,\n left: bbox.w.x - node.offsetWidth\n }\n }\n\n function direction_nw() {\n var bbox = getScreenBBox()\n return {\n top: bbox.nw.y - node.offsetHeight,\n left: bbox.nw.x - node.offsetWidth\n }\n }\n\n function direction_ne() {\n var bbox = getScreenBBox()\n return {\n top: bbox.ne.y - node.offsetHeight,\n left: bbox.ne.x\n }\n }\n\n function direction_sw() {\n var bbox = getScreenBBox()\n return {\n top: bbox.sw.y,\n left: bbox.sw.x - node.offsetWidth\n }\n }\n\n function direction_se() {\n var bbox = getScreenBBox()\n return {\n top: bbox.se.y,\n left: bbox.e.x\n }\n }\n\n function initNode() {\n var node = d3.select(document.createElement('div'))\n node.style({\n position: 'absolute',\n top: 0,\n opacity: 0,\n 'pointer-events': 'none',\n 'box-sizing': 'border-box'\n })\n\n return node.node()\n }\n\n function getSVGNode(el) {\n el = el.node()\n if(el.tagName.toLowerCase() === 'svg')\n return el\n\n return el.ownerSVGElement\n }\n\n function getNodeEl() {\n if(node === null) {\n node = initNode();\n // re-add node to DOM\n document.body.appendChild(node);\n };\n return d3.select(node);\n }\n\n // Private - gets the screen coordinates of a shape\n //\n // Given a shape on the screen, will return an SVGPoint for the directions\n // n(north), s(south), e(east), w(west), ne(northeast), se(southeast), nw(northwest),\n // sw(southwest).\n //\n // +-+-+\n // | |\n // + +\n // | |\n // +-+-+\n //\n // Returns an Object {n, s, e, w, nw, sw, ne, se}\n function getScreenBBox() {\n var targetel = target || d3.event.target;\n\n while ('undefined' === typeof targetel.getScreenCTM && 'undefined' === targetel.parentNode) {\n targetel = targetel.parentNode;\n }\n\n var bbox = {},\n matrix = targetel.getScreenCTM(),\n tbbox = targetel.getBBox(),\n width = tbbox.width,\n height = tbbox.height,\n x = tbbox.x,\n y = tbbox.y\n\n point.x = x\n point.y = y\n bbox.nw = point.matrixTransform(matrix)\n point.x += width\n bbox.ne = point.matrixTransform(matrix)\n point.y += height\n bbox.se = point.matrixTransform(matrix)\n point.x -= width\n bbox.sw = point.matrixTransform(matrix)\n point.y -= height / 2\n bbox.w = point.matrixTransform(matrix)\n point.x += width\n bbox.e = point.matrixTransform(matrix)\n point.x -= width / 2\n point.y -= height / 2\n bbox.n = point.matrixTransform(matrix)\n point.y += height\n bbox.s = point.matrixTransform(matrix)\n\n return bbox\n }\n\n return tip\n };\n\n}));","import {LinkState, NodeState} from \"./controllers\";\n\nexport const clusterColors = {\n ontoOrange: 'var(--onto-orange)',\n ontoBlue: 'var(--onto-blue)',\n ontoGreen: 'var(--onto-green)',\n ontoGrey: 'var(--onto-grey)'\n};\n\nexport function createClusterSvgElement(element) {\n return d3.select(element)\n .append('svg');\n}\n\nexport function createClusterZone(parent) {\n const clusterZone = parent.append('g');\n clusterZone\n .append(\"circle\")\n .classed('cluster-zone', true)\n .style('fill', 'transparent')\n .style('stroke-width', '2');\n return clusterZone;\n}\n\nexport function setCreateClusterZone(hasCluster, clusterZone, translationsMap) {\n clusterZone\n .select('.cluster-zone')\n .classed('no-cluster', !hasCluster);\n\n if (hasCluster) {\n clusterZone.selectAll('#no-cluster-zone').remove();\n } else {\n const textGroup = clusterZone\n .append('g')\n .attr(\"id\", \"no-cluster-zone\");\n textGroup\n .append('text')\n .attr('id', 'no-cluster-label')\n .text(translationsMap.no_cluster_configured || 'No cluster group configured')\n .attr('y', -50)\n .classed('h2', true)\n .style('text-anchor', \"middle\");\n textGroup.append('text')\n .attr('id', 'create-cluster-label')\n .classed('h3', true)\n .text(translationsMap.create_cluster_btn || 'Click here to create a cluster')\n .style('text-anchor', \"middle\");\n textGroup.append('text')\n .attr('y', 130)\n .attr('class', 'icon-any repo')\n .attr('fill', clusterColors.ontoOrange)\n .style('text-anchor', \"middle\")\n .classed('settings-icon', true)\n .text(\"\\ue92b\");\n }\n}\n\nexport function updateClusterZoneLabels(hasCluster, clusterZone, translationsMap) {\n if (hasCluster) {\n return;\n }\n clusterZone.select('#no-cluster-zone #no-cluster-label')\n .text(translationsMap.no_cluster_configured);\n clusterZone.select('#no-cluster-zone #create-cluster-label')\n .text(translationsMap.create_cluster_btn);\n}\n\nexport function moveElement(element, x, y) {\n element.attr('transform', () => {\n return `translate(${x}, ${y})`;\n });\n}\n\nexport function createNodes(nodesDataBinding, nodeRadius, isLegend) {\n const nodeGroup = nodesDataBinding.enter()\n .append('g')\n .attr('id', 'node-group')\n .classed('legend', isLegend);\n\n createHexagon(nodeGroup, nodeRadius);\n nodesDataBinding.exit().remove();\n\n nodeGroup\n .append('text')\n .attr('class', 'icon-any node-icon');\n\n addHostnameToNodes(nodeGroup, nodeRadius, isLegend);\n}\n\nfunction addHostnameToNodes(nodeElements, nodeRadius, isLegend) {\n const nodeTextHost = nodeElements.append('g');\n\n if (isLegend) {\n nodeTextHost.append('foreignObject')\n .attr('y', nodeRadius)\n .attr('x', -nodeRadius)\n .attr('width', nodeRadius * 2)\n .attr('height', 10)\n .attr('class', 'label-wrapper')\n .append('xhtml:div')\n .attr('class', 'id id-host');\n } else {\n nodeTextHost\n .append('rect')\n .attr('class', 'id-host-background')\n .attr('rx', 6);\n\n nodeTextHost\n .append('text')\n .attr('y', nodeRadius + 10)\n .attr('class', 'id id-host')\n .style('text-anchor', 'middle');\n }\n}\n\nexport function updateNodes(nodes) {\n updateNodesIcon(nodes);\n updateNodesClasses(nodes);\n updateNodesHostnameText(nodes);\n}\n\nfunction updateNodesClasses(nodes) {\n nodes\n .select('.node.member')\n .classed('leader', (node) => node.nodeState === NodeState.LEADER)\n .classed('follower', (node) => node.nodeState === NodeState.FOLLOWER)\n .classed('candidate', (node) => node.nodeState === NodeState.CANDIDATE)\n .classed('other', (node) => {\n return node.nodeState !== NodeState.LEADER &&\n node.nodeState !== NodeState.FOLLOWER &&\n node.nodeState !== NodeState.CANDIDATE;\n });\n}\n\nfunction updateNodesIcon(nodes) {\n nodes\n .select('.icon-any.node-icon')\n .text(getNodeIconType);\n}\n\nfunction getNodeIconType(node) {\n if (node.nodeState === NodeState.LEADER) {\n return '\\ue935';\n } else if (node.nodeState === NodeState.FOLLOWER) {\n return '\\ue963';\n } else if (node.nodeState === NodeState.CANDIDATE) {\n return '\\ue914';\n } else if (node.nodeState === NodeState.NO_CONNECTION) {\n return '\\ue931';\n } else if (node.nodeState === NodeState.OUT_OF_SYNC) {\n return '\\ue920';\n } else if (node.nodeState === NodeState.READ_ONLY) {\n return '\\ue95c';\n } else if (node.nodeState === NodeState.RESTRICTED) {\n return '\\ue933';\n }\n return '';\n}\n\nfunction updateNodesHostnameText(nodes) {\n nodes\n .select('.id.id-host')\n .each(function (d) {\n d.labelNode = this;\n })\n .text(function (d) {\n return d.hostname;\n });\n\n // Add padding styling to text background. left/right +5. top/bottom +1\n nodes\n .select('.id-host-background')\n .attr('width', function (d) {\n return d3.select(d.labelNode).node().getBBox().width + 10;\n })\n .attr('height', function (d) {\n return d3.select(d.labelNode).node().getBBox().height + 2;\n })\n .attr('x', function (d) {\n return d3.select(d.labelNode).node().getBBox().x - 5;\n })\n .attr('y', function (d) {\n return d3.select(d.labelNode).node().getBBox().y - 1;\n })\n .attr('fill', '#EEEEEE');\n}\n\nexport function createLinks(linksDataBinding) {\n linksDataBinding.enter()\n .append('path')\n .classed('link', true);\n\n linksDataBinding.exit().remove();\n}\n\nexport function updateLinks(linksDataBinding, nodes) {\n linksDataBinding\n .attr('stroke', setLinkColor)\n .style('stroke-dasharray', setLinkStyle)\n .attr('d', (link) => getLinkCoordinates(link, nodes));\n}\n\nexport function setLinkColor(link) {\n if (link.status === LinkState.IN_SYNC || link.status === LinkState.SYNCING) {\n return clusterColors.ontoGreen;\n } else if (link.status === LinkState.OUT_OF_SYNC) {\n return clusterColors.ontoGrey;\n }\n return 'none';\n}\n\nexport function setLinkStyle(link) {\n if (link.status === LinkState.OUT_OF_SYNC || link.status === LinkState.SYNCING) {\n return '10 10';\n }\n return 'none';\n}\n\nfunction getLinkCoordinates(link, nodes) {\n const source = nodes.find((node) => node.address === link.source);\n const target = nodes.find((node) => node.address === link.target);\n\n const deltaX = target.x - source.x;\n const deltaY = target.y - source.y;\n const dist = Math.sqrt(deltaX * deltaX + deltaY * deltaY);\n const normX = deltaX / dist;\n const normY = deltaY / dist;\n\n // Padding from node center point\n const sourcePadding = 55;\n const targetPadding = 55;\n const sourceX = source.x + (sourcePadding * normX);\n const sourceY = source.y + (sourcePadding * normY);\n const targetX = target.x - (targetPadding * normX);\n const targetY = target.y - (targetPadding * normY);\n return 'M' + sourceX + ',' + sourceY + 'L' + targetX + ',' + targetY;\n}\n\nexport function positionNodesOnClusterZone(nodes, clusterZoneX, clusterZoneY, clusterZoneRadius) {\n nodes\n .attr('transform', (node, index) => {\n // Calculate initial positions for the new nodes based on\n // spreading them evenly on a circle around the center of the page.\n const theta = 2 * Math.PI * index / nodes[0].length;\n var x = clusterZoneX + Math.cos(theta) * clusterZoneRadius;\n var y = clusterZoneY + Math.sin(theta) * clusterZoneRadius;\n node.x = x;\n node.y = y;\n return `translate(${x}, ${y})`;\n });\n}\n\nfunction createHexagon(nodeGroup, radius) {\n const _s32 = (Math.sqrt(3) / 2);\n const xDiff = 0;\n const yDiff = 0;\n const points = [[radius + xDiff, yDiff], [radius / 2 + xDiff, radius * _s32 + yDiff], [-radius / 2 + xDiff, radius * _s32 + yDiff],\n [-radius + xDiff, yDiff],\n [-radius / 2 + xDiff, -radius * _s32 + yDiff], [radius / 2 + xDiff, -radius * _s32 + yDiff], [radius + xDiff, yDiff],\n [radius / 2 + xDiff, radius * _s32 + yDiff]];\n return nodeGroup\n .selectAll(\"path.area\")\n .data([points])\n .enter()\n .append(\"path\")\n .attr('class', 'node member')\n .attr(\"d\", d3.svg.line());\n}\n","import 'angular/utils/local-storage-adapter';\nimport * as CDS from \"./cluster-drawing.service\";\nimport {LinkState, NodeState} from \"./controllers\";\nimport d3tip from 'lib/d3-tip/d3-tip-patch';\n\n\nconst navigationBarWidthFull = 240;\nconst navigationBarWidthCollapsed = 70;\nlet navigationBarWidth = navigationBarWidthFull;\n\nconst nodeRadius = 50;\nconst legendNodeRadius = 25;\n\nconst clusterManagementDirectives = angular.module('graphdb.framework.clustermanagement.directives', [\n 'graphdb.framework.utils.localstorageadapter'\n]);\n\nconst translationsMap = {\n no_cluster_configured: '',\n create_cluster_btn: '',\n legend_node_state: '',\n legend_link_state: '',\n node_state_leader: \"Leader\",\n node_state_follower: \"Follower\",\n node_state_candidate: \"Candidate\",\n node_state_no_cluster: \"No cluster\",\n node_state_out_of_sync: \"Out of sync\",\n node_state_no_connection: \"No connection\",\n node_state_read_only: \"Read only\",\n node_state_restricted: \"Restricted\",\n link_state_in_sync: \"In sync\",\n link_state_syncing: \"Syncing\",\n link_state_out_of_sync: \"Out of sync\"\n};\n\nconst idTranslationKeyMap = {\n node_state: 'legend_node_state',\n link_state: 'legend_link_state'\n};\n\nclusterManagementDirectives.directive('clusterGraphicalView', ['$window', 'LocalStorageAdapter', 'LSKeys', 'UriUtils', '$translate', '$rootScope',\n function ($window, LocalStorageAdapter, LSKeys, UriUtils, $translate, $rootScope) {\n return {\n restrict: 'A',\n link: function (scope, element) {\n scope.showLegend = false;\n $rootScope.$on('$translateChangeSuccess', function () {\n updateTranslations();\n updateLabels();\n });\n scope.$on(\"$destroy\", function () {\n legendTooltip.destroy();\n });\n function updateTranslations() {\n Object.keys(translationsMap).forEach((key) => {\n translationsMap[key] = $translate.instant('cluster_management.cluster_graphical_view.' + key);\n });\n }\n\n function getWindowWidth() {\n const collapsed = LocalStorageAdapter.get(LSKeys.MENU_STATE) === 'collapsedMenu';\n navigationBarWidth = collapsed ? navigationBarWidthCollapsed : navigationBarWidthFull;\n // 95% avoids horizontal scrollbars and adds some margin\n return Math.max(Math.floor(($window.innerWidth - navigationBarWidth) * 0.95), 600);\n }\n\n function getWindowHeight() {\n // 95% avoids horizontal scrollbars and adds some margin\n return Math.max((($window.innerHeight - 250) * 0.95), 600);\n }\n\n let legendNodesGroup;\n let legendWidth;\n let legendHeight;\n const legendPadding = 10;\n\n let width = getWindowWidth();\n let height = getWindowHeight();\n let clusterZoneRadius = Math.min(width, height) / 2 - 100;\n let clusterZoneX = width / 2;\n let clusterZoneY = height / 2;\n let hasCluster;\n\n scope.width = function () {\n return width;\n };\n\n scope.height = function () {\n return height;\n };\n\n // SVG components\n let svg;\n let clusterZone;\n let nodesGroup;\n let linksGroup;\n\n function updateLabels() {\n CDS.updateClusterZoneLabels(hasCluster, clusterZone, translationsMap);\n Object.keys(idTranslationKeyMap).forEach((elementId) => {\n d3.select(`#${elementId}`).text(getLabelFor(elementId));\n });\n if (legendNodesGroup) {\n legendNodesGroup.remove();\n }\n createLegendGroup();\n createClusterLegend();\n }\n\n function translateLegendLinksAndNodes(legendNodes, legendLinks) {\n legendNodes.forEach((node) => {\n node.toolTip = node.hostname = translationsMap[node.customText];\n });\n legendLinks.forEach((link) => {\n link.toolTip = link.linkTypeText = translationsMap[link.linkTypeKey];\n });\n }\n\n function getLabelFor(elementId) {\n const labelKey = idTranslationKeyMap[elementId];\n return translationsMap[labelKey];\n }\n\n function initialize() {\n updateTranslations();\n const hasCluster = !!(scope.clusterModel.nodes && scope.clusterModel.nodes.length);\n createClusterZone(hasCluster);\n createClusterLegend();\n plot();\n }\n\n function createClusterZone(hasCluster) {\n svg = CDS.createClusterSvgElement(element[0])\n .attr('width', width)\n .attr('height', height);\n svg.call(legendTooltip);\n\n clusterZone = CDS.createClusterZone(svg, hasCluster);\n\n linksGroup = svg.append('g').attr('id', 'links-group');\n nodesGroup = svg.append('g').attr('id', 'nodes-group');\n createLegendGroup();\n }\n\n function createLegendGroup() {\n legendNodesGroup = svg.append('g').attr('id', 'legend-group')\n .classed('hidden', !scope.showLegend)\n .classed('legend-group', true);\n }\n\n let tooltipElement;\n const legendTooltip = d3tip()\n .attr('class', 'd3-tip')\n .customPosition(function () {\n const bbox = tooltipElement.getBoundingClientRect();\n const scrollTop = document.documentElement.scrollTop || document.body.scrollTop;\n const scrollLeft = document.documentElement.scrollLeft || document.body.scrollLeft;\n\n return {\n left: bbox.left + scrollLeft + 'px',\n top: (bbox.top - 30) + scrollTop + 'px'\n };\n })\n .html(function (d) {\n return d.toolTip;\n });\n\n // Shows tooltip with legend node or link state\n const showLegendTooltip = function (d, element) {\n tooltipElement = element;\n legendTooltip.show(d, tooltipElement);\n };\n\n // Hides the tooltip with legend node or link state\n const hideLegendTooltip = function () {\n tooltipElement = null;\n legendTooltip.hide();\n };\n\n function createClusterLegend() {\n const nodeLinkStateTextHeight = 14;\n\n const nodeStateLabelY = legendPadding + nodeLinkStateTextHeight;\n const linkStateLabelY = nodeStateLabelY + legendPadding * 3 + legendNodeRadius * 5;\n\n const legendColumns = 4;\n const nodesXPadding = 15;\n const nodesYPadding = 15;\n\n const legendNodes = getLegendNodes();\n const legendLinks = getLegendLinks();\n translateLegendLinksAndNodes(legendNodes, legendLinks);\n\n legendNodesGroup.append('rect')\n .attr('id', 'legend-background')\n .attr('class', 'legend-background')\n .attr('fill', '#EEEEEE');\n\n const nodeStateLabel = legendNodesGroup\n .append('text')\n .attr('id', 'node_state')\n .attr('class', 'id id-host')\n .attr('x', nodeRadius * 4)\n .attr('y', nodeStateLabelY)\n .text(getLabelFor('node_state'));\n\n const linkStateLabel = legendNodesGroup\n .append('text')\n .attr('id', 'link_state')\n .attr('class', 'id id-host')\n .attr('x', nodeRadius * 4)\n .attr('y', linkStateLabelY)\n .text(getLabelFor('link_state'));\n\n const legendNodeData = legendNodesGroup.selectAll('#node-group').data(legendNodes);\n CDS.createNodes(legendNodeData, legendNodeRadius, true);\n CDS.updateNodes(legendNodeData);\n\n legendNodeData.select('.node.member')\n .on(\"mouseover\", function (d) {\n d3.event.stopPropagation();\n showLegendTooltip(d, this);\n })\n .on('mouseout', hideLegendTooltip);\n\n legendNodeData\n .attr('transform', function (d) {\n const row = Math.floor(d.id / legendColumns);\n const column = d.id % legendColumns;\n const x = legendPadding + legendNodeRadius + (nodesXPadding + legendNodeRadius * 2) * column;\n const y = legendPadding * 2 + nodeLinkStateTextHeight + legendNodeRadius + (nodesYPadding + legendNodeRadius\n * 2) * row;\n return `translate(${x}, ${y})`;\n });\n\n legendNodesGroup\n .call(function () {\n legendWidth = this.node().getBBox().width;\n });\n\n // Position node/link state labels\n nodeStateLabel.attr('x', legendPadding + legendWidth / 2);\n linkStateLabel.attr('x', legendPadding + legendWidth / 2);\n\n\n const linkWidth = legendWidth / 3;\n\n const linksGroup = legendNodesGroup.append('g').attr('id', 'links-group');\n const linksGroupY = linkStateLabelY + legendPadding;\n linksGroup.attr('transform', `translate(${legendPadding}, ${linksGroupY})`);\n\n legendLinks.forEach((link, index) => {\n const linkPadding = 5;\n const startX = linkPadding;\n const endX = linkWidth - linkPadding;\n\n const linkG = linksGroup\n .append('g')\n .classed('link', true)\n .classed('legend', true)\n .attr('transform', () => {\n const x = index * linkWidth;\n return `translate(${x}, 0)`;\n });\n\n linkG\n .append('path')\n .classed('link', true)\n .attr('stroke-dasharray', () => CDS.setLinkStyle(link))\n .attr('stroke', () => CDS.setLinkColor(link))\n .attr('d', () => {\n return `M${startX},0,${endX},0`;\n });\n\n linkG.append('foreignObject')\n .attr('y', 10)\n .attr('x', 5)\n .attr('width', linkWidth - 10)\n .attr('height', 10)\n .attr('class', 'label-wrapper')\n .append('xhtml:div')\n .attr('class', 'id id-host')\n .style(\"font-size\", \"9px\")\n .html(link.linkTypeText);\n\n linkG\n .on('mouseover', function () {\n d3.event.stopPropagation();\n showLegendTooltip(link, this);\n })\n .on('mouseout', hideLegendTooltip);\n });\n\n\n legendNodesGroup\n .call(function (d) {\n legendHeight = this.node().getBBox().height;\n legendWidth = this.node().getBBox().width;\n });\n\n legendNodesGroup.select('.legend-background')\n .attr('height', legendHeight + legendPadding * 4)\n .attr('width', legendWidth + legendPadding * 2)\n .attr('rx', '6');\n\n positionLegend();\n }\n\n function positionLegend() {\n const y = height - (legendHeight + legendPadding * 3 + 50);\n CDS.moveElement(legendNodesGroup, 0, y);\n }\n\n function createNodes(nodes) {\n nodes.forEach((node) => node.hostname = UriUtils.shortenIri(node.endpoint));\n const nodeData = nodesGroup.selectAll('#node-group').data(nodes, (node) => node.address);\n nodeData\n .on('click', (d) => {\n scope.childContext.selectNode(d);\n\n // position the tooltip according to the node!\n const tooltip = d3.select('.nodetooltip');\n const windowWidth = $(window).width();\n if (d3.event.pageX < windowWidth / 2) {\n // left\n tooltip.style(\"left\", d3.event.pageX + \"px\");\n tooltip.style(\"right\", \"\");\n } else {\n // right\n tooltip.style(\"left\", \"\");\n tooltip.style(\"right\", (windowWidth - d3.event.pageX) + \"px\");\n }\n tooltip.style(\"top\", (d3.event.pageY - 28) + \"px\");\n });\n CDS.createNodes(nodeData, nodeRadius);\n CDS.updateNodes(nodeData);\n CDS.positionNodesOnClusterZone(nodeData, clusterZoneX, clusterZoneY, clusterZoneRadius);\n }\n\n function drawLinks(links, nodes) {\n const linksData = linksGroup.selectAll('.link').data(links, (link) => link.id);\n CDS.createLinks(linksData);\n CDS.updateLinks(linksData, nodes);\n }\n\n // Properties and functions that can be used by parent\n scope.childContext.redraw = plot;\n scope.childContext.resize = function () {\n // recalculates with new screen width\n width = getWindowWidth();\n height = getWindowHeight();\n svg.attr(\"width\", width);\n svg.attr(\"height\", height);\n plot();\n positionLegend();\n };\n scope.childContext.toggleLegend = () => {\n scope.showLegend = !scope.showLegend;\n legendNodesGroup.classed('hidden', !scope.showLegend);\n };\n\n function resizeClusterComponent() {\n calculateClusterZoneProperties();\n CDS.moveElement(clusterZone, clusterZoneX, clusterZoneY);\n clusterZone\n .select('.cluster-zone')\n .attr('r', clusterZoneRadius);\n }\n\n function calculateClusterZoneProperties() {\n clusterZoneRadius = Math.min(width, height) / 2 - 100;\n clusterZoneX = width / 2;\n clusterZoneY = height / 2;\n }\n\n function setClusterZoneType(hasCluster) {\n CDS.setCreateClusterZone(hasCluster, clusterZone, translationsMap);\n let mouseupCallback;\n if (!hasCluster) {\n mouseupCallback = () => {\n scope.$apply(function () {\n scope.showCreateClusterDialog();\n });\n };\n }\n clusterZone\n .on('mouseup', mouseupCallback);\n }\n\n function plot() {\n resizeClusterComponent();\n if (hasCluster !== scope.clusterModel.hasCluster) {\n hasCluster = !!scope.clusterModel.hasCluster;\n setClusterZoneType(hasCluster);\n }\n const nodes = _.cloneDeep(scope.clusterModel.nodes) || [];\n const links = _.cloneDeep(scope.clusterModel.links) || [];\n createNodes(nodes);\n drawLinks(links, nodes);\n }\n\n initialize();\n }\n };\n }\n])\n .config(['$tooltipProvider', function ($tooltipProvider) {\n $tooltipProvider.options({appendToBody: true});\n}]);\n\n\nconst getLegendNodes = function () {\n const legendNodes = [];\n legendNodes.push({nodeState: NodeState.LEADER, customText: 'node_state_leader'});\n legendNodes.push({nodeState: NodeState.FOLLOWER, customText: 'node_state_follower'});\n legendNodes.push({nodeState: NodeState.CANDIDATE, customText: 'node_state_candidate'});\n legendNodes.push({nodeState: NodeState.NO_CLUSTER, customText: 'node_state_no_cluster'});\n legendNodes.push({nodeState: NodeState.OUT_OF_SYNC, customText: 'node_state_out_of_sync'});\n legendNodes.push({nodeState: NodeState.NO_CONNECTION, customText: 'node_state_no_connection'});\n legendNodes.push({nodeState: NodeState.READ_ONLY, customText: 'node_state_read_only'});\n legendNodes.push({nodeState: NodeState.RESTRICTED, customText: 'node_state_restricted'});\n legendNodes.forEach((node, index) => node.id = index);\n return legendNodes;\n};\n\nconst getLegendLinks = function () {\n const links = [];\n links.push({status: LinkState.IN_SYNC, linkTypeKey: 'link_state_in_sync'});\n links.push({status: LinkState.SYNCING, linkTypeKey: 'link_state_syncing'});\n links.push({status: LinkState.OUT_OF_SYNC, linkTypeKey: 'link_state_out_of_sync'});\n links.forEach((link, index) => link.id = index);\n return links;\n};\n"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[24,61,97,98],{140:function(e,a,n){"use strict";n.r(a);n(4),n(11),n(10),n(93),n(94),n(43),n(265);angular.module("graphdb.framework.namespaces",["LocalStorageModule","xeditable","ngAnimate","ngRoute","toastr","graphdb.framework.namespaces.controllers","graphdb.framework.namespaces.directives","graphdb.framework.core.services.repositories","graphdb.framework.core.directives","graphdb.framework.core.directives.paginations"]).run(["editableOptions",function(e){e.theme="bs3"}])},43:function(e,a){angular.module("graphdb.framework.core.directives.paginations",[]).directive("paginations",(function(){return{template:'<pagination class="nav navbar-right" total-items="matchedElements.length" items-per-page="pageSize" ng-model="page" ng-change="changePagination()" direction-links="false" boundary-links="true" max-size="5" rotate="true"></pagination>'}}))},93:function(e,a,n){"use strict";n.r(a);n(4),n(12),n(10),n(15);const s=angular.module("graphdb.framework.namespaces.controllers",["ui.bootstrap","graphdb.framework.core.services.repositories","graphdb.framework.core.services.jwtauth","graphdb.framework.rest.repositories.service","graphdb.framework.rest.rdf4j.repositories.service","toastr"]),t=function(){const e="[A-Z]|[a-z]|[À-Ö]|[Ø-ö]|[ø-˿]|[Ͱ-ͽ]|[Ϳ-]|[-]|[⁰-]|[Ⰰ-]|[、-]|[豈-﷏]|[ﷰ-�]",a="[A-Z]|[a-z]|[À-Ö]|[Ø-ö]|[ø-˿]|[Ͱ-ͽ]|[Ϳ-]|[-]|[⁰-]|[Ⰰ-]|[、-]|[豈-﷏]|[ﷰ-�]|_|-|[0-9]|·|[̀-ͯ]|[‿-⁀]";return new RegExp("^(?:"+e+")(?:(?:"+a+"|\\.)*(?:"+a+"))?$")}();s.controller("NamespacesCtrl",["$scope","$http","$repositories","toastr","$modal","ModalService","RepositoriesRestService","RDF4JRepositoriesRestService","$translate",function(e,a,n,s,c,r,i,o,p){function l(a,t){let c;c="object"==typeof a?a.prefix:a,o.deleteNamespacePrefix(n.getActiveRepository(),c).success((function(){t&&t.length>0?l(a=t.shift(),t):(e.selectedAll=!1,e.namespace={},e.getNamespaces(),e.searchNamespaces="",e.haveSelected=!1,e.loader=!1,e.displayedNamespaces=[],void 0===t?s.success(p.instant("namespace.prefix.deleted.successfully",{prefix:c}),""):s.success(p.instant("namespace.selected.namespaces.deleted.successfully"),""))})).error((function(a){const n=getError(a);s.error(n,p.instant("common.error")),e.loader=!1}))}function m(e,a){return function(e){return""===e||e.match(t)}(e)?!angular.isUndefined(a)&&""!==a||(s.error(p.instant("namespace.warning.provide.namespace"),p.instant("common.error")),!1):(s.error(p.instant("namespace.invalid.prefix",{prefix:e},p.instant("common.error"))),!1)}e.namespaces={},e.namespace={},e.loader=!1,e.haveSelected=!1,e.pageSizeOptions=[10,20,50,100],e.page=1,e.pageSize=e.pageSizeOptions[0],e.displayedNamespaces=[],e.getNamespaces=function(){n.getActiveRepository()&&(e.loader=!0,e.namespaces={},o.getNamespaces(n.getActiveRepository()).success((function(a){e.namespaces=a.results.bindings.map((function(e){return{prefix:e.prefix.value,namespace:e.namespace.value}})),e.namespaces.length>0&&(e.namespaces.sort((function(e,a){const n=e.prefix.toUpperCase(),s=a.prefix.toUpperCase();return n<s?-1:n>s?1:0})),e.matchedElements=e.namespaces,e.changePagination()),0===e.namespaces.length&&(e.loader=!1)})).error((function(a){const n=getError(a);s.error(n),e.loader=!1})))},e.changePagination=function(){angular.isDefined(e.namespaces)&&(e.displayedNamespaces=e.namespaces.slice(e.pageSize*(e.page-1),e.pageSize*e.page))},e.changePageSize=function(a){$(".ot-graph-page-size").removeClass("active"),e.page=1,e.searchNamespaces="",a&&(e.getNamespaces(),e.pageSize=a)},e.$watch("matchedElements",(function(){angular.isDefined(e.matchedElements)&&(e.displayedNamespaces=e.matchedElements.slice(e.pageSize*(e.page-1),e.pageSize*e.page))})),e.$watch((function(){return n.getActiveRepository()}),(function(){e.searchNamespaces="",e.getNamespaces(),e.selectedAll=!1})),e.onNamespaceSearch=function(){e.haveSelected=!1,e.selectedAll=!1,e.matchedElements=[],e.deselectAll(),e.filterResults()},e.filterResults=function(){angular.forEach(e.namespaces,(function(a){-1===a.namespace.indexOf(e.searchNamespaces)&&-1===a.prefix.indexOf(e.searchNamespaces)||e.matchedElements.push(a)}))},e.saveNamespace=function(a,t){return e.loader=!0,o.updateNamespacePrefix(n.getActiveRepository(),t,a).success((function(){e.getNamespaces(),e.loader=!1})).error((function(a){const n=getError(a);s.error(n,p.instant("common.error")),e.loader=!1}))},e.editPrefix=function(a,t){e.loader=!0,i.getPrefix(n.getActiveRepository(),{from:a,to:t,location:n.getActiveRepositoryObject().location}).success((function(){e.getNamespaces(),e.loader=!1})).error((function(a){const n=getError(a);s.error(n,p.instant("common.error")),e.loader=!1}))},e.confirmReplace=function(e,a){r.openSimpleModal({title:p.instant("namespace.confirm.replace"),message:p.instant("namespace.already.exists.msg"),warning:!0}).result.then(e,a)},e.editPrefixAndNamespace=function(a,n,s){if(angular.isUndefined(a)&&(a=""),!m(a,n))return"";let t=!1;const c=s.prefix;angular.forEach(e.namespaces,(function(e){e.prefix===a&&c!==a&&(t=!0)})),t?e.confirmReplace((function(){e.saveNamespace(c,n).then((function(){c!==a&&e.editPrefix(c,a)}))}),(function(){e.getNamespaces()})):angular.isDefined(t)&&e.saveNamespace(c,n).then((function(){c!==a&&e.editPrefix(c,a)}))},e.addNamespace=function(){if(angular.isUndefined(e.namespace.prefix)&&(e.namespace.prefix=""),!m(e.namespace.prefix,e.namespace.namespace))return;e.selectedAll=!1;let a=!1;for(let n=0;n<e.namespaces.length;n++)e.namespaces[n].prefix===e.namespace.prefix&&(a=!0);a?e.confirmReplace((function(){e.saveNamespace(e.namespace.prefix,e.namespace.namespace),e.namespace={}})):(e.saveNamespace(e.namespace.prefix,e.namespace.namespace),e.namespace={})},e.removeNamespace=function(e){r.openSimpleModal({title:p.instant("common.confirm.delete"),message:p.instant("namespace.warning.delete.msg",{prefix:e.prefix}),warning:!0}).result.then((function(){l(e)}))},e.checkAll=function(){angular.forEach(e.displayedNamespaces,(function(a){a.selected=e.selectedAll}))},e.deleteSelected=function(){let a=!1;angular.forEach(e.displayedNamespaces,(function(n){a||n.selected&&(a=!0,r.openSimpleModal({title:p.instant("common.confirm.delete"),message:p.instant("namespace.warning.delete.selected"),warning:!0}).result.then((function(){e.loader=!0;const a=[];angular.forEach(e.displayedNamespaces,(function(e){e.selected&&a.push(e)})),l(a.shift(),a),e.selectedAll=!1}),(function(){e.getNamespaces(),e.selectedAll=!1,e.searchNamespaces=""})))}))},e.checkIfSelectedNamespace=function(){e.haveSelected=!1,angular.forEach(e.namespaces,(function(a){a.selected&&(e.haveSelected=!0)}))},e.deselectAll=function(){angular.forEach(e.namespaces,(function(e){e.selected=!1}))}}]),s.controller("StandartModalCtrl",["$scope","$modalInstance",function(e,a){e.ok=function(){a.close(!0)},e.cancel=function(){a.dismiss("cancel")}}])},94:function(e,a){angular.module("graphdb.framework.namespaces.directives",["ngRoute"]).directive("loaderPostRepeatDirective",["$timeout",function(e){return function(a){a.$last&&e((function(){a.$parent.loader=!1}),0)}}])}}]);
|
|
2
|
-
//# sourceMappingURL=24.77907cc1d707305663c9.bundle.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack:///./src/js/angular/namespaces/app.js","webpack:///./src/js/angular/core/directives/paginations.js","webpack:///./src/js/angular/namespaces/controllers.js","webpack:///./src/js/angular/namespaces/directives.js"],"names":["angular","module","run","editableOptions","theme","directive","template","namespaces","pnPrefixRe","pnCharsBase","pnChars","pnCharsU","RegExp","controller","$scope","$http","$repositories","toastr","$modal","ModalService","RepositoriesRestService","RDF4JRepositoriesRestService","$translate","deleteNamespace","namespace","prefix","deleteNamespacePrefix","getActiveRepository","success","length","shift","selectedAll","getNamespaces","searchNamespaces","haveSelected","loader","displayedNamespaces","undefined","instant","error","data","msg","getError","validatePrefixAndNamespace","match","validatePrefix","isUndefined","pageSizeOptions","page","pageSize","results","bindings","map","e","value","sort","a","b","prefixA","toUpperCase","prefixB","matchedElements","changePagination","isDefined","slice","changePageSize","size","$","removeClass","$watch","onNamespaceSearch","deselectAll","filterResults","forEach","item","indexOf","push","saveNamespace","updateNamespacePrefix","editPrefix","oldPrefix","newPrefix","getPrefix","from","to","location","getActiveRepositoryObject","confirmReplace","okCallback","cancelCallback","openSimpleModal","title","message","warning","result","then","editPrefixAndNamespace","namespaceObject","prefixExist","elem","addNamespace","i","removeNamespace","checkAll","selected","deleteSelected","modalInstanceOpened","checkIfSelectedNamespace","$modalInstance","ok","close","cancel","dismiss","$timeout","scope","$last","$parent"],"mappings":"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","file":"24.77907cc1d707305663c9.bundle.js","sourcesContent":["import 'angular/core/services';\nimport 'angular/core/directives';\nimport 'angular/core/services/repositories.service';\nimport 'angular/namespaces/controllers';\nimport 'angular/namespaces/directives';\nimport 'angular/core/directives/paginations';\nimport 'angular-xeditable/dist/js/xeditable.min';\n\nconst modules = [\n 'LocalStorageModule',\n 'xeditable',\n 'ngAnimate',\n 'ngRoute',\n 'toastr',\n 'graphdb.framework.namespaces.controllers',\n 'graphdb.framework.namespaces.directives',\n 'graphdb.framework.core.services.repositories',\n 'graphdb.framework.core.directives',\n 'graphdb.framework.core.directives.paginations'\n];\n\nconst namespacesApp = angular.module('graphdb.framework.namespaces', modules);\n\nnamespacesApp.run(['editableOptions', function (editableOptions) {\n editableOptions.theme = 'bs3';\n}]);\n","angular.module('graphdb.framework.core.directives.paginations', [])\n .directive('paginations', function () {\n return {\n template: '<pagination class=\"nav navbar-right\" total-items=\"matchedElements.length\" items-per-page=\"pageSize\" ng-model=\"page\" ng-change=\"changePagination()\" direction-links=\"false\" boundary-links=\"true\" max-size=\"5\" rotate=\"true\"></pagination>',\n };\n });\n","import 'angular/core/services';\nimport 'angular/core/services/jwt-auth.service';\nimport 'angular/core/services/repositories.service';\nimport 'angular/rest/rdf4j.repositories.rest.service';\n\nconst modules = [\n 'ui.bootstrap',\n 'graphdb.framework.core.services.repositories',\n 'graphdb.framework.core.services.jwtauth',\n 'graphdb.framework.rest.repositories.service',\n 'graphdb.framework.rest.rdf4j.repositories.service',\n 'toastr'\n];\n\nconst namespaces = angular.module('graphdb.framework.namespaces.controllers', modules);\n\n// A regular expression that validates a prefix according to the SPARQL 1.1 specification.\n// XXX: Technically this should include Unicode chars > 0xFFFF but those aren't fully supported in JavaScript\nconst pnPrefixRe = function () {\n const pnCharsBase = '[A-Z]|[a-z]|[\\u00C0-\\u00D6]|[\\u00D8-\\u00F6]|[\\u00F8-\\u02FF]|[\\u0370-\\u037D]'\n + '|[\\u037F-\\u1FFF]|[\\u200C-\\u200D]|[\\u2070-\\u218F]|[\\u2C00-\\u2FEF]|[\\u3001-\\uD7FF]'\n + '|[\\uF900-\\uFDCF]|[\\uFDF0-\\uFFFD]';\n const pnCharsU = pnCharsBase + '|_';\n const pnChars = pnCharsU + '|-|[0-9]|\\u00B7|[\\u0300-\\u036F]|[\\u203F-\\u2040]';\n\n return new RegExp('^(?:' + pnCharsBase + ')(?:(?:' + pnChars + '|\\\\.)*(?:' + pnChars + '))?$');\n}();\n\nfunction validatePrefix(prefix) {\n return prefix === '' || prefix.match(pnPrefixRe);\n}\n\nnamespaces.controller('NamespacesCtrl', ['$scope', '$http', '$repositories', 'toastr', '$modal', 'ModalService', 'RepositoriesRestService', 'RDF4JRepositoriesRestService', '$translate',\n function ($scope, $http, $repositories, toastr, $modal, ModalService, RepositoriesRestService, RDF4JRepositoriesRestService, $translate) {\n $scope.namespaces = {};\n $scope.namespace = {};\n $scope.loader = false;\n $scope.haveSelected = false;\n $scope.pageSizeOptions = [10, 20, 50, 100];\n $scope.page = 1;\n $scope.pageSize = $scope.pageSizeOptions[0];\n $scope.displayedNamespaces = [];\n\n $scope.getNamespaces = function () {\n if (!$repositories.getActiveRepository()) {\n return;\n }\n\n $scope.loader = true;\n $scope.namespaces = {};\n RDF4JRepositoriesRestService.getNamespaces($repositories.getActiveRepository())\n .success(function (data) {\n $scope.namespaces = data.results.bindings.map(function (e) {\n return {\n prefix: e.prefix.value,\n namespace: e.namespace.value\n };\n });\n if ($scope.namespaces.length > 0) {\n $scope.namespaces.sort(function (a, b) {\n const prefixA = a.prefix.toUpperCase(); // ignore upper and lowercase\n const prefixB = b.prefix.toUpperCase(); // ignore upper and lowercase\n if (prefixA < prefixB) {\n return -1;\n }\n if (prefixA > prefixB) {\n return 1;\n }\n return 0;\n });\n $scope.matchedElements = $scope.namespaces;\n $scope.changePagination();\n }\n if ($scope.namespaces.length === 0) {\n // Remove the loader ourselves\n $scope.loader = false;\n } // else let the loaderPostRepeatDirective do it\n }).error(function (data) {\n const msg = getError(data);\n toastr.error(msg);\n $scope.loader = false;\n });\n };\n\n $scope.changePagination = function () {\n if (angular.isDefined($scope.namespaces)) {\n $scope.displayedNamespaces = $scope.namespaces.slice($scope.pageSize * ($scope.page - 1), $scope.pageSize * $scope.page);\n }\n };\n\n $scope.changePageSize = function (size) {\n $('.ot-graph-page-size').removeClass('active');\n $scope.page = 1;\n $scope.searchNamespaces = '';\n if (size) {\n $scope.getNamespaces();\n $scope.pageSize = size;\n }\n };\n\n $scope.$watch('matchedElements', function () {\n if (angular.isDefined($scope.matchedElements)) {\n $scope.displayedNamespaces = $scope.matchedElements.slice($scope.pageSize * ($scope.page - 1), $scope.pageSize * $scope.page);\n }\n });\n\n $scope.$watch(function () {\n return $repositories.getActiveRepository();\n }, function () {\n $scope.searchNamespaces = '';\n $scope.getNamespaces();\n $scope.selectedAll = false;\n });\n\n $scope.onNamespaceSearch = function() {\n $scope.haveSelected = false;\n $scope.selectedAll = false;\n $scope.matchedElements = [];\n $scope.deselectAll();\n $scope.filterResults();\n };\n\n $scope.filterResults = function() {\n angular.forEach($scope.namespaces, function (item) {\n if (item.namespace.indexOf($scope.searchNamespaces) !== -1 || item.prefix.indexOf($scope.searchNamespaces) !== -1) {\n $scope.matchedElements.push(item);\n }\n });\n };\n\n $scope.saveNamespace = function (prefix, namespace) {\n $scope.loader = true;\n return RDF4JRepositoriesRestService.updateNamespacePrefix($repositories.getActiveRepository(), namespace, prefix)\n .success(function () {\n $scope.getNamespaces();\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\n $scope.editPrefix = function (oldPrefix, newPrefix) {\n $scope.loader = true;\n RepositoriesRestService.getPrefix($repositories.getActiveRepository(), {\n from: oldPrefix, to: newPrefix, location: $repositories.getActiveRepositoryObject().location})\n .success(function () {\n $scope.getNamespaces();\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\n $scope.confirmReplace = function (okCallback, cancelCallback) {\n ModalService.openSimpleModal({\n title: $translate.instant('namespace.confirm.replace'),\n message: $translate.instant('namespace.already.exists.msg'),\n warning: true\n }).result.then(okCallback, cancelCallback);\n };\n\n $scope.editPrefixAndNamespace = function (prefix, namespace, namespaceObject) {\n if (angular.isUndefined(prefix)) {\n prefix = '';\n }\n\n if (!validatePrefixAndNamespace(prefix, namespace)) {\n return '';\n }\n\n let prefixExist = false;\n const oldPrefix = namespaceObject.prefix;\n angular.forEach($scope.namespaces, function (elem) {\n if (elem.prefix === prefix && oldPrefix !== prefix) {\n prefixExist = true;\n }\n });\n if (prefixExist) {\n $scope.confirmReplace(function () {\n $scope.saveNamespace(oldPrefix, namespace).then(function () {\n if (oldPrefix !== prefix) {\n $scope.editPrefix(oldPrefix, prefix);\n }\n });\n }, function () {\n $scope.getNamespaces();\n });\n } else if (angular.isDefined(prefixExist)) {\n $scope.saveNamespace(oldPrefix, namespace).then(function () {\n if (oldPrefix !== prefix) {\n $scope.editPrefix(oldPrefix, prefix);\n }\n });\n }\n };\n\n $scope.addNamespace = function () {\n if (angular.isUndefined($scope.namespace.prefix)) {\n $scope.namespace.prefix = '';\n }\n\n if (!validatePrefixAndNamespace($scope.namespace.prefix, $scope.namespace.namespace)) {\n return;\n }\n\n $scope.selectedAll = false;\n let prefixExist = false;\n for (let i = 0; i < $scope.namespaces.length; i++) {\n if ($scope.namespaces[i].prefix === $scope.namespace.prefix) {\n prefixExist = true;\n }\n }\n if (prefixExist) {\n $scope.confirmReplace(function () {\n $scope.saveNamespace($scope.namespace.prefix, $scope.namespace.namespace);\n $scope.namespace = {};\n });\n } else {\n $scope.saveNamespace($scope.namespace.prefix, $scope.namespace.namespace);\n $scope.namespace = {};\n }\n };\n\n $scope.removeNamespace = function (namespace) {\n ModalService.openSimpleModal({\n title: $translate.instant('common.confirm.delete'),\n message: $translate.instant('namespace.warning.delete.msg', {prefix: namespace.prefix}),\n warning: true\n }).result.then(function () {\n deleteNamespace(namespace);\n });\n };\n\n $scope.checkAll = function () {\n angular.forEach($scope.displayedNamespaces, function (item) {\n item.selected = $scope.selectedAll;\n });\n };\n\n $scope.deleteSelected = function () {\n const openModalInstance = function () {\n ModalService.openSimpleModal({\n title: $translate.instant('common.confirm.delete'),\n message: $translate.instant('namespace.warning.delete.selected'),\n warning: true\n }).result.then(function () {\n $scope.loader = true;\n const namespaces = [];\n angular.forEach($scope.displayedNamespaces, function (namespace) {\n if (namespace.selected) {\n namespaces.push(namespace);\n }\n });\n deleteNamespace(namespaces.shift(), namespaces);\n $scope.selectedAll = false;\n }, function () {\n $scope.getNamespaces();\n $scope.selectedAll = false;\n $scope.searchNamespaces = '';\n });\n };\n\n let modalInstanceOpened = false;\n angular.forEach($scope.displayedNamespaces, function (namespace) {\n if (!modalInstanceOpened) {\n if (namespace.selected) {\n modalInstanceOpened = true;\n openModalInstance();\n }\n }\n });\n };\n\n function deleteNamespace(namespace, namespaces) {\n let prefix;\n if (typeof namespace === 'object') {\n prefix = namespace.prefix;\n } else {\n prefix = namespace;\n }\n RDF4JRepositoriesRestService.deleteNamespacePrefix($repositories.getActiveRepository(), prefix)\n .success(function () {\n if (namespaces && namespaces.length > 0) {\n namespace = namespaces.shift();\n deleteNamespace(namespace, namespaces);\n } else {\n $scope.selectedAll = false;\n $scope.namespace = {};\n $scope.getNamespaces();\n $scope.searchNamespaces = '';\n $scope.haveSelected = false;\n $scope.loader = false;\n $scope.displayedNamespaces = [];\n if (namespaces === undefined) {\n toastr.success($translate.instant('namespace.prefix.deleted.successfully', {prefix: prefix}), '');\n } else {\n toastr.success($translate.instant('namespace.selected.namespaces.deleted.successfully'), '');\n }\n }\n }).error(function (data) {\n const msg = getError(data);\n toastr.error(msg, $translate.instant('common.error'));\n $scope.loader = false;\n });\n }\n\n $scope.checkIfSelectedNamespace = function () {\n $scope.haveSelected = false;\n angular.forEach($scope.namespaces, function (item) {\n if (item.selected) {\n $scope.haveSelected = true;\n }\n });\n };\n\n $scope.deselectAll = function () {\n angular.forEach($scope.namespaces, function (item) {\n item.selected = false;\n });\n };\n\n function validatePrefixAndNamespace(prefix, namespace) {\n if (!validatePrefix(prefix)) {\n toastr.error($translate.instant('namespace.invalid.prefix', {prefix: prefix}, $translate.instant('common.error')));\n return false;\n }\n\n if (angular.isUndefined(namespace) || namespace === '') {\n toastr.error($translate.instant('namespace.warning.provide.namespace'), $translate.instant('common.error'));\n return false;\n }\n\n return true;\n }\n }]);\n\nnamespaces.controller('StandartModalCtrl', ['$scope', '$modalInstance', function ($scope, $modalInstance) {\n\n $scope.ok = function () {\n const result = true;\n $modalInstance.close(result);\n };\n\n $scope.cancel = function () {\n $modalInstance.dismiss('cancel');\n };\n}]);\n","const namespacesDirectives = angular.module('graphdb.framework.namespaces.directives', ['ngRoute']);\n\n// This directive will set the loader to false once the respective ngRepeat is done loading\nnamespacesDirectives.directive('loaderPostRepeatDirective', ['$timeout', function ($timeout) {\n return function (scope) {\n if (scope.$last) {\n // It's important to do this with timeout:\n // \"...since the setTimeout function gets pushed to the end of the queue of the browser,\n // its always right after everything is done in angular, usually ngRepeat which continues\n // after its parents postLinking function\"\n $timeout(function () {\n scope.$parent.loader = false;\n }, 0);\n }\n };\n}]);\n"],"sourceRoot":""}
|