graphdb-workbench 2.7.0-TR13 → 2.7.0-TR14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/dist/{10.7d4b004077fe54d3482c.bundle.js → 10.d290928cc0a0f284bec7.bundle.js} +1 -1
  2. package/dist/{143.dd2b4deff681e106d2c9.bundle.js → 143.00c84b16a9d1e4ad985c.bundle.js} +1 -1
  3. package/dist/146.82aaae7c0f15a190b692.bundle.js +1 -1
  4. package/dist/{16.96c2dd100f026a4e4ee8.bundle.js → 16.dae40f821fdc6ebfaa17.bundle.js} +1 -1
  5. package/dist/26.cf866692d0e1ab5f6663.bundle.js +1 -0
  6. package/dist/27.f979984f701cd7d90a09.bundle.js +1 -1
  7. package/dist/279.38897ac8594851063f17.bundle.js +1 -0
  8. package/dist/28.9cc2b0769a41c49847bd.bundle.js +1 -1
  9. package/dist/29.936102485048579895ba.bundle.js +1 -1
  10. package/dist/297.1bdc6a3832d57eb81bac.bundle.js +1 -1
  11. package/dist/299.282284f1dfdae76e16e8.bundle.js +1 -1
  12. package/dist/300.50b90ddcd4a3e62127bf.bundle.js +1 -1
  13. package/dist/301.103a2b39a148c9635b34.bundle.js +1 -1
  14. package/dist/329.9cce24674845ac56ceae.bundle.js +1 -1
  15. package/dist/42.ef4ef5d14a8edc140ea2.bundle.js +1 -1
  16. package/dist/{8.bc3b17f87a3a877d9924.bundle.js → 8.29373508287fea3e43a9.bundle.js} +1 -1
  17. package/dist/{9.a00fbccff646dee49168.bundle.js → 9.359dca1085489f6b935d.bundle.js} +1 -1
  18. package/dist/{bundle.a905ff95bc0b01b69c69.bundle.js → bundle.42fd0fe6aba4672ddc00.bundle.js} +2 -2
  19. package/dist/index.html +3 -3
  20. package/dist/js/angular/core/directives/autocomplete/templates/autocomplete.html +1 -1
  21. package/dist/js/angular/core/directives/operations-statuses-monitor/templates/operations-statuses-monitor.html +1 -1
  22. package/dist/js/angular/core/directives/rdfresourcesearch/templates/rdfResourceSearchTemplate.html +1 -1
  23. package/dist/js/angular/core/directives/yasgui-component/templates/yasgui-component.html +1 -1
  24. package/dist/js/angular/security/templates/user.html +1 -1
  25. package/dist/license-checker.json +4 -4
  26. package/dist/pages/aclmanagement.html +2 -2
  27. package/dist/pages/autocomplete.html +1 -1
  28. package/dist/pages/choose-repository-type.html +1 -1
  29. package/dist/pages/cluster-management/clusterInfo.html +3 -3
  30. package/dist/pages/create-index.html +1 -1
  31. package/dist/pages/dependencies.html +1 -1
  32. package/dist/pages/domainRangeInfo.html +2 -2
  33. package/dist/pages/edit.html +1 -1
  34. package/dist/pages/explore.html +1 -1
  35. package/dist/pages/export.html +1 -1
  36. package/dist/pages/find.html +1 -1
  37. package/dist/pages/graph-config/saveGraphConfig.html +8 -8
  38. package/dist/pages/graphs-visualizations.html +7 -7
  39. package/dist/pages/guides.html +1 -1
  40. package/dist/pages/import.html +2 -2
  41. package/dist/pages/jdbc-create.html +1 -1
  42. package/dist/pages/monitor/backup-and-restore.html +1 -1
  43. package/dist/pages/monitor/queries.html +1 -1
  44. package/dist/pages/monitor/resources.html +1 -1
  45. package/dist/pages/namespaces.html +2 -2
  46. package/dist/pages/plugins.html +1 -1
  47. package/dist/pages/rdfClassHierarchyInfo.html +7 -7
  48. package/dist/pages/rdfrank.html +2 -2
  49. package/dist/pages/repositories.html +1 -1
  50. package/dist/pages/repository.html +1 -1
  51. package/dist/pages/similarity-indexes.html +1 -1
  52. package/dist/pages/sparql-editor.html +1 -1
  53. package/dist/pages/sparql-template-create.html +1 -1
  54. package/dist/pages/ux-test1.html +2 -2
  55. package/dist/pages/webapi.html +2 -2
  56. package/dist/res/swagger5/index.html +12 -12
  57. package/package.json +2 -2
  58. package/dist/26.c226d79ff8a6003f470d.bundle.js +0 -1
  59. package/dist/279.de4891887c2b68f8df44.bundle.js +0 -1
