graphdb-workbench 2.1.2 → 2.1.3-TR1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{0.1bd9b49fd9f95db7afda.bundle.js → 0.6f85dbec9122f837f5e7.bundle.js} +3 -3
- package/dist/0.6f85dbec9122f837f5e7.bundle.js.map +1 -0
- package/dist/{10.cabc799d9aabc46e7be7.bundle.js → 10.0d7e127640f8c0678145.bundle.js} +2 -2
- package/dist/{10.cabc799d9aabc46e7be7.bundle.js.map → 10.0d7e127640f8c0678145.bundle.js.map} +1 -1
- package/dist/{100.24bbc960b22ec8f26f68.bundle.js → 100.8a2c21d9df10d17f9291.bundle.js} +2 -2
- package/dist/{100.24bbc960b22ec8f26f68.bundle.js.map → 100.8a2c21d9df10d17f9291.bundle.js.map} +1 -1
- package/dist/{11.b2fd98471071348c3964.bundle.js → 11.c8ad938cfc97d57b4d9e.bundle.js} +2 -2
- package/dist/{11.b2fd98471071348c3964.bundle.js.map → 11.c8ad938cfc97d57b4d9e.bundle.js.map} +1 -1
- package/dist/{110.7419abdcd9b1e7b062ad.bundle.js → 110.4c6719423e79f089e594.bundle.js} +2 -2
- package/dist/{110.7419abdcd9b1e7b062ad.bundle.js.map → 110.4c6719423e79f089e594.bundle.js.map} +1 -1
- package/dist/{111.87635664a5306fc0c6bb.bundle.js → 111.93eb21f8bd85a9ef5d1b.bundle.js} +2 -2
- package/dist/{111.87635664a5306fc0c6bb.bundle.js.map → 111.93eb21f8bd85a9ef5d1b.bundle.js.map} +1 -1
- package/dist/{113.2a67bc73a80f0bbf6397.bundle.js → 113.b77f2a783cadc7a2d428.bundle.js} +2 -2
- package/dist/{113.2a67bc73a80f0bbf6397.bundle.js.map → 113.b77f2a783cadc7a2d428.bundle.js.map} +1 -1
- package/dist/114.db473421180e7bce6495.bundle.js +2 -0
- package/dist/114.db473421180e7bce6495.bundle.js.map +1 -0
- package/dist/{115.6751a154fb77d1efeec8.bundle.js → 115.00597ad4f535ccc61e03.bundle.js} +2 -2
- package/dist/{115.6751a154fb77d1efeec8.bundle.js.map → 115.00597ad4f535ccc61e03.bundle.js.map} +1 -1
- package/dist/{116.75f79d13526f131b61f0.bundle.js → 116.7a3c48b8b4348e54c7fd.bundle.js} +2 -2
- package/dist/{116.75f79d13526f131b61f0.bundle.js.map → 116.7a3c48b8b4348e54c7fd.bundle.js.map} +1 -1
- package/dist/{117.17c60bd040eada2f965d.bundle.js → 117.49b3141cc6594af99fbf.bundle.js} +2 -2
- package/dist/{117.17c60bd040eada2f965d.bundle.js.map → 117.49b3141cc6594af99fbf.bundle.js.map} +1 -1
- package/dist/{118.fc48834f75995ef9202f.bundle.js → 118.e1ebd5f3d7cf4f8e013a.bundle.js} +2 -2
- package/dist/{118.fc48834f75995ef9202f.bundle.js.map → 118.e1ebd5f3d7cf4f8e013a.bundle.js.map} +1 -1
- package/dist/{119.44cc6552449537efa8f5.bundle.js → 119.0427b867fee545388a66.bundle.js} +2 -2
- package/dist/{119.44cc6552449537efa8f5.bundle.js.map → 119.0427b867fee545388a66.bundle.js.map} +1 -1
- package/dist/{12.c008cc99a0d358fd58b7.bundle.js → 12.6bd2906fb955b8456713.bundle.js} +3 -3
- package/dist/{12.c008cc99a0d358fd58b7.bundle.js.map → 12.6bd2906fb955b8456713.bundle.js.map} +1 -1
- package/dist/{120.8f48d9b3f8071e4c42fd.bundle.js → 120.923b20db8c2c297742d8.bundle.js} +2 -2
- package/dist/{120.8f48d9b3f8071e4c42fd.bundle.js.map → 120.923b20db8c2c297742d8.bundle.js.map} +1 -1
- package/dist/13.d7290e4e69a54c71e974.bundle.js +3 -0
- package/dist/13.d7290e4e69a54c71e974.bundle.js.map +1 -0
- package/dist/136.3199d393576be61f53fd.bundle.js +1 -1
- package/dist/136.3199d393576be61f53fd.bundle.js.map +1 -1
- package/dist/14.638a884323fe9235b58f.bundle.js +2 -0
- package/dist/14.638a884323fe9235b58f.bundle.js.map +1 -0
- package/dist/{15.e870cbcf6346cc68bd66.bundle.js → 15.244542a39d9296cc4fd8.bundle.js} +2 -2
- package/dist/{15.e870cbcf6346cc68bd66.bundle.js.map → 15.244542a39d9296cc4fd8.bundle.js.map} +1 -1
- package/dist/{16.23e12f234078c8777ed0.bundle.js → 16.3b52e17f123523d84054.bundle.js} +2 -2
- package/dist/{16.23e12f234078c8777ed0.bundle.js.map → 16.3b52e17f123523d84054.bundle.js.map} +1 -1
- package/dist/{17.d1ac5f88f9ef9ee1c789.bundle.js → 17.a417430fca1e34e80912.bundle.js} +2 -2
- package/dist/{17.d1ac5f88f9ef9ee1c789.bundle.js.map → 17.a417430fca1e34e80912.bundle.js.map} +1 -1
- package/dist/{18.63478730d60e02069d90.bundle.js → 18.d6e541cf8e651a6d223e.bundle.js} +2 -2
- package/dist/{18.63478730d60e02069d90.bundle.js.map → 18.d6e541cf8e651a6d223e.bundle.js.map} +1 -1
- package/dist/19.b5b3699a309774176fc3.bundle.js +1 -1
- package/dist/19.b5b3699a309774176fc3.bundle.js.map +1 -1
- package/dist/{20.d707dfb57f695469ffaa.bundle.js → 20.a40b79082e0f2a9b3511.bundle.js} +2 -2
- package/dist/{20.d707dfb57f695469ffaa.bundle.js.map → 20.a40b79082e0f2a9b3511.bundle.js.map} +1 -1
- package/dist/{22.e1562d53daf95dd1fdca.bundle.js → 22.5f70a951e87768500861.bundle.js} +2 -2
- package/dist/{22.e1562d53daf95dd1fdca.bundle.js.map → 22.5f70a951e87768500861.bundle.js.map} +1 -1
- package/dist/{23.c1b822e6ccc61632355b.bundle.js → 23.3b94ee5770665e9f7ad6.bundle.js} +2 -2
- package/dist/{23.c1b822e6ccc61632355b.bundle.js.map → 23.3b94ee5770665e9f7ad6.bundle.js.map} +1 -1
- package/dist/{25.8c30b7bafb4875a3cc51.bundle.js → 25.7d9b6d389e1b3c30a2af.bundle.js} +2 -2
- package/dist/{25.8c30b7bafb4875a3cc51.bundle.js.map → 25.7d9b6d389e1b3c30a2af.bundle.js.map} +1 -1
- package/dist/26.176ffe2071a8d5d382b6.bundle.js +1 -1
- package/dist/26.176ffe2071a8d5d382b6.bundle.js.map +1 -1
- package/dist/{27.be71055c959c1ac75177.bundle.js → 27.5f249c88f0d56e478227.bundle.js} +2 -2
- package/dist/{27.be71055c959c1ac75177.bundle.js.map → 27.5f249c88f0d56e478227.bundle.js.map} +1 -1
- package/dist/{29.54cbff989a44a0f71dfd.bundle.js → 29.263746fd089adc12c9eb.bundle.js} +2 -2
- package/dist/{29.54cbff989a44a0f71dfd.bundle.js.map → 29.263746fd089adc12c9eb.bundle.js.map} +1 -1
- package/dist/31.4ecdb66b2c224a63525e.bundle.js +1 -1
- package/dist/31.4ecdb66b2c224a63525e.bundle.js.map +1 -1
- package/dist/{32.2582e2eccf29e8d5ec80.bundle.js → 32.31e5cd1ae5b1b26d0bc9.bundle.js} +2 -2
- package/dist/{32.2582e2eccf29e8d5ec80.bundle.js.map → 32.31e5cd1ae5b1b26d0bc9.bundle.js.map} +1 -1
- package/dist/34.024934549565ec56f905.bundle.js +2 -0
- package/dist/34.024934549565ec56f905.bundle.js.map +1 -0
- package/dist/{37.ef412d4cbc60967faa5e.bundle.js → 37.48944284f495dd519b6b.bundle.js} +2 -2
- package/dist/{37.ef412d4cbc60967faa5e.bundle.js.map → 37.48944284f495dd519b6b.bundle.js.map} +1 -1
- package/dist/{39.be2d8c75e4ab391ba984.bundle.js → 39.cd39b4ee76d8238325b0.bundle.js} +2 -2
- package/dist/{39.be2d8c75e4ab391ba984.bundle.js.map → 39.cd39b4ee76d8238325b0.bundle.js.map} +1 -1
- package/dist/{40.9272ebe1d2246ae3054f.bundle.js → 40.ba69b25514acd93c43c1.bundle.js} +2 -2
- package/dist/{40.9272ebe1d2246ae3054f.bundle.js.map → 40.ba69b25514acd93c43c1.bundle.js.map} +1 -1
- package/dist/{41.f69dd805b7e51756518f.bundle.js → 41.97280c0900f9b44ab8aa.bundle.js} +2 -2
- package/dist/{41.f69dd805b7e51756518f.bundle.js.map → 41.97280c0900f9b44ab8aa.bundle.js.map} +1 -1
- package/dist/43.166d4f55ba11d29b26ce.bundle.js +2 -0
- package/dist/43.166d4f55ba11d29b26ce.bundle.js.map +1 -0
- package/dist/46.c417c82de953a16f7489.bundle.js +2 -0
- package/dist/{46.a9d1c07290ab98930744.bundle.js.map → 46.c417c82de953a16f7489.bundle.js.map} +1 -1
- package/dist/{48.3c8d17c03f3fc081be89.bundle.js → 48.1c439f5ade00b986bb85.bundle.js} +2 -2
- package/dist/{48.3c8d17c03f3fc081be89.bundle.js.map → 48.1c439f5ade00b986bb85.bundle.js.map} +1 -1
- package/dist/{55.10bb020070b8c5910e4c.bundle.js → 55.80d6a899d8af7d382755.bundle.js} +2 -2
- package/dist/{55.10bb020070b8c5910e4c.bundle.js.map → 55.80d6a899d8af7d382755.bundle.js.map} +1 -1
- package/dist/{57.f432e4a7f6dbf5fa9e6e.bundle.js → 57.ff1a43af23df1c3e9eb6.bundle.js} +2 -2
- package/dist/{57.f432e4a7f6dbf5fa9e6e.bundle.js.map → 57.ff1a43af23df1c3e9eb6.bundle.js.map} +1 -1
- package/dist/{59.feebf4602360cb8257bb.bundle.js → 59.21763503ec43ce516ba9.bundle.js} +2 -2
- package/dist/{59.feebf4602360cb8257bb.bundle.js.map → 59.21763503ec43ce516ba9.bundle.js.map} +1 -1
- package/dist/{67.58d8539fcac19288b820.bundle.js → 67.d3301189c6f359502b7a.bundle.js} +2 -2
- package/dist/{67.58d8539fcac19288b820.bundle.js.map → 67.d3301189c6f359502b7a.bundle.js.map} +1 -1
- package/dist/{70.ede527b8438e19a67ebc.bundle.js → 70.bab18e599872f9ceb5bb.bundle.js} +2 -2
- package/dist/{70.ede527b8438e19a67ebc.bundle.js.map → 70.bab18e599872f9ceb5bb.bundle.js.map} +1 -1
- package/dist/{71.2ddcb945966fd051a3a1.bundle.js → 71.496a9c92cd02ea797086.bundle.js} +2 -2
- package/dist/{71.2ddcb945966fd051a3a1.bundle.js.map → 71.496a9c92cd02ea797086.bundle.js.map} +1 -1
- package/dist/{72.d2f8a53e83efcb8ab953.bundle.js → 72.e74783723284db9f1039.bundle.js} +2 -2
- package/dist/{72.d2f8a53e83efcb8ab953.bundle.js.map → 72.e74783723284db9f1039.bundle.js.map} +1 -1
- package/dist/{73.c29f06e5825684d56a9c.bundle.js → 73.c5ea427972a9d61d8bcf.bundle.js} +2 -2
- package/dist/{73.c29f06e5825684d56a9c.bundle.js.map → 73.c5ea427972a9d61d8bcf.bundle.js.map} +1 -1
- package/dist/{74.b50a23c1751e0fc30aec.bundle.js → 74.87400dce971708ada9bc.bundle.js} +2 -2
- package/dist/{74.b50a23c1751e0fc30aec.bundle.js.map → 74.87400dce971708ada9bc.bundle.js.map} +1 -1
- package/dist/{75.4f9197361b6427d97b6c.bundle.js → 75.f7026115ff4d35c53061.bundle.js} +2 -2
- package/dist/{75.4f9197361b6427d97b6c.bundle.js.map → 75.f7026115ff4d35c53061.bundle.js.map} +1 -1
- package/dist/{76.467d072ae323ab41fd3d.bundle.js → 76.7ed7e2f7802914105a2b.bundle.js} +2 -2
- package/dist/{76.467d072ae323ab41fd3d.bundle.js.map → 76.7ed7e2f7802914105a2b.bundle.js.map} +1 -1
- package/dist/{77.41a60a354d0fb3103b00.bundle.js → 77.8df8d6516be14b18a7c2.bundle.js} +2 -2
- package/dist/{77.41a60a354d0fb3103b00.bundle.js.map → 77.8df8d6516be14b18a7c2.bundle.js.map} +1 -1
- package/dist/{78.7de8a0f70f6dc1debd05.bundle.js → 78.3d0eba733bb5b528ee23.bundle.js} +2 -2
- package/dist/{78.7de8a0f70f6dc1debd05.bundle.js.map → 78.3d0eba733bb5b528ee23.bundle.js.map} +1 -1
- package/dist/{79.2f8b2ebcbd07d466c913.bundle.js → 79.f2adb62d49e1ff69c73d.bundle.js} +2 -2
- package/dist/{79.2f8b2ebcbd07d466c913.bundle.js.map → 79.f2adb62d49e1ff69c73d.bundle.js.map} +1 -1
- package/dist/{8.b21d6a5c1a9412deb34f.bundle.js → 8.fd2fec54b66b2afe1253.bundle.js} +2 -2
- package/dist/8.fd2fec54b66b2afe1253.bundle.js.map +1 -0
- package/dist/{80.8e71a1aaf3beb2320bf0.bundle.js → 80.40f6ab44b0f5a37f1f1b.bundle.js} +2 -2
- package/dist/{80.8e71a1aaf3beb2320bf0.bundle.js.map → 80.40f6ab44b0f5a37f1f1b.bundle.js.map} +1 -1
- package/dist/{81.2939c5d2b47cf48be6d5.bundle.js → 81.63bb784ce719c97dccc2.bundle.js} +2 -2
- package/dist/{81.2939c5d2b47cf48be6d5.bundle.js.map → 81.63bb784ce719c97dccc2.bundle.js.map} +1 -1
- package/dist/{82.69913e9f45a1dd96c6be.bundle.js → 82.f722c4f985e7c7375b7d.bundle.js} +2 -2
- package/dist/{82.69913e9f45a1dd96c6be.bundle.js.map → 82.f722c4f985e7c7375b7d.bundle.js.map} +1 -1
- package/dist/83.73515cde0a2215275d32.bundle.js +1 -1
- package/dist/83.73515cde0a2215275d32.bundle.js.map +1 -1
- package/dist/{84.5e89f3253c2c5885f662.bundle.js → 84.ed814bb2e6caa09eaf59.bundle.js} +2 -2
- package/dist/{84.5e89f3253c2c5885f662.bundle.js.map → 84.ed814bb2e6caa09eaf59.bundle.js.map} +1 -1
- package/dist/{85.f6ae072160876c4c5beb.bundle.js → 85.c1a85a647349f948774e.bundle.js} +2 -2
- package/dist/{85.f6ae072160876c4c5beb.bundle.js.map → 85.c1a85a647349f948774e.bundle.js.map} +1 -1
- package/dist/{88.4bfa7b74511d52c5c42f.bundle.js → 88.d3afc4e8e2613c803b60.bundle.js} +2 -2
- package/dist/{88.4bfa7b74511d52c5c42f.bundle.js.map → 88.d3afc4e8e2613c803b60.bundle.js.map} +1 -1
- package/dist/{89.6e767bc84921c435570c.bundle.js → 89.e206f700717532b86d4a.bundle.js} +2 -2
- package/dist/{89.6e767bc84921c435570c.bundle.js.map → 89.e206f700717532b86d4a.bundle.js.map} +1 -1
- package/dist/{90.5c5efc19e9053c029343.bundle.js → 90.192cdf37db2b7fe57457.bundle.js} +2 -2
- package/dist/{90.5c5efc19e9053c029343.bundle.js.map → 90.192cdf37db2b7fe57457.bundle.js.map} +1 -1
- package/dist/{92.b601c9bc8133fcf28163.bundle.js → 92.3adcb08e3ce3aa2196d9.bundle.js} +2 -2
- package/dist/{92.b601c9bc8133fcf28163.bundle.js.map → 92.3adcb08e3ce3aa2196d9.bundle.js.map} +1 -1
- package/dist/{94.4b1ada797602e279b977.bundle.js → 94.b7d4fbf7b903b58bbb9f.bundle.js} +2 -2
- package/dist/{94.4b1ada797602e279b977.bundle.js.map → 94.b7d4fbf7b903b58bbb9f.bundle.js.map} +1 -1
- package/dist/{95.95758068abd9eac4ed40.bundle.js → 95.4f4ec7e3bf1e54b69e22.bundle.js} +2 -2
- package/dist/{95.95758068abd9eac4ed40.bundle.js.map → 95.4f4ec7e3bf1e54b69e22.bundle.js.map} +1 -1
- package/dist/{98.8f1b6e94748a6049ed93.bundle.js → 98.46fcd4b9d0cee530a965.bundle.js} +2 -2
- package/dist/{98.8f1b6e94748a6049ed93.bundle.js.map → 98.46fcd4b9d0cee530a965.bundle.js.map} +1 -1
- package/dist/{bundle.595d7082ecc6c2683c9a.bundle.js → bundle.e02c0ceb3243288288de.bundle.js} +15 -15
- package/dist/bundle.e02c0ceb3243288288de.bundle.js.map +1 -0
- package/dist/css/yasr.custom.css +5 -1
- package/dist/index.html +4 -4
- package/dist/js/angular/core/directives/rdfresourcesearch/templates/rdfResourceSearchTemplate.html +1 -1
- package/dist/{main.96399f8393ca515638d2.bundle.js → main.e83e6336936d01c58d59.bundle.js} +2 -2
- package/dist/{main.96399f8393ca515638d2.bundle.js.map → main.e83e6336936d01c58d59.bundle.js.map} +1 -1
- package/dist/{main.c3519a595e24d0a69ccd.css → main.fa014240754b8b1655a9.css} +1 -1
- package/dist/pages/autocomplete.html +1 -1
- package/dist/pages/choose-repository-type.html +1 -1
- package/dist/pages/cluster-management/clusterInfo.html +3 -3
- 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 +15 -15
- package/dist/pages/graphs-visualizations.html +14 -14
- package/dist/pages/guides.html +1 -1
- 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 +4 -4
- package/dist/pages/plugins.html +1 -1
- 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 +27 -27
- package/dist/{vendor.31cf390ca240d8cd1ef3.bundle.js → vendor.7492dbcfefe195da8d15.bundle.js} +6 -6
- package/dist/{vendor.31cf390ca240d8cd1ef3.bundle.js.map → vendor.7492dbcfefe195da8d15.bundle.js.map} +1 -1
- package/package.json +1 -1
- package/dist/0.1bd9b49fd9f95db7afda.bundle.js.map +0 -1
- package/dist/114.ed2c2d1606cd75dbd7c6.bundle.js +0 -2
- package/dist/114.ed2c2d1606cd75dbd7c6.bundle.js.map +0 -1
- package/dist/13.9b9388352980715b16bb.bundle.js +0 -3
- package/dist/13.9b9388352980715b16bb.bundle.js.map +0 -1
- package/dist/14.c512cd1282fe7dec36bf.bundle.js +0 -2
- package/dist/14.c512cd1282fe7dec36bf.bundle.js.map +0 -1
- package/dist/34.100b126b4d89e99d4ac4.bundle.js +0 -2
- package/dist/34.100b126b4d89e99d4ac4.bundle.js.map +0 -1
- package/dist/43.f76be157f75bc7b3ea68.bundle.js +0 -2
- package/dist/43.f76be157f75bc7b3ea68.bundle.js.map +0 -1
- package/dist/46.a9d1c07290ab98930744.bundle.js +0 -2
- package/dist/8.b21d6a5c1a9412deb34f.bundle.js.map +0 -1
- package/dist/bundle.595d7082ecc6c2683c9a.bundle.js.map +0 -1
package/dist/{11.b2fd98471071348c3964.bundle.js.map → 11.c8ad938cfc97d57b4d9e.bundle.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack:///./src/js/angular/security/controllers.js"],"names":["createUniqueKey","repository","location","id","securityCtrl","angular","module","parseAuthorities","authorities","userType","USER","grantedAuthorities","repositories","i","length","role","ROLE_ADMIN","ADMIN","ROLE_REPO_MANAGER","REPO_MANAGER","ROLE_USER","indexOf","index","op","substr","repo","read","write","userTypeDescription","getUserRoleName","controller","$scope","$http","toastr","$jwtAuth","$openIDAuth","$location","$rootScope","$translate","username","password","reinitializeSecurity","loginWithOpenID","loginOpenID","search","noaccess","error","instant","expired","isGDBLoginEnabled","passwordLoginEnabled","isOpenIDEnabled","openIDEnabled","login","method","url","data","success","status","headers","authenticate","then","returnToUrl","path","wrongCredentials","msg","getError","$modal","$window","$timeout","ModalService","SecurityRestService","loader","securityEnabled","isSecurityEnabled","hasExternalAuth","getAuthImplementation","freeAccessEnabled","isFreeAccessEnabled","getUsers","users","pa","$on","toggleSecurity","timer","reload","cancel","toggleFreeAccess","updateFreeAccess","getFreeAccess","res","appSettings","open","templateUrl","resolve","defaultAuthorities","repoIds","_","mapKeys","getRepositories","r","each","a","hasOwnProperty","result","editFreeAccess","removeUser","openSimpleModal","title","message","name","warning","deleteUser","encodeURIComponent","$modalInstance","hasActiveLocation","isEmpty","globalLocation","globalRepositories","ok","auth","repositoryCheckError","WRITE_REPO","push","READ_REPO","close","dismiss","passwordPlaceholder","isAdmin","hasRole","hasEditRestrictions","user","isOverrideAuth","isDefaultAuthEnabled","setGrantedAuthorities","pushAuthority","arguments","authority","hasReadPermission","uniqueKey","hasWritePermission","repoOrWildCard","readCheckDisabled","writeCheckDisabled","validatePassword","noPassword","passwordError","confirmPasswordError","confirmpassword","isLocalAuthentication","updateUser","validateForm","updateUserHttp","setNoPassword","shouldDisableSameAs","sameAsCheckbox","$","DEFAULT_INFERENCE","prop","DEFAULT_SAMEAS","$controller","extend","this","mode","saveButtonText","goBack","history","back","pageTitle","submit","createUser","createUserHttp","pass","usernameError","$routeParams","params","userId","defaultUserSettings","getUserData","getUser","userData","external","undefined","getPrincipal","principal","debugMapping","mapping","split","getRolesMapping","getRoles","roleMappings","roles","keys","mappings","permissionsCount","map","filter","reverse","orderBy","p","LocalStorageAdapter","LSKeys","$q","currentUserData","copy","redirectAdmin","initUserData","showWorkbenchSettings","updateCurrentUserData","when","assign","redirectToLogin","scope","updateUserData","set","WORKBENCH_SETTINGS","workbenchSettings","setWorkbenchTheme","rootElement","document","querySelector","theme","classList","add","remove","get"],"mappings":"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","file":"11.b2fd98471071348c3964.bundle.js","sourcesContent":["import 'angular/core/services';\nimport 'angular/core/services/jwt-auth.service';\nimport 'angular/core/services/openid-auth.service';\nimport 'angular/rest/security.rest.service';\nimport {UserUtils, UserRole, UserType} from 'angular/utils/user-utils';\n\nconst SYSTEM_REPO = 'SYSTEM';\nconst READ_REPO = 'READ_REPO';\nconst READ_REPO_PREFIX = 'READ_REPO_';\nconst WRITE_REPO = 'WRITE_REPO';\nconst WRITE_REPO_PREFIX = 'WRITE_REPO_';\n\nconst modules = [\n 'ngCookies',\n 'ui.bootstrap',\n 'graphdb.framework.core.services.jwtauth',\n 'graphdb.framework.core.services.openIDService',\n 'graphdb.framework.rest.security.service',\n 'graphdb.framework.utils.localstorageadapter',\n 'toastr'\n];\n\nconst createUniqueKey = function (repository) {\n if (repository.location) {\n return `${repository.id}@${repository.location}`;\n }\n return repository.id;\n};\n\nconst securityCtrl = angular.module('graphdb.framework.security.controllers', modules);\n\nconst setGrantedAuthorities = function ($scope) {\n function pushAuthority() {\n for (let i = 0; i < arguments.length; i++) {\n const authority = arguments[i];\n if (_.indexOf($scope.user.grantedAuthorities, authority) < 0) {\n $scope.user.grantedAuthorities.push(authority);\n }\n }\n }\n\n $scope.user.grantedAuthorities = [];\n\n $scope.repositoryCheckError = true;\n if ($scope.userType === UserType.ADMIN) {\n $scope.repositoryCheckError = false;\n pushAuthority(UserRole.ROLE_ADMIN);\n } else if ($scope.userType === UserType.REPO_MANAGER) {\n $scope.repositoryCheckError = false;\n pushAuthority(UserRole.ROLE_REPO_MANAGER);\n } else {\n pushAuthority(UserRole.ROLE_USER);\n for (const index in $scope.grantedAuthorities.WRITE_REPO) {\n if ($scope.grantedAuthorities.WRITE_REPO[index]) {\n $scope.repositoryCheckError = false;\n pushAuthority(WRITE_REPO_PREFIX + index, READ_REPO_PREFIX + index);\n }\n }\n for (const index in $scope.grantedAuthorities.READ_REPO) {\n if ($scope.grantedAuthorities.READ_REPO[index]) {\n $scope.repositoryCheckError = false;\n pushAuthority(READ_REPO_PREFIX + index);\n }\n }\n }\n};\n\nconst parseAuthorities = function (authorities) {\n let userType = UserType.USER;\n const grantedAuthorities = {\n [READ_REPO]: {},\n [WRITE_REPO]: {}\n };\n const repositories = {};\n for (let i = 0; i < authorities.length; i++) {\n const role = authorities[i];\n if (role === UserRole.ROLE_ADMIN) {\n userType = UserType.ADMIN;\n } else if (role === UserRole.ROLE_REPO_MANAGER) {\n if (userType !== UserType.ADMIN) {\n userType = UserType.REPO_MANAGER;\n }\n } else if (role === UserRole.ROLE_USER) {\n userType = UserType.USER;\n } else if (role.indexOf('ROLE_') !== 0) {\n const index = role.indexOf('_', role.indexOf('_') + 1);\n const op = role.substr(0, index);\n const repo = role.substr(index + 1);\n grantedAuthorities[op][repo] = true;\n repositories[repo] = repositories[repo] || {};\n if (op === READ_REPO) {\n repositories[repo].read = true;\n } else if (op === WRITE_REPO) {\n repositories[repo].write = true;\n }\n }\n }\n\n return {\n userType: userType,\n userTypeDescription: UserUtils.getUserRoleName(userType),\n grantedAuthorities: grantedAuthorities,\n repositories: repositories\n };\n};\n\nsecurityCtrl.controller('LoginCtrl', ['$scope', '$http', 'toastr', '$jwtAuth', '$openIDAuth', '$location', '$rootScope', '$translate',\n function ($scope, $http, toastr, $jwtAuth, $openIDAuth, $location, $rootScope, $translate) {\n $scope.username = '';\n $scope.password = '';\n\n // Reinitialize security settings, if failed for some reason\n $jwtAuth.reinitializeSecurity();\n\n $scope.loginWithOpenID = function() {\n $jwtAuth.loginOpenID();\n };\n\n if ($location.search().noaccess) {\n toastr.error($translate.instant('security.no.rights.config.error'), $translate.instant('security.login.error'));\n } else if ($location.search().expired) {\n toastr.error($translate.instant('security.auth.token.expired'), $translate.instant('security.login.error'));\n }\n\n $scope.isGDBLoginEnabled = function() {\n return $jwtAuth.passwordLoginEnabled;\n };\n\n $scope.isOpenIDEnabled = function() {\n return $jwtAuth.openIDEnabled;\n };\n\n $scope.login = function () {\n return $http({\n method: 'POST',\n url: 'rest/login',\n data: {\n 'username': $scope.username,\n 'password': $scope.password\n }\n }).success(function (data, status, headers) {\n $jwtAuth.authenticate(data, headers('Authorization'))\n .then(() => {\n if ($rootScope.returnToUrl) {\n // go back to remembered url\n $location.url($rootScope.returnToUrl);\n } else {\n // don't have a remembered url, go home\n $location.path('/');\n }\n });\n }).error(function (data, status) {\n if (status === 401) {\n toastr.error($translate.instant('security.wrong.credentials'), $translate.instant('common.error'));\n $scope.wrongCredentials = true;\n $scope.username = '';\n $scope.password = '';\n } else {\n const msg = getError(data);\n toastr.error(msg, status);\n }\n });\n };\n }]);\n\nsecurityCtrl.controller('UsersCtrl', ['$scope', '$modal', 'toastr', '$window', '$jwtAuth', '$timeout', 'ModalService', 'SecurityRestService', '$translate',\n function ($scope, $modal, toastr, $window, $jwtAuth, $timeout, ModalService, SecurityRestService, $translate) {\n\n $scope.loader = true;\n $scope.securityEnabled = function () {\n return $jwtAuth.isSecurityEnabled();\n };\n $scope.hasExternalAuth = function () {\n return $jwtAuth.hasExternalAuth();\n };\n $scope.getAuthImplementation = function () {\n return $jwtAuth.getAuthImplementation();\n };\n $scope.freeAccessEnabled = function () {\n return $jwtAuth.isFreeAccessEnabled();\n };\n $scope.getUsers = function () {\n SecurityRestService.getUsers()\n .success(function (data) {\n $scope.users = data;\n for (let i = 0; i < $scope.users.length; i++) {\n const pa = parseAuthorities($scope.users[i].grantedAuthorities);\n $scope.users[i].userType = pa.userType;\n $scope.users[i].userTypeDescription = pa.userTypeDescription;\n $scope.users[i].repositories = pa.repositories;\n }\n $scope.loader = false;\n }).error(function (data) {\n const msg = getError(data);\n toastr.error(msg, $translate.instant('common.error'));\n $scope.loader = false;\n });\n };\n $scope.getUsers();\n\n $scope.$on('repositoryIsSet', function () {\n $scope.getUsers();\n });\n\n $scope.toggleSecurity = function () {\n $jwtAuth.toggleSecurity(!$jwtAuth.isSecurityEnabled());\n if ($jwtAuth.isSecurityEnabled()) {\n const timer = $timeout(function () {\n $window.location.reload();\n }, 500);\n $scope.$on('$destroy', function () {\n $timeout.cancel(timer);\n });\n }\n };\n\n $scope.toggleFreeAccess = function (updateFreeAccess) {\n if (!$jwtAuth.isFreeAccessEnabled() || ($jwtAuth.isFreeAccessEnabled() && updateFreeAccess)) {\n SecurityRestService.getFreeAccess().then(function (res) {\n let authorities = res.data.authorities;\n let appSettings = res.data.appSettings || {\n 'DEFAULT_SAMEAS': true,\n 'DEFAULT_INFERENCE': true,\n 'EXECUTE_COUNT': true,\n 'IGNORE_SHARED_QUERIES': false,\n 'DEFAULT_VIS_GRAPH_SCHEMA': true\n };\n const modalInstance = $modal.open({\n templateUrl: 'js/angular/security/templates/modal/default-authorities.html',\n controller: 'DefaultAuthoritiesCtrl',\n resolve: {\n data: function () {\n return {\n // converts the array rights to hash ones. why, oh, why do we have both formats?\n defaultAuthorities: function () {\n const defaultAuthorities = {\n [READ_REPO]: {},\n [WRITE_REPO]: {}\n };\n // We might have old (no longer existing) repositories so we have to check that\n const repoIds = _.mapKeys($scope.getRepositories(), function (r) {\n return createUniqueKey(r);\n });\n _.each(authorities, function (a) {\n // indexOf works in IE 11, startsWith doesn't\n if (a.indexOf(WRITE_REPO_PREFIX) === 0) {\n if (repoIds.hasOwnProperty(a.substr(11))) {\n defaultAuthorities[WRITE_REPO][a.substr(11)] = true;\n }\n } else if (a.indexOf(READ_REPO_PREFIX) === 0) {\n if (repoIds.hasOwnProperty(a.substr(10))) {\n defaultAuthorities[READ_REPO][a.substr(10)] = true;\n }\n }\n });\n return defaultAuthorities;\n },\n appSettings: appSettings\n };\n }\n }\n });\n modalInstance.result.then(function (data) {\n authorities = data.authorities;\n appSettings = data.appSettings;\n $jwtAuth.toggleFreeAccess(updateFreeAccess || !$jwtAuth.isFreeAccessEnabled(), authorities, appSettings, updateFreeAccess);\n });\n });\n } else {\n $jwtAuth.toggleFreeAccess(!$jwtAuth.isFreeAccessEnabled(), []);\n }\n };\n\n $scope.editFreeAccess = function () {\n $scope.toggleFreeAccess(true);\n };\n\n $scope.removeUser = function (username) {\n ModalService.openSimpleModal({\n title: $translate.instant('common.confirm.delete'),\n message: $translate.instant('security.confirm.delete.user', {name: username}),\n warning: true\n }).result.then(function () {\n $scope.loader = true;\n SecurityRestService.deleteUser(username).success(function () {\n $scope.getUsers();\n }).error(function (data) {\n const msg = getError(data);\n toastr.error(msg, $translate.instant('common.error'));\n\n $scope.loader = false;\n });\n\n });\n };\n\n // Should be able to send the original username to $routeParams\n $scope.encodeURIComponent = function (name) {\n return encodeURIComponent(name);\n };\n }]);\n\nsecurityCtrl.controller('DefaultAuthoritiesCtrl', ['$scope', '$http', '$modalInstance', 'data', '$rootScope',\n function ($scope, $http, $modalInstance, data, $rootScope) {\n $scope.grantedAuthorities = data.defaultAuthorities();\n $scope.appSettings = data.appSettings;\n\n $scope.hasActiveLocation = function () {\n // Hack to get this from root scope to avoid cyclic dependency\n return !_.isEmpty($rootScope.globalLocation);\n };\n\n $scope.getRepositories = function () {\n // Hack to get this from root scope to avoid cyclic dependency\n return $rootScope.globalRepositories;\n };\n\n $scope.ok = function () {\n const auth = [];\n $scope.repositoryCheckError = true;\n for (const index in $scope.grantedAuthorities.WRITE_REPO) {\n if ($scope.grantedAuthorities.WRITE_REPO[index]) {\n auth.push(WRITE_REPO_PREFIX + index);\n auth.push(READ_REPO_PREFIX + index);\n $scope.repositoryCheckError = false;\n }\n }\n for (const index in $scope.grantedAuthorities.READ_REPO) {\n if ($scope.grantedAuthorities.READ_REPO[index] && auth.indexOf(READ_REPO_PREFIX + index) === -1) {\n auth.push(READ_REPO_PREFIX + index);\n $scope.repositoryCheckError = false;\n }\n }\n if (!$scope.repositoryCheckError) {\n $modalInstance.close({authorities: auth, appSettings: $scope.appSettings});\n }\n };\n\n $scope.cancel = function () {\n $modalInstance.dismiss('cancel');\n };\n\n $scope.createUniqueKey = function (repository) {\n return createUniqueKey(repository);\n };\n }]);\n\nsecurityCtrl.controller('CommonUserCtrl', ['$rootScope', '$scope', '$http', 'toastr', '$window', '$timeout', '$location', '$jwtAuth', '$translate', 'passwordPlaceholder',\n function ($rootScope, $scope, $http, toastr, $window, $timeout, $location, $jwtAuth, $translate, passwordPlaceholder) {\n $rootScope.$on('$translateChangeSuccess', function () {\n $scope.passwordPlaceholder = $translate.instant(passwordPlaceholder);\n });\n $scope.isAdmin = function () {\n return $jwtAuth.hasRole(UserRole.ROLE_ADMIN);\n };\n $scope.hasExternalAuth = function () {\n return $jwtAuth.hasExternalAuth();\n };\n\n $scope.hasEditRestrictions = function () {\n return $scope.user && $scope.user.username === UserType.ADMIN;\n };\n\n $scope.isOverrideAuth = function () {\n return $jwtAuth.isDefaultAuthEnabled();\n };\n\n $scope.setGrantedAuthorities = function () {\n setGrantedAuthorities($scope);\n };\n\n $scope.hasReadPermission = function (repository) {\n const uniqueKey = createUniqueKey(repository);\n return $scope.userType === UserType.ADMIN || $scope.userType === UserType.REPO_MANAGER\n || repository.id !== SYSTEM_REPO\n && ($scope.grantedAuthorities.READ_REPO['*'] || $scope.grantedAuthorities.WRITE_REPO['*'])\n || $scope.grantedAuthorities.READ_REPO[uniqueKey]\n || $scope.grantedAuthorities.WRITE_REPO[uniqueKey];\n };\n\n $scope.hasWritePermission = function (repoOrWildCard) {\n const uniqueKey = createUniqueKey(repoOrWildCard);\n return $scope.userType === UserType.ADMIN || $scope.userType === UserType.REPO_MANAGER\n || repoOrWildCard.id !== SYSTEM_REPO && $scope.grantedAuthorities.WRITE_REPO['*']\n || $scope.grantedAuthorities.WRITE_REPO[uniqueKey];\n };\n\n $scope.readCheckDisabled = function (repoOrWildCard) {\n return $scope.hasWritePermission(repoOrWildCard)\n || repoOrWildCard.id !== SYSTEM_REPO && repoOrWildCard !== '*' && $scope.grantedAuthorities.READ_REPO['*']\n || $scope.hasEditRestrictions();\n };\n\n $scope.writeCheckDisabled = function (repoOrWildCard) {\n return $scope.userType === UserType.ADMIN || $scope.userType === UserType.REPO_MANAGER\n || repoOrWildCard.id !== SYSTEM_REPO && repoOrWildCard !== '*' && $scope.grantedAuthorities.WRITE_REPO['*']\n || $scope.hasEditRestrictions();\n };\n\n $scope.createUniqueKey = function (repository) {\n return createUniqueKey(repository);\n };\n\n $scope.userType = UserType.USER;\n $scope.grantedAuthorities = {\n [READ_REPO]: {},\n [WRITE_REPO]: {}\n };\n\n $scope.validatePassword = function() {\n if ($scope.noPassword) {\n $scope.passwordError = '';\n $scope.confirmPasswordError = '';\n return true;\n }\n if ($scope.user.password !== $scope.user.confirmpassword) {\n if (!$scope.user.password) {\n $scope.passwordError = $translate.instant('security.enter.password');\n $scope.confirmPasswordError = '';\n } else {\n $scope.passwordError = '';\n $scope.confirmPasswordError = $translate.instant('security.confirm.password');\n }\n return false;\n } else {\n $scope.passwordError = '';\n $scope.confirmPasswordError = '';\n }\n return true;\n };\n\n $scope.isLocalAuthentication = function() {\n return $jwtAuth.getAuthImplementation() === 'Local';\n };\n\n $scope.updateUser = function () {\n if (!$scope.validateForm()) {\n return false;\n }\n\n if ($scope.isLocalAuthentication()) {\n $scope.setGrantedAuthorities();\n }\n\n if (!$scope.repositoryCheckError) {\n $scope.updateUserHttp();\n }\n };\n\n $scope.setNoPassword = function() {\n if ($scope.noPassword) {\n $scope.user.password = '';\n $scope.user.confirmpassword = '';\n $scope.passwordError = '';\n $scope.confirmPasswordError = '';\n }\n };\n\n $scope.shouldDisableSameAs = function () {\n const sameAsCheckbox = $('#sameAsCheck');\n if ($scope.user && !$scope.user.appSettings.DEFAULT_INFERENCE && sameAsCheckbox.prop('checked')) {\n sameAsCheckbox.prop(\"checked\", false);\n $scope.user.appSettings.DEFAULT_SAMEAS = false;\n }\n\n return $scope.user && !$scope.user.appSettings.DEFAULT_INFERENCE;\n };\n }]);\n\nsecurityCtrl.controller('AddUserCtrl', ['$scope', '$http', 'toastr', '$window', '$timeout', '$location', '$jwtAuth', '$controller', 'SecurityRestService', 'ModalService', '$translate',\n function ($scope, $http, toastr, $window, $timeout, $location, $jwtAuth, $controller, SecurityRestService, ModalService, $translate) {\n\n angular.extend(this, $controller('CommonUserCtrl', {$scope: $scope, passwordPlaceholder: 'security.password.placeholder'}));\n\n $scope.mode = 'add';\n $scope.saveButtonText = $translate.instant('common.create.btn');\n $scope.goBack = function () {\n const timer = $timeout(function () {\n $window.history.back();\n }, 100);\n $scope.$on('$destroy', function () {\n $timeout.cancel(timer);\n });\n };\n $scope.pageTitle = $translate.instant('view.create.user.title');\n $scope.passwordPlaceholder = $translate.instant('security.password.placeholder');\n\n $scope.user = {\n 'username': '',\n 'password': '',\n 'confirmpassword': '',\n 'grantedAuthorities': [],\n 'appSettings': {\n 'DEFAULT_SAMEAS': true,\n 'DEFAULT_INFERENCE': true,\n 'EXECUTE_COUNT': true,\n 'IGNORE_SHARED_QUERIES': false,\n 'DEFAULT_VIS_GRAPH_SCHEMA': true\n }\n };\n\n $scope.submit = function () {\n if ($scope.noPassword && $scope.userType === UserType.ADMIN) {\n ModalService.openSimpleModal({\n title: $translate.instant('security.create.admin'),\n message: $translate.instant('security.admin.login.warning'),\n warning: true\n }).result.then(function () {\n $scope.createUser();\n });\n } else {\n $scope.createUser();\n }\n };\n\n $scope.createUserHttp = function () {\n $scope.loader = true;\n SecurityRestService.createUser({\n username: $scope.user.username,\n pass: $scope.user.password,\n appSettings: $scope.user.appSettings,\n grantedAuthorities: $scope.user.grantedAuthorities\n }).success(function () {\n toastr.success($translate.instant('security.user.created', {name: $scope.user.username}));\n const timer = $timeout(function () {\n $scope.loader = false;\n $window.history.back();\n }, 2000);\n $scope.$on('$destroy', function () {\n $timeout.cancel(timer);\n });\n }).error(function (data) {\n const msg = getError(data);\n $scope.loader = false;\n toastr.error(msg, $translate.instant('common.error'));\n });\n };\n\n $scope.createUser = function () {\n if ($scope.validateForm()) {\n $scope.setGrantedAuthorities();\n\n if (!$scope.repositoryCheckError) {\n $scope.createUserHttp();\n }\n }\n };\n\n $scope.validateForm = function () {\n let result = true;\n if (!$scope.user.username) {\n $scope.usernameError = $translate.instant('security.enter.username');\n result = false;\n } else {\n $scope.usernameError = '';\n }\n if ($scope.noPassword) {\n $scope.passwordError = '';\n $scope.confirmPasswordError = '';\n } else {\n if (!$scope.user.password) {\n $scope.passwordError = $translate.instant('security.enter.password');\n result = false;\n } else {\n $scope.passwordError = '';\n }\n if (!$scope.user.confirmpassword || $scope.user.password !== $scope.user.confirmpassword) {\n $scope.confirmPasswordError = $translate.instant('security.confirm.password');\n result = false;\n } else {\n $scope.confirmPasswordError = '';\n }\n }\n\n return result;\n };\n }]);\n\nsecurityCtrl.controller('EditUserCtrl', ['$scope', '$http', 'toastr', '$window', '$routeParams', '$timeout', '$location', '$jwtAuth', '$controller', 'SecurityRestService', 'ModalService', '$translate',\n function ($scope, $http, toastr, $window, $routeParams, $timeout, $location, $jwtAuth, $controller, SecurityRestService, ModalService, $translate) {\n\n angular.extend(this, $controller('CommonUserCtrl', {$scope: $scope, passwordPlaceholder: 'security.new.password'}));\n\n $scope.mode = 'edit';\n $scope.saveButtonText = $translate.instant('common.save.btn');\n $scope.goBack = function () {\n const timer = $timeout(function () {\n $window.history.back();\n }, 100);\n $scope.$on('$destroy', function () {\n $timeout.cancel(timer);\n });\n };\n $scope.params = $routeParams;\n $scope.pageTitle = $translate.instant('view.edit.user.title', {userId: $scope.params.userId});\n $scope.passwordPlaceholder = $translate.instant('security.new.password');\n $scope.userType = UserType.USER;\n const defaultUserSettings = {\n 'DEFAULT_SAMEAS': true,\n 'DEFAULT_INFERENCE': true,\n 'EXECUTE_COUNT': true,\n 'IGNORE_SHARED_QUERIES': false,\n 'DEFAULT_VIS_GRAPH_SCHEMA': true\n };\n\n if (!$jwtAuth.hasRole(UserRole.ROLE_ADMIN)) {\n $location.url('settings');\n }\n $scope.getUserData = function () {\n SecurityRestService.getUser($scope.params.userId).success(function (data) {\n $scope.userData = data;\n $scope.user = {username: $scope.userData.username};\n $scope.user.password = '';\n $scope.user.confirmpassword = '';\n $scope.user.external = $scope.userData.external;\n $scope.user.appSettings = data.appSettings || defaultUserSettings;\n $scope.userType = UserType.USER;\n const pa = parseAuthorities(data.grantedAuthorities);\n $scope.userType = pa.userType;\n $scope.grantedAuthorities = pa.grantedAuthorities;\n }).error(function (data) {\n const msg = getError(data);\n toastr.error(msg, $translate.instant('common.error'));\n });\n };\n\n $scope.getUserData();\n\n $scope.submit = function () {\n if ($scope.noPassword && $scope.userType === UserType.ADMIN) {\n ModalService.openSimpleModal({\n title: $translate.instant('security.save.admin.settings'),\n message: $translate.instant('security.admin.pass.unset'),\n warning: true\n }).result.then(function () {\n $scope.updateUser();\n });\n } else {\n $scope.updateUser();\n }\n };\n\n $scope.updateUserHttp = function () {\n $scope.loader = true;\n SecurityRestService.updateUser({\n username: $scope.user.username,\n pass: ($scope.noPassword) ? '' : $scope.user.password || undefined,\n appSettings: $scope.user.appSettings,\n grantedAuthorities: $scope.user.grantedAuthorities\n }).success(function () {\n toastr.success($translate.instant('security.user.updated', {name: $scope.user.username}));\n const timer = $timeout(function () {\n $scope.loader = false;\n $window.history.back();\n }, 2000);\n $scope.$on('$destroy', function () {\n $timeout.cancel(timer);\n });\n // if we update the settings of the currently logged user, update the principal\n $jwtAuth.getPrincipal().then((principal) => {\n if ($scope.user.username === principal.username) {\n principal.appSettings = $scope.user.appSettings;\n }\n });\n }).error(function (data) {\n const msg = getError(data);\n $scope.loader = false;\n toastr.error(msg, $translate.instant('common.error'));\n });\n };\n\n $scope.validateForm = function () {\n return $scope.validatePassword();\n };\n }]);\n\nsecurityCtrl.controller('RolesMappingController', ['$scope', 'toastr', 'SecurityRestService', '$translate',\n function ($scope, toastr, SecurityRestService, $translate) {\n\n $scope.debugMapping = function (role, mapping) {\n const method = mapping.split(':');\n SecurityRestService.getRolesMapping({\n role: role,\n method: method[1],\n mapping: method[0]\n });\n };\n\n const loadRoles = function () {\n SecurityRestService.getRoles()\n .success(function (data) {\n $scope.roleMappings = data;\n $scope.roles = _.keys($scope.roleMappings);\n $scope.mappings = _.keys($scope.roleMappings[$scope.roles[0]]);\n const permissionsCount = _.map($scope.roles, function (role) {\n return [role, _.filter($scope.roleMappings[role]).length];\n });\n $scope.roles = _.reverse(_.map(_.orderBy(permissionsCount, function (p) {\n return p[1];\n }), function (p) {\n return p[0];\n }));\n })\n .error(function (data) {\n const msg = getError(data);\n $scope.loader = false;\n toastr.error(msg, $translate.instant('common.error'));\n });\n };\n\n $scope.$on('repositoryIsSet', function () {\n loadRoles();\n });\n}]);\n\nsecurityCtrl.controller('ChangeUserPasswordSettingsCtrl', ['$scope', 'toastr', '$window', '$timeout', '$jwtAuth', '$rootScope', '$controller', 'SecurityRestService', 'ModalService', '$translate', 'LocalStorageAdapter', 'LSKeys', '$q',\n function ($scope, toastr, $window, $timeout, $jwtAuth, $rootScope, $controller, SecurityRestService, ModalService, $translate, LocalStorageAdapter, LSKeys, $q) {\n\n angular.extend(this, $controller('CommonUserCtrl', {$scope: $scope, passwordPlaceholder: 'security.new.password'}));\n\n $scope.mode = 'settings';\n $scope.hasEditRestrictions = function () {\n return true;\n };\n $scope.saveButtonText = $translate.instant('common.save.btn');\n $scope.goBack = function () {\n const timer = $timeout(function () {\n $window.history.back();\n }, 100);\n $scope.$on('$destroy', function () {\n $timeout.cancel(timer);\n });\n };\n // Wrapped in a scope function for ease of testing\n $scope.getPrincipal = function () {\n return $jwtAuth.getPrincipal()\n .then((principal) => {\n $scope.currentUserData = angular.copy(principal);\n });\n };\n\n $scope.getPrincipal().then(() => {\n $scope.redirectAdmin();\n initUserData($scope);\n });\n\n $scope.showWorkbenchSettings = true;\n\n $scope.updateCurrentUserData = function () {\n // Using $q.when to proper set values in view\n $q.when($jwtAuth.getPrincipal())\n .then((principal) => _.assign(principal, $scope.userData));\n };\n\n //call it as a function so I can make test on it\n $scope.redirectAdmin = function () {\n if (!$scope.currentUserData) {\n $rootScope.redirectToLogin();\n }\n };\n\n $scope.pageTitle = $translate.instant('view.settings.title');\n $scope.passwordPlaceholder = $translate.instant('security.new.password');\n $scope.grantedAuthorities = {\n [READ_REPO]: {},\n [WRITE_REPO]: {}\n };\n\n const initUserData = function (scope) {\n // Copy needed so that Cancel would work correctly, need to call updateCurrentUserData on OK\n scope.userData = angular.copy(scope.currentUserData);\n scope.user = {username: scope.userData.username};\n scope.user.password = '';\n scope.user.confirmpassword = '';\n scope.user.external = scope.userData.external;\n scope.user.appSettings = scope.userData.appSettings;\n // For backward compatibility\n if (scope.user.appSettings['DEFAULT_VIS_GRAPH_SCHEMA'] === undefined) {\n scope.user.appSettings['DEFAULT_VIS_GRAPH_SCHEMA'] = true;\n }\n\n const pa = parseAuthorities(scope.userData.authorities);\n $scope.userType = pa.userType;\n $scope.grantedAuthorities = pa.grantedAuthorities;\n };\n\n $scope.loader = false;\n\n $scope.submit = function () {\n if ($scope.noPassword && $scope.userType === UserType.ADMIN) {\n ModalService.openSimpleModal({\n title: $translate.instant('security.save.admin.settings'),\n message: $translate.instant('security.admin.pass.unset'),\n warning: true\n }).result.then(function () {\n $scope.updateUser();\n });\n } else {\n $scope.updateUser();\n }\n };\n\n $scope.updateUserHttp = function () {\n $scope.loader = true;\n SecurityRestService.updateUserData({\n username: $scope.user.username,\n pass: ($scope.noPassword) ? '' : $scope.user.password || undefined,\n appSettings: $scope.user.appSettings\n }).success(function () {\n $scope.updateCurrentUserData();\n toastr.success($translate.instant('security.user.updated', {name: $scope.user.username}));\n const timer = $timeout(function () {\n $scope.loader = false;\n $window.history.back();\n }, 2000);\n LocalStorageAdapter.set(LSKeys.WORKBENCH_SETTINGS, $scope.workbenchSettings);\n $scope.$on('$destroy', function () {\n $timeout.cancel(timer);\n });\n }).error(function (data) {\n const msg = getError(data);\n $scope.loader = false;\n toastr.error(msg, $translate.instant('common.error'));\n });\n };\n\n $scope.updateUser = function () {\n if (!$scope.validateForm()) {\n return false;\n }\n\n $scope.updateUserHttp();\n };\n\n $scope.validateForm = function () {\n return $scope.validatePassword();\n };\n\n $scope.setWorkbenchTheme = function () {\n const rootElement = document.querySelector(':root');\n if ($scope.workbenchSettings.theme === 'dark') {\n rootElement.classList.add(\"dark\");\n } else {\n rootElement.classList.remove(\"dark\");\n }\n };\n\n $scope.workbenchSettings = LocalStorageAdapter.get(LSKeys.WORKBENCH_SETTINGS);\n if (!$scope.workbenchSettings) {\n $scope.workbenchSettings = {\n theme: 'light'\n };\n }\n $scope.setWorkbenchTheme();\n\n $scope.$on(\"$destroy\", function () {\n const workbenchSettings = LocalStorageAdapter.get(LSKeys.WORKBENCH_SETTINGS);\n const rootElement = document.querySelector(':root');\n if (workbenchSettings && workbenchSettings.theme === 'dark') {\n rootElement.classList.add(\"dark\");\n } else {\n rootElement.classList.remove(\"dark\");\n }\n });\n }]);\n\nsecurityCtrl.controller('DeleteUserCtrl', ['$scope', '$modalInstance', 'username', function ($scope, $modalInstance, username) {\n $scope.username = username;\n\n $scope.ok = function () {\n $modalInstance.close();\n };\n\n $scope.cancel = function () {\n $modalInstance.dismiss('cancel');\n };\n}]);\n"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"sources":["webpack:///./src/js/angular/security/controllers.js"],"names":["createUniqueKey","repository","location","id","securityCtrl","angular","module","parseAuthorities","authorities","userType","USER","grantedAuthorities","repositories","i","length","role","ROLE_ADMIN","ADMIN","ROLE_REPO_MANAGER","REPO_MANAGER","ROLE_USER","indexOf","index","op","substr","repo","read","write","userTypeDescription","getUserRoleName","controller","$scope","$http","toastr","$jwtAuth","$openIDAuth","$location","$rootScope","$translate","username","password","reinitializeSecurity","loginWithOpenID","loginOpenID","search","noaccess","error","instant","expired","isGDBLoginEnabled","passwordLoginEnabled","isOpenIDEnabled","openIDEnabled","login","method","url","data","success","status","headers","authenticate","then","returnToUrl","path","wrongCredentials","msg","getError","$modal","$window","$timeout","ModalService","SecurityRestService","loader","securityEnabled","isSecurityEnabled","hasExternalAuth","getAuthImplementation","freeAccessEnabled","isFreeAccessEnabled","getUsers","users","pa","$on","toggleSecurity","timer","reload","cancel","toggleFreeAccess","updateFreeAccess","getFreeAccess","res","appSettings","open","templateUrl","resolve","defaultAuthorities","repoIds","_","mapKeys","getRepositories","r","each","a","hasOwnProperty","result","editFreeAccess","removeUser","openSimpleModal","title","message","name","warning","deleteUser","encodeURIComponent","$modalInstance","hasActiveLocation","isEmpty","globalLocation","globalRepositories","ok","auth","repositoryCheckError","WRITE_REPO","push","READ_REPO","close","dismiss","passwordPlaceholder","isAdmin","hasRole","hasEditRestrictions","user","isOverrideAuth","isDefaultAuthEnabled","setGrantedAuthorities","pushAuthority","arguments","authority","hasReadPermission","uniqueKey","hasWritePermission","repoOrWildCard","readCheckDisabled","writeCheckDisabled","validatePassword","noPassword","passwordError","confirmPasswordError","confirmpassword","isLocalAuthentication","updateUser","validateForm","updateUserHttp","setNoPassword","shouldDisableSameAs","sameAsCheckbox","$","DEFAULT_INFERENCE","prop","DEFAULT_SAMEAS","$controller","extend","this","mode","saveButtonText","goBack","history","back","pageTitle","submit","createUser","createUserHttp","pass","usernameError","$routeParams","params","userId","defaultUserSettings","getUserData","getUser","userData","external","undefined","getPrincipal","principal","debugMapping","mapping","split","getRolesMapping","getRoles","roleMappings","roles","keys","mappings","permissionsCount","map","filter","reverse","orderBy","p","LocalStorageAdapter","LSKeys","$q","currentUserData","copy","redirectAdmin","initUserData","showWorkbenchSettings","updateCurrentUserData","when","assign","redirectToLogin","scope","updateUserData","set","WORKBENCH_SETTINGS","workbenchSettings","setWorkbenchTheme","rootElement","document","querySelector","theme","classList","add","remove","get"],"mappings":"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","file":"11.c8ad938cfc97d57b4d9e.bundle.js","sourcesContent":["import 'angular/core/services';\nimport 'angular/core/services/jwt-auth.service';\nimport 'angular/core/services/openid-auth.service';\nimport 'angular/rest/security.rest.service';\nimport {UserUtils, UserRole, UserType} from 'angular/utils/user-utils';\n\nconst SYSTEM_REPO = 'SYSTEM';\nconst READ_REPO = 'READ_REPO';\nconst READ_REPO_PREFIX = 'READ_REPO_';\nconst WRITE_REPO = 'WRITE_REPO';\nconst WRITE_REPO_PREFIX = 'WRITE_REPO_';\n\nconst modules = [\n 'ngCookies',\n 'ui.bootstrap',\n 'graphdb.framework.core.services.jwtauth',\n 'graphdb.framework.core.services.openIDService',\n 'graphdb.framework.rest.security.service',\n 'graphdb.framework.utils.localstorageadapter',\n 'toastr'\n];\n\nconst createUniqueKey = function (repository) {\n if (repository.location) {\n return `${repository.id}@${repository.location}`;\n }\n return repository.id;\n};\n\nconst securityCtrl = angular.module('graphdb.framework.security.controllers', modules);\n\nconst setGrantedAuthorities = function ($scope) {\n function pushAuthority() {\n for (let i = 0; i < arguments.length; i++) {\n const authority = arguments[i];\n if (_.indexOf($scope.user.grantedAuthorities, authority) < 0) {\n $scope.user.grantedAuthorities.push(authority);\n }\n }\n }\n\n $scope.user.grantedAuthorities = [];\n\n $scope.repositoryCheckError = true;\n if ($scope.userType === UserType.ADMIN) {\n $scope.repositoryCheckError = false;\n pushAuthority(UserRole.ROLE_ADMIN);\n } else if ($scope.userType === UserType.REPO_MANAGER) {\n $scope.repositoryCheckError = false;\n pushAuthority(UserRole.ROLE_REPO_MANAGER);\n } else {\n pushAuthority(UserRole.ROLE_USER);\n for (const index in $scope.grantedAuthorities.WRITE_REPO) {\n if ($scope.grantedAuthorities.WRITE_REPO[index]) {\n $scope.repositoryCheckError = false;\n pushAuthority(WRITE_REPO_PREFIX + index, READ_REPO_PREFIX + index);\n }\n }\n for (const index in $scope.grantedAuthorities.READ_REPO) {\n if ($scope.grantedAuthorities.READ_REPO[index]) {\n $scope.repositoryCheckError = false;\n pushAuthority(READ_REPO_PREFIX + index);\n }\n }\n }\n};\n\nconst parseAuthorities = function (authorities) {\n let userType = UserType.USER;\n const grantedAuthorities = {\n [READ_REPO]: {},\n [WRITE_REPO]: {}\n };\n const repositories = {};\n for (let i = 0; i < authorities.length; i++) {\n const role = authorities[i];\n if (role === UserRole.ROLE_ADMIN) {\n userType = UserType.ADMIN;\n } else if (role === UserRole.ROLE_REPO_MANAGER) {\n if (userType !== UserType.ADMIN) {\n userType = UserType.REPO_MANAGER;\n }\n } else if (role === UserRole.ROLE_USER) {\n userType = UserType.USER;\n } else if (role.indexOf('ROLE_') !== 0) {\n const index = role.indexOf('_', role.indexOf('_') + 1);\n const op = role.substr(0, index);\n const repo = role.substr(index + 1);\n grantedAuthorities[op][repo] = true;\n repositories[repo] = repositories[repo] || {};\n if (op === READ_REPO) {\n repositories[repo].read = true;\n } else if (op === WRITE_REPO) {\n repositories[repo].write = true;\n }\n }\n }\n\n return {\n userType: userType,\n userTypeDescription: UserUtils.getUserRoleName(userType),\n grantedAuthorities: grantedAuthorities,\n repositories: repositories\n };\n};\n\nsecurityCtrl.controller('LoginCtrl', ['$scope', '$http', 'toastr', '$jwtAuth', '$openIDAuth', '$location', '$rootScope', '$translate',\n function ($scope, $http, toastr, $jwtAuth, $openIDAuth, $location, $rootScope, $translate) {\n $scope.username = '';\n $scope.password = '';\n\n // Reinitialize security settings, if failed for some reason\n $jwtAuth.reinitializeSecurity();\n\n $scope.loginWithOpenID = function() {\n $jwtAuth.loginOpenID();\n };\n\n if ($location.search().noaccess) {\n toastr.error($translate.instant('security.no.rights.config.error'), $translate.instant('security.login.error'));\n } else if ($location.search().expired) {\n toastr.error($translate.instant('security.auth.token.expired'), $translate.instant('security.login.error'));\n }\n\n $scope.isGDBLoginEnabled = function() {\n return $jwtAuth.passwordLoginEnabled;\n };\n\n $scope.isOpenIDEnabled = function() {\n return $jwtAuth.openIDEnabled;\n };\n\n $scope.login = function () {\n return $http({\n method: 'POST',\n url: 'rest/login',\n data: {\n 'username': $scope.username,\n 'password': $scope.password\n }\n }).success(function (data, status, headers) {\n $jwtAuth.authenticate(data, headers('Authorization'))\n .then(() => {\n if ($rootScope.returnToUrl) {\n // go back to remembered url\n $location.url($rootScope.returnToUrl);\n } else {\n // don't have a remembered url, go home\n $location.path('/');\n }\n });\n }).error(function (data, status) {\n if (status === 401) {\n toastr.error($translate.instant('security.wrong.credentials'), $translate.instant('common.error'));\n $scope.wrongCredentials = true;\n $scope.username = '';\n $scope.password = '';\n } else {\n const msg = getError(data);\n toastr.error(msg, status);\n }\n });\n };\n }]);\n\nsecurityCtrl.controller('UsersCtrl', ['$scope', '$modal', 'toastr', '$window', '$jwtAuth', '$timeout', 'ModalService', 'SecurityRestService', '$translate',\n function ($scope, $modal, toastr, $window, $jwtAuth, $timeout, ModalService, SecurityRestService, $translate) {\n\n $scope.loader = true;\n $scope.securityEnabled = function () {\n return $jwtAuth.isSecurityEnabled();\n };\n $scope.hasExternalAuth = function () {\n return $jwtAuth.hasExternalAuth();\n };\n $scope.getAuthImplementation = function () {\n return $jwtAuth.getAuthImplementation();\n };\n $scope.freeAccessEnabled = function () {\n return $jwtAuth.isFreeAccessEnabled();\n };\n $scope.getUsers = function () {\n SecurityRestService.getUsers()\n .success(function (data) {\n $scope.users = data;\n for (let i = 0; i < $scope.users.length; i++) {\n const pa = parseAuthorities($scope.users[i].grantedAuthorities);\n $scope.users[i].userType = pa.userType;\n $scope.users[i].userTypeDescription = pa.userTypeDescription;\n $scope.users[i].repositories = pa.repositories;\n }\n $scope.loader = false;\n }).error(function (data) {\n const msg = getError(data);\n toastr.error(msg, $translate.instant('common.error'));\n $scope.loader = false;\n });\n };\n $scope.getUsers();\n\n $scope.$on('repositoryIsSet', function () {\n $scope.getUsers();\n });\n\n $scope.toggleSecurity = function () {\n $jwtAuth.toggleSecurity(!$jwtAuth.isSecurityEnabled());\n if ($jwtAuth.isSecurityEnabled()) {\n const timer = $timeout(function () {\n $window.location.reload();\n }, 500);\n $scope.$on('$destroy', function () {\n $timeout.cancel(timer);\n });\n }\n };\n\n $scope.toggleFreeAccess = function (updateFreeAccess) {\n if (!$jwtAuth.isFreeAccessEnabled() || ($jwtAuth.isFreeAccessEnabled() && updateFreeAccess)) {\n SecurityRestService.getFreeAccess().then(function (res) {\n let authorities = res.data.authorities;\n let appSettings = res.data.appSettings || {\n 'DEFAULT_SAMEAS': true,\n 'DEFAULT_INFERENCE': true,\n 'EXECUTE_COUNT': true,\n 'IGNORE_SHARED_QUERIES': false,\n 'DEFAULT_VIS_GRAPH_SCHEMA': true\n };\n const modalInstance = $modal.open({\n templateUrl: 'js/angular/security/templates/modal/default-authorities.html',\n controller: 'DefaultAuthoritiesCtrl',\n resolve: {\n data: function () {\n return {\n // converts the array rights to hash ones. why, oh, why do we have both formats?\n defaultAuthorities: function () {\n const defaultAuthorities = {\n [READ_REPO]: {},\n [WRITE_REPO]: {}\n };\n // We might have old (no longer existing) repositories so we have to check that\n const repoIds = _.mapKeys($scope.getRepositories(), function (r) {\n return createUniqueKey(r);\n });\n _.each(authorities, function (a) {\n // indexOf works in IE 11, startsWith doesn't\n if (a.indexOf(WRITE_REPO_PREFIX) === 0) {\n if (repoIds.hasOwnProperty(a.substr(11))) {\n defaultAuthorities[WRITE_REPO][a.substr(11)] = true;\n }\n } else if (a.indexOf(READ_REPO_PREFIX) === 0) {\n if (repoIds.hasOwnProperty(a.substr(10))) {\n defaultAuthorities[READ_REPO][a.substr(10)] = true;\n }\n }\n });\n return defaultAuthorities;\n },\n appSettings: appSettings\n };\n }\n }\n });\n modalInstance.result.then(function (data) {\n authorities = data.authorities;\n appSettings = data.appSettings;\n $jwtAuth.toggleFreeAccess(updateFreeAccess || !$jwtAuth.isFreeAccessEnabled(), authorities, appSettings, updateFreeAccess);\n });\n });\n } else {\n $jwtAuth.toggleFreeAccess(!$jwtAuth.isFreeAccessEnabled(), []);\n }\n };\n\n $scope.editFreeAccess = function () {\n $scope.toggleFreeAccess(true);\n };\n\n $scope.removeUser = function (username) {\n ModalService.openSimpleModal({\n title: $translate.instant('common.confirm.delete'),\n message: $translate.instant('security.confirm.delete.user', {name: username}),\n warning: true\n }).result.then(function () {\n $scope.loader = true;\n SecurityRestService.deleteUser(username).success(function () {\n $scope.getUsers();\n }).error(function (data) {\n const msg = getError(data);\n toastr.error(msg, $translate.instant('common.error'));\n\n $scope.loader = false;\n });\n\n });\n };\n\n // Should be able to send the original username to $routeParams\n $scope.encodeURIComponent = function (name) {\n return encodeURIComponent(name);\n };\n }]);\n\nsecurityCtrl.controller('DefaultAuthoritiesCtrl', ['$scope', '$http', '$modalInstance', 'data', '$rootScope',\n function ($scope, $http, $modalInstance, data, $rootScope) {\n $scope.grantedAuthorities = data.defaultAuthorities();\n $scope.appSettings = data.appSettings;\n\n $scope.hasActiveLocation = function () {\n // Hack to get this from root scope to avoid cyclic dependency\n return !_.isEmpty($rootScope.globalLocation);\n };\n\n $scope.getRepositories = function () {\n // Hack to get this from root scope to avoid cyclic dependency\n return $rootScope.globalRepositories;\n };\n\n $scope.ok = function () {\n const auth = [];\n $scope.repositoryCheckError = true;\n for (const index in $scope.grantedAuthorities.WRITE_REPO) {\n if ($scope.grantedAuthorities.WRITE_REPO[index]) {\n auth.push(WRITE_REPO_PREFIX + index);\n auth.push(READ_REPO_PREFIX + index);\n $scope.repositoryCheckError = false;\n }\n }\n for (const index in $scope.grantedAuthorities.READ_REPO) {\n if ($scope.grantedAuthorities.READ_REPO[index] && auth.indexOf(READ_REPO_PREFIX + index) === -1) {\n auth.push(READ_REPO_PREFIX + index);\n $scope.repositoryCheckError = false;\n }\n }\n if (!$scope.repositoryCheckError) {\n $modalInstance.close({authorities: auth, appSettings: $scope.appSettings});\n }\n };\n\n $scope.cancel = function () {\n $modalInstance.dismiss('cancel');\n };\n\n $scope.createUniqueKey = function (repository) {\n return createUniqueKey(repository);\n };\n }]);\n\nsecurityCtrl.controller('CommonUserCtrl', ['$rootScope', '$scope', '$http', 'toastr', '$window', '$timeout', '$location', '$jwtAuth', '$translate', 'passwordPlaceholder',\n function ($rootScope, $scope, $http, toastr, $window, $timeout, $location, $jwtAuth, $translate, passwordPlaceholder) {\n $rootScope.$on('$translateChangeSuccess', function () {\n $scope.passwordPlaceholder = $translate.instant(passwordPlaceholder);\n });\n $scope.isAdmin = function () {\n return $jwtAuth.hasRole(UserRole.ROLE_ADMIN);\n };\n $scope.hasExternalAuth = function () {\n return $jwtAuth.hasExternalAuth();\n };\n\n $scope.hasEditRestrictions = function () {\n return $scope.user && $scope.user.username === UserType.ADMIN;\n };\n\n $scope.isOverrideAuth = function () {\n return $jwtAuth.isDefaultAuthEnabled();\n };\n\n $scope.setGrantedAuthorities = function () {\n setGrantedAuthorities($scope);\n };\n\n $scope.hasReadPermission = function (repository) {\n const uniqueKey = createUniqueKey(repository);\n return $scope.userType === UserType.ADMIN || $scope.userType === UserType.REPO_MANAGER\n || repository.id !== SYSTEM_REPO\n && ($scope.grantedAuthorities.READ_REPO['*'] || $scope.grantedAuthorities.WRITE_REPO['*'])\n || $scope.grantedAuthorities.READ_REPO[uniqueKey]\n || $scope.grantedAuthorities.WRITE_REPO[uniqueKey];\n };\n\n $scope.hasWritePermission = function (repoOrWildCard) {\n const uniqueKey = createUniqueKey(repoOrWildCard);\n return $scope.userType === UserType.ADMIN || $scope.userType === UserType.REPO_MANAGER\n || repoOrWildCard.id !== SYSTEM_REPO && $scope.grantedAuthorities.WRITE_REPO['*']\n || $scope.grantedAuthorities.WRITE_REPO[uniqueKey];\n };\n\n $scope.readCheckDisabled = function (repoOrWildCard) {\n return $scope.hasWritePermission(repoOrWildCard)\n || repoOrWildCard.id !== SYSTEM_REPO && repoOrWildCard !== '*' && $scope.grantedAuthorities.READ_REPO['*']\n || $scope.hasEditRestrictions();\n };\n\n $scope.writeCheckDisabled = function (repoOrWildCard) {\n return $scope.userType === UserType.ADMIN || $scope.userType === UserType.REPO_MANAGER\n || repoOrWildCard.id !== SYSTEM_REPO && repoOrWildCard !== '*' && $scope.grantedAuthorities.WRITE_REPO['*']\n || $scope.hasEditRestrictions();\n };\n\n $scope.createUniqueKey = function (repository) {\n return createUniqueKey(repository);\n };\n\n $scope.userType = UserType.USER;\n $scope.grantedAuthorities = {\n [READ_REPO]: {},\n [WRITE_REPO]: {}\n };\n\n $scope.validatePassword = function() {\n if ($scope.noPassword) {\n $scope.passwordError = '';\n $scope.confirmPasswordError = '';\n return true;\n }\n if ($scope.user.password !== $scope.user.confirmpassword) {\n if (!$scope.user.password) {\n $scope.passwordError = $translate.instant('security.enter.password');\n $scope.confirmPasswordError = '';\n } else {\n $scope.passwordError = '';\n $scope.confirmPasswordError = $translate.instant('security.confirm.password');\n }\n return false;\n } else {\n $scope.passwordError = '';\n $scope.confirmPasswordError = '';\n }\n return true;\n };\n\n $scope.isLocalAuthentication = function() {\n return $jwtAuth.getAuthImplementation() === 'Local';\n };\n\n $scope.updateUser = function () {\n if (!$scope.validateForm()) {\n return false;\n }\n\n if ($scope.isLocalAuthentication()) {\n $scope.setGrantedAuthorities();\n }\n\n if (!$scope.repositoryCheckError) {\n $scope.updateUserHttp();\n }\n };\n\n $scope.setNoPassword = function() {\n if ($scope.noPassword) {\n $scope.user.password = '';\n $scope.user.confirmpassword = '';\n $scope.passwordError = '';\n $scope.confirmPasswordError = '';\n }\n };\n\n $scope.shouldDisableSameAs = function () {\n const sameAsCheckbox = $('#sameAsCheck');\n if ($scope.user && !$scope.user.appSettings.DEFAULT_INFERENCE && sameAsCheckbox.prop('checked')) {\n sameAsCheckbox.prop(\"checked\", false);\n $scope.user.appSettings.DEFAULT_SAMEAS = false;\n }\n\n return $scope.user && !$scope.user.appSettings.DEFAULT_INFERENCE;\n };\n }]);\n\nsecurityCtrl.controller('AddUserCtrl', ['$scope', '$http', 'toastr', '$window', '$timeout', '$location', '$jwtAuth', '$controller', 'SecurityRestService', 'ModalService', '$translate',\n function ($scope, $http, toastr, $window, $timeout, $location, $jwtAuth, $controller, SecurityRestService, ModalService, $translate) {\n\n angular.extend(this, $controller('CommonUserCtrl', {$scope: $scope, passwordPlaceholder: 'security.password.placeholder'}));\n\n $scope.mode = 'add';\n $scope.saveButtonText = $translate.instant('common.create.btn');\n $scope.goBack = function () {\n const timer = $timeout(function () {\n $window.history.back();\n }, 100);\n $scope.$on('$destroy', function () {\n $timeout.cancel(timer);\n });\n };\n $scope.pageTitle = $translate.instant('view.create.user.title');\n $scope.passwordPlaceholder = $translate.instant('security.password.placeholder');\n\n $scope.user = {\n 'username': '',\n 'password': '',\n 'confirmpassword': '',\n 'grantedAuthorities': [],\n 'appSettings': {\n 'DEFAULT_SAMEAS': true,\n 'DEFAULT_INFERENCE': true,\n 'EXECUTE_COUNT': true,\n 'IGNORE_SHARED_QUERIES': false,\n 'DEFAULT_VIS_GRAPH_SCHEMA': true\n }\n };\n\n $scope.submit = function () {\n if ($scope.noPassword && $scope.userType === UserType.ADMIN) {\n ModalService.openSimpleModal({\n title: $translate.instant('security.create.admin'),\n message: $translate.instant('security.admin.login.warning'),\n warning: true\n }).result.then(function () {\n $scope.createUser();\n });\n } else {\n $scope.createUser();\n }\n };\n\n $scope.createUserHttp = function () {\n $scope.loader = true;\n SecurityRestService.createUser({\n username: $scope.user.username,\n pass: $scope.user.password,\n appSettings: $scope.user.appSettings,\n grantedAuthorities: $scope.user.grantedAuthorities\n }).success(function () {\n toastr.success($translate.instant('security.user.created', {name: $scope.user.username}));\n const timer = $timeout(function () {\n $scope.loader = false;\n $window.history.back();\n }, 2000);\n $scope.$on('$destroy', function () {\n $timeout.cancel(timer);\n });\n }).error(function (data) {\n const msg = getError(data);\n $scope.loader = false;\n toastr.error(msg, $translate.instant('common.error'));\n });\n };\n\n $scope.createUser = function () {\n if ($scope.validateForm()) {\n $scope.setGrantedAuthorities();\n\n if (!$scope.repositoryCheckError) {\n $scope.createUserHttp();\n }\n }\n };\n\n $scope.validateForm = function () {\n let result = true;\n if (!$scope.user.username) {\n $scope.usernameError = $translate.instant('security.enter.username');\n result = false;\n } else {\n $scope.usernameError = '';\n }\n if ($scope.noPassword) {\n $scope.passwordError = '';\n $scope.confirmPasswordError = '';\n } else {\n if (!$scope.user.password) {\n $scope.passwordError = $translate.instant('security.enter.password');\n result = false;\n } else {\n $scope.passwordError = '';\n }\n if (!$scope.user.confirmpassword || $scope.user.password !== $scope.user.confirmpassword) {\n $scope.confirmPasswordError = $translate.instant('security.confirm.password');\n result = false;\n } else {\n $scope.confirmPasswordError = '';\n }\n }\n\n return result;\n };\n }]);\n\nsecurityCtrl.controller('EditUserCtrl', ['$scope', '$http', 'toastr', '$window', '$routeParams', '$timeout', '$location', '$jwtAuth', '$controller', 'SecurityRestService', 'ModalService', '$translate',\n function ($scope, $http, toastr, $window, $routeParams, $timeout, $location, $jwtAuth, $controller, SecurityRestService, ModalService, $translate) {\n\n angular.extend(this, $controller('CommonUserCtrl', {$scope: $scope, passwordPlaceholder: 'security.new.password'}));\n\n $scope.mode = 'edit';\n $scope.saveButtonText = $translate.instant('common.save.btn');\n $scope.goBack = function () {\n const timer = $timeout(function () {\n $window.history.back();\n }, 100);\n $scope.$on('$destroy', function () {\n $timeout.cancel(timer);\n });\n };\n $scope.params = $routeParams;\n $scope.pageTitle = $translate.instant('view.edit.user.title', {userId: $scope.params.userId});\n $scope.passwordPlaceholder = $translate.instant('security.new.password');\n $scope.userType = UserType.USER;\n const defaultUserSettings = {\n 'DEFAULT_SAMEAS': true,\n 'DEFAULT_INFERENCE': true,\n 'EXECUTE_COUNT': true,\n 'IGNORE_SHARED_QUERIES': false,\n 'DEFAULT_VIS_GRAPH_SCHEMA': true\n };\n\n if (!$jwtAuth.hasRole(UserRole.ROLE_ADMIN)) {\n $location.url('settings');\n }\n $scope.getUserData = function () {\n SecurityRestService.getUser($scope.params.userId).success(function (data) {\n $scope.userData = data;\n $scope.user = {username: $scope.userData.username};\n $scope.user.password = '';\n $scope.user.confirmpassword = '';\n $scope.user.external = $scope.userData.external;\n $scope.user.appSettings = data.appSettings || defaultUserSettings;\n $scope.userType = UserType.USER;\n const pa = parseAuthorities(data.grantedAuthorities);\n $scope.userType = pa.userType;\n $scope.grantedAuthorities = pa.grantedAuthorities;\n }).error(function (data) {\n const msg = getError(data);\n toastr.error(msg, $translate.instant('common.error'));\n });\n };\n\n $scope.getUserData();\n\n $scope.submit = function () {\n if ($scope.noPassword && $scope.userType === UserType.ADMIN) {\n ModalService.openSimpleModal({\n title: $translate.instant('security.save.admin.settings'),\n message: $translate.instant('security.admin.pass.unset'),\n warning: true\n }).result.then(function () {\n $scope.updateUser();\n });\n } else {\n $scope.updateUser();\n }\n };\n\n $scope.updateUserHttp = function () {\n $scope.loader = true;\n SecurityRestService.updateUser({\n username: $scope.user.username,\n pass: ($scope.noPassword) ? '' : $scope.user.password || undefined,\n appSettings: $scope.user.appSettings,\n grantedAuthorities: $scope.user.grantedAuthorities\n }).success(function () {\n toastr.success($translate.instant('security.user.updated', {name: $scope.user.username}));\n const timer = $timeout(function () {\n $scope.loader = false;\n $window.history.back();\n }, 2000);\n $scope.$on('$destroy', function () {\n $timeout.cancel(timer);\n });\n // if we update the settings of the currently logged user, update the principal\n $jwtAuth.getPrincipal().then((principal) => {\n if ($scope.user.username === principal.username) {\n principal.appSettings = $scope.user.appSettings;\n }\n });\n }).error(function (data) {\n const msg = getError(data);\n $scope.loader = false;\n toastr.error(msg, $translate.instant('common.error'));\n });\n };\n\n $scope.validateForm = function () {\n return $scope.validatePassword();\n };\n }]);\n\nsecurityCtrl.controller('RolesMappingController', ['$scope', 'toastr', 'SecurityRestService', '$translate',\n function ($scope, toastr, SecurityRestService, $translate) {\n\n $scope.debugMapping = function (role, mapping) {\n const method = mapping.split(':');\n SecurityRestService.getRolesMapping({\n role: role,\n method: method[1],\n mapping: method[0]\n });\n };\n\n const loadRoles = function () {\n SecurityRestService.getRoles()\n .success(function (data) {\n $scope.roleMappings = data;\n $scope.roles = _.keys($scope.roleMappings);\n $scope.mappings = _.keys($scope.roleMappings[$scope.roles[0]]);\n const permissionsCount = _.map($scope.roles, function (role) {\n return [role, _.filter($scope.roleMappings[role]).length];\n });\n $scope.roles = _.reverse(_.map(_.orderBy(permissionsCount, function (p) {\n return p[1];\n }), function (p) {\n return p[0];\n }));\n })\n .error(function (data) {\n const msg = getError(data);\n $scope.loader = false;\n toastr.error(msg, $translate.instant('common.error'));\n });\n };\n\n $scope.$on('repositoryIsSet', function () {\n loadRoles();\n });\n}]);\n\nsecurityCtrl.controller('ChangeUserPasswordSettingsCtrl', ['$scope', 'toastr', '$window', '$timeout', '$jwtAuth', '$rootScope', '$controller', 'SecurityRestService', 'ModalService', '$translate', 'LocalStorageAdapter', 'LSKeys', '$q',\n function ($scope, toastr, $window, $timeout, $jwtAuth, $rootScope, $controller, SecurityRestService, ModalService, $translate, LocalStorageAdapter, LSKeys, $q) {\n\n angular.extend(this, $controller('CommonUserCtrl', {$scope: $scope, passwordPlaceholder: 'security.new.password'}));\n\n $scope.mode = 'settings';\n $scope.hasEditRestrictions = function () {\n return true;\n };\n $scope.saveButtonText = $translate.instant('common.save.btn');\n $scope.goBack = function () {\n const timer = $timeout(function () {\n $window.history.back();\n }, 100);\n $scope.$on('$destroy', function () {\n $timeout.cancel(timer);\n });\n };\n // Wrapped in a scope function for ease of testing\n $scope.getPrincipal = function () {\n return $jwtAuth.getPrincipal()\n .then((principal) => {\n $scope.currentUserData = angular.copy(principal);\n });\n };\n\n $scope.getPrincipal().then(() => {\n $scope.redirectAdmin();\n initUserData($scope);\n });\n\n $scope.showWorkbenchSettings = true;\n\n $scope.updateCurrentUserData = function () {\n // Using $q.when to proper set values in view\n $q.when($jwtAuth.getPrincipal())\n .then((principal) => _.assign(principal, $scope.userData));\n };\n\n //call it as a function so I can make test on it\n $scope.redirectAdmin = function () {\n if (!$scope.currentUserData) {\n $rootScope.redirectToLogin();\n }\n };\n\n $scope.pageTitle = $translate.instant('view.settings.title');\n $scope.passwordPlaceholder = $translate.instant('security.new.password');\n $scope.grantedAuthorities = {\n [READ_REPO]: {},\n [WRITE_REPO]: {}\n };\n\n const initUserData = function (scope) {\n // Copy needed so that Cancel would work correctly, need to call updateCurrentUserData on OK\n scope.userData = angular.copy(scope.currentUserData);\n scope.user = {username: scope.userData.username};\n scope.user.password = '';\n scope.user.confirmpassword = '';\n scope.user.external = scope.userData.external;\n scope.user.appSettings = scope.userData.appSettings;\n // For backward compatibility\n if (scope.user.appSettings['DEFAULT_VIS_GRAPH_SCHEMA'] === undefined) {\n scope.user.appSettings['DEFAULT_VIS_GRAPH_SCHEMA'] = true;\n }\n\n const pa = parseAuthorities(scope.userData.authorities);\n $scope.userType = pa.userType;\n $scope.grantedAuthorities = pa.grantedAuthorities;\n };\n\n $scope.loader = false;\n\n $scope.submit = function () {\n if ($scope.noPassword && $scope.userType === UserType.ADMIN) {\n ModalService.openSimpleModal({\n title: $translate.instant('security.save.admin.settings'),\n message: $translate.instant('security.admin.pass.unset'),\n warning: true\n }).result.then(function () {\n $scope.updateUser();\n });\n } else {\n $scope.updateUser();\n }\n };\n\n $scope.updateUserHttp = function () {\n $scope.loader = true;\n SecurityRestService.updateUserData({\n username: $scope.user.username,\n pass: ($scope.noPassword) ? '' : $scope.user.password || undefined,\n appSettings: $scope.user.appSettings\n }).success(function () {\n $scope.updateCurrentUserData();\n toastr.success($translate.instant('security.user.updated', {name: $scope.user.username}));\n const timer = $timeout(function () {\n $scope.loader = false;\n $window.history.back();\n }, 2000);\n LocalStorageAdapter.set(LSKeys.WORKBENCH_SETTINGS, $scope.workbenchSettings);\n $scope.$on('$destroy', function () {\n $timeout.cancel(timer);\n });\n }).error(function (data) {\n const msg = getError(data);\n $scope.loader = false;\n toastr.error(msg, $translate.instant('common.error'));\n });\n };\n\n $scope.updateUser = function () {\n if (!$scope.validateForm()) {\n return false;\n }\n\n $scope.updateUserHttp();\n };\n\n $scope.validateForm = function () {\n return $scope.validatePassword();\n };\n\n $scope.setWorkbenchTheme = function () {\n const rootElement = document.querySelector(':root');\n if ($scope.workbenchSettings.theme === 'dark') {\n rootElement.classList.add(\"dark\");\n } else {\n rootElement.classList.remove(\"dark\");\n }\n };\n\n $scope.workbenchSettings = LocalStorageAdapter.get(LSKeys.WORKBENCH_SETTINGS);\n if (!$scope.workbenchSettings) {\n $scope.workbenchSettings = {\n theme: 'light'\n };\n }\n $scope.setWorkbenchTheme();\n\n $scope.$on(\"$destroy\", function () {\n const workbenchSettings = LocalStorageAdapter.get(LSKeys.WORKBENCH_SETTINGS);\n const rootElement = document.querySelector(':root');\n if (workbenchSettings && workbenchSettings.theme === 'dark') {\n rootElement.classList.add(\"dark\");\n } else {\n rootElement.classList.remove(\"dark\");\n }\n });\n }]);\n\nsecurityCtrl.controller('DeleteUserCtrl', ['$scope', '$modalInstance', 'username', function ($scope, $modalInstance, username) {\n $scope.username = username;\n\n $scope.ok = function () {\n $modalInstance.close();\n };\n\n $scope.cancel = function () {\n $modalInstance.dismiss('cancel');\n };\n}]);\n"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[110],{
|
|
2
|
-
//# sourceMappingURL=110.
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[110],{143:function(r,o,e){"use strict";e.r(o);e(4),e(11),e(98),e(12);angular.module("graphdb.framework.security",["toastr","ui.bootstrap","ngRoute","graphdb.framework.security.controllers","graphdb.framework.core.interceptors.unauthorized","graphdb.framework.core.services.jwtauth"])}}]);
|
|
2
|
+
//# sourceMappingURL=110.4c6719423e79f089e594.bundle.js.map
|
package/dist/{110.7419abdcd9b1e7b062ad.bundle.js.map → 110.4c6719423e79f089e594.bundle.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack:///./src/js/angular/security/app.js"],"names":["angular","module"],"mappings":"4FAAA,8BAcAA,QAAQC,OAAO,6BATC,CACZ,SACA,eACA,UACA,yCACA,mDACA","file":"110.
|
|
1
|
+
{"version":3,"sources":["webpack:///./src/js/angular/security/app.js"],"names":["angular","module"],"mappings":"4FAAA,8BAcAA,QAAQC,OAAO,6BATC,CACZ,SACA,eACA,UACA,yCACA,mDACA","file":"110.4c6719423e79f089e594.bundle.js","sourcesContent":["import 'angular/core/services';\nimport 'angular/core/directives';\nimport 'angular/security/controllers';\nimport 'angular/core/services/jwt-auth.service';\n\nconst modules = [\n 'toastr',\n 'ui.bootstrap',\n 'ngRoute',\n 'graphdb.framework.security.controllers',\n 'graphdb.framework.core.interceptors.unauthorized',\n 'graphdb.framework.core.services.jwtauth'\n];\n\nangular.module('graphdb.framework.security', modules);\n"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[111],{
|
|
2
|
-
//# sourceMappingURL=111.
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[111],{144:function(e,r){PluginRegistry.add("route",[{url:"/users",module:"graphdb.framework.security",path:"security/app",chunk:"security",controller:"UsersCtrl",templateUrl:"js/angular/security/templates/users.html",title:"menu.users.and.access.label",helpInfo:"view.users.access.helpInfo"},{url:"/user/create",module:"graphdb.framework.security",path:"security/app",chunk:"security",controller:"AddUserCtrl",templateUrl:"js/angular/security/templates/user.html",title:"Create new user"},{url:"/login",module:"graphdb.framework.security",path:"security/app",chunk:"security",controller:"LoginCtrl",templateUrl:"pages/login.html",title:"view.login.title"},{url:"/user/:userId",module:"graphdb.framework.security",path:"security/app",chunk:"security",controller:"EditUserCtrl",templateUrl:"js/angular/security/templates/user.html",title:"Edit user"},{url:"/settings",module:"graphdb.framework.security",path:"security/app",chunk:"security",controller:"ChangeUserPasswordSettingsCtrl",templateUrl:"js/angular/security/templates/user.html",title:"view.settings.title"},{url:"/accessdenied",templateUrl:"pages/accessdenied.html",title:"view.access.denied.title"},{url:"/rolesmappings",module:"graphdb.framework.security",path:"security/app",chunk:"security",controller:"RolesMappingController",templateUrl:"js/angular/security/templates/roles.html",title:"view.roles.mapping.title"}]),PluginRegistry.add("main.menu",{items:[{label:"Setup",labelKey:"menu.setup.label",href:"#",order:5,role:"IS_AUTHENTICATED_FULLY",icon:"icon-settings",guideSelector:"menu-setup"},{label:"Users and Access",labelKey:"menu.users.and.access.label",href:"users",order:2,parent:"Setup",role:"ROLE_ADMIN",children:[{href:"user/create",children:[]}],guideSelector:"sub-menu-user-and-access"},{label:"My Settings",labelKey:"menu.my.settings.label",href:"settings",order:6,parent:"Setup",role:"ROLE_USER",guideSelector:"sub-menu-my-settings"}]})}}]);
|
|
2
|
+
//# sourceMappingURL=111.93eb21f8bd85a9ef5d1b.bundle.js.map
|
package/dist/{111.87635664a5306fc0c6bb.bundle.js.map → 111.93eb21f8bd85a9ef5d1b.bundle.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack:///./src/js/angular/security/plugin.js"],"names":["PluginRegistry","add","label","labelKey","href","order","role","icon","guideSelector","parent","children"],"mappings":"6EAAAA,eAAeC,IAAI,QAAS,CACxB,CACI,IAAO,SACP,OAAU,6BACV,KAAQ,eACR,MAAS,WACT,WAAc,YACd,YAAe,2CACf,MAAS,8BACT,SAAY,8BACb,CACC,IAAO,eACP,OAAU,6BACV,KAAQ,eACR,MAAS,WACT,WAAc,cACd,YAAe,0CACf,MAAS,mBACV,CACC,IAAO,SACP,OAAU,6BACV,KAAQ,eACR,MAAS,WACT,WAAc,YACd,YAAe,mBACf,MAAS,oBACV,CACC,IAAO,gBACP,OAAU,6BACV,KAAQ,eACR,MAAS,WACT,WAAc,eACd,YAAe,0CACf,MAAS,aACV,CACC,IAAO,YACP,OAAU,6BACV,KAAQ,eACR,MAAS,WACT,WAAc,iCACd,YAAe,0CACf,MAAS,uBACV,CACC,IAAO,gBACP,YAAe,0BACf,MAAS,4BACV,CACC,IAAO,iBACP,OAAU,6BACV,KAAQ,eACR,MAAS,WACT,WAAc,yBACd,YAAe,2CACf,MAAS,8BAIjBD,eAAeC,IAAI,YAAa,CAC5B,MAAS,CACL,CACIC,MAAO,QACPC,SAAU,mBACVC,KAAM,IACNC,MAAO,EACPC,KAAM,yBACNC,KAAM,gBACNC,cAAe,cAEnB,CACIN,MAAO,mBAAoBC,SAAU,8BAA+BC,KAAM,QAASC,MAAO,EAAGI,OAAQ,QAASH,KAAM,aACpHI,SAAU,CAAC,CACPN,KAAM,cACNM,SAAU,KAEdF,cAAe,4BAEnB,CACIN,MAAO,cACPC,SAAU,yBACVC,KAAM,WACNC,MAAO,EACPI,OAAQ,QACRH,KAAM,YACNE,cAAe","file":"111.
|
|
1
|
+
{"version":3,"sources":["webpack:///./src/js/angular/security/plugin.js"],"names":["PluginRegistry","add","label","labelKey","href","order","role","icon","guideSelector","parent","children"],"mappings":"6EAAAA,eAAeC,IAAI,QAAS,CACxB,CACI,IAAO,SACP,OAAU,6BACV,KAAQ,eACR,MAAS,WACT,WAAc,YACd,YAAe,2CACf,MAAS,8BACT,SAAY,8BACb,CACC,IAAO,eACP,OAAU,6BACV,KAAQ,eACR,MAAS,WACT,WAAc,cACd,YAAe,0CACf,MAAS,mBACV,CACC,IAAO,SACP,OAAU,6BACV,KAAQ,eACR,MAAS,WACT,WAAc,YACd,YAAe,mBACf,MAAS,oBACV,CACC,IAAO,gBACP,OAAU,6BACV,KAAQ,eACR,MAAS,WACT,WAAc,eACd,YAAe,0CACf,MAAS,aACV,CACC,IAAO,YACP,OAAU,6BACV,KAAQ,eACR,MAAS,WACT,WAAc,iCACd,YAAe,0CACf,MAAS,uBACV,CACC,IAAO,gBACP,YAAe,0BACf,MAAS,4BACV,CACC,IAAO,iBACP,OAAU,6BACV,KAAQ,eACR,MAAS,WACT,WAAc,yBACd,YAAe,2CACf,MAAS,8BAIjBD,eAAeC,IAAI,YAAa,CAC5B,MAAS,CACL,CACIC,MAAO,QACPC,SAAU,mBACVC,KAAM,IACNC,MAAO,EACPC,KAAM,yBACNC,KAAM,gBACNC,cAAe,cAEnB,CACIN,MAAO,mBAAoBC,SAAU,8BAA+BC,KAAM,QAASC,MAAO,EAAGI,OAAQ,QAASH,KAAM,aACpHI,SAAU,CAAC,CACPN,KAAM,cACNM,SAAU,KAEdF,cAAe,4BAEnB,CACIN,MAAO,cACPC,SAAU,yBACVC,KAAM,WACNC,MAAO,EACPI,OAAQ,QACRH,KAAM,YACNE,cAAe","file":"111.93eb21f8bd85a9ef5d1b.bundle.js","sourcesContent":["PluginRegistry.add('route', [\n {\n 'url': '/users',\n 'module': 'graphdb.framework.security',\n 'path': 'security/app',\n 'chunk': 'security',\n 'controller': 'UsersCtrl',\n 'templateUrl': 'js/angular/security/templates/users.html',\n 'title': 'menu.users.and.access.label',\n 'helpInfo': 'view.users.access.helpInfo'\n }, {\n 'url': '/user/create',\n 'module': 'graphdb.framework.security',\n 'path': 'security/app',\n 'chunk': 'security',\n 'controller': 'AddUserCtrl',\n 'templateUrl': 'js/angular/security/templates/user.html',\n 'title': 'Create new user'\n }, {\n 'url': '/login',\n 'module': 'graphdb.framework.security',\n 'path': 'security/app',\n 'chunk': 'security',\n 'controller': 'LoginCtrl',\n 'templateUrl': 'pages/login.html',\n 'title': 'view.login.title'\n }, {\n 'url': '/user/:userId',\n 'module': 'graphdb.framework.security',\n 'path': 'security/app',\n 'chunk': 'security',\n 'controller': 'EditUserCtrl',\n 'templateUrl': 'js/angular/security/templates/user.html',\n 'title': 'Edit user'\n }, {\n 'url': '/settings',\n 'module': 'graphdb.framework.security',\n 'path': 'security/app',\n 'chunk': 'security',\n 'controller': 'ChangeUserPasswordSettingsCtrl',\n 'templateUrl': 'js/angular/security/templates/user.html',\n 'title': 'view.settings.title'\n }, {\n 'url': '/accessdenied',\n 'templateUrl': 'pages/accessdenied.html',\n 'title': 'view.access.denied.title'\n }, {\n 'url': '/rolesmappings',\n 'module': 'graphdb.framework.security',\n 'path': 'security/app',\n 'chunk': 'security',\n 'controller': 'RolesMappingController',\n 'templateUrl': 'js/angular/security/templates/roles.html',\n 'title': 'view.roles.mapping.title'\n }\n]);\n\nPluginRegistry.add('main.menu', {\n 'items': [\n {\n label: 'Setup',\n labelKey: 'menu.setup.label',\n href: '#',\n order: 5,\n role: 'IS_AUTHENTICATED_FULLY',\n icon: 'icon-settings',\n guideSelector: 'menu-setup'\n },\n {\n label: 'Users and Access', labelKey: 'menu.users.and.access.label', href: 'users', order: 2, parent: 'Setup', role: 'ROLE_ADMIN',\n children: [{\n href: 'user/create',\n children: []\n }],\n guideSelector: 'sub-menu-user-and-access'\n },\n {\n label: 'My Settings',\n labelKey: 'menu.my.settings.label',\n href: 'settings',\n order: 6,\n parent: 'Setup',\n role: 'ROLE_USER',\n guideSelector: 'sub-menu-my-settings'\n }\n ]\n});\n"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[113],{
|
|
2
|
-
//# sourceMappingURL=113.
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[113],{145:function(e,i){PluginRegistry.add("route",[{url:"/license/register",module:"graphdb.framework.settings",path:"settings/app",chunk:"settings",controller:"RegisterLicenseCtrl",templateUrl:"pages/registerLicenseInfo.html",title:"view.register.license.title",helpInfo:"view.register.license.helpInfo"},{url:"/license",module:"graphdb.framework.settings",path:"settings/app",chunk:"settings",controller:"LicenseCtrl",templateUrl:"pages/licenseInfo.html",title:"view.existing.license.title",helpInfo:"view.existing.license.helpInfo"}]),PluginRegistry.add("main.menu",{items:[{label:"License",labelKey:"menu.license.label",href:"license",order:100,role:"ROLE_ADMIN",parent:"Setup",guideSelector:"sub-menu-license"}]})}}]);
|
|
2
|
+
//# sourceMappingURL=113.b77f2a783cadc7a2d428.bundle.js.map
|
package/dist/{113.2a67bc73a80f0bbf6397.bundle.js.map → 113.b77f2a783cadc7a2d428.bundle.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack:///./src/js/angular/settings/plugin.js"],"names":["PluginRegistry","add","label","labelKey","href","order","role","parent","guideSelector"],"mappings":"6EAAAA,eAAeC,IAAI,QAAS,CACxB,CACI,IAAO,oBACP,OAAU,6BACV,KAAQ,eACR,MAAS,WACT,WAAc,sBACd,YAAe,iCACf,MAAS,8BACT,SAAY,kCACb,CACC,IAAO,WACP,OAAU,6BACV,KAAQ,eACR,MAAS,WACT,WAAc,cACd,YAAe,yBACf,MAAS,8BACT,SAAY,oCAIpBD,eAAeC,IAAI,YAAa,CAC5B,MAAS,CAAC,CACNC,MAAO,UACPC,SAAU,qBACVC,KAAM,UACNC,MAAO,IACPC,KAAM,aACNC,OAAQ,QACRC,cAAe","file":"113.
|
|
1
|
+
{"version":3,"sources":["webpack:///./src/js/angular/settings/plugin.js"],"names":["PluginRegistry","add","label","labelKey","href","order","role","parent","guideSelector"],"mappings":"6EAAAA,eAAeC,IAAI,QAAS,CACxB,CACI,IAAO,oBACP,OAAU,6BACV,KAAQ,eACR,MAAS,WACT,WAAc,sBACd,YAAe,iCACf,MAAS,8BACT,SAAY,kCACb,CACC,IAAO,WACP,OAAU,6BACV,KAAQ,eACR,MAAS,WACT,WAAc,cACd,YAAe,yBACf,MAAS,8BACT,SAAY,oCAIpBD,eAAeC,IAAI,YAAa,CAC5B,MAAS,CAAC,CACNC,MAAO,UACPC,SAAU,qBACVC,KAAM,UACNC,MAAO,IACPC,KAAM,aACNC,OAAQ,QACRC,cAAe","file":"113.b77f2a783cadc7a2d428.bundle.js","sourcesContent":["PluginRegistry.add('route', [\n {\n 'url': '/license/register',\n 'module': 'graphdb.framework.settings',\n 'path': 'settings/app',\n 'chunk': 'settings',\n 'controller': 'RegisterLicenseCtrl',\n 'templateUrl': 'pages/registerLicenseInfo.html',\n 'title': 'view.register.license.title',\n 'helpInfo': 'view.register.license.helpInfo'\n }, {\n 'url': '/license',\n 'module': 'graphdb.framework.settings',\n 'path': 'settings/app',\n 'chunk': 'settings',\n 'controller': 'LicenseCtrl',\n 'templateUrl': 'pages/licenseInfo.html',\n 'title': 'view.existing.license.title',\n 'helpInfo': 'view.existing.license.helpInfo'\n }\n]);\n\nPluginRegistry.add('main.menu', {\n 'items': [{\n label: 'License',\n labelKey: 'menu.license.label',\n href: 'license',\n order: 100,\n role: 'ROLE_ADMIN',\n parent: 'Setup',\n guideSelector: 'sub-menu-license'\n }]\n});\n"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[114],{92:function(e,t,r){"use strict";r.r(t);var i=r(245),n=r.n(i),s=r(0),a=r(45);function c(e,t,r,i,c,o,l,u,p,d,y,m){const h="http://www.ontotext.com/graphdb/similarity/",g="http://www.ontotext.com/graphdb/similarity/psi/",f=g+"any";e.pluginName="similarity",e.pluginIsActive=!0,e.setPluginIsActive=function(t){e.pluginIsActive=t};const S=function(e){return'"'+e+'"'},x=function(e){return void 0===e||e.startsWith("<<")&&e.endsWith(">>")?e:"<"+e+">"};function v(){return!e.getActiveRepository()||e.isActiveRepoFedXType()||e.isActiveRepoOntopType()}let b;function w(){c.isLicenseValid()&&(e.getAutocompletePromise=p.checkAutocompleteStatus())}e.info=d,e.getActiveRepository=function(){return i.getActiveRepository()},v()||u.getSearchQueries().success((function(t){e.searchQueries=t})).error((function(e){const t=getError(e);r.error(t,m.instant("similarity.could.not.get.search.queries.error"))})),e.encodeURIComponent=function(e){return encodeURIComponent(e)},e.getSimilarityIndexes=function(){!v()&&e.pluginIsActive&&u.getIndexes().success((function(t){e.similarityIndexes=t})).error((function(e){const t=getError(e);r.error(t,m.instant("similarity.could.not.get.indexes.error"))}))},e.pullList=function(){e.getSimilarityIndexes();const r=t((function(){e.$broadcast("checkIsActive"),"false"!==$("#indexes-table").attr("aria-expanded")&&e.getSimilarityIndexes()}),5e3);e.$on("$destroy",(function(){t.cancel(r)}))},e.getActiveRepository()&&c.isLicenseValid()&&e.pullList(),e.$watch((function(){return i.getActiveRepository()}),(function(){!e.getActiveRepository()||e.isActiveRepoOntopType()||e.isActiveRepoFedXType()||(e.getNamespacesPromise=y.getNamespaces(e.getActiveRepository()).success((function(t){w(),e.usedPrefixes={},t.results.bindings.forEach((function(t){e.usedPrefixes[t.prefix.value]=t.namespace.value})),e.$on("$destroy",(function(){b&&b.destroy()})),b=n()(document.getElementById("yasr"),{getUsedPrefixes:e.usedPrefixes,persistency:!1,hideHeader:!0,pluginsOptions:a.YasrUtils.getYasrConfiguration()})})).error((function(e){r.error(getError(e),m.instant("get.namespaces.error.msg"))})))})),e.$on("autocompleteStatus",(function(){w()})),e.loading=!1,e.selected=void 0,e.searchType="searchTerm",e.resultType="termResult",e.$watch("searchType",(function(){e.empty=!0})),e.goToSimilarityIndex=function(t){"BUILT"!==t.status&&"OUTDATED"!==t.status&&"REBUILDING"!==t.status||(e.empty=!0,e.selected!==t&&(e.lastSearch=void 0,e.selected=t),"text"===t.type?e.searchType="searchTerm":"predication"===t.type&&(e.searchType="searchEntity"),"text"!==t.type&&"predication"!==t.type||$("#indexes-table").collapse("hide"))};const I=function(t){const r=angular.element(document.getElementById("yasr-inner")),i=angular.element(document.getElementById("results-loader"));t?(e.loading=!0,r.addClass("opacity-hide"),i.removeClass("opacity-hide")):(e.loading=!1,r.removeClass("opacity-hide"),i.addClass("opacity-hide"))};e.performSearch=function(t,n,s,a,c){I(!0);let o=n;e.lastSearch={},e.lastSearch.type=s,"searchEntityPredicate"===s&&(o=e.psiSubject,e.lastSearch.predicate=n),o="searchTerm"===s?S(o):x(o),e.lastSearch.termOrSubject=o;let l;l="searchAnalogical"===s?e.selected.analogicalQuery?e.selected.analogicalQuery:e.searchQueries.analogical:e.selected.searchQuery?e.selected.searchQuery:e.searchQueries[e.selected.type];const u={query:l,$index:x("http://www.ontotext.com/graphdb/similarity/instance/"+t),$query:o,$searchType:x(("text"===e.selected.type?h:g)+("searchEntityPredicate"===s?"searchEntity":s)),$resultType:x("text"===e.selected.type?h+a:g+"entityResult"),$parameters:S(c)};"searchEntityPredicate"===s&&(u.$psiPredicate=e.lastSearch.predicate?x(e.lastSearch.predicate):x(f)),"searchAnalogical"===s&&(e.searchSubject=n,u.$givenSubject=x(e.analogicalSubject),u.$givenObject=x(e.analogicalObject),u.$searchSubject=x(n)),$.ajax({method:"GET",url:"repositories/"+i.getActiveRepository(),data:u,headers:{Accept:"application/x-sparqlstar-results+json, application/sparql-results+json;q=0.9, */*;q=0.8"}}).done((function(e,t,r){I(!1),b.setResponse(e,t,r)})).fail((function(e){r.error(getError(e),m.instant("similarity.get.resource.error")),I(!1)}))},e.viewSearchQuery=function(){let t;t="searchAnalogical"===e.lastSearch.type?e.selected.analogicalQuery?e.selected.analogicalQuery:e.searchQueries.analogical:e.selected.searchQuery?e.selected.searchQuery:e.searchQueries[e.selected.type];let r=[],i="";r=t.match(/[a-zA-Z0-9-]+:<http:\/\/www.ontotext.com\/graphdb\/similarity\/instance\/>/),i=null==r?"similarity-index":r[0].substring(0,r[0].indexOf(":"));const n=t.replace("?index",i+":"+e.selected.name).replace("?query",e.lastSearch.termOrSubject).replace("?searchType",("text"===e.selected.type?":":"psi:")+("searchEntityPredicate"===e.lastSearch.type?"searchEntity":e.lastSearch.type)).replace("?resultType","text"===e.selected.type?":"+e.resultType:"psi:entityResult").replace("?parameters",S(e.searchParameters?e.searchParameters:"")).replace("?psiPredicate",e.lastSearch.predicate?x(e.lastSearch.predicate):x(f)).replace("?givenSubject",x(e.analogicalSubject)).replace("?givenObject",x(e.analogicalObject)).replace("?searchSubject",x(e.searchSubject));l.open({templateUrl:"pages/viewQuery.html",controller:"ViewQueryCtrl",resolve:{query:function(){return n}}})},e.deleteIndex=function(t){o.openSimpleModal({title:m.instant("common.confirm"),message:m.instant("similarity.delete.index.warning",{name:t.name}),warning:!0}).result.then((function(){u.deleteIndex(t).then((function(){e.getSimilarityIndexes()}),(function(e){r.error(getError(e))}))}))},e.viewCreateQuery=function(e){u.getQuery({indexName:e.name,indexOptions:e.options,query:e.selectQuery,indexStopList:e.stopList,queryInference:e.infer,querySameAs:e.sameAs,viewType:e.type,indexAnalyzer:e.analyzer}).success((function(e){l.open({templateUrl:"pages/viewQuery.html",controller:"ViewQueryCtrl",resolve:{query:function(){return e}}})}))},e.rebuildIndex=function(t){t.searchQuery||(t.searchQuery=t.type?e.searchQueries[t.type]:e.searchQueries.text),o.openSimpleModal({title:m.instant("common.confirm"),message:Object(s.decodeHTML)(m.instant("similarity.rebuild.index.warning",{name:t.name})),warning:!0}).result.then((function(){t.status="REBUILDING",u.rebuildIndex(t).then((function(e){}),(function(e){r.error(getError(e))}))}))},e.copyToClipboardResult=function(e){o.openCopyToClipboardModal(e)},e.trimIRI=function(e){return _.trim(e,"<>")}}angular.module("graphdb.framework.similarity.controllers.list",[]).controller("SimilarityCtrl",c),c.$inject=["$scope","$interval","toastr","$repositories","$licenseService","ModalService","$modal","SimilarityRestService","AutocompleteRestService","productInfo","RDF4JRepositoriesRestService","$translate"]}}]);
|
|
2
|
+
//# sourceMappingURL=114.db473421180e7bce6495.bundle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["webpack:///./src/js/angular/similarity/controllers/similarity-list.controller.js"],"names":["SimilarityCtrl","$scope","$interval","toastr","$repositories","$licenseService","ModalService","$modal","SimilarityRestService","AutocompleteRestService","productInfo","RDF4JRepositoriesRestService","$translate","PREFIX","PREFIX_PREDICATION","ANY_PREDICATE","pluginName","pluginIsActive","setPluginIsActive","isPluginActive","literalForQuery","literal","iriForQuery","iri","undefined","startsWith","endsWith","shouldSkipCall","getActiveRepository","isActiveRepoFedXType","isActiveRepoOntopType","yasr","checkAutocompleteStatus","isLicenseValid","getAutocompletePromise","info","getSearchQueries","success","data","searchQueries","error","msg","getError","instant","encodeURIComponent","param","getSimilarityIndexes","getIndexes","similarityIndexes","pullList","timer","$broadcast","$","attr","$on","cancel","$watch","getNamespacesPromise","getNamespaces","usedPrefixes","results","bindings","forEach","e","prefix","value","namespace","destroy","document","getElementById","getUsedPrefixes","persistency","hideHeader","pluginsOptions","getYasrConfiguration","loading","selected","searchType","resultType","empty","goToSimilarityIndex","index","status","lastSearch","type","collapse","toggleOntoLoader","showLoader","yasrInnerContainer","angular","element","resultsLoader","addClass","removeClass","performSearch","uri","parameters","termOrSubject","psiSubject","predicate","sparqlQuery","analogicalQuery","searchQuery","sendData","query","$index","$query","$searchType","$resultType","$parameters","$psiPredicate","searchSubject","$givenSubject","analogicalSubject","$givenObject","analogicalObject","$searchSubject","ajax","method","url","headers","Accept","done","textStatus","jqXhrOrErrorString","setResponse","fail","viewSearchQuery","queryTemplate","tokens","match","substring","indexOf","replacedQuery","replace","name","searchParameters","open","templateUrl","controller","resolve","deleteIndex","openSimpleModal","title","message","warning","result","then","err","viewCreateQuery","getQuery","indexName","indexOptions","options","selectQuery","indexStopList","stopList","queryInference","infer","querySameAs","sameAs","viewType","indexAnalyzer","analyzer","rebuildIndex","text","res","copyToClipboardResult","openCopyToClipboardModal","trimIRI","_","trim","module","$inject"],"mappings":"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","file":"114.db473421180e7bce6495.bundle.js","sourcesContent":["import YASR from 'lib/yasr.bundled';\nimport {decodeHTML} from \"../../../../app\";\nimport {YasrUtils} from \"../../utils/yasr-utils\";\n\nangular\n .module('graphdb.framework.similarity.controllers.list', [])\n .controller('SimilarityCtrl', SimilarityCtrl);\n\nSimilarityCtrl.$inject = ['$scope', '$interval', 'toastr', '$repositories', '$licenseService', 'ModalService', '$modal', 'SimilarityRestService', 'AutocompleteRestService', 'productInfo', 'RDF4JRepositoriesRestService', '$translate'];\n\nfunction SimilarityCtrl($scope, $interval, toastr, $repositories, $licenseService, ModalService, $modal, SimilarityRestService, AutocompleteRestService, productInfo, RDF4JRepositoriesRestService, $translate) {\n\n const PREFIX = 'http://www.ontotext.com/graphdb/similarity/';\n const PREFIX_PREDICATION = 'http://www.ontotext.com/graphdb/similarity/psi/';\n const PREFIX_INSTANCE = PREFIX + 'instance/';\n const ANY_PREDICATE = PREFIX_PREDICATION + 'any';\n $scope.pluginName = 'similarity';\n $scope.pluginIsActive = true;\n\n $scope.setPluginIsActive = function (isPluginActive) {\n $scope.pluginIsActive = isPluginActive;\n };\n\n const literalForQuery = function (literal) {\n return '\"' + literal + '\"';\n };\n\n // TODO: Fix cases when this function is called with undefined\n const iriForQuery = function (iri) {\n // Do not put brackets on nested triples\n if (iri === undefined || iri.startsWith(\"<<\") && iri.endsWith(\">>\")) {\n return iri;\n }\n return '<' + iri + '>';\n };\n\n $scope.info = productInfo;\n\n $scope.getActiveRepository = function () {\n return $repositories.getActiveRepository();\n };\n\n // Don't call functions if one of the following conditions are met\n function shouldSkipCall() {\n return !$scope.getActiveRepository() ||\n $scope.isActiveRepoFedXType() ||\n $scope.isActiveRepoOntopType();\n }\n\n if (!shouldSkipCall()) {\n SimilarityRestService.getSearchQueries().success(function (data) {\n $scope.searchQueries = data;\n }).error(function (data) {\n const msg = getError(data);\n toastr.error(msg, $translate.instant('similarity.could.not.get.search.queries.error'));\n });\n }\n\n $scope.encodeURIComponent = function (param) {\n return encodeURIComponent(param);\n };\n\n // get similarity indexes\n $scope.getSimilarityIndexes = function () {\n if (shouldSkipCall() || !$scope.pluginIsActive) {\n return;\n }\n SimilarityRestService.getIndexes()\n .success(function (data) {\n $scope.similarityIndexes = data;\n })\n .error(function (data) {\n const msg = getError(data);\n toastr.error(msg, $translate.instant('similarity.could.not.get.indexes.error'));\n });\n };\n\n $scope.pullList = function () {\n $scope.getSimilarityIndexes();\n const timer = $interval(function () {\n $scope.$broadcast('checkIsActive');\n if ($('#indexes-table').attr('aria-expanded') !== 'false') {\n $scope.getSimilarityIndexes();\n }\n }, 5000);\n $scope.$on('$destroy', function () {\n $interval.cancel(timer);\n });\n };\n\n if ($scope.getActiveRepository()) {\n if ($licenseService.isLicenseValid()) {\n $scope.pullList();\n }\n }\n\n let yasr;\n\n $scope.$watch(function () {\n return $repositories.getActiveRepository();\n }, function () {\n // Don't try to get namespaces for ontop or fedx repository\n if ($scope.getActiveRepository() && !$scope.isActiveRepoOntopType() && !$scope.isActiveRepoFedXType()) {\n $scope.getNamespacesPromise = RDF4JRepositoriesRestService.getNamespaces($scope.getActiveRepository())\n .success(function (data) {\n checkAutocompleteStatus();\n $scope.usedPrefixes = {};\n data.results.bindings.forEach(function (e) {\n $scope.usedPrefixes[e.prefix.value] = e.namespace.value;\n });\n $scope.$on('$destroy', function () {\n if (yasr) {\n yasr.destroy();\n }\n });\n yasr = YASR(document.getElementById('yasr'), { // eslint-disable-line new-cap\n //this way, the URLs in the results are prettified using the defined prefixes\n getUsedPrefixes: $scope.usedPrefixes,\n persistency: false,\n hideHeader: true,\n pluginsOptions: YasrUtils.getYasrConfiguration()\n });\n }).error(function (data) {\n toastr.error(getError(data), $translate.instant('get.namespaces.error.msg'));\n });\n }\n });\n\n function checkAutocompleteStatus() {\n if ($licenseService.isLicenseValid()) {\n $scope.getAutocompletePromise = AutocompleteRestService.checkAutocompleteStatus();\n }\n }\n\n $scope.$on('autocompleteStatus', function() {\n checkAutocompleteStatus();\n });\n\n $scope.loading = false;\n\n $scope.selected = undefined;\n $scope.searchType = 'searchTerm';\n $scope.resultType = 'termResult';\n\n $scope.$watch('searchType', function () {\n $scope.empty = true;\n });\n\n $scope.goToSimilarityIndex = function (index) {\n if (!('BUILT' === index.status || 'OUTDATED' === index.status || 'REBUILDING' === index.status)) {\n return;\n }\n $scope.empty = true;\n if ($scope.selected !== index) {\n $scope.lastSearch = undefined;\n $scope.selected = index;\n }\n if (index.type === 'text') {\n $scope.searchType = 'searchTerm';\n } else if (index.type === 'predication') {\n $scope.searchType = 'searchEntity';\n }\n if (index.type === 'text' || index.type === 'predication') {\n $('#indexes-table').collapse('hide');\n }\n };\n\n const toggleOntoLoader = function (showLoader) {\n const yasrInnerContainer = angular.element(document.getElementById('yasr-inner'));\n const resultsLoader = angular.element(document.getElementById('results-loader'));\n /* Angular b**it. For some reason the loader behaved strangely with ng-show not always showing */\n if (showLoader) {\n $scope.loading = true;\n yasrInnerContainer.addClass('opacity-hide');\n resultsLoader.removeClass('opacity-hide');\n } else {\n $scope.loading = false;\n yasrInnerContainer.removeClass('opacity-hide');\n resultsLoader.addClass('opacity-hide');\n }\n };\n\n $scope.performSearch = function (index, uri, searchType, resultType, parameters) {\n\n toggleOntoLoader(true);\n\n // this is either the search term or the iri for the subject\n let termOrSubject = uri;\n\n $scope.lastSearch = {};\n $scope.lastSearch.type = searchType;\n\n if (searchType === 'searchEntityPredicate') {\n termOrSubject = $scope.psiSubject;\n $scope.lastSearch.predicate = uri;\n }\n\n if (searchType === 'searchTerm') {\n termOrSubject = literalForQuery(termOrSubject);\n } else {\n termOrSubject = iriForQuery(termOrSubject);\n }\n\n $scope.lastSearch.termOrSubject = termOrSubject;\n\n const headers = {Accept: 'application/x-sparqlstar-results+json, application/sparql-results+json;q=0.9, */*;q=0.8'};\n let sparqlQuery;\n if (searchType === 'searchAnalogical') {\n sparqlQuery = ($scope.selected.analogicalQuery) ? $scope.selected.analogicalQuery : $scope.searchQueries['analogical'];\n } else {\n sparqlQuery = ($scope.selected.searchQuery) ? $scope.selected.searchQuery : $scope.searchQueries[$scope.selected.type];\n }\n const sendData = {\n query: sparqlQuery,\n $index: iriForQuery(PREFIX_INSTANCE + index),\n $query: termOrSubject,\n $searchType: iriForQuery(($scope.selected.type === 'text' ? PREFIX : PREFIX_PREDICATION) + (searchType === 'searchEntityPredicate' ? 'searchEntity' : searchType)),\n $resultType: iriForQuery($scope.selected.type === 'text' ? PREFIX + resultType : PREFIX_PREDICATION + 'entityResult'),\n $parameters: literalForQuery(parameters)\n };\n\n if (searchType === 'searchEntityPredicate') {\n sendData.$psiPredicate = $scope.lastSearch.predicate ? iriForQuery($scope.lastSearch.predicate) : iriForQuery(ANY_PREDICATE);\n }\n\n if (searchType === 'searchAnalogical') {\n $scope.searchSubject = uri;\n sendData.$givenSubject = iriForQuery($scope.analogicalSubject);\n sendData.$givenObject = iriForQuery($scope.analogicalObject);\n sendData.$searchSubject = iriForQuery(uri);\n }\n\n $.ajax({\n method: 'GET',\n url: 'repositories/' + $repositories.getActiveRepository(),\n data: sendData,\n headers: headers\n }).done(function (data, textStatus, jqXhrOrErrorString) {\n toggleOntoLoader(false);\n yasr.setResponse(data, textStatus, jqXhrOrErrorString);\n }).fail(function (data) {\n toastr.error(getError(data), $translate.instant('similarity.get.resource.error'));\n toggleOntoLoader(false);\n });\n };\n\n $scope.viewSearchQuery = function () {\n let queryTemplate;\n if ($scope.lastSearch.type === 'searchAnalogical') {\n queryTemplate = ($scope.selected.analogicalQuery) ? $scope.selected.analogicalQuery : $scope.searchQueries['analogical'];\n } else {\n queryTemplate = ($scope.selected.searchQuery) ? $scope.selected.searchQuery : $scope.searchQueries[$scope.selected.type];\n }\n\n //replace template prefix for PREFIX_INSTANCE in the view mode with actual prefix from the query\n let tokens = [];\n let prefix = '';\n tokens = queryTemplate.match(/[a-zA-Z0-9-]+:<http:\\/\\/www.ontotext.com\\/graphdb\\/similarity\\/instance\\/>/);\n prefix = tokens == null ? \"similarity-index\" : tokens[0].substring(0, tokens[0].indexOf(':'));\n\n const replacedQuery = queryTemplate\n .replace('?index', prefix + ':' + $scope.selected.name)\n .replace('?query', $scope.lastSearch.termOrSubject)\n .replace('?searchType', ($scope.selected.type === 'text' ? ':' : 'psi:') + ($scope.lastSearch.type === 'searchEntityPredicate' ? 'searchEntity' : $scope.lastSearch.type))\n .replace('?resultType', $scope.selected.type === 'text' ? ':' + $scope.resultType : 'psi:entityResult')\n .replace('?parameters', literalForQuery((!$scope.searchParameters) ? '' : $scope.searchParameters))\n .replace('?psiPredicate', $scope.lastSearch.predicate ? iriForQuery($scope.lastSearch.predicate) : iriForQuery(ANY_PREDICATE))\n .replace('?givenSubject', iriForQuery($scope.analogicalSubject))\n .replace('?givenObject', iriForQuery($scope.analogicalObject))\n .replace('?searchSubject', iriForQuery($scope.searchSubject));\n\n $modal.open({\n templateUrl: 'pages/viewQuery.html',\n controller: 'ViewQueryCtrl',\n resolve: {\n query: function () {\n return replacedQuery;\n }\n }\n });\n };\n\n\n $scope.deleteIndex = function (index) {\n ModalService.openSimpleModal({\n title: $translate.instant('common.confirm'),\n message: $translate.instant('similarity.delete.index.warning', {name: index.name}),\n warning: true\n }).result\n .then(function () {\n SimilarityRestService.deleteIndex(index)\n .then(function () {\n $scope.getSimilarityIndexes();\n }, function (err) {\n toastr.error(getError(err));\n });\n });\n };\n\n $scope.viewCreateQuery = function (index) {\n SimilarityRestService.getQuery({\n indexName: index.name,\n indexOptions: index.options,\n query: index.selectQuery,\n indexStopList: index.stopList,\n queryInference: index.infer,\n querySameAs: index.sameAs,\n viewType: index.type,\n indexAnalyzer: index.analyzer\n }).success(function (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.rebuildIndex = function (index) {\n // Migration\n if (!index.searchQuery) {\n index.searchQuery = index.type ? $scope.searchQueries[index.type] : $scope.searchQueries.text;\n }\n ModalService.openSimpleModal({\n title: $translate.instant('common.confirm'),\n message: decodeHTML($translate.instant('similarity.rebuild.index.warning', {name: index.name})),\n warning: true\n }).result\n .then(function () {\n index.status = 'REBUILDING';\n SimilarityRestService.rebuildIndex(index)\n .then(function (res) {\n }, function (err) {\n toastr.error(getError(err));\n });\n });\n };\n\n $scope.copyToClipboardResult = function (uri) {\n ModalService.openCopyToClipboardModal(uri);\n };\n\n $scope.trimIRI = function (iri) {\n return _.trim(iri, \"<>\");\n };\n}\n"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[115],{
|
|
2
|
-
//# sourceMappingURL=115.
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[115],{147:function(i,e){PluginRegistry.add("route",[{url:"/similarity",module:"graphdb.framework.similarity",path:"similarity/app",chunk:"similarity",controller:"SimilarityCtrl",templateUrl:"pages/similarity-indexes.html",title:"view.similarity.indexes.title",helpInfo:"view.similarity.indexes.helpInfo"},{url:"/similarity/index/create",module:"graphdb.framework.similarity",path:"similarity/app",chunk:"similarity",controller:"CreateSimilarityIdxCtrl",templateUrl:"pages/create-index.html",title:"view.create.similarity.index.title",helpInfo:"view.create.similarity.index.helpInfo"}]),PluginRegistry.add("main.menu",{items:[{label:"Setup",labelKey:"menu.setup.label",href:"#",order:5,role:"IS_AUTHENTICATED_FULLY",icon:"icon-settings",guideSelector:"sub-menu-setup"},{label:"Similarity",labelKey:"menu.similarity.label",href:"similarity",order:40,parent:"Explore",role:"IS_AUTHENTICATED_FULLY",children:[{href:"similarity/index/create",children:[]}],guideSelector:"sub-menu-similarity"}]})}}]);
|
|
2
|
+
//# sourceMappingURL=115.00597ad4f535ccc61e03.bundle.js.map
|
package/dist/{115.6751a154fb77d1efeec8.bundle.js.map → 115.00597ad4f535ccc61e03.bundle.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack:///./src/js/angular/similarity/plugin.js"],"names":["PluginRegistry","add","label","labelKey","href","order","role","icon","guideSelector","parent","children"],"mappings":"6EAAAA,eAAeC,IAAI,QAAS,CACxB,CACI,IAAO,cACP,OAAU,+BACV,KAAQ,iBACR,MAAS,aACT,WAAc,iBACd,YAAe,gCACf,MAAS,gCACT,SAAY,oCACb,CACC,IAAO,2BACP,OAAU,+BACV,KAAQ,iBACR,MAAS,aACT,WAAc,0BACd,YAAe,0BACf,MAAS,qCACT,SAAY,2CAIpBD,eAAeC,IAAI,YAAa,CAC5B,MAAS,CACL,CACIC,MAAO,QACPC,SAAU,mBACVC,KAAM,IACNC,MAAO,EACPC,KAAM,yBACNC,KAAM,gBACNC,cAAe,kBAEnB,CACIN,MAAO,aACPC,SAAU,wBACVC,KAAM,aACNC,MAAO,GACPI,OAAQ,UACRH,KAAM,yBACNI,SAAU,CAAC,CACPN,KAAM,0BACNM,SAAU,KAEdF,cAAe","file":"115.
|
|
1
|
+
{"version":3,"sources":["webpack:///./src/js/angular/similarity/plugin.js"],"names":["PluginRegistry","add","label","labelKey","href","order","role","icon","guideSelector","parent","children"],"mappings":"6EAAAA,eAAeC,IAAI,QAAS,CACxB,CACI,IAAO,cACP,OAAU,+BACV,KAAQ,iBACR,MAAS,aACT,WAAc,iBACd,YAAe,gCACf,MAAS,gCACT,SAAY,oCACb,CACC,IAAO,2BACP,OAAU,+BACV,KAAQ,iBACR,MAAS,aACT,WAAc,0BACd,YAAe,0BACf,MAAS,qCACT,SAAY,2CAIpBD,eAAeC,IAAI,YAAa,CAC5B,MAAS,CACL,CACIC,MAAO,QACPC,SAAU,mBACVC,KAAM,IACNC,MAAO,EACPC,KAAM,yBACNC,KAAM,gBACNC,cAAe,kBAEnB,CACIN,MAAO,aACPC,SAAU,wBACVC,KAAM,aACNC,MAAO,GACPI,OAAQ,UACRH,KAAM,yBACNI,SAAU,CAAC,CACPN,KAAM,0BACNM,SAAU,KAEdF,cAAe","file":"115.00597ad4f535ccc61e03.bundle.js","sourcesContent":["PluginRegistry.add('route', [\n {\n 'url': '/similarity',\n 'module': 'graphdb.framework.similarity',\n 'path': 'similarity/app',\n 'chunk': 'similarity',\n 'controller': 'SimilarityCtrl',\n 'templateUrl': 'pages/similarity-indexes.html',\n 'title': 'view.similarity.indexes.title',\n 'helpInfo': 'view.similarity.indexes.helpInfo'\n }, {\n 'url': '/similarity/index/create',\n 'module': 'graphdb.framework.similarity',\n 'path': 'similarity/app',\n 'chunk': 'similarity',\n 'controller': 'CreateSimilarityIdxCtrl',\n 'templateUrl': 'pages/create-index.html',\n 'title': 'view.create.similarity.index.title',\n 'helpInfo': 'view.create.similarity.index.helpInfo'\n }\n]);\n\nPluginRegistry.add('main.menu', {\n 'items': [\n {\n label: 'Setup',\n labelKey: 'menu.setup.label',\n href: '#',\n order: 5,\n role: 'IS_AUTHENTICATED_FULLY',\n icon: 'icon-settings',\n guideSelector: 'sub-menu-setup'\n },\n {\n label: 'Similarity',\n labelKey: 'menu.similarity.label',\n href: 'similarity',\n order: 40,\n parent: 'Explore',\n role: 'IS_AUTHENTICATED_FULLY',\n children: [{\n href: 'similarity/index/create',\n children: []\n }],\n guideSelector: 'sub-menu-similarity'\n }\n ]\n});\n"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[116],{
|
|
2
|
-
//# sourceMappingURL=116.
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[116],{151:function(e,l){PluginRegistry.add("route",[{url:"/sparql-templates",module:"graphdb.framework.sparql-template",path:"sparql-template/app",chunk:"sparql-template",controller:"SparqlTemplatesCtrl",templateUrl:"pages/sparql-templates.html",title:"view.sparql.template.title",helpInfo:"view.sparql.template.helpInfo"},{url:"/sparql-template/create",module:"graphdb.framework.sparql-template",path:"sparql-template/app",chunk:"sparql-template",controller:"SparqlTemplateCreateCtrl",templateUrl:"pages/sparql-template-create.html",title:"view.create.sparql.template.title",helpInfo:"view.create.sparql.template.helpInfo"}]),PluginRegistry.add("main.menu",{items:[{label:"Setup",labelKey:"menu.setup.label",href:"#",order:5,role:"IS_AUTHENTICATED_FULLY",icon:"icon-settings",guideSelector:"menu-setup"},{label:"SPARQL Templates",labelKey:"menu.sparql.template.label",href:"sparql-templates",order:51,parent:"Setup",role:"IS_AUTHENTICATED_FULLY",guideSelector:"sub-menu-sparql-templates"}]})}}]);
|
|
2
|
+
//# sourceMappingURL=116.7a3c48b8b4348e54c7fd.bundle.js.map
|
package/dist/{116.75f79d13526f131b61f0.bundle.js.map → 116.7a3c48b8b4348e54c7fd.bundle.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack:///./src/js/angular/sparql-template/plugin.js"],"names":["PluginRegistry","add","label","labelKey","href","order","role","icon","guideSelector","parent"],"mappings":"6EAAAA,eAAeC,IAAI,QAAS,CACxB,CACA,IAAO,oBACP,OAAU,oCACV,KAAQ,sBACR,MAAS,kBACT,WAAc,sBACd,YAAe,8BACf,MAAS,6BACT,SAAY,iCAEZ,CACI,IAAO,0BACP,OAAU,oCACV,KAAQ,sBACR,MAAS,kBACT,WAAc,2BACd,YAAe,oCACf,MAAS,oCACT,SAAY,0CAIpBD,eAAeC,IAAI,YAAa,CAC5B,MAAS,CACL,CAACC,MAAO,QAASC,SAAU,mBAAoBC,KAAM,IAAKC,MAAO,EAAGC,KAAM,yBAA0BC,KAAM,gBAAiBC,cAAe,cAC1I,CAACN,MAAO,mBAAoBC,SAAU,6BAA8BC,KAAM,mBAAoBC,MAAO,GAAII,OAAQ,QAASH,KAAM,yBAA0BE,cAAe","file":"116.
|
|
1
|
+
{"version":3,"sources":["webpack:///./src/js/angular/sparql-template/plugin.js"],"names":["PluginRegistry","add","label","labelKey","href","order","role","icon","guideSelector","parent"],"mappings":"6EAAAA,eAAeC,IAAI,QAAS,CACxB,CACA,IAAO,oBACP,OAAU,oCACV,KAAQ,sBACR,MAAS,kBACT,WAAc,sBACd,YAAe,8BACf,MAAS,6BACT,SAAY,iCAEZ,CACI,IAAO,0BACP,OAAU,oCACV,KAAQ,sBACR,MAAS,kBACT,WAAc,2BACd,YAAe,oCACf,MAAS,oCACT,SAAY,0CAIpBD,eAAeC,IAAI,YAAa,CAC5B,MAAS,CACL,CAACC,MAAO,QAASC,SAAU,mBAAoBC,KAAM,IAAKC,MAAO,EAAGC,KAAM,yBAA0BC,KAAM,gBAAiBC,cAAe,cAC1I,CAACN,MAAO,mBAAoBC,SAAU,6BAA8BC,KAAM,mBAAoBC,MAAO,GAAII,OAAQ,QAASH,KAAM,yBAA0BE,cAAe","file":"116.7a3c48b8b4348e54c7fd.bundle.js","sourcesContent":["PluginRegistry.add('route', [\n {\n 'url': '/sparql-templates',\n 'module': 'graphdb.framework.sparql-template',\n 'path': 'sparql-template/app',\n 'chunk': 'sparql-template',\n 'controller': 'SparqlTemplatesCtrl',\n 'templateUrl': 'pages/sparql-templates.html',\n 'title': 'view.sparql.template.title',\n 'helpInfo': 'view.sparql.template.helpInfo'\n },\n {\n 'url': '/sparql-template/create',\n 'module': 'graphdb.framework.sparql-template',\n 'path': 'sparql-template/app',\n 'chunk': 'sparql-template',\n 'controller': 'SparqlTemplateCreateCtrl',\n 'templateUrl': 'pages/sparql-template-create.html',\n 'title': 'view.create.sparql.template.title',\n 'helpInfo': 'view.create.sparql.template.helpInfo'\n }\n ]);\n\nPluginRegistry.add('main.menu', {\n 'items': [\n {label: 'Setup', labelKey: 'menu.setup.label', href: '#', order: 5, role: 'IS_AUTHENTICATED_FULLY', icon: \"icon-settings\", guideSelector: 'menu-setup'},\n {label: 'SPARQL Templates', labelKey: 'menu.sparql.template.label', href: 'sparql-templates', order: 51, parent: 'Setup', role: \"IS_AUTHENTICATED_FULLY\", guideSelector: 'sub-menu-sparql-templates'}\n ]\n});\n"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[117],{
|
|
2
|
-
//# sourceMappingURL=117.
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[117],{149:function(l,e){PluginRegistry.add("route",{url:"/sparql",module:"graphdb.framework.sparql",path:"sparql/app",chunk:"sparql",controller:"QueryEditorCtrl",templateUrl:"pages/sparql.html",title:"view.sparql.title",helpInfo:"view.sparql.helpInfo"}),PluginRegistry.add("main.menu",{items:[{label:"SPARQL",labelKey:"menu.sparql.label",href:"sparql",order:2,role:"IS_AUTHENTICATED_FULLY",icon:"icon-sparql",guideSelector:"menu-sparql"}]})}}]);
|
|
2
|
+
//# sourceMappingURL=117.49b3141cc6594af99fbf.bundle.js.map
|
package/dist/{117.17c60bd040eada2f965d.bundle.js.map → 117.49b3141cc6594af99fbf.bundle.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack:///./src/js/angular/sparql/plugin.js"],"names":["PluginRegistry","add","label","labelKey","href","order","role","icon","guideSelector"],"mappings":"6EAAAA,eAAeC,IAAI,QAAS,CACxB,IAAO,UACP,OAAU,2BACV,KAAQ,aACR,MAAS,SACT,WAAc,kBACd,YAAe,oBACf,MAAS,oBACT,SAAY,yBAGhBD,eAAeC,IAAI,YAAa,CAC5B,MAAS,CACL,CACIC,MAAO,SACPC,SAAU,oBACVC,KAAM,SACNC,MAAO,EACPC,KAAM,yBACNC,KAAM,cACNC,cAAe","file":"117.
|
|
1
|
+
{"version":3,"sources":["webpack:///./src/js/angular/sparql/plugin.js"],"names":["PluginRegistry","add","label","labelKey","href","order","role","icon","guideSelector"],"mappings":"6EAAAA,eAAeC,IAAI,QAAS,CACxB,IAAO,UACP,OAAU,2BACV,KAAQ,aACR,MAAS,SACT,WAAc,kBACd,YAAe,oBACf,MAAS,oBACT,SAAY,yBAGhBD,eAAeC,IAAI,YAAa,CAC5B,MAAS,CACL,CACIC,MAAO,SACPC,SAAU,oBACVC,KAAM,SACNC,MAAO,EACPC,KAAM,yBACNC,KAAM,cACNC,cAAe","file":"117.49b3141cc6594af99fbf.bundle.js","sourcesContent":["PluginRegistry.add('route', {\n 'url': '/sparql',\n 'module': 'graphdb.framework.sparql',\n 'path': 'sparql/app',\n 'chunk': 'sparql',\n 'controller': 'QueryEditorCtrl',\n 'templateUrl': 'pages/sparql.html',\n 'title': 'view.sparql.title',\n 'helpInfo': 'view.sparql.helpInfo'\n});\n\nPluginRegistry.add('main.menu', {\n 'items': [\n {\n label: 'SPARQL',\n labelKey: 'menu.sparql.label',\n href: 'sparql',\n order: 2,\n role: 'IS_AUTHENTICATED_FULLY',\n icon: \"icon-sparql\",\n guideSelector: 'menu-sparql'\n }\n ]\n});\n"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[118],{
|
|
2
|
-
//# sourceMappingURL=118.
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[118],{152:function(t,r,o){"use strict";o.r(r);o(4);angular.module("graphdb.framework.stats",["toastr"]).controller("AdminInfoCtrl",["$scope","$http","toastr","$timeout","$jwtAuth","$translate",function(t,r,o,e,n,s){r.get("rest/info/data").success((function(r){t.info=r})).error((function(t){const r=getError(t);o.error(r,s.instant("common.error"))})),t.getReportStatus=function(){r.get("rest/report/status").success((function(r){const o=r.split("|",3);t.status=o[0],t.timestamp=o[1],t.errorMessage=o[2],"IN_PROGRESS"===t.status&&e(t.getReportStatus,3e3)})).error((function(t){const r=getError(t);o.error(r,s.instant("common.error"))}))},t.getReportStatus(),t.getReport=function(){let t="rest/report";n.isAuthenticated()&&(t=t+"?authToken="+encodeURIComponent(n.getAuthToken())),window.open(t)},t.makeReport=function(){r.post("rest/report").success((function(){t.status="IN_PROGRESS",e(t.getReportStatus,2e3)})).error((function(t){const r=getError(t);o.error(r,s.instant("common.error"))}))}}])}}]);
|
|
2
|
+
//# sourceMappingURL=118.e1ebd5f3d7cf4f8e013a.bundle.js.map
|
package/dist/{118.fc48834f75995ef9202f.bundle.js.map → 118.e1ebd5f3d7cf4f8e013a.bundle.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack:///./src/js/angular/stats/app.js"],"names":["angular","module","controller","$scope","$http","toastr","$timeout","$jwtAuth","$translate","get","success","data","info","error","msg","getError","instant","getReportStatus","statusElements","split","status","timestamp","errorMessage","getReport","url","isAuthenticated","encodeURIComponent","getAuthToken","window","open","makeReport","post"],"mappings":"4FAAA,YAEqBA,QAAQC,OAAO,0BAA2B,CAAC,WAEnDC,WAAW,gBAAiB,CAAC,SAAU,QAAS,SAAU,WAAY,WAAY,aAC3F,SAAUC,EAAQC,EAAOC,EAAQC,EAAUC,EAAUC,GAEjDJ,EAAMK,IAAI,kBACLC,SAAQ,SAAUC,GACfR,EAAOS,KAAOD,KAEjBE,OAAM,SAAUF,GACb,MAAMG,EAAMC,SAASJ,GACrBN,EAAOQ,MAAMC,EAAKN,EAAWQ,QAAQ,oBAK7Cb,EAAOc,gBAAkB,WACrBb,EAAMK,IAAI,sBACLC,SAAQ,SAAUC,GACf,MAAMO,EAAiBP,EAAKQ,MAAM,IAAK,GACvChB,EAAOiB,OAASF,EAAe,GAC/Bf,EAAOkB,UAAYH,EAAe,GAClCf,EAAOmB,aAAeJ,EAAe,GAEf,gBAAlBf,EAAOiB,QACPd,EAASH,EAAOc,gBAAiB,QAGxCJ,OAAM,SAAUF,GACb,MAAMG,EAAMC,SAASJ,GACrBN,EAAOQ,MAAMC,EAAKN,EAAWQ,QAAQ,qBAIjDb,EAAOc,kBAEPd,EAAOoB,UAAY,WACf,IAAIC,EAAM,cACNjB,EAASkB,oBACTD,EAAMA,EAAM,cAAgBE,mBAAmBnB,EAASoB,iBAG5DC,OAAOC,KAAKL,IAGhBrB,EAAO2B,WAAa,WAChB1B,EAAM2B,KAAK,eACNrB,SAAQ,WACLP,EAAOiB,OAAS,cAChBd,EAASH,EAAOc,gBAAiB,QAEpCJ,OAAM,SAAUF,GACb,MAAMG,EAAMC,SAASJ,GACrBN,EAAOQ,MAAMC,EAAKN,EAAWQ,QAAQ","file":"118.
|
|
1
|
+
{"version":3,"sources":["webpack:///./src/js/angular/stats/app.js"],"names":["angular","module","controller","$scope","$http","toastr","$timeout","$jwtAuth","$translate","get","success","data","info","error","msg","getError","instant","getReportStatus","statusElements","split","status","timestamp","errorMessage","getReport","url","isAuthenticated","encodeURIComponent","getAuthToken","window","open","makeReport","post"],"mappings":"4FAAA,YAEqBA,QAAQC,OAAO,0BAA2B,CAAC,WAEnDC,WAAW,gBAAiB,CAAC,SAAU,QAAS,SAAU,WAAY,WAAY,aAC3F,SAAUC,EAAQC,EAAOC,EAAQC,EAAUC,EAAUC,GAEjDJ,EAAMK,IAAI,kBACLC,SAAQ,SAAUC,GACfR,EAAOS,KAAOD,KAEjBE,OAAM,SAAUF,GACb,MAAMG,EAAMC,SAASJ,GACrBN,EAAOQ,MAAMC,EAAKN,EAAWQ,QAAQ,oBAK7Cb,EAAOc,gBAAkB,WACrBb,EAAMK,IAAI,sBACLC,SAAQ,SAAUC,GACf,MAAMO,EAAiBP,EAAKQ,MAAM,IAAK,GACvChB,EAAOiB,OAASF,EAAe,GAC/Bf,EAAOkB,UAAYH,EAAe,GAClCf,EAAOmB,aAAeJ,EAAe,GAEf,gBAAlBf,EAAOiB,QACPd,EAASH,EAAOc,gBAAiB,QAGxCJ,OAAM,SAAUF,GACb,MAAMG,EAAMC,SAASJ,GACrBN,EAAOQ,MAAMC,EAAKN,EAAWQ,QAAQ,qBAIjDb,EAAOc,kBAEPd,EAAOoB,UAAY,WACf,IAAIC,EAAM,cACNjB,EAASkB,oBACTD,EAAMA,EAAM,cAAgBE,mBAAmBnB,EAASoB,iBAG5DC,OAAOC,KAAKL,IAGhBrB,EAAO2B,WAAa,WAChB1B,EAAM2B,KAAK,eACNrB,SAAQ,WACLP,EAAOiB,OAAS,cAChBd,EAASH,EAAOc,gBAAiB,QAEpCJ,OAAM,SAAUF,GACb,MAAMG,EAAMC,SAASJ,GACrBN,EAAOQ,MAAMC,EAAKN,EAAWQ,QAAQ","file":"118.e1ebd5f3d7cf4f8e013a.bundle.js","sourcesContent":["import 'angular/core/services';\n\nconst adminInfoApp = angular.module('graphdb.framework.stats', ['toastr']);\n\nadminInfoApp.controller('AdminInfoCtrl', ['$scope', '$http', 'toastr', '$timeout', '$jwtAuth', '$translate',\n function ($scope, $http, toastr, $timeout, $jwtAuth, $translate) {\n\n $http.get('rest/info/data')\n .success(function (data) {\n $scope.info = data;\n })\n .error(function (data) {\n const msg = getError(data);\n toastr.error(msg, $translate.instant('common.error'));\n });\n\n\n //NONE, IN_PROGRESS, READY\n $scope.getReportStatus = function () {\n $http.get('rest/report/status')\n .success(function (data) {\n const statusElements = data.split('|', 3);\n $scope.status = statusElements[0];\n $scope.timestamp = statusElements[1];\n $scope.errorMessage = statusElements[2];\n\n if ($scope.status === 'IN_PROGRESS') {\n $timeout($scope.getReportStatus, 3000);\n }\n })\n .error(function (data) {\n const msg = getError(data);\n toastr.error(msg, $translate.instant('common.error'));\n });\n };\n\n $scope.getReportStatus();\n\n $scope.getReport = function () {\n let url = 'rest/report';\n if ($jwtAuth.isAuthenticated()) {\n url = url + '?authToken=' + encodeURIComponent($jwtAuth.getAuthToken());\n }\n\n window.open(url);\n };\n\n $scope.makeReport = function () {\n $http.post('rest/report')\n .success(function () {\n $scope.status = 'IN_PROGRESS';\n $timeout($scope.getReportStatus, 2000);\n })\n .error(function (data) {\n const msg = getError(data);\n toastr.error(msg, $translate.instant('common.error'));\n });\n };\n }]);\n"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[119],{
|
|
2
|
-
//# sourceMappingURL=119.
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[119],{153:function(e,t){PluginRegistry.add("route",[{url:"/sysinfo",module:"graphdb.framework.stats",path:"stats/app",chunk:"stats",controller:"AdminInfoCtrl",templateUrl:"pages/info.html",title:"view.system.information.title",helpInfo:"view.system.information.helpInfo"},{url:"/webapi",templateUrl:"pages/webapi.html",title:"view.rest.api.documentation.title",helpInfo:"view.rest.api.documentation.helpInfo"}]);const n="https://graphdb.ontotext.com/documentation/";PluginRegistry.add("main.menu",{items:[{label:"Setup",labelKey:"menu.setup.label",href:"#",order:7,role:"IS_AUTHENTICATED_FULLY",icon:"icon-settings",guideSelector:"menu-setup"},{label:"Help",labelKey:"menu.help.label",href:"#",order:8,icon:"icon-help",guideSelector:"menu-help"},{label:"System information",labelKey:"menu.system.information.label",href:"sysinfo",order:50,parent:"Help",role:"ROLE_ADMIN",guideSelector:"sub-menu-system-information"},{label:"REST API",labelKey:"menu.rest.api.label",href:"webapi",order:1,parent:"Help",guideSelector:"sub-menu-rest-api"},{label:"Documentation",labelKey:"menu.documentation.label",order:2,parent:"Help",icon:"icon-external",hrefFun:function(e){return n+e.productShortVersion+"/"},guideSelector:"sub-menu-documentation"},{label:"Developer Hub",labelKey:"menu.developer.hub.label",order:3,parent:"Help",icon:"icon-external",hrefFun:function(e){return n+e.productShortVersion+"/devhub/"},guideSelector:"sub-menu-developer-hub"},{label:"Support",labelKey:"menu.support.label",order:4,parent:"Help",icon:"icon-external",hrefFun:function(e){return n+e.productShortVersion+"/support.html"},guideSelector:"sub-menu-support"}]})}}]);
|
|
2
|
+
//# sourceMappingURL=119.0427b867fee545388a66.bundle.js.map
|