graphdb-workbench
Version:
The web application for GraphDB APIs
2 lines • 17.6 kB
JavaScript
export const __webpack_esm_id__=66e3;export const __webpack_esm_ids__=[971,30222,30690,49643,57157,66e3,74780,75331];export const __webpack_esm_modules__={971:()=>{angular.module("graphdb.framework.core.directives.ascii-validator",[]).directive("asciiValidator",function(){return{restrict:"A",require:"ngModel",link:function(e,t,n,r){function o(e){const t=/^[\x21-\x7E]*$/.test(e);return r.$setValidity("asciiValidator",t),e}r.$parsers.push(o),r.$formatters.push(o)}}})},30222:()=>{angular.module("graphdb.framework.core.directives.length-validator",[]).directive("lengthValidator",function(){return{restrict:"A",require:"ngModel",link:function(e,t,n,r){function o(e){const t=n.minLength?parseInt(n.minLength,10):0,o=n.maxLength?parseInt(n.maxLength,10):1/0,a=e&&e.length>=t&&e.length<=o;return r.$setValidity("lengthValidator",a),e}r.$parsers.push(o),r.$formatters.push(o)}}})},30690:(e,t,n)=>{n.d(t,{r:()=>a});const r=/^(h|ht|htt|http|https|http:|https:|http:\/|https:\/|http:\/\/|https:\/\/|https?:\/\/[\S]*)$/i,o=/^(f|ft|ftp|ftps|ftp:|ftps:|ftp:\/|ftps:\/|ftp:\/\/|ftps:\/\/[\S]*)$/i;class a{static isValidUrl(e){return r.test(e)||o.test(e)}static doesNotContain(e,t){return!new RegExp(t).test(e)}static doesNotUseProtocol(e,t){return!new RegExp("^("+t.join("|")+")://","i").test(e)}}},47133:(e,t,n)=>{n(971),n(30222);var r=n(24508),o=n(70962),a=n(57154);const i={minLen:"3",maxLen:"255"};function s(e,t,n,s,c,l,u){return{restrict:"E",templateUrl:"js/angular/clustermanagement/templates/cluster-configuration/multi-region.html",scope:{clusterModel:"=",clusterConfiguration:"="},link:e=>{const d=(0,a.service)(a.AuthorizationService),g=(0,a.service)(a.AuthenticationService),m=[];e.topology=void 0,e.TopologyState=o.zB,e.isAdmin=!1,e.addingTag=!1,e.loaderTimeout=void 0,e.secondaryTag=void 0,e.TagLengthConstraints=i,e.add=()=>{e.addingTag=!0},e.cancel=()=>{e.addingTag=!1},e.createTag=n=>{const r={tag:n};return h(!0),l.addCusterTag(r).then(()=>{s.success(t.instant("cluster_management.cluster_configuration_multi_region.created_tag",{tag:n}))}).catch(e=>{const n=getError(e);s.error(n,t.instant("cluster_management.cluster_configuration_multi_region.error.creating"))}).finally(()=>{e.addingTag=!1,h(!1)})},e.deleteTag=e=>{c.openSimpleModal({title:t.instant("cluster_management.cluster_configuration_multi_region.confirm.delete",{tag:e}),message:t.instant("cluster_management.cluster_configuration_multi_region.confirm.warning"),warning:!0,backdrop:"static",stopPropagation:!0}).result.then(()=>(h(!0),l.deleteClusterTag(e))).then(()=>s.success(t.instant("cluster_management.cluster_configuration_multi_region.deleted_tag",{tag:e}))).catch(e=>{if("cancel"===e||"escape key press"===e)return;const n=getError(e);s.error(n,t.instant("cluster_management.cluster_configuration_multi_region.error.deleting"))}).finally(()=>h(!1))},e.enableSecondaryMode=()=>{e.addingTag=!1;const n={title:t.instant("cluster_management.cluster_configuration_multi_region.confirm.enable_secondary"),message:t.instant("cluster_management.cluster_configuration_multi_region.confirm.enable_secondary_warning"),warning:!0,backdrop:"static",confirmButtonKey:"common.ok.btn",stopPropagation:!0};c.openSimpleModal(n).result.then(()=>p()).then(e=>(h(!0),l.enableSecondaryMode(e))).then(()=>s.success(t.instant("cluster_management.cluster_configuration_multi_region.secondary_enabled"))).catch(e=>{if("cancel"===e||"escape key press"===e)return;const n=getError(e);s.error(n,t.instant("cluster_management.cluster_configuration_multi_region.error.secondary"))}).finally(()=>h(!1))},e.disableSecondaryMode=()=>{c.openSimpleModal({title:t.instant("cluster_management.cluster_configuration_multi_region.confirm.disable_secondary_mode"),message:t.instant("cluster_management.cluster_configuration_multi_region.confirm.disable_secondary_mode_warning"),warning:!0,backdrop:"static",stopPropagation:!0}).result.then(()=>(h(!0),l.disableSecondaryMode())).then(()=>s.success(t.instant("cluster_management.cluster_configuration_multi_region.disabled_secondary_mode"))).catch(e=>{if("cancel"===e||"escape key press"===e)return;const n=getError(e);s.error(n,t.instant("cluster_management.cluster_configuration_multi_region.error.disabling"))}).finally(()=>h(!1))};const p=()=>{const e={title:t.instant("cluster_management.cluster_configuration_multi_region.secondary_cluster_settings"),templateUrl:"js/angular/clustermanagement/templates/modal/secondary-mode-modal.html",controller:["$scope","$uibModalInstance","config",function(e,t,n){e.rpcAddress="",e.tag="",e.title=n.title,e.onClick=e=>e.stopPropagation(),e.ok=()=>{t.close({primaryNode:e.rpcAddress,tag:e.tag})},e.cancel=()=>{t.dismiss("cancel")}}],size:"lg",warning:!0,backdrop:"static"};return c.openCustomModal(e).result},f=n=>{h(!0),l.getClusterConfig().then(t=>{e.secondaryTag=r.v9.fromJSON(t.data).secondaryTag,(t=>{const n=t.nodes.find(e=>e.nodeState===o.UY.LEADER);e.topology=n.topologyStatus})(r.kY.fromJSON(n))}).catch(e=>{const n=getError(e);s.error(n,t.instant("cluster_management.cluster_configuration_multi_region.error.disabling"))}).finally(()=>h(!1))},h=(t,r)=>{n.cancel(e.loaderTimeout),t?(e.loaderMessage=r,e.loaderTimeout=n(()=>{e.loader=t},150)):e.loader=!1};e.$on("$destroy",function(){m.forEach(e=>e())}),e.isAdmin=g.isAuthenticated()&&d.isAdmin(),m.push(e.$watch("clusterModel",function(e,t){e!==t&&f(e)},!0)),m.push(u.onShowClusterConfigurationPanel(t=>{t||(e.addingTag=!1)})),f(e.clusterModel)}}}angular.module("graphdb.framework.clustermanagement.directives.cluster-configuration.multi-region",["graphdb.framework.core.directives.ascii-validator","graphdb.framework.core.directives.length-validator"]).directive("multiRegion",s),s.$inject=["$jwtAuth","$translate","$timeout","toastr","ModalService","ClusterRestService","ClusterViewContextService"]},49643:()=>{angular.module("graphdb.framework.core.directives.validate-duplicate-url",[]).directive("validateDuplicateUrl",function(){return{restrict:"A",require:"ngModel",scope:{excludedUrls:"="},link:function(e,t,n,r){r.$validators.duplicateUrl=function(t,n){return e.excludedUrls&&e.excludedUrls.includes(n)?(r.$setValidity("duplicateUrl",!1),!1):(r.$setValidity("duplicateUrl",!0),!0)}}}})},57157:()=>{function e(){return{restrict:"E",templateUrl:"js/angular/clustermanagement/templates/cluster-configuration/cluster-nodes.html",scope:{currentNode:"=",clusterModel:"="}}}angular.module("graphdb.framework.clustermanagement.directives.cluster-configuration.cluster-nodes",[]).directive("clusterNodes",e),e.$inject=[]},58239:(e,t,n)=>{n(32150),n(94519);var r=n(57952),o=n(98980),a=n(21466),i=n(93462),s=n(57154);const c={select:i.select};let l=240;const u={no_cluster_configured:"",create_cluster_btn:"",legend_node_state:"",legend_link_state:"",node_state_leader:"Leader",node_state_follower:"Follower",node_state_candidate:"Candidate",node_state_no_cluster:"No cluster",node_state_out_of_sync:"Out of sync",node_state_no_connection:"No connection",node_state_read_only:"Read only",node_state_restricted:"Restricted",link_state_in_sync:"In sync",link_state_syncing:"Syncing",link_state_out_of_sync:"Out of sync",recovery_state:{searching_for_node:"Searching for node",waiting_for_snapshot:"Waiting for snapshot from node",receiving_snapshot:"Receiving a snapshot from node",applying_snapshot:"Applying a snapshot",building_snapshot:"Building a snapshot for node",sending_snapshot:"Sending a snapshot to node",recovery_operation_failure_warning:"Node unable to recover. Action required"}},d={node_state:"legend_node_state",link_state:"legend_link_state"};angular.module("graphdb.framework.clustermanagement.directives.cluster-graphical-view",["graphdb.framework.utils.localstorageadapter","graphdb.framework.clustermanagement.directives.cluster-legend"]).directive("clusterGraphicalView",["$window","LocalStorageAdapter","LSKeys","UriUtils","$translate","$jwtAuth","$rootScope","ClusterViewContextService",function(e,t,n,i,g,m,p,f){return{restrict:"E",scope:{clusterModel:"="},link:function(m,h){const _=(0,s.service)(s.AuthorizationService),v=angular.element(e),w=[];let y,C,b,k,S,N=U(),M=P(),E=Math.min(N,M)/2-100,A=N/2,T=M/2;function x(){const e=f.getClusterViewD3Container();N=U(),M=P(),e.attr("width",N),e.attr("height",M),I()}function L(e,t=""){Object.keys(e).forEach(n=>{let r="";t&&(r+=t),r+=`.${n}`;const o=e[n];"string"==typeof o?e[n]=g.instant(`cluster_management.cluster_graphical_view${r}`):"object"==typeof o&&L(o,r)})}function U(){const r="collapsedMenu"===t.get(n.MENU_STATE);return l=r?70:240,Math.max(Math.floor(.95*(e.innerWidth-l)),600)}function P(){return Math.max(.95*(e.innerHeight-250),675)}function V(e){m.$emit(a.DP,e.target)}function I(){E=Math.min(N,M)/2-100,A=N/2,T=M/2,r.cZ(b,A,T),b.select(".cluster-zone").attr("r",E),C!==m.clusterModel.hasCluster&&(C=!!m.clusterModel.hasCluster,function(e){r.Xl(e,b,u,y),!e&&y&&b.on("mouseup",()=>{m.$emit(a.Yn)})}(C));const e=function(){const e=(0,o.cloneDeep)(m.clusterModel.nodes)||[];return e.forEach(e=>{if(e.hostname=i.shortenIri(e.endpoint),!(0,o.isEmpty)(e.recoveryStatus)){let t=`cluster_management.cluster_graphical_view.recovery_state.${e.recoveryStatus.state.toLowerCase()}`;e.recoveryStatus.affectedNodes&&e.recoveryStatus.affectedNodes.length>0&&(t+="_with_affected_node"),e.recoveryStatus.message=g.instant(t,{node:e.recoveryStatus.affectedNodes.join(", ")})}}),e}();!function(e){const t=k.selectAll("#node-group").data(e,e=>e.address),n=r.kI(t,45);n.on("click",(e,t)=>{m.$emit(a.vu,t);const n=c.select(".nodetooltip"),r=$(window).width();e.pageX<r/2?(n.style("left",e.pageX+"px"),n.style("right","")):(n.style("left",""),n.style("right",r-e.pageX+"px")),n.style("top",e.pageY-28+"px")}),r.HF(n),r.ss(n,A,T,E)}(e),function(e,t){const n=S.selectAll(".link").data(e,e=>e.id);r.cy(n),r.$$(n,t)}((0,o.cloneDeep)(m.clusterModel.links)||[],e)}m.width=function(){return N},m.height=function(){return M},m.$on("$destroy",function(){v.unbind("resize",x),v.unbind("mousedown",V),r.Wg(),w.forEach(e=>e())}),y=_.isAdmin(),v.bind("resize",x),v.bind("mousedown",V),w.push(p.$on("$translateChangeSuccess",function(){L(u),r.r_(C,b,u),Object.keys(d).forEach(e=>{c.select(`#${e}`).text(function(e){return u[d[e]]}(e))})})),w.push(m.$on(a.aV,function(){I()})),L(u),function(e){const t=r.J5(h[0]).attr("width",N).attr("height",M);b=r.dB(t,e),S=t.append("g").attr("id","links-group"),k=t.append("g").attr("id","nodes-group"),r.D6(t,r.ZC.BIG),r.D6(t,r.ZC.SMALL),f.updateClusterViewD3Container(t)}(!(!m.clusterModel.nodes||!m.clusterModel.nodes.length)),I()}}}])},62979:(e,t,n)=>{var r,o;r=[n(93462)],void 0===(o=function(e){function t(e,t){return e.each(function(){var e=t.apply(this,arguments),n=select(this);for(var r in e)n.attr(r,e[r])})}function r(e,t){for(var n in t)e.attr(n,t[n]);return e}return void 0===e&&(e=n(93462)),e.selection.prototype.attrs=function(e){return("function"==typeof e?t:r)(this,e)},e.selection.prototype.moveToFront=function(){return this.each(function(){e.select(this.parentNode.appendChild(this))})},e.selection.prototype.moveToBack=function(){return this.each(function(){const e=this.parentNode.firstChild;e&&this.parentNode.insertBefore(this,e)})},e}.apply(t,r))||(e.exports=o)},66e3:(e,t,n)=>{n(82493),n(5687),n(26325),n(58239),n(79974),n(74780),n(76933),n(62979),n(96227),n(75331),n(49643),angular.module("graphdb.framework.clustermanagement",["ngAnimate","toastr","graphdb.framework.clustermanagement.controllers.cluster-management","graphdb.framework.clustermanagement.directives.cluster-graphical-view","graphdb.framework.clustermanagement.directives.cluster-configuration","graphdb.framework.clustermanagement.directives.cluster-nodes-configuration","graphdb.framework.core.directives.validate-url","graphdb.framework.core.directives.validate-duplicate-url"])},74780:(e,t,n)=>{var r=n(24508);function o(e,t,n,o,a,i,s){return{restrict:"E",templateUrl:"js/angular/clustermanagement/templates/cluster-nodes-configuration.html",link:n=>{const o=[];n.rowHeights={},n.editedNodeIndex=void 0,n.allSuggestions=[],n.loader=!1,n.errors=[],n.addNewLocation=!1,n.hasCluster=!1,n.addNode=()=>{n.addNewLocation=!0,n.newLocation=new r.aZ,t(function(){const e=document.querySelector("input[name='location']");e&&e.focus()},0)},n.filterSuggestions=e=>{const t=e.endpoint&&e.endpoint.toLowerCase();t?(n.suggestions=n.allSuggestions.filter(e=>e.toLowerCase().includes(t)),n.showDropdown=!0):(n.suggestions=[],n.showDropdown=!1)},n.selectSuggestion=(e,t)=>{e.endpoint=t,n.suggestions=[],n.showDropdown=!1},n.hideSuggestions=()=>{t(()=>{n.showDropdown=!1},200)},n.handleKeydown=function(e,t,r){"Enter"===e.key&&t?(e.preventDefault(),n.saveNode(r)):"Escape"===e.key&&n.cancel()},n.saveNode=e=>{const t=i.getAvailable(!0);var n,o;n=i.findByEndpoint(t,e)||new r.aZ(e),(o=i.getPendingReplace())?i.replace(o,n):i.addLocation(n),a()},n.deleteNode=(t,n)=>{s.openSimpleModal({title:e.instant("location.confirm.detach"),message:e.instant("location.confirm.detach.warning",{uri:n.endpoint}),warning:!0}).result.then(()=>{i.deleteFromCluster(n.item)})},n.replaceNode=(t,r)=>{s.openSimpleModal({title:e.instant("location.change.confirm"),message:e.instant("location.change.confirm.warning"),warning:!0}).result.then(()=>{i.setPendingReplace(r.item),n.editedNodeIndex=t})},n.isClusterConfigurationValid=()=>{const e=void 0===n.editedNodeIndex,t=!1===n.addNewLocation,r=i.hasValidNodesCount(),o=n.form.$valid;return e&&t&&r&&o},n.setLoader=(e,r)=>{t.cancel(n.loaderTimeout),e?n.loaderTimeout=t(()=>{n.loader=e,n.loaderMessage=r},300):n.loader=!1},n.getAdvancedOptionsClass=()=>{const e=document.getElementById("advancedOptions");if(e){const t=e.getAttribute("aria-expanded");if(t&&"true"===t)return"ri-arrow-down-s-line"}return"ri-arrow-right-s-line"},n.cancel=()=>{n.editedNodeIndex=void 0,n.addNewLocation=!1,a(),i.emitUpdateClusterView()},n.restoreNode=e=>{i.restoreNode(e.item)};const a=()=>{i.setPendingReplace(void 0),n.editedNodeIndex=void 0,n.addNewLocation=!1},c=n.$watchGroup(["editedNodeIndex","addNewLocation","clusterConfiguration.electionMinTimeout","clusterConfiguration.electionRangeTimeout","clusterConfiguration.heartbeatInterval","clusterConfiguration.messageSizeKB","clusterConfiguration.verificationTimeout","clusterConfiguration.transactionLogMaximumSizeGB"],(e,t)=>{const r=n.isClusterConfigurationValid();i.updateClusterValidity(r)});o.push(c),o.push(i.onClusterViewChanged(e=>{n.hasCluster=i.hasCluster(),n.viewModel=i.getViewModel(),n.clusterNodesEndpoints=n.viewModel.map(e=>e.endpoint),n.clusterConfiguration=i.getClusterConfiguration(),n.allSuggestions=i.getAvailableNodeEndpoints(),n.canDeleteNode=i.canDeleteNode()})),n.$on("$destroy",()=>{o.forEach(e=>e())})}}}angular.module("graphdb.framework.clustermanagement.directives.cluster-nodes-configuration",[]).directive("clusterNodesConfiguration",o),o.$inject=["$translate","$timeout","productInfo","toastr","RemoteLocationsService","ClusterContextService","ModalService"]},75331:(e,t,n)=>{var r=n(30690);angular.module("graphdb.framework.core.directives.validate-url",[]).directive("validateUrl",function(){return{restrict:"A",require:"ngModel",link:function(e,t,n,o){o.$validators.validUrl=function(e,t){if(o.$isEmpty(t))return"false"!==n.allowEmpty;if(!r.r.isValidUrl(t))return!1;if(n.exclude&&!r.r.doesNotContain(t,n.exclude))return!1;if(n.excludeProtocol){const e=n.excludeProtocol.split(",");if(!r.r.doesNotUseProtocol(t,e))return!1}return!0}}}})},79974:(e,t,n)=>{n(93165),n(57157),n(47133),angular.module("graphdb.framework.clustermanagement.directives.cluster-configuration",["graphdb.framework.clustermanagement.directives.cluster-configuration.cluster-properties","graphdb.framework.clustermanagement.directives.cluster-configuration.cluster-nodes","graphdb.framework.clustermanagement.directives.cluster-configuration.multi-region"]).directive("clusterConfiguration",o),o.$inject=["$jwtAuth","$uibModal","$translate","toastr","ClusterViewContextService"];const r={PROPERTIES:"properties",NODES:"nodes",MULTI_REGION:"multi_region"};function o(e,t,n,o,a){return{restrict:"E",templateUrl:"js/angular/clustermanagement/templates/cluster-configuration/cluster-configuration.html",scope:{currentNode:"=",clusterModel:"=",clusterConfiguration:"="},link:e=>{const t=[];e.CONFIGURATION_TABS=r,e.activeTab=r.PROPERTIES,e.closeClusterConfigurationPanel=()=>{a.hideClusterConfigurationPanel()},e.switchTab=(t,n)=>{e.activeTab=n},e.$on("$destroy",function(){t.forEach(e=>e()),e.closeClusterConfigurationPanel()}),t.push(a.onShowClusterConfigurationPanel(t=>{t||(e.activeTab=r.PROPERTIES)}))}}}},93165:(e,t,n)=>{var r=n(21466),o=n(57154);function a(e,t){return{restrict:"E",templateUrl:"js/angular/clustermanagement/templates/cluster-configuration/cluster-properties.html",scope:{currentNode:"=",clusterModel:"=",clusterConfiguration:"="},link:e=>{const n=(0,o.service)(o.AuthorizationService),a=(0,o.service)(o.AuthenticationService);e.isAdmin=!1,e.showEditConfigurationDialog=()=>{t.open({templateUrl:"js/angular/clustermanagement/templates/modal/cluster-edit-dialog.html",controller:"EditClusterCtrl",size:"lg",resolve:{data:()=>({clusterConfiguration:e.clusterConfiguration})}}).result.finally(function(){e.$emit(r.pw,{force:!0})})},e.showDeleteDialog=()=>{t.open({templateUrl:"js/angular/clustermanagement/templates/modal/cluster-delete-dialog.html",controller:"DeleteClusterCtrl"}).result.then(t=>{e.$emit(r.fe,{force:t})})},e.isAdmin=a.isAuthenticated()&&n.isAdmin()}}}angular.module("graphdb.framework.clustermanagement.directives.cluster-configuration.cluster-properties",[]).directive("clusterProperties",a),a.$inject=["$jwtAuth","$uibModal"]}};
//# sourceMappingURL=66000.93ba4bf09e70ab582eea.bundle.js.map