UNPKG

graphdb-workbench

Version:
2 lines 12.6 kB
(window.webpackJsonp=window.webpackJsonp||[]).push([[35,84],{29:function(n,e){angular.module("graphdb.framework.rest.connectors.service",[]).factory("ConnectorsRestService",o),o.$inject=["$http"];const t="rest/connectors";function o(n){return{getConnectors:function(){return n.get(t)},initConnector:function(e){return n.get(`${t}/options?prefix=${e}`)},hasConnector:function(e){return n.get(`${t}/existing?prefix=${e}`)},checkConnector:function(e){return n.post(`${t}/check`,e,{headers:{"Content-Type":"text/plain"}})}}}},32:function(n,e,t){"use strict";t.r(e);t(10),t(29);function o(n){const e=[];return Object.keys(n).forEach((function(t){e.push(encodeURIComponent(t)+"="+encodeURIComponent(n[t]))})),e.join("&")}function r(n,e){for(let o=0;o<e.length;o++){const r=e[o];if("StringArray"===r.__type)n[r.__name]||(n[r.__name]=[""]);else if("OptionArray"===r.__type)if(n[r.__name])for(let e=0;e<r.__childOptions.length;e++){const t=r.__childOptions[e];if("Boolean"===t.__type)for(let e=0;e<n[r.__name].length;e++){const o=n[r.__name][e];!o.hasOwnProperty([t.__name])&&angular.isDefined(t.__defaultValue)&&(o[t.__name]=t.__defaultValue)}}else{n[r.__name]=[];const e={};for(let n=0;n<r.__childOptions.length;n++){const t=r.__childOptions[n];"StringArray"===t.__type?e[t.__name]=[""]:e[t.__name]=angular.isUndefined(t.__defaultValue)?"":t.__defaultValue}n[r.__name].push(e)}else"Map"===r.__type?n[r.__name]?n[r.__name]=(t=n[r.__name],_.map(t,(function(n,e){return{key:e,value:n}}))):n[r.__name]=[]:"JsonString"===r.__type?!n[r.__name]||n[r.__name]instanceof String||"string"==typeof n[r.__name]||(n[r.__name]=angular.toJson(n[r.__name],2)):angular.isUndefined(n[r.__name])&&(n[r.__name]=angular.isUndefined(r.__defaultValue)?"":r.__defaultValue)}var t;return n}function i(n,e,t){return n.post("repositories/"+e,o({query:t}),{headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/sparql-results+json","X-GraphDB-Local-Consistency":"updating"}})}function c(n){return n.substring(0,n.length-1)+"/instance#"}function a(n,e,t,o,r){const i=function n(e,t){const o={};return _.each(t,(function(t){angular.isDefined(e[t.__name])&&("OptionArray"===t.__type?(o[t.__name]=[],_.each(e[t.__name],(function(e){o[t.__name].push(n(e,t.__childOptions))}))):o[t.__name]=angular.copy(e[t.__name]))})),o}(t,o);for(let n=0;n<o.length;n++)try{"Map"===o[n].__type?i[o[n].__name]=(a=i[o[n].__name],_.reduce(a,(function(n,e){if(""===e.key&&""===e.value);else{if(""===e.key)throw new Error('Key may not be empty with value "'+e.value+'"');if(n.hasOwnProperty(e.key))throw new Error("Duplicate key "+e.key);n[e.key]=e.value}return n}),{})):"JsonString"===o[n].__type&&(i[o[n].__name]=angular.fromJson(i[o[n].__name]))}catch(e){return r(o[n].__label,e.message),null}var a;!function n(e){Array.isArray(e)&&(e=_.filter(e,(function(n){return null!==n&&(!n.trim||""!==n.trim())})));return Object.keys(e).forEach((function(t){""!==e[t]&&null!=e[t]||!1===e[t]?"object"==typeof e[t]&&(e[t]=n(e[t])):delete e[t]})),e}(i);let s="";return s+="PREFIX :<"+e+">\n",s+="PREFIX inst:<"+c(e)+">\n",s+="INSERT DATA {\n",s+="\tinst:"+n+" :createConnector '''\n",s+=angular.toJson(i,2),s+="\n''' .\n}\n",s=s.replace(/\\/g,"\\\\\\"),s}function s(n,e,t,s,u,l,f,p,d){function g(e){n.beingBuiltConnector={percentDone:0,status:{processedEntities:0,estimatedEntities:0,indexedEntities:0,entitiesPerSecond:0},actionName:e?"Repairing":"Creating",waitOnRepairStartOnce:!!e,eta:"-",inline:!1,iri:null}}function m(e,t,o){return g(o),$.extend(n.beingBuiltConnector,{iri:c(e)+t,name:t,inline:!1,doneCallback:function(){n.beingBuiltConnector.modalInstance.dismiss("cancel")}}),n.beingBuiltConnector.modalInstance=s.open({templateUrl:"pages/connectorProgress.html",controller:"CreateProgressCtrl",size:"lg",backdrop:"static",scope:n}),n.beingBuiltConnector.modalInstance}function C(e,r,i){const c=m(e.value,r.name,!1);p.addStatements(t.getActiveRepository(),o({update:r.query})).then((function(){d.getConnectors().then((function(){d.hasConnector(encodeURIComponent(e.value)).then((function(t){n.existing[e.key]=t.data}))})),u.success("Created connector "+r.name)}),(function(n){u.error(getError(n)),i()})).finally((function(){c.dismiss("cancel")}))}n.loader=!1,n.controllers=[],n.existing={},n.definitions={},n.getLoaderMessage=function(){const e=(Date.now()-n.loaderStartTime)/1e3,t=n.getHumanReadableSeconds(e);let o="";return o=n.progressMessage?n.progressMessage+"... "+t:"Running operation..."+t,n.extraMessage&&e>10&&(o+="\n"+n.extraMessage),o},n.setLoader=function(e,t,o){e?(n.loader=!0,n.loaderStartTime=Date.now(),n.progressMessage=t,n.extraMessage=o):(n.loader=!1,n.progressMessage="",n.extraMessage="")},n.initConnector=function(e){return d.initConnector(encodeURIComponent(e.value)).then((function(t){return n.definitions[e.key]=t.data,d.hasConnector(encodeURIComponent(e.value)).then((function(t){n.existing[e.key]=t.data}))}))},n.getConnectors=function(){n.canWriteActiveRepo()&&(n.setLoader(!0,"Fetching connectors","Normally this is a fast operation but it may take longer if a bigger repository needs to be initialised first."),d.getConnectors().then((function(o){n.connectors=Object.keys(o.data).map((function(n){return{key:n,value:o.data[n]}})),f.all(_.map(n.connectors,(function(e){return n.initConnector(e)}))).finally((function(){g();const o=function(n){const e=_.map(n,(function(n){return"<"+n.value+"connectorStatus>"})).join("|");return e?"SELECT ?connector ?status { ?connector "+e+" ?status }":null}(n.connectors);o?function(n){return i(e,t.getActiveRepository(),n)}(o).then((function(e){const t=function(n){if(n.bindings)for(let e=0;e<n.bindings.length;e++)try{const t=JSON.parse(n.bindings[e].status.value);if("BUILDING"===t.status)return{connector:n.bindings[e].connector.value,status:t}}catch(n){console.error(n)}return{}}(e.data.results);if(t.connector){const e=t.connector.split(/#/);e[0]=e[0].replace(/\/instance$/,"#"),o=e[0],r=e[1],g(),$.extend(n.beingBuiltConnector,{iri:c(o)+r,name:r,inline:!0,doneCallback:function(){n.beingBuiltConnector.inline=!1}})}var o,r})).finally((function(){n.setLoader(!1)})):n.setLoader(!1)}))})).catch((function(e){n.setLoader(!1),u.error(getError(e),"Could not get connectors")})),n.existing={})},n.getOptions=function(e){return n.definitions[e.key]},n.isEmpty=function(n){return angular.isObject(n)&&0===Object.keys(n).length},n.toPrettyJson=function(n){return angular.toJson(n,2)},n.$watch((function(){return t.getActiveRepository()}),n.getConnectors),n.$watch((function(){return t.getActiveLocation()}),n.getConnectors),n.copyConnector=function(e,t){let o;angular.isUndefined(t)||(o=angular.copy(t),o.name=o.name+"-copy"),s.open({templateUrl:"pages/createConnector.html",controller:"CreateConnectorCtrl",size:"lg",backdrop:"static",resolve:{connector:function(){return e},values:function(){return angular.isUndefined(o)?{name:"",values:{}}:o},options:function(){return n.getOptions(e)}}}).result.then((function(t){C(e,t,(function(){t.skipConversion=!0,n.newConnector(e,t)}))}))},n.newConnector=function(e,t){s.open({templateUrl:"pages/createConnector.html",controller:"CreateConnectorCtrl",size:"lg",backdrop:"static",resolve:{connector:function(){return e},values:function(){return angular.isUndefined(t)?{name:"",values:{}}:t},options:function(){return n.getOptions(e)}}}).result.then((function(t){C(e,t,(function(){t.skipConversion=!0,n.newConnector(e,t)}))}))},n.repair=function(e,r){l.openSimpleModal({title:"Confirm repair",message:"Are you sure you want to repair this connector?<br>Note that repair means delete + recreate with the same settings.",warning:!0}).result.then((function(){const i=m(r.value,e.name,!0),a=(s=e.name,"PREFIX prefix:<"+(l=r.value)+">\nINSERT DATA {\n\t<"+c(l)+s+'> prefix:repairConnector ""\n}');var s,l;p.addStatements(t.getActiveRepository(),o({update:a})).then((function(){d.getConnectors().then((function(){d.hasConnector(encodeURIComponent(r.value)).then((function(e){n.existing[r.key]=e.data}))})),u.success("Repaired connector "+e.name)}),(function(n){u.error(getError(n))})).finally((function(){i.dismiss("cancel")}))}))},n.delete=function(e,r){const i=r.key.indexOf("Elastic")>=0||r.key.indexOf("Solr")>=0;s.open({templateUrl:"js/angular/externalsync/templates/deleteConnector.html",controller:"DeleteConnectorCtrl",resolve:{type:function(){return r.key},isExternal:function(){return i}}}).result.then((function(c){n.setLoader(!0,"Deleting connector "+e.name,"This is usually a fast operation but it might take a while.");const a=function(n,e,t){const o=e.substring(0,e.length-1)+"/instance#";return"PREFIX prefix:<"+e+">\nINSERT DATA {\n\t<"+o+n+'> prefix:dropConnector "'+(t?"force":"")+'"\n}'}(e.name,r.value,c);p.addStatements(t.getActiveRepository(),o({update:a})).then((function(){d.getConnectors().then((function(){d.hasConnector(encodeURIComponent(r.value)).then((function(e){n.existing[r.key]=e.data}))})),c?(u.success("Deleted (with force) connector "+e.name),i&&u.warning("You may have to remove the index manually from "+r.key)):u.success("Deleted connector "+e.name)}),(function(n){u.error(getError(n))})).finally((function(){n.setLoader(!1)}))}))},n.viewQuery=function(e,t){s.open({templateUrl:"pages/viewQuery.html",controller:"ViewQueryCtrl",resolve:{query:function(){const o=n.getOptions(e);return a(t.name,e.value,r(t.values,o),o)}}})}}function u(n,e,t,o){n.force=!1,n.type=t,n.isExternal=o,n.ok=function(){e.close(n.force)},n.cancel=function(){e.dismiss()}}function l(n,e,t,o,r){function i(){return a(n.name,t.value,n.values,n.options,(function(n,e){r.error(e,n)}))}n.connector=t,n.addField=function(e,t){const o=angular.copy(n.defaultValues[t][0]);n.values[t].splice(e+1,0,o)},n.addOption=function(n,e){e.splice(n+1,0,"")},n.deleteOption=function(n,e){e.splice(n,1)},n.addMapOption=function(n,e){e.splice(n+1,0,{key:"",value:""})},n.deleteMapOption=function(n,e){e.splice(n,1)},n.ok=function(){if(n.form.$valid){const t=i();t&&e.close({name:n.name,values:n.values,options:n.options,query:t})}},n.viewQuery=function(){const n=i();n&&o.open({templateUrl:"pages/viewQuery.html",controller:"ViewQueryCtrl",resolve:{query:function(){return n}}})},n.cancel=function(){e.dismiss("cancel")}}function f(n,e,t,o,i,c,a,s){angular.extend(this,e("ExtendNewConnectorCtrl",{$scope:n,$uibModalInstance:o,connector:i,$uibModal:c})),n.values=a.values,n.options=s,n.name=a.name,a.skipConversion||(n.values=r(n.values,n.options)),n.defaultValues=angular.copy(n.values)}function p(n,e,t,o){function r(){const r=function(n){const e=n.replace(/\/instance#.+$/,"#connectorStatus");let t="";return t+="SELECT ?status {\n",t+="\t<"+n+"> <"+e+"> ?status",t+="\n}",t}(n.beingBuiltConnector.iri);n.beingBuiltConnector.iri=null,n.progressInterval=e((function(){(function(n){return i(t,o.getActiveRepository(),n)})(r).then((function(t){const o=function(n){if(n.bindings&&n.bindings.length>0)try{return JSON.parse(n.bindings[0].status.value)}catch(n){console.error(n)}return{}}(t.data.results);"BUILDING"===o.status?(n.beingBuiltConnector.status=o,n.beingBuiltConnector.percentDone=(100*o.processedEntities/o.estimatedEntities).toFixed(0),n.beingBuiltConnector.eta=n.getHumanReadableSeconds(o.etaSeconds),n.beingBuiltConnector.actionName=o.repair?"Repairing":"Creating",n.beingBuiltConnector.waitOnRepairStartOnce=!1):"BUILT"!==o.status||n.beingBuiltConnector.waitOnRepairStartOnce||(e.cancel(n.progressInterval),n.beingBuiltConnector.doneCallback&&n.beingBuiltConnector.doneCallback())}))}),1e3),n.$on("$destroy",(function(){e.cancel(n.progressInterval)}))}n.beingBuiltConnector=n.beingBuiltConnector||{},!n.beingBuiltConnector.inline&&n.beingBuiltConnector.iri&&r(),n.$watch("beingBuiltConnector.iri",(function(e){n.beingBuiltConnector.inline&&e&&r()}))}angular.module("graphdb.framework.externalsync.controllers",["graphdb.framework.rest.rdf4j.repositories.service","graphdb.framework.rest.connectors.service"]).controller("ConnectorsCtrl",s).controller("ExtendNewConnectorCtrl",l).controller("CreateConnectorCtrl",f).controller("CreateProgressCtrl",p).controller("DeleteConnectorCtrl",u).filter("ceil",(function(){return function(n){return Math.ceil(n)}})),s.$inject=["$scope","$http","$repositories","$uibModal","toastr","ModalService","$q","RDF4JRepositoriesRestService","ConnectorsRestService"],u.$inject=["$scope","$uibModalInstance","type","isExternal"],l.$inject=["$scope","$uibModalInstance","connector","$uibModal","toastr"],f.$inject=["$scope","$controller","$http","$uibModalInstance","connector","$uibModal","values","options"],p.$inject=["$scope","$interval","$http","$repositories"]}}]); //# sourceMappingURL=35.1f53c71368afc468cc10.bundle.js.map