graphdb-workbench
Version:
The web application for GraphDB APIs
2 lines • 13.2 kB
JavaScript
export const __webpack_esm_id__=33524;export const __webpack_esm_ids__=[15435,33524,42826,56139,56413,66014,71156,83610,84923];export const __webpack_esm_modules__={15435:(e,n,t)=>{t.d(n,{o:()=>o});const o={YASGUI:"mode-yasgui",YASQE:"mode-yasqe",YASR:"mode-yasr"}},33524:(e,n,t)=>{t(82493),t(5687),t(25222),t(76933),t(66014),t(42826),t(93098),angular.module("graphdb.framework.jdbc",["toastr","ui.bootstrap","graphdb.framework.jdbc.controllers","graphdb.framework.core.services.repositories","graphdb.framework.core.directives","graphdb.framework.rest.jdbc.service","graphdb.framework.core.directives.yasgui-component"])},42826:()=>{angular.module("graphdb.framework.rest.jdbc.service",[]).factory("JdbcRestService",n),n.$inject=["$http","$repositories","$translate"];const e="rest/sql-views";function n(n,t){return{getJdbcConfigurations:function(){return n.get(`${e}/tables`)},getJdbcConfiguration:function(t){return n.get(`${e}/tables/${t}`)},createNewJdbcConfiguration:function(e){return o("POST","",e)},updateJdbcConfiguration:function(e){return o("PUT",e.name,e)},deleteJdbcConfiguration:function(t){return n.delete(`${e}/tables/${t}`)},getColumnNames:function(t){return n.post(`${e}/columns`,t,{headers:{Accept:"application/json","Content-Type":"text/plain"}})},getColumnsTypeSuggestion:function(o,i){if(!Array.isArray(i))throw new Error(t.instant("jdbc.column.names.constraint"));return n({method:"POST",url:`${e}/types`,data:{query:o,column_names:i}})},getExistingSqlTablePreview:function(e,t){return n({method:"GET",url:`rest/sql-views/preview/${e}`,params:{limit:t}})},getNewSqlTablePreview:function(e,t){return n({method:"POST",url:"rest/sql-views/preview",contentType:"application/json; charset=utf-8",dataType:"json",data:e,params:{limit:t},headers:{Accept:"application/sparql-results+json"}})}};function o(t,o,i){return n({method:t,url:o?`${e}/tables/${o}`:`${e}/tables`,noCancelOnRouteChange:!0,data:{name:i.name,query:i.query,columns:i.columns||[]}})}}},56139:()=>{function e(e,n){return{showToastMessageWithDelay:function(t){return new Promise(o=>{e.success(n.instant(t)),setTimeout(o,300)})}}}angular.module("graphdb.framework.utils.notifications",[]).factory("Notifications",e),e.$inject=["toastr","$translate"]},56413:(e,n,t)=>{t.d(n,{q:()=>o});class o{constructor(e="PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>\n\n# Selects two variables to use as columns\nSELECT ?id ?label {\n ?id rdfs:label ?label\n # The following placeholder must be present in the query\n #!filter\n}",n=!0,t=void 0){this.query=e,this.jdbcConfigurationName=t,this.isNewJdbcConfiguration=n,this.isValidQuery=!0,this.isValidQueryType=!0,this.hasUndefinedColumns=!1,this.isColumnsEmpty=!1,this.columns=[]}}},66014:(e,n,t)=>{t(76933),t(83351),t(56139),t(82493),t(81655);var o=t(56413),i=t(71156),r=t(84923),s=t(15435),a=t(83610),c=t(85727),u=t(60529),l=t(57154),g=t(304);angular.module("graphdb.framework.jdbc.controllers",["ui.bootstrap","graphdb.framework.core.services.repositories","graphdb.framework.rest.monitoring.service","toastr","graphdb.framework.utils.event-emitter-service"],["graphdb.framework.utils.notifications"]).controller("JdbcListCtrl",f).controller("JdbcCreateCtrl",m),f.$inject=["$scope","$repositories","JdbcRestService","toastr","ModalService","$translate"];const d=g.I.logger;function f(e,n,t,o,i,r){e.getSqlConfigurations=function(){!n.getActiveRepository()||n.isActiveRepoOntopType()||n.isActiveRepoFedXType()?e.jdbcConfigurations=[]:t.getJdbcConfigurations().success(function(n){e.jdbcConfigurations=n}).error(function(e){const n=getError(e);o.error(n,r.instant("jdbc.not.get.SQL.msg"))})},e.$watch(function(){return n.getActiveRepository()},function(){e.getSqlConfigurations()}),e.deleteConfiguration=function(n){i.openSimpleModal({title:r.instant("common.warning"),message:r.instant("jdbc.delete.sql.table.warning.msg",{name:n}),warning:!0}).result.then(function(){t.deleteJdbcConfiguration(n).success(function(){e.getSqlConfigurations()}).error(function(e){o.error(getError(e),r.instant("jdbc.not.delete.sql.msg"))})})}}function m(e,n,t,g,f,m,p,b,y,h,C,j,w,v,q,S){n.emptySparqlResponse='{"head": {"vars": []},"results": {"bindings": []}}',n.getSuggestionSqlType="",n.sqlTypes=[],n.activeTab=1,n.jdbcConfigurationInfo=new o.q,n.jdbcConfigurationInfo.jdbcConfigurationName=g.search().name||"",n.saveOrUpdateExecuted=!1,n.jdbcConfigurationInfo.isNewJdbcConfiguration=!n.jdbcConfigurationInfo.jdbcConfigurationName,n.language=q.getLanguage(),n.isDirty=!1,n.prefixes=[],n.loadingControllerResources=!1,n.isQueryRunning=!1,n.canEditActiveRepo=!1;let E,T=!0,R=!0;n.saveJdbcConfiguration=()=>{if(n.saveOrUpdateExecuted=!0,!n.jdbcConfigurationInfo.jdbcConfigurationName)return;if(!n.isDirty)return void z();const e=n.jdbcConfigurationInfo.isNewJdbcConfiguration?A:P;Q(n.jdbcConfigurationInfo).then(D).then(x).then(V).then(e).catch(e=>{if(!(e instanceof r.E)){const n=getError(e);f.error(n,v.instant("jdbc.not.saved.configuration"))}})},n.getPreview=()=>{n.activeTab=1,n.isQueryRunning=!0,Q(n.jdbcConfigurationInfo).then(D).then(x).then(V).then(e=>(N({render:s.o.YASQE,initialQuery:e.query}),e)).then(I).then(([e,n])=>{const t=e&&e.results.bindings&&e.results.bindings.length>0;let o=s.o.YASGUI;t||(o=s.o.YASQE,f.info(v.instant("jdbc.table.definition"),v.instant("jdbc.preview.sql"))),N({render:o,sparqlResponse:e,initialQuery:n.query})}).catch(e=>{e instanceof r.E?e.jdbcConfigurationInfo&&(e.jdbcConfigurationInfo.isColumnsEmpty||e.jdbcConfigurationInfo.hasUndefinedColumns)&&(k(),n.activeTab=2):f.error(getError(e,0,100),v.instant("jdbc.not.show.preview"))}).finally(()=>{n.isQueryRunning=!1})},n.setActiveTab=e=>{n.activeTab=e;const t=n.jdbcConfigurationInfo.columns;2!==n.activeTab||t&&0!==t.length||Q(n.jdbcConfigurationInfo).then(D).then(()=>{n.getColumnsSuggestions()})},n.setDirty=()=>{n.isDirty=!0},n.getTypeLabel=e=>{switch(e){case"iri":return"VARCHAR: IRI";case"string":return"VARCHAR: String";default:return e.indexOf(" ")>0?e:e.toUpperCase()}},n.selectColumnType=(e,t)=>{n.setDirty();const o=n.jdbcConfigurationInfo.columns.find(n=>n.column_name===e);o.column_type===n.getSuggestionSqlType&&V(n.jdbcConfigurationInfo).then(n=>h.getColumnsTypeSuggestion(n.query,[e])).then(e=>e.data).then(e=>{(0,a.y$)(o,e),$(o.column_type,t)}).catch(e=>{f.error(getError(e),v.instant("jdbc.not.suggest.column.type"))})},n.deleteColumn=function(e,t){w.openSimpleModal({title:v.instant("common.warning"),message:v.instant("jdbc.warning.delete.column.msg",{columnName:e}),warning:!0}).result.then(function(){n.jdbcConfigurationInfo.columns.splice(t,1),n.setDirty()})},n.getColumnsSuggestions=()=>{n.jdbcConfigurationInfo.columns&&n.jdbcConfigurationInfo.columns.length>0?w.openSimpleModal({title:v.instant("common.warning"),message:v.instant("jdbc.warning.column.type.msg"),warning:!0}).result.then(function(){k()}):k()},n.hasPrecision=e=>"iri"===e||"string"===e||"decimal"===e,n.containsColumnsWithPrecision=e=>e&&e.some(e=>n.hasPrecision(e.column_type)),n.containsColumnsWithScale=e=>e&&e.some(e=>Y(e.column_type)),n.isLiteral=e=>"iri"!==e&&"unknown"!==e,n.containsNonLiteralColumnsOnly=e=>e&&e.every(e=>!n.isLiteral(e.column_type));const I=e=>{if(n.canWriteActiveRepo){const t=JSON.stringify({name:n.jdbcConfigurationInfo.jdbcConfigurationName,query:n.jdbcConfigurationInfo.query,columns:n.jdbcConfigurationInfo.columns||[]});return Promise.all([h.getNewSqlTablePreview(t).then(e=>e.data),Promise.resolve(e)])}return Promise.all([h.getExistingSqlTablePreview(n.jdbcConfigurationInfo.jdbcConfigurationName).then(e=>e.data),Promise.resolve(e)])},$=(e,n)=>{e===n?f.info((0,u.Gz)(v.instant("jdbc.same.suggested.sql.type",{type:e})),v.instant("jdbc.suggest.sql.type"),{allowHtml:!0}):f.success((0,u.Gz)(v.instant("jdbc.suggested.sql.type",{type:e})),v.instant("jdbc.suggest.sql.type"),{allowHtml:!0})},_=(e,t=new o.q)=>{n.jdbcConfigurationInfo.columns=t.columns,n.jdbcConfigurationInfo.query=t.query,n.jdbcConfigurationInfo.jdbcConfigurationName=g.search().name||"",n.jdbcConfigurationInfo.isNewJdbcConfiguration=!n.jdbcConfigurationInfo.jdbcConfigurationName,n.prefixes=e,N(),F()},A=e=>{const t={name:e.jdbcConfigurationName,query:e.query,columns:e.columns};return h.createNewJdbcConfiguration(t).then(()=>{n.isDirty=!1,n.jdbcConfigurationInfo.isNewConfiguration=!1,f.success(v.instant("jdbc.saved.configuration")),G()})},P=e=>{const t={name:e.jdbcConfigurationName,query:e.query,columns:e.columns};return h.updateJdbcConfiguration(t).then(()=>{n.isDirty=!1,n.jdbcConfigurationInfo.isNewConfiguration=!1,f.success(v.instant("jdbc.configuration.updated")),G()})},N=(e={})=>{const t={};angular.extend(t,n.yasguiConfig||J(),e),n.yasguiConfig=t},J=()=>({showEditorTabs:!1,showToolbar:!1,showResultTabs:!1,showQueryButton:!1,showResultInfo:!1,downloadAsOn:!1,showYasqeResizer:!1,initialQuery:n.jdbcConfigurationInfo.query,componentId:"jdbc-component",prefixes:n.prefixes,maxPersistentResponseSize:0,render:s.o.YASQE,getCellContent:M,sparqlResponse:n.emptySparqlResponse,yasqeActionButtons:c._f,yasqeMode:n.canEditActiveRepo?i.r.WRITE:i.r.READ}),Q=e=>U().getQueryType().then(n=>(e.isValidQueryType="SELECT"===n,e.isValidQueryType?e:Promise.reject(new r.E("Query type is not valid.")))),D=e=>U().isQueryValid().then(n=>(e.isValidQuery=n,e.isValidQuery?e:Promise.reject(new r.E("Invalid query.")))),x=e=>e.columns&&0!==e.columns.length?n.jdbcConfigurationInfo.columns&&n.jdbcConfigurationInfo.columns.find(e=>"unknown"===e.column_type)?(e.hasUndefinedColumns=!0,Promise.reject(new r.E("There are columns without defined type.",e))):Promise.resolve(e):(e.isColumnsEmpty=!0,f.error(v.instant("jdbc.warning.one.column.msg")),Promise.reject(new r.E("There are not defined columns.",e))),k=()=>{Q(n.jdbcConfigurationInfo).then(D).then(V).then(O).then(L).then(e=>n.jdbcConfigurationInfo=e).catch(e=>{d.info(e)})},O=e=>h.getColumnNames(e.query).then(n=>[e,n.data]).catch(function(e){f.error(getError(e),v.instant("jdbc.not.suggest.column.names"))}),L=([e,t])=>h.getColumnsTypeSuggestion(e.query,t).then(function(o){return e.columns=(0,a.gJ)(t,o.data),e.isColumnsEmpty=e.columns.length,n.setDirty(),e}).catch(function(e){f.error(getError(e),v.instant("jdbc.not.suggest.column.types"))}),U=()=>c.p3.getOntotextYasguiElement("#query-editor"),V=e=>U().getQuery().then(n=>(e.query=n,e)),Y=e=>"decimal"===e,M=(e,n)=>{let t=e.value;return t=t.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">"),"<div class = 'literal-cell'><p class='nonUri' style='border: none; background-color: transparent; padding: 0; margin: 0'>"+t+"</p></div>"},W=(e,n,t,o)=>{w.openSimpleModal({title:e,message:n,warning:!0}).result.then(function(){angular.isFunction(t)&&t()},function(){angular.isFunction(o)&&o()})},F=()=>{n.getSuggestionSqlType=v.instant("view.jdbc.create.get_suggestion_sql_type"),n.sqlTypes=["string","iri","boolean","byte","short","int","long","float","double","decimal","date","time","timestamp",n.getSuggestionSqlType]},G=()=>{setTimeout(function(){z()},1e3)},z=()=>{g.url("/jdbc")},H=e=>{n.isDirty&&(e.returnValue=!0)},B=()=>{window.removeEventListener("beforeunload",H),X.forEach(e=>e())},X=[],K=l.ServiceProvider.get(l.RepositoryContextService).onSelectedRepositoryChanged(e=>{e&&(R?(R=!1,E=e.id):e.id!==E&&U().abortQuery().then(z))},()=>new Promise(function(e){if(n.jdbcConfigurationInfo.isNewJdbcConfiguration)return void e(!0);const t=()=>{n.isDirty=!1,e(!0)};if(n.isDirty){const n=()=>{e(!1)},o=v.instant("common.confirm"),i=v.instant("jdbc.warning.unsaved.changes");W(o,i,t,n)}else t()}));X.push(K),X.push(t.$on("$translateChangeSuccess",()=>{n.language=q.getLanguage(),F()})),X.push(n.$on("$locationChangeStart",(e,t)=>{if(n.isDirty){e.preventDefault();const n=v.instant("common.confirm"),o=v.instant("jdbc.warning.unsaved.changes");W(n,o,()=>{B();const e=g.absUrl().length-g.url().length,n=t.substring(e);g.path(n)})}else B()})),X.push(n.$on("$destroy",B)),window.addEventListener("beforeunload",H),X.push(n.$watch(n.getActiveRepositoryObject,e=>{e&&(n.canEditActiveRepo=n.canWriteActiveRepo(),T?((()=>{n.loadingControllerResources=!0;const e=m.getActiveRepository();n.jdbcConfigurationInfo.jdbcConfigurationName?Promise.all([m.getPrefixes(e),h.getJdbcConfiguration(n.jdbcConfigurationInfo.jdbcConfigurationName)]).then(([e,n])=>{_(e,n.data)}).finally(()=>n.loadingControllerResources=!1):m.getPrefixes(e).then(e=>_(e)).finally(()=>n.loadingControllerResources=!1)})(),T=!1):U().abortQuery().then(z))}))}m.$inject=["$q","$scope","$rootScope","$location","toastr","$repositories","$window","$timeout","$interval","JdbcRestService","RDF4JRepositoriesRestService","SparqlRestService","ModalService","$translate","$languageService","EventEmitterService"]},71156:(e,n,t)=>{t.d(n,{r:()=>o});const o={WRITE:"WRITE",READ:"READ",PROTECTED:"PROTECTED"}},83610:(e,n,t)=>{t.d(n,{gJ:()=>o,y$:()=>i});const o=(e=[],n)=>e.map(e=>({column_name:e,column_type:n[e].column_type,nullable:!0,sparql_type:n[e].sparql_type})),i=(e,n)=>{e.column_type=n[e.column_name].column_type,e.sparql_type=n[e.column_name].sparql_type}},84923:(e,n,t)=>{t.d(n,{E:()=>o});class o extends Error{constructor(e,n){super(e),this.jdbcConfigurationInfo=n}}}};
//# sourceMappingURL=33524.cde001aa3bfd45d80e07.bundle.js.map