graphdb-workbench 2.7.0-TR13 → 2.7.0-TR15
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/{10.7d4b004077fe54d3482c.bundle.js → 10.d290928cc0a0f284bec7.bundle.js} +1 -1
- package/dist/{143.dd2b4deff681e106d2c9.bundle.js → 143.00c84b16a9d1e4ad985c.bundle.js} +1 -1
- package/dist/146.82aaae7c0f15a190b692.bundle.js +1 -1
- package/dist/{16.96c2dd100f026a4e4ee8.bundle.js → 16.dae40f821fdc6ebfaa17.bundle.js} +1 -1
- package/dist/{162.bdd0753e62eba04b059b.bundle.js → 162.c60183fadad386769974.bundle.js} +1 -1
- package/dist/{2.e09c71dbfa6dfebc2757.bundle.js → 2.f30cac0632adbf64b1ff.bundle.js} +1 -1
- package/dist/26.cf866692d0e1ab5f6663.bundle.js +1 -0
- package/dist/27.f979984f701cd7d90a09.bundle.js +1 -1
- package/dist/279.38897ac8594851063f17.bundle.js +1 -0
- package/dist/28.9cc2b0769a41c49847bd.bundle.js +1 -1
- package/dist/29.936102485048579895ba.bundle.js +1 -1
- package/dist/297.1bdc6a3832d57eb81bac.bundle.js +1 -1
- package/dist/299.282284f1dfdae76e16e8.bundle.js +1 -1
- package/dist/300.50b90ddcd4a3e62127bf.bundle.js +1 -1
- package/dist/301.103a2b39a148c9635b34.bundle.js +1 -1
- package/dist/31.33011b6711b5279f1cec.bundle.js +1 -0
- package/dist/{320.bc0f015170a4fa1cace0.bundle.js → 320.bc9ff84d0a327cc1ed9f.bundle.js} +1 -1
- package/dist/329.9cce24674845ac56ceae.bundle.js +1 -1
- package/dist/42.ef4ef5d14a8edc140ea2.bundle.js +1 -1
- package/dist/71.1e1a533350a7137809ef.bundle.js +1 -0
- package/dist/8.4ecff4d44fde5be15361.bundle.js +1 -0
- package/dist/{9.a00fbccff646dee49168.bundle.js → 9.359dca1085489f6b935d.bundle.js} +1 -1
- package/dist/{bundle.a905ff95bc0b01b69c69.bundle.js → bundle.33a2e99fc131e7c3996e.bundle.js} +2 -2
- package/dist/i18n/locale-en.json +13 -8
- package/dist/i18n/locale-fr.json +12 -7
- package/dist/index.html +3 -3
- package/dist/js/angular/core/directives/autocomplete/templates/autocomplete.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/yasgui-component/templates/yasgui-component.html +1 -1
- package/dist/js/angular/import/templates/import-resource-tree.html +21 -22
- package/dist/js/angular/security/templates/user.html +1 -1
- package/dist/license-checker.json +4 -4
- package/dist/pages/aclmanagement.html +18 -6
- 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 +11 -7
- 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 +2 -2
- package/dist/26.c226d79ff8a6003f470d.bundle.js +0 -1
- package/dist/279.de4891887c2b68f8df44.bundle.js +0 -1
- package/dist/31.06ca900e11de820e1c0d.bundle.js +0 -1
- package/dist/71.19d58211babce55c8ee1.bundle.js +0 -1
- package/dist/8.bc3b17f87a3a877d9924.bundle.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[8,31,43,71,72,73,75,142,143,144,145,150,158,159,161,162,163,165,166,250,267,269,272],{101:function(e,t,r){"use strict";r.r(t),r.d(t,"FileUtils",(function(){return s}));class s{static convertBytesToMegabytes(e){return Math.floor(e/1048576)}static getFilenameAndExtension(e){const t=e.lastIndexOf(".");return{filename:e.substring(0,t),extension:e.substring(t+1)}}}},102:function(e,t,r){"use strict";r.r(t),r.d(t,"ImportResourceTreeElement",(function(){return s}));class s{constructor(){this.importResource=void 0,this.parent=void 0,this.partialSelected=!1,this.indent=0,this.isImportable=!1,this.hasOngoingImport=!1,this.hasStatusInfo=!1,this.canResetStatus=!1,this.name="",this.shortenedName="",this.path="",this.shortenedContext="",this.selected=!1,this.directories=[],this.files=[],this.isImportedBiggerThanModified=!1,this.isModifiedBiggerThanImported=!1,this.isEditable=!1,this.iconClass=""}addResource(e){if(e.isFile())this.files.push(e);else{if(!e.isDirectory())throw new Error("Unsupported resource type!");this.directories.push(e)}}getOrCreateDirectory(e){let t=this.directories.find(t=>t.name===e);return t||(t=new s,t.name=e,this.directories.push(t)),t}getRoot(){return this.isRoot()?this:this.parent.getRoot()}isRoot(){return void 0===this.parent}isDirectory(){return this.importResource.isDirectory()}isFile(){return!this.isRoot()&&this.importResource.isFile()}isEmpty(){return 0===this.directories.length&&0===this.files.length}toList(){const e=[];return this.parent&&e.push(this),this.directories.forEach(t=>{e.push(...t.toList())}),e.push(...this.files),e}setSelection(e,t=!0){this.selected=e,this.files.forEach(t=>t.setSelection(e,!1)),this.directories.forEach(t=>t.setSelection(e,!1)),t&&this.getRoot().updateSelectionState()}updateSelectionState(){if(this.directories.forEach(e=>e.updateSelectionState()),this.parent&&this.isDirectory()){const e=this.hasUnselectedChildren(),t=this.hasSelectedChildren();this.selected=t&&!e,this.partialSelected=t&&e}}hasUnselectedChildren(){return this.files.some(e=>!e.selected)||this.directories.some(e=>!e.selected||e.hasUnselectedChildren())}hasSelectedChildren(){return this.files.some(e=>e.selected)||this.directories.some(e=>e.selected||e.hasSelectedChildren())}selectAllWithStatus(e){this.importResource&&e.indexOf(this.importResource.status)>-1&&(this.selected=!0),this.files.forEach(t=>t.selectAllWithStatus(e)),this.directories.forEach(t=>t.selectAllWithStatus(e))}getAllSelected(){const e=[];return!this.isRoot()&&this.selected&&e.push(this),this.files.forEach(t=>e.push(...t.getAllSelected())),this.directories.forEach(t=>e.push(...t.getAllSelected())),_.cloneDeep(e)}deselectAll(){this.files.forEach(e=>e.deselectAll()),this.directories.forEach(e=>e.deselectAll()),this.selected=!1,this.partialSelected=!1}getAllSelectedFiles(){const e=[];return!this.isRoot()&&this.selected&&e.push(this.importResource),this.files.forEach(t=>e.push(...t.getAllSelectedFiles())),e}getAllSelectedFilesNames(){return this.getAllSelectedFiles().map(e=>e.name)}getResourceByName(e){if(this.importResource&&this.importResource.name===e)return this;const t=this.files.find(t=>t.importResource.name===e);if(t)return t;for(const t of this.directories){const r=t.getResourceByName(e);if(r)return r}return null}hasTextInResourcesName(e){return!!this.importResource.name.toLowerCase().includes(e.toLowerCase())||(!!this.files.some(t=>t.importResource.name.toLowerCase().includes(e.toLowerCase()))||this.directories.some(t=>t.hasTextInDirectoriesName(e)))}hasTextInDirectoriesName(e){return!(!this.isDirectory()||!this.name.toLowerCase().includes(e.toLowerCase()))||this.directories.some(t=>t.hasTextInDirectoriesName(e))}hasTextInFilesName(e){return!(!this.isFile()||!this.name.toLowerCase().includes(e.toLowerCase()))||(!!this.files.some(t=>t.importResource.name.toLowerCase().includes(e.toLowerCase()))||this.directories.some(t=>t.hasTextInFilesName(e)))}sort(e){this.directories.sort(e),this.files.sort(e),this.directories.forEach(t=>t.sort(e))}getSize(){return this.toList().length}}},103:function(e,t,r){"use strict";r.r(t),r.d(t,"SortingType",(function(){return s}));const s={NAME:"NAME",SIZE:"SIZE",MODIFIED:"MODIFIED",IMPORTED:"IMPORTED",CONTEXT:"CONTEXT"}},124:function(e,t,r){"use strict";r.r(t),r.d(t,"ImportViewPersistence",(function(){return s}));class s{constructor(e={}){this._isHelpVisible=void 0===e.isHelpVisible||e.isHelpVisible}get isHelpVisible(){return this._isHelpVisible}set isHelpVisible(e){this._isHelpVisible=e}toggleHelpVisibility(){this._isHelpVisible=!this._isHelpVisible}toJSON(){return{isHelpVisible:this._isHelpVisible}}}},125:function(e,t,r){"use strict";r.r(t),r.d(t,"ImportResource",(function(){return n}));var s=r(66),i=r(98),o=r(81);class n{constructor(e){this.name=e?e.name:void 0,this.status=e?e.status:s.ImportResourceStatus.NONE,this.message=e&&e.message?e.message:"",this.context=e&&e.context?e.context:"",this.replaceGraphs=e?e.replaceGraphs:[],this.baseURI=e?e.baseURI:void 0,this.forceSerial=!!e&&e.forceSerial,this.type=e?e.type:void 0,this.format=e?e.format:void 0,this.data=e?e.data:void 0,this.modifiedOn=e?e.lastModified:void 0,this.importedOn=e?e.imported:void 0,this.size=e?e.size:"",this.addedStatements=e?e.addedStatements:0,this.removedStatements=e?e.removedStatements:0,this.numReplacedGraphs=e?e.numReplacedGraphs:0,this.parserSettings=e?e.parserSettings:new i.ImportParsingSettings,this.requestIdHeadersToForward=e?e.requestIdHeadersToForward:void 0}isDirectory(){return o.ImportResourceType.DIRECTORY===this.type}isFile(){return o.ImportResourceType.FILE===this.type||o.ImportResourceType.URL===this.type||o.ImportResourceType.TEXT===this.type}isURL(){return o.ImportResourceType.URL===this.type}isText(){return o.ImportResourceType.TEXT===this.type}}},190:function(e,t){angular.module("graphdb.framework.rest.import.service",[]).factory("ImportRestService",s),s.$inject=["$http"];const r="rest/repositories";function s(e){return{getDefaultSettings:function(t){return e.get(`${r}/${t}/import/settings/default`)},getUploadedFiles:function(t){return e.get(`${r}/${t}/import/upload`)},getServerFiles:function(t){return e.get(`${r}/${t}/import/server`)},importServerFiles:function(t,s){return e.post(`${r}/${t}/import/server`,s)},importTextSnippet:function(t,s){return e.post(`${r}/${t}/import/upload/text`,s)},updateTextSnippet:function(t,s){return e.post(`${r}/${t}/import/upload/update/text`,s)},importFromUrl:function(t,s){return e.post(`${r}/${t}/import/upload/url`,s)},updateFromUrl:function(t,s){return e.post(`${r}/${t}/import/upload/update/url`,s)},stopImport:function(t,s){return e.delete(`${r}/${t}/import/upload`,{params:s})},resetServerFileStatus:function(t,s,i=!0){return e({method:"DELETE",url:`${r}/${t}/import/server/status`,params:{remove:i},data:s,headers:{"Content-type":"application/json;charset=utf-8"}})},resetUserDataStatus:function(t,s,i=!0){return e({method:"DELETE",url:`${r}/${t}/import/upload/status`,params:{remove:i},data:s,headers:{"Content-type":"application/json;charset=utf-8"}})}}}},191:function(e,t,r){"use strict";r.r(t);var s=r(66);angular.module("graphdb.framework.rest.upload.service",[]).factory("UploadRestService",i),i.$inject=["$http","Upload","$translate"];function i(e,t,r){return{createUploadPayload:function(e,r){let s;s=e.file?{file:e.file,importSettings:t.jsonBlob(r)}:{importSettings:t.jsonBlob(r)};return s},uploadUserDataFile:function(e,r,s){return t.upload({url:`rest/repositories/${e}/import/upload/file`,data:s}).progress(e=>i(e,r))},updateUserDataFile:function(e,r,s){return t.upload({url:`rest/repositories/${e}/import/upload/update/file`,data:s}).progress(e=>i(e,r))}};function i(e,t){if(t.file?(t.file=null,t.status=s.ImportResourceStatus.UPLOADING):t.status!==s.ImportResourceStatus.UPLOADING&&(t.status=s.ImportResourceStatus.PENDING),t.status===s.ImportResourceStatus.UPLOADING){const s=parseInt(100*e.loaded/e.total);t.message=r.instant("import.file.upload.progress",{progress:s})}}}},192:function(e,t,r){"use strict";r.r(t);var s=r(124);function i(e,t){const r=new s.ImportViewPersistence,i=()=>{let i=e.get(t.IMPORT_VIEW);return i||(i=r),new s.ImportViewPersistence(i)};return{initImportViewSettings:()=>{e.get(t.IMPORT_VIEW)||e.set(t.IMPORT_VIEW,r)},getImportViewSettings:i,toggleHelpVisibility:()=>{const r=i();r.toggleHelpVisibility(),e.set(t.IMPORT_VIEW,r.toJSON())},setHelpVisibility:r=>{const s=i();s.isHelpVisible=r,e.set(t.IMPORT_VIEW,s.toJSON())}}}angular.module("graphdb.framework.import.services.importviewstorageservice",[]).factory("ImportViewStorageService",i),i.$inject=["LocalStorageAdapter","LSKeys"]},193:function(e,t,r){"use strict";r.r(t);var s=r(97);function i(e,t,r,i){let o=!0;e.isHelpVisible=!1,e.fileSizeLimitInfoTemplateUrl="js/angular/import/templates/fileSizeLimitInfo.html",e.openTab=e=>{i.updateActiveTabId(e)},e.toggleHelp=()=>{const e=r.getImportViewSettings();r.toggleHelpVisibility(),n(!e.isHelpVisible)};const n=t=>{e.isHelpVisible=t},a=e=>{o&&0===e.getSize()&&(r.setHelpVisibility(!0),o=!1);const t=0===e.getSize();r.setHelpVisibility(t),n(t)},l=[];l.push(i.onActiveTabIdUpdated(r=>{e.activeTabId=r,t.hash(e.activeTabId),a(i.getResources())})),l.push(i.onResourcesUpdated(e=>{a(e)}));e.$on("$destroy",()=>l.forEach(e=>e()));const c=t.hash()||s.TABS.USER;e.openTab(c)}angular.module("graphdb.framework.impex.import.controllers.tab",[]).controller("TabController",i),i.$inject=["$scope","$location","ImportViewStorageService","ImportContextService"]},194:function(e,t){function r(e,t,r,s,i,o,n,a,l){e.settings=i,e.hasParserSettings=o,e.isMultiple=a,e.enableReplace=!(!e.settings.replaceGraphs||!e.settings.replaceGraphs.length),e.showAdvancedSettings=!1,e.hasError=function(e,t){return _.find(e,(function(e){return t===e.$name}))},e.ok=function(){e.settingsForm.replaceGraph.$setValidity("replaceGraph",!0),e.settingsForm.$valid&&(c(),t.close(e.settings))},e.cancel=function(){c(),t.dismiss(e.settings)},e.reset=function(){e.settings=_.cloneDeep(n),e.target="data"},e.addReplaceGraph=function(t){let i=!0;"default"!==t&&(i=s.isValidIri(t,t.toString())),e.settingsForm.replaceGraph.$setTouched(),e.settingsForm.replaceGraph.$setValidity("replaceGraph",i),e.settingsForm.replaceGraph.$valid&&(e.settings.replaceGraphs=e.settings.replaceGraphs||[],-1===_.indexOf(e.settings.replaceGraphs,t)?(e.replaceGraph="",e.settings.replaceGraphs.push(t)):r.warning(l.instant("import.graph.already.in.list")))},e.checkEnterReplaceGraph=function(t,r){13===t.keyCode&&(t.preventDefault(),e.addReplaceGraph(r))},e.switchParserSettings=function(){e.showAdvancedSettings=!e.showAdvancedSettings};const c=function(){"default"===e.target?e.settings.context="default":"data"===e.target&&(e.settings.context=""),e.enableReplace?"default"!==e.target&&"named"!==e.target||(e.settings.replaceGraphs=[e.settings.context]):e.settings.replaceGraphs=[]};e.settings.context?"default"===e.settings.context?(e.target="default",e.settings.context=""):e.target="named":e.target="data"}angular.module("graphdb.framework.impex.import.controllers.settings-modal",[]).controller("SettingsModalController",r),r.$inject=["$scope","$uibModalInstance","toastr","UriUtils","settings","hasParserSettings","defaultSettings","isMultiple","$translate"]},195:function(e,t){function r(e,t){e.importFormat={name:"Auto",type:""},e.startImport=!0,e.cancel=function(){t.dismiss()},e.ok=function(){t.close({url:e.dataUrl,format:e.importFormat.type,startImport:e.startImport})}}angular.module("graphdb.framework.impex.import.controllers.import-url",[]).controller("ImportUrlController",r),r.$inject=["$scope","$uibModalInstance","toastr"]},196:function(e,t){function r(e,t,r,s){e.importFormats=[{name:"RDF/JSON",type:"application/rdf+json"},{name:"JSON-LD",type:"application/ld+json"},{name:"NDJSON-LD",type:"application/x-ld+ndjson"},{name:"RDF/XML",type:"application/rdf+xml"},{name:"N3",type:"text/rdf+n3"},{name:"N-Triples",type:"text/plain"},{name:"N-Quads",type:"text/x-nquads"},{name:"Turtle",type:"text/turtle"},{name:"Turtle*",type:"application/x-turtlestar"},{name:"TriX",type:"application/trix"},{name:"TriG",type:"application/x-trig"},{name:"TriG*",type:"application/x-trigstar"}],e.rdfText=r,e.importFormat=e.importFormats.find(e=>e.type===s),e.startImport=!0,e.sizeLimit=1e5,e.setFormat=t=>{e.importFormat=t},e.cancel=()=>{t.dismiss()},e.ok=()=>{t.close({text:e.rdfText,format:e.importFormat.type,startImport:e.startImport})}}angular.module("graphdb.framework.impex.import.controllers.import-text-snippet",[]).controller("ImportTextSnippetController",r),r.$inject=["$scope","$uibModalInstance","text","format"]},197:function(e,t,r){"use strict";r.r(t);var s=r(0);function i(e,t,r,i,o){e.message=i.trustAsHtml(Object(s.decodeHTML)(r.instant("import.user_data.duplicates_confirmation.message",{duplicatedFiles:o}))),e.cancel=()=>{t.dismiss()},e.keepBoth=()=>{t.close({overwrite:!1})},e.overwrite=()=>{t.close({overwrite:!0})}}angular.module("graphdb.framework.impex.import.controllers.file-override-confirmation",[]).controller("FileOverrideConfirmationController",i),i.$inject=["$scope","$uibModalInstance","$translate","$sce","duplicatedFiles"]},198:function(e,t,r){"use strict";r.r(t),r.d(t,"FILE_FORMATS",(function(){return s})),r.d(t,"FileFormats",(function(){return i}));const s=["ttl","ttls","rdf","rj","n3","nt","nq","trig","trigs","trix","brf","owl","jsonld","xml","rdfs","ndjsonld","ndjson","jsonl"];class i{static getGZS(){return s.map(e=>`.${e}.gz`)}static getBasics(){return s.map(e=>"."+e)}static getFileFormatsExtended(){return[...this.getGZS(),...this.getBasics(),".zip"].join(", ")}static getFileFormatsHuman(){return[...this.getBasics()].join(" ")}static getTextFileFormatsHuman(){return this.getBasics().filter(e=>".brf"!==e).join(" ")}}},199:function(e,t,r){"use strict";r.r(t),r.d(t,"DateUtils",(function(){return s}));class s{static formatCurrentDateTime(){const e=new Date;return e.getFullYear()+"-"+_.padStart(e.getMonth()+1,2,"0")+"-"+_.padStart(e.getDate(),2,"0")+" "+_.padStart(e.getHours(),2,"0")+":"+_.padStart(e.getMinutes(),2,"0")+":"+_.padStart(e.getSeconds(),2,"0")+"."+_.padStart(e.getMilliseconds(),3,"0")}}},200:function(e,t,r){"use strict";r.r(t),r.d(t,"toImportResource",(function(){return a})),r.d(t,"INDENT",(function(){return l})),r.d(t,"toImportUserDataResource",(function(){return u})),r.d(t,"toImportServerResource",(function(){return d}));var s=r(102),i=r(125),o=r(66),n=r(81);const a=e=>e.map(e=>new i.ImportResource(e)),l=30,c=new Map;c.set(n.ImportResourceType.DIRECTORY,"icon-folder"),c.set(n.ImportResourceType.FILE,"icon-file");const p=new Map;p.set(n.ImportResourceType.DIRECTORY,"icon-folder"),p.set(n.ImportResourceType.FILE,"icon-upload"),p.set(n.ImportResourceType.URL,"icon-link"),p.set(n.ImportResourceType.TEXT,"icon-sparql");const u=e=>{const t=new s.ImportResourceTreeElement;return e.toSorted((e,t)=>t.modifiedOn-e.modifiedOn).forEach(e=>{m(t,e).iconClass=p.get(e.type)}),h(t),I(t),t},d=e=>{const t=new s.ImportResourceTreeElement;return e.forEach(e=>{m(t,e).iconClass=c.get(e.type)}),h(t),I(t),t},m=(e,t)=>{const r=g(t);let i;i=t.isDirectory()?r:r.slice(0,r.length-1);const o=f(e,i);if(t.isFile()){const e=new s.ImportResourceTreeElement;return e.parent=o,e.importResource=t,e.path=r.join("/"),e.name=r[r.length-1],o.addResource(e),e}return o.importResource=t,o.path=r.join("/"),o},f=(e,t)=>{let r=e;return t.forEach(e=>{const t=r.getOrCreateDirectory(e);t.parent=r,r=t}),r},g=e=>{if(e.isURL())return[e.name];const t=/[/\\]/;return t.test(e.name)?e.name.split(t):[e.name]},h=e=>{e.indent=8+E(e)*l+"px",e.directories.forEach(e=>h(e)),e.files.forEach(e=>h(e))},I=e=>{e.isRoot()||(e.isImportable=y(e.importResource),e.hasOngoingImport=v(e.importResource),e.canResetStatus=T(e.importResource),e.hasStatusInfo="DONE"===e.importResource.status||"ERROR"===e.importResource.status,e.isEditable=e.importResource.isText(),R(e),S(e),F(e)),e.directories.forEach(e=>I(e)),e.files.forEach(e=>I(e))},R=e=>{const t=e.importResource?e.importResource.context:"";t.length>63&&(e.shortenedContext=t.substring(0,30)+"..."+t.substring(t.length-30))},S=e=>{const t=e.name||"";t.length>123&&(e.shortenedName=t.substring(0,30)+"..."+t.substring(t.length-30))},F=e=>{const t=e.importResource;if(t){if(0===t.importedOn||0===t.modifiedOn||t.importedOn===t.modifiedOn)return;e.isImportedBiggerThanModified=t.importedOn>t.modifiedOn,e.isModifiedBiggerThanImported=!e.isImportedBiggerThanModified}},y=e=>e.status!==o.ImportResourceStatus.IMPORTING&&e.status!==o.ImportResourceStatus.UPLOADING&&e.status!==o.ImportResourceStatus.PENDING&&e.status!==o.ImportResourceStatus.INTERRUPTING,v=e=>e.status===o.ImportResourceStatus.IMPORTING||e.status===o.ImportResourceStatus.UPLOADING||e.status===o.ImportResourceStatus.PENDING||e.status===o.ImportResourceStatus.INTERRUPTING,T=e=>e.status===o.ImportResourceStatus.DONE||e.status===o.ImportResourceStatus.ERROR,E=e=>{let t=0;if(void 0===e.parent)return t;let r=e.parent;for(;r;)r=r.parent,t++;return t-1}},201:function(e,t,r){"use strict";r.r(t),r.d(t,"FilePrefixRegistry",(function(){return i}));var s=r(101);class i{constructor(){this.filesPrefixRegistry={}}buildPrefixesRegistry(e){e.filter(e=>"file"===e.type).forEach(e=>{const t=s.FileUtils.getFilenameAndExtension(e.name).filename,r=t.lastIndexOf("-");let i=r<0?0:t.substring(r+1),o=t.substring(0,r);if(r<0?(i=0,o=t):(i=t.substring(r+1),o=t.substring(0,r)),i){i=parseInt(i);const e=this.filesPrefixRegistry[o]||0;this.filesPrefixRegistry[o]=e<i?i:e}else this.filesPrefixRegistry[o]=0})}prefixDuplicates(e){return e.map(e=>{const{filename:t,extension:r}=s.FileUtils.getFilenameAndExtension(e.name),i=`${t}-${this.getIndexForFile(t)}.${r}`;return new File([e],i,{type:e.type,lastModified:e.lastModified})})}getIndexForFile(e){let t=this.filesPrefixRegistry[e];return void 0!==t?t++:t=0,this.filesPrefixRegistry[e]=t,t}}},241:function(e,t,r){"use strict";r.r(t);r(7),r(29),r(190),r(191);var s=r(97),i=(r(192),r(193),r(194),r(195),r(196),r(197),r(198)),o=r(70),n=r(101),a=r(199),l=r(200),c=r(102),p=r(0),u=r(201),d=r(103),m=r(66);const f=angular.module("graphdb.framework.impex.import.controllers",["ui.bootstrap","toastr","graphdb.framework.core.services.repositories","graphdb.framework.utils.localstorageadapter","graphdb.framework.utils.uriutils","graphdb.framework.guides.services","graphdb.framework.rest.import.service","graphdb.framework.rest.upload.service","graphdb.framework.import.services.importcontext","graphdb.framework.import.services.importviewstorageservice","graphdb.framework.impex.import.controllers.tab","graphdb.framework.impex.import.controllers.settings-modal","graphdb.framework.impex.import.controllers.import-url","graphdb.framework.impex.import.controllers.import-text-snippet","graphdb.framework.impex.import.controllers.file-override-confirmation"]),g="file",h="text",I="url";f.controller("ImportViewCtrl",["$scope","toastr","$interval","$repositories","$uibModal","$filter","$jwtAuth","$location","$translate","LicenseRestService","GuidesService","ModalService","ImportRestService","ImportContextService","ImportViewStorageService",function(e,t,r,a,u,m,f,g,h,I,R,S,F,y,v){const T=[];let E=null;e.files=[],e.fileChecked={},e.activeTabId=y.getActiveTabId(),e.selectedForImportFiles={},e.popoverTemplateUrl="settingsPopoverTemplate.html",e.fileFormatsExtended=i.FileFormats.getFileFormatsExtended(),e.fileFormatsHuman=i.FileFormats.getFileFormatsHuman()+h.instant("import.gz.zip"),e.textFileFormatsHuman=i.FileFormats.getTextFileFormatsHuman(),e.maxUploadFileSizeMB=0,e.SORTING_TYPES=d.SortingType,e.toTitleCase=e=>o.toTitleCase(e),e.pollList=()=>{E=r(()=>{e.updating||e.updateList(!1)},4e3)},e.setSettingsFor=(t,r,s,i=(()=>{}))=>{e.settingsFor=t,e.settings=w(t,r),""===t||"application/ld+json"===s||"application/x-ld+ndjson"===s||t.endsWith("jsonld")||t.endsWith("zip")||t.endsWith("gz")||"directory"===e.settings.type?(e.settings.hasContextLink=!0,e.defaultSettings.hasContextLink=!0):(e.settings.hasContextLink=!1,e.defaultSettings.hasContextLink=!1);const o={templateUrl:"js/angular/import/templates/settingsModal.html",controller:"SettingsModalController",resolve:{settings:function(){return _.cloneDeep(e.settings)},hasParserSettings:e.isLocalLocation,defaultSettings:function(){return e.defaultSettings},isMultiple:function(){return!t}},size:"lg"};R.isActive()&&(o.backdrop="static",o.keyboard=!1),u.open(o).result.then(t=>{e.settings=t,""===e.settingsFor?e.importSelected():e.importFile(e.settingsFor,!0)},t=>{e.settings=t,i&&i()})},e.updateImport=(t,r,s)=>{e.settingsFor=t,e.settings=w(t,r),e.importFile(t,s)},e.getSelectedFiles=()=>y.getResources().getAllSelectedFilesNames(),e.importSelected=t=>{const r=new Set([...Object.keys(e.selectedForImportFiles),...e.getSelectedFiles()]),s=Array.from(r),i=()=>{const r=s.shift();r&&(t&&(e.settings=w(r)),e.importFile(r,!0,i))};i()},e.isLocalLocation=()=>{const e=a.getActiveLocation();return e&&e.local},e.updateList=t=>{e.canWriteActiveRepo()&&$(e.tabId).is(":visible")&&e.updateListHttp(t)},e.onRepositoryChange=()=>{e.setRestricted(),e.isRestricted||(e.updateList(!0),b())},e.onImport=t=>{e.setSettingsFor(t.importResource.name,!1,t.importResource.format)},e.onStopImport=r=>{const s=r.importResource;F.stopImport(a.getActiveRepository(),{name:s.name,type:s.type}).success((function(){e.updateList()})).error((function(e){t.warning(h.instant("import.error.could.not.stop",{data:getError(e)}))}))},e.onRemove=e=>{const t=e.map(e=>e.name);x(t)},e.onReset=e=>{U(e,!1)},e.importAll=(t,r)=>{if(t.filter(e=>e.isFile()).forEach(t=>{e.selectedForImportFiles[t.path]=!0}),r)e.importSelected(t,r);else{let s="";1===t.length&&(s=t[0].importResource.name),e.setSettingsFor(s,r,void 0)}},e.onEditResource=t=>{t.importResource.isText()&&e.openTextSnippetDialog(t.importResource)};const b=()=>{e.canWriteActiveRepo()&&F.getDefaultSettings(a.getActiveRepository()).success((function(t){e.defaultSettings=t})).error((function(e){t.warning(h.instant("import.error.default.settings",{data:getError(e)}))}))},x=(e=[])=>{const t="<br/>"+e.join("<br/>"),r=Object(p.decodeHTML)(h.instant("import.remove.confirm.msg",{name:t}));S.openConfirmation(h.instant("common.confirm"),r,()=>{U(e,!0)})},w=(t,r)=>r||_.isEmpty(t)||_.isEmpty(e.savedSettings[t])?_.cloneDeep(e.defaultSettings):e.savedSettings[t];e.updateListHttp=r=>{(e.activeTabId===s.TABS.USER?F.getUploadedFiles:F.getServerFiles)(a.getActiveRepository()).success((function(t){s.TABS.SERVER===e.activeTabId?y.updateResources(Object(l.toImportServerResource)(Object(l.toImportResource)(t))):s.TABS.USER===e.activeTabId&&y.updateResources(Object(l.toImportUserDataResource)(Object(l.toImportResource)(t))),0===e.files.length||r?(e.files=t,y.updateFiles(e.files),e.files.forEach((function(t){t.type||(t.type=e.defaultType)}))):e.files.forEach((function(r){const s=_.find(t,_.matches({name:r.name}));r.status&&s&&_.assign(r,s),r.type||(r.type=e.defaultType)})),r&&s.TABS.USER===e.activeTabId&&(e.files=_.filter(e.files,(function(e){return void 0!==e.status})),y.updateFiles(e.files)),e.savedSettings=_.mapKeys(_.filter(e.files,"parserSettings"),"name")})).error((function(e){t.warning(h.instant("import.error.could.not.get.files",{data:getError(e)}))}))};const U=(r,i)=>{if(!r||r.length<1)return;(e.activeTabId===s.TABS.USER?F.resetUserDataStatus:F.resetServerFileStatus)(a.getActiveRepository(),r,i).success((function(){e.updateList(!0)})).error((function(e){t.warning(h.instant("import.error.could.not.clear",{data:getError(e)}))}))},O=()=>{T.forEach(e=>e())};T.push(e.$on("repositoryIsSet",e.onRepositoryChange)),T.push(e.$on("$destroy",()=>r.cancel(E))),T.push(y.onActiveTabIdUpdated(t=>{e.activeTabId=t,y.updateResources(new c.ImportResourceTreeElement),e.updateListHttp(!0)})),e.$on("$destroy",O),I.getInfo().success((function(t){e.appData={},e.appData.properties={};for(let r=0;r<t.length;r++)e.appData.properties[t[r].key]={source:t[r].source,value:t[r].value};e.maxUploadFileSizeMB=n.FileUtils.convertBytesToMegabytes(e.appData.properties["graphdb.workbench.maxUploadSize"].value)})).error((function(e){const r=getError(e);t.error(r,h.instant("common.error"))})),v.initImportViewSettings()}]),f.controller("ImportCtrl",["$scope","toastr","$controller","$translate","$repositories","ImportRestService","ImportContextService",function(e,t,r,s,i,o,n){e.loader=!0,angular.extend(this,r("ImportViewCtrl",{$scope:e})),e.defaultType="server",e.tabId="#import-server",e.importSelected=t=>{const r=Object.keys(e.selectedForImportFiles);a(r,t)},e.importFile=function(e){a([e])};const a=function(r,n){e.canWriteActiveRepo()&&o.importServerFiles(i.getActiveRepository(),{importSettings:n?null:e.settings,fileNames:r}).success((function(){e.updateList(),e.fileChecked={}})).error((function(e){t.error(s.instant("import.could.not.send.file",{data:getError(e)}))}))};!function(){e.pollList(),e.onRepositoryChange();const t=n.onResourcesUpdated(()=>{e.loader=!1,t()})}()}]),f.controller("UploadCtrl",["$scope","toastr","$controller","$uibModal","$translate","$repositories","ImportRestService","UploadRestService","ModalService","ImportContextService","EventEmitterService",function(e,t,r,s,i,o,l,c,p,d,f){const R=new u.FilePrefixRegistry,S=[];e.loader=!0,angular.extend(this,r("ImportViewCtrl",{$scope:e})),e.defaultType=g,e.tabId="#import-user",e.currentFiles=[];let F=!1;e.pastedDataIdx=1,e.fileSelected=function(t,r,s,i,o){const n={files:s,cancel:!1};f.emit("filesForUploadSelected",n,t=>{if(!t.cancel){y(o);const t=s||[];x(t);const r=[],i=[];t.forEach(t=>{e.files.some(e=>e.name===t.name)?r.push(t):i.push(t)}),r.length>0?w(r,i):(e.currentFiles=[...t],F=!0)}})},e.importFile=(r,s,o)=>{const n=e.files.find(e=>e.name===r);n?n.type===h?v(n,s,o):n.type===I?E(n,s,o):b(n,s,o):t.warning(i.instant("import.no.such.file",{name:r}))},e.openTextSnippetDialog=t=>{t&&t.data;s.open({templateUrl:"js/angular/import/templates/textSnippet.html",controller:"ImportTextSnippetController",resolve:{text:function(){return t?t.data:""},format:function(){return t?t.format:"text/turtle"}}}).result.then(r=>{t?(t.data===r.text&&t.format===r.format||t.status===m.ImportResourceStatus.NONE||(t.status=m.ImportResourceStatus.NONE,t.message=i.instant("import.text.snippet.not.imported")),t.data=r.text,t.format=r.format,T(t)):(t={type:"text",name:"Text snippet "+a.DateUtils.formatCurrentDateTime(),format:r.format,data:r.text},e.files.unshift(t),e.updateImport(t.name,!1,!1)),r.startImport&&e.setSettingsFor(t.name,!1,t.format)})},e.rdfDataFromURL=()=>{s.open({templateUrl:"js/angular/import/templates/urlImport.html",controller:"ImportUrlController",scope:e}).result.then((function(t){const r=_.find(e.files,{type:"url",name:t.url});r?r.format=t.format:e.files.unshift({type:"url",name:t.url,format:t.format,data:t.url}),e.updateImport(t.url,!0,!1),t.startImport&&e.setSettingsFor(t.url,!0,t.format)}))};const y=e=>{e.length>0&&e.forEach((function(e){t.warning(i.instant("import.large.file",{name:e.name,size:n.FileUtils.convertBytesToMegabytes(e.size)}))}))},v=(r,s,n)=>{e.settings.name=r.name,e.settings.type=r.type,e.settings.data=r.data,e.settings.format=r.format,r.status=m.ImportResourceStatus.PENDING;(s?l.importTextSnippet:l.updateTextSnippet)(o.getActiveRepository(),e.settings).success((function(){e.updateList()})).error((function(e){t.error(i.instant("import.could.not.send.data",{data:getError(e)})),r.status=m.ImportResourceStatus.ERROR,r.message=getError(e)})).finally(n||function(){})},T=r=>{e.updating=!0,l.updateTextSnippet(o.getActiveRepository(),r).success((function(e){})).error((function(e){t.error(i.instant("import.could.not.update.text",{data:getError(e)}))})).finally((function(){e.updating=!1}))},E=(r,s,n)=>{e.settings.name=r.name,e.settings.type=r.type,e.settings.data=r.data,e.settings.format=r.format,r.status=m.ImportResourceStatus.PENDING;(s?l.importFromUrl:l.updateFromUrl)(o.getActiveRepository(),e.settings).success((function(){e.updateList()})).error((function(e){t.error(i.instant("import.could.not.send.url",{data:getError(e)}))})).finally(n||function(){})},b=(r,s,n)=>{e.settings.name=r.name;const a=c.createUploadPayload(r,e.settings);(s?c.uploadUserDataFile:c.updateUserDataFile)(o.getActiveRepository(),r,a).then(()=>{e.updateList()}).catch(e=>{t.error(i.instant("import.could.not.upload.file",{data:getError(e)})),r.status=m.ImportResourceStatus.ERROR,r.message=getError(e)}).finally(n||function(){})},x=e=>{e.forEach((function(r){if("bz2"===r.name.substr(r.name.lastIndexOf(".")+1)){const s=e.indexOf(r);s>-1&&e.splice(s,1),t.error(i.instant("import.could.not.upload",{name:r.name}))}}))},w=(t,r)=>{const i=t.map(e=>e.name).join("<br/>");s.open({templateUrl:"js/angular/import/templates/file-override-confirmation.html",controller:"FileOverrideConfirmationController",windowClass:"confirm-duplicate-files-dialog",resolve:{duplicatedFiles:()=>i}}).result.then(s=>{if(s.overwrite)e.currentFiles.length?e.currentFiles=[...t,...r]:e.currentFiles.push(...t,...r),F=!0;else{const s=R.prefixDuplicates(t);e.currentFiles=[...e.currentFiles,...s,...r],F=!0}})},U=()=>{Object.keys(e.fileChecked).forEach(t=>{e.fileChecked[t]=!1}),e.selectedForImportFiles={}};S.push(e.$watchCollection("currentFiles",()=>{if(e.files=_.uniqBy(_.union(_.map(e.currentFiles,(function(e){return{name:e.name,type:"file",file:e}})),e.files),(function(e){return e.name})),e.savedSettings=_.mapKeys(_.filter(e.files,"parserSettings"),"name"),F&&e.currentFiles.length>0){U(),e.currentFiles.forEach(t=>{e.fileChecked[t.name]=!0,e.selectedForImportFiles[t.name]=!0});let t="";1===e.currentFiles.length&&(t=e.currentFiles[0].name),e.setSettingsFor(t,!1,void 0,()=>{e.currentFiles.forEach(t=>{e.updateImport(t.name,!1,!1),e.selectedForImportFiles={}})})}})),e.$on("$destroy",()=>{S.forEach(e=>e())});!function(){e.pollList(),e.onRepositoryChange(),S.push(d.onFilesUpdated(e=>{R.buildPrefixesRegistry(e)}));const t=d.onResourcesUpdated(()=>{e.loader=!1,t()})}()}])},66:function(e,t,r){"use strict";r.r(t),r.d(t,"ImportResourceStatus",(function(){return s}));const s={NONE:"NONE",UPLOADING:"UPLOADING",PENDING:"PENDING",IMPORTING:"IMPORTING",DONE:"DONE",ERROR:"ERROR",INTERRUPTING:"INTERRUPTING"}},70:function(e,t,r){"use strict";r.r(t),r.d(t,"removeSpecialChars",(function(){return i})),r.d(t,"toBoolean",(function(){return o})),r.d(t,"toTitleCase",(function(){return n}));var s=r(65);const i=e=>e.replace(/[()']/g,""),o=e=>"string"==typeof e?"true"===e:Boolean(e),n=e=>e?Object(s.upperFirst)(e.toLowerCase()):e},81:function(e,t,r){"use strict";r.r(t),r.d(t,"ImportResourceType",(function(){return s}));const s={DIRECTORY:"directory",FILE:"file",URL:"url",TEXT:"text"}},97:function(e,t,r){"use strict";r.r(t),r.d(t,"TABS",(function(){return i}));var s=r(65);const i={USER:"user",SERVER:"server"};function o(e){let t=i.USER,r=void 0,o=[];return{updateActiveTabId:function(r){t=r,e.emit("activeTabIdUpdated",n())},getActiveTabId:n,onActiveTabIdUpdated:function(t){return e.subscribe("activeTabIdUpdated",()=>t(n()))},getFiles:a,addFile:function(t){o.push(t),e.emit("fileAdded",Object(s.cloneDeep)(t))},updateFiles:function(t){o=t,e.emit("filesUpdated",a())},onFilesUpdated:function(t){return e.subscribe("filesUpdated",()=>t(a()))},updateResources:function(t){r=t,e.emit("resourcesUpdated",l())},getResources:l,onResourcesUpdated:function(t){return e.subscribe("resourcesUpdated",()=>t(l()))}};function n(){return t}function a(){return Object(s.cloneDeep)(o)}function l(){return Object(s.cloneDeep)(r)}}angular.module("graphdb.framework.import.services.importcontext",[]).factory("ImportContextService",o),o.$inject=["EventEmitterService"]},98:function(e,t,r){"use strict";r.r(t),r.d(t,"ImportParsingSettings",(function(){return s}));class s{constructor(){this.contextLink=void 0,this.preserveBNodeIds=!1,this.failOnUnknownDataTypes=!1,this.verifyDataTypeValues=!1,this.normalizeDataTypeValues=!1,this.failOnUnknownLanguageTags=!1,this.verifyLanguageTags=!1,this.normalizeLanguageTags=!1,this.stopOnError=!0}}}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[9,47,61,62,63,101,102,103,104,106,107,245],{149:function(e,t){function o(e){let t,o=!1;function n(){return o}function r(t){o=t,e.emit("showClusterConfigurationPanel",n())}function s(){return t}return{updateClusterViewD3Container:function(o){t=o,e.emit("clusterViewD3ContainerChanged",s())},getClusterViewD3Container:s,onClusterViewD3ContainerUpdated:function(t){return e.subscribe("clusterViewD3ContainerChanged",()=>t(s()))},getShowClusterConfigurationPanel:n,setShowClusterConfigurationPanel:r,showClusterConfigurationPanel:function(){r(!0)},hideClusterConfigurationPanel:function(){r(!1)},onShowClusterConfigurationPanel:function(t){return e.subscribe("showClusterConfigurationPanel",()=>t(n()))}}}angular.module("graphdb.framework.clustermanagement.services.cluster-view-context-service",[]).factory("ClusterViewContextService",o),o.$inject=["EventEmitterService"]},150:function(e,t){function o(e,t,o){const n=_.cloneDeep(o.clusterModel);e.clusterNodes=n.nodes,e.clusterNodes.forEach(e=>e.shouldRemove=!1),e.nodesToRemoveCount=0,e.leftNodesLessThanTwo=!1,e.toggleNode=(t,o)=>{o.shouldRemove=!o.shouldRemove,o.shouldRemove?e.nodesToRemoveCount++:e.nodesToRemoveCount--,e.leftNodesLessThanTwo=e.clusterNodes.length-e.nodesToRemoveCount<2},e.ok=()=>{const o=e.clusterNodes.filter(e=>e.shouldRemove);t.close(o)},e.cancel=()=>{t.dismiss("cancel")}}angular.module("graphdb.framework.clustermanagement.controllers.remove-nodes",[]).controller("RemoveNodesDialogCtrl",o),o.$inject=["$scope","$uibModalInstance","data"]},151:function(e,t,o){"use strict";o.r(t);o(69);const n=function(){const e=document.getElementById("advancedOptions");if(e){const t=e.getAttribute("aria-expanded");if(t&&"true"===t)return"fa fa-angle-down"}return"fa fa-angle-right"};function r(e,t,o,r,s,a,l,c,i,d){e.pageTitle=a.instant("cluster_management.cluster_page.create_page_title"),e.autofocusId="autofocus",e.errors=[],e.clusterConfiguration={electionMinTimeout:8e3,electionRangeTimeout:6e3,heartbeatInterval:2e3,messageSizeKB:64,verificationTimeout:1500,transactionLogMaximumSizeGB:50,nodes:[]},e.locations=l.clusterModel.locations.filter(e=>!e.isLocal),e.selectedLocations=l.clusterModel.locations.filter(e=>e.isLocal),e.loader=!1,e.deleteLocation=function(t,o){t.preventDefault(),t.stopPropagation(),l.deleteLocation(o).then(()=>e.locations=e.locations.filter(e=>e.endpoint!==o.endpoint))},e.getAdvancedOptionsClass=n,e.createCluster=function(){return e.setLoader(!0,a.instant("cluster_management.cluster_page.creating_cluster_loader")),e.clusterConfiguration.nodes=e.selectedLocations.map(e=>e.rpcAddress),r.createCluster(e.clusterConfiguration).then(()=>{s.success(a.instant("cluster_management.cluster_page.notifications.create_success")),t.close()}).catch((function(e){u(e.data,e.status)})).finally(()=>{e.setLoader(!1),d.$broadcast("reloadLocations")})},e.isClusterConfigurationValid=()=>{const t=!e.clusterConfigurationForm.$invalid,o=e.selectedLocations&&e.selectedLocations.length>=2;return t&&o},e.setLoader=(t,n)=>{o.cancel(e.loaderTimeout),t?e.loaderTimeout=o(()=>{e.loader=t,e.loaderMessage=n},300):e.loader=!1},e.addNodeToList=t=>{t.rpcAddress&&(e.selectedLocations.push(t),e.locations=e.locations.filter(e=>e.endpoint!==t.endpoint))},e.removeNodeFromList=(t,o)=>{o.isLocal||(e.selectedLocations.splice(t,1),e.locations.push(o))},e.addLocation=()=>{i.addLocation().then(t=>{t&&e.locations.push(t)})},e.ok=()=>{e.isClusterConfigurationValid()?e.createCluster():s.warning(a.instant("cluster_management.cluster_page.notifications.form_invalid"))},e.cancel=()=>{t.dismiss("cancel")};const u=(t,o)=>{let n;delete e.preconditionErrors,e.errors.splice(0),412===o?e.preconditionErrors=Object.keys(t).map(e=>`${e} - ${t[e]}`):400===o?e.errors.push(...t):409===o?e.errors.push(t):(t.message||"string"==typeof t)&&(n=t.message||t),s.error(n,a.instant("cluster_management.cluster_page.notifications.create_failed"))}}angular.module("graphdb.framework.clustermanagement.controllers.create-cluster",[]).controller("CreateClusterCtrl",r),r.$inject=["$scope","$uibModalInstance","$timeout","ClusterRestService","toastr","$translate","data","$uibModal","RemoteLocationsService","$rootScope"]},152:function(e,t,o){"use strict";o.r(t);o(69);function n(e,t,o,n,r,s,a){e.pageTitle=s.instant("cluster_management.cluster_page.edit_page_title"),e.errors=[],e.clusterConfiguration=_.cloneDeep(a.clusterConfiguration),e.loader=!1,e.updateCluster=()=>(e.setLoader(!0,s.instant("cluster_management.cluster_page.updating_cluster_loader")),n.updateCluster(e.clusterConfiguration).then(()=>{r.success(s.instant("cluster_management.cluster_page.notifications.update_success")),t.close()}).catch((function(e){l(e.data,e.status)})).finally(()=>e.setLoader(!1))),e.isClusterConfigurationValid=()=>!e.clusterConfigurationForm.$invalid,e.setLoader=(t,n)=>{o.cancel(e.loaderTimeout),t?e.loaderTimeout=o(()=>{e.loader=t,e.loaderMessage=n},300):e.loader=!1},e.ok=()=>{e.isClusterConfigurationValid()?e.updateCluster():r.warning(s.instant("cluster_management.cluster_page.notifications.form_invalid"))},e.cancel=()=>{t.dismiss("cancel")};const l=(t,o)=>{delete e.preconditionErrors,r.error(s.instant("cluster_management.cluster_page.notifications.update_failed")),e.errors.splice(0),409===o||"string"==typeof t?e.errors.push(t):412===o?e.preconditionErrors=Object.keys(t).map(e=>`${e} - ${t[e]}`):400===o&&e.errors.push(...t)}}angular.module("graphdb.framework.clustermanagement.controllers.edit-cluster",[]).controller("EditClusterCtrl",n),n.$inject=["$scope","$uibModalInstance","$timeout","ClusterRestService","toastr","$translate","data"]},153:function(e,t){function o(e,t){e.forceDelete=!1,e.ok=()=>{t.close(e.forceDelete)},e.cancel=()=>{t.dismiss("cancel")}}angular.module("graphdb.framework.clustermanagement.controllers.delete-cluster",[]).controller("DeleteClusterCtrl",o),o.$inject=["$scope","$uibModalInstance"]},154:function(e,t){function o(e,t,o,n,r){e.newLocation={uri:"",authType:"signature",username:"",password:"",active:!1},e.docBase=function(e){return"https://graphdb.ontotext.com/documentation/"+e.productShortVersion}(n),e.isValidLocation=()=>(e.newLocation.uri.length<6||0===e.newLocation.uri.indexOf("http:")||0===e.newLocation.uri.indexOf("https:"))&&e.newLocation.uri.indexOf("/repositories")<=-1,e.ok=()=>{e.newLocation?t.close(e.newLocation):o.error(r.instant("location.cannot.be.empty.error"))},e.cancel=()=>{t.dismiss("cancel")}}angular.module("graphdb.framework.clustermanagement.controllers.add-location",[]).controller("AddLocationFromClusterCtrl",o),o.$inject=["$scope","$uibModalInstance","toastr","productInfo","$translate"]},155:function(e,t,o){"use strict";o.r(t);o(77);function n(e,t,o,n,r){let s,a;e.nodes=[],e.clusterNodes=[],e.locations=[],e.deleteLocation=(t,n)=>{t.preventDefault(),t.stopPropagation(),o.deleteLocation(n).then(()=>e.locations=e.locations.filter(e=>e.endpoint!==n.endpoint))},e.addNodeToList=t=>{t.rpcAddress&&(e.nodes.push(t),e.locations=e.locations.filter(e=>e.endpoint!==t.endpoint))},e.removeNodeFromList=(t,o)=>{e.nodes.splice(t,1),e.locations.push(o)},e.addLocation=()=>{r.addLocation().then(t=>{t&&e.locations.push(t)})},e.ok=()=>{t.close(e.nodes)},e.cancel=()=>{t.dismiss("cancel")};s=_.cloneDeep(o.clusterModel),e.clusterNodes=s.nodes.map(e=>({rpcAddress:e.address,endpoint:e.endpoint})),a=e.clusterNodes.map(e=>e.endpoint),e.locations=s.locations.filter(e=>!a.includes(e.endpoint)),e.locations.forEach(e=>e.isNew=!0)}angular.module("graphdb.framework.clustermanagement.controllers.add-nodes",[]).controller("AddNodesDialogCtrl",n),n.$inject=["$scope","$uibModalInstance","data","$uibModal","RemoteLocationsService"]},156:function(e,t,o){"use strict";o.r(t);o(69),o(77);function n(e,t,o,n,r,s,a,l,c){let i,d;e.replacementNodes=[],e.nodesToReplace=[],e.nodesToReplaceCount=0,e.leftNodesMajority=!1,e.clusterNodes=[],e.locations=[],e.addLocation=()=>{c.addLocation().then(t=>{t&&e.locations.push(t)})},e.toggleNode=(t,o)=>{if(o.shouldReplace=!o.shouldReplace,o.shouldReplace)e.nodesToReplaceCount++,e.nodesToReplace.push(o);else{e.nodesToReplaceCount--;const t=e.nodesToReplace.findIndex(e=>e.rpcAddress===o.rpcAddress);e.nodesToReplace.splice(t,1)}e.leftNodesMajority=u()+e.nodesToReplaceCount>e.clusterNodes.length},e.permitNodesReplace=()=>!e.leftNodesMajority&&(e.nodesToReplace.length>0||e.replacementNodes.length>0),e.addNodeToList=t=>{t.rpcAddress&&(e.replacementNodes.push(t),e.locations=e.locations.filter(e=>e.endpoint!==t.endpoint))},e.deleteLocation=(t,o)=>{t.preventDefault(),t.stopPropagation(),s.deleteLocation(o).then(()=>e.locations=e.locations.filter(e=>e.endpoint!==o.endpoint))},e.removeNodeFromList=(t,o)=>{e.replacementNodes.splice(t,1),e.locations.push(o)},e.ok=()=>{t.close({newNodes:e.replacementNodes,oldNodes:e.nodesToReplace})},e.cancel=()=>{t.dismiss("cancel")};const u=()=>Math.floor(e.clusterNodes.length/2)+1;i=_.cloneDeep(s.clusterModel),e.clusterNodes=i.nodes.map(e=>({rpcAddress:e.address,endpoint:e.endpoint,shouldReplace:!1})),d=e.clusterNodes.map(e=>e.endpoint),e.locations=i.locations.filter(e=>!d.includes(e.endpoint)),e.locations.forEach(e=>e.isNew=!0)}angular.module("graphdb.framework.clustermanagement.controllers.replace-nodes",[]).controller("ReplaceNodesDialogCtrl",n),n.$inject=["$scope","$uibModalInstance","$timeout","toastr","$translate","data","$uibModal","$rootScope","RemoteLocationsService"]},239:function(e,t,o){"use strict";o.r(t);o(69),o(77),o(149),o(150),o(151),o(152),o(153),o(154),o(155),o(156);var n=o(65),r=o(73),s=o(78);function a(e,t,o,a,l,c,i,d,u,g,p,m,f,C,h,_,L,N){let w;const v=[];e.loader=!0,e.isLeader=!1,e.currentNode=null,e.clusterModel={},e.NodeState=r.NodeState,e.leaderChanged=!1,e.currentLeader=null,e.showClusterConfigurationPanel=!1,e.clusterConfigurationPanelSize=void 0,e.onopen=e.onclose=()=>angular.noop(),e.isAdmin=()=>d.isAuthenticated()&&d.isAdmin(),e.openClusterConfigurationPanel=()=>{e.showClusterConfigurationPanel=!0,N.showClusterConfigurationPanel()},e.setLoader=(t,o)=>{m.cancel(e.loaderTimeout),t?(e.loaderMessage=o,e.loaderTimeout=m((function(){e.loader=t}),50)):e.loader=!1},e.getLoaderMessage=()=>e.loaderMessage||h.instant("common.loading"),e.getClusterConfiguration=()=>f.getClusterConfig().then(t=>{if(e.clusterConfiguration=t.data,!e.currentNode)return e.getCurrentNodeStatus()}).catch(()=>{e.clusterConfiguration=null}),e.getClusterStatus=()=>f.getClusterStatus().then(t=>{const o=t.data.slice(),n=o.find(e=>e.nodeState===r.NodeState.LEADER);T(e.currentLeader,n)&&(e.currentLeader=n,e.leaderChanged=!0),e.currentNode=o.find(t=>e.currentNode&&t.address===e.currentNode.address);const s=$(n,o);e.clusterModel.hasCluster=!0,e.clusterModel.nodes=o,e.clusterModel.links=s}).catch(t=>{404===t.status&&(e.clusterModel.hasCluster=!1,e.clusterModel.nodes=[],e.clusterModel.links=[],e.clusterConfiguration=null)}),e.showCreateClusterDialog=function(){c.open({templateUrl:"js/angular/clustermanagement/templates/modal/cluster-create-dialog.html",controller:"CreateClusterCtrl",size:"lg",resolve:{data:function(){return{deleteLocation:R,clusterModel:e.clusterModel}}}}).result.finally((function(){E(),b(!0)}))},e.getCurrentNodeStatus=()=>f.getNodeStatus().then(t=>{e.leaderChanged=!1,e.currentNode=t.data}).catch(t=>{e.currentNode=t.data,e.clusterModel.hasCluster=!1}).then(()=>E()),e.showAddNodeToClusterDialog=()=>{c.open({templateUrl:"js/angular/clustermanagement/templates/modal/add-nodes-dialog.html",controller:"AddNodesDialogCtrl",size:"lg",resolve:{data:function(){return{deleteLocation:R,clusterModel:e.clusterModel,clusterConfiguration:e.clusterConfiguration}}}}).result.then(t=>{const o=h.instant("cluster_management.cluster_page.add_nodes_loader");e.setLoader(!0,o);const n=t.map(e=>e.rpcAddress);f.addNodesToCluster(n).then(()=>{const e=h.instant("cluster_management.cluster_page.notifications.add_nodes_success");M(e)}).catch(e=>{const t=h.instant("cluster_management.cluster_page.notifications.add_nodes_fail");k(e.data,e.status,t)}).finally(()=>{e.setLoader(!1),b(!0)})}).finally(()=>E())},e.showReplaceNodesDialog=()=>{c.open({templateUrl:"js/angular/clustermanagement/templates/modal/replace-nodes-dialog.html",controller:"ReplaceNodesDialogCtrl",size:"lg",resolve:{data:function(){return{deleteLocation:R,clusterModel:e.clusterModel,clusterConfiguration:e.clusterConfiguration}}}}).result.then(t=>{const o=h.instant("cluster_management.cluster_page.replace_nodes_loader");e.setLoader(!0,o);const n={addNodes:t.newNodes.map(e=>e.rpcAddress),removeNodes:t.oldNodes.map(e=>e.rpcAddress)};f.replaceNodesInCluster(n).then(()=>{const e=h.instant("cluster_management.cluster_page.notifications.replace_nodes_success");M(e)}).catch(e=>{const t=h.instant("cluster_management.cluster_page.notifications.replace_nodes_fail");k(e.data,e.status,t)}).finally(()=>{e.setLoader(!1),b(!0)})}).finally(()=>E())},e.showRemoveNodesFromClusterDialog=()=>{c.open({templateUrl:"js/angular/clustermanagement/templates/modal/remove-nodes-dialog.html",controller:"RemoveNodesDialogCtrl",size:"lg",resolve:{data:function(){return{clusterModel:e.clusterModel}}}}).result.then((function(t){const o=h.instant("cluster_management.cluster_page.remove_nodes_loader");e.setLoader(!0,o);const n=t.map(e=>e.address);f.removeNodesFromCluster(n).then(()=>{const e=h.instant("cluster_management.cluster_page.notifications.remove_nodes_success");M(e)}).catch(e=>{const t=h.instant("cluster_management.cluster_page.notifications.remove_nodes_fail");k(e.data,e.status,t)}).finally(()=>{e.setLoader(!1),b(!0)})}))};const $=(e,t)=>{const o=[];return e&&Object.keys(e.syncStatus).forEach(n=>{const s=e.syncStatus[n];if(s!==r.LinkState.NO_CONNECTION&&(o.push({id:`${e.address}-${n}`,source:e.address,target:n,status:s}),s===r.LinkState.OUT_OF_SYNC)){const e=t.find(e=>e.address===n);let s;if(e.recoveryStatus.state===r.RecoveryState.RECEIVING_SNAPSHOT&&(s=e.recoveryStatus.affectedNodes[0]),e&&s){const n=t.find(e=>e.endpoint===s);o.push({id:`${e.address}-${n.address}`,source:n.address,target:e.address,status:r.LinkState.RECEIVING_SNAPSHOT})}}}),o},S=t=>{e.selectedNode!==t?e.selectedNode=t:e.selectedNode=null,e.$apply()},b=t=>{w||(w=e.getClusterStatus().then(()=>{if(t||!e.clusterConfiguration)return e.getClusterConfiguration()}).then(()=>{if(!e.currentNode||e.leaderChanged)return e.getCurrentNodeStatus()}).finally(()=>{w=null,e.$broadcast(s.MODEL_UPDATED)}))},T=(e,t)=>!t||(!e||e.address!==t.address),E=()=>_.getLocationsWithRpcAddresses().then(t=>{const o=t.find(e=>e.isLocal);o&&(o.endpoint=e.currentNode.endpoint,o.rpcAddress=e.currentNode.address),e.clusterModel.locations=t}),R=e=>p.openSimpleModal({title:h.instant("location.confirm.detach"),message:h.instant("location.confirm.detach.warning",{uri:e.endpoint}),warning:!0}).result.then(()=>l.deleteLocation(e.endpoint)),M=t=>{a.success(t),e.getClusterConfiguration()},k=(e,t,o)=>{let r=e.message||e;400===t&&Array.isArray(e)?r=e.reduce((e,t)=>e+`<div>${t}</div>`,""):412!==t||Object(n.isString)(e)||(r=Object.keys(e).reduce((t,o)=>t+`<div>${o} - ${e[o]}</div>`,"")),a.error(r,o,{allowHtml:!0})},A=()=>{e.clusterConfigurationPanelSize=.25*window.innerWidth+"px"},D=()=>{v.push(N.onShowClusterConfigurationPanel(t=>{A(),e.showClusterConfigurationPanel=t})),v.push(e.$on(s.UPDATE_CLUSTER,(e,t)=>{b(t.force)})),v.push(e.$on(s.DELETE_CLUSTER,(t,o)=>{(t=>{const o=h.instant("cluster_management.delete_cluster_dialog.loader_message");e.setLoader(!0,o),f.deleteCluster(t).then(t=>{if(Object.values(t.data).every(e=>"Cluster was deleted on this node."===e)){const e=h.instant("cluster_management.delete_cluster_dialog.notifications.success_delete");a.success(e)}else{const e=h.instant("cluster_management.delete_cluster_dialog.notifications.success_delete_partial"),o=Object.keys(t.data).reduce((e,o)=>e+`<div>${o} - ${t.data[o]}</div>`,"");a.warning(o,e,{allowHtml:!0})}e.getClusterConfiguration()}).catch(e=>{const t=h.instant("cluster_management.delete_cluster_dialog.notifications.fail_delete");k(e.data,e.status,t)}).finally(()=>{e.setLoader(!1),b(!0),L.$broadcast("reloadLocations")})})(o.force)})),v.push(e.$on(s.CLICK_IN_VIEW,(t,o)=>{!function(t){const o=document.getElementById("nodeTooltip");e.selectedNode&&o!==t&&!o.contains(t)&&S(null)}(o)})),v.push(e.$on(s.NODE_SELECTED,(e,t)=>{S(t)})),v.push(e.$on(s.CREATE_CLUSTER,()=>{e.showCreateClusterDialog()}))};e.$on("$destroy",(function(){v.forEach(e=>e())}));D(),A(),e.showClusterConfigurationPanel=N.getShowClusterConfigurationPanel(),(e.loader=!0,e.getCurrentNodeStatus().then(()=>e.getClusterConfiguration()).then(()=>e.getClusterStatus()).finally(()=>{e.setLoader(!1)})).finally(()=>{const t=g((function(){b()}),1e3);e.$on("$destroy",(function(){g.cancel(t)}))})}angular.module("graphdb.framework.clustermanagement.controllers.cluster-management",["ui.bootstrap","graphdb.framework.core.services.repositories","graphdb.framework.rest.repositories.service","graphdb.framework.rest.cluster.service","graphdb.framework.clustermanagement.services.cluster-view-context-service","graphdb.framework.clustermanagement.services.remote-locations","graphdb.framework.clustermanagement.controllers.remove-nodes","graphdb.framework.clustermanagement.controllers.create-cluster","graphdb.framework.clustermanagement.controllers.edit-cluster","graphdb.framework.clustermanagement.controllers.delete-cluster","graphdb.framework.clustermanagement.controllers.add-location","graphdb.framework.clustermanagement.controllers.add-nodes","graphdb.framework.clustermanagement.controllers.replace-nodes","toastr","pageslide-directive"]).controller("ClusterManagementCtrl",a),a.$inject=["$scope","$http","$q","toastr","$repositories","$uibModal","$sce","$jwtAuth","$window","$interval","ModalService","$timeout","ClusterRestService","$location","$translate","RemoteLocationsService","$rootScope","ClusterViewContextService"]},69:function(e,t){angular.module("graphdb.framework.rest.cluster.service",[]).factory("ClusterRestService",o),o.$inject=["$http"];function o(e){return{getClusterConfig:function(){return e.get("rest/cluster/config")},createCluster:function(t){return e.post("rest/cluster/config",t)},updateCluster:function(t){t.nodes&&delete t.nodes;return e.patch("rest/cluster/config",t)},deleteCluster:function(t){const o=$.param({force:t});return e.delete("rest/cluster/config?"+o)},addNodesToCluster:function(t){return e.post("rest/cluster/config/node",{nodes:t})},replaceNodesInCluster:function(t){return e.patch("rest/cluster/config/node",t)},removeNodesFromCluster:function(t){return e.delete("rest/cluster/config/node",{data:{nodes:t},headers:{"Content-Type":"application/json"}})},getClusterStatus:function(){return e.get("rest/cluster/group/status")},getNodeStatus:function(){return e.get("rest/cluster/node/status")}}}},77:function(e,t,o){"use strict";o.r(t);o(33);function n(e,t,o,n,r){return{addLocation:function(){let e;return o.open({templateUrl:"js/angular/templates/modal/add-location.html",windowClass:"addLocationDialog",controller:"AddLocationFromClusterCtrl"}).result.then(o=>(e=o,e.isLocal=!1,e.endpoint=e.uri,function(e){let o;return n.addLocation(e).catch(e=>{const o=getError(e.data,e.status);return t.error(o,r.instant("common.error")),!1}).then(e=>!!e&&s()).then(t=>{if(!1!==t)return o=t.find(t=>t.endpoint===e.uri),o})}(e)))},getLocationsWithRpcAddresses:s};function s(){return n.getLocations().then((function(e){return e.data.map(e=>({isLocal:e.local,endpoint:e.uri,rpcAddress:e.rpcAddress||"",error:e.errorMsg}))})).catch((function(e){const o=getError(e.data,e.status);t.error(o,r.instant("common.error"))})).then(e=>{if(e)return function(e){const t=e.filter(e=>!e.isLocal&&!e.error).map(e=>function(e){return n.getLocationRpcAddress(e.endpoint)}(e).then(t=>(e.rpcAddress=t.data,e.isAvailable=!0,e)).catch(t=>{e.isAvailable=!1,e.error=getError(t.data,t.status)}));return Promise.allSettled(t).then(()=>e)}(e)})}}angular.module("graphdb.framework.clustermanagement.services.remote-locations",[]).factory("RemoteLocationsService",n),n.$inject=["$http","toastr","$uibModal","LocationsRestService","$translate"]},78:function(e,t,o){"use strict";o.r(t),o.d(t,"UPDATE_CLUSTER",(function(){return n})),o.d(t,"DELETE_CLUSTER",(function(){return r})),o.d(t,"CLICK_IN_VIEW",(function(){return s})),o.d(t,"NODE_SELECTED",(function(){return a})),o.d(t,"CREATE_CLUSTER",(function(){return l})),o.d(t,"MODEL_UPDATED",(function(){return c}));const n="updateCluster",r="deleteCluster",s="clickInView",a="nodeSelected",l="createCluster",c="modelUpdated"}}]);
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[9,47,61,62,63,101,102,103,104,106,107,245],{149:function(e,t){function o(e){let t,o=!1;function n(){return o}function r(t){o=t,e.emit("showClusterConfigurationPanel",n())}function s(){return t}return{updateClusterViewD3Container:function(o){t=o,e.emit("clusterViewD3ContainerChanged",s())},getClusterViewD3Container:s,onClusterViewD3ContainerUpdated:function(t){return e.subscribe("clusterViewD3ContainerChanged",()=>t(s()))},getShowClusterConfigurationPanel:n,setShowClusterConfigurationPanel:r,showClusterConfigurationPanel:function(){r(!0)},hideClusterConfigurationPanel:function(){r(!1)},onShowClusterConfigurationPanel:function(t){return e.subscribe("showClusterConfigurationPanel",()=>t(n()))}}}angular.module("graphdb.framework.clustermanagement.services.cluster-view-context-service",[]).factory("ClusterViewContextService",o),o.$inject=["EventEmitterService"]},150:function(e,t){function o(e,t,o){const n=_.cloneDeep(o.clusterModel);e.clusterNodes=n.nodes,e.clusterNodes.forEach(e=>e.shouldRemove=!1),e.nodesToRemoveCount=0,e.leftNodesLessThanTwo=!1,e.toggleNode=(t,o)=>{o.shouldRemove=!o.shouldRemove,o.shouldRemove?e.nodesToRemoveCount++:e.nodesToRemoveCount--,e.leftNodesLessThanTwo=e.clusterNodes.length-e.nodesToRemoveCount<2},e.ok=()=>{const o=e.clusterNodes.filter(e=>e.shouldRemove);t.close(o)},e.cancel=()=>{t.dismiss("cancel")}}angular.module("graphdb.framework.clustermanagement.controllers.remove-nodes",[]).controller("RemoveNodesDialogCtrl",o),o.$inject=["$scope","$uibModalInstance","data"]},151:function(e,t,o){"use strict";o.r(t);o(69);const n=function(){const e=document.getElementById("advancedOptions");if(e){const t=e.getAttribute("aria-expanded");if(t&&"true"===t)return"fa fa-angle-down"}return"fa fa-angle-right"};function r(e,t,o,r,s,a,l,c,i,d){e.pageTitle=a.instant("cluster_management.cluster_page.create_page_title"),e.autofocusId="autofocus",e.errors=[],e.clusterConfiguration={electionMinTimeout:8e3,electionRangeTimeout:6e3,heartbeatInterval:2e3,messageSizeKB:64,verificationTimeout:1500,transactionLogMaximumSizeGB:50,nodes:[]},e.locations=l.clusterModel.locations.filter(e=>!e.isLocal),e.selectedLocations=l.clusterModel.locations.filter(e=>e.isLocal),e.loader=!1,e.deleteLocation=function(t,o){t.preventDefault(),t.stopPropagation(),l.deleteLocation(o).then(()=>e.locations=e.locations.filter(e=>e.endpoint!==o.endpoint))},e.getAdvancedOptionsClass=n,e.createCluster=function(){return e.setLoader(!0,a.instant("cluster_management.cluster_page.creating_cluster_loader")),e.clusterConfiguration.nodes=e.selectedLocations.map(e=>e.rpcAddress),r.createCluster(e.clusterConfiguration).then(()=>{s.success(a.instant("cluster_management.cluster_page.notifications.create_success")),t.close()}).catch((function(e){u(e.data,e.status)})).finally(()=>{e.setLoader(!1),d.$broadcast("reloadLocations")})},e.isClusterConfigurationValid=()=>{const t=!e.clusterConfigurationForm.$invalid,o=e.selectedLocations&&e.selectedLocations.length>=2;return t&&o},e.setLoader=(t,n)=>{o.cancel(e.loaderTimeout),t?e.loaderTimeout=o(()=>{e.loader=t,e.loaderMessage=n},300):e.loader=!1},e.addNodeToList=t=>{t.rpcAddress&&(e.selectedLocations.push(t),e.locations=e.locations.filter(e=>e.endpoint!==t.endpoint))},e.removeNodeFromList=(t,o)=>{o.isLocal||(e.selectedLocations.splice(t,1),e.locations.push(o))},e.addLocation=()=>{i.addLocation().then(t=>{t&&e.locations.push(t)})},e.ok=()=>{e.isClusterConfigurationValid()?e.createCluster():s.warning(a.instant("cluster_management.cluster_page.notifications.form_invalid"))},e.cancel=()=>{t.dismiss("cancel")};const u=(t,o)=>{let n;delete e.preconditionErrors,e.errors.splice(0),412===o?e.preconditionErrors=Object.keys(t).map(e=>`${e} - ${t[e]}`):400===o?e.errors.push(...t):409===o?e.errors.push(t):(t.message||"string"==typeof t)&&(n=t.message||t),s.error(n,a.instant("cluster_management.cluster_page.notifications.create_failed"))}}angular.module("graphdb.framework.clustermanagement.controllers.create-cluster",[]).controller("CreateClusterCtrl",r),r.$inject=["$scope","$uibModalInstance","$timeout","ClusterRestService","toastr","$translate","data","$uibModal","RemoteLocationsService","$rootScope"]},152:function(e,t,o){"use strict";o.r(t);o(69);function n(e,t,o,n,r,s,a){e.pageTitle=s.instant("cluster_management.cluster_page.edit_page_title"),e.errors=[],e.clusterConfiguration=_.cloneDeep(a.clusterConfiguration),e.loader=!1,e.updateCluster=()=>(e.setLoader(!0,s.instant("cluster_management.cluster_page.updating_cluster_loader")),n.updateCluster(e.clusterConfiguration).then(()=>{r.success(s.instant("cluster_management.cluster_page.notifications.update_success")),t.close()}).catch((function(e){l(e.data,e.status)})).finally(()=>e.setLoader(!1))),e.isClusterConfigurationValid=()=>!e.clusterConfigurationForm.$invalid,e.setLoader=(t,n)=>{o.cancel(e.loaderTimeout),t?e.loaderTimeout=o(()=>{e.loader=t,e.loaderMessage=n},300):e.loader=!1},e.ok=()=>{e.isClusterConfigurationValid()?e.updateCluster():r.warning(s.instant("cluster_management.cluster_page.notifications.form_invalid"))},e.cancel=()=>{t.dismiss("cancel")};const l=(t,o)=>{delete e.preconditionErrors,r.error(s.instant("cluster_management.cluster_page.notifications.update_failed")),e.errors.splice(0),409===o||"string"==typeof t?e.errors.push(t):412===o?e.preconditionErrors=Object.keys(t).map(e=>`${e} - ${t[e]}`):400===o&&e.errors.push(...t)}}angular.module("graphdb.framework.clustermanagement.controllers.edit-cluster",[]).controller("EditClusterCtrl",n),n.$inject=["$scope","$uibModalInstance","$timeout","ClusterRestService","toastr","$translate","data"]},153:function(e,t){function o(e,t){e.forceDelete=!1,e.ok=()=>{t.close(e.forceDelete)},e.cancel=()=>{t.dismiss("cancel")}}angular.module("graphdb.framework.clustermanagement.controllers.delete-cluster",[]).controller("DeleteClusterCtrl",o),o.$inject=["$scope","$uibModalInstance"]},154:function(e,t){function o(e,t,o,n,r){e.newLocation={uri:"",authType:"signature",username:"",password:"",active:!1},e.docBase=function(e){return"https://graphdb.ontotext.com/documentation/"+e.productShortVersion}(n),e.isValidLocation=()=>(e.newLocation.uri.length<6||0===e.newLocation.uri.indexOf("http:")||0===e.newLocation.uri.indexOf("https:"))&&e.newLocation.uri.indexOf("/repositories")<=-1,e.ok=()=>{e.newLocation?t.close(e.newLocation):o.error(r.instant("location.cannot.be.empty.error"))},e.cancel=()=>{t.dismiss("cancel")}}angular.module("graphdb.framework.clustermanagement.controllers.add-location",[]).controller("AddLocationFromClusterCtrl",o),o.$inject=["$scope","$uibModalInstance","toastr","productInfo","$translate"]},155:function(e,t,o){"use strict";o.r(t);o(77);function n(e,t,o,n,r){let s,a;e.nodes=[],e.clusterNodes=[],e.locations=[],e.deleteLocation=(t,n)=>{t.preventDefault(),t.stopPropagation(),o.deleteLocation(n).then(()=>e.locations=e.locations.filter(e=>e.endpoint!==n.endpoint))},e.addNodeToList=t=>{t.rpcAddress&&(e.nodes.push(t),e.locations=e.locations.filter(e=>e.endpoint!==t.endpoint))},e.removeNodeFromList=(t,o)=>{e.nodes.splice(t,1),e.locations.push(o)},e.addLocation=()=>{r.addLocation().then(t=>{t&&e.locations.push(t)})},e.ok=()=>{t.close(e.nodes)},e.cancel=()=>{t.dismiss("cancel")};s=_.cloneDeep(o.clusterModel),e.clusterNodes=s.nodes.map(e=>({rpcAddress:e.address,endpoint:e.endpoint})),a=e.clusterNodes.map(e=>e.endpoint),e.locations=s.locations.filter(e=>!a.includes(e.endpoint)),e.locations.forEach(e=>e.isNew=!0)}angular.module("graphdb.framework.clustermanagement.controllers.add-nodes",[]).controller("AddNodesDialogCtrl",n),n.$inject=["$scope","$uibModalInstance","data","$uibModal","RemoteLocationsService"]},156:function(e,t,o){"use strict";o.r(t);o(69),o(77);function n(e,t,o,n,r,s,a,l,c){let i,d;e.replacementNodes=[],e.nodesToReplace=[],e.nodesToReplaceCount=0,e.leftNodesMajority=!1,e.clusterNodes=[],e.locations=[],e.addLocation=()=>{c.addLocation().then(t=>{t&&e.locations.push(t)})},e.toggleNode=(t,o)=>{if(o.shouldReplace=!o.shouldReplace,o.shouldReplace)e.nodesToReplaceCount++,e.nodesToReplace.push(o);else{e.nodesToReplaceCount--;const t=e.nodesToReplace.findIndex(e=>e.rpcAddress===o.rpcAddress);e.nodesToReplace.splice(t,1)}e.leftNodesMajority=u()+e.nodesToReplaceCount>e.clusterNodes.length},e.permitNodesReplace=()=>!e.leftNodesMajority&&(e.nodesToReplace.length>0||e.replacementNodes.length>0),e.addNodeToList=t=>{t.rpcAddress&&(e.replacementNodes.push(t),e.locations=e.locations.filter(e=>e.endpoint!==t.endpoint))},e.deleteLocation=(t,o)=>{t.preventDefault(),t.stopPropagation(),s.deleteLocation(o).then(()=>e.locations=e.locations.filter(e=>e.endpoint!==o.endpoint))},e.removeNodeFromList=(t,o)=>{e.replacementNodes.splice(t,1),e.locations.push(o)},e.ok=()=>{t.close({newNodes:e.replacementNodes,oldNodes:e.nodesToReplace})},e.cancel=()=>{t.dismiss("cancel")};const u=()=>Math.floor(e.clusterNodes.length/2)+1;i=_.cloneDeep(s.clusterModel),e.clusterNodes=i.nodes.map(e=>({rpcAddress:e.address,endpoint:e.endpoint,shouldReplace:!1})),d=e.clusterNodes.map(e=>e.endpoint),e.locations=i.locations.filter(e=>!d.includes(e.endpoint)),e.locations.forEach(e=>e.isNew=!0)}angular.module("graphdb.framework.clustermanagement.controllers.replace-nodes",[]).controller("ReplaceNodesDialogCtrl",n),n.$inject=["$scope","$uibModalInstance","$timeout","toastr","$translate","data","$uibModal","$rootScope","RemoteLocationsService"]},239:function(e,t,o){"use strict";o.r(t);o(69),o(77),o(149),o(150),o(151),o(152),o(153),o(154),o(155),o(156);var n=o(65),r=o(73),s=o(78);function a(e,t,o,a,l,c,i,d,u,g,m,p,f,C,h,_,L,N){let w;const v=[];e.loader=!0,e.isLeader=!1,e.currentNode=null,e.clusterModel={},e.NodeState=r.NodeState,e.leaderChanged=!1,e.currentLeader=null,e.showClusterConfigurationPanel=!1,e.clusterConfigurationPanelSize=void 0,e.onopen=e.onclose=()=>angular.noop(),e.isAdmin=()=>d.isAuthenticated()&&d.isAdmin(),e.openClusterConfigurationPanel=()=>{e.showClusterConfigurationPanel=!0,N.showClusterConfigurationPanel()},e.setLoader=(t,o)=>{p.cancel(e.loaderTimeout),t?(e.loaderMessage=o,e.loaderTimeout=p((function(){e.loader=t}),50)):e.loader=!1},e.getLoaderMessage=()=>e.loaderMessage||h.instant("common.loading"),e.getClusterConfiguration=()=>f.getClusterConfig().then(t=>{if(e.clusterConfiguration=t.data,!e.currentNode)return e.getCurrentNodeStatus()}).catch(()=>{e.clusterConfiguration=null}),e.getClusterStatus=()=>f.getClusterStatus().then(t=>{const o=t.data.slice(),n=o.find(e=>e.nodeState===r.NodeState.LEADER);T(e.currentLeader,n)&&(e.currentLeader=n,e.leaderChanged=!0),e.currentNode=o.find(t=>e.currentNode&&t.address===e.currentNode.address);const s=$(n,o);e.clusterModel.hasCluster=!0,e.clusterModel.nodes=o,e.clusterModel.links=s}).catch(t=>{if(404===t.status)return e.clusterModel.hasCluster=!1,e.clusterModel.nodes=[],e.clusterModel.links=[],e.clusterConfiguration=null,Promise.reject(t)}),e.showCreateClusterDialog=function(){c.open({templateUrl:"js/angular/clustermanagement/templates/modal/cluster-create-dialog.html",controller:"CreateClusterCtrl",size:"lg",resolve:{data:function(){return{deleteLocation:R,clusterModel:e.clusterModel}}}}).result.finally((function(){E(),b(!0)}))},e.getCurrentNodeStatus=()=>f.getNodeStatus().then(t=>{e.leaderChanged=!1,e.currentNode=t.data}).catch(t=>{e.currentNode=t.data,e.clusterModel.hasCluster=!1}).then(()=>E()),e.showAddNodeToClusterDialog=()=>{c.open({templateUrl:"js/angular/clustermanagement/templates/modal/add-nodes-dialog.html",controller:"AddNodesDialogCtrl",size:"lg",resolve:{data:function(){return{deleteLocation:R,clusterModel:e.clusterModel,clusterConfiguration:e.clusterConfiguration}}}}).result.then(t=>{const o=h.instant("cluster_management.cluster_page.add_nodes_loader");e.setLoader(!0,o);const n=t.map(e=>e.rpcAddress);f.addNodesToCluster(n).then(()=>{const e=h.instant("cluster_management.cluster_page.notifications.add_nodes_success");M(e)}).catch(e=>{const t=h.instant("cluster_management.cluster_page.notifications.add_nodes_fail");k(e.data,e.status,t)}).finally(()=>{e.setLoader(!1),b(!0)})}).finally(()=>E())},e.showReplaceNodesDialog=()=>{c.open({templateUrl:"js/angular/clustermanagement/templates/modal/replace-nodes-dialog.html",controller:"ReplaceNodesDialogCtrl",size:"lg",resolve:{data:function(){return{deleteLocation:R,clusterModel:e.clusterModel,clusterConfiguration:e.clusterConfiguration}}}}).result.then(t=>{const o=h.instant("cluster_management.cluster_page.replace_nodes_loader");e.setLoader(!0,o);const n={addNodes:t.newNodes.map(e=>e.rpcAddress),removeNodes:t.oldNodes.map(e=>e.rpcAddress)};f.replaceNodesInCluster(n).then(()=>{const e=h.instant("cluster_management.cluster_page.notifications.replace_nodes_success");M(e)}).catch(e=>{const t=h.instant("cluster_management.cluster_page.notifications.replace_nodes_fail");k(e.data,e.status,t)}).finally(()=>{e.setLoader(!1),b(!0)})}).finally(()=>E())},e.showRemoveNodesFromClusterDialog=()=>{c.open({templateUrl:"js/angular/clustermanagement/templates/modal/remove-nodes-dialog.html",controller:"RemoveNodesDialogCtrl",size:"lg",resolve:{data:function(){return{clusterModel:e.clusterModel}}}}).result.then((function(t){const o=h.instant("cluster_management.cluster_page.remove_nodes_loader");e.setLoader(!0,o);const n=t.map(e=>e.address);f.removeNodesFromCluster(n).then(()=>{const e=h.instant("cluster_management.cluster_page.notifications.remove_nodes_success");M(e)}).catch(e=>{const t=h.instant("cluster_management.cluster_page.notifications.remove_nodes_fail");k(e.data,e.status,t)}).finally(()=>{e.setLoader(!1),b(!0)})}))};const $=(e,t)=>{const o=[];return e&&Object.keys(e.syncStatus).forEach(n=>{const s=e.syncStatus[n];if(s!==r.LinkState.NO_CONNECTION&&(o.push({id:`${e.address}-${n}`,source:e.address,target:n,status:s}),s===r.LinkState.OUT_OF_SYNC)){const e=t.find(e=>e.address===n);let s;if(e.recoveryStatus.state===r.RecoveryState.RECEIVING_SNAPSHOT&&(s=e.recoveryStatus.affectedNodes[0]),e&&s){const n=t.find(e=>e.endpoint===s);o.push({id:`${e.address}-${n.address}`,source:n.address,target:e.address,status:r.LinkState.RECEIVING_SNAPSHOT})}}}),o},S=t=>{e.selectedNode!==t?e.selectedNode=t:e.selectedNode=null,e.$apply()},b=t=>{w||(w=e.getClusterStatus().then(()=>{if(t||!e.clusterConfiguration)return e.getClusterConfiguration()}).then(()=>{if(!e.currentNode||e.leaderChanged)return e.getCurrentNodeStatus()}).finally(()=>{w=null,e.$broadcast(s.MODEL_UPDATED)}))},T=(e,t)=>!t||(!e||e.address!==t.address),E=()=>_.getLocationsWithRpcAddresses().then(t=>{const o=t.find(e=>e.isLocal);o&&(o.endpoint=e.currentNode.endpoint,o.rpcAddress=e.currentNode.address),e.clusterModel.locations=t}),R=e=>m.openSimpleModal({title:h.instant("location.confirm.detach"),message:h.instant("location.confirm.detach.warning",{uri:e.endpoint}),warning:!0}).result.then(()=>l.deleteLocation(e.endpoint)),M=t=>{a.success(t),e.getClusterConfiguration()},k=(e,t,o)=>{let r=e.message||e;400===t&&Array.isArray(e)?r=e.reduce((e,t)=>e+`<div>${t}</div>`,""):412!==t||Object(n.isString)(e)||(r=Object.keys(e).reduce((t,o)=>t+`<div>${o} - ${e[o]}</div>`,"")),a.error(r,o,{allowHtml:!0})},A=()=>{e.clusterConfigurationPanelSize=.25*window.innerWidth+"px"},D=()=>{v.push(N.onShowClusterConfigurationPanel(t=>{A(),e.showClusterConfigurationPanel=t})),v.push(e.$on(s.UPDATE_CLUSTER,(e,t)=>{b(t.force)})),v.push(e.$on(s.DELETE_CLUSTER,(t,o)=>{(t=>{const o=h.instant("cluster_management.delete_cluster_dialog.loader_message");e.setLoader(!0,o),f.deleteCluster(t).then(t=>{if(Object.values(t.data).every(e=>"Cluster was deleted on this node."===e)){const e=h.instant("cluster_management.delete_cluster_dialog.notifications.success_delete");a.success(e)}else{const e=h.instant("cluster_management.delete_cluster_dialog.notifications.success_delete_partial"),o=Object.keys(t.data).reduce((e,o)=>e+`<div>${o} - ${t.data[o]}</div>`,"");a.warning(o,e,{allowHtml:!0})}e.getClusterConfiguration()}).catch(e=>{const t=h.instant("cluster_management.delete_cluster_dialog.notifications.fail_delete");k(e.data,e.status,t)}).finally(()=>{e.setLoader(!1),b(!0),L.$broadcast("reloadLocations")})})(o.force)})),v.push(e.$on(s.CLICK_IN_VIEW,(t,o)=>{!function(t){const o=document.getElementById("nodeTooltip");e.selectedNode&&o!==t&&!o.contains(t)&&S(null)}(o)})),v.push(e.$on(s.NODE_SELECTED,(e,t)=>{S(t)})),v.push(e.$on(s.CREATE_CLUSTER,()=>{e.showCreateClusterDialog()}))};e.$on("$destroy",(function(){v.forEach(e=>e())}));D(),A(),e.showClusterConfigurationPanel=N.getShowClusterConfigurationPanel(),(e.loader=!0,e.getCurrentNodeStatus().then(()=>e.getClusterConfiguration()).then(()=>e.getClusterStatus()).finally(()=>{e.setLoader(!1)})).finally(()=>{const t=g((function(){b()}),1e3);e.$on("$destroy",(function(){g.cancel(t)}))})}angular.module("graphdb.framework.clustermanagement.controllers.cluster-management",["ui.bootstrap","graphdb.framework.core.services.repositories","graphdb.framework.rest.repositories.service","graphdb.framework.rest.cluster.service","graphdb.framework.clustermanagement.services.cluster-view-context-service","graphdb.framework.clustermanagement.services.remote-locations","graphdb.framework.clustermanagement.controllers.remove-nodes","graphdb.framework.clustermanagement.controllers.create-cluster","graphdb.framework.clustermanagement.controllers.edit-cluster","graphdb.framework.clustermanagement.controllers.delete-cluster","graphdb.framework.clustermanagement.controllers.add-location","graphdb.framework.clustermanagement.controllers.add-nodes","graphdb.framework.clustermanagement.controllers.replace-nodes","toastr","pageslide-directive"]).controller("ClusterManagementCtrl",a),a.$inject=["$scope","$http","$q","toastr","$repositories","$uibModal","$sce","$jwtAuth","$window","$interval","ModalService","$timeout","ClusterRestService","$location","$translate","RemoteLocationsService","$rootScope","ClusterViewContextService"]},69:function(e,t){angular.module("graphdb.framework.rest.cluster.service",[]).factory("ClusterRestService",o),o.$inject=["$http"];function o(e){return{getClusterConfig:function(){return e.get("rest/cluster/config")},createCluster:function(t){return e.post("rest/cluster/config",t)},updateCluster:function(t){t.nodes&&delete t.nodes;return e.patch("rest/cluster/config",t)},deleteCluster:function(t){const o=$.param({force:t});return e.delete("rest/cluster/config?"+o)},addNodesToCluster:function(t){return e.post("rest/cluster/config/node",{nodes:t})},replaceNodesInCluster:function(t){return e.patch("rest/cluster/config/node",t)},removeNodesFromCluster:function(t){return e.delete("rest/cluster/config/node",{data:{nodes:t},headers:{"Content-Type":"application/json"}})},getClusterStatus:function(){return e.get("rest/cluster/group/status")},getNodeStatus:function(){return e.get("rest/cluster/node/status")}}}},77:function(e,t,o){"use strict";o.r(t);o(33);function n(e,t,o,n,r){return{addLocation:function(){let e;return o.open({templateUrl:"js/angular/templates/modal/add-location.html",windowClass:"addLocationDialog",controller:"AddLocationFromClusterCtrl"}).result.then(o=>(e=o,e.isLocal=!1,e.endpoint=e.uri,function(e){let o;return n.addLocation(e).catch(e=>{const o=getError(e.data,e.status);return t.error(o,r.instant("common.error")),!1}).then(e=>!!e&&s()).then(t=>{if(!1!==t)return o=t.find(t=>t.endpoint===e.uri),o})}(e)))},getLocationsWithRpcAddresses:s};function s(){return n.getLocations().then((function(e){return e.data.map(e=>({isLocal:e.local,endpoint:e.uri,rpcAddress:e.rpcAddress||"",error:e.errorMsg}))})).catch((function(e){const o=getError(e.data,e.status);t.error(o,r.instant("common.error"))})).then(e=>{if(e)return function(e){const t=e.filter(e=>!e.isLocal&&!e.error).map(e=>function(e){return n.getLocationRpcAddress(e.endpoint)}(e).then(t=>(e.rpcAddress=t.data,e.isAvailable=!0,e)).catch(t=>{e.isAvailable=!1,e.error=getError(t.data,t.status)}));return Promise.allSettled(t).then(()=>e)}(e)})}}angular.module("graphdb.framework.clustermanagement.services.remote-locations",[]).factory("RemoteLocationsService",n),n.$inject=["$http","toastr","$uibModal","LocationsRestService","$translate"]},78:function(e,t,o){"use strict";o.r(t),o.d(t,"UPDATE_CLUSTER",(function(){return n})),o.d(t,"DELETE_CLUSTER",(function(){return r})),o.d(t,"CLICK_IN_VIEW",(function(){return s})),o.d(t,"NODE_SELECTED",(function(){return a})),o.d(t,"CREATE_CLUSTER",(function(){return l})),o.d(t,"MODEL_UPDATED",(function(){return c}));const n="updateCluster",r="deleteCluster",s="clickInView",a="nodeSelected",l="createCluster",c="modelUpdated"}}]);
|