graphdb-workbench 3.0.2 → 3.0.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/{160.1e607beff0e4f8e426cf.bundle.js → 160.90623def0ab7fc31370f.bundle.js} +1 -1
- package/dist/231.909faa919088245e9988.bundle.js +1 -1
- package/dist/31.7452fe0f096c31a9a1f1.bundle.js +1 -1
- package/dist/{33.da597e608351b4872771.bundle.js → 33.1d2d20cde12379531f40.bundle.js} +1 -1
- package/dist/410.b74d59055b7cf830abe5.bundle.js +1 -1
- package/dist/416.68f6286f80654cdbe4e4.bundle.js +1 -1
- package/dist/417.70adf0a6f0571c394764.bundle.js +1 -1
- package/dist/42.baaa159c3b1e81422600.bundle.js +1 -1
- package/dist/423.6edb13ec0cf08388c947.bundle.js +1 -1
- package/dist/424.725b821051516e73783a.bundle.js +1 -1
- package/dist/425.03fcf969da1a4e92fec3.bundle.js +1 -1
- package/dist/426.aa6924f6f1192d037009.bundle.js +1 -1
- package/dist/427.5c7b72141707b841e8a3.bundle.js +1 -1
- package/dist/428.0d471ce7c68654947c04.bundle.js +1 -1
- package/dist/443.969280af4067a22d1a8b.bundle.js +1 -1
- package/dist/444.a5971579184b091ed392.bundle.js +1 -1
- package/dist/445.2b20cb9e68a11879f6c4.bundle.js +1 -1
- package/dist/446.fe3cf3d6e288c8c4444b.bundle.js +1 -1
- package/dist/447.d1d078921f6f28e2fa38.bundle.js +1 -1
- package/dist/448.d6c9bed6d99b8b23619f.bundle.js +1 -1
- package/dist/468.8e259940c62a68ef3055.bundle.js +1 -1
- package/dist/480.379bf3b338e0a3224a1f.bundle.js +1 -1
- package/dist/481.0387239b174f787e70ea.bundle.js +1 -1
- package/dist/483.c81275cb05dd78ce389f.bundle.js +1 -1
- package/dist/484.25a82c267c3a705d2a65.bundle.js +1 -1
- package/dist/485.91cbfbfd37eccde375c9.bundle.js +1 -1
- package/dist/488.a69dcce23066c0dafdf7.bundle.js +1 -1
- package/dist/489.a976085b601cccf438d4.bundle.js +1 -1
- package/dist/49.ec8921fc54aaae50ca52.bundle.js +1 -1
- package/dist/490.d3e0f3e499b5a24f6808.bundle.js +1 -1
- package/dist/491.62c185868f9d99dd5713.bundle.js +1 -1
- package/dist/50.4886e820614f9dadb147.bundle.js +1 -1
- package/dist/76.fc1058890354a7ee6abe.bundle.js +1 -1
- package/dist/{bundle.fc37b3e514d7594f55be.bundle.js → bundle.3dea37b6f040656bb69b.bundle.js} +2 -2
- package/dist/index.html +3 -3
- package/dist/js/angular/clustermanagement/templates/cluster-nodes-configuration.html +1 -1
- package/dist/js/angular/core/directives/autocomplete/templates/autocomplete.html +1 -1
- package/dist/js/angular/core/directives/dynamic-form/templates/dynamic-form.html +1 -1
- package/dist/js/angular/core/directives/operations-statuses-monitor/templates/operations-statuses-monitor.html +1 -1
- package/dist/js/angular/core/directives/rdfresourcesearch/templates/rdfResourceSearchTemplate.html +1 -1
- package/dist/js/angular/core/directives/shuttle-multiselect/templates/shuttle-multiselect.html +1 -1
- package/dist/js/angular/core/directives/yasgui-component/templates/yasgui-component.html +1 -1
- package/dist/js/angular/core/templates/cookie-policy/cookie-consent.html +1 -1
- package/dist/js/angular/core/templates/cookie-policy/cookie-policy.html +1 -1
- package/dist/js/angular/graphql/templates/create-graphql-endpoint.html +2 -2
- package/dist/js/angular/graphql/templates/graphql-endpoint-management.html +1 -1
- package/dist/js/angular/graphql/templates/graphql-playground.html +1 -1
- package/dist/js/angular/graphql/templates/modal/endpoint-configuration-modal.html +1 -1
- package/dist/js/angular/graphql/templates/modal/endpoint-generation-failure-result-modal.html +1 -1
- package/dist/js/angular/graphql/templates/modal/import-endpoint-definition-modal.html +1 -1
- package/dist/js/angular/security/templates/user.html +2 -2
- package/dist/js/angular/ttyg/templates/agent-list.html +1 -1
- package/dist/js/angular/ttyg/templates/agent-select-menu.html +1 -1
- package/dist/js/angular/ttyg/templates/chat-item-detail.html +1 -1
- package/dist/js/angular/ttyg/templates/chat-list.html +1 -1
- package/dist/js/angular/ttyg/templates/chat-panel.html +1 -1
- package/dist/js/angular/ttyg/templates/modal/agent-instructions-explain-modal.html +1 -1
- package/dist/js/angular/ttyg/templates/modal/agent-settings-modal.html +2 -2
- package/dist/js/angular/ttyg/templates/no-agents-view.html +1 -1
- package/dist/js/angular/ttyg/templates/ttyg.html +1 -1
- package/dist/license-checker.json +2 -2
- package/dist/pages/aclmanagement.html +2 -2
- 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 +1 -1
- 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 +8 -8
- package/dist/pages/graphs-visualizations.html +7 -7
- package/dist/pages/guides.html +1 -1
- package/dist/pages/import.html +2 -2
- package/dist/pages/jdbc-create.html +1 -1
- package/dist/pages/monitor/backup-and-restore.html +1 -1
- package/dist/pages/monitor/queries.html +1 -1
- package/dist/pages/monitor/resources.html +1 -1
- package/dist/pages/namespaces.html +2 -2
- 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 +1 -1
- package/dist/pages/repository.html +1 -1
- package/dist/pages/similarity-indexes.html +1 -1
- package/dist/pages/sparql-editor.html +1 -1
- package/dist/pages/sparql-template-create.html +1 -1
- package/dist/pages/ux-test1.html +2 -2
- package/dist/pages/webapi.html +2 -2
- package/dist/res/swagger5/index.html +12 -12
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[33,113,159,160,167,172,177,392],{121:function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function o(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,i(r.key),r)}}function i(e){var t=function(e,t){if("object"!=r(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var o=n.call(e,t||"default");if("object"!=r(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==r(t)?t:t+""}n.r(t),n.d(t,"UrlUtils",(function(){return u}));var a=/^(h|ht|htt|http|https|http:|https:|http:\/|https:\/|http:\/\/|https:\/\/|https?:\/\/[\S]*)$/i,c=/^(f|ft|ftp|ftps|ftp:|ftps:|ftp:\/|ftps:\/|ftp:\/\/|ftps:\/\/[\S]*)$/i,u=function(){return e=function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)},n=[{key:"isValidUrl",value:function(e){return a.test(e)||c.test(e)}},{key:"doesNotContain",value:function(e,t){return!new RegExp(t).test(e)}},{key:"doesNotUseProtocol",value:function(e,t){return!new RegExp("^("+t.join("|")+")://","i").test(e)}}],(t=null)&&o(e.prototype,t),n&&o(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,n}()},130:function(e,t,n){"use strict";n.r(t);var r=n(121);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.UrlUtils.isValidUrl(t))return!1;if(n.exclude&&!r.UrlUtils.doesNotContain(t,n.exclude))return!1;if(n.excludeProtocol){var i=n.excludeProtocol.split(",");if(!r.UrlUtils.doesNotUseProtocol(t,i))return!1}return!0}}}}))},161:function(e,t){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){var t=/^[\x21-\x7E]*$/.test(e);return r.$setValidity("asciiValidator",t),e}r.$parsers.push(o),r.$formatters.push(o)}}}))},162:function(e,t){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){var t=n.minLength?parseInt(n.minLength,10):0,o=n.maxLength?parseInt(n.maxLength,10):1/0,i=e&&e.length>=t&&e.length<=o;return r.$setValidity("lengthValidator",i),e}r.$parsers.push(o),r.$formatters.push(o)}}}))},193:function(e,t,n){"use strict";n.r(t);var r=n(131);function o(e,t){return{restrict:"E",templateUrl:"js/angular/clustermanagement/templates/cluster-configuration/cluster-properties.html",scope:{currentNode:"=",clusterModel:"=",clusterConfiguration:"="},link:function(n){n.isAdmin=!1,n.showEditConfigurationDialog=function(){t.open({templateUrl:"js/angular/clustermanagement/templates/modal/cluster-edit-dialog.html",controller:"EditClusterCtrl",size:"lg",resolve:{data:function(){return{clusterConfiguration:n.clusterConfiguration}}}}).result.finally((function(){n.$emit(r.UPDATE_CLUSTER,{force:!0})}))},n.showDeleteDialog=function(){t.open({templateUrl:"js/angular/clustermanagement/templates/modal/cluster-delete-dialog.html",controller:"DeleteClusterCtrl"}).result.then((function(e){n.$emit(r.DELETE_CLUSTER,{force:e})}))};n.isAdmin=e.isAuthenticated()&&e.isAdmin()}}}angular.module("graphdb.framework.clustermanagement.directives.cluster-configuration.cluster-properties",[]).directive("clusterProperties",o),o.$inject=["$jwtAuth","$uibModal"]},194:function(e,t){function n(){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",n),n.$inject=[]},195:function(e,t,n){"use strict";n.r(t);n(161),n(162);var r=n(145),o=n(116),i={minLen:"3",maxLen:"255"};function a(e,t,n,a,c,u,s){return{restrict:"E",templateUrl:"js/angular/clustermanagement/templates/cluster-configuration/multi-region.html",scope:{clusterModel:"=",clusterConfiguration:"="},link:function(l){var d=[];l.topology=void 0,l.TopologyState=o.TopologyState,l.isAdmin=!1,l.addingTag=!1,l.loaderTimeout=void 0,l.secondaryTag=void 0,l.TagLengthConstraints=i,l.add=function(){l.addingTag=!0},l.cancel=function(){l.addingTag=!1},l.createTag=function(e){var n={tag:e};return p(!0),u.addCusterTag(n).then((function(){a.success(t.instant("cluster_management.cluster_configuration_multi_region.created_tag",{tag:e}))})).catch((function(e){var n=getError(e);a.error(n,t.instant("cluster_management.cluster_configuration_multi_region.error.creating"))})).finally((function(){l.addingTag=!1,p(!1)}))},l.deleteTag=function(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((function(){return p(!0),u.deleteClusterTag(e)})).then((function(){return a.success(t.instant("cluster_management.cluster_configuration_multi_region.deleted_tag",{tag:e}))})).catch((function(e){if("cancel"!==e&&"escape key press"!==e){var n=getError(e);a.error(n,t.instant("cluster_management.cluster_configuration_multi_region.error.deleting"))}})).finally((function(){return p(!1)}))},l.enableSecondaryMode=function(){l.addingTag=!1;var e={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(e).result.then((function(){return f()})).then((function(e){return p(!0),u.enableSecondaryMode(e)})).then((function(){return a.success(t.instant("cluster_management.cluster_configuration_multi_region.secondary_enabled"))})).catch((function(e){if("cancel"!==e&&"escape key press"!==e){var n=getError(e);a.error(n,t.instant("cluster_management.cluster_configuration_multi_region.error.secondary"))}})).finally((function(){return p(!1)}))},l.disableSecondaryMode=function(){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((function(){return p(!0),u.disableSecondaryMode()})).then((function(){return a.success(t.instant("cluster_management.cluster_configuration_multi_region.disabled_secondary_mode"))})).catch((function(e){if("cancel"!==e&&"escape key press"!==e){var n=getError(e);a.error(n,t.instant("cluster_management.cluster_configuration_multi_region.error.disabling"))}})).finally((function(){return p(!1)}))};var f=function(){var 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=function(e){return e.stopPropagation()},e.ok=function(){t.close({primaryNode:e.rpcAddress,tag:e.tag})},e.cancel=function(){t.dismiss("cancel")}}],size:"lg",warning:!0,backdrop:"static"};return c.openCustomModal(e).result},g=function(e){p(!0),u.getClusterConfig().then((function(t){l.secondaryTag=r.ClusterConfiguration.fromJSON(t.data).secondaryTag,function(e){var t=e.nodes.find((function(e){return e.nodeState===o.NodeState.LEADER}));l.topology=t.topologyStatus}(r.ClusterModel.fromJSON(e))})).catch((function(e){var n=getError(e);a.error(n,t.instant("cluster_management.cluster_configuration_multi_region.error.disabling"))})).finally((function(){return p(!1)}))},m=function(e){e||(l.addingTag=!1)},p=function(e,t){n.cancel(l.loaderTimeout),e?(l.loaderMessage=t,l.loaderTimeout=n((function(){l.loader=e}),150)):l.loader=!1};l.$on("$destroy",(function(){d.forEach((function(e){return e()}))}));l.isAdmin=e.isAuthenticated()&&e.isAdmin(),d.push(l.$watch("clusterModel",(function(e,t){e!==t&&g(e)}),!0)),d.push(s.onShowClusterConfigurationPanel(m)),g(l.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",a),a.$inject=["$jwtAuth","$translate","$timeout","toastr","ModalService","ClusterRestService","ClusterViewContextService"]},263:function(e,t,n){"use strict";n.r(t);n(15),n(264);var r=n(154),o=n(24),i=n(131);function a(e){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var c=240,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"}},s={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,l,d,f,g,m){return{restrict:"E",scope:{clusterModel:"="},link:function(p,h){var v,_,y,w,C,b=angular.element(e),S=[],k=U(),E=x(),N=Math.min(k,E)/2-100,M=k/2,T=E/2;function A(){var e=m.getClusterViewD3Container();k=U(),E=x(),e.attr("width",k),e.attr("height",E),I()}function L(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";Object.keys(e).forEach((function(n){var r="";t&&(r+=t),r+=".".concat(n);var o=e[n];"string"==typeof o?e[n]=d.instant("cluster_management.cluster_graphical_view".concat(r)):"object"===a(o)&&L(o,r)}))}function U(){var r="collapsedMenu"===t.get(n.MENU_STATE);return c=r?70:240,Math.max(Math.floor(.95*(e.innerWidth-c)),600)}function x(){return Math.max(.95*(e.innerHeight-250),675)}function j(){r.updateClusterZoneLabels(_,y,u),Object.keys(s).forEach((function(e){d3.select("#".concat(e)).text(function(e){return u[s[e]]}(e))}))}function P(){N=Math.min(k,E)/2-100,M=k/2,T=E/2,r.moveElement(y,M,T),y.select(".cluster-zone").attr("r",N)}function R(e){p.$emit(i.CLICK_IN_VIEW,e.target)}function I(){P(),_!==p.clusterModel.hasCluster&&function(e){r.setCreateClusterZone(e,y,u,v),!e&&v&&y.on("mouseup",(function(){p.$emit(i.CREATE_CLUSTER)}))}(_=!!p.clusterModel.hasCluster);var e=function(){var e=Object(o.cloneDeep)(p.clusterModel.nodes)||[];return e.forEach((function(e){if(e.hostname=l.shortenIri(e.endpoint),!Object(o.isEmpty)(e.recoveryStatus)){var t="cluster_management.cluster_graphical_view.recovery_state.".concat(e.recoveryStatus.state.toLowerCase());e.recoveryStatus.affectedNodes&&e.recoveryStatus.affectedNodes.length>0&&(t+="_with_affected_node"),e.recoveryStatus.message=d.instant(t,{node:e.recoveryStatus.affectedNodes.join(", ")})}})),e}();!function(e){var t=w.selectAll("#node-group").data(e,(function(e){return e.address})),n=r.createNodes(t,45);n.on("click",(function(e,t){p.$emit(i.NODE_SELECTED,t);var n=d3.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.updateNodes(n),r.positionNodesOnClusterZone(n,M,T,N)}(e),function(e,t){var n=C.selectAll(".link").data(e,(function(e){return e.id}));r.createLinks(n),r.updateLinks(n,t)}(Object(o.cloneDeep)(p.clusterModel.links)||[],e)}p.width=function(){return k},p.height=function(){return E};p.$on("$destroy",(function(){b.unbind("resize",A),b.unbind("mousedown",R),r.removeEventListeners(),S.forEach((function(e){return e()}))})),v=f.isAdmin(),b.bind("resize",A),b.bind("mousedown",R),S.push(g.$on("$translateChangeSuccess",(function(){L(u),j()}))),S.push(p.$on(i.MODEL_UPDATED,(function(){I()}))),L(u),function(e){var t=r.createClusterSvgElement(h[0]).attr("width",k).attr("height",E);y=r.createClusterZone(t,e),C=t.append("g").attr("id","links-group"),w=t.append("g").attr("id","nodes-group"),r.addArrowHead(t,r.ARROW_CONFIG.BIG),r.addArrowHead(t,r.ARROW_CONFIG.SMALL),m.updateClusterViewD3Container(t)}(!(!p.clusterModel.nodes||!p.clusterModel.nodes.length)),I()}}}])},266:function(e,t,n){"use strict";n.r(t);n(193),n(194),n(195);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"];var r={PROPERTIES:"properties",NODES:"nodes",MULTI_REGION:"multi_region"};function o(e,t,n,o,i){return{restrict:"E",templateUrl:"js/angular/clustermanagement/templates/cluster-configuration/cluster-configuration.html",scope:{currentNode:"=",clusterModel:"=",clusterConfiguration:"="},link:function(e){var t=[];e.CONFIGURATION_TABS=r,e.activeTab=r.PROPERTIES,e.closeClusterConfigurationPanel=function(){i.hideClusterConfigurationPanel()},e.switchTab=function(t,n){e.activeTab=n};e.$on("$destroy",(function(){t.forEach((function(e){return e()})),e.closeClusterConfigurationPanel()}));t.push(i.onShowClusterConfigurationPanel((function(t){t||(e.activeTab=r.PROPERTIES)})))}}}},267:function(e,t,n){"use strict";n.r(t);var r=n(145);function o(e,t,n,o,i,a,c){return{restrict:"E",templateUrl:"js/angular/clustermanagement/templates/cluster-nodes-configuration.html",link:function(n){var o=[];n.rowHeights={},n.editedNodeIndex=void 0,n.allSuggestions=[],n.loader=!1,n.errors=[],n.addNewLocation=!1,n.hasCluster=!1,n.addNode=function(){n.addNewLocation=!0,n.newLocation=new r.Location,t((function(){var e=document.querySelector("input[name='location']");e&&e.focus()}),0)},n.filterSuggestions=function(e){var t=e.endpoint&&e.endpoint.toLowerCase();t?(n.suggestions=n.allSuggestions.filter((function(e){return e.toLowerCase().includes(t)})),n.showDropdown=!0):(n.suggestions=[],n.showDropdown=!1)},n.selectSuggestion=function(e,t){e.endpoint=t,n.suggestions=[],n.showDropdown=!1},n.hideSuggestions=function(){t((function(){n.showDropdown=!1}),200)},n.saveNode=function(e){var t=a.getAvailable(!0);!function(e,t){t?a.replace(t,e):a.addLocation(e);i()}(a.findByEndpoint(t,e)||new r.Location(e),a.getPendingReplace())},n.deleteNode=function(t,n){c.openSimpleModal({title:e.instant("location.confirm.detach"),message:e.instant("location.confirm.detach.warning",{uri:n.endpoint}),warning:!0}).result.then((function(){a.deleteFromCluster(n.item)}))},n.replaceNode=function(t,r){c.openSimpleModal({title:e.instant("location.change.confirm"),message:e.instant("location.change.confirm.warning"),warning:!0}).result.then((function(){a.setPendingReplace(r.item),n.editedNodeIndex=t}))},n.isClusterConfigurationValid=function(){var e=void 0===n.editedNodeIndex,t=!1===n.addNewLocation,r=a.hasValidNodesCount(),o=n.form.$valid;return e&&t&&r&&o},n.setLoader=function(e,r){t.cancel(n.loaderTimeout),e?n.loaderTimeout=t((function(){n.loader=e,n.loaderMessage=r}),300):n.loader=!1},n.getAdvancedOptionsClass=function(){var e=document.getElementById("advancedOptions");if(e){var t=e.getAttribute("aria-expanded");if(t&&"true"===t)return"fa fa-angle-down"}return"fa fa-angle-right"},n.cancel=function(){n.editedNodeIndex=void 0,n.addNewLocation=!1,a.emitUpdateClusterView()},n.restoreNode=function(e){a.restoreNode(e.item)};var i=function(){a.setPendingReplace(void 0),n.editedNodeIndex=void 0,n.addNewLocation=!1},u=n.$watchGroup(["editedNodeIndex","addNewLocation","clusterConfiguration.electionMinTimeout","clusterConfiguration.electionRangeTimeout","clusterConfiguration.heartbeatInterval","clusterConfiguration.messageSizeKB","clusterConfiguration.verificationTimeout","clusterConfiguration.transactionLogMaximumSizeGB"],(function(e,t){var r=n.isClusterConfigurationValid();a.updateClusterValidity(r)}));o.push(u),o.push(a.onClusterViewChanged((function(e){n.hasCluster=a.hasCluster(),n.viewModel=a.getViewModel(),n.clusterNodesEndpoints=n.viewModel.map((function(e){return e.endpoint})),n.clusterConfiguration=a.getClusterConfiguration(),n.allSuggestions=a.getAvailableNodeEndpoints(),n.canDeleteNode=a.canDeleteNode()}))),n.$on("$destroy",(function(){o.forEach((function(e){return e()}))}))}}}angular.module("graphdb.framework.clustermanagement.directives.cluster-nodes-configuration",[]).directive("clusterNodesConfiguration",o),o.$inject=["$translate","$timeout","productInfo","toastr","RemoteLocationsService","ClusterContextService","ModalService"]},268:function(e,t){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)}}}}))},391:function(e,t,n){"use strict";n.r(t);n(10),n(52),n(374),n(263),n(266),n(267),n(53),n(634),n(372),n(130),n(268);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"])},634:function(e,t,n){var r,o;r=[n(644)],void 0===(o=function(){function e(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 t(e,t){for(var n in t)e.attr(n,t[n]);return e}return"undefined"==typeof d3&&(d3=n(644)),d3.selection.prototype.attrs=function(n){return("function"==typeof n?e:t)(this,n)},d3.selection.prototype.moveToFront=function(){return this.each((function(){d3.select(this.parentNode.appendChild(this))}))},d3.selection.prototype.moveToBack=function(){return this.each((function(){var e=this.parentNode.firstChild;e&&this.parentNode.insertBefore(this,e)}))},d3}.apply(t,r))||(e.exports=o)}}]);
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[33,113,159,160,167,172,177,392],{121:function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function o(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,i(r.key),r)}}function i(e){var t=function(e,t){if("object"!=r(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var o=n.call(e,t||"default");if("object"!=r(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==r(t)?t:t+""}n.r(t),n.d(t,"UrlUtils",(function(){return u}));var a=/^(h|ht|htt|http|https|http:|https:|http:\/|https:\/|http:\/\/|https:\/\/|https?:\/\/[\S]*)$/i,c=/^(f|ft|ftp|ftps|ftp:|ftps:|ftp:\/|ftps:\/|ftp:\/\/|ftps:\/\/[\S]*)$/i,u=function(){return e=function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)},n=[{key:"isValidUrl",value:function(e){return a.test(e)||c.test(e)}},{key:"doesNotContain",value:function(e,t){return!new RegExp(t).test(e)}},{key:"doesNotUseProtocol",value:function(e,t){return!new RegExp("^("+t.join("|")+")://","i").test(e)}}],(t=null)&&o(e.prototype,t),n&&o(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,n}()},130:function(e,t,n){"use strict";n.r(t);var r=n(121);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.UrlUtils.isValidUrl(t))return!1;if(n.exclude&&!r.UrlUtils.doesNotContain(t,n.exclude))return!1;if(n.excludeProtocol){var i=n.excludeProtocol.split(",");if(!r.UrlUtils.doesNotUseProtocol(t,i))return!1}return!0}}}}))},161:function(e,t){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){var t=/^[\x21-\x7E]*$/.test(e);return r.$setValidity("asciiValidator",t),e}r.$parsers.push(o),r.$formatters.push(o)}}}))},162:function(e,t){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){var t=n.minLength?parseInt(n.minLength,10):0,o=n.maxLength?parseInt(n.maxLength,10):1/0,i=e&&e.length>=t&&e.length<=o;return r.$setValidity("lengthValidator",i),e}r.$parsers.push(o),r.$formatters.push(o)}}}))},193:function(e,t,n){"use strict";n.r(t);var r=n(131);function o(e,t){return{restrict:"E",templateUrl:"js/angular/clustermanagement/templates/cluster-configuration/cluster-properties.html",scope:{currentNode:"=",clusterModel:"=",clusterConfiguration:"="},link:function(n){n.isAdmin=!1,n.showEditConfigurationDialog=function(){t.open({templateUrl:"js/angular/clustermanagement/templates/modal/cluster-edit-dialog.html",controller:"EditClusterCtrl",size:"lg",resolve:{data:function(){return{clusterConfiguration:n.clusterConfiguration}}}}).result.finally((function(){n.$emit(r.UPDATE_CLUSTER,{force:!0})}))},n.showDeleteDialog=function(){t.open({templateUrl:"js/angular/clustermanagement/templates/modal/cluster-delete-dialog.html",controller:"DeleteClusterCtrl"}).result.then((function(e){n.$emit(r.DELETE_CLUSTER,{force:e})}))};n.isAdmin=e.isAuthenticated()&&e.isAdmin()}}}angular.module("graphdb.framework.clustermanagement.directives.cluster-configuration.cluster-properties",[]).directive("clusterProperties",o),o.$inject=["$jwtAuth","$uibModal"]},194:function(e,t){function n(){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",n),n.$inject=[]},195:function(e,t,n){"use strict";n.r(t);n(161),n(162);var r=n(145),o=n(116),i={minLen:"3",maxLen:"255"};function a(e,t,n,a,c,u,s){return{restrict:"E",templateUrl:"js/angular/clustermanagement/templates/cluster-configuration/multi-region.html",scope:{clusterModel:"=",clusterConfiguration:"="},link:function(l){var d=[];l.topology=void 0,l.TopologyState=o.TopologyState,l.isAdmin=!1,l.addingTag=!1,l.loaderTimeout=void 0,l.secondaryTag=void 0,l.TagLengthConstraints=i,l.add=function(){l.addingTag=!0},l.cancel=function(){l.addingTag=!1},l.createTag=function(e){var n={tag:e};return p(!0),u.addCusterTag(n).then((function(){a.success(t.instant("cluster_management.cluster_configuration_multi_region.created_tag",{tag:e}))})).catch((function(e){var n=getError(e);a.error(n,t.instant("cluster_management.cluster_configuration_multi_region.error.creating"))})).finally((function(){l.addingTag=!1,p(!1)}))},l.deleteTag=function(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((function(){return p(!0),u.deleteClusterTag(e)})).then((function(){return a.success(t.instant("cluster_management.cluster_configuration_multi_region.deleted_tag",{tag:e}))})).catch((function(e){if("cancel"!==e&&"escape key press"!==e){var n=getError(e);a.error(n,t.instant("cluster_management.cluster_configuration_multi_region.error.deleting"))}})).finally((function(){return p(!1)}))},l.enableSecondaryMode=function(){l.addingTag=!1;var e={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(e).result.then((function(){return f()})).then((function(e){return p(!0),u.enableSecondaryMode(e)})).then((function(){return a.success(t.instant("cluster_management.cluster_configuration_multi_region.secondary_enabled"))})).catch((function(e){if("cancel"!==e&&"escape key press"!==e){var n=getError(e);a.error(n,t.instant("cluster_management.cluster_configuration_multi_region.error.secondary"))}})).finally((function(){return p(!1)}))},l.disableSecondaryMode=function(){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((function(){return p(!0),u.disableSecondaryMode()})).then((function(){return a.success(t.instant("cluster_management.cluster_configuration_multi_region.disabled_secondary_mode"))})).catch((function(e){if("cancel"!==e&&"escape key press"!==e){var n=getError(e);a.error(n,t.instant("cluster_management.cluster_configuration_multi_region.error.disabling"))}})).finally((function(){return p(!1)}))};var f=function(){var 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=function(e){return e.stopPropagation()},e.ok=function(){t.close({primaryNode:e.rpcAddress,tag:e.tag})},e.cancel=function(){t.dismiss("cancel")}}],size:"lg",warning:!0,backdrop:"static"};return c.openCustomModal(e).result},g=function(e){p(!0),u.getClusterConfig().then((function(t){l.secondaryTag=r.ClusterConfiguration.fromJSON(t.data).secondaryTag,function(e){var t=e.nodes.find((function(e){return e.nodeState===o.NodeState.LEADER}));l.topology=t.topologyStatus}(r.ClusterModel.fromJSON(e))})).catch((function(e){var n=getError(e);a.error(n,t.instant("cluster_management.cluster_configuration_multi_region.error.disabling"))})).finally((function(){return p(!1)}))},m=function(e){e||(l.addingTag=!1)},p=function(e,t){n.cancel(l.loaderTimeout),e?(l.loaderMessage=t,l.loaderTimeout=n((function(){l.loader=e}),150)):l.loader=!1};l.$on("$destroy",(function(){d.forEach((function(e){return e()}))}));l.isAdmin=e.isAuthenticated()&&e.isAdmin(),d.push(l.$watch("clusterModel",(function(e,t){e!==t&&g(e)}),!0)),d.push(s.onShowClusterConfigurationPanel(m)),g(l.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",a),a.$inject=["$jwtAuth","$translate","$timeout","toastr","ModalService","ClusterRestService","ClusterViewContextService"]},263:function(e,t,n){"use strict";n.r(t);n(15),n(264);var r=n(154),o=n(24),i=n(131);function a(e){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var c=240,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"}},s={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,l,d,f,g,m){return{restrict:"E",scope:{clusterModel:"="},link:function(p,h){var v,_,y,w,C,b=angular.element(e),S=[],k=U(),E=x(),N=Math.min(k,E)/2-100,M=k/2,T=E/2;function A(){var e=m.getClusterViewD3Container();k=U(),E=x(),e.attr("width",k),e.attr("height",E),I()}function L(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";Object.keys(e).forEach((function(n){var r="";t&&(r+=t),r+=".".concat(n);var o=e[n];"string"==typeof o?e[n]=d.instant("cluster_management.cluster_graphical_view".concat(r)):"object"===a(o)&&L(o,r)}))}function U(){var r="collapsedMenu"===t.get(n.MENU_STATE);return c=r?70:240,Math.max(Math.floor(.95*(e.innerWidth-c)),600)}function x(){return Math.max(.95*(e.innerHeight-250),675)}function j(){r.updateClusterZoneLabels(_,y,u),Object.keys(s).forEach((function(e){d3.select("#".concat(e)).text(function(e){return u[s[e]]}(e))}))}function P(){N=Math.min(k,E)/2-100,M=k/2,T=E/2,r.moveElement(y,M,T),y.select(".cluster-zone").attr("r",N)}function R(e){p.$emit(i.CLICK_IN_VIEW,e.target)}function I(){P(),_!==p.clusterModel.hasCluster&&function(e){r.setCreateClusterZone(e,y,u,v),!e&&v&&y.on("mouseup",(function(){p.$emit(i.CREATE_CLUSTER)}))}(_=!!p.clusterModel.hasCluster);var e=function(){var e=Object(o.cloneDeep)(p.clusterModel.nodes)||[];return e.forEach((function(e){if(e.hostname=l.shortenIri(e.endpoint),!Object(o.isEmpty)(e.recoveryStatus)){var t="cluster_management.cluster_graphical_view.recovery_state.".concat(e.recoveryStatus.state.toLowerCase());e.recoveryStatus.affectedNodes&&e.recoveryStatus.affectedNodes.length>0&&(t+="_with_affected_node"),e.recoveryStatus.message=d.instant(t,{node:e.recoveryStatus.affectedNodes.join(", ")})}})),e}();!function(e){var t=w.selectAll("#node-group").data(e,(function(e){return e.address})),n=r.createNodes(t,45);n.on("click",(function(e,t){p.$emit(i.NODE_SELECTED,t);var n=d3.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.updateNodes(n),r.positionNodesOnClusterZone(n,M,T,N)}(e),function(e,t){var n=C.selectAll(".link").data(e,(function(e){return e.id}));r.createLinks(n),r.updateLinks(n,t)}(Object(o.cloneDeep)(p.clusterModel.links)||[],e)}p.width=function(){return k},p.height=function(){return E};p.$on("$destroy",(function(){b.unbind("resize",A),b.unbind("mousedown",R),r.removeEventListeners(),S.forEach((function(e){return e()}))})),v=f.isAdmin(),b.bind("resize",A),b.bind("mousedown",R),S.push(g.$on("$translateChangeSuccess",(function(){L(u),j()}))),S.push(p.$on(i.MODEL_UPDATED,(function(){I()}))),L(u),function(e){var t=r.createClusterSvgElement(h[0]).attr("width",k).attr("height",E);y=r.createClusterZone(t,e),C=t.append("g").attr("id","links-group"),w=t.append("g").attr("id","nodes-group"),r.addArrowHead(t,r.ARROW_CONFIG.BIG),r.addArrowHead(t,r.ARROW_CONFIG.SMALL),m.updateClusterViewD3Container(t)}(!(!p.clusterModel.nodes||!p.clusterModel.nodes.length)),I()}}}])},266:function(e,t,n){"use strict";n.r(t);n(193),n(194),n(195);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"];var r={PROPERTIES:"properties",NODES:"nodes",MULTI_REGION:"multi_region"};function o(e,t,n,o,i){return{restrict:"E",templateUrl:"js/angular/clustermanagement/templates/cluster-configuration/cluster-configuration.html",scope:{currentNode:"=",clusterModel:"=",clusterConfiguration:"="},link:function(e){var t=[];e.CONFIGURATION_TABS=r,e.activeTab=r.PROPERTIES,e.closeClusterConfigurationPanel=function(){i.hideClusterConfigurationPanel()},e.switchTab=function(t,n){e.activeTab=n};e.$on("$destroy",(function(){t.forEach((function(e){return e()})),e.closeClusterConfigurationPanel()}));t.push(i.onShowClusterConfigurationPanel((function(t){t||(e.activeTab=r.PROPERTIES)})))}}}},267:function(e,t,n){"use strict";n.r(t);var r=n(145);function o(e,t,n,o,i,a,c){return{restrict:"E",templateUrl:"js/angular/clustermanagement/templates/cluster-nodes-configuration.html",link:function(n){var o=[];n.rowHeights={},n.editedNodeIndex=void 0,n.allSuggestions=[],n.loader=!1,n.errors=[],n.addNewLocation=!1,n.hasCluster=!1,n.addNode=function(){n.addNewLocation=!0,n.newLocation=new r.Location,t((function(){var e=document.querySelector("input[name='location']");e&&e.focus()}),0)},n.filterSuggestions=function(e){var t=e.endpoint&&e.endpoint.toLowerCase();t?(n.suggestions=n.allSuggestions.filter((function(e){return e.toLowerCase().includes(t)})),n.showDropdown=!0):(n.suggestions=[],n.showDropdown=!1)},n.selectSuggestion=function(e,t){e.endpoint=t,n.suggestions=[],n.showDropdown=!1},n.hideSuggestions=function(){t((function(){n.showDropdown=!1}),200)},n.saveNode=function(e){var t=a.getAvailable(!0);!function(e,t){t?a.replace(t,e):a.addLocation(e);i()}(a.findByEndpoint(t,e)||new r.Location(e),a.getPendingReplace())},n.deleteNode=function(t,n){c.openSimpleModal({title:e.instant("location.confirm.detach"),message:e.instant("location.confirm.detach.warning",{uri:n.endpoint}),warning:!0}).result.then((function(){a.deleteFromCluster(n.item)}))},n.replaceNode=function(t,r){c.openSimpleModal({title:e.instant("location.change.confirm"),message:e.instant("location.change.confirm.warning"),warning:!0}).result.then((function(){a.setPendingReplace(r.item),n.editedNodeIndex=t}))},n.isClusterConfigurationValid=function(){var e=void 0===n.editedNodeIndex,t=!1===n.addNewLocation,r=a.hasValidNodesCount(),o=n.form.$valid;return e&&t&&r&&o},n.setLoader=function(e,r){t.cancel(n.loaderTimeout),e?n.loaderTimeout=t((function(){n.loader=e,n.loaderMessage=r}),300):n.loader=!1},n.getAdvancedOptionsClass=function(){var e=document.getElementById("advancedOptions");if(e){var t=e.getAttribute("aria-expanded");if(t&&"true"===t)return"fa fa-angle-down"}return"fa fa-angle-right"},n.cancel=function(){n.editedNodeIndex=void 0,n.addNewLocation=!1,i(),a.emitUpdateClusterView()},n.restoreNode=function(e){a.restoreNode(e.item)};var i=function(){a.setPendingReplace(void 0),n.editedNodeIndex=void 0,n.addNewLocation=!1},u=n.$watchGroup(["editedNodeIndex","addNewLocation","clusterConfiguration.electionMinTimeout","clusterConfiguration.electionRangeTimeout","clusterConfiguration.heartbeatInterval","clusterConfiguration.messageSizeKB","clusterConfiguration.verificationTimeout","clusterConfiguration.transactionLogMaximumSizeGB"],(function(e,t){var r=n.isClusterConfigurationValid();a.updateClusterValidity(r)}));o.push(u),o.push(a.onClusterViewChanged((function(e){n.hasCluster=a.hasCluster(),n.viewModel=a.getViewModel(),n.clusterNodesEndpoints=n.viewModel.map((function(e){return e.endpoint})),n.clusterConfiguration=a.getClusterConfiguration(),n.allSuggestions=a.getAvailableNodeEndpoints(),n.canDeleteNode=a.canDeleteNode()}))),n.$on("$destroy",(function(){o.forEach((function(e){return e()}))}))}}}angular.module("graphdb.framework.clustermanagement.directives.cluster-nodes-configuration",[]).directive("clusterNodesConfiguration",o),o.$inject=["$translate","$timeout","productInfo","toastr","RemoteLocationsService","ClusterContextService","ModalService"]},268:function(e,t){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)}}}}))},391:function(e,t,n){"use strict";n.r(t);n(10),n(52),n(374),n(263),n(266),n(267),n(53),n(634),n(372),n(130),n(268);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"])},634:function(e,t,n){var r,o;r=[n(644)],void 0===(o=function(){function e(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 t(e,t){for(var n in t)e.attr(n,t[n]);return e}return"undefined"==typeof d3&&(d3=n(644)),d3.selection.prototype.attrs=function(n){return("function"==typeof n?e:t)(this,n)},d3.selection.prototype.moveToFront=function(){return this.each((function(){d3.select(this.parentNode.appendChild(this))}))},d3.selection.prototype.moveToBack=function(){return this.each((function(){var e=this.parentNode.firstChild;e&&this.parentNode.insertBefore(this,e)}))},d3}.apply(t,r))||(e.exports=o)}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[410],{546:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/cluster-nodes-configuration.css?v=3.0.2" rel="stylesheet"/>\n\n<div onto-loader-new ng-if="loader" class="create-cluster-loader" message="getLoaderMessage" size="100"></div>\n<div class="add-node-wrapper pull-right mb-1">\n <button ng-click="addNode()" ng-disabled="editedNodeIndex !== undefined"\n class="btn btn-primary add-node-btn"\n gdb-tooltip="{{\'cluster_management.update_cluster_group_dialog.actions.add_node_tooltip\' | translate}}">\n <i class="fa fa-plus"></i> {{\'cluster_management.update_cluster_group_dialog.actions.add_node\' |\n translate}}\n </button>\n</div>\n<div class="table-responsive">\n <form name="form" id="updateClusterGroupForm">\n <table class="cluster-group table table-striped table-hover cluster-group-table" aria-describedby="cluster group table">\n <thead>\n <tr class="labels-row">\n <th scope="col" class="index-column">\n {{\'cluster_management.update_cluster_group_dialog.column.index\' | translate}}\n </th>\n <th scope="col" class="location-column">\n {{\'cluster_management.update_cluster_group_dialog.column.location\' | translate}}\n </th>\n <th scope="col" class="info-column">\n {{\'cluster_management.update_cluster_group_dialog.column.info\' | translate}}\n </th>\n <th scope="col" class="status-column">\n {{\'cluster_management.update_cluster_group_dialog.column.status\' | translate}}\n </th>\n <th scope="col" class="empty-column"></th>\n <th scope="col" class="actions-column"></th>\n </tr>\n </thead>\n <tbody>\n <tr ng-if="!viewModel.length">\n <td colspan="5" class="no-data">\n {{\'cluster_management.update_cluster_group_dialog.messages.no_cluster\' | translate}}\n </td>\n </tr>\n\n <tr ng-repeat-start="node in viewModel track by $index" ng-if="0"></tr>\n <tr ng-if="$index !== editedNodeIndex" class="node preview-node-row" data-endpoint="{{node.endpoint}}"\n capture-height="$index"\n ng-class="{\'selected\': $index === selectedNode || $index === editedNodeIndex}">\n <td class="index-cell"><span ng-if="!node.isDeleted">{{node.index + 1}}</span></td>\n <td class="location-cell data" ng-class="{\'deleting\': node.isDeleted, \'adding\': !node.item.address}">\n <div class="location-item" id="endpoint-{{::node.index}}">\n <span class="text-only">{{node.item.endpoint}}</span>\n <copy-to-clipboard\n text-to-copy="{{node.item.endpoint}}"\n custom-tooltip-style="true"\n ng-attr-target-selector="#endpoint-{{::node.index}}"\n custom-tooltip-text="{{\'cluster_management.update_cluster_group_dialog.copy_to_clipboard.copied.tooltip\' | translate}}"></copy-to-clipboard>\n </div>\n </td>\n <td class="info-cell data">\n <span ng-if="node.isLocal">\n {{\'cluster_management.update_cluster_group_dialog.current_node\' | translate}}<span ng-if="node.item.nodeState">, </span>\n </span>\n\n <span ng-if="node.item.nodeState">\n {{ (\'cluster_management.update_cluster_group_dialog.\' + node.item.nodeState.toLowerCase()) |\n translate }}\n </span>\n </td>\n <td class="status-cell data">\n <div ng-if="!node.item.address" class="adding">\n <i class="fa fa-circle-check status-icon"></i>\n {{\'cluster_management.update_cluster_group_dialog.new_node\' | translate}}\n </div>\n <div ng-if="node.isDeleted" class="deleting">\n <i class="fa fa-xmark status-icon"></i>\n {{\'cluster_management.update_cluster_group_dialog.deleted_node\' | translate}}\n </div>\n </td>\n <td class="empty-cell"></td>\n <td class="actions-cell">\n <div ng-if="editedNodeIndex === undefined && !node.isDeleted" class="actions-group">\n <button ng-click="deleteNode($index, node)" ng-disabled="(hasCluster && !canDeleteNode) || (!hasCluster && node.isLocal)"\n class="btn btn-link delete-node-btn secondary"\n gdb-tooltip="{{ (hasCluster && canDeleteNode) || (!hasCluster && !node.isLocal) ?\n (\'cluster_management.update_cluster_group_dialog.actions.delete_node\' | translate) :\n (\'cluster_management.update_cluster_group_dialog.actions.cannot_delete_node\' | translate) }}"\n title-class="delete-node-tooltip">\n <i class="fa fa-xmark"></i>\n </button>\n <button ng-click="replaceNode($index, node)" class="btn btn-link replace-node-btn" ng-disabled="!hasCluster && node.isLocal"\n gdb-tooltip="{{hasCluster || !node.isLocal ?\n (\'cluster_management.update_cluster_group_dialog.actions.replace_node\' | translate) :\n (\'cluster_management.update_cluster_group_dialog.actions.cannot_replace_node\' | translate) }}">\n <i class="fa fa-arrow-right-arrow-left"></i>\n </button>\n </div>\n <div ng-if="editedNodeIndex === undefined && node.isDeleted" class="actions-group">\n <button ng-click="restoreNode(node)"\n class="btn btn-link restore-node-btn secondary"\n gdb-tooltip="{{\'cluster_management.update_cluster_group_dialog.actions.restore_node\' | translate}}">\n <i class="fa fa-rotate-left"></i>\n </button>\n </div>\n </td>\n </tr>\n <tr ng-if="$index === editedNodeIndex" class="node edit-node-row" data-endpoint="{{node.endpoint}}"\n style="{{getRowHeight}}"\n ng-class="{\'selected table-info\': $index === editedNodeIndex}">\n <td class="index-cell"><span ng-if="!node.isDeleted">{{node.index + 1}}</span></td>\n <td class="data location-cell">\n <div class="autocomplete-container">\n <input type="text" name="location" required\n ng-model="node.endpoint"\n ng-change="filterSuggestions(node)"\n ng-blur="hideSuggestions(node)"\n ng-click="filterSuggestions(node)"\n auto-grow\n validate-url exclude="/repositories" exclude-protocol="ftp,ftps"\n validate-duplicate-url excluded-urls="clusterNodesEndpoints"\n allow-empty="false"\n class="form-control form-control-sm textarea-edit"\n uib-tooltip="{{\'remote.location.enter.url.msg\' | translate}}"\n tooltip-placement="top"\n placeholder="{{\'cluster_management.update_cluster_group_dialog.field_placeholders.location\' | translate}}">\n <ul ng-show="suggestions.length > 0 && showDropdown" class="autocomplete-dropdown">\n <li ng-repeat="suggestion in suggestions"\n ng-mouseup="selectSuggestion(node, suggestion)">\n {{ suggestion }}\n </li>\n </ul>\n </div>\n </td>\n <td class="info-cell data">\n <span ng-if="node.isLocal">\n {{\'cluster_management.update_cluster_group_dialog.current_node\' | translate}}<span ng-if="node.item.nodeState">, </span>\n </span>\n\n <span ng-if="node.item.nodeState">\n {{ (\'cluster_management.update_cluster_group_dialog.\' + node.item.nodeState.toLowerCase()) |\n translate }}\n </span>\n </td>\n <td class="status-cell"></td>\n <td class="empty-cell"></td>\n <td class="actions-cell">\n <div class="crud-actions-group">\n <button ng-click="cancel()"\n class="btn btn-link cancel-node-replace-btn secondary"\n gdb-tooltip="{{\'cluster_management.update_cluster_group_dialog.actions.cancel\' | translate}}">\n <i class="fa fa-xmark"></i>\n </button>\n <button ng-click="saveNode(node.endpoint)"\n class="btn btn-link save-rule-btn"\n ng-disabled="!form.location.$valid"\n gdb-tooltip="{{form.location.$valid ? \'cluster_management.update_cluster_group_dialog.actions.add_node\' : \'cluster_management.update_cluster_group_dialog.messages.invalid_form\' | translate}}">\n <i class="fa fa-check"></i>\n </button>\n </div>\n </td>\n </tr>\n <tr ng-repeat-end ng-if="0"></tr>\n <tr ng-if="addNewLocation" class="node edit-node-row">\n <td class="index-cell"></td>\n <td class="data location-cell">\n <div class="autocomplete-container">\n <input type="text" name="location" required\n ng-model="newLocation.endpoint"\n ng-change="filterSuggestions(newLocation)"\n ng-blur="hideSuggestions(newLocation)"\n ng-click="filterSuggestions(newLocation)"\n auto-grow\n validate-url exclude="/repositories" exclude-protocol="ftp,ftps"\n validate-duplicate-url excluded-urls="clusterNodesEndpoints"\n allow-empty="false"\n class="form-control form-control-sm textarea-edit"\n uib-tooltip="{{\'remote.location.enter.url.msg\' | translate}}"\n tooltip-placement="top"\n placeholder="{{\'cluster_management.update_cluster_group_dialog.field_placeholders.location\' | translate}}">\n <ul ng-show="suggestions.length > 0 && showDropdown" class="autocomplete-dropdown">\n <li ng-repeat="suggestion in suggestions"\n ng-mouseup="selectSuggestion(newLocation, suggestion)">\n {{ suggestion }}\n </li>\n </ul>\n </div>\n </td>\n <td class="info-cell data"></td>\n <td class="status-cell"></td>\n <td class="empty-cell"></td>\n <td class="actions-cell">\n <div class="crud-actions-group">\n <button ng-click="cancel()"\n class="btn btn-link cancel-node-replace-btn secondary"\n gdb-tooltip="{{\'cluster_management.update_cluster_group_dialog.actions.cancel\' | translate}}">\n <i class="fa fa-xmark"></i>\n </button>\n <button ng-click="saveNode(newLocation.endpoint)"\n class="btn btn-link save-rule-btn"\n ng-disabled="!form.location.$valid"\n gdb-tooltip="{{form.location.$valid ? \'cluster_management.update_cluster_group_dialog.actions.add_node\' : \'cluster_management.update_cluster_group_dialog.messages.invalid_form\' | translate}}">\n <i class="fa fa-check"></i>\n </button>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n <div class="errors">\n <div class="error-message"\n ng-show="form.location.$error.validUrl && !form.location.$pristine">\n * {{\'valid.remote.location.warning\' | translate}} http://server.example.com:7200/.\n </div>\n <div class="error-message"\n ng-show="form.location.$error.duplicateUrl && !form.location.$pristine">\n * {{\'duplicate.remote.location.warning\' | translate}}\n </div>\n <div ng-repeat="error in errors" class="error-message">\n {{error}}\n </div>\n </div>\n <div class="form-horizontal" ng-if="!hasCluster">\n <div class="form-group">\n <div class="indented-div">\n <span class="padding-label wrapper-div"\n gdb-tooltip="{{\'cluster_management.cluster_page.advanced_options_tooltip\' | translate}}">\n <button type="button"\n class="text-btn advanced-options-btn text-left"\n data-toggle="collapse"\n data-target="#advancedOptions">\n <i class="{{getAdvancedOptionsClass()}} advanced-options-toggle" aria-hidden="true"></i>\n {{\'cluster_management.cluster_page.advanced_options\' | translate}}\n </button>\n </span>\n </div>\n\n <div id="advancedOptions" class="collapse pb-1 pl-2">\n <div class="form-group">\n <div class="input-group"\n ng-class="{\'has-danger\': clusterConfigurationForm.electionMinTimeout.$invalid}">\n <label for="election-minimum-timeout" class="col-xs-4 col-form-label">{{\'cluster_management.cluster_configuration_properties.election_min_timeout\'\n | translate}}*</label>\n <div class="col-xs-8"\n gdb-tooltip="{{\'cluster_management.cluster_configuration_properties.election_min_timeout_tooltip\' | translate}}">\n <input class="form-control" placeholder="{{\'required.field\' | translate}}"\n type="number" ng-model="clusterConfiguration.electionMinTimeout"\n required id="election-minimum-timeout" min="0" pattern="[0-9]+"\n name="electionMinTimeout">\n <div class="form-control-feedback"\n ng-show="clusterConfigurationForm.electionMinTimeout.$error.required">\n {{\'required.field\' | translate}}\n </div>\n <div class="form-control-feedback"\n ng-show="clusterConfigurationForm.electionMinTimeout.$error.pattern">\n {{\'cluster_management.cluster_page.errors.only_positive_integers\' | translate}}\n </div>\n </div>\n </div>\n </div>\n\n <div class="form-group">\n <div class="input-group"\n ng-class="{\'has-danger\': clusterConfigurationForm.electionRangeTimeout.$invalid}">\n <label for="election-range-timeout" class="col-xs-4 col-form-label">{{\'cluster_management.cluster_configuration_properties.election_range_timeout\'\n | translate}}*</label>\n <div class="col-xs-8"\n gdb-tooltip="{{\'cluster_management.cluster_configuration_properties.election_range_timeout_tooltip\' | translate}}">\n <input class="form-control" placeholder="{{\'required.field\' | translate}}"\n type="number" ng-model="clusterConfiguration.electionRangeTimeout"\n required id="election-range-timeout" min="0" pattern="[0-9]+"\n name="electionRangeTimeout">\n <div class="form-control-feedback"\n ng-show="clusterConfigurationForm.electionRangeTimeout.$error.required">\n {{\'required.field\' | translate}}\n </div>\n <div class="form-control-feedback"\n ng-show="clusterConfigurationForm.electionRangeTimeout.$error.pattern">\n {{\'cluster_management.cluster_page.errors.only_positive_integers\' | translate}}\n </div>\n </div>\n </div>\n </div>\n\n <div class="form-group">\n <div class="input-group"\n ng-class="{\'has-danger\': clusterConfigurationForm.heartbeatInterval.$invalid}">\n <label for="heartbeat-interval" class="col-xs-4 col-form-label">{{\'cluster_management.cluster_configuration_properties.heartbeat_interval\'\n | translate}}*</label>\n <div class="col-xs-8"\n gdb-tooltip="{{\'cluster_management.cluster_configuration_properties.heartbeat_interval_tooltip\' | translate}}">\n <input class="form-control" placeholder="{{\'required.field\' | translate}}"\n type="number" ng-model="clusterConfiguration.heartbeatInterval"\n required id="heartbeat-interval" min="0" pattern="[0-9]+"\n name="heartbeatInterval">\n <div class="form-control-feedback"\n ng-show="clusterConfigurationForm.heartbeatInterval.$error.required">\n {{\'required.field\' | translate}}\n </div>\n <div class="form-control-feedback"\n ng-show="clusterConfigurationForm.heartbeatInterval.$error.pattern">\n {{\'cluster_management.cluster_page.errors.only_positive_integers\' | translate}}\n </div>\n </div>\n </div>\n </div>\n\n <div class="form-group">\n <div class="input-group"\n ng-class="{\'has-danger\': clusterConfigurationForm.messageSizeKB.$invalid}">\n <label for="message-size" class="col-xs-4 col-form-label">{{\'cluster_management.cluster_configuration_properties.message_size_kb\'\n | translate}}*</label>\n <div class="col-xs-8"\n gdb-tooltip="{{\'cluster_management.cluster_configuration_properties.message_size_kb_tooltip\' | translate}}">\n <input class="form-control" placeholder="{{\'required.field\' | translate}}"\n type="number" ng-model="clusterConfiguration.messageSizeKB"\n required id="message-size" min="0" pattern="[0-9]+" name="messageSizeKB">\n <div class="form-control-feedback"\n ng-show="clusterConfigurationForm.messageSizeKB.$error.required">\n {{\'required.field\' | translate}}\n </div>\n <div class="form-control-feedback"\n ng-show="clusterConfigurationForm.messageSizeKB.$error.pattern">\n {{\'cluster_management.cluster_page.errors.only_positive_integers\' | translate}}\n </div>\n </div>\n </div>\n </div>\n\n <div class="form-group">\n <div class="input-group"\n ng-class="{\'has-danger\': clusterConfigurationForm.verificationTimeout.$invalid}">\n <label for="verification-timeout" class="col-xs-4 col-form-label">{{\'cluster_management.cluster_configuration_properties.verification_timeout\'\n | translate}}*</label>\n <div class="col-xs-8"\n gdb-tooltip="{{\'cluster_management.cluster_configuration_properties.verification_timeout_tooltip\' | translate}}">\n <input class="form-control" placeholder="{{\'required.field\' | translate}}"\n type="number" ng-model="clusterConfiguration.verificationTimeout"\n required id="verification-timeout" min="0" pattern="[0-9]+"\n name="verificationTimeout">\n <div class="form-control-feedback"\n ng-show="clusterConfigurationForm.verificationTimeout.$error.required">\n {{\'required.field\' | translate}}\n </div>\n <div class="form-control-feedback"\n ng-show="clusterConfigurationForm.verificationTimeout.$error.pattern">\n {{\'cluster_management.cluster_page.errors.only_positive_integers\' | translate}}\n </div>\n </div>\n </div>\n </div>\n <div class="form-group">\n <div class="input-group"\n ng-class="{\'has-danger\': clusterConfigurationForm.transactionLogMaximumSizeGB.$invalid}">\n <label for="verification-timeout" class="col-xs-4 col-form-label">{{\'cluster_management.cluster_configuration_properties.transaction_log_maximum_size_gb\'\n | translate}}*</label>\n <div class="col-xs-8"\n gdb-tooltip="{{\'cluster_management.cluster_configuration_properties.transaction_log_maximum_size_gb_tooltip\' | translate}}">\n <input class="form-control" placeholder="{{\'required.field\' | translate}}"\n type="number" ng-model="clusterConfiguration.transactionLogMaximumSizeGB"\n required id="transaction-log-maximum-size-gb"\n pattern="-?[1-9][0-9]*(\\.[0-9]+)?" name="transaction_log_maximum_size_gb">\n <div class="form-control-feedback"\n ng-show="clusterConfigurationForm.transactionLogMaximumSizeGB.$error.required">\n {{\'required.field\' | translate}}\n </div>\n <div class="form-control-feedback"\n ng-show="clusterConfigurationForm.transactionLogMaximumSizeGB.$error.pattern">\n {{\'cluster_management.cluster_page.errors.small_transaction_log_max_size\' |\n translate}}\n </div>\n </div>\n </div>\n </div>\n <div class="form-group">\n <div class="input-group" ng-class="{\'has-danger\': clusterConfigurationForm.batchUpdateInterval.$invalid}">\n <label for="batch-update-interval" class="col-xs-4 col-form-label">\n {{\'cluster_management.cluster_configuration_properties.batch_update_interval\' | translate}}*\n </label>\n <div class="col-xs-8" gdb-tooltip="{{\'cluster_management.cluster_configuration_properties.batch_update_interval_tooltip\' | translate}}">\n <input\n class="form-control"\n placeholder="{{\'required.field\' | translate}}"\n type="number"\n ng-model="clusterConfiguration.batchUpdateInterval"\n required\n id="batch-update-interval"\n min="0"\n name="batchUpdateInterval">\n <div class="form-control-feedback" ng-show="clusterConfigurationForm.batchUpdateInterval.$error.required">\n {{\'required.field\' | translate}}\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </form>\n</div>\n';return __p}}}]);
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[410],{546:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/cluster-nodes-configuration.css?v=3.0.3-TR1" rel="stylesheet"/>\n\n<div onto-loader-new ng-if="loader" class="create-cluster-loader" message="getLoaderMessage" size="100"></div>\n<div class="add-node-wrapper pull-right mb-1">\n <button ng-click="addNode()" ng-disabled="editedNodeIndex !== undefined"\n class="btn btn-primary add-node-btn"\n gdb-tooltip="{{\'cluster_management.update_cluster_group_dialog.actions.add_node_tooltip\' | translate}}">\n <i class="fa fa-plus"></i> {{\'cluster_management.update_cluster_group_dialog.actions.add_node\' |\n translate}}\n </button>\n</div>\n<div class="table-responsive">\n <form name="form" id="updateClusterGroupForm">\n <table class="cluster-group table table-striped table-hover cluster-group-table" aria-describedby="cluster group table">\n <thead>\n <tr class="labels-row">\n <th scope="col" class="index-column">\n {{\'cluster_management.update_cluster_group_dialog.column.index\' | translate}}\n </th>\n <th scope="col" class="location-column">\n {{\'cluster_management.update_cluster_group_dialog.column.location\' | translate}}\n </th>\n <th scope="col" class="info-column">\n {{\'cluster_management.update_cluster_group_dialog.column.info\' | translate}}\n </th>\n <th scope="col" class="status-column">\n {{\'cluster_management.update_cluster_group_dialog.column.status\' | translate}}\n </th>\n <th scope="col" class="empty-column"></th>\n <th scope="col" class="actions-column"></th>\n </tr>\n </thead>\n <tbody>\n <tr ng-if="!viewModel.length">\n <td colspan="5" class="no-data">\n {{\'cluster_management.update_cluster_group_dialog.messages.no_cluster\' | translate}}\n </td>\n </tr>\n\n <tr ng-repeat-start="node in viewModel track by $index" ng-if="0"></tr>\n <tr ng-if="$index !== editedNodeIndex" class="node preview-node-row" data-endpoint="{{node.endpoint}}"\n capture-height="$index"\n ng-class="{\'selected\': $index === selectedNode || $index === editedNodeIndex}">\n <td class="index-cell"><span ng-if="!node.isDeleted">{{node.index + 1}}</span></td>\n <td class="location-cell data" ng-class="{\'deleting\': node.isDeleted, \'adding\': !node.item.address}">\n <div class="location-item" id="endpoint-{{::node.index}}">\n <span class="text-only">{{node.item.endpoint}}</span>\n <copy-to-clipboard\n text-to-copy="{{node.item.endpoint}}"\n custom-tooltip-style="true"\n ng-attr-target-selector="#endpoint-{{::node.index}}"\n custom-tooltip-text="{{\'cluster_management.update_cluster_group_dialog.copy_to_clipboard.copied.tooltip\' | translate}}"></copy-to-clipboard>\n </div>\n </td>\n <td class="info-cell data">\n <span ng-if="node.isLocal">\n {{\'cluster_management.update_cluster_group_dialog.current_node\' | translate}}<span ng-if="node.item.nodeState">, </span>\n </span>\n\n <span ng-if="node.item.nodeState">\n {{ (\'cluster_management.update_cluster_group_dialog.\' + node.item.nodeState.toLowerCase()) |\n translate }}\n </span>\n </td>\n <td class="status-cell data">\n <div ng-if="!node.item.address" class="adding">\n <i class="fa fa-circle-check status-icon"></i>\n {{\'cluster_management.update_cluster_group_dialog.new_node\' | translate}}\n </div>\n <div ng-if="node.isDeleted" class="deleting">\n <i class="fa fa-xmark status-icon"></i>\n {{\'cluster_management.update_cluster_group_dialog.deleted_node\' | translate}}\n </div>\n </td>\n <td class="empty-cell"></td>\n <td class="actions-cell">\n <div ng-if="editedNodeIndex === undefined && !node.isDeleted" class="actions-group">\n <button ng-click="deleteNode($index, node)" ng-disabled="(hasCluster && !canDeleteNode) || (!hasCluster && node.isLocal)"\n class="btn btn-link delete-node-btn secondary"\n gdb-tooltip="{{ (hasCluster && canDeleteNode) || (!hasCluster && !node.isLocal) ?\n (\'cluster_management.update_cluster_group_dialog.actions.delete_node\' | translate) :\n (\'cluster_management.update_cluster_group_dialog.actions.cannot_delete_node\' | translate) }}"\n title-class="delete-node-tooltip">\n <i class="fa fa-xmark"></i>\n </button>\n <button ng-click="replaceNode($index, node)" class="btn btn-link replace-node-btn" ng-disabled="!hasCluster && node.isLocal"\n gdb-tooltip="{{hasCluster || !node.isLocal ?\n (\'cluster_management.update_cluster_group_dialog.actions.replace_node\' | translate) :\n (\'cluster_management.update_cluster_group_dialog.actions.cannot_replace_node\' | translate) }}">\n <i class="fa fa-arrow-right-arrow-left"></i>\n </button>\n </div>\n <div ng-if="editedNodeIndex === undefined && node.isDeleted" class="actions-group">\n <button ng-click="restoreNode(node)"\n class="btn btn-link restore-node-btn secondary"\n gdb-tooltip="{{\'cluster_management.update_cluster_group_dialog.actions.restore_node\' | translate}}">\n <i class="fa fa-rotate-left"></i>\n </button>\n </div>\n </td>\n </tr>\n <tr ng-if="$index === editedNodeIndex" class="node edit-node-row" data-endpoint="{{node.endpoint}}"\n style="{{getRowHeight}}"\n ng-class="{\'selected table-info\': $index === editedNodeIndex}">\n <td class="index-cell"><span ng-if="!node.isDeleted">{{node.index + 1}}</span></td>\n <td class="data location-cell">\n <div class="autocomplete-container">\n <input type="text" name="location" required\n ng-model="node.endpoint"\n ng-change="filterSuggestions(node)"\n ng-blur="hideSuggestions(node)"\n ng-click="filterSuggestions(node)"\n auto-grow\n validate-url exclude="/repositories" exclude-protocol="ftp,ftps"\n validate-duplicate-url excluded-urls="clusterNodesEndpoints"\n allow-empty="false"\n class="form-control form-control-sm textarea-edit"\n uib-tooltip="{{\'remote.location.enter.url.msg\' | translate}}"\n tooltip-placement="top"\n placeholder="{{\'cluster_management.update_cluster_group_dialog.field_placeholders.location\' | translate}}">\n <ul ng-show="suggestions.length > 0 && showDropdown" class="autocomplete-dropdown">\n <li ng-repeat="suggestion in suggestions"\n ng-mouseup="selectSuggestion(node, suggestion)">\n {{ suggestion }}\n </li>\n </ul>\n </div>\n </td>\n <td class="info-cell data">\n <span ng-if="node.isLocal">\n {{\'cluster_management.update_cluster_group_dialog.current_node\' | translate}}<span ng-if="node.item.nodeState">, </span>\n </span>\n\n <span ng-if="node.item.nodeState">\n {{ (\'cluster_management.update_cluster_group_dialog.\' + node.item.nodeState.toLowerCase()) |\n translate }}\n </span>\n </td>\n <td class="status-cell"></td>\n <td class="empty-cell"></td>\n <td class="actions-cell">\n <div class="crud-actions-group">\n <button ng-click="cancel()"\n class="btn btn-link cancel-node-replace-btn secondary"\n gdb-tooltip="{{\'cluster_management.update_cluster_group_dialog.actions.cancel\' | translate}}">\n <i class="fa fa-xmark"></i>\n </button>\n <button ng-click="saveNode(node.endpoint)"\n class="btn btn-link save-rule-btn"\n ng-disabled="!form.location.$valid"\n gdb-tooltip="{{form.location.$valid ? \'cluster_management.update_cluster_group_dialog.actions.add_node\' : \'cluster_management.update_cluster_group_dialog.messages.invalid_form\' | translate}}">\n <i class="fa fa-check"></i>\n </button>\n </div>\n </td>\n </tr>\n <tr ng-repeat-end ng-if="0"></tr>\n <tr ng-if="addNewLocation" class="node edit-node-row">\n <td class="index-cell"></td>\n <td class="data location-cell">\n <div class="autocomplete-container">\n <input type="text" name="location" required\n ng-model="newLocation.endpoint"\n ng-change="filterSuggestions(newLocation)"\n ng-blur="hideSuggestions(newLocation)"\n ng-click="filterSuggestions(newLocation)"\n auto-grow\n validate-url exclude="/repositories" exclude-protocol="ftp,ftps"\n validate-duplicate-url excluded-urls="clusterNodesEndpoints"\n allow-empty="false"\n class="form-control form-control-sm textarea-edit"\n uib-tooltip="{{\'remote.location.enter.url.msg\' | translate}}"\n tooltip-placement="top"\n placeholder="{{\'cluster_management.update_cluster_group_dialog.field_placeholders.location\' | translate}}">\n <ul ng-show="suggestions.length > 0 && showDropdown" class="autocomplete-dropdown">\n <li ng-repeat="suggestion in suggestions"\n ng-mouseup="selectSuggestion(newLocation, suggestion)">\n {{ suggestion }}\n </li>\n </ul>\n </div>\n </td>\n <td class="info-cell data"></td>\n <td class="status-cell"></td>\n <td class="empty-cell"></td>\n <td class="actions-cell">\n <div class="crud-actions-group">\n <button ng-click="cancel()"\n class="btn btn-link cancel-node-replace-btn secondary"\n gdb-tooltip="{{\'cluster_management.update_cluster_group_dialog.actions.cancel\' | translate}}">\n <i class="fa fa-xmark"></i>\n </button>\n <button ng-click="saveNode(newLocation.endpoint)"\n class="btn btn-link save-rule-btn"\n ng-disabled="!form.location.$valid"\n gdb-tooltip="{{form.location.$valid ? \'cluster_management.update_cluster_group_dialog.actions.add_node\' : \'cluster_management.update_cluster_group_dialog.messages.invalid_form\' | translate}}">\n <i class="fa fa-check"></i>\n </button>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n <div class="errors">\n <div class="error-message"\n ng-show="form.location.$error.validUrl && !form.location.$pristine">\n * {{\'valid.remote.location.warning\' | translate}} http://server.example.com:7200/.\n </div>\n <div class="error-message"\n ng-show="form.location.$error.duplicateUrl && !form.location.$pristine">\n * {{\'duplicate.remote.location.warning\' | translate}}\n </div>\n <div ng-repeat="error in errors" class="error-message">\n {{error}}\n </div>\n </div>\n <div class="form-horizontal" ng-if="!hasCluster">\n <div class="form-group">\n <div class="indented-div">\n <span class="padding-label wrapper-div"\n gdb-tooltip="{{\'cluster_management.cluster_page.advanced_options_tooltip\' | translate}}">\n <button type="button"\n class="text-btn advanced-options-btn text-left"\n data-toggle="collapse"\n data-target="#advancedOptions">\n <i class="{{getAdvancedOptionsClass()}} advanced-options-toggle" aria-hidden="true"></i>\n {{\'cluster_management.cluster_page.advanced_options\' | translate}}\n </button>\n </span>\n </div>\n\n <div id="advancedOptions" class="collapse pb-1 pl-2">\n <div class="form-group">\n <div class="input-group"\n ng-class="{\'has-danger\': clusterConfigurationForm.electionMinTimeout.$invalid}">\n <label for="election-minimum-timeout" class="col-xs-4 col-form-label">{{\'cluster_management.cluster_configuration_properties.election_min_timeout\'\n | translate}}*</label>\n <div class="col-xs-8"\n gdb-tooltip="{{\'cluster_management.cluster_configuration_properties.election_min_timeout_tooltip\' | translate}}">\n <input class="form-control" placeholder="{{\'required.field\' | translate}}"\n type="number" ng-model="clusterConfiguration.electionMinTimeout"\n required id="election-minimum-timeout" min="0" pattern="[0-9]+"\n name="electionMinTimeout">\n <div class="form-control-feedback"\n ng-show="clusterConfigurationForm.electionMinTimeout.$error.required">\n {{\'required.field\' | translate}}\n </div>\n <div class="form-control-feedback"\n ng-show="clusterConfigurationForm.electionMinTimeout.$error.pattern">\n {{\'cluster_management.cluster_page.errors.only_positive_integers\' | translate}}\n </div>\n </div>\n </div>\n </div>\n\n <div class="form-group">\n <div class="input-group"\n ng-class="{\'has-danger\': clusterConfigurationForm.electionRangeTimeout.$invalid}">\n <label for="election-range-timeout" class="col-xs-4 col-form-label">{{\'cluster_management.cluster_configuration_properties.election_range_timeout\'\n | translate}}*</label>\n <div class="col-xs-8"\n gdb-tooltip="{{\'cluster_management.cluster_configuration_properties.election_range_timeout_tooltip\' | translate}}">\n <input class="form-control" placeholder="{{\'required.field\' | translate}}"\n type="number" ng-model="clusterConfiguration.electionRangeTimeout"\n required id="election-range-timeout" min="0" pattern="[0-9]+"\n name="electionRangeTimeout">\n <div class="form-control-feedback"\n ng-show="clusterConfigurationForm.electionRangeTimeout.$error.required">\n {{\'required.field\' | translate}}\n </div>\n <div class="form-control-feedback"\n ng-show="clusterConfigurationForm.electionRangeTimeout.$error.pattern">\n {{\'cluster_management.cluster_page.errors.only_positive_integers\' | translate}}\n </div>\n </div>\n </div>\n </div>\n\n <div class="form-group">\n <div class="input-group"\n ng-class="{\'has-danger\': clusterConfigurationForm.heartbeatInterval.$invalid}">\n <label for="heartbeat-interval" class="col-xs-4 col-form-label">{{\'cluster_management.cluster_configuration_properties.heartbeat_interval\'\n | translate}}*</label>\n <div class="col-xs-8"\n gdb-tooltip="{{\'cluster_management.cluster_configuration_properties.heartbeat_interval_tooltip\' | translate}}">\n <input class="form-control" placeholder="{{\'required.field\' | translate}}"\n type="number" ng-model="clusterConfiguration.heartbeatInterval"\n required id="heartbeat-interval" min="0" pattern="[0-9]+"\n name="heartbeatInterval">\n <div class="form-control-feedback"\n ng-show="clusterConfigurationForm.heartbeatInterval.$error.required">\n {{\'required.field\' | translate}}\n </div>\n <div class="form-control-feedback"\n ng-show="clusterConfigurationForm.heartbeatInterval.$error.pattern">\n {{\'cluster_management.cluster_page.errors.only_positive_integers\' | translate}}\n </div>\n </div>\n </div>\n </div>\n\n <div class="form-group">\n <div class="input-group"\n ng-class="{\'has-danger\': clusterConfigurationForm.messageSizeKB.$invalid}">\n <label for="message-size" class="col-xs-4 col-form-label">{{\'cluster_management.cluster_configuration_properties.message_size_kb\'\n | translate}}*</label>\n <div class="col-xs-8"\n gdb-tooltip="{{\'cluster_management.cluster_configuration_properties.message_size_kb_tooltip\' | translate}}">\n <input class="form-control" placeholder="{{\'required.field\' | translate}}"\n type="number" ng-model="clusterConfiguration.messageSizeKB"\n required id="message-size" min="0" pattern="[0-9]+" name="messageSizeKB">\n <div class="form-control-feedback"\n ng-show="clusterConfigurationForm.messageSizeKB.$error.required">\n {{\'required.field\' | translate}}\n </div>\n <div class="form-control-feedback"\n ng-show="clusterConfigurationForm.messageSizeKB.$error.pattern">\n {{\'cluster_management.cluster_page.errors.only_positive_integers\' | translate}}\n </div>\n </div>\n </div>\n </div>\n\n <div class="form-group">\n <div class="input-group"\n ng-class="{\'has-danger\': clusterConfigurationForm.verificationTimeout.$invalid}">\n <label for="verification-timeout" class="col-xs-4 col-form-label">{{\'cluster_management.cluster_configuration_properties.verification_timeout\'\n | translate}}*</label>\n <div class="col-xs-8"\n gdb-tooltip="{{\'cluster_management.cluster_configuration_properties.verification_timeout_tooltip\' | translate}}">\n <input class="form-control" placeholder="{{\'required.field\' | translate}}"\n type="number" ng-model="clusterConfiguration.verificationTimeout"\n required id="verification-timeout" min="0" pattern="[0-9]+"\n name="verificationTimeout">\n <div class="form-control-feedback"\n ng-show="clusterConfigurationForm.verificationTimeout.$error.required">\n {{\'required.field\' | translate}}\n </div>\n <div class="form-control-feedback"\n ng-show="clusterConfigurationForm.verificationTimeout.$error.pattern">\n {{\'cluster_management.cluster_page.errors.only_positive_integers\' | translate}}\n </div>\n </div>\n </div>\n </div>\n <div class="form-group">\n <div class="input-group"\n ng-class="{\'has-danger\': clusterConfigurationForm.transactionLogMaximumSizeGB.$invalid}">\n <label for="verification-timeout" class="col-xs-4 col-form-label">{{\'cluster_management.cluster_configuration_properties.transaction_log_maximum_size_gb\'\n | translate}}*</label>\n <div class="col-xs-8"\n gdb-tooltip="{{\'cluster_management.cluster_configuration_properties.transaction_log_maximum_size_gb_tooltip\' | translate}}">\n <input class="form-control" placeholder="{{\'required.field\' | translate}}"\n type="number" ng-model="clusterConfiguration.transactionLogMaximumSizeGB"\n required id="transaction-log-maximum-size-gb"\n pattern="-?[1-9][0-9]*(\\.[0-9]+)?" name="transaction_log_maximum_size_gb">\n <div class="form-control-feedback"\n ng-show="clusterConfigurationForm.transactionLogMaximumSizeGB.$error.required">\n {{\'required.field\' | translate}}\n </div>\n <div class="form-control-feedback"\n ng-show="clusterConfigurationForm.transactionLogMaximumSizeGB.$error.pattern">\n {{\'cluster_management.cluster_page.errors.small_transaction_log_max_size\' |\n translate}}\n </div>\n </div>\n </div>\n </div>\n <div class="form-group">\n <div class="input-group" ng-class="{\'has-danger\': clusterConfigurationForm.batchUpdateInterval.$invalid}">\n <label for="batch-update-interval" class="col-xs-4 col-form-label">\n {{\'cluster_management.cluster_configuration_properties.batch_update_interval\' | translate}}*\n </label>\n <div class="col-xs-8" gdb-tooltip="{{\'cluster_management.cluster_configuration_properties.batch_update_interval_tooltip\' | translate}}">\n <input\n class="form-control"\n placeholder="{{\'required.field\' | translate}}"\n type="number"\n ng-model="clusterConfiguration.batchUpdateInterval"\n required\n id="batch-update-interval"\n min="0"\n name="batchUpdateInterval">\n <div class="form-control-feedback" ng-show="clusterConfigurationForm.batchUpdateInterval.$error.required">\n {{\'required.field\' | translate}}\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </form>\n</div>\n';return __p}}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[416],{552:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/autocomplete-select.css?v=3.0.
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[416],{552:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/autocomplete-select.css?v=3.0.3-TR1" rel="stylesheet"/>\n\n<div class="autocomplete-select-wrapper">\n <div class="autocomplete-select">\n <div ng-hide="isMultiline">\n <input type="text" ng-model="searchInput" ng-change="onChange()" ng-keydown="onKeyDown($event)"\n ng-blur="onBlur()" ng-required="required"\n class="autocomplete-input autocomplete-editable" ng-class="styleClass" placeholder="{{placeholder}}">\n </div>\n <div ng-show="isMultiline">\n <textarea\n ng-model="searchInput"\n ng-change="onChange()"\n ng-keydown="onKeyDown($event)"\n ng-blur="onBlur()"\n ng-required="required"\n class="autocomplete-textarea autocomplete-editable" ng-class="styleClass"\n placeholder="{{placeholder}}"\n rows="{{initialRows}}">\n </textarea>\n </div>\n </div>\n <div class="autocomplete-results-wrapper card">\n <div ng-repeat="autoCompleteUriResult in autoCompleteUriResults track by $index"\n ng-click="selectResource(autoCompleteUriResult)"\n ng-mousemove="setActiveItemIndex($index)"\n ng-class="{active: activeSearchElm === $index, selected: selectedElementIndex === $index}"\n class="result-item">\n <p ng-bind-html="getResultItemHtml(autoCompleteUriResult)"></p>\n </div>\n </div>\n</div>\n';return __p}}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[417],{553:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/dynamic-form.css?v=3.0.
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[417],{553:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/dynamic-form.css?v=3.0.3-TR1" rel="stylesheet"/>\n\n<div class="dynamic-form-container">\n <form name="dynamicForm" novalidate class="dynamic-form">\n <div ng-repeat="model in formModel.models">\n \x3c!-- Groups --\x3e\n <div ng-if="model.groupId && (model.fields.length > 0 || showAllFields)" class="form-group">\n <h5 class="group-title">\n <span\n gdb-tooltip="{{(translationKeyPrefix ? (translationKeyPrefix + model.groupId + \'.tooltip\') : null) | translate}}">\n {{(translationKeyPrefix ? (translationKeyPrefix + model.groupId + \'.label\') : model.groupId) | translate}}\n </span>\n </h5>\n <dynamic-form-field ng-repeat="field in model.fields" field="field" form="dynamicForm"\n translation-key-prefix="translationKeyPrefix">\n </dynamic-form-field>\n\n <div class="hidden-fields">\n <dynamic-form-field ng-if="showAllFields" ng-repeat="field in model.hiddenFields"\n field="field" form="dynamicForm" translation-key-prefix="translationKeyPrefix">\n </dynamic-form-field>\n </div>\n </div>\n\n \x3c!-- Individual fields --\x3e\n <dynamic-form-field ng-if="!model.groupId" field="model" form-name="dynamicForm"\n translation-key-prefix="translationKeyPrefix">\n </dynamic-form-field>\n </div>\n </form>\n</div>\n';return __p}}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[42,228,231,232,233],{178:function(e,r){function t(e,r,t,o,s){e.message=s,e.close=function(){r.dismiss()},e.copyToClipboard=function(){navigator.clipboard.writeText(e.message).then((function(){o.success(t.instant("import.help.messages.copied_to_clipboard")),e.close()}),(function(e){console.error("Could not copy text: ",e)}))}}angular.module("graphdb.framework.impex.import.controllers.import-resource-message-dialog",[]).controller("ImportResourceMessageDialogController",t),t.$inject=["$scope","$uibModalInstance","$translate","toastr","message"]},225:function(e,r,t){"use strict";t.r(r);t(178);var o=t(105),s=t(120);function i(e){return{restrict:"E",templateUrl:"js/angular/import/templates/import-resource-message.html",scope:{resource:"="},link:function(r){r.ImportResourceStatus=o.ImportResourceStatus,r.toTitleCase=function(e){return s.toTitleCase(e)},r.showMessage=function(r){e.open({templateUrl:"js/angular/import/templates/import-resource-message-dialog.html",controller:"ImportResourceMessageDialogController",size:"lg",windowClass:"import-resource-message-dialog",backdrop:"static",resolve:{message:function(){return r?r.importResource.message:""}}})}}}}angular.module("graphdb.framework.import.directives.import-resource-message",["graphdb.framework.impex.import.controllers.import-resource-message-dialog"]).directive("importResourceMessage",i),i.$inject=["$uibModal"]},226:function(e,r){function t(e,r){return{restrict:"E",templateUrl:"js/angular/import/templates/import-resource-status-info.html",scope:{resource:"="},link:function(t){var o=[];t.popoverTemplate="resourceStatusInfoTemplate.html",t.popoverIsOpen=!1,t.context=t.resource.importResource.context,t.replaceGraphs=t.resource.importResource.replaceGraphs,t.baseUrl=decodeURIComponent(t.resource.importResource.baseURI),t.forceSerial=t.resource.importResource.forceSerial,t.importedOn=t.resource.importResource.importedOn,t.parserSettings=t.resource.importResource.parserSettings,t.open=function(){t.closeAllDialogs(),t.popoverIsOpen=!0},t.closeAllDialogs=function(){e.$broadcast("closePopovers")},t.close=function(){t.popoverIsOpen=!1};var s=function(e){"Escape"===e.key&&t.$apply((function(){t.close()}))};o.push(t.$on("closePopovers",t.close)),r.on("keydown",s),t.$on("$destroy",(function(){r.off("keydown",s),o.forEach((function(e){return e()}))}))}}}angular.module("graphdb.framework.import.directives.import-resource-status-info",[]).directive("importResourceStatusInfo",t),t.$inject=["$rootScope","$document"]},330:function(e,r){function t(e){return{restrict:"A",require:"ngModel",link:function(r,t,o,s){s.$parsers.unshift((function(r){if(s.$setValidity("validateUri",!0),!s.$isEmpty(r)){var t=e.isValidIri(r,r.toString());s.$setValidity("validateUri",t)}return r}))}}}angular.module("graphdb.framework.import.directives.validate-uri",[]).directive("validateUri",t),t.$inject=["UriUtils"]},331:function(e,r){function t(){return{link:function(e,r,t){e.$watch("file.status",(function(){"IMPORTING"!==e.file.status&&"UPLOADING"!==e.file.status||!$(r).has("object").length>0&&$(r).append('<object width="'+t.size+'" height="'+t.size+'" data="js/angular/templates/loader/ot-loader.svg?v=3.0.
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[42,228,231,232,233],{178:function(e,r){function t(e,r,t,o,s){e.message=s,e.close=function(){r.dismiss()},e.copyToClipboard=function(){navigator.clipboard.writeText(e.message).then((function(){o.success(t.instant("import.help.messages.copied_to_clipboard")),e.close()}),(function(e){console.error("Could not copy text: ",e)}))}}angular.module("graphdb.framework.impex.import.controllers.import-resource-message-dialog",[]).controller("ImportResourceMessageDialogController",t),t.$inject=["$scope","$uibModalInstance","$translate","toastr","message"]},225:function(e,r,t){"use strict";t.r(r);t(178);var o=t(105),s=t(120);function i(e){return{restrict:"E",templateUrl:"js/angular/import/templates/import-resource-message.html",scope:{resource:"="},link:function(r){r.ImportResourceStatus=o.ImportResourceStatus,r.toTitleCase=function(e){return s.toTitleCase(e)},r.showMessage=function(r){e.open({templateUrl:"js/angular/import/templates/import-resource-message-dialog.html",controller:"ImportResourceMessageDialogController",size:"lg",windowClass:"import-resource-message-dialog",backdrop:"static",resolve:{message:function(){return r?r.importResource.message:""}}})}}}}angular.module("graphdb.framework.import.directives.import-resource-message",["graphdb.framework.impex.import.controllers.import-resource-message-dialog"]).directive("importResourceMessage",i),i.$inject=["$uibModal"]},226:function(e,r){function t(e,r){return{restrict:"E",templateUrl:"js/angular/import/templates/import-resource-status-info.html",scope:{resource:"="},link:function(t){var o=[];t.popoverTemplate="resourceStatusInfoTemplate.html",t.popoverIsOpen=!1,t.context=t.resource.importResource.context,t.replaceGraphs=t.resource.importResource.replaceGraphs,t.baseUrl=decodeURIComponent(t.resource.importResource.baseURI),t.forceSerial=t.resource.importResource.forceSerial,t.importedOn=t.resource.importResource.importedOn,t.parserSettings=t.resource.importResource.parserSettings,t.open=function(){t.closeAllDialogs(),t.popoverIsOpen=!0},t.closeAllDialogs=function(){e.$broadcast("closePopovers")},t.close=function(){t.popoverIsOpen=!1};var s=function(e){"Escape"===e.key&&t.$apply((function(){t.close()}))};o.push(t.$on("closePopovers",t.close)),r.on("keydown",s),t.$on("$destroy",(function(){r.off("keydown",s),o.forEach((function(e){return e()}))}))}}}angular.module("graphdb.framework.import.directives.import-resource-status-info",[]).directive("importResourceStatusInfo",t),t.$inject=["$rootScope","$document"]},330:function(e,r){function t(e){return{restrict:"A",require:"ngModel",link:function(r,t,o,s){s.$parsers.unshift((function(r){if(s.$setValidity("validateUri",!0),!s.$isEmpty(r)){var t=e.isValidIri(r,r.toString());s.$setValidity("validateUri",t)}return r}))}}}angular.module("graphdb.framework.import.directives.validate-uri",[]).directive("validateUri",t),t.$inject=["UriUtils"]},331:function(e,r){function t(){return{link:function(e,r,t){e.$watch("file.status",(function(){"IMPORTING"!==e.file.status&&"UPLOADING"!==e.file.status||!$(r).has("object").length>0&&$(r).append('<object width="'+t.size+'" height="'+t.size+'" data="js/angular/templates/loader/ot-loader.svg?v=3.0.3-TR1">{{\'common.loading\' | translate}}</object>')}))}}}angular.module("graphdb.framework.import.directives.import-progress-indicator",[]).directive("ImportProgressIndicator",t),t.$inject=[]},332:function(e,r,t){"use strict";t.r(r);var o=t(105),s=(t(225),t(226),t(186)),i=t(227),c=t(139),n=t(333),u=t(41),a={FILE:"FILE",DIRECTORY:"DIRECTORY",ALL:"ALL"},l={ALL:"ALL",NONE:"NONE",IMPORTED:"IMPORTED",NOT_IMPORTED:"NOT_IMPORTED"};function p(e,r){return{restrict:"E",templateUrl:"js/angular/import/templates/import-resource-tree.html",scope:{columnKeys:"=",showTypeFilter:"=",sortBy:"=",asc:"=",onImport:"&",onImportAll:"&",onReset:"&",onRemove:"&",onStopImport:"&",onEditResource:"&"},link:function(t,p,m){t.resources=new i.ImportResourceTreeElement,t.displayResources=[],t.TYPE_FILTER_OPTIONS=a,t.filterByType=a.ALL,t.filterByFileName="",t.STATUS_OPTIONS=l,t.selectedByStatus=void 0,t.areAllDisplayedImportResourcesSelected=!1,t.areAllDisplayedImportResourcesPartialSelected=!1,t.ImportResourceStatus=o.ImportResourceStatus,t.canRemoveResource=angular.isDefined(m.onRemove),t.canResetSelectedResources=!1,t.SORTING_TYPES=s.SortingType,t.sortAsc=!angular.isDefined(m.asc)||t.asc,t.sortedBy=t.sortBy,t.showLoader=r.getShowLoader(),t.hasSelection=!1,t.selectionChanged=function(e){e.setSelection(e.selected),I(),f(),g()},t.selectResourceWithStatus=function(e){t.selectedByStatus=e,t.resources.setSelection(!1),l.ALL===t.selectedByStatus?t.resources.setSelection(!0):l.IMPORTED===t.selectedByStatus?t.resources.selectAllWithStatus([o.ImportResourceStatus.DONE]):l.NOT_IMPORTED===t.selectedByStatus&&t.resources.selectAllWithStatus([o.ImportResourceStatus.IMPORTING,o.ImportResourceStatus.NONE,o.ImportResourceStatus.ERROR,o.ImportResourceStatus.PENDING,o.ImportResourceStatus.INTERRUPTING]),R(),f()},t.filterByTypeChanged=function(e){t.filterByType=e,R()},t.filterByFileNameChanged=function(e){t.filterByFileName=e,b(R,100)},t.onResetStatus=function(){var e=t.resources.getAllSelected().map((function(e){return e.path}));e.length>0&&t.onReset({resources:e})},t.resetStatus=function(e){t.onReset({resources:[e.path]})},t.onRemoveResources=function(){var e=t.resources.getAllSelected();e&&e.length>0&&t.onRemove({resources:e})},t.removeResource=function(e){t.onRemove({resources:[e]})},t.importAll=function(e){var r=t.resources.getAllSelectedForImport();r.length>0&&t.onImportAll({selectedResources:r,withoutChangingSettings:e})},t.stopImport=function(e){t.onStopImport({resource:e})},t.sort=function(e){t.sortedBy===e?t.sortAsc=!t.sortAsc:t.sortAsc=!0,t.sortedBy=e,R()},t.editResource=function(e){t.onEditResource({resource:e})};var d,f=function(){t.canResetSelectedResources=t.resources.getSelectedImportedResources()},R=function(){t.resources.getRoot().updateSelectionState(),S(),t.displayResources=t.resources.toList().filter(E).filter(O),g(),I()},g=function(){var e=t.resources.getAllSelectedFilesNames();t.hasSelection=e.length>0,r.updateSelectedFilesNames(e)},I=function(){var e=t.displayResources.some((function(e){return!e.selected})),r=t.displayResources.some((function(e){return e.selected}));t.areAllDisplayedImportResourcesSelected=r&&!e,t.areAllDisplayedImportResourcesPartialSelected=r&&e},S=function(){s.SortingType.NAME===t.sortedBy?t.resources.sort(y(t.sortAsc)):s.SortingType.SIZE===t.sortedBy?t.resources.sort(T(t.sortAsc)):s.SortingType.MODIFIED===t.sortedBy?t.resources.sort(v(t.sortAsc)):s.SortingType.IMPORTED===t.sortedBy?t.resources.sort(h(t.sortAsc)):s.SortingType.CONTEXT===t.sortedBy&&t.resources.sort(A(t.sortAsc))},y=function(e){return function(r,t){return e?r.importResource.name.localeCompare(t.importResource.name):t.importResource.name.localeCompare(r.importResource.name)}},T=function(e){return function(r,t){var o=Object(u.convertToBytes)(r.importResource.size),s=Object(u.convertToBytes)(t.importResource.size);return e?o-s:s-o}},v=function(e){return function(r,t){var o=r.importResource.modifiedOn||Number.MAX_VALUE,s=t.importResource.modifiedOn||Number.MAX_VALUE;return e?o-s:s-o}},h=function(e){return function(r,t){var o=r.importResource.importedOn||Number.MAX_VALUE,s=t.importResource.importedOn||Number.MAX_VALUE;return e?o-s:s-o}},A=function(e){return function(r,t){return e?r.importResource.context.localeCompare(t.importResource.context):t.importResource.context.localeCompare(r.importResource.context)}},E=function(e){return a.ALL===t.filterByType||(t.filterByType===a.FILE?e.isFile():t.filterByType===a.DIRECTORY&&e.isDirectory())},O=function(e){return!t.filterByFileName||(t.filterByType===a.DIRECTORY?e.hasTextInDirectoriesName(t.filterByFileName):t.filterByType===a.FILE?e.hasTextInFilesName(t.filterByFileName):e.hasTextInResourcesName(t.filterByFileName))},b=function(r,t){d&&e.cancel(d),d=e(r,t)},w=[];w.push(r.onResourcesUpdated((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],o=c.TABS.USER===r.getActiveTabId();t.resources.isEmpty()?(t.resources=n.ImportResourceTreeService.toImportResourceTree(e,o),o&&(t.sortedBy=s.SortingType.MODIFIED)):n.ImportResourceTreeService.mergeResourceTree(t.resources,e,o),n.ImportResourceTreeService.calculateElementIndent(t.resources),n.ImportResourceTreeService.setupAfterTreeInitProperties(t.resources),R(),f()}))),w.push(r.onShowLoaderUpdated((function(e){return t.showLoader=e}))),w.push(r.onActiveTabIdUpdated((function(){return t.resources=new i.ImportResourceTreeElement})));t.$on("$destroy",(function(){w.forEach((function(e){return e()}))}))}}}angular.module("graphdb.framework.import.directives.import-resource-tree",["graphdb.framework.import.directives.import-resource-message","graphdb.framework.import.directives.import-resource-status-info"]).directive("importResourceTree",p),p.$inject=["$timeout","ImportContextService"]},428:function(e,r,t){"use strict";t.r(r);t(10),t(52),t(318),t(330),t(331),t(332),t(53),t(98),t(99);angular.module("graphdb.framework.impex.import",["toastr","ngRoute","ngFileUpload","ui.bootstrap","graphdb.framework.impex.import.directives","graphdb.framework.impex.import.controllers","graphdb.framework.core.services.repositories","graphdb.framework.import.directives.validate-uri","graphdb.framework.import.directives.import-progress-indicator","graphdb.framework.import.directives.import-resource-tree"])}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[423],{559:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/operations-statuses-monitor.css?v=3.0.
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[423],{559:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/operations-statuses-monitor.css?v=3.0.3-TR1" rel="stylesheet"/>\n\n<div ng-if="activeOperations && activeOperations.operations && activeOperations.operations.length > 0"\n class="operations-statuses btn-group">\n <button type="button"\n class="btn btn-secondary operations-statuses-dropdown-toggle dropdown-toggle" data-toggle="dropdown"\n ng-if="operationsSummary && operationsSummary.length > 0"\n ng-class="{\n \'btn-fade-danger\': OPERATION_STATUS.CRITICAL === activeOperations.status,\n \'btn-fade-warning\': OPERATION_STATUS.WARNING === activeOperations.status\n }">\n <div class="operation-status-header" ng-repeat="operationGroup in operationsSummary">\n <div ng-class="{\n \'icon-import\': OPERATION_GROUP_TYPE.IMPORT_OPERATION === operationGroup.type,\n \'icon-exchange\': OPERATION_GROUP_TYPE.QUERIES_OPERATION === operationGroup.type,\n \'fa fa-archive\': OPERATION_GROUP_TYPE.BACKUP_AND_RESTORE_OPERATION === operationGroup.type,\n \'fa fa-sitemap\': OPERATION_GROUP_TYPE.CLUSTER_OPERATION === operationGroup.type,\n \'status-critical\': OPERATION_STATUS.CRITICAL === operationGroup.status,\n \'status-information\': OPERATION_STATUS.INFORMATION === operationGroup.status,\n \'status-warning\': OPERATION_STATUS.WARNING === operationGroup.status}">\n </div>\n <span ng-if="operationGroup.runningOperations" class="running-operation-count">\n <sup class="tag-info">{{operationGroup.runningOperations}}</sup>\n </span>\n </div>\n <span class="caret"></span>\n </button>\n <ul role="menu" class="dropdown-menu dropdown-menu-right">\n <div class="operations-statuses-content">\n <li ng-repeat="operationStatus in activeOperations.operations">\n <a class="operation-status-content btn btn-secondary row" target="_blank" ng-attr-href="{{operationStatus.monitoringViewUrl}}"\n ng-class="{\n \'status-critical\': OPERATION_STATUS.CRITICAL === operationStatus.status,\n \'status-information\': OPERATION_STATUS.INFORMATION === operationStatus.status,\n \'status-warning\': OPERATION_STATUS.WARNING === operationStatus.status\n }">\n <div class="operation-icon col-sm-1" ng-style="noPadding">\n <div ng-class="{\n \'icon-import\': OPERATION_TYPE.IMPORTS === operationStatus.type,\n \'icon-exchange\': OPERATION_TYPE.QUERIES === operationStatus.type || OPERATION_TYPE.UPDATES === operationStatus.type,\n \'fa fa-archive\': OPERATION_TYPE.BACKUP_RESTORE === operationStatus.type,\n \'fa fa-sitemap\': OPERATION_TYPE.CLUSTER_STATUS === operationStatus.type}">\n </div>\n </div>\n <div class="col-sm-8 operation-status-label">\n {{ \'global.operations_statuses.\' + operationStatus.titleLabelKey + \'.title\' | translate }}\n </div>\n <div class="operation-number col-sm-3">\n <div ng-if="operationStatus.runningOperationCount" class="operation-status-running-operation-count tag-info">\n {{operationStatus.runningOperationCount}}\n </div>\n </div>\n </a>\n </li>\n </div>\n </ul>\n</div>\n';return __p}}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[424],{560:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/rdf-resource-search.css?v=3.0.
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[424],{560:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/rdf-resource-search.css?v=3.0.3-TR1" rel="stylesheet"/>\n\n<div ng-cloak>\n <div id="search-box"\n class="card search-rdf-input"\n ng-class="{\'show-rdf-search-box-visible\': showRdfSearchInput, \'show-rdf-search-box-invisible\': !showRdfSearchInput}"\n ng-keydown="onKeyDown($event)">\n <div class="card-block">\n <search-resource-input\n repository-namespaces="repositoryNamespaces"\n is-autocomplete-enabled="isAutocompleteEnabled"\n empty="empty"\n open-in-new-tab="true"\n preserve-search="true"\n radio-buttons="true"\n clear-input-icon="true">\n </search-resource-input>\n <button class="btn btn-link close-rdf-search-btn"\n gdb-tooltip="{{\'search.resource.close.msg\' | translate}}" tooltip-placement="bottom"\n ng-click="hideInput()">\n <i class="icon-close icon-2x" aria-hidden="true"></i>\n </button>\n </div>\n </div>\n <button class="btn btn-link search-rdf-btn"\n ng-if="!showRdfSearchInput"\n gdb-tooltip="{{\'search.resources.msg\' | translate}}"\n tooltip-placement="bottom"\n ng-click="showInput()">\n <i class="icon-search" aria-hidden="true"></i>\n </button>\n</div>\n';return __p}}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[425],{561:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/shuttle-multiselect.css?v=3.0.
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[425],{561:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/shuttle-multiselect.css?v=3.0.3-TR1" rel="stylesheet"/>\n\n<div class="shuttle-multiselect">\n <div class="shuttle-panel available-options">\n <div class="shuttle-panel-header">\n <h5>{{labels.availableOptionsTitle | translate}}</h5>\n </div>\n <div class="shuttle-panel-toolbar toolbar-left">\n <input type="text" class="form-control filter-selected"\n placeholder="{{labels.availableOptionsFilter | translate}}"\n ng-model="searchLeft">\n <a href="#" ng-click="selectAll()" class="btn-link secondary add-all-btn"\n gdb-tooltip="{{labels.selectAllTooltip | translate}}"\n tooltip-placement="top">{{labels.selectAllLabel | translate}}</a>\n </div>\n <div class="options-list">\n <div class="option-item"\n ng-repeat="item in availableOptions | searchFilter:searchLeft | orderBy:\'label\' track by $index">\n <span>{{item.label}}</span>\n <a href="#" ng-click="selectOption(item)" class="btn-link secondary item-action add-btn"\n gdb-tooltip="{{labels.selectTooltip | translate}}"\n tooltip-placement="top">\n <span class="fa fa-plus-circle"></span>\n </a>\n </div>\n </div>\n </div>\n <div class="shuttle-panel selected-options">\n <div class="shuttle-panel-header">\n <h5>{{labels.selectedOptionsTitle | translate}}</h5>\n </div>\n <div class="shuttle-panel-toolbar toolbar-right">\n <div ng-if="selectedOptions.length" class="selected-items-message">\n {{labels.selectedOptionsCount | translate:{count: selectedOptions.length} }}\n </div>\n <a href="#" ng-click="deselectAll()" class="btn-link secondary remove-all-btn"\n gdb-tooltip="{{labels.deselectAllTooltip | translate}}"\n tooltip-placement="top">{{labels.deselectAllLabel | translate}}</a>\n </div>\n <div class="options-list">\n <div class="option-item" ng-repeat="item in selectedOptions | orderBy:\'label\' track by $index">\n <span>{{item.label}}</span>\n <a href="#" ng-click="deselectOption(item)" class="btn-link secondary item-action remove-btn"\n gdb-tooltip="{{labels.deselectTooltip | translate}}"\n tooltip-placement="top">\n <span class="fa fa-minus-circle"></span>\n </a>\n </div>\n </div>\n </div>\n</div>\n';return __p}}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[426],{562:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/lib/ontotext-yasgui-web-component.css?v=3.0.
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[426],{562:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/lib/ontotext-yasgui-web-component.css?v=3.0.3-TR1" rel="stylesheet">\n\n<ontotext-yasgui\n class="{{classToApply}}"\n ng-custom-element\n ngce-prop-config="ontotextYasguiConfig"\n ngce-prop-saved_query_config="savedQueryConfig"\n ngce-prop-language="language"\n ngce-on-create_saved_query="createSavedQuery($event)"\n ngce-on-update_saved_query="updateSavedQuery($event)"\n ngce-on-delete_saved_query="deleteSavedQuery($event)"\n ngce-on-share_saved_query="shareSavedQuery($event)"\n ngce-on-share_query="shareQuery($event)"\n ngce-on-query_share_link_copied="queryShareLinkCopied()"\n ngce-on-load_saved_queries="loadSavedQueries($event)"\n ngce-on-save_query_opened="saveQueryOpened($event)"\n ngce-on-output="output($event)">\n</ontotext-yasgui>\n';return __p}}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[427],{563:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/cookie-policy.css?v=3.0.
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[427],{563:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/cookie-policy.css?v=3.0.3-TR1" rel="stylesheet"/>\n\n<div class="cookie-consent-modal" ng-show="showCookieConsent">\n <div class="cookie-consent-content">\n <span>{{\'cookie.cookie_consent\' | translate}} <a href="#" class="btn btn-link p-0"\n ng-click="showCookiePolicy()">{{\'cookie.cookie_policy_url_label\' | translate}}</a>.</span>\n <button class="btn btn-primary" ng-click="acceptConsent()">{{\'common.ok.btn\' | translate}}</button>\n </div>\n</div>\n';return __p}}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[428],{564:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/cookie-policy.css?v=3.0.
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[428],{564:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/cookie-policy.css?v=3.0.3-TR1" rel="stylesheet"/>\n\n<div class="cookie-policy-modal">\n <div class="title">{{\'cookie.policy.title\' | translate}}</div>\n\n <div class="heading">{{\'cookie.policy.purpose_heading\' | translate}}</div>\n <div class="text">{{\'cookie.policy.purpose_text\' | translate}}</div>\n <div class="text mt-1">{{\'cookie.policy.purpose_enterprise_text\' | translate}}</div>\n\n <div class="heading">{{\'cookie.policy.privacy_commitment_heading\' | translate}}</div>\n <div class="text">{{\'cookie.policy.privacy_commitment_text\' | translate}}</div>\n <ul>\n <li>{{\'cookie.policy.privacy_commitment_1\' | translate}}</li>\n <li>{{\'cookie.policy.privacy_commitment_2\' | translate}}</li>\n </ul>\n\n <div class="heading">{{\'cookie.policy.cookies_heading\' | translate}}</div>\n <div class="text">{{\'cookie.policy.cookies_text\' | translate}}</div>\n\n <div class="heading">{{\'cookie.policy.manage_cookies_heading\' | translate}}</div>\n <div id="statistic-consent" class="toggle-group">\n <label><strong>{{\'cookie.policy.statistic_cookies\' | translate}}</strong></label>\n <span gdb-tooltip="{{\'cookie.policy.statistic_tooltip\' | translate}}" tooltip-placement="top"\n ng-click="toggleConsent(ConsentTypes.STATISTIC)"\n class="switch">\n <input type="checkbox" class="switch" ng-checked="cookieConsent.getStatisticConsent()"/>\n <label for="statistic-consent"></label>\n </span>\n </div>\n <div class="text">{{\'cookie.policy.statistic_text\' | translate}}</div>\n\n <div id="third-party-consent" class="toggle-group mt-1">\n <label><strong>{{\'cookie.policy.third_party_cookies\' | translate}}</strong></label>\n <span gdb-tooltip="{{\'cookie.policy.third_party_tooltip\' | translate}}" tooltip-placement="top"\n ng-click="toggleConsent(ConsentTypes.THIRD_PARTY)"\n class="switch">\n <input type="checkbox" class="switch" ng-checked="cookieConsent.thirdParty"/>\n <label for="third-party-consent"></label>\n </span>\n </div>\n <div class="text">{{\'cookie.policy.third_party_cookies_text\' | translate}}</div>\n\n <div class="text mt-1"><span>{{\'cookie.policy.change_cookies\' | translate}} <i>{{\'menu.setup.label\' | translate}} > {{\'menu.my.settings.label\' | translate}} > {{\'security.user.settings\' | translate}} > {{\'cookie.policy.change_cookies_location4\' | translate}}</i></span></div>\n\n <div class="text-right">\n <button class="btn btn-primary" ng-click="close()">{{\'common.close.btn\' | translate}}</button>\n </div>\n</div>\n';return __p}}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[443],{579:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/graphql/create-graphql-endpoint.css?v=3.0.
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[443],{579:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/graphql/create-graphql-endpoint.css?v=3.0.3-TR1" rel="stylesheet"/>\n<link href="css/wizard.css?v=3.0.3-TR1" rel="stylesheet"/>\n\n<div class="create-graphql-endpoint-view">\n <h1 id="title-container">\n <span>{{title}}</span>\n <page-info-tooltip></page-info-tooltip>\n </h1>\n\n <div class="core-errors-container" core-errors></div>\n\n <div class="create-graphql-endpoint-container">\n\n <div class="content">\n <div class="toolbar">\n <div class="form-inline">\n <label\n for="sourceRepositorySelector">{{\'graphql.create_endpoint.toolbar.source_repository_selector.label\' | translate}}</label>\n <select id="sourceRepositorySelector" ng-model="selectedSourceRepository"\n ng-options="repository as repository.label for repository in sourceRepositories"\n ng-change="onSelectedSourceRepositoryChange(selectedSourceRepository)"\n ng-disabled="generatingEndpoint"\n class="form-control source-repository-selector"\n gdb-tooltip="{{\'graphql.create_endpoint.toolbar.source_repository_selector.tooltip\' | translate}}"\n tooltip-placement="top">\n </select>\n </div>\n </div>\n\n <div class="wizard-container mt-2">\n <div class="wizard">\n <div class="wizard-steps">\n <div ng-repeat="step in wizardModel.steps" ng-click="onStepClick(step); $event.preventDefault()"\n class="wizard-step" ng-class="{active: step.active, completed: step.visited}">\n <span class="step-title">{{\'graphql.create_endpoint.wizard_steps.\' + step.id + \'.title\' | translate}}</span>\n <span class="fa fa-chevron-right step-decoration"></span>\n </div>\n </div>\n\n <div class="wizard-content">\n <div ng-repeat="step in wizardModel.steps" ng-if="step.active" class="wizard-step-content">\n <div ng-switch="step.id">\n <div ng-switch-when="select_schema_sources">\n <select-schema-sources step-definition="step"></select-schema-sources>\n </div>\n <div ng-switch-when="configure_endpoint">\n <configure-endpoint step-definition="step"></configure-endpoint>\n </div>\n <div ng-switch-when="generate_endpoint">\n <generate-endpoint step-definition="step"></generate-endpoint>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n';return __p}}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[444],{580:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/graphql/graphql-endpoint-management.css?v=3.0.2" rel="stylesheet"/>\n\n<div class="graphql-endpoint-management-view">\n <h1 id="title-container">\n <span id="graphql-endpoint-management-title-label">{{title}}</span>\n <page-info-tooltip></page-info-tooltip>\n </h1>\n\n <div core-errors></div>\n\n <div onto-loader-new\n ng-show="loadingEndpointsInfo"\n class="graphql-endpoint-management-page-loader"\n size="100">\n </div>\n\n <div ng-if="getActiveRepository() && !loadingEndpointsInfo" class="endpoint-management-container">\n\n <div class="toolbar">\n <div class="endpoints-filter">\n <input type="text" ng-if="hasEndpoints" class="form-control endpoints-filter-field"\n placeholder="{{\'graphql.endpoints_management.toolbar.endpoints_filter.placeholder\' | translate}}"\n ng-model="filterTerm" ng-change="onEndpointsFilter(filterTerm)" aria-label="Filter endpoints"\n autocomplete="off">\n </div>\n\n <div class="actions">\n <button class="btn btn-primary create-endpoint-btn" ng-click="startCreateEndpointWizard()"\n gdb-tooltip="{{\'graphql.endpoints_management.toolbar.create_endpoint.tooltip\' | translate}}">\n <span class="fa-kit fa-gdb-graphql"></span> \n <span>{{\'graphql.endpoints_management.toolbar.create_endpoint.label\' | translate}}</span>\n </button>\n <button class="btn btn-secondary import-schema-definition-btn ml-1" ng-click="importSchema()"\n gdb-tooltip="{{\'graphql.endpoints_management.toolbar.import_schema.tooltip\' | translate}}">\n <span class="fa fa-upload"></span> \n <span>{{\'graphql.endpoints_management.toolbar.import_schema.label\' | translate}}</span>\n </button>\n </div>\n </div>\n\n <div ng-if="!hasEndpoints" class="alert alert-info no-endpoints mt-2">\n <span>{{\'graphql.endpoints_management.table.messages.no_endpoints_in_repository\' | translate}}</span>\n </div>\n\n <table ng-if="hasEndpoints" class="endpoints-info-table table mt-1"\n aria-describedby="GraphQL endpoints info table">\n <thead>\n <tr>\n <th scope="col" class="toggle-col"></th>\n <th scope="col" class="status-col"></th>\n <th scope="col" class="endpoint-id-col">\n <span gdb-tooltip="{{\'graphql.endpoints_management.table.column.id.tooltip\' | translate}}">\n {{\'graphql.endpoints_management.table.column.id.label\' | translate}}\n </span>\n </th>\n <th scope="col" class="endpoint-label-col">\n <span gdb-tooltip="{{\'graphql.endpoints_management.table.column.label.tooltip\' | translate}}">\n {{\'graphql.endpoints_management.table.column.label.label\' | translate}}\n </span>\n </th>\n <th scope="col" class="endpoint-is-default-col text-center">\n <span gdb-tooltip="{{\'graphql.endpoints_management.table.column.is_default.tooltip\' | translate}}">\n {{\'graphql.endpoints_management.table.column.is_default.label\' | translate}}\n </span>\n </th>\n <th scope="col" class="endpoint-is-active-col text-center">\n <span gdb-tooltip="{{\'graphql.endpoints_management.table.column.is_active.tooltip\' | translate}}">\n {{\'graphql.endpoints_management.table.column.is_active.label\' | translate}}\n </span>\n </th>\n <th scope="col" class="endpoint-modified-on-col">\n <span gdb-tooltip="{{\'graphql.endpoints_management.table.column.modified_on.tooltip\' | translate}}">\n {{\'graphql.endpoints_management.table.column.modified_on.label\' | translate}}\n </span>\n </th>\n <th scope="col" class="endpoint-types-count-col numeric">\n <span gdb-tooltip="{{\'graphql.endpoints_management.table.column.types_count.tooltip\' | translate}}">\n {{\'graphql.endpoints_management.table.column.types_count.label\' | translate}}\n </span>\n </th>\n <th scope="col" class="endpoint-props-count-col numeric">\n <span gdb-tooltip="{{\'graphql.endpoints_management.table.column.props_count.tooltip\' | translate}}">\n {{\'graphql.endpoints_management.table.column.props_count.label\' | translate}}\n </span>\n </th>\n <th scope="col" class="endpoint-actions-col">\n <span gdb-tooltip="{{\'graphql.endpoints_management.table.column.actions.tooltip\' | translate}}">\n {{\'graphql.endpoints_management.table.column.actions.label\' | translate}}\n </span>\n </th>\n </tr>\n </thead>\n\n <tr ng-if="operationInProgress" class="overlay-row">\n <td colspan="9">\n <div class="endpoint-operation-progress" onto-loader-fancy size="100" hide-message="true"></div>\n </td>\n </tr>\n\n <tbody>\n <tr ng-repeat-start="endpoint in endpointsInfoList.endpoints track by endpoint.endpointId">\n <td class="toggle-row">\n <a href="#" ng-click="toggleRow($event, $index)">\n <i class="fa fa-chevron-right" ng-if="expandedRow !== $index"></i>\n <i class="fa fa-chevron-down" ng-if="expandedRow === $index"></i>\n </a>\n </td>\n <td class="status-cell">\n <a href="#" ng-if="endpoint.errors > 0 || endpoint.warnings > 0"\n ng-click="onShowEndpointReport(endpoint)"\n gdb-tooltip="{{\'graphql.endpoints_management.table.actions.view_report.tooltip\' | translate}}"\n class="endpoint-report-link btn btn-link">\n <i ng-if="!endpoint.createdSuccessfully" class="fa-regular fa-circle-xmark status-failed"></i>\n <i ng-if="endpoint.createdSuccessfully" class="fa-regular fa-circle-check status-success"></i>\n </a>\n </td>\n <td>\n <span ng-if="!endpoint.active"\n gdb-tooltip="{{\'graphql.endpoints_management.table.actions.explore_endpoint.inactive.tooltip\' | translate}}"\n class="endpoint-link">{{endpoint.endpointId}}</span>\n <a ng-if="endpoint.active" href="#" ng-click="onExploreEndpoint(endpoint)"\n gdb-tooltip="{{\'graphql.endpoints_management.table.actions.explore_endpoint.active.tooltip\' | translate}}"\n class="endpoint-link">{{endpoint.endpointId}}</a>\n </td>\n <td>{{endpoint.label}}</td>\n <td class="default-endpoint-selector">\n <label class="endpoint-default-state">\n <input type="radio" ng-model="selectedDefaultEndpoint.default" ng-value="endpoint.default"\n ng-disabled="!endpoint.createdSuccessfully"\n ng-change="setEndpointAsDefault(endpoint)"/>\n </label>\n </td>\n <td class="active-endpoint-selector">\n <span ng-click="!endpoint.createdSuccessfully || toggleEndpointActiveState(endpoint)"\n class="toggle-active-state">\n <input type="checkbox" class="switch" ng-checked="endpoint.active"\n ng-disabled="!endpoint.createdSuccessfully"/>\n <label></label>\n </span>\n </td>\n <td title="{{endpoint.lastModified}}">{{endpoint.lastModified | date: \'yyyy-MM-dd\'}}</td>\n <td class="objects-count numeric">{{endpoint.objectsCount}}</td>\n <td class="properties-count numeric">{{endpoint.propertiesCount}}</td>\n <td class="endpoint-actions">\n <div class="btn-group">\n <button class="btn btn-link secondary btn-sm open-endpoint-actions-btn"\n data-toggle="dropdown" aria-expanded="false"\n ng-if="true"\n ng-disabled="false">\n <i class="fa fa-ellipsis"></i>\n </button>\n <div class="dropdown-menu dropdown-menu-right endpoint-actions-menu">\n <button class="dropdown-item export-schema-btn" type="button"\n ng-click="onExportSchema(endpoint)">\n <i class="fa fa-arrow-down-to-line"></i> \n <span>{{\'graphql.endpoints_management.table.actions.export_schema.label\' | translate}}</span>\n </button>\n <button class="dropdown-item configure-endpoint-btn" type="button"\n ng-click="onConfigureEndpoint(endpoint)">\n <i class="fa fa-gear"></i> \n <span>{{\'graphql.endpoints_management.table.actions.configure_endpoint.label\' | translate}}</span>\n </button>\n <div class="dropdown-divider"></div>\n <button class="dropdown-item delete-endpoint-btn" type="button"\n ng-click="onDeleteEndpoint(endpoint)">\n <i class="fa fa-trash-can"></i> \n <span>{{\'graphql.endpoints_management.table.actions.delete_endpoint.label\' | translate}}</span>\n </button>\n </div>\n </div>\n </td>\n </tr>\n <tr ng-repeat-end ng-if="expandedRow === $index" class="endpoint-description-row">\n <td></td>\n <td colspan="8">\n <strong>{{\'graphql.endpoints_management.table.labels.description\' | translate}}</strong>\n <div class="endpoint-description">{{endpoint.description}}</div>\n </td>\n </tr>\n <tr ng-if="endpointsInfoList.endpoints.length === 0" class="no-results">\n <td colspan="9">\n <div class="alert alert-info">\n <span>{{\'graphql.endpoints_management.table.messages.endpoints_filter_no_result\' | translate}}</span>\n </div>\n </tr>\n </tbody>\n </table>\n </div>\n</div>\n\n\n\n';return __p}}}]);
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[444],{580:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/graphql/graphql-endpoint-management.css?v=3.0.3-TR1" rel="stylesheet"/>\n\n<div class="graphql-endpoint-management-view">\n <h1 id="title-container">\n <span id="graphql-endpoint-management-title-label">{{title}}</span>\n <page-info-tooltip></page-info-tooltip>\n </h1>\n\n <div core-errors></div>\n\n <div onto-loader-new\n ng-show="loadingEndpointsInfo"\n class="graphql-endpoint-management-page-loader"\n size="100">\n </div>\n\n <div ng-if="getActiveRepository() && !loadingEndpointsInfo" class="endpoint-management-container">\n\n <div class="toolbar">\n <div class="endpoints-filter">\n <input type="text" ng-if="hasEndpoints" class="form-control endpoints-filter-field"\n placeholder="{{\'graphql.endpoints_management.toolbar.endpoints_filter.placeholder\' | translate}}"\n ng-model="filterTerm" ng-change="onEndpointsFilter(filterTerm)" aria-label="Filter endpoints"\n autocomplete="off">\n </div>\n\n <div class="actions">\n <button class="btn btn-primary create-endpoint-btn" ng-click="startCreateEndpointWizard()"\n gdb-tooltip="{{\'graphql.endpoints_management.toolbar.create_endpoint.tooltip\' | translate}}">\n <span class="fa-kit fa-gdb-graphql"></span> \n <span>{{\'graphql.endpoints_management.toolbar.create_endpoint.label\' | translate}}</span>\n </button>\n <button class="btn btn-secondary import-schema-definition-btn ml-1" ng-click="importSchema()"\n gdb-tooltip="{{\'graphql.endpoints_management.toolbar.import_schema.tooltip\' | translate}}">\n <span class="fa fa-upload"></span> \n <span>{{\'graphql.endpoints_management.toolbar.import_schema.label\' | translate}}</span>\n </button>\n </div>\n </div>\n\n <div ng-if="!hasEndpoints" class="alert alert-info no-endpoints mt-2">\n <span>{{\'graphql.endpoints_management.table.messages.no_endpoints_in_repository\' | translate}}</span>\n </div>\n\n <table ng-if="hasEndpoints" class="endpoints-info-table table mt-1"\n aria-describedby="GraphQL endpoints info table">\n <thead>\n <tr>\n <th scope="col" class="toggle-col"></th>\n <th scope="col" class="status-col"></th>\n <th scope="col" class="endpoint-id-col">\n <span gdb-tooltip="{{\'graphql.endpoints_management.table.column.id.tooltip\' | translate}}">\n {{\'graphql.endpoints_management.table.column.id.label\' | translate}}\n </span>\n </th>\n <th scope="col" class="endpoint-label-col">\n <span gdb-tooltip="{{\'graphql.endpoints_management.table.column.label.tooltip\' | translate}}">\n {{\'graphql.endpoints_management.table.column.label.label\' | translate}}\n </span>\n </th>\n <th scope="col" class="endpoint-is-default-col text-center">\n <span gdb-tooltip="{{\'graphql.endpoints_management.table.column.is_default.tooltip\' | translate}}">\n {{\'graphql.endpoints_management.table.column.is_default.label\' | translate}}\n </span>\n </th>\n <th scope="col" class="endpoint-is-active-col text-center">\n <span gdb-tooltip="{{\'graphql.endpoints_management.table.column.is_active.tooltip\' | translate}}">\n {{\'graphql.endpoints_management.table.column.is_active.label\' | translate}}\n </span>\n </th>\n <th scope="col" class="endpoint-modified-on-col">\n <span gdb-tooltip="{{\'graphql.endpoints_management.table.column.modified_on.tooltip\' | translate}}">\n {{\'graphql.endpoints_management.table.column.modified_on.label\' | translate}}\n </span>\n </th>\n <th scope="col" class="endpoint-types-count-col numeric">\n <span gdb-tooltip="{{\'graphql.endpoints_management.table.column.types_count.tooltip\' | translate}}">\n {{\'graphql.endpoints_management.table.column.types_count.label\' | translate}}\n </span>\n </th>\n <th scope="col" class="endpoint-props-count-col numeric">\n <span gdb-tooltip="{{\'graphql.endpoints_management.table.column.props_count.tooltip\' | translate}}">\n {{\'graphql.endpoints_management.table.column.props_count.label\' | translate}}\n </span>\n </th>\n <th scope="col" class="endpoint-actions-col">\n <span gdb-tooltip="{{\'graphql.endpoints_management.table.column.actions.tooltip\' | translate}}">\n {{\'graphql.endpoints_management.table.column.actions.label\' | translate}}\n </span>\n </th>\n </tr>\n </thead>\n\n <tr ng-if="operationInProgress" class="overlay-row">\n <td colspan="9">\n <div class="endpoint-operation-progress" onto-loader-fancy size="100" hide-message="true"></div>\n </td>\n </tr>\n\n <tbody>\n <tr ng-repeat-start="endpoint in endpointsInfoList.endpoints track by endpoint.endpointId">\n <td class="toggle-row">\n <a href="#" ng-click="toggleRow($event, $index)">\n <i class="fa fa-chevron-right" ng-if="expandedRow !== $index"></i>\n <i class="fa fa-chevron-down" ng-if="expandedRow === $index"></i>\n </a>\n </td>\n <td class="status-cell">\n <a href="#" ng-if="endpoint.errors > 0 || endpoint.warnings > 0"\n ng-click="onShowEndpointReport(endpoint)"\n gdb-tooltip="{{\'graphql.endpoints_management.table.actions.view_report.tooltip\' | translate}}"\n class="endpoint-report-link btn btn-link">\n <i ng-if="!endpoint.createdSuccessfully" class="fa-regular fa-circle-xmark status-failed"></i>\n <i ng-if="endpoint.createdSuccessfully" class="fa-regular fa-circle-check status-success"></i>\n </a>\n </td>\n <td>\n <span ng-if="!endpoint.active"\n gdb-tooltip="{{\'graphql.endpoints_management.table.actions.explore_endpoint.inactive.tooltip\' | translate}}"\n class="endpoint-link">{{endpoint.endpointId}}</span>\n <a ng-if="endpoint.active" href="#" ng-click="onExploreEndpoint(endpoint)"\n gdb-tooltip="{{\'graphql.endpoints_management.table.actions.explore_endpoint.active.tooltip\' | translate}}"\n class="endpoint-link">{{endpoint.endpointId}}</a>\n </td>\n <td>{{endpoint.label}}</td>\n <td class="default-endpoint-selector">\n <label class="endpoint-default-state">\n <input type="radio" ng-model="selectedDefaultEndpoint.default" ng-value="endpoint.default"\n ng-disabled="!endpoint.createdSuccessfully"\n ng-change="setEndpointAsDefault(endpoint)"/>\n </label>\n </td>\n <td class="active-endpoint-selector">\n <span ng-click="!endpoint.createdSuccessfully || toggleEndpointActiveState(endpoint)"\n class="toggle-active-state">\n <input type="checkbox" class="switch" ng-checked="endpoint.active"\n ng-disabled="!endpoint.createdSuccessfully"/>\n <label></label>\n </span>\n </td>\n <td title="{{endpoint.lastModified}}">{{endpoint.lastModified | date: \'yyyy-MM-dd\'}}</td>\n <td class="objects-count numeric">{{endpoint.objectsCount}}</td>\n <td class="properties-count numeric">{{endpoint.propertiesCount}}</td>\n <td class="endpoint-actions">\n <div class="btn-group">\n <button class="btn btn-link secondary btn-sm open-endpoint-actions-btn"\n data-toggle="dropdown" aria-expanded="false"\n ng-if="true"\n ng-disabled="false">\n <i class="fa fa-ellipsis"></i>\n </button>\n <div class="dropdown-menu dropdown-menu-right endpoint-actions-menu">\n <button class="dropdown-item export-schema-btn" type="button"\n ng-click="onExportSchema(endpoint)">\n <i class="fa fa-arrow-down-to-line"></i> \n <span>{{\'graphql.endpoints_management.table.actions.export_schema.label\' | translate}}</span>\n </button>\n <button class="dropdown-item configure-endpoint-btn" type="button"\n ng-click="onConfigureEndpoint(endpoint)">\n <i class="fa fa-gear"></i> \n <span>{{\'graphql.endpoints_management.table.actions.configure_endpoint.label\' | translate}}</span>\n </button>\n <div class="dropdown-divider"></div>\n <button class="dropdown-item delete-endpoint-btn" type="button"\n ng-click="onDeleteEndpoint(endpoint)">\n <i class="fa fa-trash-can"></i> \n <span>{{\'graphql.endpoints_management.table.actions.delete_endpoint.label\' | translate}}</span>\n </button>\n </div>\n </div>\n </td>\n </tr>\n <tr ng-repeat-end ng-if="expandedRow === $index" class="endpoint-description-row">\n <td></td>\n <td colspan="8">\n <strong>{{\'graphql.endpoints_management.table.labels.description\' | translate}}</strong>\n <div class="endpoint-description">{{endpoint.description}}</div>\n </td>\n </tr>\n <tr ng-if="endpointsInfoList.endpoints.length === 0" class="no-results">\n <td colspan="9">\n <div class="alert alert-info">\n <span>{{\'graphql.endpoints_management.table.messages.endpoints_filter_no_result\' | translate}}</span>\n </div>\n </tr>\n </tbody>\n </table>\n </div>\n</div>\n\n\n\n';return __p}}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[445],{581:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/graphql/graphql-playground.css?v=3.0.
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[445],{581:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/graphql/graphql-playground.css?v=3.0.3-TR1" rel="stylesheet"/>\n\n<div class="graphql-playground-view">\n <h1 id="title-container">\n <span id="graphql-playground-title-label">{{title}}</span>\n <page-info-tooltip></page-info-tooltip>\n\n <div ng-if="!loadingEndpoints && graphqlEndpoints.length" class="toolbar pull-right">\n <select ng-model="selectedGraphqlEndpoint"\n ng-options="endpoint as endpoint.label for endpoint in graphqlEndpoints"\n ng-change="onGraphqlEndpointChange(selectedGraphqlEndpoint)"\n class="form-control graphql-endpoint-selector"\n gdb-tooltip="{{\'graphql.playground.endpoint_selector.tooltip\' | translate}}"\n tooltip-placement="top">\n </select>\n </div>\n </h1>\n\n <div core-errors></div>\n\n <div onto-loader-new\n ng-show="loadingEndpoints"\n class="graphql-playground-page-loader"\n size="100">\n </div>\n\n <div class="content" ng-if="initialized">\n <div class="no-endpoints-view" ng-show="!loadingEndpoints && configuration === undefined && !graphqlEndpoints.length">\n <div class="alert alert-warning">\n <div ng-bind-html="\'graphql.playground.message.no_schemas_in_repository\' | translate | trustAsHtml"></div>\n </div>\n </div>\n\n <div class="graphql-playground-container" ng-if="!loadingEndpoints && configuration && getActiveRepositoryNoError()">\n <graphql-playground id="graphql-playground" configuration="configuration"></graphql-playground>\n </div>\n </div>\n</div>\n\n\n\n';return __p}}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[446],{582:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/graphql/graphql-endpoint-configuration-modal.css?v=3.0.
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[446],{582:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/graphql/graphql-endpoint-configuration-modal.css?v=3.0.3-TR1" rel="stylesheet"/>\n\n<div class="modal-header">\n <h3 class="modal-title">{{\'graphql.endpoints_management.endpoint_configuration_modal.title\' | translate}}</h3>\n <span ng-click="toggleAdvancedSettings()" class="toggle-advanced-settings">\n <input type="checkbox" class="switch" ng-checked="showAdvancedSettings"/>\n <label></label>\n <span>{{\'graphql.endpoints_management.endpoint_configuration_modal.actions.show_advanced_settings.label\' | translate}}</span>\n </span>\n</div>\n<div class="modal-body graphql-endpoint-configuration-modal-body">\n <div class="graphql-endpoint-configuration-loader" onto-loader-new hide-message="true"\n size="100" ng-show="loadingEndpointConfigurationSettings"></div>\n\n <dynamic-form ng-if="!loadingEndpointConfigurationSettings" form-model="endpointConfigurationSettings.settings"\n on-validity-change="handleValidityChange(valid)" show-all-fields="showAdvancedSettings"\n translation-key-prefix="graphql.endpoints_management.endpoint_configuration_modal.settings."\n form-ctrl="formCtrl">\n </dynamic-form>\n</div>\n<div class="modal-footer mt-0">\n <button type="button" class="btn btn-secondary cancel-btn" ng-click="cancel()">{{\'common.cancel.btn\' | translate}}\n </button>\n <button id="graphql-endpoint-configuration-modal-submit"\n class="btn btn-primary"\n ng-disabled="!endpointConfigurationSettingsValid || savingEndpointSettings || formCtrl.$pristine"\n ng-click="ok()" type="submit">\n <span>{{\'save.changes.label\' | translate}}</span>\n <span class="saving-endpoint-settings" ng-if="savingEndpointSettings" onto-loader-fancy hide-message="true"\n size="15"></span>\n </button>\n</div>\n';return __p}}}]);
|