@@ -1 +1 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[9,47,61,62,63,101,102,103,104,106,107,245],{149:function(e,t){function o(e){let t,o=!1;function n(){return o}function r(t){o=t,e.emit("showClusterConfigurationPanel",n())}function s(){return t}return{updateClusterViewD3Container:function(o){t=o,e.emit("clusterViewD3ContainerChanged",s())},getClusterViewD3Container:s,onClusterViewD3ContainerUpdated:function(t){return e.subscribe("clusterViewD3ContainerChanged",()=>t(s()))},getShowClusterConfigurationPanel:n,setShowClusterConfigurationPanel:r,showClusterConfigurationPanel:function(){r(!0)},hideClusterConfigurationPanel:function(){r(!1)},onShowClusterConfigurationPanel:function(t){return e.subscribe("showClusterConfigurationPanel",()=>t(n()))}}}angular.module("graphdb.framework.clustermanagement.services.cluster-view-context-service",[]).factory("ClusterViewContextService",o),o.$inject=["EventEmitterService"]},150:function(e,t){function o(e,t,o){const n=_.cloneDeep(o.clusterModel);e.clusterNodes=n.nodes,e.clusterNodes.forEach(e=>e.shouldRemove=!1),e.nodesToRemoveCount=0,e.leftNodesLessThanTwo=!1,e.toggleNode=(t,o)=>{o.shouldRemove=!o.shouldRemove,o.shouldRemove?e.nodesToRemoveCount++:e.nodesToRemoveCount--,e.leftNodesLessThanTwo=e.clusterNodes.length-e.nodesToRemoveCount<2},e.ok=()=>{const o=e.clusterNodes.filter(e=>e.shouldRemove);t.close(o)},e.cancel=()=>{t.dismiss("cancel")}}angular.module("graphdb.framework.clustermanagement.controllers.remove-nodes",[]).controller("RemoveNodesDialogCtrl",o),o.$inject=["$scope","$uibModalInstance","data"]},151:function(e,t,o){"use strict";o.r(t);o(69);const n=function(){const e=document.getElementById("advancedOptions");if(e){const t=e.getAttribute("aria-expanded");if(t&&"true"===t)return"fa fa-angle-down"}return"fa fa-angle-right"};function r(e,t,o,r,s,a,l,c,i,d){e.pageTitle=a.instant("cluster_management.cluster_page.create_page_title"),e.autofocusId="autofocus",e.errors=[],e.clusterConfiguration={electionMinTimeout:8e3,electionRangeTimeout:6e3,heartbeatInterval:2e3,messageSizeKB:64,verificationTimeout:1500,transactionLogMaximumSizeGB:50,nodes:[]},e.locations=l.clusterModel.locations.filter(e=>!e.isLocal),e.selectedLocations=l.clusterModel.locations.filter(e=>e.isLocal),e.loader=!1,e.deleteLocation=function(t,o){t.preventDefault(),t.stopPropagation(),l.deleteLocation(o).then(()=>e.locations=e.locations.filter(e=>e.endpoint!==o.endpoint))},e.getAdvancedOptionsClass=n,e.createCluster=function(){return e.setLoader(!0,a.instant("cluster_management.cluster_page.creating_cluster_loader")),e.clusterConfiguration.nodes=e.selectedLocations.map(e=>e.rpcAddress),r.createCluster(e.clusterConfiguration).then(()=>{s.success(a.instant("cluster_management.cluster_page.notifications.create_success")),t.close()}).catch((function(e){u(e.data,e.status)})).finally(()=>{e.setLoader(!1),d.$broadcast("reloadLocations")})},e.isClusterConfigurationValid=()=>{const t=!e.clusterConfigurationForm.$invalid,o=e.selectedLocations&&e.selectedLocations.length>=2;return t&&o},e.setLoader=(t,n)=>{o.cancel(e.loaderTimeout),t?e.loaderTimeout=o(()=>{e.loader=t,e.loaderMessage=n},300):e.loader=!1},e.addNodeToList=t=>{t.rpcAddress&&(e.selectedLocations.push(t),e.locations=e.locations.filter(e=>e.endpoint!==t.endpoint))},e.removeNodeFromList=(t,o)=>{o.isLocal||(e.selectedLocations.splice(t,1),e.locations.push(o))},e.addLocation=()=>{i.addLocation().then(t=>{t&&e.locations.push(t)})},e.ok=()=>{e.isClusterConfigurationValid()?e.createCluster():s.warning(a.instant("cluster_management.cluster_page.notifications.form_invalid"))},e.cancel=()=>{t.dismiss("cancel")};const u=(t,o)=>{let n;delete e.preconditionErrors,e.errors.splice(0),412===o?e.preconditionErrors=Object.keys(t).map(e=>`${e} - ${t[e]}`):400===o?e.errors.push(...t):409===o?e.errors.push(t):(t.message||"string"==typeof t)&&(n=t.message||t),s.error(n,a.instant("cluster_management.cluster_page.notifications.create_failed"))}}angular.module("graphdb.framework.clustermanagement.controllers.create-cluster",[]).controller("CreateClusterCtrl",r),r.$inject=["$scope","$uibModalInstance","$timeout","ClusterRestService","toastr","$translate","data","$uibModal","RemoteLocationsService","$rootScope"]},152:function(e,t,o){"use strict";o.r(t);o(69);function n(e,t,o,n,r,s,a){e.pageTitle=s.instant("cluster_management.cluster_page.edit_page_title"),e.errors=[],e.clusterConfiguration=_.cloneDeep(a.clusterConfiguration),e.loader=!1,e.updateCluster=()=>(e.setLoader(!0,s.instant("cluster_management.cluster_page.updating_cluster_loader")),n.updateCluster(e.clusterConfiguration).then(()=>{r.success(s.instant("cluster_management.cluster_page.notifications.update_success")),t.close()}).catch((function(e){l(e.data,e.status)})).finally(()=>e.setLoader(!1))),e.isClusterConfigurationValid=()=>!e.clusterConfigurationForm.$invalid,e.setLoader=(t,n)=>{o.cancel(e.loaderTimeout),t?e.loaderTimeout=o(()=>{e.loader=t,e.loaderMessage=n},300):e.loader=!1},e.ok=()=>{e.isClusterConfigurationValid()?e.updateCluster():r.warning(s.instant("cluster_management.cluster_page.notifications.form_invalid"))},e.cancel=()=>{t.dismiss("cancel")};const l=(t,o)=>{delete e.preconditionErrors,r.error(s.instant("cluster_management.cluster_page.notifications.update_failed")),e.errors.splice(0),409===o||"string"==typeof t?e.errors.push(t):412===o?e.preconditionErrors=Object.keys(t).map(e=>`${e} - ${t[e]}`):400===o&&e.errors.push(...t)}}angular.module("graphdb.framework.clustermanagement.controllers.edit-cluster",[]).controller("EditClusterCtrl",n),n.$inject=["$scope","$uibModalInstance","$timeout","ClusterRestService","toastr","$translate","data"]},153:function(e,t){function o(e,t){e.forceDelete=!1,e.ok=()=>{t.close(e.forceDelete)},e.cancel=()=>{t.dismiss("cancel")}}angular.module("graphdb.framework.clustermanagement.controllers.delete-cluster",[]).controller("DeleteClusterCtrl",o),o.$inject=["$scope","$uibModalInstance"]},154:function(e,t){function o(e,t,o,n,r){e.newLocation={uri:"",authType:"signature",username:"",password:"",active:!1},e.docBase=function(e){return"https://graphdb.ontotext.com/documentation/"+e.productShortVersion}(n),e.isValidLocation=()=>(e.newLocation.uri.length<6||0===e.newLocation.uri.indexOf("http:")||0===e.newLocation.uri.indexOf("https:"))&&e.newLocation.uri.indexOf("/repositories")<=-1,e.ok=()=>{e.newLocation?t.close(e.newLocation):o.error(r.instant("location.cannot.be.empty.error"))},e.cancel=()=>{t.dismiss("cancel")}}angular.module("graphdb.framework.clustermanagement.controllers.add-location",[]).controller("AddLocationFromClusterCtrl",o),o.$inject=["$scope","$uibModalInstance","toastr","productInfo","$translate"]},155:function(e,t,o){"use strict";o.r(t);o(77);function n(e,t,o,n,r){let s,a;e.nodes=[],e.clusterNodes=[],e.locations=[],e.deleteLocation=(t,n)=>{t.preventDefault(),t.stopPropagation(),o.deleteLocation(n).then(()=>e.locations=e.locations.filter(e=>e.endpoint!==n.endpoint))},e.addNodeToList=t=>{t.rpcAddress&&(e.nodes.push(t),e.locations=e.locations.filter(e=>e.endpoint!==t.endpoint))},e.removeNodeFromList=(t,o)=>{e.nodes.splice(t,1),e.locations.push(o)},e.addLocation=()=>{r.addLocation().then(t=>{t&&e.locations.push(t)})},e.ok=()=>{t.close(e.nodes)},e.cancel=()=>{t.dismiss("cancel")};s=_.cloneDeep(o.clusterModel),e.clusterNodes=s.nodes.map(e=>({rpcAddress:e.address,endpoint:e.endpoint})),a=e.clusterNodes.map(e=>e.endpoint),e.locations=s.locations.filter(e=>!a.includes(e.endpoint)),e.locations.forEach(e=>e.isNew=!0)}angular.module("graphdb.framework.clustermanagement.controllers.add-nodes",[]).controller("AddNodesDialogCtrl",n),n.$inject=["$scope","$uibModalInstance","data","$uibModal","RemoteLocationsService"]},156:function(e,t,o){"use strict";o.r(t);o(69),o(77);function n(e,t,o,n,r,s,a,l,c){let i,d;e.replacementNodes=[],e.nodesToReplace=[],e.nodesToReplaceCount=0,e.leftNodesMajority=!1,e.clusterNodes=[],e.locations=[],e.addLocation=()=>{c.addLocation().then(t=>{t&&e.locations.push(t)})},e.toggleNode=(t,o)=>{if(o.shouldReplace=!o.shouldReplace,o.shouldReplace)e.nodesToReplaceCount++,e.nodesToReplace.push(o);else{e.nodesToReplaceCount--;const t=e.nodesToReplace.findIndex(e=>e.rpcAddress===o.rpcAddress);e.nodesToReplace.splice(t,1)}e.leftNodesMajority=u()+e.nodesToReplaceCount>e.clusterNodes.length},e.permitNodesReplace=()=>!e.leftNodesMajority&&(e.nodesToReplace.length>0||e.replacementNodes.length>0),e.addNodeToList=t=>{t.rpcAddress&&(e.replacementNodes.push(t),e.locations=e.locations.filter(e=>e.endpoint!==t.endpoint))},e.deleteLocation=(t,o)=>{t.preventDefault(),t.stopPropagation(),s.deleteLocation(o).then(()=>e.locations=e.locations.filter(e=>e.endpoint!==o.endpoint))},e.removeNodeFromList=(t,o)=>{e.replacementNodes.splice(t,1),e.locations.push(o)},e.ok=()=>{t.close({newNodes:e.replacementNodes,oldNodes:e.nodesToReplace})},e.cancel=()=>{t.dismiss("cancel")};const u=()=>Math.floor(e.clusterNodes.length/2)+1;i=_.cloneDeep(s.clusterModel),e.clusterNodes=i.nodes.map(e=>({rpcAddress:e.address,endpoint:e.endpoint,shouldReplace:!1})),d=e.clusterNodes.map(e=>e.endpoint),e.locations=i.locations.filter(e=>!d.includes(e.endpoint)),e.locations.forEach(e=>e.isNew=!0)}angular.module("graphdb.framework.clustermanagement.controllers.replace-nodes",[]).controller("ReplaceNodesDialogCtrl",n),n.$inject=["$scope","$uibModalInstance","$timeout","toastr","$translate","data","$uibModal","$rootScope","RemoteLocationsService"]},239:function(e,t,o){"use strict";o.r(t);o(69),o(77),o(149),o(150),o(151),o(152),o(153),o(154),o(155),o(156);var n=o(65),r=o(73),s=o(78);function a(e,t,o,a,l,c,i,d,u,g,p,m,f,C,h,_,L,N){let w;const v=[];e.loader=!0,e.isLeader=!1,e.currentNode=null,e.clusterModel={},e.NodeState=r.NodeState,e.leaderChanged=!1,e.currentLeader=null,e.showClusterConfigurationPanel=!1,e.clusterConfigurationPanelSize=void 0,e.onopen=e.onclose=()=>angular.noop(),e.isAdmin=()=>d.isAuthenticated()&&d.isAdmin(),e.openClusterConfigurationPanel=()=>{e.showClusterConfigurationPanel=!0,N.showClusterConfigurationPanel()},e.setLoader=(t,o)=>{m.cancel(e.loaderTimeout),t?(e.loaderMessage=o,e.loaderTimeout=m((function(){e.loader=t}),50)):e.loader=!1},e.getLoaderMessage=()=>e.loaderMessage||h.instant("common.loading"),e.getClusterConfiguration=()=>f.getClusterConfig().then(t=>{if(e.clusterConfiguration=t.data,!e.currentNode)return e.getCurrentNodeStatus()}).catch(()=>{e.clusterConfiguration=null}),e.getClusterStatus=()=>f.getClusterStatus().then(t=>{const o=t.data.slice(),n=o.find(e=>e.nodeState===r.NodeState.LEADER);T(e.currentLeader,n)&&(e.currentLeader=n,e.leaderChanged=!0),e.currentNode=o.find(t=>e.currentNode&&t.address===e.currentNode.address);const s=$(n,o);e.clusterModel.hasCluster=!0,e.clusterModel.nodes=o,e.clusterModel.links=s}).catch(t=>{404===t.status&&(e.clusterModel.hasCluster=!1,e.clusterModel.nodes=[],e.clusterModel.links=[],e.clusterConfiguration=null)}),e.showCreateClusterDialog=function(){c.open({templateUrl:"js/angular/clustermanagement/templates/modal/cluster-create-dialog.html",controller:"CreateClusterCtrl",size:"lg",resolve:{data:function(){return{deleteLocation:R,clusterModel:e.clusterModel}}}}).result.finally((function(){E(),b(!0)}))},e.getCurrentNodeStatus=()=>f.getNodeStatus().then(t=>{e.leaderChanged=!1,e.currentNode=t.data}).catch(t=>{e.currentNode=t.data,e.clusterModel.hasCluster=!1}).then(()=>E()),e.showAddNodeToClusterDialog=()=>{c.open({templateUrl:"js/angular/clustermanagement/templates/modal/add-nodes-dialog.html",controller:"AddNodesDialogCtrl",size:"lg",resolve:{data:function(){return{deleteLocation:R,clusterModel:e.clusterModel,clusterConfiguration:e.clusterConfiguration}}}}).result.then(t=>{const o=h.instant("cluster_management.cluster_page.add_nodes_loader");e.setLoader(!0,o);const n=t.map(e=>e.rpcAddress);f.addNodesToCluster(n).then(()=>{const e=h.instant("cluster_management.cluster_page.notifications.add_nodes_success");M(e)}).catch(e=>{const t=h.instant("cluster_management.cluster_page.notifications.add_nodes_fail");k(e.data,e.status,t)}).finally(()=>{e.setLoader(!1),b(!0)})}).finally(()=>E())},e.showReplaceNodesDialog=()=>{c.open({templateUrl:"js/angular/clustermanagement/templates/modal/replace-nodes-dialog.html",controller:"ReplaceNodesDialogCtrl",size:"lg",resolve:{data:function(){return{deleteLocation:R,clusterModel:e.clusterModel,clusterConfiguration:e.clusterConfiguration}}}}).result.then(t=>{const o=h.instant("cluster_management.cluster_page.replace_nodes_loader");e.setLoader(!0,o);const n={addNodes:t.newNodes.map(e=>e.rpcAddress),removeNodes:t.oldNodes.map(e=>e.rpcAddress)};f.replaceNodesInCluster(n).then(()=>{const e=h.instant("cluster_management.cluster_page.notifications.replace_nodes_success");M(e)}).catch(e=>{const t=h.instant("cluster_management.cluster_page.notifications.replace_nodes_fail");k(e.data,e.status,t)}).finally(()=>{e.setLoader(!1),b(!0)})}).finally(()=>E())},e.showRemoveNodesFromClusterDialog=()=>{c.open({templateUrl:"js/angular/clustermanagement/templates/modal/remove-nodes-dialog.html",controller:"RemoveNodesDialogCtrl",size:"lg",resolve:{data:function(){return{clusterModel:e.clusterModel}}}}).result.then((function(t){const o=h.instant("cluster_management.cluster_page.remove_nodes_loader");e.setLoader(!0,o);const n=t.map(e=>e.address);f.removeNodesFromCluster(n).then(()=>{const e=h.instant("cluster_management.cluster_page.notifications.remove_nodes_success");M(e)}).catch(e=>{const t=h.instant("cluster_management.cluster_page.notifications.remove_nodes_fail");k(e.data,e.status,t)}).finally(()=>{e.setLoader(!1),b(!0)})}))};const $=(e,t)=>{const o=[];return e&&Object.keys(e.syncStatus).forEach(n=>{const s=e.syncStatus[n];if(s!==r.LinkState.NO_CONNECTION&&(o.push({id:`${e.address}-${n}`,source:e.address,target:n,status:s}),s===r.LinkState.OUT_OF_SYNC)){const e=t.find(e=>e.address===n);let s;if(e.recoveryStatus.state===r.RecoveryState.RECEIVING_SNAPSHOT&&(s=e.recoveryStatus.affectedNodes[0]),e&&s){const n=t.find(e=>e.endpoint===s);o.push({id:`${e.address}-${n.address}`,source:n.address,target:e.address,status:r.LinkState.RECEIVING_SNAPSHOT})}}}),o},S=t=>{e.selectedNode!==t?e.selectedNode=t:e.selectedNode=null,e.$apply()},b=t=>{w||(w=e.getClusterStatus().then(()=>{if(t||!e.clusterConfiguration)return e.getClusterConfiguration()}).then(()=>{if(!e.currentNode||e.leaderChanged)return e.getCurrentNodeStatus()}).finally(()=>{w=null,e.$broadcast(s.MODEL_UPDATED)}))},T=(e,t)=>!t||(!e||e.address!==t.address),E=()=>_.getLocationsWithRpcAddresses().then(t=>{const o=t.find(e=>e.isLocal);o&&(o.endpoint=e.currentNode.endpoint,o.rpcAddress=e.currentNode.address),e.clusterModel.locations=t}),R=e=>p.openSimpleModal({title:h.instant("location.confirm.detach"),message:h.instant("location.confirm.detach.warning",{uri:e.endpoint}),warning:!0}).result.then(()=>l.deleteLocation(e.endpoint)),M=t=>{a.success(t),e.getClusterConfiguration()},k=(e,t,o)=>{let r=e.message||e;400===t&&Array.isArray(e)?r=e.reduce((e,t)=>e+`<div>${t}</div>`,""):412!==t||Object(n.isString)(e)||(r=Object.keys(e).reduce((t,o)=>t+`<div>${o} - ${e[o]}</div>`,"")),a.error(r,o,{allowHtml:!0})},A=()=>{e.clusterConfigurationPanelSize=.25*window.innerWidth+"px"},D=()=>{v.push(N.onShowClusterConfigurationPanel(t=>{A(),e.showClusterConfigurationPanel=t})),v.push(e.$on(s.UPDATE_CLUSTER,(e,t)=>{b(t.force)})),v.push(e.$on(s.DELETE_CLUSTER,(t,o)=>{(t=>{const o=h.instant("cluster_management.delete_cluster_dialog.loader_message");e.setLoader(!0,o),f.deleteCluster(t).then(t=>{if(Object.values(t.data).every(e=>"Cluster was deleted on this node."===e)){const e=h.instant("cluster_management.delete_cluster_dialog.notifications.success_delete");a.success(e)}else{const e=h.instant("cluster_management.delete_cluster_dialog.notifications.success_delete_partial"),o=Object.keys(t.data).reduce((e,o)=>e+`<div>${o} - ${t.data[o]}</div>`,"");a.warning(o,e,{allowHtml:!0})}e.getClusterConfiguration()}).catch(e=>{const t=h.instant("cluster_management.delete_cluster_dialog.notifications.fail_delete");k(e.data,e.status,t)}).finally(()=>{e.setLoader(!1),b(!0),L.$broadcast("reloadLocations")})})(o.force)})),v.push(e.$on(s.CLICK_IN_VIEW,(t,o)=>{!function(t){const o=document.getElementById("nodeTooltip");e.selectedNode&&o!==t&&!o.contains(t)&&S(null)}(o)})),v.push(e.$on(s.NODE_SELECTED,(e,t)=>{S(t)})),v.push(e.$on(s.CREATE_CLUSTER,()=>{e.showCreateClusterDialog()}))};e.$on("$destroy",(function(){v.forEach(e=>e())}));D(),A(),e.showClusterConfigurationPanel=N.getShowClusterConfigurationPanel(),(e.loader=!0,e.getCurrentNodeStatus().then(()=>e.getClusterConfiguration()).then(()=>e.getClusterStatus()).finally(()=>{e.setLoader(!1)})).finally(()=>{const t=g((function(){b()}),1e3);e.$on("$destroy",(function(){g.cancel(t)}))})}angular.module("graphdb.framework.clustermanagement.controllers.cluster-management",["ui.bootstrap","graphdb.framework.core.services.repositories","graphdb.framework.rest.repositories.service","graphdb.framework.rest.cluster.service","graphdb.framework.clustermanagement.services.cluster-view-context-service","graphdb.framework.clustermanagement.services.remote-locations","graphdb.framework.clustermanagement.controllers.remove-nodes","graphdb.framework.clustermanagement.controllers.create-cluster","graphdb.framework.clustermanagement.controllers.edit-cluster","graphdb.framework.clustermanagement.controllers.delete-cluster","graphdb.framework.clustermanagement.controllers.add-location","graphdb.framework.clustermanagement.controllers.add-nodes","graphdb.framework.clustermanagement.controllers.replace-nodes","toastr","pageslide-directive"]).controller("ClusterManagementCtrl",a),a.$inject=["$scope","$http","$q","toastr","$repositories","$uibModal","$sce","$jwtAuth","$window","$interval","ModalService","$timeout","ClusterRestService","$location","$translate","RemoteLocationsService","$rootScope","ClusterViewContextService"]},69:function(e,t){angular.module("graphdb.framework.rest.cluster.service",[]).factory("ClusterRestService",o),o.$inject=["$http"];function o(e){return{getClusterConfig:function(){return e.get("rest/cluster/config")},createCluster:function(t){return e.post("rest/cluster/config",t)},updateCluster:function(t){t.nodes&&delete t.nodes;return e.patch("rest/cluster/config",t)},deleteCluster:function(t){const o=$.param({force:t});return e.delete("rest/cluster/config?"+o)},addNodesToCluster:function(t){return e.post("rest/cluster/config/node",{nodes:t})},replaceNodesInCluster:function(t){return e.patch("rest/cluster/config/node",t)},removeNodesFromCluster:function(t){return e.delete("rest/cluster/config/node",{data:{nodes:t},headers:{"Content-Type":"application/json"}})},getClusterStatus:function(){return e.get("rest/cluster/group/status")},getNodeStatus:function(){return e.get("rest/cluster/node/status")}}}},77:function(e,t,o){"use strict";o.r(t);o(33);function n(e,t,o,n,r){return{addLocation:function(){let e;return o.open({templateUrl:"js/angular/templates/modal/add-location.html",windowClass:"addLocationDialog",controller:"AddLocationFromClusterCtrl"}).result.then(o=>(e=o,e.isLocal=!1,e.endpoint=e.uri,function(e){let o;return n.addLocation(e).catch(e=>{const o=getError(e.data,e.status);return t.error(o,r.instant("common.error")),!1}).then(e=>!!e&&s()).then(t=>{if(!1!==t)return o=t.find(t=>t.endpoint===e.uri),o})}(e)))},getLocationsWithRpcAddresses:s};function s(){return n.getLocations().then((function(e){return e.data.map(e=>({isLocal:e.local,endpoint:e.uri,rpcAddress:e.rpcAddress||"",error:e.errorMsg}))})).catch((function(e){const o=getError(e.data,e.status);t.error(o,r.instant("common.error"))})).then(e=>{if(e)return function(e){const t=e.filter(e=>!e.isLocal&&!e.error).map(e=>function(e){return n.getLocationRpcAddress(e.endpoint)}(e).then(t=>(e.rpcAddress=t.data,e.isAvailable=!0,e)).catch(t=>{e.isAvailable=!1,e.error=getError(t.data,t.status)}));return Promise.allSettled(t).then(()=>e)}(e)})}}angular.module("graphdb.framework.clustermanagement.services.remote-locations",[]).factory("RemoteLocationsService",n),n.$inject=["$http","toastr","$uibModal","LocationsRestService","$translate"]},78:function(e,t,o){"use strict";o.r(t),o.d(t,"UPDATE_CLUSTER",(function(){return n})),o.d(t,"DELETE_CLUSTER",(function(){return r})),o.d(t,"CLICK_IN_VIEW",(function(){return s})),o.d(t,"NODE_SELECTED",(function(){return a})),o.d(t,"CREATE_CLUSTER",(function(){return l})),o.d(t,"MODEL_UPDATED",(function(){return c}));const n="updateCluster",r="deleteCluster",s="clickInView",a="nodeSelected",l="createCluster",c="modelUpdated"}}]);
1
+ (window.webpackJsonp=window.webpackJsonp||[]).push([[9,47,61,62,63,101,102,103,104,106,107,245],{149:function(e,t){function o(e){let t,o=!1;function n(){return o}function r(t){o=t,e.emit("showClusterConfigurationPanel",n())}function s(){return t}return{updateClusterViewD3Container:function(o){t=o,e.emit("clusterViewD3ContainerChanged",s())},getClusterViewD3Container:s,onClusterViewD3ContainerUpdated:function(t){return e.subscribe("clusterViewD3ContainerChanged",()=>t(s()))},getShowClusterConfigurationPanel:n,setShowClusterConfigurationPanel:r,showClusterConfigurationPanel:function(){r(!0)},hideClusterConfigurationPanel:function(){r(!1)},onShowClusterConfigurationPanel:function(t){return e.subscribe("showClusterConfigurationPanel",()=>t(n()))}}}angular.module("graphdb.framework.clustermanagement.services.cluster-view-context-service",[]).factory("ClusterViewContextService",o),o.$inject=["EventEmitterService"]},150:function(e,t){function o(e,t,o){const n=_.cloneDeep(o.clusterModel);e.clusterNodes=n.nodes,e.clusterNodes.forEach(e=>e.shouldRemove=!1),e.nodesToRemoveCount=0,e.leftNodesLessThanTwo=!1,e.toggleNode=(t,o)=>{o.shouldRemove=!o.shouldRemove,o.shouldRemove?e.nodesToRemoveCount++:e.nodesToRemoveCount--,e.leftNodesLessThanTwo=e.clusterNodes.length-e.nodesToRemoveCount<2},e.ok=()=>{const o=e.clusterNodes.filter(e=>e.shouldRemove);t.close(o)},e.cancel=()=>{t.dismiss("cancel")}}angular.module("graphdb.framework.clustermanagement.controllers.remove-nodes",[]).controller("RemoveNodesDialogCtrl",o),o.$inject=["$scope","$uibModalInstance","data"]},151:function(e,t,o){"use strict";o.r(t);o(69);const n=function(){const e=document.getElementById("advancedOptions");if(e){const t=e.getAttribute("aria-expanded");if(t&&"true"===t)return"fa fa-angle-down"}return"fa fa-angle-right"};function r(e,t,o,r,s,a,l,c,i,d){e.pageTitle=a.instant("cluster_management.cluster_page.create_page_title"),e.autofocusId="autofocus",e.errors=[],e.clusterConfiguration={electionMinTimeout:8e3,electionRangeTimeout:6e3,heartbeatInterval:2e3,messageSizeKB:64,verificationTimeout:1500,transactionLogMaximumSizeGB:50,nodes:[]},e.locations=l.clusterModel.locations.filter(e=>!e.isLocal),e.selectedLocations=l.clusterModel.locations.filter(e=>e.isLocal),e.loader=!1,e.deleteLocation=function(t,o){t.preventDefault(),t.stopPropagation(),l.deleteLocation(o).then(()=>e.locations=e.locations.filter(e=>e.endpoint!==o.endpoint))},e.getAdvancedOptionsClass=n,e.createCluster=function(){return e.setLoader(!0,a.instant("cluster_management.cluster_page.creating_cluster_loader")),e.clusterConfiguration.nodes=e.selectedLocations.map(e=>e.rpcAddress),r.createCluster(e.clusterConfiguration).then(()=>{s.success(a.instant("cluster_management.cluster_page.notifications.create_success")),t.close()}).catch((function(e){u(e.data,e.status)})).finally(()=>{e.setLoader(!1),d.$broadcast("reloadLocations")})},e.isClusterConfigurationValid=()=>{const t=!e.clusterConfigurationForm.$invalid,o=e.selectedLocations&&e.selectedLocations.length>=2;return t&&o},e.setLoader=(t,n)=>{o.cancel(e.loaderTimeout),t?e.loaderTimeout=o(()=>{e.loader=t,e.loaderMessage=n},300):e.loader=!1},e.addNodeToList=t=>{t.rpcAddress&&(e.selectedLocations.push(t),e.locations=e.locations.filter(e=>e.endpoint!==t.endpoint))},e.removeNodeFromList=(t,o)=>{o.isLocal||(e.selectedLocations.splice(t,1),e.locations.push(o))},e.addLocation=()=>{i.addLocation().then(t=>{t&&e.locations.push(t)})},e.ok=()=>{e.isClusterConfigurationValid()?e.createCluster():s.warning(a.instant("cluster_management.cluster_page.notifications.form_invalid"))},e.cancel=()=>{t.dismiss("cancel")};const u=(t,o)=>{let n;delete e.preconditionErrors,e.errors.splice(0),412===o?e.preconditionErrors=Object.keys(t).map(e=>`${e} - ${t[e]}`):400===o?e.errors.push(...t):409===o?e.errors.push(t):(t.message||"string"==typeof t)&&(n=t.message||t),s.error(n,a.instant("cluster_management.cluster_page.notifications.create_failed"))}}angular.module("graphdb.framework.clustermanagement.controllers.create-cluster",[]).controller("CreateClusterCtrl",r),r.$inject=["$scope","$uibModalInstance","$timeout","ClusterRestService","toastr","$translate","data","$uibModal","RemoteLocationsService","$rootScope"]},152:function(e,t,o){"use strict";o.r(t);o(69);function n(e,t,o,n,r,s,a){e.pageTitle=s.instant("cluster_management.cluster_page.edit_page_title"),e.errors=[],e.clusterConfiguration=_.cloneDeep(a.clusterConfiguration),e.loader=!1,e.updateCluster=()=>(e.setLoader(!0,s.instant("cluster_management.cluster_page.updating_cluster_loader")),n.updateCluster(e.clusterConfiguration).then(()=>{r.success(s.instant("cluster_management.cluster_page.notifications.update_success")),t.close()}).catch((function(e){l(e.data,e.status)})).finally(()=>e.setLoader(!1))),e.isClusterConfigurationValid=()=>!e.clusterConfigurationForm.$invalid,e.setLoader=(t,n)=>{o.cancel(e.loaderTimeout),t?e.loaderTimeout=o(()=>{e.loader=t,e.loaderMessage=n},300):e.loader=!1},e.ok=()=>{e.isClusterConfigurationValid()?e.updateCluster():r.warning(s.instant("cluster_management.cluster_page.notifications.form_invalid"))},e.cancel=()=>{t.dismiss("cancel")};const l=(t,o)=>{delete e.preconditionErrors,r.error(s.instant("cluster_management.cluster_page.notifications.update_failed")),e.errors.splice(0),409===o||"string"==typeof t?e.errors.push(t):412===o?e.preconditionErrors=Object.keys(t).map(e=>`${e} - ${t[e]}`):400===o&&e.errors.push(...t)}}angular.module("graphdb.framework.clustermanagement.controllers.edit-cluster",[]).controller("EditClusterCtrl",n),n.$inject=["$scope","$uibModalInstance","$timeout","ClusterRestService","toastr","$translate","data"]},153:function(e,t){function o(e,t){e.forceDelete=!1,e.ok=()=>{t.close(e.forceDelete)},e.cancel=()=>{t.dismiss("cancel")}}angular.module("graphdb.framework.clustermanagement.controllers.delete-cluster",[]).controller("DeleteClusterCtrl",o),o.$inject=["$scope","$uibModalInstance"]},154:function(e,t){function o(e,t,o,n,r){e.newLocation={uri:"",authType:"signature",username:"",password:"",active:!1},e.docBase=function(e){return"https://graphdb.ontotext.com/documentation/"+e.productShortVersion}(n),e.isValidLocation=()=>(e.newLocation.uri.length<6||0===e.newLocation.uri.indexOf("http:")||0===e.newLocation.uri.indexOf("https:"))&&e.newLocation.uri.indexOf("/repositories")<=-1,e.ok=()=>{e.newLocation?t.close(e.newLocation):o.error(r.instant("location.cannot.be.empty.error"))},e.cancel=()=>{t.dismiss("cancel")}}angular.module("graphdb.framework.clustermanagement.controllers.add-location",[]).controller("AddLocationFromClusterCtrl",o),o.$inject=["$scope","$uibModalInstance","toastr","productInfo","$translate"]},155:function(e,t,o){"use strict";o.r(t);o(77);function n(e,t,o,n,r){let s,a;e.nodes=[],e.clusterNodes=[],e.locations=[],e.deleteLocation=(t,n)=>{t.preventDefault(),t.stopPropagation(),o.deleteLocation(n).then(()=>e.locations=e.locations.filter(e=>e.endpoint!==n.endpoint))},e.addNodeToList=t=>{t.rpcAddress&&(e.nodes.push(t),e.locations=e.locations.filter(e=>e.endpoint!==t.endpoint))},e.removeNodeFromList=(t,o)=>{e.nodes.splice(t,1),e.locations.push(o)},e.addLocation=()=>{r.addLocation().then(t=>{t&&e.locations.push(t)})},e.ok=()=>{t.close(e.nodes)},e.cancel=()=>{t.dismiss("cancel")};s=_.cloneDeep(o.clusterModel),e.clusterNodes=s.nodes.map(e=>({rpcAddress:e.address,endpoint:e.endpoint})),a=e.clusterNodes.map(e=>e.endpoint),e.locations=s.locations.filter(e=>!a.includes(e.endpoint)),e.locations.forEach(e=>e.isNew=!0)}angular.module("graphdb.framework.clustermanagement.controllers.add-nodes",[]).controller("AddNodesDialogCtrl",n),n.$inject=["$scope","$uibModalInstance","data","$uibModal","RemoteLocationsService"]},156:function(e,t,o){"use strict";o.r(t);o(69),o(77);function n(e,t,o,n,r,s,a,l,c){let i,d;e.replacementNodes=[],e.nodesToReplace=[],e.nodesToReplaceCount=0,e.leftNodesMajority=!1,e.clusterNodes=[],e.locations=[],e.addLocation=()=>{c.addLocation().then(t=>{t&&e.locations.push(t)})},e.toggleNode=(t,o)=>{if(o.shouldReplace=!o.shouldReplace,o.shouldReplace)e.nodesToReplaceCount++,e.nodesToReplace.push(o);else{e.nodesToReplaceCount--;const t=e.nodesToReplace.findIndex(e=>e.rpcAddress===o.rpcAddress);e.nodesToReplace.splice(t,1)}e.leftNodesMajority=u()+e.nodesToReplaceCount>e.clusterNodes.length},e.permitNodesReplace=()=>!e.leftNodesMajority&&(e.nodesToReplace.length>0||e.replacementNodes.length>0),e.addNodeToList=t=>{t.rpcAddress&&(e.replacementNodes.push(t),e.locations=e.locations.filter(e=>e.endpoint!==t.endpoint))},e.deleteLocation=(t,o)=>{t.preventDefault(),t.stopPropagation(),s.deleteLocation(o).then(()=>e.locations=e.locations.filter(e=>e.endpoint!==o.endpoint))},e.removeNodeFromList=(t,o)=>{e.replacementNodes.splice(t,1),e.locations.push(o)},e.ok=()=>{t.close({newNodes:e.replacementNodes,oldNodes:e.nodesToReplace})},e.cancel=()=>{t.dismiss("cancel")};const u=()=>Math.floor(e.clusterNodes.length/2)+1;i=_.cloneDeep(s.clusterModel),e.clusterNodes=i.nodes.map(e=>({rpcAddress:e.address,endpoint:e.endpoint,shouldReplace:!1})),d=e.clusterNodes.map(e=>e.endpoint),e.locations=i.locations.filter(e=>!d.includes(e.endpoint)),e.locations.forEach(e=>e.isNew=!0)}angular.module("graphdb.framework.clustermanagement.controllers.replace-nodes",[]).controller("ReplaceNodesDialogCtrl",n),n.$inject=["$scope","$uibModalInstance","$timeout","toastr","$translate","data","$uibModal","$rootScope","RemoteLocationsService"]},239:function(e,t,o){"use strict";o.r(t);o(69),o(77),o(149),o(150),o(151),o(152),o(153),o(154),o(155),o(156);var n=o(65),r=o(73),s=o(78);function a(e,t,o,a,l,c,i,d,u,g,m,p,f,C,h,_,L,N){let w;const v=[];e.loader=!0,e.isLeader=!1,e.currentNode=null,e.clusterModel={},e.NodeState=r.NodeState,e.leaderChanged=!1,e.currentLeader=null,e.showClusterConfigurationPanel=!1,e.clusterConfigurationPanelSize=void 0,e.onopen=e.onclose=()=>angular.noop(),e.isAdmin=()=>d.isAuthenticated()&&d.isAdmin(),e.openClusterConfigurationPanel=()=>{e.showClusterConfigurationPanel=!0,N.showClusterConfigurationPanel()},e.setLoader=(t,o)=>{p.cancel(e.loaderTimeout),t?(e.loaderMessage=o,e.loaderTimeout=p((function(){e.loader=t}),50)):e.loader=!1},e.getLoaderMessage=()=>e.loaderMessage||h.instant("common.loading"),e.getClusterConfiguration=()=>f.getClusterConfig().then(t=>{if(e.clusterConfiguration=t.data,!e.currentNode)return e.getCurrentNodeStatus()}).catch(()=>{e.clusterConfiguration=null}),e.getClusterStatus=()=>f.getClusterStatus().then(t=>{const o=t.data.slice(),n=o.find(e=>e.nodeState===r.NodeState.LEADER);T(e.currentLeader,n)&&(e.currentLeader=n,e.leaderChanged=!0),e.currentNode=o.find(t=>e.currentNode&&t.address===e.currentNode.address);const s=$(n,o);e.clusterModel.hasCluster=!0,e.clusterModel.nodes=o,e.clusterModel.links=s}).catch(t=>{if(404===t.status)return e.clusterModel.hasCluster=!1,e.clusterModel.nodes=[],e.clusterModel.links=[],e.clusterConfiguration=null,Promise.reject(t)}),e.showCreateClusterDialog=function(){c.open({templateUrl:"js/angular/clustermanagement/templates/modal/cluster-create-dialog.html",controller:"CreateClusterCtrl",size:"lg",resolve:{data:function(){return{deleteLocation:R,clusterModel:e.clusterModel}}}}).result.finally((function(){E(),b(!0)}))},e.getCurrentNodeStatus=()=>f.getNodeStatus().then(t=>{e.leaderChanged=!1,e.currentNode=t.data}).catch(t=>{e.currentNode=t.data,e.clusterModel.hasCluster=!1}).then(()=>E()),e.showAddNodeToClusterDialog=()=>{c.open({templateUrl:"js/angular/clustermanagement/templates/modal/add-nodes-dialog.html",controller:"AddNodesDialogCtrl",size:"lg",resolve:{data:function(){return{deleteLocation:R,clusterModel:e.clusterModel,clusterConfiguration:e.clusterConfiguration}}}}).result.then(t=>{const o=h.instant("cluster_management.cluster_page.add_nodes_loader");e.setLoader(!0,o);const n=t.map(e=>e.rpcAddress);f.addNodesToCluster(n).then(()=>{const e=h.instant("cluster_management.cluster_page.notifications.add_nodes_success");M(e)}).catch(e=>{const t=h.instant("cluster_management.cluster_page.notifications.add_nodes_fail");k(e.data,e.status,t)}).finally(()=>{e.setLoader(!1),b(!0)})}).finally(()=>E())},e.showReplaceNodesDialog=()=>{c.open({templateUrl:"js/angular/clustermanagement/templates/modal/replace-nodes-dialog.html",controller:"ReplaceNodesDialogCtrl",size:"lg",resolve:{data:function(){return{deleteLocation:R,clusterModel:e.clusterModel,clusterConfiguration:e.clusterConfiguration}}}}).result.then(t=>{const o=h.instant("cluster_management.cluster_page.replace_nodes_loader");e.setLoader(!0,o);const n={addNodes:t.newNodes.map(e=>e.rpcAddress),removeNodes:t.oldNodes.map(e=>e.rpcAddress)};f.replaceNodesInCluster(n).then(()=>{const e=h.instant("cluster_management.cluster_page.notifications.replace_nodes_success");M(e)}).catch(e=>{const t=h.instant("cluster_management.cluster_page.notifications.replace_nodes_fail");k(e.data,e.status,t)}).finally(()=>{e.setLoader(!1),b(!0)})}).finally(()=>E())},e.showRemoveNodesFromClusterDialog=()=>{c.open({templateUrl:"js/angular/clustermanagement/templates/modal/remove-nodes-dialog.html",controller:"RemoveNodesDialogCtrl",size:"lg",resolve:{data:function(){return{clusterModel:e.clusterModel}}}}).result.then((function(t){const o=h.instant("cluster_management.cluster_page.remove_nodes_loader");e.setLoader(!0,o);const n=t.map(e=>e.address);f.removeNodesFromCluster(n).then(()=>{const e=h.instant("cluster_management.cluster_page.notifications.remove_nodes_success");M(e)}).catch(e=>{const t=h.instant("cluster_management.cluster_page.notifications.remove_nodes_fail");k(e.data,e.status,t)}).finally(()=>{e.setLoader(!1),b(!0)})}))};const $=(e,t)=>{const o=[];return e&&Object.keys(e.syncStatus).forEach(n=>{const s=e.syncStatus[n];if(s!==r.LinkState.NO_CONNECTION&&(o.push({id:`${e.address}-${n}`,source:e.address,target:n,status:s}),s===r.LinkState.OUT_OF_SYNC)){const e=t.find(e=>e.address===n);let s;if(e.recoveryStatus.state===r.RecoveryState.RECEIVING_SNAPSHOT&&(s=e.recoveryStatus.affectedNodes[0]),e&&s){const n=t.find(e=>e.endpoint===s);o.push({id:`${e.address}-${n.address}`,source:n.address,target:e.address,status:r.LinkState.RECEIVING_SNAPSHOT})}}}),o},S=t=>{e.selectedNode!==t?e.selectedNode=t:e.selectedNode=null,e.$apply()},b=t=>{w||(w=e.getClusterStatus().then(()=>{if(t||!e.clusterConfiguration)return e.getClusterConfiguration()}).then(()=>{if(!e.currentNode||e.leaderChanged)return e.getCurrentNodeStatus()}).finally(()=>{w=null,e.$broadcast(s.MODEL_UPDATED)}))},T=(e,t)=>!t||(!e||e.address!==t.address),E=()=>_.getLocationsWithRpcAddresses().then(t=>{const o=t.find(e=>e.isLocal);o&&(o.endpoint=e.currentNode.endpoint,o.rpcAddress=e.currentNode.address),e.clusterModel.locations=t}),R=e=>m.openSimpleModal({title:h.instant("location.confirm.detach"),message:h.instant("location.confirm.detach.warning",{uri:e.endpoint}),warning:!0}).result.then(()=>l.deleteLocation(e.endpoint)),M=t=>{a.success(t),e.getClusterConfiguration()},k=(e,t,o)=>{let r=e.message||e;400===t&&Array.isArray(e)?r=e.reduce((e,t)=>e+`<div>${t}</div>`,""):412!==t||Object(n.isString)(e)||(r=Object.keys(e).reduce((t,o)=>t+`<div>${o} - ${e[o]}</div>`,"")),a.error(r,o,{allowHtml:!0})},A=()=>{e.clusterConfigurationPanelSize=.25*window.innerWidth+"px"},D=()=>{v.push(N.onShowClusterConfigurationPanel(t=>{A(),e.showClusterConfigurationPanel=t})),v.push(e.$on(s.UPDATE_CLUSTER,(e,t)=>{b(t.force)})),v.push(e.$on(s.DELETE_CLUSTER,(t,o)=>{(t=>{const o=h.instant("cluster_management.delete_cluster_dialog.loader_message");e.setLoader(!0,o),f.deleteCluster(t).then(t=>{if(Object.values(t.data).every(e=>"Cluster was deleted on this node."===e)){const e=h.instant("cluster_management.delete_cluster_dialog.notifications.success_delete");a.success(e)}else{const e=h.instant("cluster_management.delete_cluster_dialog.notifications.success_delete_partial"),o=Object.keys(t.data).reduce((e,o)=>e+`<div>${o} - ${t.data[o]}</div>`,"");a.warning(o,e,{allowHtml:!0})}e.getClusterConfiguration()}).catch(e=>{const t=h.instant("cluster_management.delete_cluster_dialog.notifications.fail_delete");k(e.data,e.status,t)}).finally(()=>{e.setLoader(!1),b(!0),L.$broadcast("reloadLocations")})})(o.force)})),v.push(e.$on(s.CLICK_IN_VIEW,(t,o)=>{!function(t){const o=document.getElementById("nodeTooltip");e.selectedNode&&o!==t&&!o.contains(t)&&S(null)}(o)})),v.push(e.$on(s.NODE_SELECTED,(e,t)=>{S(t)})),v.push(e.$on(s.CREATE_CLUSTER,()=>{e.showCreateClusterDialog()}))};e.$on("$destroy",(function(){v.forEach(e=>e())}));D(),A(),e.showClusterConfigurationPanel=N.getShowClusterConfigurationPanel(),(e.loader=!0,e.getCurrentNodeStatus().then(()=>e.getClusterConfiguration()).then(()=>e.getClusterStatus()).finally(()=>{e.setLoader(!1)})).finally(()=>{const t=g((function(){b()}),1e3);e.$on("$destroy",(function(){g.cancel(t)}))})}angular.module("graphdb.framework.clustermanagement.controllers.cluster-management",["ui.bootstrap","graphdb.framework.core.services.repositories","graphdb.framework.rest.repositories.service","graphdb.framework.rest.cluster.service","graphdb.framework.clustermanagement.services.cluster-view-context-service","graphdb.framework.clustermanagement.services.remote-locations","graphdb.framework.clustermanagement.controllers.remove-nodes","graphdb.framework.clustermanagement.controllers.create-cluster","graphdb.framework.clustermanagement.controllers.edit-cluster","graphdb.framework.clustermanagement.controllers.delete-cluster","graphdb.framework.clustermanagement.controllers.add-location","graphdb.framework.clustermanagement.controllers.add-nodes","graphdb.framework.clustermanagement.controllers.replace-nodes","toastr","pageslide-directive"]).controller("ClusterManagementCtrl",a),a.$inject=["$scope","$http","$q","toastr","$repositories","$uibModal","$sce","$jwtAuth","$window","$interval","ModalService","$timeout","ClusterRestService","$location","$translate","RemoteLocationsService","$rootScope","ClusterViewContextService"]},69:function(e,t){angular.module("graphdb.framework.rest.cluster.service",[]).factory("ClusterRestService",o),o.$inject=["$http"];function o(e){return{getClusterConfig:function(){return e.get("rest/cluster/config")},createCluster:function(t){return e.post("rest/cluster/config",t)},updateCluster:function(t){t.nodes&&delete t.nodes;return e.patch("rest/cluster/config",t)},deleteCluster:function(t){const o=$.param({force:t});return e.delete("rest/cluster/config?"+o)},addNodesToCluster:function(t){return e.post("rest/cluster/config/node",{nodes:t})},replaceNodesInCluster:function(t){return e.patch("rest/cluster/config/node",t)},removeNodesFromCluster:function(t){return e.delete("rest/cluster/config/node",{data:{nodes:t},headers:{"Content-Type":"application/json"}})},getClusterStatus:function(){return e.get("rest/cluster/group/status")},getNodeStatus:function(){return e.get("rest/cluster/node/status")}}}},77:function(e,t,o){"use strict";o.r(t);o(33);function n(e,t,o,n,r){return{addLocation:function(){let e;return o.open({templateUrl:"js/angular/templates/modal/add-location.html",windowClass:"addLocationDialog",controller:"AddLocationFromClusterCtrl"}).result.then(o=>(e=o,e.isLocal=!1,e.endpoint=e.uri,function(e){let o;return n.addLocation(e).catch(e=>{const o=getError(e.data,e.status);return t.error(o,r.instant("common.error")),!1}).then(e=>!!e&&s()).then(t=>{if(!1!==t)return o=t.find(t=>t.endpoint===e.uri),o})}(e)))},getLocationsWithRpcAddresses:s};function s(){return n.getLocations().then((function(e){return e.data.map(e=>({isLocal:e.local,endpoint:e.uri,rpcAddress:e.rpcAddress||"",error:e.errorMsg}))})).catch((function(e){const o=getError(e.data,e.status);t.error(o,r.instant("common.error"))})).then(e=>{if(e)return function(e){const t=e.filter(e=>!e.isLocal&&!e.error).map(e=>function(e){return n.getLocationRpcAddress(e.endpoint)}(e).then(t=>(e.rpcAddress=t.data,e.isAvailable=!0,e)).catch(t=>{e.isAvailable=!1,e.error=getError(t.data,t.status)}));return Promise.allSettled(t).then(()=>e)}(e)})}}angular.module("graphdb.framework.clustermanagement.services.remote-locations",[]).factory("RemoteLocationsService",n),n.$inject=["$http","toastr","$uibModal","LocationsRestService","$translate"]},78:function(e,t,o){"use strict";o.r(t),o.d(t,"UPDATE_CLUSTER",(function(){return n})),o.d(t,"DELETE_CLUSTER",(function(){return r})),o.d(t,"CLICK_IN_VIEW",(function(){return s})),o.d(t,"NODE_SELECTED",(function(){return a})),o.d(t,"CREATE_CLUSTER",(function(){return l})),o.d(t,"MODEL_UPDATED",(function(){return c}));const n="updateCluster",r="deleteCluster",s="clickInView",a="nodeSelected",l="createCluster",c="modelUpdated"}}]);