graphdb-workbench 2.0.0-TR5 → 2.0.0-TR9
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/README.md +6 -1
- package/dist/{0.21974a2453b9a92dec33.bundle.js → 0.965871b861f4dddbba56.bundle.js} +3 -3
- package/dist/0.965871b861f4dddbba56.bundle.js.map +1 -0
- package/dist/{112.b871480dd961ac3c18b6.bundle.js → 112.0c1bdd906ac321ffbf5f.bundle.js} +2 -2
- package/dist/{112.b871480dd961ac3c18b6.bundle.js.map → 112.0c1bdd906ac321ffbf5f.bundle.js.map} +1 -1
- package/dist/114.282a327015f8ae87918b.bundle.js +1 -1
- package/dist/114.282a327015f8ae87918b.bundle.js.map +1 -1
- package/dist/{12.449fb5148a68a44ba324.bundle.js → 12.5d4da897bdd91e8808fa.bundle.js} +2 -2
- package/dist/12.5d4da897bdd91e8808fa.bundle.js.map +1 -0
- package/dist/13.f62fa8acc6e68826e07a.bundle.js +4 -0
- package/dist/13.f62fa8acc6e68826e07a.bundle.js.map +1 -0
- package/dist/14.349458c1675f763995a5.bundle.js +2 -0
- package/dist/14.349458c1675f763995a5.bundle.js.map +1 -0
- package/dist/15.ebce70c05fd90026747b.bundle.js +2 -0
- package/dist/15.ebce70c05fd90026747b.bundle.js.map +1 -0
- package/dist/{17.4b048ae019a8d2fd5b46.bundle.js → 17.f01afdf3b3892d73a3fe.bundle.js} +2 -2
- package/dist/17.f01afdf3b3892d73a3fe.bundle.js.map +1 -0
- package/dist/{18.5514f95535bdd2a71d6e.bundle.js → 18.10f65755b64a6534289e.bundle.js} +2 -2
- package/dist/{18.5514f95535bdd2a71d6e.bundle.js.map → 18.10f65755b64a6534289e.bundle.js.map} +1 -1
- package/dist/{21.e75213686a349ae7df89.bundle.js → 21.b6bf0d54a846411501c7.bundle.js} +2 -2
- package/dist/{21.e75213686a349ae7df89.bundle.js.map → 21.b6bf0d54a846411501c7.bundle.js.map} +1 -1
- package/dist/22.e8167eba683605211409.bundle.js +2 -0
- package/dist/22.e8167eba683605211409.bundle.js.map +1 -0
- package/dist/{23.32f2701680565c5d107b.bundle.js → 23.e3ca5b7bb2cee4f9467f.bundle.js} +3 -3
- package/dist/{23.32f2701680565c5d107b.bundle.js.map → 23.e3ca5b7bb2cee4f9467f.bundle.js.map} +1 -1
- package/dist/{24.8dd957168a8be963b393.bundle.js → 24.d5ea0f435b896dc12709.bundle.js} +2 -2
- package/dist/{24.8dd957168a8be963b393.bundle.js.map → 24.d5ea0f435b896dc12709.bundle.js.map} +1 -1
- package/dist/25.5b3feb79a7be0ca1f4ad.bundle.js +2 -0
- package/dist/25.5b3feb79a7be0ca1f4ad.bundle.js.map +1 -0
- package/dist/26.c4983d9f3009f41beb11.bundle.js +2 -0
- package/dist/26.c4983d9f3009f41beb11.bundle.js.map +1 -0
- package/dist/27.04085d1d15db39ca4a36.bundle.js +2 -0
- package/dist/27.04085d1d15db39ca4a36.bundle.js.map +1 -0
- package/dist/{28.b1c15ce7633c501836c5.bundle.js → 28.57b84065ebe40bb45f72.bundle.js} +2 -2
- package/dist/{28.b1c15ce7633c501836c5.bundle.js.map → 28.57b84065ebe40bb45f72.bundle.js.map} +1 -1
- package/dist/{29.66259b8a21bbb5431a06.bundle.js → 29.959ae6b366d15d0ddea9.bundle.js} +2 -2
- package/dist/{29.66259b8a21bbb5431a06.bundle.js.map → 29.959ae6b366d15d0ddea9.bundle.js.map} +1 -1
- package/dist/{3.9eb2c7cced9d8b971c99.bundle.js → 3.26d967229917c7c5cdfb.bundle.js} +2 -2
- package/dist/{3.9eb2c7cced9d8b971c99.bundle.js.map → 3.26d967229917c7c5cdfb.bundle.js.map} +1 -1
- package/dist/{30.4d469715c2f2d1028b4b.bundle.js → 30.3592aaa1063719853218.bundle.js} +2 -2
- package/dist/30.3592aaa1063719853218.bundle.js.map +1 -0
- package/dist/{31.d810abed46d7c73ade7f.bundle.js → 31.c808da656c9ee6b7e84e.bundle.js} +2 -2
- package/dist/{31.d810abed46d7c73ade7f.bundle.js.map → 31.c808da656c9ee6b7e84e.bundle.js.map} +1 -1
- package/dist/{32.4f4c8e24d97a9d315335.bundle.js → 32.92b02260015995b4f777.bundle.js} +2 -2
- package/dist/{32.4f4c8e24d97a9d315335.bundle.js.map → 32.92b02260015995b4f777.bundle.js.map} +1 -1
- package/dist/{33.ea3b66016bbeff928fc3.bundle.js → 33.479162c943ca9a1982aa.bundle.js} +2 -2
- package/dist/33.479162c943ca9a1982aa.bundle.js.map +1 -0
- package/dist/34.22a096bd891109c927f5.bundle.js +2 -0
- package/dist/34.22a096bd891109c927f5.bundle.js.map +1 -0
- package/dist/{35.b9183a8ffba2bbd8daa1.bundle.js → 35.9c81c96cc1621f9468aa.bundle.js} +2 -2
- package/dist/{35.b9183a8ffba2bbd8daa1.bundle.js.map → 35.9c81c96cc1621f9468aa.bundle.js.map} +1 -1
- package/dist/{36.d444f7ad7724d126da1c.bundle.js → 36.cee947247d32cdcec00e.bundle.js} +2 -2
- package/dist/{36.d444f7ad7724d126da1c.bundle.js.map → 36.cee947247d32cdcec00e.bundle.js.map} +1 -1
- package/dist/{37.e82ed70c9f1ccac1fa36.bundle.js → 37.42e443af5752a63a28fe.bundle.js} +2 -2
- package/dist/{37.e82ed70c9f1ccac1fa36.bundle.js.map → 37.42e443af5752a63a28fe.bundle.js.map} +1 -1
- package/dist/{38.93c5a81548a3294efd9d.bundle.js → 38.5fff5c171cdd2563aad1.bundle.js} +2 -2
- package/dist/{38.93c5a81548a3294efd9d.bundle.js.map → 38.5fff5c171cdd2563aad1.bundle.js.map} +1 -1
- package/dist/{39.30dddbc6461137994eb4.bundle.js → 39.91c49550b6e2d11104fa.bundle.js} +2 -2
- package/dist/{39.30dddbc6461137994eb4.bundle.js.map → 39.91c49550b6e2d11104fa.bundle.js.map} +1 -1
- package/dist/4.786e6f1de67e5c6289a3.bundle.js +2 -0
- package/dist/4.786e6f1de67e5c6289a3.bundle.js.map +1 -0
- package/dist/{40.ae6db480b8323937451c.bundle.js → 40.a7e0220eb0c8a125abde.bundle.js} +2 -2
- package/dist/{40.ae6db480b8323937451c.bundle.js.map → 40.a7e0220eb0c8a125abde.bundle.js.map} +1 -1
- package/dist/41.1258b9502ba9383894d7.bundle.js +2 -0
- package/dist/{41.ba8cb2fb7f46ccb2ab28.bundle.js.map → 41.1258b9502ba9383894d7.bundle.js.map} +1 -1
- package/dist/{43.8d096939ee87946076e0.bundle.js → 43.86f9220f4f79feec5b27.bundle.js} +2 -2
- package/dist/{43.8d096939ee87946076e0.bundle.js.map → 43.86f9220f4f79feec5b27.bundle.js.map} +1 -1
- package/dist/{47.92a64d48c14c1ae82934.bundle.js → 47.fca0edd51becf34c06b7.bundle.js} +2 -2
- package/dist/{47.92a64d48c14c1ae82934.bundle.js.map → 47.fca0edd51becf34c06b7.bundle.js.map} +1 -1
- package/dist/{48.4b57a948edab2d3b9c55.bundle.js → 48.e495edf3c48e1b2fc052.bundle.js} +2 -2
- package/dist/{48.4b57a948edab2d3b9c55.bundle.js.map → 48.e495edf3c48e1b2fc052.bundle.js.map} +1 -1
- package/dist/49.80591a5efda019de6e4a.bundle.js +2 -0
- package/dist/49.80591a5efda019de6e4a.bundle.js.map +1 -0
- package/dist/{53.4b8ed1b79c1c20cdadd4.bundle.js → 53.c29678970b0cb8aa4b47.bundle.js} +2 -2
- package/dist/{53.4b8ed1b79c1c20cdadd4.bundle.js.map → 53.c29678970b0cb8aa4b47.bundle.js.map} +1 -1
- package/dist/{55.751acc0e54255fa3ace7.bundle.js → 55.427172af3ba7612f747a.bundle.js} +2 -2
- package/dist/{55.751acc0e54255fa3ace7.bundle.js.map → 55.427172af3ba7612f747a.bundle.js.map} +1 -1
- package/dist/{57.677c1eebf6a003639fff.bundle.js → 57.41b09f5fa3ee623aab83.bundle.js} +2 -2
- package/dist/{57.677c1eebf6a003639fff.bundle.js.map → 57.41b09f5fa3ee623aab83.bundle.js.map} +1 -1
- package/dist/{58.2c460e480eefb1a02aea.bundle.js → 58.ce5a29dded68f58c53b4.bundle.js} +2 -2
- package/dist/{58.2c460e480eefb1a02aea.bundle.js.map → 58.ce5a29dded68f58c53b4.bundle.js.map} +1 -1
- package/dist/{59.b8e9155530acba27a6fa.bundle.js → 59.10efdeff3a8ef9e5733d.bundle.js} +2 -2
- package/dist/{59.b8e9155530acba27a6fa.bundle.js.map → 59.10efdeff3a8ef9e5733d.bundle.js.map} +1 -1
- package/dist/{60.27e731a670680751538c.bundle.js → 60.97fb695857f6241ae612.bundle.js} +2 -2
- package/dist/{60.27e731a670680751538c.bundle.js.map → 60.97fb695857f6241ae612.bundle.js.map} +1 -1
- package/dist/{61.fce8a2436742c2e20032.bundle.js → 61.5d71ec3fe0cda230482b.bundle.js} +2 -2
- package/dist/{61.fce8a2436742c2e20032.bundle.js.map → 61.5d71ec3fe0cda230482b.bundle.js.map} +1 -1
- package/dist/{62.9e101a1894ee0f9a48be.bundle.js → 62.d53d104f74f9fbdacb35.bundle.js} +2 -2
- package/dist/{62.9e101a1894ee0f9a48be.bundle.js.map → 62.d53d104f74f9fbdacb35.bundle.js.map} +1 -1
- package/dist/{63.3ffdfd6f35fe62ea729c.bundle.js → 63.46514dd9cf756bd0e831.bundle.js} +2 -2
- package/dist/{63.3ffdfd6f35fe62ea729c.bundle.js.map → 63.46514dd9cf756bd0e831.bundle.js.map} +1 -1
- package/dist/{65.96a1f2f3c83a29e2c6c3.bundle.js → 65.401f44aaddb8aec6be1e.bundle.js} +2 -2
- package/dist/{65.96a1f2f3c83a29e2c6c3.bundle.js.map → 65.401f44aaddb8aec6be1e.bundle.js.map} +1 -1
- package/dist/{66.cf37216fb6f8e53cef2b.bundle.js → 66.7a1e4093247d23b65387.bundle.js} +2 -2
- package/dist/{66.cf37216fb6f8e53cef2b.bundle.js.map → 66.7a1e4093247d23b65387.bundle.js.map} +1 -1
- package/dist/{69.60ff11762016829be80d.bundle.js → 69.1944a1afebe9115c9262.bundle.js} +2 -2
- package/dist/{69.60ff11762016829be80d.bundle.js.map → 69.1944a1afebe9115c9262.bundle.js.map} +1 -1
- package/dist/7.0d2811d01a379d8b75fb.bundle.js +3 -0
- package/dist/7.0d2811d01a379d8b75fb.bundle.js.map +1 -0
- package/dist/{70.f86421bf02a9bfda5b95.bundle.js → 70.84500509fe2b0d19ab93.bundle.js} +2 -2
- package/dist/{70.f86421bf02a9bfda5b95.bundle.js.map → 70.84500509fe2b0d19ab93.bundle.js.map} +1 -1
- package/dist/{76.fa9e5d02f7e1367b9b29.bundle.js → 76.2fa18e115678c4e24682.bundle.js} +2 -2
- package/dist/{76.fa9e5d02f7e1367b9b29.bundle.js.map → 76.2fa18e115678c4e24682.bundle.js.map} +1 -1
- package/dist/8.7209929899c18f8a4580.bundle.js +2 -0
- package/dist/8.7209929899c18f8a4580.bundle.js.map +1 -0
- package/dist/{80.37504cf0c1e5ad897478.bundle.js → 80.83e56da7d7a69fc34eed.bundle.js} +2 -2
- package/dist/{80.37504cf0c1e5ad897478.bundle.js.map → 80.83e56da7d7a69fc34eed.bundle.js.map} +1 -1
- package/dist/{82.9b4d4dc326055aa47e04.bundle.js → 82.74d50036c210cb10b7f5.bundle.js} +2 -2
- package/dist/{82.9b4d4dc326055aa47e04.bundle.js.map → 82.74d50036c210cb10b7f5.bundle.js.map} +1 -1
- package/dist/{84.fab513b88806deb0981a.bundle.js → 84.7f42dd9d7dc01baaf465.bundle.js} +2 -2
- package/dist/{84.fab513b88806deb0981a.bundle.js.map → 84.7f42dd9d7dc01baaf465.bundle.js.map} +1 -1
- package/dist/{86.b319a8b9fcabecd7a6c7.bundle.js → 86.581cbc54b6c6b6ea9f19.bundle.js} +2 -2
- package/dist/{86.b319a8b9fcabecd7a6c7.bundle.js.map → 86.581cbc54b6c6b6ea9f19.bundle.js.map} +1 -1
- package/dist/{87.765567c0cbe89cbdb03c.bundle.js → 87.3606797303ead8dc2879.bundle.js} +2 -2
- package/dist/{87.765567c0cbe89cbdb03c.bundle.js.map → 87.3606797303ead8dc2879.bundle.js.map} +1 -1
- package/dist/{88.50c46652774325bffad3.bundle.js → 88.f5b8f83e57c9bea3c137.bundle.js} +2 -2
- package/dist/{88.50c46652774325bffad3.bundle.js.map → 88.f5b8f83e57c9bea3c137.bundle.js.map} +1 -1
- package/dist/{89.91c58e1902b0f444b068.bundle.js → 89.f9b4c4ddff2c0b5b70f7.bundle.js} +2 -2
- package/dist/{89.91c58e1902b0f444b068.bundle.js.map → 89.f9b4c4ddff2c0b5b70f7.bundle.js.map} +1 -1
- package/dist/{9.16a945b967e9a52bf535.bundle.js → 9.6a95a5c1eec963050422.bundle.js} +2 -2
- package/dist/{9.16a945b967e9a52bf535.bundle.js.map → 9.6a95a5c1eec963050422.bundle.js.map} +1 -1
- package/dist/{90.e12e77898d6341e59d8f.bundle.js → 90.4d42ba583fbc1d63d3d2.bundle.js} +2 -2
- package/dist/{90.e12e77898d6341e59d8f.bundle.js.map → 90.4d42ba583fbc1d63d3d2.bundle.js.map} +1 -1
- package/dist/95.1f83b03f48326a6cec45.bundle.js +2 -0
- package/dist/{95.decfcd3477dee353025b.bundle.js.map → 95.1f83b03f48326a6cec45.bundle.js.map} +1 -1
- package/dist/{bundle.6ce2d745fe23f2a6d129.bundle.js → bundle.1a982e7b3e2d9d06a802.bundle.js} +5 -5
- package/dist/bundle.1a982e7b3e2d9d06a802.bundle.js.map +1 -0
- package/dist/css/graphs-vizualizations.css +9 -1
- package/dist/css/lib/yasr.css +1 -0
- package/dist/css/yasr.custom.css +9 -0
- package/dist/index.html +4 -4
- package/dist/js/angular/core/directives/queryeditor/templates/query-editor.html +1 -0
- package/dist/js/angular/core/directives/rdfresourcesearch/templates/rdfResourceSearchTemplate.html +1 -1
- package/dist/{main.ea86ac1b6d636ab25dc7.css → main.db108895fbac32ad7e7b.css} +1 -1
- package/dist/pages/autocomplete.html +1 -1
- package/dist/pages/choose-repository-type.html +1 -1
- package/dist/pages/clusterInfo.html +1 -1
- package/dist/pages/create-index.html +4 -4
- package/dist/pages/dependencies.html +1 -1
- package/dist/pages/domainRangeInfo.html +2 -2
- package/dist/pages/edit.html +1 -1
- package/dist/pages/explore.html +1 -1
- package/dist/pages/export.html +1 -1
- package/dist/pages/find.html +1 -1
- package/dist/pages/graph-config/saveGraphConfig.html +11 -11
- package/dist/pages/graphs-visualizations.html +20 -10
- package/dist/pages/import.html +1 -1
- package/dist/pages/jdbc-create.html +5 -5
- package/dist/pages/monitor/queries.html +1 -1
- package/dist/pages/monitor/resources.html +2 -2
- package/dist/pages/namespaces.html +2 -2
- package/dist/pages/rdfClassHierarchyInfo.html +7 -7
- package/dist/pages/rdfrank.html +2 -2
- package/dist/pages/repositories.html +2 -2
- package/dist/pages/repository.html +2 -2
- package/dist/pages/similarity-indexes.html +1 -1
- package/dist/pages/sparql-template-create.html +5 -5
- package/dist/pages/sparql.html +3 -3
- package/dist/pages/webapi.html +2 -2
- package/dist/res/swagger/index.html +25 -25
- package/package.json +1 -1
- package/dist/0.21974a2453b9a92dec33.bundle.js.map +0 -1
- package/dist/12.449fb5148a68a44ba324.bundle.js.map +0 -1
- package/dist/13.77a8eae45bc4cda5fae7.bundle.js +0 -4
- package/dist/13.77a8eae45bc4cda5fae7.bundle.js.map +0 -1
- package/dist/14.a1d84445382b665e13e0.bundle.js +0 -2
- package/dist/14.a1d84445382b665e13e0.bundle.js.map +0 -1
- package/dist/15.73ffeb044255abbac7bf.bundle.js +0 -2
- package/dist/15.73ffeb044255abbac7bf.bundle.js.map +0 -1
- package/dist/17.4b048ae019a8d2fd5b46.bundle.js.map +0 -1
- package/dist/22.a3b52347055f1adac9ce.bundle.js +0 -2
- package/dist/22.a3b52347055f1adac9ce.bundle.js.map +0 -1
- package/dist/25.34da4f496fc62f2dae9b.bundle.js +0 -2
- package/dist/25.34da4f496fc62f2dae9b.bundle.js.map +0 -1
- package/dist/26.02814d2ed726f5a71d4e.bundle.js +0 -2
- package/dist/26.02814d2ed726f5a71d4e.bundle.js.map +0 -1
- package/dist/27.827ef7f030a5501be29a.bundle.js +0 -2
- package/dist/27.827ef7f030a5501be29a.bundle.js.map +0 -1
- package/dist/30.4d469715c2f2d1028b4b.bundle.js.map +0 -1
- package/dist/33.ea3b66016bbeff928fc3.bundle.js.map +0 -1
- package/dist/34.620159c2b04af0a88d1b.bundle.js +0 -2
- package/dist/34.620159c2b04af0a88d1b.bundle.js.map +0 -1
- package/dist/4.6a8bdb4c9048dd910bfd.bundle.js +0 -2
- package/dist/4.6a8bdb4c9048dd910bfd.bundle.js.map +0 -1
- package/dist/41.ba8cb2fb7f46ccb2ab28.bundle.js +0 -2
- package/dist/49.71f6e0f6f3284bf63cab.bundle.js +0 -2
- package/dist/49.71f6e0f6f3284bf63cab.bundle.js.map +0 -1
- package/dist/7.036cd4322fa473fb187a.bundle.js +0 -3
- package/dist/7.036cd4322fa473fb187a.bundle.js.map +0 -1
- package/dist/8.46db359ed59a04d3799b.bundle.js +0 -2
- package/dist/8.46db359ed59a04d3799b.bundle.js.map +0 -1
- package/dist/95.decfcd3477dee353025b.bundle.js +0 -2
- package/dist/bundle.6ce2d745fe23f2a6d129.bundle.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack:///./src/js/lib/FileSaver-patch.js","webpack:///(webpack)/buildin/amd-define.js","webpack:///(webpack)/buildin/amd-options.js","webpack:///./src/js/angular/utils/file-types.js","webpack:///./src/js/angular/core/directives/paginations.js","webpack:///./src/js/angular/export/controllers.js","webpack:///./src/js/angular/export/app.js"],"names":["saveAs","view","navigator","test","userAgent","doc","document","get_URL","URL","webkitURL","save_link","createElementNS","webkit_req_fs","webkitRequestFileSystem","req_fs","requestFileSystem","mozRequestFileSystem","throw_outside","ex","setImmediate","setTimeout","fs_min_size","revoke","file","revoker","revokeObjectURL","remove","chrome","dispatch","filesaver","event_types","event","i","concat","length","listener","call","auto_bom","blob","type","Blob","FileSaver","name","object_url","target_view","slice","this","blob_changed","dispatch_all","split","fs_error","createObjectURL","location","href","undefined","open","safari","readyState","DONE","abortable","func","apply","arguments","create_if_not_found","create","exclusive","INIT","download","node","MouseEvent","dispatchEvent","webkitSlice","size","TEMPORARY","fs","root","getDirectory","dir","save","getFile","createWriter","writer","onwriteend","toURL","onerror","error","code","ABORT_ERR","forEach","write","abort","WRITING","NOT_FOUND_ERR","FS_proto","prototype","msSaveOrOpenBlob","onwritestart","onprogress","onwrite","onabort","self","window","content","module","exports","Error","__webpack_amd_options__","angular","value","extension","directive","template","controller","$scope","$http","$location","$timeout","ModalService","filterFilter","$repositories","toastr","RDF4JRepositoriesRestService","FileTypes","getActiveRepository","exportFormats","deleting","showExportDDTooltip","page","pageSize","pageSizeOptions","displayGraphs","exportFilter","export","exportMultipleGraphs","repoExportFormat","selectedGraphs","exportGraphs","$watch","getGraphs","selectedAll","changePageSize","isShacl","iri","loader","success","data","results","bindings","unshift","contextID","graphsByValue","Object","keys","key","binding","uri","encodeURIComponent","clearUri","exportUri","longName","graphs","filteredGraphs","copy","matchedElements","status","msg","getError","setRepository","onGraphSearch","deselectAll","filterResults","item","indexOf","push","downloadExport","downloadUrl","format","url","auth","localStorage","getItem","openExportDDTooltip","$","trigger","exportRepo","openSimpleModal","title","message","warning","result","then","startDownload","hasMultipleSelected","_","isEmpty","index","exportSelectedGraphs","contextStr","substring","element","find","valueOfFilteredGraphsButton","innerHTML","trim","valueOfFilteredGraphs","changePagination","isDefined","removeClass","checkAll","dropRepository","canWriteActiveRepo","addStatements","err","dropContext","ctx","updateResults","dropGraph","selectedGraphsForDelete","counterOfClearedGraphs","dropSelectedGraphs","config","$tooltipProvider","setTriggers"],"mappings":"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","file":"17.4b048ae019a8d2fd5b46.bundle.js","sourcesContent":["/* FileSaver.js\n * A saveAs() FileSaver implementation.\n * 2015-05-07.2\n *\n * By Eli Grey, http://eligrey.com\n * License: X11/MIT\n * See https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md\n */\n\n/*global self */\n/*jslint bitwise: true, indent: 4, laxbreak: true, laxcomma: true, smarttabs: true, plusplus: true */\n\n/*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */\n\nvar saveAs = saveAs || (function(view) {\n\t\"use strict\";\n\t// IE <10 is explicitly unsupported\n\tif (typeof navigator !== \"undefined\" && /MSIE [1-9]\\./.test(navigator.userAgent)) {\n\t\treturn;\n\t}\n\tvar\n\t\t doc = view.document\n\t\t // only get URL when necessary in case Blob.js hasn't overridden it yet\n\t\t, get_URL = function() {\n\t\t\treturn view.URL || view.webkitURL || view;\n\t\t}\n\t\t, save_link = doc.createElementNS(\"http://www.w3.org/1999/xhtml\", \"a\")\n\t\t, can_use_save_link = \"download\" in save_link\n\t\t, click = function(node) {\n\t\t\tvar event = new MouseEvent(\"click\");\n\t\t\tnode.dispatchEvent(event);\n\t\t}\n\t\t, webkit_req_fs = view.webkitRequestFileSystem\n\t\t, req_fs = view.requestFileSystem || webkit_req_fs || view.mozRequestFileSystem\n\t\t, throw_outside = function(ex) {\n\t\t\t(view.setImmediate || view.setTimeout)(function() {\n\t\t\t\tthrow ex;\n\t\t\t}, 0);\n\t\t}\n\t\t, force_saveable_type = \"application/octet-stream\"\n\t\t, fs_min_size = 0\n\t\t// See https://code.google.com/p/chromium/issues/detail?id=375297#c7 and\n\t\t// https://github.com/eligrey/FileSaver.js/commit/485930a#commitcomment-8768047\n\t\t// for the reasoning behind the timeout and revocation flow\n\t\t, arbitrary_revoke_timeout = 500 // in ms\n\t\t, revoke = function(file) {\n\t\t\tvar revoker = function() {\n\t\t\t\tif (typeof file === \"string\") { // file is an object URL\n\t\t\t\t\tget_URL().revokeObjectURL(file);\n\t\t\t\t} else { // file is a File\n\t\t\t\t\tfile.remove();\n\t\t\t\t}\n\t\t\t};\n\t\t\tif (view.chrome) {\n\t\t\t\trevoker();\n\t\t\t} else {\n\t\t\t\tsetTimeout(revoker, arbitrary_revoke_timeout);\n\t\t\t}\n\t\t}\n\t\t, dispatch = function(filesaver, event_types, event) {\n\t\t\tevent_types = [].concat(event_types);\n\t\t\tvar i = event_types.length;\n\t\t\twhile (i--) {\n\t\t\t\tvar listener = filesaver[\"on\" + event_types[i]];\n\t\t\t\tif (typeof listener === \"function\") {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tlistener.call(filesaver, event || filesaver);\n\t\t\t\t\t} catch (ex) {\n\t\t\t\t\t\tthrow_outside(ex);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t, auto_bom = function(blob) {\n\t\t\t// prepend BOM for UTF-8 XML and text/* types (including HTML)\n\t\t\tif (/^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(blob.type)) {\n\t\t\t\treturn new Blob([\"\\ufeff\", blob], {type: blob.type});\n\t\t\t}\n\t\t\treturn blob;\n\t\t}\n\t\t, FileSaver = function(blob, name) {\n\t\t\tblob = auto_bom(blob);\n\t\t\t// First try a.download, then web filesystem, then object URLs\n\t\t\tvar\n\t\t\t\t filesaver = this\n\t\t\t\t, type = blob.type\n\t\t\t\t, blob_changed = false\n\t\t\t\t, object_url\n\t\t\t\t, target_view\n\t\t\t\t, dispatch_all = function() {\n\t\t\t\t\tdispatch(filesaver, \"writestart progress write writeend\".split(\" \"));\n\t\t\t\t}\n\t\t\t\t// on any filesys errors revert to saving with object URLs\n\t\t\t\t, fs_error = function() {\n\t\t\t\t\t// don't create more object URLs than needed\n\t\t\t\t\tif (blob_changed || !object_url) {\n\t\t\t\t\t\tobject_url = get_URL().createObjectURL(blob);\n\t\t\t\t\t}\n\t\t\t\t\tif (target_view) {\n\t\t\t\t\t\ttarget_view.location.href = object_url;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar new_tab = view.open(object_url, \"_blank\");\n\t\t\t\t\t\tif (new_tab == undefined && typeof safari !== \"undefined\") {\n\t\t\t\t\t\t\t//Apple do not allow window.open, see http://bit.ly/1kZffRI\n\t\t\t\t\t\t\tview.location.href = object_url\n\t\t\t\t\t\t} \n\t\t\t\t\t}\n\t\t\t\t\tfilesaver.readyState = filesaver.DONE;\n\t\t\t\t\tdispatch_all();\n\t\t\t\t\trevoke(object_url);\n\t\t\t\t}\n\t\t\t\t, abortable = function(func) {\n\t\t\t\t\treturn function() {\n\t\t\t\t\t\tif (filesaver.readyState !== filesaver.DONE) {\n\t\t\t\t\t\t\treturn func.apply(this, arguments);\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\t, create_if_not_found = {create: true, exclusive: false}\n\t\t\t\t, slice\n\t\t\t;\n\t\t\tfilesaver.readyState = filesaver.INIT;\n\t\t\tif (!name) {\n\t\t\t\tname = \"download\";\n\t\t\t}\n\t\t\tif (save_link) {\n\t\t\t\tobject_url = get_URL().createObjectURL(blob);\n\t\t\t\t//window.open('data:attachment/csv;charset=utf-8,' + object_url);\n\t\t\t\tsave_link.href = object_url;\n\t\t\t\tsave_link.download = name;\n\t\t\t\tsetTimeout(function() {\n\t\t\t\t\tclick(save_link);\n\t\t\t\t\tdispatch_all();\n\t\t\t\t\trevoke(object_url);\n\t\t\t\t\tfilesaver.readyState = filesaver.DONE;\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Object and web filesystem URLs have a problem saving in Google Chrome when\n\t\t\t// viewed in a tab, so I force save with application/octet-stream\n\t\t\t// http://code.google.com/p/chromium/issues/detail?id=91158\n\t\t\t// Update: Google errantly closed 91158, I submitted it again:\n\t\t\t// https://code.google.com/p/chromium/issues/detail?id=389642\n\t\t\tif (view.chrome && type && type !== force_saveable_type) {\n\t\t\t\tslice = blob.slice || blob.webkitSlice;\n\t\t\t\tblob = slice.call(blob, 0, blob.size, force_saveable_type);\n\t\t\t\tblob_changed = true;\n\t\t\t}\n\t\t\t// Since I can't be sure that the guessed media type will trigger a download\n\t\t\t// in WebKit, I append .download to the filename.\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=65440\n\t\t\tif (webkit_req_fs && name !== \"download\") {\n\t\t\t\tname += \".download\";\n\t\t\t}\n\t\t\tif (type === force_saveable_type || webkit_req_fs) {\n\t\t\t\ttarget_view = view;\n\t\t\t}\n\t\t\tif (!req_fs) {\n\t\t\t\tfs_error();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tfs_min_size += blob.size;\n\t\t\treq_fs(view.TEMPORARY, fs_min_size, abortable(function(fs) {\n\t\t\t\tfs.root.getDirectory(\"saved\", create_if_not_found, abortable(function(dir) {\n\t\t\t\t\tvar save = function() {\n\t\t\t\t\t\tdir.getFile(name, create_if_not_found, abortable(function(file) {\n\t\t\t\t\t\t\tfile.createWriter(abortable(function(writer) {\n\t\t\t\t\t\t\t\twriter.onwriteend = function(event) {\n\t\t\t\t\t\t\t\t\ttarget_view.location.href = file.toURL();\n\t\t\t\t\t\t\t\t\tfilesaver.readyState = filesaver.DONE;\n\t\t\t\t\t\t\t\t\tdispatch(filesaver, \"writeend\", event);\n\t\t\t\t\t\t\t\t\trevoke(file);\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\twriter.onerror = function() {\n\t\t\t\t\t\t\t\t\tvar error = writer.error;\n\t\t\t\t\t\t\t\t\tif (error.code !== error.ABORT_ERR) {\n\t\t\t\t\t\t\t\t\t\tfs_error();\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\"writestart progress write abort\".split(\" \").forEach(function(event) {\n\t\t\t\t\t\t\t\t\twriter[\"on\" + event] = filesaver[\"on\" + event];\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\twriter.write(blob);\n\t\t\t\t\t\t\t\tfilesaver.abort = function() {\n\t\t\t\t\t\t\t\t\twriter.abort();\n\t\t\t\t\t\t\t\t\tfilesaver.readyState = filesaver.DONE;\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\tfilesaver.readyState = filesaver.WRITING;\n\t\t\t\t\t\t\t}), fs_error);\n\t\t\t\t\t\t}), fs_error);\n\t\t\t\t\t};\n\t\t\t\t\tdir.getFile(name, {create: false}, abortable(function(file) {\n\t\t\t\t\t\t// delete file if it already exists\n\t\t\t\t\t\tfile.remove();\n\t\t\t\t\t\tsave();\n\t\t\t\t\t}), abortable(function(ex) {\n\t\t\t\t\t\tif (ex.code === ex.NOT_FOUND_ERR) {\n\t\t\t\t\t\t\tsave();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tfs_error();\n\t\t\t\t\t\t}\n\t\t\t\t\t}));\n\t\t\t\t}), fs_error);\n\t\t\t}), fs_error);\n\t\t}\n\t\t, FS_proto = FileSaver.prototype\n\t\t, saveAs = function(blob, name) {\n\t\t\treturn new FileSaver(blob, name);\n\t\t}\n\t;\n\t// IE 10+ (native saveAs)\n\tif (typeof navigator !== \"undefined\" && navigator.msSaveOrOpenBlob) {\n\t\treturn function(blob, name) {\n\t\t\treturn navigator.msSaveOrOpenBlob(auto_bom(blob), name);\n\t\t};\n\t}\n\n\tFS_proto.abort = function() {\n\t\tvar filesaver = this;\n\t\tfilesaver.readyState = filesaver.DONE;\n\t\tdispatch(filesaver, \"abort\");\n\t};\n\tFS_proto.readyState = FS_proto.INIT = 0;\n\tFS_proto.WRITING = 1;\n\tFS_proto.DONE = 2;\n\n\tFS_proto.error =\n\tFS_proto.onwritestart =\n\tFS_proto.onprogress =\n\tFS_proto.onwrite =\n\tFS_proto.onabort =\n\tFS_proto.onerror =\n\tFS_proto.onwriteend =\n\t\tnull;\n\n\treturn saveAs;\n}(\n\t typeof self !== \"undefined\" && self\n\t|| typeof window !== \"undefined\" && window\n\t|| this.content\n));\n// `self` is undefined in Firefox for Android content script context\n// while `this` is nsIContentFrameMessageManager\n// with an attribute `content` that corresponds to the window\n\nif (typeof module !== \"undefined\" && module.exports) {\n module.exports.saveAs = saveAs;\n} else if ((typeof define !== \"undefined\" && define !== null) && (define.amd != null)) {\n define([], function() {\n return saveAs;\n });\n}","module.exports = function() {\n\tthrow new Error(\"define cannot be used indirect\");\n};\n","/* globals __webpack_amd_options__ */\nmodule.exports = __webpack_amd_options__;\n","angular.module('graphdb.workbench.utils.filetypes', [])\n .value('FileTypes', [\n {name: 'JSON', type: 'application/rdf+json', extension: '.json'},\n {name: 'JSON-LD', type: 'application/ld+json', extension: '.jsonld'},\n {name: 'RDF-XML', type: 'application/rdf+xml', extension: '.rdf'},\n {name: 'N3', type: 'text/rdf+n3', extension: '.n3'},\n {name: 'N-Triples', type: 'text/plain', extension: '.nt'},\n {name: 'N-Quads', type: 'text/x-nquads', extension: '.nq'},\n {name: 'Turtle', type: 'text/turtle', extension: '.ttl'},\n {name: 'Turtle*', type: 'application/x-turtlestar', extension: '.ttls'},\n {name: 'TriX', type: 'application/trix', extension: '.trix'},\n {name: 'TriG', type: 'application/x-trig', extension: '.trig'},\n {name: 'TriG*', type: 'application/x-trigstar', extension: '.trigs'},\n {name: 'Binary RDF', type: 'application/x-binary-rdf', extension: '.brf'}\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/repositories.service';\nimport 'angular/core/services/jwt-auth.service';\nimport 'angular/utils/file-types';\n\nconst modules = [\n 'ngCookies',\n 'ui.bootstrap',\n 'toastr',\n 'graphdb.framework.core.services.repositories',\n 'graphdb.framework.core.services.jwtauth',\n 'graphdb.workbench.utils.filetypes'\n];\n\nconst exportCtrl = angular.module('graphdb.framework.impex.export.controllers', modules);\n\nexportCtrl.controller('ExportCtrl',\n ['$scope', '$http', '$location', '$timeout', 'ModalService', 'filterFilter', '$repositories', 'toastr', 'RDF4JRepositoriesRestService', 'FileTypes',\n function ($scope, $http, $location, $timeout, ModalService, filterFilter, $repositories, toastr, RDF4JRepositoriesRestService, FileTypes) {\n\n $scope.getActiveRepository = function () {\n return $repositories.getActiveRepository();\n };\n\n $scope.exportFormats = FileTypes;\n $scope.deleting = {};\n $scope.showExportDDTooltip = true;\n $scope.page = 1;\n $scope.pageSize = 10;\n $scope.pageSizeOptions = [10, 20, 50, 100];\n $scope.displayGraphs = [];\n $scope.exportFilter = '';\n $scope.export = true;\n $scope.exportMultipleGraphs = false;\n $scope.repoExportFormat = {\n name: 'TriG',\n type: 'application/x-trig',\n extension: '.trig'\n };\n $scope.selectedGraphs = {\n exportGraphs: {}\n };\n\n $scope.$watch(function () {\n return $repositories.getActiveRepository();\n }, function () {\n $scope.exportFilter = '';\n $scope.getGraphs();\n $scope.selectedAll = false;\n $timeout(function () {\n $scope.changePageSize(10);\n }, 100);\n });\n\n $scope.isShacl = function (iri) {\n return iri === \"http%3A%2F%2Frdf4j.org%2Fschema%2Frdf4j%23SHACLShapeGraph\";\n };\n\n /// <summary>Get Graphs that are part of the Active Repository.</summary>\n $scope.getGraphs = function () {\n if ($scope.getActiveRepository()) {\n $scope.loader = true;\n RDF4JRepositoriesRestService.getGraphs($scope.getActiveRepository()).success(function (data) {\n data.results.bindings.unshift({\n contextID: {\n type: 'default',\n value: 'The default graph'\n }\n });\n $scope.graphsByValue = {};\n Object.keys(data.results.bindings).forEach(function (key) {\n const binding = data.results.bindings[key];\n if (binding.contextID.type === 'bnode') {\n binding.contextID.value = '_:' + binding.contextID.value;\n } else if (binding.contextID.type === 'default') {\n binding.contextID.uri = encodeURIComponent('http://www.openrdf.org/schema/sesame#nil');\n binding.contextID.clearUri = 'DEFAULT';\n binding.contextID.exportUri = 'null';\n binding.contextID.longName = 'default graph';\n } else {\n binding.contextID.uri = encodeURIComponent(binding.contextID.value);\n binding.contextID.clearUri = 'GRAPH <' + binding.contextID.value + '>';\n binding.contextID.exportUri = encodeURIComponent('<' + binding.contextID.value + '>');\n binding.contextID.longName = 'named graph ' + binding.contextID.value;\n }\n $scope.graphsByValue[binding.contextID.value] = binding.contextID;\n });\n $scope.graphs = data.results.bindings;\n $scope.filteredGraphs = angular.copy($scope.graphs);\n $scope.displayGraphs = $scope.filteredGraphs.slice($scope.pageSize * ($scope.page - 1), $scope.pageSize * $scope.page);\n $scope.loader = false;\n $scope.selectedGraphs.exportGraphs = {};\n $scope.matchedElements = $scope.graphs;\n }).error(function (data, status) {\n const msg = getError(data, status);\n if (msg === 'There is no active location!') {\n $repositories.setRepository('');\n toastr.error(msg, 'Error');\n }\n $scope.loader = false;\n });\n } else {\n $scope.loader = false;\n }\n };\n\n $scope.onGraphSearch = function() {\n $scope.matchedElements = [];\n $scope.deselectAll();\n $scope.filterResults();\n };\n\n $scope.filterResults = function() {\n angular.forEach($scope.graphs, function (item) {\n if (item.contextID.value.indexOf($scope.exportFilter) !== -1) {\n $scope.matchedElements.push(item);\n }\n });\n };\n\n $scope.downloadExport = function (downloadUrl, format) {\n let url = downloadUrl + '&Accept=' + encodeURIComponent(format.type);\n const auth = localStorage.getItem('com.ontotext.graphdb.auth');\n if (auth) {\n url = url + '&authToken=' + encodeURIComponent(auth);\n }\n window.open(url);\n };\n\n /// <summary>Trigger the custom event for DD tooltip.</summary>\n $scope.openExportDDTooltip = function () {\n if ($scope.showExportDDTooltip) {\n $timeout(function () {\n $('#tooltipTarget').trigger('showExportDDTooltip');\n }, 0);\n $timeout(function () {\n $('#tooltipTarget').trigger('showExportDDTooltip');\n }, 3000);\n\n //Set to false so the tooltip shows only once\n $scope.showExportDDTooltip = false;\n\n }\n };\n\n /// <summary>Fill the hidden form and submit it to start download document.</summary>\n $scope.exportRepo = function (format, contextID) {\n if (format.type === 'application/rdf+xml' || format.type === 'text/plain' || format.type === 'text/turtle' || format.type === 'application/x-turtlestar' || format.type === 'text/rdf+n3') {\n ModalService.openSimpleModal({\n title: 'Warning',\n message: 'This format does not support graphs.<br>Graph information will not be available in the export.',\n warning: true\n }).result\n .then(function () {\n $scope.startDownload(format, contextID);\n });\n } else {\n $scope.startDownload(format, contextID);\n }\n };\n\n $scope.startDownload = function (format, contextID) {\n //If it's graph set the url for ?context=\n let downloadUrl;\n if (contextID) {\n downloadUrl = 'repositories/' + $scope.getActiveRepository() + '/statements?infer=false&context=' + $scope.graphsByValue[contextID.value].exportUri;\n } else {\n downloadUrl = 'repositories/' + $scope.getActiveRepository() + '/statements?infer=false';\n }\n $scope.downloadExport(downloadUrl, format);\n };\n\n $scope.hasMultipleSelected = function () {\n if (_.isEmpty($scope.selectedGraphs.exportGraphs)) {\n return !_.isEmpty($scope.selectedGraphs.exportGraphs);\n } else {\n for (const index in $scope.selectedGraphs.exportGraphs) {\n if ($scope.selectedGraphs.exportGraphs[index] === true) {\n return true;\n }\n }\n return false;\n }\n };\n\n $scope.exportSelectedGraphs = function (format) {\n let contextStr = '';\n for (const index in $scope.selectedGraphs.exportGraphs) {\n if ($scope.selectedGraphs.exportGraphs[index]) {\n contextStr += 'context=' + $scope.graphsByValue[index].exportUri + '&';\n }\n }\n\n if (contextStr) {\n const startDownload = function () {\n contextStr = contextStr.substring(0, contextStr.length - 1);\n const downloadUrl = 'repositories/' + $scope.getActiveRepository() + '/statements?infer=false&' + contextStr;\n $scope.downloadExport(downloadUrl, format);\n };\n\n if (format.type === 'application/rdf+xml' || format.type === 'text/plain' || format.type === 'text/turtle' || format.type === 'application/x-turtlestar' || format.type === 'text/rdf+n3') {\n ModalService.openSimpleModal({\n title: 'Warning',\n message: 'This format does not support graphs.<br>Graph information will not be available in the export.',\n warning: true\n }).result\n .then(function () {\n startDownload();\n });\n } else {\n startDownload();\n }\n } else {\n ModalService.openSimpleModal({\n title: 'Multiple graph export',\n message: 'Check graphs you want to export first.',\n warning: true\n });\n }\n };\n\n $scope.$watch('exportFilter', function () {\n $scope.filteredGraphs = filterFilter($scope.graphs, $scope.exportFilter);\n if ($scope.getActiveRepository() && angular.element(document).find('.btn.btn-secondary.btn-sm.dropdown-toggle span').length) {\n const valueOfFilteredGraphsButton = angular.element(document).find('.btn.btn-secondary.btn-sm.dropdown-toggle span')[0].innerHTML.trim();\n let valueOfFilteredGraphs;\n if (valueOfFilteredGraphsButton === 'All') {\n valueOfFilteredGraphs = $scope.filteredGraphs.length;\n }\n if ($scope.filteredGraphs && $scope.filteredGraphs.length > $scope.pageSize && valueOfFilteredGraphsButton !== 'All') {\n valueOfFilteredGraphs = $scope.pageSize;\n }\n $scope.changePageSize(valueOfFilteredGraphs);\n $scope.changePagination();\n }\n });\n\n $scope.changePagination = function () {\n $scope.selectedAll = false;\n if (angular.isDefined($scope.filteredGraphs)) {\n $scope.displayGraphs = $scope.filteredGraphs.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 if (size) {\n $scope.pageSize = size;\n $scope.changePagination();\n }\n if ($scope.filteredGraphs && $scope.exportFilter !== '') {\n $scope.displayGraphs = $scope.filteredGraphs;\n }\n };\n\n $scope.checkAll = function () {\n $scope.selectedAll = $scope.selectedAll || false;\n\n angular.forEach($scope.displayGraphs, function (item) {\n if (item.contextID.uri) {\n $scope.selectedGraphs.exportGraphs[item.contextID.value] = $scope.selectedAll;\n }\n });\n };\n\n $scope.deselectAll = function () {\n $scope.selectedAll = false;\n angular.forEach($scope.displayGraphs, function (item) {\n if (item.contextID.uri) {\n $scope.selectedGraphs.exportGraphs[item.contextID.value] = false;\n }\n });\n };\n\n $scope.dropRepository = function () {\n if (!$scope.canWriteActiveRepo()) {\n return;\n }\n $scope.deleting['*'] = true;\n\n ModalService.openSimpleModal({\n title: 'Confirm clear repository',\n message: 'Are you sure you want to clear repository ' + $repositories.getActiveRepository() + '?',\n warning: true\n }).result\n .then(function () {\n $timeout(function () {\n RDF4JRepositoriesRestService.addStatements($repositories.getActiveRepository(), 'update=CLEAR ALL')\n .then(function () {\n $scope.deleting['*'] = false;\n toastr.success('Cleared repository ' + $repositories.getActiveRepository());\n $scope.getGraphs();\n }, function (err) {\n $scope.deleting['*'] = false;\n toastr.error('Failed to clear repository ' + $repositories.getActiveRepository(), err);\n });\n }, 100);\n });\n };\n\n function dropGraph(ctx) {\n const longName = ctx.contextID.longName;\n $scope.deleting[ctx] = true;\n ModalService.openSimpleModal({\n title: 'Confirm clear graph',\n message: 'Are you sure you want to clear the ' + longName + '?',\n warning: true\n }).result\n .then(function () {\n $timeout(function () {\n const data = `update=CLEAR ${ctx.contextID.clearUri}`;\n RDF4JRepositoriesRestService.addStatements($repositories.getActiveRepository(), data)\n .then(function () {\n $scope.deleting[ctx] = false;\n toastr.success('Cleared the ' + longName);\n $scope.getGraphs();\n $scope.exportFilter = '';\n $scope.filteredGraphs.length = 0;\n $scope.updateResults();\n $scope.changePageSize($scope.pageSize);\n }, function (err) {\n $scope.deleting[ctx] = false;\n toastr.error('Failed to clear the ' + longName, getError(err, err.status));\n });\n }, 100);\n }, function () {\n $scope.deleting[ctx] = false;\n });\n }\n\n function dropSelectedGraphs(ctx) {\n const selectedGraphsForDelete = [];\n angular.forEach($scope.selectedGraphs.exportGraphs, function (value, key) {\n if (value) {\n selectedGraphsForDelete.push(key);\n }\n });\n\n if (selectedGraphsForDelete.length > 0) {\n $scope.deleting[ctx] = true;\n ModalService.openSimpleModal({\n title: 'Confirm clear graphs',\n message: 'Are you sure you want to clear the selected graphs?',\n warning: true\n }).result.then(function () {\n $timeout(function () {\n let counterOfClearedGraphs = 0;\n angular.forEach(selectedGraphsForDelete, function (contextID) {\n const data = `update=CLEAR ${$scope.graphsByValue[contextID].clearUri}`;\n RDF4JRepositoriesRestService.addStatements($repositories.getActiveRepository(), data)\n .then(function () {\n $scope.loader = true;\n $scope.selectedGraphs.exportGraphs[contextID] = false;\n delete $scope.selectedGraphs.exportGraphs[contextID];\n counterOfClearedGraphs++;\n if (selectedGraphsForDelete.length === counterOfClearedGraphs) {\n $scope.selectedAll = false;\n $scope.exportFilter = '';\n $scope.filteredGraphs.length = 0;\n $scope.getGraphs();\n $scope.updateResults();\n $scope.changePageSize($scope.pageSize);\n toastr.success('Cleared the selected graphs');\n $scope.loader = false;\n }\n }, function (err) {\n const longName = $scope.graphsByValue[contextID].longName;\n toastr.error('Failed to clear the ' + longName, getError(err, err.status));\n $scope.selectedAll = false;\n });\n });\n }, 100);\n }, function () {\n $scope.deleting[ctx] = false;\n });\n }\n }\n\n $scope.dropContext = function (ctx) {\n if (!$scope.canWriteActiveRepo()) {\n return;\n }\n if (angular.isDefined(ctx)) {\n dropGraph(ctx);\n } else {\n dropSelectedGraphs(ctx);\n }\n };\n }]);\n","import 'angular/core/services';\nimport 'angular/core/directives';\nimport 'angular/export/controllers';\nimport 'angular/core/directives/paginations';\nimport 'angular/core/services/repositories.service';\nimport 'lib/FileSaver-patch';\n\nconst modules = [\n 'ui.bootstrap',\n 'toastr',\n 'ngRoute',\n 'ngCookies',\n 'graphdb.framework.impex.export.controllers',\n 'graphdb.framework.core.directives.paginations',\n 'graphdb.framework.core.services.repositories',\n 'graphdb.framework.core.directives'\n];\n\nconst exportApp = angular.module('graphdb.framework.impex.export', modules);\n\nexportApp.config(['$tooltipProvider', function ($tooltipProvider) {\n //Add custom event for Export repository DD tooltip\n $tooltipProvider.setTriggers({'showExportDDTooltip': 'showExportDDTooltip'});\n}]);\n"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[22,41,79,80,95],{112:function(e,r,o){"use strict";o.r(r);o(2),o(7),o(13),o(41),o(73),o(74),o(8),o(75),o(26),o(27);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"])},39:function(e,r,o){"use strict";o.r(r);o(2),o(9);function t(e,r,o,t){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,"Error getting settings")}}))},e.getSettings(),e.setSettings=function(){e.loader=!0,t.toggleStatistics(e.settings.statistics).then((function(){o.close(),r.success("Settings have been saved")}),(function(e){const o=getError(e.data);r.error(o,"Error saving settings")}))},e.submitForm=function(){e.setSettings()},e.cancel=function(){o.dismiss("cancel")}}function i(e,r,o,t,i,s){e.loadingLicense=function(){return o.loadingLicense},o.checkLicenseStatus(),e.revertToFree=function(){s.openSimpleModal({title:"Confirm operation",message:"Reverting to a GraphDB Free license will make SE and EE repositories unusable. Are you sure?",warning:!0}).result.then((function(){r.unregisterLicense().success((function(){o.checkLicenseStatus()}))}))}}function s(e,r,o,t,i,s,n){e.$on("securityInit",(function(){n.isAdmin()||o.path("/license")})),e.sendLicenseToValidateAndActivate=c;const a=$(".license-textarea");function c(e){r.sendLicenseToValidate(e).success((function(o){"Invalid"!==o.licensee?(a.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=a.val());if(e){const o=atob(e.replace(/\s/g,""));r.registerLicense(o).success((function(){s.history.back()})).error((function(){i.error("Error registering GraphDB license")}))}else i.error("No license code available in textarea")}(o)}))}(o,e)):(a.val(""),i.error(o.message))})).error((function(){i.error("Invalid license")}))}e.$watch("currentFile",(function(){if(e.currentFile){const o=e.currentFile;r.extractFromLicenseFile(o).success((function(e){c(e)})).error((function(){i.error("Could not upload file")}))}})),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"],i.$inject=["$scope","LicenseRestService","$licenseService","toastr","$rootScope","ModalService"],s.$inject=["$scope","LicenseRestService","$location","$modal","toastr","$window","$jwtAuth"],n.$inject=["$scope","$modalInstance","license"],a.$inject=["$scope"]},73:function(e,r,o){"use strict";o.r(r);var t=o(41);function i(e,r,o,i){return{restrict:"E",scope:!1,templateUrl:"js/angular/repositories/templates/ontop-repo.html",link:function(s){s.selectedDriver={driverType:"generic",driverName:"Generic JDBC Driver",jdbc:{hostName:"",port:"",databaseName:"",userName:"",password:"",driverClass:"",url:""},urlTemplate:"",downloadDriverUrl:""},s.ontopRepoFileNames={},s.supportedDriversData=[],s.ontopRepoFileLabels={propertiesFile:"JDBC properties",obdaFile:"OBDA or R2RML",owlFile:"ontology file",constraintFile:"constraint file"},s.ontopRepoFiles=Object.keys(s.ontopRepoFileLabels),s.ontopRepoFiles.forEach((function(e){s.repositoryInfo.params[e]&&(s.ontopRepoFileNames[e]=Object(t.getFileName)(s.repositoryInfo.params[e].value))})),s.supportedDriverLabels={hostName:"Hostname",port:"Port",databaseName:"Database name",userName:"Username",password:"Password",driverClass:"Driver class",url:"URL"},s.propertiesFileParams=Object.keys(s.supportedDriverLabels),s.classAvailable=!1,s.genericDriverType="generic",s.propertiesFile="propertiesFile";const n=[s.propertiesFile,"obdaFile"],a=["hostName","databaseName","userName"];function c(){return s.selectedDriver.driverType!==s.genericDriverType?a.filter((function(e){return!s.selectedDriver.jdbc[e]})).length>0&&(o.error("Missing required field"),1)?Promise.reject("Missing required field"):(s.uploadFileLoader=!0,r.updatePropertiesFile(s.repositoryInfo.params[s.propertiesFile].value,s.selectedDriver.jdbc).success((function(e){s.ontopRepoFileNames[s.propertiesFile]=Object(t.getFileName)(e.fileLocation),s.repositoryInfo.params[s.propertiesFile].value=e.fileLocation,s.uploadFileLoader=!1})).error((function(e){l("Error",e),s.uploadFileLoader=!1}))):Promise.resolve()}function l(e,r){const t=getError(r);o.error(t,e)}s.loadDriverByClass=function(e){const r=s.supportedDriversData.find(r=>r.driverClass===e);return r&&s.copyDriverProperties(r),r},s.selectDriverByType=function(e){s.copyDriverProperties(s.supportedDriversData.find(r=>r.driverType===e)),s.concatURL("hostName",s)},s.copyDriverProperties=function(e){s.selectedDriver.driverType=e.driverType,s.selectedDriver.jdbc.driverClass=e.driverClass,s.selectedDriver.jdbc.url=e.urlTemplate,s.selectedDriver.urlTemplate=e.urlTemplate,s.selectedDriver.downloadDriverUrl=e.downloadDriverUrl,s.selectedDriver.portRequired=e.portRequired,s.classAvailable=e.classAvailable},s.isReadOnly=function(e){return"driverClass"===e||"url"===e},s.editFile=function(o){e.open({templateUrl:"js/angular/templates/modal/editRepoFile.html",controller:"EditRepositoryFileCtrl",resolve:{file:function(){return s.repositoryInfo.params[o]?s.repositoryInfo.params[o].value:""}}}).result.then((function(e){r.updateRepositoryFileContent(e.fileLocation,e.content).success((function(e){s.ontopRepoFileNames[o]=Object(t.getFileName)(e.fileLocation),s.repositoryInfo.params[o].value=e.fileLocation})).error((function(e){l("Error",e)}))}))},s.uploadOntopRepoFile=function(e,r){e&&e.length&&(s.uploadFile=e[0],s.uploadFileLoader=!0,i.upload({url:"rest/repositories/uploadFile",data:{uploadFile:s.uploadFile}}).success((function(e){e.success?(s.ontopRepoFileNames[r]=s.uploadFile.name,s.repositoryInfo.params[r].value=e.fileLocation):o.error(e.errorMessage),s.uploadFileLoader=!1})).error((function(e){l("Error",e),s.uploadFile="",s.uploadFileLoader=!1})))},s.concatURL=function(e){if("hostName"===e||"port"===e||"databaseName"===e){let e=s.selectedDriver.urlTemplate;s.selectedDriver.jdbc.hostName&&(e=s.selectedDriver.jdbc.port?e.replace("{hostport}",`${s.selectedDriver.jdbc.hostName}:${s.selectedDriver.jdbc.port}`):e.replace("{hostport}",s.selectedDriver.jdbc.hostName)),s.selectedDriver.jdbc.databaseName&&(e=e.replace("{database}",s.selectedDriver.jdbc.databaseName)),s.selectedDriver.jdbc.url=e}},s.getInputType=function(e){switch(e){case"password":return"password";case"port":return"number";default:return"text"}},s.checkForRequiredOntopFiles=function(){return c().then((function(){return n.filter((function(e){return!s.repositoryInfo.params[e].value})).length>0?(o.error("Missing required ontop repo file"),Promise.reject("Missing required ontop repo file")):Promise.resolve()}))},s.validateOntopPropertiesConnection=function(){c().then((function(){r.validateOntopPropertiesConnection(s.repositoryInfo.params.propertiesFile).success((function(){o.success("Connection is successful")})).error((function(e){l("Failed to connect",e)}))}))},s.isOntopRepoFileUploaded=function(){return s.repositoryInfo.params.propertiesFile&&s.repositoryInfo.params.propertiesFile.value.length>0},s.isRequiredOntopRepoFile=function(e){return n.indexOf(e)>-1},s.isRequiredField=function(e){return a.indexOf(e)>-1||"port"===e&&s.selectedDriver.portRequired},s.getFieldTooltip=function(e){return"port"===e&&s.selectedDriver.portRequired&&(e="portIfRequired"),s.repoTooltips.ontop[e]},s.editOntopRepo=function(){s.checkForRequiredOntopFiles().then((function(){s.editRepository()})).catch((function(e){}))},s.createOntopRepo=function(){s.repositoryInfo.id?s.checkForRequiredOntopFiles().then((function(){s.createRepo()})).catch((function(e){})):o.error("Repository ID cannot be empty")},s.goBackToPrevious=function(){s.goBackToPreviousLocation()},r.getSupportedDriversData().success((function(e){s.supportedDriversData=e})).error((function(e){l("Error",e)})).then((function(){s.editRepoPage&&r.loadPropertiesFile(s.repositoryInfo.params[s.propertiesFile].value).success((function(e){s.loadDriverByClass(e.driverClass)&&(s.selectedDriver.jdbc.hostName=e.hostName,s.selectedDriver.jdbc.port=parseInt(e.port),s.selectedDriver.jdbc.databaseName=e.databaseName,s.selectedDriver.jdbc.userName=e.userName,s.selectedDriver.jdbc.password=e.password,s.selectedDriver.jdbc.url=e.url)})).error((function(e){l("Error",e),s.uploadFileLoader=!1}))}))}}}angular.module("graphdb.framework.repositories.ontop-repo.directive",[]).directive("ontopRepo",i),i.$inject=["$modal","RepositoriesRestService","toastr","Upload"]},74:function(e,r){function o(e,r,o,t,i){return{restrict:"E",scope:!1,templateUrl:"js/angular/repositories/templates/fedx-repo.html",link:function(t){const s="ResolvableRepository";function n(){for(const e of t.fedxMembers)t.knownRepos=t.knownRepos.filter((function(r){return e.repositoryServer?r.id!==e.repositoryName||r.location!==e.repositoryServer:r.id!==e.repositoryName||!r.local}))}function a(){return r.getRepositories().success((function(e){t.allLocalRepos=e.slice()})).error((function(e){const r=getError(e);o.error(r,"Error")})).then((function(){i.getLocations().success((function(e){t.locations=e.slice()})).error((function(e){const r=getError(e);o.error(r,"Error")})).then((function(){t.locations.forEach(e=>(function(e){return r.getRepositoriesFromKnownLocation(e).success((function(e){t.knownRepos=t.allLocalRepos.filter(e=>-1!==t.knownRepos.indexOf(e));for(const r of e)t.allAttachedRepos=t.allAttachedRepos.filter(e=>e.id!==r.id||e.location!==r.location);t.allAttachedRepos=t.allAttachedRepos.concat(e.slice()),t.knownRepos=t.knownRepos.concat(t.allAttachedRepos)})).error((function(e){const r=getError(e);o.error(r,"Error")}))})(e.uri).then((function(){t.editRepoPage&&(t.fedxMembers=t.repositoryInfo.params.member.value.slice()),n()})))}))}))}t.fedxMembers=[],t.knownRepos=[],t.allLocalRepos=[],t.allAttachedRepos=[],t.locations=[],t.setWritableRepo=function(e){let r=t.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)},t.getActiveClass=function(e){return"true"===e.writable?" active":""},t.checkIfRepoExist=function(e){return e.store===s?t.allLocalRepos.find(r=>r.id===e.repositoryName):"RemoteRepository"!==e.store||(r=e,!t.locations.find(e=>e.uri===r.repositoryServer))||t.allAttachedRepos.find(r=>r.id===e.repositoryName&&r.location===e.repositoryServer);var r},t.getRepositoryServer=function(e){return e.local?"Local":e.location};const c=setInterval((function(){a()}),5e3);function l(e){t.fedxMembers.push(e),t.repositoryInfo.params.member.value=t.fedxMembers}function p(e){return"/"===e.slice(-1)?e.slice(0,-1):e}function d(){return t.editRepoPage&&!t.editRepoPage||!t.model.editMode}t.$on("$destroy",(function(){clearInterval(c)})),t.addMember=function(e){if("Local"===t.getRepositoryServer(e))t.addLocalMember(e);else{let r={store:"RemoteRepository",repositoryName:e.id,repositoryServer:e.location,username:"",password:"",supportsASKQueries:"true",writable:"false"};t.knownRepos=t.knownRepos.filter((function(e){return r.repositoryServer?e.id!==r.repositoryName||e.location!==r.repositoryServer:e.id!==r.repositoryName||!e.local})),l(r)}},t.addLocalMember=function(e){let r={store:s,repositoryName:e.id,repoType:e.type,respectRights:"true",writable:"false"};t.knownRepos=t.knownRepos.filter((function(e){return r.repositoryServer?e.id!==r.repositoryName||e.location!==r.repositoryServer:e.id!==r.repositoryName||!e.local})),l(r)},t.removeMember=function(e){e.store&&e.store===s?(t.fedxMembers=t.fedxMembers.filter(r=>r.repositoryName!==e.repositoryName||r.store!==e.store),t.allLocalRepos=[],a()):e.store&&"SPARQLEndpoint"===e.store?t.fedxMembers=t.fedxMembers.filter(r=>r.endpoint!==e.endpoint):e.store&&"NativeStore"===e.store?t.fedxMembers=t.fedxMembers.filter(r=>r.repositoryLocation!==e.repositoryLocation):e.store&&"RemoteRepository"===e.store&&(t.fedxMembers=t.fedxMembers.filter(r=>r.repositoryName!==e.repositoryName||r.repositoryServer!==e.repositoryServer||r.store!==e.store),t.allAttachedRepos=[],a()),t.repositoryInfo.params.member.value=t.fedxMembers},t.addRemoteMember=function(){t.mode="remote",t.model={editMode:!1,store:"RemoteRepository",repositoryName:"",repositoryServer:"",sparqlEndpoint:"",username:"",password:"",supportsASKQueries:"true",writable:"false"},t.$modalInstance=e.open({templateUrl:"js/angular/templates/modal/add-fedx-remote-repo.html",scope:t})},t.getMemberIcon=function(e){return e.repoType?"icon-repo-"+e.repoType:"NativeStore"===e.store?"icon-warning":"icon-link"},t.editFedXRepository=function(r){r.store===s?(t.mode="local",t.model={editMode:!0,store:r.store,respectRights:r.respectRights,repositoryName:r.repositoryName,repoType:r.repoType,writable:r.writable}):(t.mode="remote",t.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}),t.$modalInstance=e.open({templateUrl:"js/angular/templates/modal/add-fedx-remote-repo.html",scope:t})},t.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""}},t.cancel=function(){t.$modalInstance.dismiss("cancel")},t.ok=function(){let e;if(t.model.repositoryName&&t.model.store===s)e={store:s,repositoryName:t.model.repositoryName,repoType:t.model.repoType,respectRights:t.model.respectRights,writable:t.model.writable},t.fedxMembers=t.fedxMembers.filter(r=>r.repositoryName!==e.repositoryName||r.store!==e.store);else if(t.model.repositoryName&&"RemoteRepository"===t.model.store){if(e={store:"RemoteRepository",repositoryName:t.model.repositoryName,repositoryServer:p(t.model.repositoryServer),username:t.model.username,password:t.model.password,writable:t.model.writable},d()&&t.fedxMembers.find(r=>r.repositoryName===e.repositoryName&&r.repositoryServer===e.repositoryServer)){let r=t.resolveName(e);return o.error(`Repository ${r} already added as a FedX member`),void t.$modalInstance.close()}t.fedxMembers=t.fedxMembers.filter(r=>r.repositoryName!==e.repositoryName||r.repositoryServer!==e.repositoryServer)}else{if(e={store:"SPARQLEndpoint",endpoint:p(t.model.sparqlEndpoint),username:t.model.username,password:t.model.password,supportsASKQueries:t.model.supportsASKQueries,writable:t.model.writable},d()&&t.fedxMembers.find(r=>r.endpoint===e.endpoint)){let r=t.resolveName(e);return o.error(`SPARQL endpoint ${r} already added as a FedX member`),void t.$modalInstance.close()}t.fedxMembers=t.fedxMembers.filter(r=>r.endpoint!==e.endpoint)}l(e),n(),t.$modalInstance.close()},a()}}}angular.module("graphdb.framework.repositories.fedx-repo.directive",[]).directive("fedxRepo",o),o.$inject=["$modal","RepositoriesRestService","toastr","$timeout","LocationsRestService"]},75:function(e,r,o){"use strict";o.r(r);o(2),o(7),o(5),o(39),o(15),o(9),o(26),o(27);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"]}}]);
|
|
2
|
-
//# sourceMappingURL=22.a3b52347055f1adac9ce.bundle.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["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","webpack:///./src/js/angular/settings/app.js"],"names":["angular","module","ActiveLocationSettingsCtrl","$scope","toastr","$modalInstance","LicenseRestService","supportsStatistics","settings","statistics","getSettings","loader","getStatistics","then","response","data","status","msg","getError","error","setSettings","toggleStatistics","close","success","submitForm","cancel","dismiss","LicenseCtrl","$licenseService","$rootScope","ModalService","loadingLicense","checkLicenseStatus","revertToFree","openSimpleModal","title","message","warning","result","unregisterLicense","RegisterLicenseCtrl","$location","$modal","$window","$jwtAuth","$on","isAdmin","path","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","$inject","ontopRepoDirective","RepositoriesRestService","Upload","restrict","scope","link","selectedDriver","driverType","driverName","jdbc","hostName","port","databaseName","userName","password","driverClass","url","urlTemplate","downloadDriverUrl","ontopRepoFileNames","supportedDriversData","ontopRepoFileLabels","propertiesFile","obdaFile","owlFile","constraintFile","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","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","repoTooltips","ontop","editOntopRepo","editRepository","catch","err","createOntopRepo","id","createRepo","goBackToPrevious","goBackToPreviousLocation","getSupportedDriversData","editRepoPage","loadPropertiesFile","driverData","parseInt","directive","fedxRepoDirective","$timeout","LocationsRestService","LOCAL_REPO_STORE","populateKnownRepos","member","fedxMembers","knownRepos","repo","repositoryServer","repositoryName","location","local","getKnownRepos","getRepositories","allLocalRepos","slice","getLocations","locations","l","getRepositoriesFromKnownLocation","el","allAttachedRepos","concat","getRepositoriesFromLocation","uri","setWritableRepo","currentWritable","writable","store","JSON","stringify","getActiveClass","checkIfRepoExist","getRepositoryServer","localReposTimer","setInterval","updateMembers","push","removeEndingSlash","checkEditMode","model","editMode","clearInterval","addMember","repository","addLocalMember","username","supportsASKQueries","repoType","type","respectRights","removeMember","endpoint","repositoryLocation","addRemoteMember","mode","sparqlEndpoint","getMemberIcon","editFedXRepository","resolveName","resolvedName","config","$httpProvider","interceptors","run","isLicenseHardcoded"],"mappings":"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","file":"22.a3b52347055f1adac9ce.bundle.js","sourcesContent":["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'];\n\nfunction ActiveLocationSettingsCtrl($scope, toastr, $modalInstance, LicenseRestService) {\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, '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('Settings have been saved');\n }, function (response) {\n const msg = getError(response.data);\n toastr.error(msg, 'Error saving settings');\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'];\n\nfunction LicenseCtrl($scope, LicenseRestService, $licenseService, toastr, $rootScope, ModalService) {\n\n $scope.loadingLicense = function() {\n return $licenseService.loadingLicense;\n }\n\n $licenseService.checkLicenseStatus();\n\n $scope.revertToFree = function () {\n ModalService.openSimpleModal({\n title: 'Confirm operation',\n message: \"Reverting to a GraphDB Free license will make SE and EE repositories unusable. Are you sure?\",\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'];\n\nfunction RegisterLicenseCtrl($scope, LicenseRestService, $location, $modal, toastr, $window, $jwtAuth) {\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('Could not upload file');\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('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('Error registering GraphDB license');\n });\n } else {\n toastr.error('No license code available in textarea');\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'];\n\nfunction ontopRepoDirective($modal, RepositoriesRestService, toastr, Upload) {\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', constraintFile: 'constraint 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()\n .success(function (response) {\n $scope.supportedDriversData = response;\n }).error(function (response) {\n showErrorMsg('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).success(function(result) {\n $scope.ontopRepoFileNames[file] = getFileName(result.fileLocation);\n $scope.repositoryInfo.params[file].value = result.fileLocation;\n }).error(function (error) {\n showErrorMsg('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/uploadFile',\n data: {uploadFile: $scope.uploadFile}\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('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('Missing required ontop repo file');\n return Promise.reject('Missing required ontop repo file');\n }\n return Promise.resolve();\n });\n }\n\n function loadPropertiesFile() {\n RepositoriesRestService.loadPropertiesFile($scope.repositoryInfo.params[$scope.propertiesFile].value)\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('Error', data);\n $scope.uploadFileLoader = false;\n });\n }\n\n $scope.validateOntopPropertiesConnection = function () {\n updateProperties()\n .then(function () {\n RepositoriesRestService.validateOntopPropertiesConnection($scope.repositoryInfo.params.propertiesFile)\n .success(function () {\n toastr.success('Connection is successful');\n }).error(function (data) {\n showErrorMsg('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('Missing required field');\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('Missing required field');\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)\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('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 $scope.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('Repository ID cannot be empty');\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', '$timeout', 'LocationsRestService'];\n\nfunction fedxRepoDirective($modal, RepositoriesRestService, toastr, $timeout, LocationsRestService) {\n return {\n restrict: 'E',\n scope: false,\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.allLocalRepos = [];\n $scope.allAttachedRepos = [];\n $scope.locations = [];\n\n function getRepositories() {\n return RepositoriesRestService.getRepositories()\n .success(function (response) {\n $scope.allLocalRepos = response.slice();\n }).error(function (response) {\n const msg = getError(response);\n toastr.error(msg, 'Error');\n });\n }\n\n function getRepositoriesFromLocation(location) {\n return RepositoriesRestService.getRepositoriesFromKnownLocation(location)\n .success(function (response) {\n $scope.knownRepos = $scope.allLocalRepos.filter(el => $scope.knownRepos.indexOf(el) !== -1);\n for (const member of response) {\n $scope.allAttachedRepos = $scope.allAttachedRepos.filter(repo => repo.id !== member.id || repo.location !== member.location);\n }\n $scope.allAttachedRepos = $scope.allAttachedRepos.concat(response.slice());\n $scope.knownRepos = $scope.knownRepos.concat($scope.allAttachedRepos);\n }).error(function (response) {\n const msg = getError(response);\n toastr.error(msg, '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 return getRepositories()\n .then(function () {\n getAttachedRepositories();\n });\n }\n\n function getLocations() {\n return LocationsRestService.getLocations()\n .success(function(response) {\n $scope.locations = response.slice();\n }).error(function (response) {\n const msg = getError(response);\n toastr.error(msg, 'Error');\n });\n }\n\n function getAttachedRepositories() {\n return getLocations()\n .then(function() {\n $scope.locations.forEach(l => getRepositoriesFromLocation(l.uri)\n .then(function () {\n if ($scope.editRepoPage) {\n $scope.fedxMembers = $scope.repositoryInfo.params.member.value.slice();\n }\n populateKnownRepos();\n }))\n });\n }\n\n $scope.checkIfRepoExist = function (member) {\n if (member.store === LOCAL_REPO_STORE) {\n return $scope.allLocalRepos.find(repo => repo.id === member.repositoryName);\n } else if (member.store === REMOTE_REPO_STORE && checkIfLocationIsAttached(member)) {\n return $scope.allAttachedRepos.find(repo => repo.id === member.repositoryName && repo.location === member.repositoryServer);\n } else {\n return true;\n }\n }\n\n function checkIfLocationIsAttached(repo) {\n return $scope.locations.find(el => el.uri === repo.repositoryServer);\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 if ($scope.getRepositoryServer(repository) === \"Local\") {\n $scope.addLocalMember(repository);\n } else {\n let 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 $scope.knownRepos = $scope.knownRepos.filter(function (repo) {\n if (member.repositoryServer) {\n return repo.id !== member.repositoryName || repo.location !== member.repositoryServer;\n } else {\n return repo.id !== member.repositoryName || !repo.local;\n }\n });\n updateMembers(member);\n }\n }\n\n $scope.addLocalMember = function (repository) {\n let member = {\n store: LOCAL_REPO_STORE,\n repositoryName: repository.id,\n repoType: repository.type,\n respectRights: \"true\",\n writable: \"false\"\n };\n\n $scope.knownRepos = $scope.knownRepos.filter(function (repo) {\n if (member.repositoryServer) {\n return repo.id !== member.repositoryName || repo.location !== member.repositoryServer;\n } else {\n return repo.id !== member.repositoryName || !repo.local;\n }\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.repositoryName !== member.repositoryName || el.store !== member.store);\n $scope.allLocalRepos = [];\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.repositoryName !== member.repositoryName\n || el.repositoryServer !== member.repositoryServer || el.store !== member.store);\n $scope.allAttachedRepos = []\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(`Repository ${resolvedName} already added as a FedX member`);\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(`SPARQL endpoint ${resolvedName} already added as a FedX member`);\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 getKnownRepos();\n }\n}\n","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"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[25,34,55,85],{29:function(e,n){angular.module("graphdb.framework.rest.connectors.service",[]).factory("ConnectorsRestService",o),o.$inject=["$http"];const t="rest/connectors";function o(e){return{getConnectors:function(){return e.get(t)},initConnector:function(n){return e.get(`${t}/options?prefix=${n}`)},hasConnector:function(n){return e.get(`${t}/existing?prefix=${n}`)},checkConnector:function(n){return e.post(`${t}/check`,n,{headers:{"Content-Type":"text/plain"}})}}}},32:function(e,n,t){"use strict";t.r(n);t(10),t(29);function o(e){const n=[];return Object.keys(e).forEach((function(t){n.push(encodeURIComponent(t)+"="+encodeURIComponent(e[t]))})),n.join("&")}function r(e,n){for(let o=0;o<n.length;o++){const r=n[o];if("StringArray"===r.__type)e[r.__name]||(e[r.__name]=[""]);else if("OptionArray"===r.__type)if(e[r.__name])for(let n=0;n<r.__childOptions.length;n++){const t=r.__childOptions[n];if("Boolean"===t.__type)for(let n=0;n<e[r.__name].length;n++){const o=e[r.__name][n];!o.hasOwnProperty([t.__name])&&angular.isDefined(t.__defaultValue)&&(o[t.__name]=t.__defaultValue)}}else{e[r.__name]=[];const n={};for(let e=0;e<r.__childOptions.length;e++){const t=r.__childOptions[e];"StringArray"===t.__type?n[t.__name]=[""]:n[t.__name]=angular.isUndefined(t.__defaultValue)?"":t.__defaultValue}e[r.__name].push(n)}else"Map"===r.__type?e[r.__name]?e[r.__name]=(t=e[r.__name],_.map(t,(function(e,n){return{key:n,value:e}}))):e[r.__name]=[]:"JsonString"===r.__type?e[r.__name]&&(e[r.__name]=angular.toJson(e[r.__name],2)):angular.isUndefined(e[r.__name])&&(e[r.__name]=angular.isUndefined(r.__defaultValue)?"":r.__defaultValue)}var t;return e}function i(e,n,t){return e.post("repositories/"+n,o({query:t}),{headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/sparql-results+json","X-GraphDB-Local-Consistency":"updating"}})}function a(e){return e.substring(0,e.length-1)+"/instance#"}function c(e,n,t,o,r){const i=function e(n,t){const o={};return _.each(t,(function(t){angular.isDefined(n[t.__name])&&("OptionArray"===t.__type?(o[t.__name]=[],_.each(n[t.__name],(function(n){o[t.__name].push(e(n,t.__childOptions))}))):o[t.__name]=angular.copy(n[t.__name]))})),o}(t,o);for(let e=0;e<o.length;e++)try{"Map"===o[e].__type?i[o[e].__name]=(c=i[o[e].__name],_.reduce(c,(function(e,n){if(""===n.key&&""===n.value);else{if(""===n.key)throw new Error('Key may not be empty with value "'+n.value+'"');if(e.hasOwnProperty(n.key))throw new Error("Duplicate key "+n.key);e[n.key]=n.value}return e}),{})):"JsonString"===o[e].__type&&(i[o[e].__name]=angular.fromJson(i[o[e].__name]))}catch(n){return r(o[e].__label,n.message),null}var c;!function e(n){Array.isArray(n)&&(n=_.filter(n,(function(e){return null!==e&&(!e.trim||""!==e.trim())})));return Object.keys(n).forEach((function(t){""!==n[t]&&null!=n[t]||!1===n[t]?"object"==typeof n[t]&&(n[t]=e(n[t])):delete n[t]})),n}(i);let s="";return s+="PREFIX :<"+n+">\n",s+="PREFIX inst:<"+a(n)+">\n",s+="INSERT DATA {\n",s+="\tinst:"+e+" :createConnector '''\n",s+=angular.toJson(i,2),s+="\n''' .\n}\n",s=s.replace(/\\/g,"\\\\\\"),s}function s(e,n,t,s,l,u,f,p,d){function g(n){e.beingBuiltConnector={percentDone:0,status:{processedEntities:0,estimatedEntities:0,indexedEntities:0,entitiesPerSecond:0},actionName:n?"Repairing":"Creating",waitOnRepairStartOnce:!!n,eta:"-",inline:!1,iri:null}}function m(n,t,o){return g(o),$.extend(e.beingBuiltConnector,{iri:a(n)+t,name:t,inline:!1,doneCallback:function(){e.beingBuiltConnector.modalInstance.dismiss("cancel")}}),e.beingBuiltConnector.modalInstance=s.open({templateUrl:"pages/connectorProgress.html",controller:"CreateProgressCtrl",size:"lg",backdrop:"static",scope:e}),e.beingBuiltConnector.modalInstance}function C(n,r,i){const a=m(n.value,r.name,!1);p.addStatements(t.getActiveRepository(),o({update:r.query})).then((function(){d.getConnectors().then((function(){d.hasConnector(encodeURIComponent(n.value)).then((function(t){e.existing[n.key]=t.data}))})),l.success("Created connector "+r.name)}),(function(e){l.error(getError(e)),i()})).finally((function(){a.dismiss("cancel")}))}e.loader=!1,e.controllers=[],e.existing={},e.definitions={},e.getLoaderMessage=function(){const n=(Date.now()-e.loaderStartTime)/1e3,t=e.getHumanReadableSeconds(n);let o="";return o=e.progressMessage?e.progressMessage+"... "+t:"Running operation..."+t,e.extraMessage&&n>10&&(o+="\n"+e.extraMessage),o},e.setLoader=function(n,t,o){n?(e.loader=!0,e.loaderStartTime=Date.now(),e.progressMessage=t,e.extraMessage=o):(e.loader=!1,e.progressMessage="",e.extraMessage="")},e.initConnector=function(n){return d.initConnector(encodeURIComponent(n.value)).then((function(t){return e.definitions[n.key]=t.data,d.hasConnector(encodeURIComponent(n.value)).then((function(t){e.existing[n.key]=t.data}))}))},e.getConnectors=function(){e.isLicenseValid()&&e.canWriteActiveRepo()&&(e.setLoader(!0,"Fetching connectors","Normally this is a fast operation but it may take longer if a bigger repository needs to be initialised first."),d.getConnectors().then((function(o){e.connectors=Object.keys(o.data).map((function(e){return{key:e,value:o.data[e]}})),f.all(_.map(e.connectors,(function(n){return e.initConnector(n)}))).finally((function(){g();const o=function(e){const n=_.map(e,(function(e){return"<"+e.value+"connectorStatus>"})).join("|");return n?"SELECT ?connector ?status { ?connector "+n+" ?status }":null}(e.connectors);o?function(e){return i(n,t.getActiveRepository(),e)}(o).then((function(n){const t=function(e){if(e.bindings)for(let n=0;n<e.bindings.length;n++)try{const t=JSON.parse(e.bindings[n].status.value);if("BUILDING"===t.status)return{connector:e.bindings[n].connector.value,status:t}}catch(e){console.error(e)}return{}}(n.data.results);if(t.connector){const n=t.connector.split(/#/);n[0]=n[0].replace(/\/instance$/,"#"),o=n[0],r=n[1],g(),$.extend(e.beingBuiltConnector,{iri:a(o)+r,name:r,inline:!0,doneCallback:function(){e.beingBuiltConnector.inline=!1}})}var o,r})).finally((function(){e.setLoader(!1)})):e.setLoader(!1)}))})).catch((function(n){e.setLoader(!1),l.error(getError(n),"Could not get connectors")})),e.existing={})},e.getOptions=function(n){return e.definitions[n.key]},e.isEmpty=function(e){return angular.isObject(e)&&0===Object.keys(e).length},e.toPrettyJson=function(e){return angular.toJson(e,2)},e.$watch((function(){return t.getActiveRepository()}),e.getConnectors),e.$watch((function(){return t.getActiveLocation()}),e.getConnectors),e.copyConnector=function(n,t){let o;angular.isUndefined(t)||(o=angular.copy(t),o.name=o.name+"-copy"),s.open({templateUrl:"pages/createConnector.html",controller:"CreateConnectorCtrl",size:"lg",backdrop:"static",resolve:{connector:function(){return n},values:function(){return angular.isUndefined(o)?{name:"",values:{}}:o},options:function(){return e.getOptions(n)}}}).result.then((function(t){C(n,t,(function(){t.skipConversion=!0,e.newConnector(n,t)}))}))},e.newConnector=function(n,t){s.open({templateUrl:"pages/createConnector.html",controller:"CreateConnectorCtrl",size:"lg",backdrop:"static",resolve:{connector:function(){return n},values:function(){return angular.isUndefined(t)?{name:"",values:{}}:t},options:function(){return e.getOptions(n)}}}).result.then((function(t){C(n,t,(function(){t.skipConversion=!0,e.newConnector(n,t)}))}))},e.repair=function(n,r){u.openSimpleModal({title:"Confirm repair",message:"Are you sure you want to repair this connector?<br>Note that repair means delete + recreate with the same settings.",warning:!0}).result.then((function(){const i=m(r.value,n.name,!0),c=(s=n.name,"PREFIX prefix:<"+(u=r.value)+">\nINSERT DATA {\n\t<"+a(u)+s+'> prefix:repairConnector ""\n}');var s,u;p.addStatements(t.getActiveRepository(),o({update:c})).then((function(){d.getConnectors().then((function(){d.hasConnector(encodeURIComponent(r.value)).then((function(n){e.existing[r.key]=n.data}))})),l.success("Repaired connector "+n.name)}),(function(e){l.error(getError(e))})).finally((function(){i.dismiss("cancel")}))}))},e.delete=function(n,r){const i=r.key.indexOf("Elastic")>=0||r.key.indexOf("Solr")>=0;s.open({templateUrl:"js/angular/externalsync/templates/deleteConnector.html",controller:"DeleteConnectorCtrl",resolve:{type:function(){return r.key},isExternal:function(){return i}}}).result.then((function(a){e.setLoader(!0,"Deleting connector "+n.name,"This is usually a fast operation but it might take a while.");const c=function(e,n,t){const o=n.substring(0,n.length-1)+"/instance#";return"PREFIX prefix:<"+n+">\nINSERT DATA {\n\t<"+o+e+'> prefix:dropConnector "'+(t?"force":"")+'"\n}'}(n.name,r.value,a);p.addStatements(t.getActiveRepository(),o({update:c})).then((function(){d.getConnectors().then((function(){d.hasConnector(encodeURIComponent(r.value)).then((function(n){e.existing[r.key]=n.data}))})),a?(l.success("Deleted (with force) connector "+n.name),i&&l.warning("You may have to remove the index manually from "+r.key)):l.success("Deleted connector "+n.name)}),(function(e){l.error(getError(e))})).finally((function(){e.setLoader(!1)}))}))},e.viewQuery=function(n,t){s.open({templateUrl:"pages/viewQuery.html",controller:"ViewQueryCtrl",resolve:{query:function(){const o=e.getOptions(n);return c(t.name,n.value,r(t.values,o),o)}}})}}function l(e,n,t,o){e.force=!1,e.type=t,e.isExternal=o,e.ok=function(){n.close(e.force)},e.cancel=function(){n.dismiss()}}function u(e,n,t,o,r){function i(){return c(e.name,t.value,e.values,e.options,(function(e,n){r.error(n,e)}))}e.connector=t,e.addField=function(n,t){const o=angular.copy(e.defaultValues[t][0]);e.values[t].splice(n+1,0,o)},e.addOption=function(e,n){n.splice(e+1,0,"")},e.deleteOption=function(e,n){n.splice(e,1)},e.addMapOption=function(e,n){n.splice(e+1,0,{key:"",value:""})},e.deleteMapOption=function(e,n){n.splice(e,1)},e.ok=function(){if(e.form.$valid){const t=i();t&&n.close({name:e.name,values:e.values,options:e.options,query:t})}},e.viewQuery=function(){const e=i();e&&o.open({templateUrl:"pages/viewQuery.html",controller:"ViewQueryCtrl",resolve:{query:function(){return e}}})},e.cancel=function(){n.dismiss("cancel")}}function f(e,n,t,o,i,a,c,s){angular.extend(this,n("ExtendNewConnectorCtrl",{$scope:e,$modalInstance:o,connector:i,$modal:a})),e.values=c.values,e.options=s,e.name=c.name,c.skipConversion||(e.values=r(e.values,e.options)),e.defaultValues=angular.copy(e.values)}function p(e,n,t,o){function r(){const r=function(e){const n=e.replace(/\/instance#.+$/,"#connectorStatus");let t="";return t+="SELECT ?status {\n",t+="\t<"+e+"> <"+n+"> ?status",t+="\n}",t}(e.beingBuiltConnector.iri);e.beingBuiltConnector.iri=null,e.progressInterval=n((function(){(function(e){return i(t,o.getActiveRepository(),e)})(r).then((function(t){const o=function(e){if(e.bindings&&e.bindings.length>0)try{return JSON.parse(e.bindings[0].status.value)}catch(e){console.error(e)}return{}}(t.data.results);"BUILDING"===o.status?(e.beingBuiltConnector.status=o,e.beingBuiltConnector.percentDone=(100*o.processedEntities/o.estimatedEntities).toFixed(0),e.beingBuiltConnector.eta=e.getHumanReadableSeconds(o.etaSeconds),e.beingBuiltConnector.actionName=o.repair?"Repairing":"Creating",e.beingBuiltConnector.waitOnRepairStartOnce=!1):"BUILT"!==o.status||e.beingBuiltConnector.waitOnRepairStartOnce||(n.cancel(e.progressInterval),e.beingBuiltConnector.doneCallback&&e.beingBuiltConnector.doneCallback())}))}),1e3),e.$on("$destroy",(function(){n.cancel(e.progressInterval)}))}e.beingBuiltConnector=e.beingBuiltConnector||{},!e.beingBuiltConnector.inline&&e.beingBuiltConnector.iri&&r(),e.$watch("beingBuiltConnector.iri",(function(n){e.beingBuiltConnector.inline&&n&&r()}))}angular.module("graphdb.framework.externalsync.controllers",["graphdb.framework.rest.rdf4j.repositories.service","graphdb.framework.rest.connectors.service"]).controller("ConnectorsCtrl",s).controller("ExtendNewConnectorCtrl",u).controller("CreateConnectorCtrl",f).controller("CreateProgressCtrl",p).controller("DeleteConnectorCtrl",l).filter("ceil",(function(){return function(e){return Math.ceil(e)}})),s.$inject=["$scope","$http","$repositories","$modal","toastr","ModalService","$q","RDF4JRepositoriesRestService","ConnectorsRestService"],l.$inject=["$scope","$modalInstance","type","isExternal"],u.$inject=["$scope","$modalInstance","connector","$modal","toastr"],f.$inject=["$scope","$controller","$http","$modalInstance","connector","$modal","values","options"],p.$inject=["$scope","$interval","$http","$repositories"]},48:function(e,n,t){"use strict";t.r(n);t(2);angular.module("graphdb.framework.externalsync.directives",[]).directive("createProgress",(function(){return{templateUrl:"pages/connectorProgress.html",controller:"CreateProgressCtrl",restrict:"EA"}}))},94:function(e,n,t){"use strict";t.r(n);t(2),t(7),t(13),t(32),t(48);angular.module("graphdb.framework.externalsync",["graphdb.framework.core.controllers","graphdb.framework.externalsync.controllers","graphdb.framework.externalsync.directives","graphdb.framework.core.directives"]).filter("singular",(function(){return function(e){return angular.isUndefined(e)?e:e.replace(/ies$/,"y").replace(/s$/,"")}}))}}]);
|
|
2
|
-
//# sourceMappingURL=25.34da4f496fc62f2dae9b.bundle.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack:///./src/js/angular/rest/connectors.rest.service.js","webpack:///./src/js/angular/externalsync/controllers.js","webpack:///./src/js/angular/externalsync/directives.js","webpack:///./src/js/angular/externalsync/app.js"],"names":["angular","module","factory","ConnectorsRestService","$inject","CONNECTORS_ENDPOINT","$http","getConnectors","get","initConnector","prefix","hasConnector","checkConnector","data","post","headers","jsonToFormData","str","Object","keys","forEach","key","push","encodeURIComponent","join","mapCreateValuesToUiValues","values","options","i","length","option","__type","__name","j","__childOptions","child","k","valueK","hasOwnProperty","isDefined","__defaultValue","optionEl","isUndefined","map","_","value","toJson","_evaluateSparqlQuery","http","repository","query","buildNamePrefix","substring","createConnectorQuery","name","fields","reportError","fcopy","sortObject","obj","newObject","each","childOption","copy","arrayMap","reduce","acc","Error","fromJson","e","__label","message","removeEmptyValues","Array","isArray","filter","item","trim","finalString","replace","ConnectorsCtrl","$scope","$repositories","$modal","toastr","ModalService","$q","RDF4JRepositoriesRestService","resetProgress","repair","beingBuiltConnector","percentDone","status","processedEntities","estimatedEntities","indexedEntities","entitiesPerSecond","actionName","waitOnRepairStartOnce","eta","inline","iri","openProgressModal","$","extend","doneCallback","modalInstance","dismiss","open","templateUrl","controller","size","backdrop","scope","executeCreate","connector","errorCallback","modal","addStatements","getActiveRepository","update","then","res","existing","success","err","error","getError","finally","loader","controllers","definitions","getLoaderMessage","timeSeconds","Date","now","loaderStartTime","timeHuman","getHumanReadableSeconds","progressMessage","extraMessage","setLoader","isRunning","isLicenseValid","canWriteActiveRepo","connectors","all","connectorIris","createStatusQueryForAny","evaluateSparqlQuery","results","bindings","statusObject","JSON","parse","console","parseFirstBuildingResult","d","split","catch","getOptions","isEmpty","isObject","toPrettyJson","$watch","getActiveLocation","copyConnector","newValues","resolve","result","skipConversion","newConnector","inst","type","openSimpleModal","title","warning","delete","isExternal","indexOf","force","namePrefix","deleteConnectorQuery","viewQuery","DeleteConnectorCtrl","$modalInstance","ok","close","cancel","ExtendNewConnectorCtrl","toQuery","label","addField","index","optionName","newField","defaultValues","splice","addOption","array","deleteOption","addMapOption","deleteMapOption","form","$valid","CreateConnectorCtrl","$controller","this","CreateProgressCtrl","$interval","initProgress","statusIri","createStatusQueryForIri","progressInterval","getFirstStatusFromResult","toFixed","etaSeconds","$on","input","Math","ceil","directive","restrict","noun"],"mappings":"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","file":"25.34da4f496fc62f2dae9b.bundle.js","sourcesContent":["angular\n .module('graphdb.framework.rest.connectors.service', [])\n .factory('ConnectorsRestService', ConnectorsRestService);\n\nConnectorsRestService.$inject = ['$http'];\n\nconst CONNECTORS_ENDPOINT = 'rest/connectors';\n\nfunction ConnectorsRestService($http) {\n\n return {\n getConnectors,\n initConnector,\n hasConnector,\n checkConnector\n };\n\n function getConnectors() {\n return $http.get(CONNECTORS_ENDPOINT);\n }\n\n function initConnector(prefix) {\n return $http.get(`${CONNECTORS_ENDPOINT}/options?prefix=${prefix}`);\n }\n\n function hasConnector(prefix) {\n return $http.get(`${CONNECTORS_ENDPOINT}/existing?prefix=${prefix}`);\n }\n\n function checkConnector(data) {\n return $http.post(`${CONNECTORS_ENDPOINT}/check`, data, {\n headers: {\n 'Content-Type': 'text/plain'\n }\n });\n }\n}\n","import 'angular/rest/rdf4j.repositories.rest.service';\nimport 'angular/rest/connectors.rest.service';\n\nconst modules = [\n 'graphdb.framework.rest.rdf4j.repositories.service',\n 'graphdb.framework.rest.connectors.service'\n];\n\nangular\n .module('graphdb.framework.externalsync.controllers', modules)\n .controller('ConnectorsCtrl', ConnectorsCtrl)\n .controller('ExtendNewConnectorCtrl', ExtendNewConnectorCtrl)\n .controller('CreateConnectorCtrl', CreateConnectorCtrl)\n .controller('CreateProgressCtrl', CreateProgressCtrl)\n .controller('DeleteConnectorCtrl', DeleteConnectorCtrl)\n .filter('ceil', ceil);\n\nfunction jsonToFormData(data) {\n const str = [];\n Object.keys(data).forEach(function (key) {\n str.push(encodeURIComponent(key) + '=' + encodeURIComponent(data[key]));\n });\n return str.join('&');\n}\n\nfunction toArrayMap(map) {\n return _.map(map, function (value, key) {\n return {key: key, value: value};\n });\n}\n\nfunction fromArrayMap(arrayMap) {\n return _.reduce(arrayMap, function (acc, value) {\n if (value.key === '' && value.value === '') {\n // empty pair, skip it\n } else if (value.key === '') {\n throw new Error('Key may not be empty with value \"' + value.value + '\"');\n } else if (acc.hasOwnProperty(value.key)) {\n throw new Error('Duplicate key ' + value.key);\n } else {\n acc[value.key] = value.value;\n }\n return acc;\n }, {});\n}\n\nfunction mapCreateValuesToUiValues(values, options) {\n for (let i = 0; i < options.length; i++) {\n const option = options[i];\n if (option.__type === 'StringArray') {\n if (!values[option.__name]) {\n values[option.__name] = [''];\n }\n } else if (option.__type === 'OptionArray') {\n if (!values[option.__name]) { // values has no entry for this option\n values[option.__name] = [];\n const optionEl = {};\n for (let j = 0; j < option.__childOptions.length; j++) {\n const child = option.__childOptions[j];\n if (child.__type === 'StringArray') {\n optionEl[child.__name] = [''];\n } else {\n optionEl[child.__name] = (!angular.isUndefined(child.__defaultValue) ? child.__defaultValue : '');\n }\n }\n values[option.__name].push(optionEl);\n } else { // values already has en entry for this option\n // Copies the default value for Boolean child options if no explicit value is set\n for (let j = 0; j < option.__childOptions.length; j++) {\n const child = option.__childOptions[j];\n if (child.__type === 'Boolean') {\n for (let k = 0; k < values[option.__name].length; k++) {\n const valueK = values[option.__name][k];\n if (!valueK.hasOwnProperty([child.__name]) && angular.isDefined(child.__defaultValue)) {\n valueK[child.__name] = child.__defaultValue;\n }\n }\n }\n }\n }\n } else if (option.__type === 'Map') {\n if (!values[option.__name]) {\n values[option.__name] = [];\n } else {\n values[option.__name] = toArrayMap(values[option.__name]);\n }\n } else if (option.__type === 'JsonString') {\n if (values[option.__name]) {\n values[option.__name] = angular.toJson(values[option.__name], 2);\n }\n } else {\n if (angular.isUndefined(values[option.__name])) {\n values[option.__name] = (!angular.isUndefined(option.__defaultValue) ? option.__defaultValue : '');\n }\n }\n }\n\n return values;\n}\n\nfunction _evaluateSparqlQuery(http, repository, query) {\n return http.post('repositories/' + repository, jsonToFormData({query: query}),\n {\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'Accept': 'application/sparql-results+json',\n 'X-GraphDB-Local-Consistency': 'updating'\n }\n });\n}\n\nfunction buildNamePrefix(prefix) {\n return prefix.substring(0, prefix.length - 1) + '/instance#';\n}\n\nfunction createConnectorQuery(name, prefix, fields, options, reportError) {\n // Returns a copy of the parameter obj sorted according to the order in options\n function sortObject(obj, options) {\n const newObject = {};\n _.each(options, function (option) {\n if (angular.isDefined(obj[option.__name])) {\n if (option.__type === 'OptionArray') {\n newObject[option.__name] = [];\n _.each(obj[option.__name], function (childOption) {\n newObject[option.__name].push(sortObject(childOption, option.__childOptions));\n });\n } else {\n newObject[option.__name] = angular.copy(obj[option.__name]);\n }\n }\n });\n return newObject;\n }\n\n const fcopy = sortObject(fields, options);\n\n for (let i = 0; i < options.length; i++) {\n try {\n if (options[i].__type === 'Map') {\n fcopy[options[i].__name] = fromArrayMap(fcopy[options[i].__name]);\n } else if (options[i].__type === 'JsonString') {\n fcopy[options[i].__name] = angular.fromJson(fcopy[options[i].__name]);\n }\n } catch (e) {\n reportError(options[i].__label, e.message);\n return null;\n }\n }\n\n removeEmptyValues(fcopy);\n //escapeValues(fields);\n let finalString = '';\n finalString += 'PREFIX :<' + prefix + '>\\n';\n const namePrefix = buildNamePrefix(prefix);\n finalString += 'PREFIX inst:<' + namePrefix + '>\\n';\n finalString += 'INSERT DATA {\\n';\n finalString += \"\\tinst:\" + name + \" :createConnector '''\\n\"; // eslint-disable-line quotes\n finalString += angular.toJson(fcopy, 2);\n finalString += \"\\n''' .\\n}\\n\"; // eslint-disable-line quotes\n finalString = finalString.replace(/\\\\/g, '\\\\\\\\\\\\');\n return finalString;\n}\n\nfunction createStatusQueryForIri(iri) {\n const statusIri = iri.replace(/\\/instance#.+$/, '#connectorStatus');\n let finalString = '';\n finalString += 'SELECT ?status {\\n';\n finalString += '\\t<' + iri + '> <' + statusIri + '> ?status';\n finalString += '\\n}';\n return finalString;\n}\n\nfunction createStatusQueryForAny(connectors) {\n const connectorIris = _.map(connectors,\n function (k) {\n return '<' + k.value + 'connectorStatus' + '>';\n }).join('|');\n\n if (connectorIris) {\n return 'SELECT ?connector ?status { ?connector ' + connectorIris + ' ?status }';\n }\n\n return null;\n}\n\nfunction repairConnectorQuery(name, prefix) {\n const namePrefix = buildNamePrefix(prefix);\n return 'PREFIX prefix:<' + prefix + '>\\n' +\n 'INSERT DATA {\\n' +\n '\\t<' + namePrefix + name + '> prefix:repairConnector \"\"\\n' +\n '}';\n}\n\nfunction deleteConnectorQuery(name, prefix, force) {\n const namePrefix = prefix.substring(0, prefix.length - 1) + \"/instance#\";\n return 'PREFIX prefix:<' + prefix + '>\\n' +\n 'INSERT DATA {\\n' +\n '\\t<' + namePrefix + name + '> prefix:dropConnector \"' + (force ? \"force\" : \"\") + '\"\\n' +\n '}';\n}\n\nfunction removeEmptyValues(data) {\n // remove empty values from array\n if (Array.isArray(data)) {\n data = _.filter(data, function (item) {\n return item !== null && (!item.trim || item.trim() !== '');\n });\n }\n // remove empty values from object values\n Object.keys(data).forEach(function (key) {\n if ((data[key] === '' || data[key] == null) && data[key] !== false) {\n delete data[key];\n } else if (typeof data[key] === 'object') {\n data[key] = removeEmptyValues(data[key]);\n }\n });\n return data;\n}\n\nfunction parseFirstBuildingResult(results) {\n if (results.bindings) {\n for (let i = 0; i < results.bindings.length; i++) {\n try {\n const statusObject = JSON.parse(results.bindings[i].status.value);\n if (statusObject.status === 'BUILDING') {\n return {\n connector: results.bindings[i].connector.value,\n status: statusObject\n };\n }\n } catch (e) {\n console.error(e); // eslint-disable-line no-console\n }\n }\n }\n\n return {};\n}\n\nConnectorsCtrl.$inject = ['$scope', '$http', '$repositories', '$modal', 'toastr', 'ModalService', '$q', 'RDF4JRepositoriesRestService', 'ConnectorsRestService'];\n\nfunction ConnectorsCtrl($scope, $http, $repositories, $modal, toastr, ModalService, $q, RDF4JRepositoriesRestService, ConnectorsRestService) {\n $scope.loader = false;\n\n $scope.controllers = [];\n\n $scope.existing = {};\n\n $scope.definitions = {};\n\n $scope.getLoaderMessage = function () {\n const timeSeconds = (Date.now() - $scope.loaderStartTime) / 1000;\n const timeHuman = $scope.getHumanReadableSeconds(timeSeconds);\n let message = '';\n if ($scope.progressMessage) {\n message = $scope.progressMessage + '... ' + timeHuman;\n } else {\n message = 'Running operation...' + timeHuman;\n }\n if ($scope.extraMessage && timeSeconds > 10) {\n message += '\\n' + $scope.extraMessage;\n }\n\n return message;\n };\n\n $scope.setLoader = function (isRunning, progressMessage, extraMessage) {\n if (isRunning) {\n $scope.loader = true;\n $scope.loaderStartTime = Date.now();\n $scope.progressMessage = progressMessage;\n $scope.extraMessage = extraMessage;\n } else {\n $scope.loader = false;\n $scope.progressMessage = '';\n $scope.extraMessage = '';\n }\n };\n\n $scope.initConnector = function (connector) {\n return ConnectorsRestService.initConnector(encodeURIComponent(connector.value))\n .then(function (res) {\n $scope.definitions[connector.key] = res.data;\n\n return ConnectorsRestService.hasConnector(encodeURIComponent(connector.value))\n .then(function (res) {\n $scope.existing[connector.key] = res.data;\n\n });\n });\n };\n\n $scope.getConnectors = function () {\n if (!$scope.isLicenseValid()) {\n return;\n }\n if (!$scope.canWriteActiveRepo()) {\n return;\n }\n\n $scope.setLoader(true, 'Fetching connectors', 'Normally this is a fast operation but it may take longer if a bigger repository needs to be initialised first.');\n\n ConnectorsRestService.getConnectors()\n .then(function (res) {\n $scope.connectors = Object.keys(res.data).map(function (key) {\n return {key: key, value: res.data[key]};\n });\n\n $q.all(_.map($scope.connectors, function (connector) {\n return $scope.initConnector(connector);\n })).finally(function () {\n resetProgress();\n\n const query = createStatusQueryForAny($scope.connectors);\n\n if (query) {\n evaluateSparqlQuery(query)\n .then(function (res) {\n const status = parseFirstBuildingResult(res.data.results);\n if (status.connector) {\n // has a building connector, open progress indicator\n const d = status.connector.split(/#/);\n d[0] = d[0].replace(/\\/instance$/, '#');\n showProgress(d[0], d[1]);\n }\n })\n .finally(function () {\n $scope.setLoader(false);\n });\n } else {\n $scope.setLoader(false);\n }\n });\n }).catch(function (e) {\n $scope.setLoader(false);\n toastr.error(getError(e), 'Could not get connectors');\n });\n\n $scope.existing = {};\n };\n\n $scope.getOptions = function (connector) {\n return $scope.definitions[connector.key];\n };\n\n $scope.isEmpty = function (value) {\n return angular.isObject(value) && Object.keys(value).length === 0;\n };\n\n $scope.toPrettyJson = function (value) {\n return angular.toJson(value, 2);\n };\n\n $scope.$watch(function () {\n return $repositories.getActiveRepository();\n }, $scope.getConnectors);\n\n $scope.$watch(function () {\n return $repositories.getActiveLocation();\n }, $scope.getConnectors);\n\n function evaluateSparqlQuery(query) {\n return _evaluateSparqlQuery($http, $repositories.getActiveRepository(), query);\n }\n\n function resetProgress(repair) {\n $scope.beingBuiltConnector = {\n percentDone: 0,\n status: {\n processedEntities: 0,\n estimatedEntities: 0,\n indexedEntities: 0,\n entitiesPerSecond: 0\n },\n actionName: repair ? 'Repairing' : 'Creating',\n waitOnRepairStartOnce: !!repair,\n eta: '-',\n inline: false,\n iri: null\n };\n }\n\n function openProgressModal(prefix, name, repair) {\n resetProgress(repair);\n\n $.extend($scope.beingBuiltConnector, {\n iri: buildNamePrefix(prefix) + name,\n name: name,\n inline: false,\n doneCallback: function () {\n $scope.beingBuiltConnector.modalInstance.dismiss('cancel');\n }\n });\n\n $scope.beingBuiltConnector.modalInstance = $modal.open({\n templateUrl: 'pages/connectorProgress.html',\n controller: 'CreateProgressCtrl',\n size: 'lg',\n backdrop: 'static',\n scope: $scope\n });\n\n return $scope.beingBuiltConnector.modalInstance;\n }\n\n function showProgress(prefix, name) {\n resetProgress();\n\n $.extend($scope.beingBuiltConnector, {\n iri: buildNamePrefix(prefix) + name,\n name: name,\n inline: true,\n doneCallback: function () {\n $scope.beingBuiltConnector.inline = false;\n }\n });\n }\n\n function executeCreate(connector, obj, errorCallback) {\n const modal = openProgressModal(connector.value, obj.name, false);\n RDF4JRepositoriesRestService.addStatements($repositories.getActiveRepository(), jsonToFormData({update: obj.query}))\n .then(function () {\n ConnectorsRestService.getConnectors().then(function () {\n ConnectorsRestService.hasConnector(encodeURIComponent(connector.value)).then(function (res) {\n $scope.existing[connector.key] = res.data;\n });\n });\n toastr.success('Created connector ' + obj.name);\n }, function (err) {\n toastr.error(getError(err));\n errorCallback();\n }).finally(function () {\n modal.dismiss('cancel');\n });\n }\n\n $scope.copyConnector = function (connector, values) {\n let newValues;\n if (!angular.isUndefined(values)) {\n newValues = angular.copy(values);\n newValues.name = newValues.name + '-copy';\n }\n const modal = $modal.open({\n templateUrl: 'pages/createConnector.html',\n controller: 'CreateConnectorCtrl',\n size: 'lg',\n backdrop: 'static',\n resolve: {\n connector: function () {\n return connector;\n },\n values: function () {\n return angular.isUndefined(newValues) ? {name: '', values: {}} : newValues;\n },\n options: function () {\n return $scope.getOptions(connector);\n }\n }\n });\n\n modal.result.then(function (obj) {\n executeCreate(connector, obj, function () {\n obj.skipConversion = true;\n $scope.newConnector(connector, obj);\n });\n });\n };\n\n $scope.newConnector = function (connector, values) {\n const modal = $modal.open({\n templateUrl: 'pages/createConnector.html',\n controller: 'CreateConnectorCtrl',\n size: 'lg',\n backdrop: 'static',\n resolve: {\n connector: function () {\n return connector;\n },\n values: function () {\n return angular.isUndefined(values) ? {name: '', values: {}} : values;\n },\n options: function () {\n return $scope.getOptions(connector);\n }\n }\n });\n\n modal.result.then(function (obj) {\n executeCreate(connector, obj, function () {\n obj.skipConversion = true;\n $scope.newConnector(connector, obj);\n });\n });\n };\n\n $scope.repair = function (inst, type) {\n ModalService.openSimpleModal({\n title: 'Confirm repair',\n message: 'Are you sure you want to repair this connector?<br>Note that repair means delete + recreate with the same settings.',\n warning: true\n }).result\n .then(function () {\n const modal = openProgressModal(type.value, inst.name, true);\n\n const query = repairConnectorQuery(inst.name, type.value);\n\n RDF4JRepositoriesRestService.addStatements($repositories.getActiveRepository(), jsonToFormData({update: query}))\n .then(function () {\n ConnectorsRestService.getConnectors().then(function () {\n ConnectorsRestService.hasConnector(encodeURIComponent(type.value)).then(function (res) {\n $scope.existing[type.key] = res.data;\n });\n });\n toastr.success('Repaired connector ' + inst.name);\n }, function (err) {\n toastr.error(getError(err));\n }).finally(function () {\n modal.dismiss('cancel');\n });\n });\n };\n\n $scope.delete = function (inst, type) {\n const isExternal = type.key.indexOf(\"Elastic\") >= 0 || type.key.indexOf(\"Solr\") >= 0;\n\n $modal.open({\n templateUrl: 'js/angular/externalsync/templates/deleteConnector.html',\n controller: 'DeleteConnectorCtrl',\n resolve: {\n type: function () {\n return type.key;\n },\n isExternal: function () {\n return isExternal;\n }\n }\n }).result\n .then(function(force) {\n $scope.setLoader(true, 'Deleting connector ' + inst.name, 'This is usually a fast operation but it might take a while.');\n\n const query = deleteConnectorQuery(inst.name, type.value, force);\n RDF4JRepositoriesRestService.addStatements($repositories.getActiveRepository(), jsonToFormData({update: query}))\n .then(function () {\n ConnectorsRestService.getConnectors().then(function () {\n ConnectorsRestService.hasConnector(encodeURIComponent(type.value)).then(function (res) {\n $scope.existing[type.key] = res.data;\n });\n });\n if (force) {\n toastr.success(\"Deleted (with force) connector \" + inst.name);\n if (isExternal) {\n toastr.warning(\"You may have to remove the index manually from \" + type.key);\n }\n } else {\n toastr.success(\"Deleted connector \" + inst.name);\n }\n }, function (err) {\n toastr.error(getError(err));\n }).finally(function() {\n $scope.setLoader(false);\n });\n });\n };\n\n $scope.viewQuery = function (connector, inst) {\n $modal.open({\n templateUrl: 'pages/viewQuery.html',\n controller: 'ViewQueryCtrl',\n resolve: {\n query: function () {\n const options = $scope.getOptions(connector);\n return createConnectorQuery(inst.name, connector.value,\n mapCreateValuesToUiValues(inst.values, options), options);\n }\n }\n });\n };\n}\n\nDeleteConnectorCtrl.$inject = ['$scope', '$modalInstance', 'type', 'isExternal'];\nfunction DeleteConnectorCtrl($scope, $modalInstance, type, isExternal) {\n $scope.force = false;\n $scope.type = type;\n $scope.isExternal = isExternal;\n\n $scope.ok = function () {\n $modalInstance.close($scope.force);\n };\n\n $scope.cancel = function () {\n $modalInstance.dismiss();\n };\n}\n\nExtendNewConnectorCtrl.$inject = ['$scope', '$modalInstance', 'connector', '$modal', 'toastr'];\nfunction ExtendNewConnectorCtrl($scope, $modalInstance, connector, $modal, toastr) {\n\n $scope.connector = connector;\n\n $scope.addField = function (index, optionName) {\n const newField = angular.copy($scope.defaultValues[optionName][0]);\n $scope.values[optionName].splice(index + 1, 0, newField);\n };\n\n $scope.addOption = function (index, array) {\n array.splice(index + 1, 0, '');\n };\n\n $scope.deleteOption = function (index, array) {\n array.splice(index, 1);\n };\n\n $scope.addMapOption = function (index, array) {\n array.splice(index + 1, 0, {key: '', value: ''});\n };\n\n $scope.deleteMapOption = function (index, array) {\n array.splice(index, 1);\n };\n\n function toQuery() {\n return createConnectorQuery($scope.name, connector.value, $scope.values, $scope.options,\n function (label, error) {\n toastr.error(error, label);\n });\n }\n\n $scope.ok = function () {\n if ($scope.form.$valid) {\n const query = toQuery();\n\n if (query) {\n $modalInstance.close({name: $scope.name, values: $scope.values, options: $scope.options, query: query});\n }\n }\n };\n\n $scope.viewQuery = function () {\n const query = toQuery();\n\n if (query) {\n $modal.open({\n templateUrl: 'pages/viewQuery.html',\n controller: 'ViewQueryCtrl',\n resolve: {\n query: function () {\n return query;\n }\n }\n });\n }\n };\n\n $scope.cancel = function () {\n $modalInstance.dismiss('cancel');\n };\n}\n\nCreateConnectorCtrl.$inject = ['$scope', '$controller', '$http', '$modalInstance', 'connector', '$modal', 'values', 'options'];\n\nfunction CreateConnectorCtrl($scope, $controller, $http, $modalInstance, connector, $modal, values, options) {\n angular.extend(this, $controller('ExtendNewConnectorCtrl', {\n $scope: $scope,\n $modalInstance: $modalInstance,\n connector: connector,\n $modal: $modal\n }));\n $scope.values = values.values;\n $scope.options = options;\n $scope.name = values.name;\n if (!values.skipConversion) {\n $scope.values = mapCreateValuesToUiValues($scope.values, $scope.options);\n }\n $scope.defaultValues = angular.copy($scope.values);\n}\n\n// Note that this is a fancy controller: it's used both for a modal and for a directive.\n// This means you can't rely on custom injection through resolve in the modal and the scope\n// must be shared with the main connectors controller.\nCreateProgressCtrl.$inject = ['$scope', '$interval', '$http', '$repositories'];\n\nfunction CreateProgressCtrl($scope, $interval, $http, $repositories) {\n function evaluateSparqlQuery(query) {\n return _evaluateSparqlQuery($http, $repositories.getActiveRepository(), query);\n }\n\n function initProgress() {\n const query = createStatusQueryForIri($scope.beingBuiltConnector.iri);\n\n // reset iri value so that watch will fire again when we do something with the same connector\n $scope.beingBuiltConnector.iri = null;\n\n $scope.progressInterval = $interval(function () {\n function getFirstStatusFromResult(results) {\n if (results.bindings) {\n if (results.bindings.length > 0) {\n try {\n return JSON.parse(results.bindings[0].status.value);\n } catch (e) {\n console.error(e); // eslint-disable-line no-console\n }\n }\n }\n\n return {};\n }\n\n evaluateSparqlQuery(query)\n .then(function (res) {\n const status = getFirstStatusFromResult(res.data.results);\n if (status.status === 'BUILDING') {\n $scope.beingBuiltConnector.status = status;\n $scope.beingBuiltConnector.percentDone = (100 * status.processedEntities / status.estimatedEntities).toFixed(0);\n $scope.beingBuiltConnector.eta = $scope.getHumanReadableSeconds(status.etaSeconds);\n $scope.beingBuiltConnector.actionName = status.repair ? 'Repairing' : 'Creating';\n $scope.beingBuiltConnector.waitOnRepairStartOnce = false;\n } else if (status.status === 'BUILT' && !$scope.beingBuiltConnector.waitOnRepairStartOnce) {\n // done\n $interval.cancel($scope.progressInterval);\n if ($scope.beingBuiltConnector.doneCallback) {\n $scope.beingBuiltConnector.doneCallback();\n }\n }\n });\n }, 1000);\n\n $scope.$on('$destroy', function () {\n $interval.cancel($scope.progressInterval);\n });\n }\n\n $scope.beingBuiltConnector = $scope.beingBuiltConnector || {};\n\n // for modal instance we get the iri before hand and can start progress now\n if (!$scope.beingBuiltConnector.inline && $scope.beingBuiltConnector.iri) {\n initProgress();\n }\n\n // for inline progress we need to watch for the iri value\n $scope.$watch('beingBuiltConnector.iri', function (value) {\n if ($scope.beingBuiltConnector.inline && value) {\n initProgress();\n }\n });\n}\n\nfunction ceil() {\n return function (input) {\n return Math.ceil(input);\n };\n}\n","import 'angular/core/services';\n\nangular.module('graphdb.framework.externalsync.directives', [])\n .directive('createProgress', function () {\n return {\n templateUrl: 'pages/connectorProgress.html',\n controller: 'CreateProgressCtrl',\n restrict: 'EA'\n };\n });\n","import 'angular/core/services';\nimport 'angular/core/directives';\nimport 'angular/core/controllers';\nimport 'angular/externalsync/controllers';\nimport 'angular/externalsync/directives';\n\nconst modules = [\n 'graphdb.framework.core.controllers',\n 'graphdb.framework.externalsync.controllers',\n 'graphdb.framework.externalsync.directives',\n 'graphdb.framework.core.directives'\n];\n\nconst externalsync = angular.module('graphdb.framework.externalsync', modules);\n\nexternalsync.filter('singular', function () {\n return function (noun) {\n if (angular.isUndefined(noun)) {\n return noun;\n } else {\n return noun.replace(/ies$/, 'y').replace(/s$/, '');\n }\n };\n});\n"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[26,34,85],{29:function(e,n){angular.module("graphdb.framework.rest.connectors.service",[]).factory("ConnectorsRestService",r),r.$inject=["$http"];const t="rest/connectors";function r(e){return{getConnectors:function(){return e.get(t)},initConnector:function(n){return e.get(`${t}/options?prefix=${n}`)},hasConnector:function(n){return e.get(`${t}/existing?prefix=${n}`)},checkConnector:function(n){return e.post(`${t}/check`,n,{headers:{"Content-Type":"text/plain"}})}}}},32:function(e,n,t){"use strict";t.r(n);t(10),t(29);function r(e){const n=[];return Object.keys(e).forEach((function(t){n.push(encodeURIComponent(t)+"="+encodeURIComponent(e[t]))})),n.join("&")}function o(e,n){for(let r=0;r<n.length;r++){const o=n[r];if("StringArray"===o.__type)e[o.__name]||(e[o.__name]=[""]);else if("OptionArray"===o.__type)if(e[o.__name])for(let n=0;n<o.__childOptions.length;n++){const t=o.__childOptions[n];if("Boolean"===t.__type)for(let n=0;n<e[o.__name].length;n++){const r=e[o.__name][n];!r.hasOwnProperty([t.__name])&&angular.isDefined(t.__defaultValue)&&(r[t.__name]=t.__defaultValue)}}else{e[o.__name]=[];const n={};for(let e=0;e<o.__childOptions.length;e++){const t=o.__childOptions[e];"StringArray"===t.__type?n[t.__name]=[""]:n[t.__name]=angular.isUndefined(t.__defaultValue)?"":t.__defaultValue}e[o.__name].push(n)}else"Map"===o.__type?e[o.__name]?e[o.__name]=(t=e[o.__name],_.map(t,(function(e,n){return{key:n,value:e}}))):e[o.__name]=[]:"JsonString"===o.__type?e[o.__name]&&(e[o.__name]=angular.toJson(e[o.__name],2)):angular.isUndefined(e[o.__name])&&(e[o.__name]=angular.isUndefined(o.__defaultValue)?"":o.__defaultValue)}var t;return e}function a(e,n,t){return e.post("repositories/"+n,r({query:t}),{headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/sparql-results+json","X-GraphDB-Local-Consistency":"updating"}})}function i(e){return e.substring(0,e.length-1)+"/instance#"}function s(e,n,t,r,o){const a=function e(n,t){const r={};return _.each(t,(function(t){angular.isDefined(n[t.__name])&&("OptionArray"===t.__type?(r[t.__name]=[],_.each(n[t.__name],(function(n){r[t.__name].push(e(n,t.__childOptions))}))):r[t.__name]=angular.copy(n[t.__name]))})),r}(t,r);for(let e=0;e<r.length;e++)try{"Map"===r[e].__type?a[r[e].__name]=(s=a[r[e].__name],_.reduce(s,(function(e,n){if(""===n.key&&""===n.value);else{if(""===n.key)throw new Error('Key may not be empty with value "'+n.value+'"');if(e.hasOwnProperty(n.key))throw new Error("Duplicate key "+n.key);e[n.key]=n.value}return e}),{})):"JsonString"===r[e].__type&&(a[r[e].__name]=angular.fromJson(a[r[e].__name]))}catch(n){return o(r[e].__label,n.message),null}var s;!function e(n){Array.isArray(n)&&(n=_.filter(n,(function(e){return null!==e&&(!e.trim||""!==e.trim())})));return Object.keys(n).forEach((function(t){""!==n[t]&&null!=n[t]||!1===n[t]?"object"==typeof n[t]&&(n[t]=e(n[t])):delete n[t]})),n}(a);let u="";return u+="PREFIX :<"+n+">\n",u+="PREFIX inst:<"+i(n)+">\n",u+="INSERT DATA {\n",u+="\tinst:"+e+" :createConnector '''\n",u+=angular.toJson(a,2),u+="\n''' .\n}\n",u=u.replace(/\\/g,"\\\\\\"),u}function u(e,n,t,u,c,l,d,p,g){function f(n){e.beingBuiltConnector={percentDone:0,status:{processedEntities:0,estimatedEntities:0,indexedEntities:0,entitiesPerSecond:0},actionName:n?"Repairing":"Creating",waitOnRepairStartOnce:!!n,eta:"-",inline:!1,iri:null}}function m(n,t,r){return f(r),$.extend(e.beingBuiltConnector,{iri:i(n)+t,name:t,inline:!1,doneCallback:function(){e.beingBuiltConnector.modalInstance.dismiss("cancel")}}),e.beingBuiltConnector.modalInstance=u.open({templateUrl:"pages/connectorProgress.html",controller:"CreateProgressCtrl",size:"lg",backdrop:"static",scope:e}),e.beingBuiltConnector.modalInstance}function y(n,o,a){const i=m(n.value,o.name,!1);p.addStatements(t.getActiveRepository(),r({update:o.query})).then((function(){g.getConnectors().then((function(){g.hasConnector(encodeURIComponent(n.value)).then((function(t){e.existing[n.key]=t.data}))})),c.success("Created connector "+o.name)}),(function(e){c.error(getError(e)),a()})).finally((function(){i.dismiss("cancel")}))}e.loader=!1,e.controllers=[],e.existing={},e.definitions={},e.getLoaderMessage=function(){const n=(Date.now()-e.loaderStartTime)/1e3,t=e.getHumanReadableSeconds(n);let r="";return r=e.progressMessage?e.progressMessage+"... "+t:"Running operation..."+t,e.extraMessage&&n>10&&(r+="\n"+e.extraMessage),r},e.setLoader=function(n,t,r){n?(e.loader=!0,e.loaderStartTime=Date.now(),e.progressMessage=t,e.extraMessage=r):(e.loader=!1,e.progressMessage="",e.extraMessage="")},e.initConnector=function(n){return g.initConnector(encodeURIComponent(n.value)).then((function(t){return e.definitions[n.key]=t.data,g.hasConnector(encodeURIComponent(n.value)).then((function(t){e.existing[n.key]=t.data}))}))},e.getConnectors=function(){e.isLicenseValid()&&e.canWriteActiveRepo()&&(e.setLoader(!0,"Fetching connectors","Normally this is a fast operation but it may take longer if a bigger repository needs to be initialised first."),g.getConnectors().then((function(r){e.connectors=Object.keys(r.data).map((function(e){return{key:e,value:r.data[e]}})),d.all(_.map(e.connectors,(function(n){return e.initConnector(n)}))).finally((function(){f();const r=function(e){const n=_.map(e,(function(e){return"<"+e.value+"connectorStatus>"})).join("|");return n?"SELECT ?connector ?status { ?connector "+n+" ?status }":null}(e.connectors);r?function(e){return a(n,t.getActiveRepository(),e)}(r).then((function(n){const t=function(e){if(e.bindings)for(let n=0;n<e.bindings.length;n++)try{const t=JSON.parse(e.bindings[n].status.value);if("BUILDING"===t.status)return{connector:e.bindings[n].connector.value,status:t}}catch(e){console.error(e)}return{}}(n.data.results);if(t.connector){const n=t.connector.split(/#/);n[0]=n[0].replace(/\/instance$/,"#"),r=n[0],o=n[1],f(),$.extend(e.beingBuiltConnector,{iri:i(r)+o,name:o,inline:!0,doneCallback:function(){e.beingBuiltConnector.inline=!1}})}var r,o})).finally((function(){e.setLoader(!1)})):e.setLoader(!1)}))})).catch((function(n){e.setLoader(!1),c.error(getError(n),"Could not get connectors")})),e.existing={})},e.getOptions=function(n){return e.definitions[n.key]},e.isEmpty=function(e){return angular.isObject(e)&&0===Object.keys(e).length},e.toPrettyJson=function(e){return angular.toJson(e,2)},e.$watch((function(){return t.getActiveRepository()}),e.getConnectors),e.$watch((function(){return t.getActiveLocation()}),e.getConnectors),e.copyConnector=function(n,t){let r;angular.isUndefined(t)||(r=angular.copy(t),r.name=r.name+"-copy"),u.open({templateUrl:"pages/createConnector.html",controller:"CreateConnectorCtrl",size:"lg",backdrop:"static",resolve:{connector:function(){return n},values:function(){return angular.isUndefined(r)?{name:"",values:{}}:r},options:function(){return e.getOptions(n)}}}).result.then((function(t){y(n,t,(function(){t.skipConversion=!0,e.newConnector(n,t)}))}))},e.newConnector=function(n,t){u.open({templateUrl:"pages/createConnector.html",controller:"CreateConnectorCtrl",size:"lg",backdrop:"static",resolve:{connector:function(){return n},values:function(){return angular.isUndefined(t)?{name:"",values:{}}:t},options:function(){return e.getOptions(n)}}}).result.then((function(t){y(n,t,(function(){t.skipConversion=!0,e.newConnector(n,t)}))}))},e.repair=function(n,o){l.openSimpleModal({title:"Confirm repair",message:"Are you sure you want to repair this connector?<br>Note that repair means delete + recreate with the same settings.",warning:!0}).result.then((function(){const a=m(o.value,n.name,!0),s=(u=n.name,"PREFIX prefix:<"+(l=o.value)+">\nINSERT DATA {\n\t<"+i(l)+u+'> prefix:repairConnector ""\n}');var u,l;p.addStatements(t.getActiveRepository(),r({update:s})).then((function(){g.getConnectors().then((function(){g.hasConnector(encodeURIComponent(o.value)).then((function(n){e.existing[o.key]=n.data}))})),c.success("Repaired connector "+n.name)}),(function(e){c.error(getError(e))})).finally((function(){a.dismiss("cancel")}))}))},e.delete=function(n,o){const a=o.key.indexOf("Elastic")>=0||o.key.indexOf("Solr")>=0;u.open({templateUrl:"js/angular/externalsync/templates/deleteConnector.html",controller:"DeleteConnectorCtrl",resolve:{type:function(){return o.key},isExternal:function(){return a}}}).result.then((function(i){e.setLoader(!0,"Deleting connector "+n.name,"This is usually a fast operation but it might take a while.");const s=function(e,n,t){const r=n.substring(0,n.length-1)+"/instance#";return"PREFIX prefix:<"+n+">\nINSERT DATA {\n\t<"+r+e+'> prefix:dropConnector "'+(t?"force":"")+'"\n}'}(n.name,o.value,i);p.addStatements(t.getActiveRepository(),r({update:s})).then((function(){g.getConnectors().then((function(){g.hasConnector(encodeURIComponent(o.value)).then((function(n){e.existing[o.key]=n.data}))})),i?(c.success("Deleted (with force) connector "+n.name),a&&c.warning("You may have to remove the index manually from "+o.key)):c.success("Deleted connector "+n.name)}),(function(e){c.error(getError(e))})).finally((function(){e.setLoader(!1)}))}))},e.viewQuery=function(n,t){u.open({templateUrl:"pages/viewQuery.html",controller:"ViewQueryCtrl",resolve:{query:function(){const r=e.getOptions(n);return s(t.name,n.value,o(t.values,r),r)}}})}}function c(e,n,t,r){e.force=!1,e.type=t,e.isExternal=r,e.ok=function(){n.close(e.force)},e.cancel=function(){n.dismiss()}}function l(e,n,t,r,o){function a(){return s(e.name,t.value,e.values,e.options,(function(e,n){o.error(n,e)}))}e.connector=t,e.addField=function(n,t){const r=angular.copy(e.defaultValues[t][0]);e.values[t].splice(n+1,0,r)},e.addOption=function(e,n){n.splice(e+1,0,"")},e.deleteOption=function(e,n){n.splice(e,1)},e.addMapOption=function(e,n){n.splice(e+1,0,{key:"",value:""})},e.deleteMapOption=function(e,n){n.splice(e,1)},e.ok=function(){if(e.form.$valid){const t=a();t&&n.close({name:e.name,values:e.values,options:e.options,query:t})}},e.viewQuery=function(){const e=a();e&&r.open({templateUrl:"pages/viewQuery.html",controller:"ViewQueryCtrl",resolve:{query:function(){return e}}})},e.cancel=function(){n.dismiss("cancel")}}function d(e,n,t,r,a,i,s,u){angular.extend(this,n("ExtendNewConnectorCtrl",{$scope:e,$modalInstance:r,connector:a,$modal:i})),e.values=s.values,e.options=u,e.name=s.name,s.skipConversion||(e.values=o(e.values,e.options)),e.defaultValues=angular.copy(e.values)}function p(e,n,t,r){function o(){const o=function(e){const n=e.replace(/\/instance#.+$/,"#connectorStatus");let t="";return t+="SELECT ?status {\n",t+="\t<"+e+"> <"+n+"> ?status",t+="\n}",t}(e.beingBuiltConnector.iri);e.beingBuiltConnector.iri=null,e.progressInterval=n((function(){(function(e){return a(t,r.getActiveRepository(),e)})(o).then((function(t){const r=function(e){if(e.bindings&&e.bindings.length>0)try{return JSON.parse(e.bindings[0].status.value)}catch(e){console.error(e)}return{}}(t.data.results);"BUILDING"===r.status?(e.beingBuiltConnector.status=r,e.beingBuiltConnector.percentDone=(100*r.processedEntities/r.estimatedEntities).toFixed(0),e.beingBuiltConnector.eta=e.getHumanReadableSeconds(r.etaSeconds),e.beingBuiltConnector.actionName=r.repair?"Repairing":"Creating",e.beingBuiltConnector.waitOnRepairStartOnce=!1):"BUILT"!==r.status||e.beingBuiltConnector.waitOnRepairStartOnce||(n.cancel(e.progressInterval),e.beingBuiltConnector.doneCallback&&e.beingBuiltConnector.doneCallback())}))}),1e3),e.$on("$destroy",(function(){n.cancel(e.progressInterval)}))}e.beingBuiltConnector=e.beingBuiltConnector||{},!e.beingBuiltConnector.inline&&e.beingBuiltConnector.iri&&o(),e.$watch("beingBuiltConnector.iri",(function(n){e.beingBuiltConnector.inline&&n&&o()}))}angular.module("graphdb.framework.externalsync.controllers",["graphdb.framework.rest.rdf4j.repositories.service","graphdb.framework.rest.connectors.service"]).controller("ConnectorsCtrl",u).controller("ExtendNewConnectorCtrl",l).controller("CreateConnectorCtrl",d).controller("CreateProgressCtrl",p).controller("DeleteConnectorCtrl",c).filter("ceil",(function(){return function(e){return Math.ceil(e)}})),u.$inject=["$scope","$http","$repositories","$modal","toastr","ModalService","$q","RDF4JRepositoriesRestService","ConnectorsRestService"],c.$inject=["$scope","$modalInstance","type","isExternal"],l.$inject=["$scope","$modalInstance","connector","$modal","toastr"],d.$inject=["$scope","$controller","$http","$modalInstance","connector","$modal","values","options"],p.$inject=["$scope","$interval","$http","$repositories"]},34:function(e,n,t){"use strict";t.r(n);t(29),t(4),t(32);var r=t(212),o=t.n(r),a=t(210),i=t.n(a);function s(e,n,t,r,a,s,u,c,l,d,p,g){let f;return{restrict:"AE",scope:!1,templateUrl:"js/angular/core/directives/queryeditor/templates/query-editor.html",link:function(m,y,C){m.nostorage=C.hasOwnProperty("nostorage"),m.notabs=C.hasOwnProperty("notabs"),m.notoolbar=C.hasOwnProperty("notoolbar"),m.notoolbarSaved=C.hasOwnProperty("notoolbarSaved"),m.notoolbarCopy=C.hasOwnProperty("notoolbarCopy"),m.notoolbarInference=C.hasOwnProperty("notoolbarInference"),m.notoolbarSameAs=C.hasOwnProperty("notoolbarSameAs"),m.nostatus=C.hasOwnProperty("nostatus"),m.norun=C.hasOwnProperty("norun"),m.runButtonName="Run",C.runButtonName&&(m.runButtonName=C.runButtonName);if(m.nocount="true"===C.nocount,C.callbackOnChange){const e=m[C.callbackOnChange];"function"==typeof e&&(f=e)}e((function(){!function(m){function y(){angular.element("#wb-sparql-saveQuery")[0].click()}function C(){m.runQuery(!1,!1)}function h(){m.runQuery(!1,!0)}function b(){if(m.tabs.length<2||!m.currentQuery.id||!m.isTabChangeOk(!1))return;let e=Q(m.currentQuery.id);e=(e+1)%m.tabs.length,w(m.tabs[e].id)}function T(){if(m.tabs.length<2||!m.currentQuery.id||!m.isTabChangeOk(!1))return;let e=Q(m.currentQuery.id);e--,-1===e&&(e=m.tabs.length-1),w(m.tabs[e].id)}function w(n){e((function(){let e=$('a[data-id = "'+n+'"]');0===e.length&&(e=$("a[data-id]").first()),e.tab("show")}),0)}m.changePagination=function(){m.runQuery(!0,m.explainRequested)},window.editor=o.a.fromTextArea(document.getElementById("query"),{persistent:null,value:"",indentUnit:4,createShareLink:null,cursorHeight:1,sparql:{showQueryButton:!1,acceptHeaderGraph:"application/x-graphdb-table-results+json, application/rdf+json;q=0.9, */*;q=0.8",acceptHeaderSelect:"application/x-sparqlstar-results+json, application/sparql-results+json;q=0.9, */*;q=0.8"},extraKeys:{"Ctrl-Enter":C,"Cmd-Enter":C,"Shift-Ctrl-Enter":h,"Shift-Cmd-Enter":h,"Ctrl-Alt-T":m.addNewTab,"Cmd-Alt-T":m.addNewTab,"Ctrl-S":y,"Cmd-S":y,"Ctrl-Alt-Left":T,"Cmd-Alt-Left":T,"Ctrl-Alt-Right":b,"Cmd-Alt-Right":b}}),window.editor.toastBuildIndex=function(){t.warning("",'<div class="autocomplete-toast"><a href="autocomplete">Autocomplete is OFF<br>Go to Setup -> Autocomplete</a></div>',{allowHtml:!0})},window.editor.toastError=function(e){t.error("Cannot execute autocomplete query. "+getError(e))},window.editor.on("changes",(function(){angular.element(".CodeMirror-linenumbers").css("width","1px"),angular.element(".CodeMirror-sizer").css("margin-left","0px"),clearTimeout(m.changesTimeout);const e=!window.editor.queryValid;m.changesTimeout=setTimeout(f?f():function(){const n=Q(m.currentQuery.id)+1;$('a[data-id = "'+n+'"]').toggleClass("query-has-error",e).attr("title",e?"Query contains a syntax error. See the relevant line for more information.":"")},200),m.currentQuery.query=window.editor.getValue(),m.currentQuery.queryType=window.editor.getQueryType()})),$(".fullscreenToggleBtns").hide();const v=function(e){$(e.target).removeClass("fa-link").addClass("fa-check").blur(),setTimeout((function(){$(e.target).removeClass("fa-check").addClass("fa-link")}),1e3)};window.onbeforeunload=function(){m.nostorage||p.set(g.TABS_STATE,m.tabs),m.saveTab(m.currentQuery.id)};const R=o.a.executeQuery,S=o.a.getUrlArguments;function x(e,n,t){return{status:e,statusText:n,responseText:t}}let A,E;m.$on("$destroy",(function(){m.nostorage||p.set(g.TABS_STATE,m.tabs),o.a.executeQuery=R,o.a.getUrlArguments=S,m.saveTab(m.currentQuery.id)})),o.a.drawButtons=function(e){e.buttons=$("#yasqe_buttons_mocked")},o.a.getActiveRepository=function(){return r.getActiveRepository()},o.a.getUrlArguments=function(e,n){const t=S(e,n),r=window.editor.getQueryType();return"SELECT"!==r&&"CONSTRUCT"!==r&&"DESCRIBE"!==r||(t.push({name:"limit",value:m.currentTabConfig.pageSize+1}),m.currentTabConfig.offset=(m.currentTabConfig.page-1)*m.currentTabConfig.pageSize+1,t.push({name:"offset",value:m.currentTabConfig.offset-1})),!m.explainRequested||"SELECT"!==r&&"CONSTRUCT"!==r||t.push({name:"explain",value:"true"}),t},o.a.executeQuery=function(e){if(E&&$(E.resultsContainer).length&&$(E.resultsContainer).empty(),e.options.sparql.headers["X-GraphDB-Catch"]=m.currentTabConfig.pageSize+"; throw",m.currentTrackAlias="query-editor-"+performance.now()+"-"+Date.now(),e.options.sparql.headers["X-GraphDB-Track-Alias"]=m.currentTrackAlias,m.countTimeouted=!1,"query"===e.getQueryMode()?e.options.sparql.endpoint="repositories/"+r.getActiveRepository():"update"===e.getQueryMode()&&(e.options.sparql.endpoint="repositories/"+r.getActiveRepository()+"/statements"),e.options.sparql.args=[{name:"infer",value:m.currentQuery.inference},{name:"sameAs",value:m.currentQuery.sameAs}],m.currentTabConfig.customUpdateMessage="","update"!==window.editor.getQueryMode()){const n=m.currentTabConfig,t=m.executedQueryTab.id;return window.editor.options.sparql.handlers.countCallback=function(e,r,o){if(200===e.status){const a=m.tabs[Q(t)];a&&(E.setResultsCount(e,r,o),n.allResultsCount=E.allCount,a.allResultsCount=E.allCount,n.allResultsCountExact=!0,a.allResultsCountExact=!0,m.saveTab(a.id))}else n.countTimeouted=!0},null!=m.currentQuery.outputType?E.options.output=m.currentQuery.outputType:E.options.output="table",m.currentTabConfig.queryType=window.editor.getQueryType(),m.queryStartTime=(new Date).getTime(),R(e,{setQueryLimit:function(e){return"CONSTRUCT"===m.currentTabConfig.queryType&&r.isActiveRepoOntopType()?window.editor.getValueWithoutComments():e}})}{const n=function(){m.currentTabConfig.queryType="UPDATE",l.getRepositorySize().success((function(n){return m.repoSize=parseInt(n),m.queryStartTime=(new Date).getTime(),R(e,{})})).error((function(n){return t.warning("Could not get repository size for: "+r.getActiveRepository()+"; "+getError(n)),m.queryStartTime=(new Date).getTime(),R(e,{})}))};d.checkConnector(window.editor.getValue()).then((function(e){if(e.data.command&&!e.data.hasSupport){m.currentTabConfig.queryType="ERROR",m.currentTabConfig.timeFinished=Date.now(),m.currentTabConfig.timeTook=(m.currentTabConfig.timeFinished-m.queryStartTime)/1e3;const n=x(-1,"No support for "+e.data.connectorName,e.data.connectorName+" connectors are not supported because the plugin "+e.data.pluginName+" is not active.");return E.results={getException:function(){return n}},m.setLoader(!1),void q({customError:n},"",null)}if("create"===e.data.command||"repair"===e.data.command){const n="repair"===e.data.command;n?(m.setLoader(!0,"Repairing connector "+e.data.name),m.currentTabConfig.customUpdateMessage="Repaired connector "+e.data.name+"."):(m.setLoader(!0,"Creating connector "+e.data.name),m.currentTabConfig.customUpdateMessage="Created connector "+e.data.name+".");const t=m.$new(!0);t.beingBuiltConnector={percentDone:0,status:{processedEntities:0,estimatedEntities:0,indexedEntities:0,entitiesPerSecond:0},actionName:n?"Repairing":"Creating",eta:"-",inline:!1,iri:e.data.iri,name:e.data.name,doneCallback:function(){A.dismiss("cancel")}},t.getHumanReadableSeconds=m.getHumanReadableSeconds,A=u.open({templateUrl:"pages/connectorProgress.html",controller:"CreateProgressCtrl",size:"lg",backdrop:"static",scope:t})}else"drop"===e.data.command&&(m.setLoader(!0,"Deleting connector "+e.data.name),m.currentTabConfig.customUpdateMessage="Deleted connector "+e.data.name+".");n()}),(function(){n()}))}};const k=o.a.getAjaxConfig;function q(e,n,t){e.getResponseHeader&&e.getResponseHeader("content-type")&&(e.contentType=e.getResponseHeader("content-type")),delete e.response;const r=Q(m.executedQueryTab.id),o=m.tabs[r],a={queryType:m.currentTabConfig.queryType,yasrData:e,textStatus:n,jqXhrOrErrorString:t,page:m.currentTabConfig.page,pageSize:m.currentTabConfig.pageSize,allResultsCount:m.currentTabConfig.allResultsCount,allResultsCountExact:m.currentTabConfig.allResultsCountExact,resultsCount:m.currentTabConfig.resultsCount,offset:m.currentTabConfig.offset,timeTook:m.currentTabConfig.timeTook,timeFinished:m.currentTabConfig.timeFinished,sizeDelta:m.currentTabConfig.sizeDelta,customUpdateMessage:m.currentTabConfig.customUpdateMessage,errorMessage:m.currentTabConfig.errorMessage,warningMessage:m.currentTabConfig.warningMessage};"ERROR"!==m.currentTabConfig.queryType&&"UPDATE"!==m.currentTabConfig.queryType&&"ASK"!==m.currentTabConfig.queryType&&(a.outputType=m.yasr.options.output),angular.extend(m.currentQuery,a),angular.extend(o,a),m.nostorage||p.set(g.TABS_STATE,m.tabs),$('a[data-id = "'+m.executedQueryTab.id+'"]').tab("show")}function Q(e){for(let n=0;n<m.tabs.length;n++){if(m.tabs[n].id===e)return n}}function O(e){return angular.isDefined(e)&&"false"!==e}function D(e,t,r){const o=m.getExistingTabId(e),a=m.$on("tabLoaded",(function(){angular.isDefined(t)&&(m.currentQuery.inference=O(t)),angular.isDefined(r)&&(m.currentQuery.sameAs=O(r)),O(n.search().execute)&&("update"===window.editor.getQueryMode()?s.openSimpleModal({title:"Confirm execute",message:"This is an update and it may change the data in the repository.<br>Are you sure you want to execute it automatically?",warning:!0}).result.then((function(){m.runQuery(!1)})):m.runQuery(!1)),a()}));m.highlightNextTabChange=!0,angular.isDefined(o)?w(o):m.addNewTab(null,e.name,e.body)}function B(){if(n.search().savedQueryName)e=n.search().savedQueryName,r=n.search().owner,o=n.search().infer,i=n.search().sameAs,a.getSavedQuery(e,r).success((function(e){D(e,o,i)})).error((function(n){t.error("Could not get data for saved query: "+e+"; "+getError(n))}));else if(n.search().query){D({name:n.search().name,body:n.search().query},n.search().infer,n.search().sameAs)}else{w(p.get(g.TABS_STATE_CURRENT_ID))}var e,r,o,i}function U(){m.getNamespaces(),o.a.signal(window.editor,"repositoryOrAuthorizationChanged",r.getActiveRepository(),c.getAuthToken()),B()}o.a.getAjaxConfig=function(e,n){const t=k(e,n);return _.extend(t.headers,{Authorization:c.getAuthToken()}),t},m.copyToClipboardQuery=function(e,n){s.openCopyToClipboardModal(function(e,n){let t=[location.protocol,"//",location.host,location.pathname].join("");e?(t=t+"?savedQueryName="+encodeURIComponent(e),null!=n&&(t+="&owner="+encodeURIComponent(n))):t=t+"?"+$.param({name:m.currentQuery.name,infer:m.currentQuery.inference,sameAs:m.currentQuery.sameAs,query:window.editor.getValue()});return t}(e,n))},m.copyToClipboardResult=function(e){s.openCopyToClipboardModal(e)},m.goToVisual=function(){const e={query:window.editor.getValue(),sameAs:m.currentQuery.sameAs,inference:m.currentQuery.inference};n.path("graphs-visualizations").search(e)},$("textarea").on("paste",(function(){e((function(){m.addKnownPrefixes()}),0)})),E=i()(document.getElementById("yasr"),{getUsedPrefixes:{},persistency:!1}),window.yasr=E,E.afterCopy=v,E.getQueryResultsAsFormat=function(e){const n=$("#wb-download");n.attr("action","repositories/"+r.getActiveRepository()),$("#wb-download-query").val(m.currentQuery.query),window.editor.getValue()!==m.currentQuery.query&&t.warning("The query in your editor does not match the query results. Download will save the results from the last executed query."),$("#wb-download-infer").val(m.currentQuery.inference),$("#wb-download-sameAs").val(m.currentQuery.sameAs);const o=localStorage.getItem("com.ontotext.graphdb.auth");o&&$("#wb-auth-token").val(o),$("#wb-download-accept").val(e),n.submit()},window.editor.options.sparql.handlers.complete=function(n,r,o){function a(){q(n,r,o)}if(A&&A.dismiss("cancel"),null===window.editor)return void m.setLoader(!1);if(m.currentTabConfig.errorMessage=n.getResponseHeader("X-GraphDB-Error"),m.currentTabConfig.warningMessage=n.getResponseHeader("X-GraphDB-Warning"),E.currentQuery=m.currentQuery,m.currentTabConfig.timeFinished=Date.now(),m.currentTabConfig.timeTook=(m.currentTabConfig.timeFinished-m.queryStartTime)/1e3,n.status>=400)return n.responseText=n.responseText.replace(/^([^: ]+: )+/,""),m.currentTabConfig.queryType="ERROR",a(),m.setYasrResponse(n,r,o),void m.setLoader(!1);if(0===n.status){m.currentTabConfig.queryType="ERROR";const e=x(-1,"Request was aborted","The request has been aborted. There are no results to show.");return E.results={getException:function(){return e}},m.setLoader(!1),void q({customError:e},"",null)}let i;if(m.setLoader(!1),"update"===window.editor.getQueryMode())i=function(){l.getRepositorySize().success((function(e){let n;void 0!==m.repoSize&&(n=Number(e)-m.repoSize),m.currentTabConfig.sizeDelta=n,a()})).error((function(e){t.warning("Could not get repository size for: "+m.getActiveRepository()+"; "+getError(e)),m.currentTabConfig.sizeDelta=void 0,a()}))};else{if(200===n.status){const e=n.getResponseHeader("Content-Type");0!==e.indexOf("application/sparql-results+json")&&0!==e.indexOf("application/x-sparqlstar-results+json")&&0!==e.indexOf("application/x-graphdb-table-results+json")||n.responseJSON.results&&(m.currentTabConfig.resultsCount=n.responseJSON.results.bindings.length,n.responseJSON.results.bindings.length>m.currentTabConfig.pageSize&&(n.responseJSON.results.bindings.length=m.currentTabConfig.pageSize),m.currentTabConfig.allResultsCountExact||((m.nocount||m.countTimeouted||m.currentTabConfig.resultsCount<=m.currentTabConfig.pageSize)&&(n.status=204),m.currentTabConfig.allResultsCount=Math.max(m.currentTabConfig.allResultsCount,m.currentTabConfig.pageSize*(m.currentTabConfig.page-1)+m.currentTabConfig.resultsCount),m.currentTabConfig.resultsCount<=m.currentTabConfig.pageSize&&(m.currentTabConfig.allResultsCountExact=!0)))}m.setLoader(!0,"Rendering results",null,!0),i=function(){m.setYasrResponse(n,r,o),a(),m.setLoader(!1)}}e((function(){i(),"CONSTRUCT"!==window.editor.getQueryType()?($(".yasr_btnGroup.nav.nav-tabs li a.disabled").removeClass("disabled").css("font-weight","400"),$(".yasr_btnGroup.nav.nav-tabs li.disabled a").addClass("disabled").css("font-weight","200"),"DESCRIBE"===window.editor.getQueryType()&&$(".yasr_btnGroup.nav.nav-tabs li a").removeClass("disabled").css("font-weight","400")):"CONSTRUCT"===window.editor.getQueryType()&&$(".yasr_btnGroup.nav.nav-tabs li a.disabled").removeClass("disabled").css("font-weight","400"),$("#yasr").css("padding","0"),$(".yasr_btnGroup li:nth-child(2)").hasClass("active")&&e((function(){$(".yasr_btnGroup li:nth-child(2) a").get(0).click()}),100),$("#wb-sparql-addNewTab").click((function(){$(".dataTables_filter").hide(),$(".resultsTable").hide()}))}),100)},window.editor.options.sparql.handlers.resetResults=function(){},m.yasr=E,m.setYasrResponse=function(e,n,t){e.responseJSON&&(e.response=e.responseJSON,e.responseText=void 0),E.setResponse(e,n,t)},m.$watch("yasr.options.output",(function(e){if(e&&"UPDATE"!==m.currentTabConfig.queryType&&"ASK"!==m.currentTabConfig.queryType){const n=m.tabs[Q(m.currentQuery.id)];angular.isDefined(n)&&m.currentTabConfig.queryType&&n.outputType!==e&&(n.outputType=m.currentQuery.outputType=e,m.saveTab(n.id))}})),void m.$watch("namespaces",(function(){m.namespaces&&(E&&E.options&&m.namespaces&&(E.options.getUsedPrefixes=m.namespaces),o.a.signal(window.editor,"namespacesChanged",m.namespaces))})),$(document).mouseup((function(e){const n=$("#sampleQueriesCollapse");!n.is(e.target)&&0===n.has(e.target).length&&m.showSampleQueries&&m.toggleSampleQueries()})),r.getActiveRepository()&&U();m.$on("repositoryIsSet",(function(){r.getActiveRepository()&&U()})),e((function(){angular.element(document).find(".CodeMirror textarea:first-child").focus()}),50)}(m)}),150)}}}angular.module("graphdb.framework.core.directives.queryeditor.queryeditor",["ngCookies","graphdb.framework.externalsync.controllers","graphdb.framework.rest.connectors.service","graphdb.framework.utils.localstorageadapter"]).directive("queryEditor",s),s.$inject=["$timeout","$location","toastr","$repositories","SparqlRestService","ModalService","$modal","$jwtAuth","RDF4JRepositoriesRestService","ConnectorsRestService","LocalStorageAdapter","LSKeys"]}}]);
|
|
2
|
-
//# sourceMappingURL=26.02814d2ed726f5a71d4e.bundle.js.map
|