graphdb-workbench 2.4.0-RC1 → 2.4.0-RC2
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/108.21ba9a6de554ddab0cb3.bundle.js +1 -1
- package/dist/12.eb00a82848770f10d0ef.bundle.js +1 -1
- package/dist/{128.d595d6b6fb9ae610976d.bundle.js → 128.ad625978e3241953ffba.bundle.js} +1 -1
- package/dist/{143.6e364b1eca9d52b02b4b.bundle.js → 143.205bd5ed1d706768a171.bundle.js} +1 -1
- package/dist/168.2d82f1a487dc3ce888b0.bundle.js +1 -1
- package/dist/171.4f08cb300ca1440a3307.bundle.js +1 -1
- package/dist/{18.253aea7fe10e3ba2e32c.bundle.js → 18.1b68d0b88fa20176aa24.bundle.js} +1 -1
- package/dist/198.55e79d00713b2500f203.bundle.js +1 -1
- package/dist/20.c6da63eaca8c7d70114f.bundle.js +1 -0
- package/dist/22.a052dbb90cc265342e5a.bundle.js +1 -1
- package/dist/{23.b4c0f0ceb8bd010f614b.bundle.js → 23.bb941b1c5b252f4ca45d.bundle.js} +1 -1
- package/dist/25.e270178ce42ba8e4e7ee.bundle.js +1 -0
- package/dist/{26.68f4f27950281a3c38f5.bundle.js → 26.40d859a0a8a84551e6a3.bundle.js} +1 -1
- package/dist/29.23338c84d369c009f196.bundle.js +1 -1
- package/dist/32.9a8e75f644f231ec2346.bundle.js +1 -0
- package/dist/{33.7cbb90a6b50f8930dbea.bundle.js → 33.19afa1f8be001d8dbb35.bundle.js} +1 -1
- package/dist/36.55a3af7ce65b4b20033b.bundle.js +1 -1
- package/dist/{4.c8e2274b40fd185a3738.bundle.js → 4.61bf53cda571e1e46d8b.bundle.js} +1 -1
- package/dist/40.f1f27b64356cd38da424.bundle.js +1 -0
- package/dist/{45.4be80cd242c82f24dee0.bundle.js → 45.0e828cba3f18851b0c36.bundle.js} +1 -1
- package/dist/48.4d17d325f11d472a147d.bundle.js +1 -1
- package/dist/{5.1638e5d352dd9ff72475.bundle.js → 5.df72ab6068dcb3268c22.bundle.js} +1 -1
- package/dist/{61.9bf61ab90dcbc0bb6276.bundle.js → 61.d58f9cc70caedb912d9f.bundle.js} +1 -1
- package/dist/64.305906a8eb2fa755117a.bundle.js +1 -0
- package/dist/{72.a2a2287694bcbc2550a8.bundle.js → 72.2a93a562e2af1ada5ce7.bundle.js} +1 -1
- package/dist/{bundle.4e5715c43e767d286da2.bundle.js → bundle.d7eca3469be2315b0073.bundle.js} +6 -6
- package/dist/css/aclmanagement.css +9 -0
- package/dist/i18n/locale-en.json +4 -2
- package/dist/i18n/locale-fr.json +4 -2
- package/dist/index.html +3 -3
- 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/security/templates/user.html +1 -1
- package/dist/license-checker.json +2 -2
- package/dist/pages/aclmanagement.html +7 -11
- 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 +4 -4
- 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 +11 -11
- package/dist/pages/graphs-visualizations.html +7 -7
- package/dist/pages/guides.html +1 -1
- package/dist/pages/import.html +1 -1
- package/dist/pages/jdbc-create.html +5 -5
- package/dist/pages/monitor/backup-and-restore.html +1 -1
- package/dist/pages/monitor/queries.html +1 -1
- package/dist/pages/monitor/resources.html +2 -2
- 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 +2 -2
- package/dist/pages/repository.html +2 -2
- package/dist/pages/similarity-indexes.html +1 -1
- package/dist/pages/sparql-template-create.html +5 -5
- package/dist/pages/sparql.html +3 -3
- package/dist/pages/webapi.html +2 -2
- package/dist/res/swagger/index.html +27 -27
- package/package.json +1 -1
- package/dist/20.89bc66429b9d42b35779.bundle.js +0 -1
- package/dist/25.144cbec4c8b6067b4862.bundle.js +0 -1
- package/dist/32.4b694d4b6b15e1e3ff16.bundle.js +0 -1
- package/dist/40.c569fcee033d5ae3fa2a.bundle.js +0 -1
- package/dist/64.951218e19b5a087d25f9.bundle.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[128],{129:function(e,t,r){"use strict";r.r(t);var o=r(
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[128],{129:function(e,t,r){"use strict";r.r(t);var o=r(83);const a={OBDA:"obdaFile",OWL:"owlFile",CONSTRAINT:"constraintFile",LENSES:"lensesFile",DB_METADATA:"dbMetadataFile"};class n{constructor(e="generic"){this.driverType=e,this.hostName="",this.port=void 0,this.databaseName="",this.username="",this.password="",this.driverClass="",this.url="",this.urlUserInput=""}}class i{constructor(e,t=!1){this.type=e,this.fileName="",this.loading=!1,this.required=t}}class s extends Error{}const l="generic",p="dremio",c="databricks",d="snowflake";class m{constructor(){this.classAvailable=!1,this.downloadDriverUrl="",this.driverClass="",this.driverName="",this.driverType="",this.portRequired=!1,this.urlTemplate=""}static isGenericDriver(e){return e===l}static isSnowflakeDriver(e){return e===d}}function f(e,t,r,f,u){return{restrict:"E",scope:!1,templateUrl:"js/angular/repositories/templates/ontop-repo.html",link:function(v){v.isGenericDriver=!0,v.defaultUrlTemplate="jdbc:database://localhost:port/database_name",v.ontopProperiesLink="https://ontop-vkg.org/guide/advanced/configuration.html",v.ontopFileType=a,v.selectedDriver=new m,v.supportedDriversData=[],v.formData={connectionInformation:new n,settings:{additionalProperties:"",ontopFiles:[]}},v.selectDriver=e=>{v.selectedDriver=v.supportedDriversData.find(t=>t.driverType===e),v.isGenericDriver=m.isGenericDriver(v.selectedDriver.driverType),v.editRepoPage&&v.currentOntopRepoInfo&&v.currentOntopRepoInfo.connectionInformation.driverType===e?v.formData=angular.copy(v.currentOntopRepoInfo):(k(),v.formData.connectionInformation.driverType=v.selectedDriver.driverType),v.formData.connectionInformation.driverClass=v.selectedDriver.driverClass,v.updateUrl()},v.getOntopFileInfo=e=>v.formData.settings.ontopFiles.find(t=>e===t.type),v.getHostNameLabel=()=>{const e=m.isSnowflakeDriver(v.selectedDriver.driverType)?"ontop.repo.database.snowflake.host_name":"ontop.repo.database.host_name";return u.instant(e)+"*"},v.getDatabaseNameLabel=()=>{let e="";switch(v.selectedDriver.driverType){case d:e="ontop.repo.database.warehouse.database_name";break;case c:e="ontop.repo.database.http_path.database_name";break;case p:e="ontop.repo.database.schema.database_name";break;default:e="ontop.repo.database.database_name"}return u.instant(e)},v.updateUrl=()=>{const e=h()||"";v.formData.connectionInformation.url=e+v.formData.connectionInformation.urlUserInput},v.isTestConnectionDisabled=()=>{const e=v.formData.connectionInformation,t=v.selectedDriver;return!(e.driverClass&&e.url&&(!t.portRequired||e.port))||!(m.isGenericDriver(t.driverType)||e.hostName&&e.databaseName)},v.testConnection=()=>{w().then(R).then(T).then(P).then(F).then(b).then(()=>t.validateOntopPropertiesConnection(v.repositoryInfo)).then(()=>r.success(u.instant("ontop.repo.successful.connection.msg"))).catch(e=>{e instanceof s?r.error(e.message):N(u.instant("ontop.repo.failed.to.connect"),e)})},v.editFile=r=>{const a=v.repositoryInfo.params[r.type].label,n=u.instant("update.file.edit.content.header",{fileName:a});e.open({templateUrl:"js/angular/templates/modal/editRepoFile.html",controller:"EditRepositoryFileCtrl",windowClass:"update-ontop-repo-dialog",resolve:{file:()=>{const e=v.repositoryInfo.params[r.type];return e?e.value:""},dialogTitle:()=>n}}).result.then(e=>{t.updateRepositoryFileContent(e.fileLocation,e.content,v.repositoryInfo.location).success(e=>{r.fileName=Object(o.getFileName)(e.fileLocation),v.repositoryInfo.params[r.type].value=e.fileLocation}).error(e=>{N(u.instant("common.error"),e)})})},v.uploadOntopFile=(e,t)=>{if(e&&e.length){const o=e[0];t.loading=!0;const a={url:"rest/repositories/file/upload",data:{file:o,location:v.repositoryInfo.location}};f.upload(a).success(e=>{e.success?(t.fileName=o.name,v.repositoryInfo.params[t.type].value=e.fileLocation):r.error(e.errorMessage)}).error(e=>{N(u.instant("common.error"),e),v.uploadFile=""}).finally(()=>{t.loading=!1})}},v.updateOntopRepo=()=>{const e=v.editRepoPage?v.editRepository:v.createRepo;O().then(w).then(R).then(T).then(P).then(F).then(C).then(b).then(e).catch(e=>{e instanceof s?r.error(e.message):console.log(e)})},v.onKeyDownInUrlInput=e=>{const t=e.keyCode;if(37===t||39===t||36===t||35===t)return;const r=h();if(!r)return;const o=e.ctrlKey||e.metaKey;if(o&&65===t||o&&67===t)return;const a=e.target.selectionStart;8===t&&a-1<r.length&&(e.preventDefault(),e.stopPropagation()),a<r.length&&(e.preventDefault(),e.stopPropagation())},v.onKeyUpInUrlInput=()=>{D()};const D=()=>{const e=h();e&&v.formData.connectionInformation.url.startsWith(e)?v.formData.connectionInformation.urlUserInput=v.formData.connectionInformation.url.substring(e.length):v.formData.connectionInformation.urlUserInput=v.formData.connectionInformation.url},h=()=>m.isSnowflakeDriver(v.selectedDriver.driverType)?I():g(),I=()=>{let e=v.selectedDriver.urlTemplate;const t=v.formData.connectionInformation;return t.hostName&&(e=e.replace("{identifier}",t.hostName)),t.port&&(e=e.replace(".snowflakecomputing.com/?",`.snowflakecomputing.com:${t.port}/?`)),t.databaseName&&(e=e.replace("{database}",t.databaseName)),e},g=()=>{let e=v.selectedDriver.urlTemplate;const t=v.formData.connectionInformation;return t.hostName&&(e=t.port?e.replace("{hostport}",`${t.hostName}:${t.port}`):e.replace("{hostport}",""+t.hostName)),t.databaseName&&(e=e.replace("{database}",t.databaseName)),e},y=e=>{v.formData.settings.ontopFiles.forEach(t=>{t.loading=e})},b=()=>{y(!0);const e=v.formData.connectionInformation,r={hostName:e.hostName,port:e.port,databaseName:e.databaseName,userName:e.username,password:e.password,driverClass:e.driverClass,url:e.url,additionalProperties:v.formData.settings.additionalProperties};return t.updatePropertiesFile(v.repositoryInfo.params.propertiesFile.value,r,v.repositoryInfo.location,v.selectedDriver.driverType).success(e=>{v.repositoryInfo.params.propertiesFile.value=e.fileLocation}).error(e=>{N(u.instant("common.error"),e)}).finally(()=>y(!1))},N=(e,t)=>{const o=getError(t);r.error(o,e)},w=()=>m.isGenericDriver(v.selectedDriver.driverType)||v.formData.connectionInformation.hostName?Promise.resolve():Promise.reject(new s(u.instant("missing.required.field",{fieldName:u.instant("ontop.repo.database.host_name")}))),T=()=>m.isGenericDriver(v.selectedDriver.driverType)||v.formData.connectionInformation.databaseName?Promise.resolve():Promise.reject(new s(u.instant("missing.required.field",{fieldName:u.instant("ontop.repo.database.database_name")}))),P=()=>v.formData.connectionInformation.driverClass?Promise.resolve():Promise.reject(new s(u.instant("missing.required.field",{fieldName:u.instant("ontop.repo.database.driver_class")}))),F=()=>v.formData.connectionInformation.url?Promise.resolve():Promise.reject(new s(u.instant("missing.required.field",{fieldName:u.instant("ontop.repo.database.url")}))),O=()=>v.repositoryInfo.id?Promise.resolve():Promise.reject(new s(u.instant("empty.repoid.warning"))),C=()=>v.getOntopFileInfo(a.OBDA).fileName?Promise.resolve():Promise.reject(new s(u.instant("ontop.repo.missing.required.file",{fileName:v.repositoryInfo.params[a.OBDA].label}))),R=()=>v.selectedDriver.portRequired&&!v.formData.connectionInformation.port?Promise.reject(new s(u.instant("missing.required.field",{fieldName:u.instant("ontop.repo.database.port")}))):Promise.resolve(),k=()=>{v.formData={connectionInformation:new n,settings:{additionalProperties:"",ontopFiles:[]}},Object.values(a).forEach(e=>{const t=new i(e);v.formData.settings.ontopFiles.push(t)}),v.getOntopFileInfo(a.OBDA).required=!0};t.getSupportedDriversData(v.repositoryInfo).success(e=>{v.supportedDriversData=e}).error(e=>{N(u.instant("common.error"),e)}).then(()=>{v.editRepoPage?(y(!0),t.loadPropertiesFile(v.repositoryInfo.params.propertiesFile.value,v.repositoryInfo.location,v.selectedDriver.driverType).success(e=>{let t=v.supportedDriversData.find(t=>t.driverClass===e.driverClass);t&&e.hostName||(t=v.supportedDriversData.find(e=>m.isGenericDriver(e.driverType))),v.selectDriver(t.driverType),v.formData.connectionInformation.driverType=t.driverType,v.formData.connectionInformation.driverClass=e.driverClass,v.formData.connectionInformation.password=e.password,v.formData.connectionInformation.username=e.userName,v.formData.connectionInformation.url=e.url,v.formData.settings.additionalProperties=e.additionalProperties,m.isGenericDriver(t.driverType)||(v.formData.connectionInformation.hostName=e.hostName,v.formData.connectionInformation.databaseName=e.databaseName,v.formData.connectionInformation.port=e.port?parseInt(e.port,10):void 0),D(),v.updateUrl(),Object.values(a).forEach(e=>{const t=v.repositoryInfo.params[e],r=v.getOntopFileInfo(e);t&&(r.fileName=Object(o.getFileName)(t.value))}),v.currentOntopRepoInfo=angular.copy(v.formData)}).error(e=>{N(u.instant("common.error"),e)}).finally(()=>{y(!1)})):v.selectDriver(l)})}}}angular.module("graphdb.framework.repositories.ontop-repo.directive",[]).directive("ontopRepo",f),f.$inject=["$uibModal","RepositoriesRestService","toastr","Upload","$translate"]}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[143],{
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[143],{86:function(e,t,n){"use strict";n.r(t);n(6),n(23);function s(e,t,n,s,i){e.supportsStatistics=!0,e.settings={statistics:!1},e.getSettings=function(){e.loader=!0,s.getStatistics().then((function(t){e.settings.statistics="true"===t.data,e.supportsStatistics=!0}),(function(n){if(404===n.status)e.supportsStatistics=!1;else{const e=getError(n.data);t.error(e,i.instant("error.getting.settings"))}}))},e.getSettings(),e.setSettings=function(){e.loader=!0,s.toggleStatistics(e.settings.statistics).then((function(){n.close(),t.success(i.instant("saving.settings.success"))}),(function(e){const n=getError(e.data);t.error(n,i.instant("saving.settings.error"))}))},e.submitForm=function(){e.setSettings()},e.cancel=function(){n.dismiss("cancel")}}function i(e,t,n,s,i,c,r){e.loadingLicense=function(){return n.loadingLicense},n.checkLicenseStatus(),e.revertToFree=function(){c.openSimpleModal({title:r.instant("confirm.operation"),message:r.instant("revert.to.free.warning.msg"),warning:!0}).result.then((function(){t.unregisterLicense().success((function(){n.checkLicenseStatus()}))}))}}function c(e,t,n,s,i,c,r,o){e.$on("securityInit",(function(){r.isAdmin()||n.path("/license")})),e.sendLicenseToValidateAndActivate=l;const a=$(".license-textarea");function l(e){t.sendLicenseToValidate(e).success((function(n){"Invalid"!==n.licensee?(a.val(e),function(e,n){s.open({templateUrl:"js/angular/settings/modal/validate-license.html",controller:"ValidateLicenseModalCtrl",size:"lg",resolve:{license:function(){return e}}}).result.then((function(){!function(e){e||(e=a.val());if(e){const n=atob(e.replace(/\s/g,""));t.registerLicense(n).success((function(){c.history.back()})).error((function(){i.error(o.instant("license.register.error"))}))}else i.error(o.instant("no.license.code.error"))}(n)}))}(n,e)):(a.val(""),i.error(n.message))})).error((function(){i.error(o.instant("invalid.license"))}))}e.$watch("currentFile",(function(){if(e.currentFile){const n=e.currentFile;t.extractFromLicenseFile(n).success((function(e){l(e)})).error((function(){i.error(o.instant("could.not.upload.file.error"))}))}})),e.getBackToPreviousPage=function(){c.history.back()}}function r(e,t,n){e.ok=function(){t.close()},e.cancel=function(){t.dismiss("cancel")},e.license=n}function o(e){e.loader=!0,e.setLoader=function(t){e.loader=t}}angular.module("graphdb.framework.settings.controllers",["ngCookies","ui.bootstrap","graphdb.framework.core.services.jwtauth","toastr"]).controller("ActiveLocationSettingsCtrl",s).controller("ValidateLicenseModalCtrl",r).controller("LicenseCtrl",i).controller("RegisterLicenseCtrl",c).controller("LoaderSamplesCtrl",o),s.$inject=["$scope","toastr","$uibModalInstance","LicenseRestService","$translate"],i.$inject=["$scope","LicenseRestService","$licenseService","toastr","$rootScope","ModalService","$translate"],c.$inject=["$scope","LicenseRestService","$location","$uibModal","toastr","$window","$jwtAuth","$translate"],r.$inject=["$scope","$uibModalInstance","license"],o.$inject=["$scope"]}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[168],{250:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/operations-statuses-monitor.css?v=2.4.0-
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[168],{250:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/operations-statuses-monitor.css?v=2.4.0-RC2" rel="stylesheet"/>\n\n<div ng-if="activeOperations && activeOperations.operations && activeOperations.operations.length > 0" class="operations-statuses btn-group btn-group-lg">\n <button type="button" class="btn operations-statuses-dropdown-toggle dropdown-toggle" data-toggle="dropdown">\n <div class="operation-status-header" ng-repeat="operationGroup in operationsSummary" ng-if="operationsSummary && operationsSummary.length > 0 && operationGroup.runningOperations">\n <div ng-class="{\n \'icon-import\': OPERATION_GROUP_TYPE.IMPORT_OPERATION === operationGroup.type,\n \'icon-exchange\': OPERATION_GROUP_TYPE.QUERIES_OPERATION === operationGroup.type,\n \'fa fa-archive\': OPERATION_GROUP_TYPE.BACKUP_AND_RESTORE_OPERATION === operationGroup.type,\n \'fa fa-sitemap\': OPERATION_GROUP_TYPE.CLUSTER_OPERATION === operationGroup.type,\n \'text-danger\': OPERATION_STATUS.CRITICAL === activeOperations.status,\n \'text-info\': OPERATION_STATUS.INFORMATION === activeOperations.status,\n \'text-warning\': OPERATION_STATUS.WARNING === activeOperations.status}">\n </div>\n <span ng-if="OPERATION_GROUP_TYPE.CLUSTER_OPERATION !== operationGroup.type" class="running-operation-count">\n <sup class="tag-info">{{operationGroup.runningOperations}}</sup>\n </span>\n </div>\n <span class="caret"></span>\n </button>\n <ul role="menu" class="dropdown-menu dropdown-menu-center">\n <div class="operations-statuses-content">\n <li ng-repeat="operationStatus in activeOperations.operations">\n <a class="operation-status-content btn" target="_blank" ng-attr-href="{{operationStatus.monitoringViewUrl}}"\n ng-class="{ \'last-operation\': $last,\n \'first-operation\': $first}">\n <div ng-class="{\n \'icon-import\': OPERATION_TYPE.IMPORTS === operationStatus.type,\n \'icon-exchange\': OPERATION_TYPE.QUERIES === operationStatus.type || OPERATION_TYPE.UPDATES === operationStatus.type,\n \'fa fa-archive\': OPERATION_TYPE.BACKUP_RESTORE === operationStatus.type,\n \'fa fa-sitemap\': OPERATION_TYPE.CLUSTER_STATUS === operationStatus.type,\n \'text-danger\': OPERATION_STATUS.CRITICAL === operationStatus.status,\n \'text-info\': OPERATION_STATUS.INFORMATION === operationStatus.status,\n \'text-warning\': OPERATION_STATUS.WARNING === operationStatus.status}">\n </div>\n <div class="operation-status-label">\n <ng-pluralize count="operationStatus.runningOperationCount || 1"\n when="{\'one\': \'{{("global.operations_statuses." + operationStatus.titleLabelKey + ".title") | translate}}\',\n \'other\': \'{{("global.operations_statuses." + operationStatus.titleLabelKey + ".title.plural") | translate}}\'}">\n </ng-pluralize>\n </div>\n <div ng-if="OPERATION_TYPE.CLUSTER_STATUS !== operationStatus.type" class="operation-status-running-operation-count tag-info">\n {{operationStatus.runningOperationCount || 1}}\n </div>\n <div class="icon-external"></div>\n </a>\n </li>\n </div>\n </ul>\n</div>\n';return __p}}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[171],{253:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/rdf-resource-search.css?v=2.4.0-
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[171],{253:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/rdf-resource-search.css?v=2.4.0-RC2" rel="stylesheet"/>\n\n<div ng-if="getActiveRepository() && hasActiveLocation() && isNotLoading()" ng-cloak>\n <div id="search-box" class="card search-rdf-input" ng-keydown="onKeyDown($event)" ng-if="!isHomePage()">\n <div class="card-block">\n <search-resource-input namespacespromise="getNamespacesPromise"\n autocompletepromisestatus="getAutocompletePromise"\n empty="empty"\n open-in-new-tab="true"\n preserve-search="true"\n radio-buttons="true"\n clear-input-icon="true">\n </search-resource-input>\n <button class="btn btn-link close-rdf-search-btn"\n gdb-tooltip="{{\'search.resource.close.msg\' | translate}}" tooltip-placement="bottom"\n ng-click="hideInput()">\n <i class="icon-close icon-2x" aria-hidden="true"></i>\n </button>\n </div>\n </div>\n <button class="btn btn-link search-rdf-btn"\n gdb-tooltip="{{\'search.resources.msg\' | translate}}"\n tooltip-placement="bottom"\n ng-click="showInput()">\n <i class="icon-search icon-2x" aria-hidden="true"></i>\n </button>\n</div>\n';return __p}}}]);
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
(window.webpackJsonp=window.webpackJsonp||[]).push([[18,39,45,75,152],{145:function(e,t,n){"use strict";n.r(t);n(6),n(22),n(95),n(63),n(21),n(299);angular.module("graphdb.framework.impex.export",["ui.bootstrap","toastr","ngRoute","ngCookies","graphdb.framework.impex.export.controllers","graphdb.framework.core.directives.paginations","graphdb.framework.core.services.repositories","graphdb.framework.core.directives"]).config(["$uibTooltipProvider",function(e){e.setTriggers({showExportDDTooltip:"showExportDDTooltip"})}])},294:function(e,t){e.exports=function(){throw new Error("define cannot be used indirect")}},295:function(e,t){(function(t){e.exports=t}).call(this,{})},299:function(e,t,n){var o,r=r||function(e){"use strict";if("undefined"==typeof navigator||!/MSIE [1-9]\./.test(navigator.userAgent)){var t=e.document,n=function(){return e.URL||e.webkitURL||e},o=t.createElementNS("http://www.w3.org/1999/xhtml","a"),r=e.webkitRequestFileSystem,i=e.requestFileSystem||r||e.mozRequestFileSystem,a=function(t){(e.setImmediate||e.setTimeout)((function(){throw t}),0)},s=0,p=function(t){var o=function(){"string"==typeof t?n().revokeObjectURL(t):t.remove()};e.chrome?o():setTimeout(o,500)},l=function(e,t,n){for(var o=(t=[].concat(t)).length;o--;){var r=e["on"+t[o]];if("function"==typeof r)try{r.call(e,n||e)}catch(e){a(e)}}},c=function(e){return/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob(["\ufeff",e],{type:e.type}):e},u=function(t,a){t=c(t);var u,g,d,f=this,h=t.type,m=!1,x=function(){l(f,"writestart progress write writeend".split(" "))},y=function(){(!m&&u||(u=n().createObjectURL(t)),g)?g.location.href=u:null==e.open(u,"_blank")&&"undefined"!=typeof safari&&(e.location.href=u);f.readyState=f.DONE,x(),p(u)},w=function(e){return function(){if(f.readyState!==f.DONE)return e.apply(this,arguments)}},v={create:!0,exclusive:!1};if(f.readyState=f.INIT,a||(a="download"),o)return u=n().createObjectURL(t),o.href=u,o.download=a,void setTimeout((function(){var e,t;e=o,t=new MouseEvent("click"),e.dispatchEvent(t),x(),p(u),f.readyState=f.DONE}));e.chrome&&h&&"application/octet-stream"!==h&&(d=t.slice||t.webkitSlice,t=d.call(t,0,t.size,"application/octet-stream"),m=!0),r&&"download"!==a&&(a+=".download"),("application/octet-stream"===h||r)&&(g=e),i?(s+=t.size,i(e.TEMPORARY,s,w((function(e){e.root.getDirectory("saved",v,w((function(e){var n=function(){e.getFile(a,v,w((function(e){e.createWriter(w((function(n){n.onwriteend=function(t){g.location.href=e.toURL(),f.readyState=f.DONE,l(f,"writeend",t),p(e)},n.onerror=function(){var e=n.error;e.code!==e.ABORT_ERR&&y()},"writestart progress write abort".split(" ").forEach((function(e){n["on"+e]=f["on"+e]})),n.write(t),f.abort=function(){n.abort(),f.readyState=f.DONE},f.readyState=f.WRITING})),y)})),y)};e.getFile(a,{create:!1},w((function(e){e.remove(),n()})),w((function(e){e.code===e.NOT_FOUND_ERR?n():y()})))})),y)})),y)):y()},g=u.prototype;return"undefined"!=typeof navigator&&navigator.msSaveOrOpenBlob?function(e,t){return navigator.msSaveOrOpenBlob(c(e),t)}:(g.abort=function(){this.readyState=this.DONE,l(this,"abort")},g.readyState=g.INIT=0,g.WRITING=1,g.DONE=2,g.error=g.onwritestart=g.onprogress=g.onwrite=g.onabort=g.onerror=g.onwriteend=null,function(e,t){return new u(e,t)})}}("undefined"!=typeof self&&self||"undefined"!=typeof window&&window||this.content);
|
|
2
|
-
/*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */e.exports?e.exports.saveAs=r:null!==n(294)&&null!=n(295)&&(void 0===(o=function(){return r}.apply(t,[]))||(e.exports=o))},63:function(e,t){angular.module("graphdb.framework.core.directives.paginations",[]).directive("paginations",(function(){return{template:'<uib-pagination class="nav navbar-right" total-items="matchedElements.length" items-per-page="pageSize" ng-model="page" ng-change="changePagination()" direction-links="false" boundary-links="true" max-size="5" rotate="true"></uib-pagination>'}}))},78:function(e,t){angular.module("graphdb.workbench.utils.filetypes",[]).value("FileTypes",[{name:"JSON",type:"application/rdf+json",extension:".json"},{name:"JSON-LD",type:"application/ld+json",extension:".jsonld"},{name:"RDF-XML",type:"application/rdf+xml",extension:".rdf"},{name:"N3",type:"text/rdf+n3",extension:".n3"},{name:"N-Triples",type:"text/plain",extension:".nt"},{name:"N-Quads",type:"text/x-nquads",extension:".nq"},{name:"Turtle",type:"text/turtle",extension:".ttl"},{name:"Turtle*",type:"application/x-turtlestar",extension:".ttls"},{name:"TriX",type:"application/trix",extension:".trix"},{name:"TriG",type:"application/x-trig",extension:".trig"},{name:"TriG*",type:"application/x-trigstar",extension:".trigs"},{name:"Binary RDF",type:"application/x-binary-rdf",extension:".brf"}])},95:function(e,t,n){"use strict";n.r(t);n(6),n(21),n(23),n(78);var o=n(0),r=n(
|
|
2
|
+
/*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */e.exports?e.exports.saveAs=r:null!==n(294)&&null!=n(295)&&(void 0===(o=function(){return r}.apply(t,[]))||(e.exports=o))},63:function(e,t){angular.module("graphdb.framework.core.directives.paginations",[]).directive("paginations",(function(){return{template:'<uib-pagination class="nav navbar-right" total-items="matchedElements.length" items-per-page="pageSize" ng-model="page" ng-change="changePagination()" direction-links="false" boundary-links="true" max-size="5" rotate="true"></uib-pagination>'}}))},78:function(e,t){angular.module("graphdb.workbench.utils.filetypes",[]).value("FileTypes",[{name:"JSON",type:"application/rdf+json",extension:".json"},{name:"JSON-LD",type:"application/ld+json",extension:".jsonld"},{name:"RDF-XML",type:"application/rdf+xml",extension:".rdf"},{name:"N3",type:"text/rdf+n3",extension:".n3"},{name:"N-Triples",type:"text/plain",extension:".nt"},{name:"N-Quads",type:"text/x-nquads",extension:".nq"},{name:"Turtle",type:"text/turtle",extension:".ttl"},{name:"Turtle*",type:"application/x-turtlestar",extension:".ttls"},{name:"TriX",type:"application/trix",extension:".trix"},{name:"TriG",type:"application/x-trig",extension:".trig"},{name:"TriG*",type:"application/x-trigstar",extension:".trigs"},{name:"Binary RDF",type:"application/x-binary-rdf",extension:".brf"}])},95:function(e,t,n){"use strict";n.r(t);n(6),n(21),n(23),n(78);var o=n(0),r=n(82);angular.module("graphdb.framework.impex.export.controllers",["ngCookies","ui.bootstrap","toastr","graphdb.framework.core.services.repositories","graphdb.framework.core.services.jwtauth","graphdb.workbench.utils.filetypes"]).controller("ExportCtrl",["$scope","$http","$location","$timeout","ModalService","filterFilter","$repositories","toastr","RDF4JRepositoriesRestService","FileTypes","$translate","AuthTokenService",function(e,t,n,i,a,s,p,l,c,u,g,d){e.getActiveRepository=function(){return p.getActiveRepository()},e.exportFormats=u,e.deleting={},e.showExportDDTooltip=!0,e.page=1,e.pageSize=10,e.pageSizeOptions=[10,20,50,100],e.displayGraphs=[],e.exportFilter="",e.export=!0,e.exportMultipleGraphs=!1,e.repoExportFormat={name:"TriG",type:"application/x-trig",extension:".trig"},e.selectedGraphs={exportGraphs:{}},e.$watch((function(){return p.getActiveRepository()}),(function(){e.exportFilter="",e.getGraphs(),e.selectedAll=!1,i((function(){e.changePageSize(10)}),100)})),e.isShacl=function(e){return"http%3A%2F%2Frdf4j.org%2Fschema%2Frdf4j%23SHACLShapeGraph"===e},e.getGraphs=function(){e.getActiveRepository()?(e.loader=!0,c.getGraphs(e.getActiveRepository()).success((function(t){t.results.bindings.unshift({contextID:{type:"default",value:"import.default.graph"}}),e.graphsByValue={},Object.keys(t.results.bindings).forEach((function(n){const o=t.results.bindings[n];"bnode"===o.contextID.type?o.contextID.value="_:"+o.contextID.value:"default"===o.contextID.type?(o.contextID.uri=encodeURIComponent("http://www.openrdf.org/schema/sesame#nil"),o.contextID.clearUri="DEFAULT",o.contextID.exportUri="null",o.contextID.longName="default graph"):(o.contextID.uri=encodeURIComponent(o.contextID.value),o.contextID.clearUri="GRAPH <"+o.contextID.value+">",o.contextID.exportUri=encodeURIComponent("<"+o.contextID.value+">"),o.contextID.longName="named graph "+o.contextID.value),e.graphsByValue[o.contextID.value]=o.contextID})),e.graphs=t.results.bindings,e.filteredGraphs=Object(r.cloneDeep)(e.graphs),e.displayGraphs=e.filteredGraphs.slice(e.pageSize*(e.page-1),e.pageSize*e.page),e.loader=!1,e.selectedGraphs.exportGraphs={},e.matchedElements=e.graphs})).error((function(t,n){const o=getError(t,n);"There is no active location!"===o&&(p.setRepository(""),l.error(o,g.instant("common.error"))),e.loader=!1}))):e.loader=!1},e.onGraphSearch=function(){e.matchedElements=[],e.deselectAll(),e.filterResults()},e.filterResults=function(){angular.forEach(e.graphs,(function(t){-1!==t.contextID.value.indexOf(e.exportFilter)&&e.matchedElements.push(t)}))},e.downloadExport=function(e,t){let n=e+"&Accept="+encodeURIComponent(t.type);const o=d.getAuthToken();o&&(n=n+"&authToken="+encodeURIComponent(o));let r=window.open(n);i((function(){"about:blank"!==r.document.location.href&&(r.close(),l.error("Could not export graph. Check GraphDB logs for detailed reason."))}),100)},e.openExportDDTooltip=function(){e.showExportDDTooltip&&(i((function(){$("#tooltipTarget").trigger("showExportDDTooltip")}),0),i((function(){$("#tooltipTarget").trigger("showExportDDTooltip")}),3e3),e.showExportDDTooltip=!1)},e.exportRepo=function(t,n){"application/rdf+xml"===t.type||"text/plain"===t.type||"text/turtle"===t.type||"application/x-turtlestar"===t.type||"text/rdf+n3"===t.type?a.openSimpleModal({title:g.instant("common.warning"),message:Object(o.decodeHTML)(g.instant("export.format.warning.msg")),warning:!0}).result.then((function(){e.startDownload(t,n)})):e.startDownload(t,n)},e.startDownload=function(t,n){let o;const r=p.getActiveRepositoryObject();o=n?`repositories/${r.id}/statements?infer=false&context=${e.graphsByValue[n.value].exportUri}&location=${encodeURIComponent(r.location)}`:`repositories/${r.id}/statements?infer=false&location=${encodeURIComponent(r.location)}`,e.downloadExport(o,t)},e.hasMultipleSelected=function(){if(_.isEmpty(e.selectedGraphs.exportGraphs))return!_.isEmpty(e.selectedGraphs.exportGraphs);for(const t in e.selectedGraphs.exportGraphs)if(!0===e.selectedGraphs.exportGraphs[t])return!0;return!1},e.exportSelectedGraphs=function(t){let n="";for(const t in e.selectedGraphs.exportGraphs)e.selectedGraphs.exportGraphs[t]&&(n+="context="+e.graphsByValue[t].exportUri+"&");if(n){const r=function(){n=n.substring(0,n.length-1);const o="repositories/"+e.getActiveRepository()+"/statements?infer=false&"+n;e.downloadExport(o,t)};"application/rdf+xml"===t.type||"text/plain"===t.type||"text/turtle"===t.type||"application/x-turtlestar"===t.type||"text/rdf+n3"===t.type?a.openSimpleModal({title:g.instant("common.warning"),message:Object(o.decodeHTML)(g.instant("export.format.warning.msg")),warning:!0}).result.then((function(){r()})):r()}else a.openSimpleModal({title:g.instant("export.multiple.graph"),message:g.instant("export.check.graphs.msg"),warning:!0})},e.$watch("exportFilter",(function(){if(e.filteredGraphs=s(e.graphs,e.exportFilter),e.getActiveRepository()&&angular.element(document).find(".btn.btn-secondary.btn-sm.dropdown-toggle span").length){const t=angular.element(document).find(".btn.btn-secondary.btn-sm.dropdown-toggle span")[0].innerHTML.trim();let n;"All"===t&&(n=e.filteredGraphs.length),e.filteredGraphs&&e.filteredGraphs.length>e.pageSize&&"All"!==t&&(n=e.pageSize),e.changePageSize(n),e.changePagination()}})),e.changePagination=function(){e.selectedAll=!1,angular.isDefined(e.filteredGraphs)&&(e.displayGraphs=e.filteredGraphs.slice(e.pageSize*(e.page-1),e.pageSize*e.page))},e.changePageSize=function(t){$(".ot-graph-page-size").removeClass("active"),e.page=1,t&&(e.pageSize=t,e.changePagination()),e.filteredGraphs&&""!==e.exportFilter&&(e.displayGraphs=e.filteredGraphs)},e.checkAll=function(){e.selectedAll=e.selectedAll||!1,angular.forEach(e.displayGraphs,(function(t){t.contextID.uri&&(e.selectedGraphs.exportGraphs[t.contextID.value]=e.selectedAll)}))},e.deselectAll=function(){e.selectedAll=!1,angular.forEach(e.displayGraphs,(function(t){t.contextID.uri&&(e.selectedGraphs.exportGraphs[t.contextID.value]=!1)}))},e.dropRepository=function(){e.canWriteActiveRepo()&&(e.deleting["*"]=!0,a.openSimpleModal({title:g.instant("export.confirm.clear.msg"),message:g.instant("export.warning.clear.repo.msg",{repo:p.getActiveRepository()}),warning:!0}).result.then((function(){i((function(){c.addStatements(p.getActiveRepository(),"update=CLEAR ALL").then((function(){e.deleting["*"]=!1,l.success(g.instant("export.cleared.repo",{repo:p.getActiveRepository()})),e.getGraphs()}),(function(t){e.deleting["*"]=!1;const n=t.data;"string"==typeof n&&n.indexOf("Clearing all statements in the repository is incompatible with collecting history")>-1?l.error(g.instant("export.clearing.statements.warning")):l.error(g.instant("export.cleared.repo.failed.msg",{repo:p.getActiveRepository()}),t)}))}),100)})))},e.dropContext=function(t){e.canWriteActiveRepo()&&(angular.isDefined(t)?function(t){const n=t.contextID.longName;e.deleting[t]=!0,a.openSimpleModal({title:g.instant("export.confirm.clear.graph"),message:g.instant("export.clear.graph.warning",{longName:n}),warning:!0}).result.then((function(){i((function(){const o="update=CLEAR "+t.contextID.clearUri;c.addStatements(p.getActiveRepository(),o).then((function(){e.deleting[t]=!1,l.success(g.instant("export.cleared.graph",{longName:n})),e.getGraphs(),e.exportFilter="",e.filteredGraphs.length=0,e.updateResults(),e.changePageSize(e.pageSize)}),(function(o){e.deleting[t]=!1,l.error(g.instant("export.clear.graph.msg",{longName:n}),getError(o,o.status))}))}),100)}),(function(){e.deleting[t]=!1}))}(t):function(t){const n=[];angular.forEach(e.selectedGraphs.exportGraphs,(function(e,t){e&&n.push(t)})),n.length>0&&(e.deleting[t]=!0,a.openSimpleModal({title:g.instant("export.confirm.clear.graph"),message:g.instant("export.warning.clear.graph.msg"),warning:!0}).result.then((function(){i((function(){let t=0;angular.forEach(n,(function(o){const r="update=CLEAR "+e.graphsByValue[o].clearUri;c.addStatements(p.getActiveRepository(),r).then((function(){e.loader=!0,e.selectedGraphs.exportGraphs[o]=!1,delete e.selectedGraphs.exportGraphs[o],t++,n.length===t&&(e.selectedAll=!1,e.exportFilter="",e.filteredGraphs.length=0,e.getGraphs(),e.updateResults(),e.changePageSize(e.pageSize),l.success(g.instant("export.cleared.graph.msg")),e.loader=!1)}),(function(t){const n=e.graphsByValue[o].longName;l.error(g.instant("export.clear.graph.msg",{longName:n}),getError(t,t.status)),e.selectedAll=!1}))}))}),100)}),(function(){e.deleting[t]=!1})))}(t))}}])}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[198],{280:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<script type="text/ng-template" id="popover-content-user.html">\n\t<h5>{{\'security.user.may\' | translate}}</h5>\n\t<ul>\n <li>{{\'security.use.gdb\' | translate}}</li>\n\t <li>{{\'security.grant.read.access\' | translate}}</li>\n\t\t<li>{{\'security.grant.read.write.access\' | translate}}</li>\n </ul>\n<\/script>\n\n<script type="text/ng-template" id="popover-content-repo-manager.html">\n\t<h5>{{\'security.repo.manager.may\' | translate}}</h5>\n\t<ul>\n\t\t<li>{{\'security.use.gdb\' | translate}}</li>\n\t\t<li>{{\'security.read.write.all.repos\' | translate}}</li>\n\t\t<li>{{\'security.create.edit.delete.repos\' | translate}}</li>\n\t\t<li>{{\'security.access.monitoring\' | translate}}</li>\n\t</ul>\n<\/script>\n\n<script type="text/ng-template" id="popover-content-admin.html">\n\t<h5>{{\'security.admin.may\' | translate}}</h5>\n\t<ul>\n\t\t<li>{{\'security.use.gdb\' | translate}}</li>\n\t\t<li>{{\'security.read.write.all.repos\' | translate}}</li>\n\t\t<li>{{\'security.create.edit.delete.repos\' | translate}}</li>\n\t\t<li>{{\'security.access.monitoring\' | translate}}</li>\n\t\t<li>{{\'security.attach.remote.locations\' | translate}}</li>\n\t\t<li>{{\'security.manage.users.access\' | translate}}</li>\n\t\t<li>{{\'security.manage.cluster\' | translate}}</li>\n\t\t<li>{{\'security.view.sys.info\' | translate}}</li>\n\t</ul>\n<\/script>\n\n<link href="css/lib/ng-tags-input/ng-tags-input.min.css?v=2.4.0-RC1" rel="stylesheet"/>\n\n<h1>{{pageTitle}}</h1>\n\n<div id="wb-user" ng-hide="loader">\n\t<form name="form" class="form newUserForm userForm editUserContainer" ng-submit="submit()" novalidate>\n\t\t<div class="row">\n\t\t\t<div class="col-md-6 us-left-col">\n\t\t\t\t<div class="card login-credentials" ng-hide="isOverrideAuth() || !isLocalAuthentication()">\n\t\t\t\t\t<div class="card-block">\n\t\t\t\t\t\t<h3>{{\'view.login.title\' | translate}}</h3>\n\t\t\t\t\t\t<div class="form-group" ng-class="{\'has-danger\': usernameError}">\n\t\t\t\t\t\t\t<div class="input-group">\n\t\t\t\t\t\t\t\t<span class="input-group-addon" gdb-tooltip="{{\'security.table.username\' | translate}}"><em class="icon-user icon-2x text-muted"></em></span>\n\t\t\t\t\t\t\t\t<input id="wb-user-username" placeholder="{{\'security.table.username\' | translate}}" name="username" class="form-control form-control-lg" type="text" ng-model="user.username" ng-readonly="mode !== \'add\'">\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div ng-show="usernameError" class="form-control-feedback">{{usernameError}}</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class="form-group" ng-class="{\'has-danger\': passwordError}">\n\t\t\t\t\t\t\t<div class="input-group">\n\t\t\t\t\t\t\t\t<span class="input-group-addon" gdb-tooltip="{{\'security.password.placeholder\' | translate}}"><em class="icon-lock icon-2x text-muted"></em></span>\n\t\t\t\t\t\t\t\t<input id="wb-user-password" placeholder="{{passwordPlaceholder | translate}}" name="password" class="form-control form-control-lg" type="password"\tng-model="user.password" ng-hide="user.external || hasExternalAuthUser()" ng-readonly="noPassword">\n\t\t\t\t\t\t\t\t<span ng-show="user.external || hasExternalAuthUser()">{{\'security.auth.from.external.module\' | translate}}</span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div ng-show="passwordError" class="form-control-feedback">{{passwordError}}</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class="form-group" ng-class="{\'has-danger\': confirmPasswordError}" ng-hide="user.external || hasExternalAuthUser()">\n\t\t\t\t\t\t\t<div class="input-group">\n\t\t\t\t\t\t\t\t<span class="input-group-addon" gdb-tooltip="{{\'security.password.confirm\' | translate}}"><em class="icon-lock icon-2x text-muted"></em></span>\n\t\t\t\t\t\t\t\t<input id="wb-user-confirmpassword" placeholder="{{\'security.password.confirm\' | translate}}" name="password_confirm" class="form-control form-control-lg" type="password" ng-model="user.confirmpassword" ng-readonly="noPassword">\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div ng-show="confirmPasswordError" class="form-control-feedback">{{confirmPasswordError}}</div>\n\t\t\t\t\t\t</div>\n <div>\n <label class="d-block">\n <input type="checkbox" id="noPassword" ng-model="noPassword" ng-change="setNoPassword()">\n <span ng-show="mode === \'add\'">{{\'security.dont.set.password\' | translate}} </span>\n <span ng-show="mode !== \'add\'">{{\'security.unset.password\' | translate}} </span>\n </label>\n </div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t<div class="card sparql-editor-settings" id="user-settings">\n\t\t\t\t\t<div class="card-block">\n\t\t\t\t\t\t<h3>{{\'security.user.settings\' | translate}}</h3>\n\n\t\t\t\t\t\t<div id="sameas-on" class="mb-1">\n\t\t\t\t\t\t\t<span class="sameas-label">\n\t\t\t\t\t\t\t\t{{\'security.expand.sameAs.is\' | translate}}\n\t\t\t\t\t\t\t\t<span class="tag {{user.appSettings.DEFAULT_SAMEAS ? \'tag-primary\' : \'tag-default\'}}">\n\t\t\t\t\t\t\t\t\t{{user.appSettings.DEFAULT_SAMEAS ? \'common.on.btn\' : \'common.off.btn\' | translate}}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span gdb-tooltip="{{shouldDisableSameAs() ? \'core.require.inferred\' : \'security.tooltip.click.me\' | translate}}" tooltip-placement="top"\n\t\t\t\t\t\t\t\t ng-click="user.appSettings.DEFAULT_SAMEAS = !user.appSettings.DEFAULT_SAMEAS"\n\t\t\t\t\t\t\t\t class="switch mr-0">\n\t\t\t\t\t\t\t\t<input id="sameAsCheck" type="checkbox" class="switch"\n ng-checked="user.appSettings.DEFAULT_SAMEAS"\n ng-disabled="shouldDisableSameAs()"/>\n\t\t\t\t\t\t\t\t<label for="sameas-on"></label>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t{{\'security.default.editor.graph\' | translate}}\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div id="inference-on" class="mb-1">\n\t\t\t\t\t\t\t<span class="inference-label">\n\t\t\t\t\t\t\t\t{{\'security.inference.is\' | translate}}\n\t\t\t\t\t\t\t\t<span class="tag {{user.appSettings.DEFAULT_INFERENCE ? \'tag-primary\' : \'tag-default\'}}">\n\t\t\t\t\t\t\t\t\t{{user.appSettings.DEFAULT_INFERENCE ? \'common.on.btn\' : \'common.off.btn\' | translate}}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span gdb-tooltip="{{\'security.tooltip.click.me\' | translate}}" tooltip-placement="top"\n\t\t\t\t\t\t\t\t ng-click="user.appSettings.DEFAULT_INFERENCE = !user.appSettings.DEFAULT_INFERENCE"\n\t\t\t\t\t\t\t\t class="switch mr-0">\n\t\t\t\t\t\t\t\t<input type="checkbox" class="switch" ng-checked="user.appSettings.DEFAULT_INFERENCE"/>\n\t\t\t\t\t\t\t\t<label for="inference-on"></label>\n\t\t\t\t\t\t\t</span>\n {{\'security.default.editor.graph\' | translate}}\n\t\t\t\t\t\t</div>\n\n <div id="schema-on" class="mb-1">\n\t\t\t\t\t\t\t<span class="schema-label">\n\t\t\t\t\t\t\t\t{{\'security.show.schema\' | translate}}\n\t\t\t\t\t\t\t\t<span class="tag {{user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA ? \'tag-primary\' : \'tag-default\'}}">\n\t\t\t\t\t\t\t\t\t{{user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA ? \'common.on.btn\' : \'common.off.btn\' | translate}}\n\t\t\t\t\t\t\t\t</span>\n <span gdb-tooltip="{{\'security.tooltip.click.me\' | translate}}" tooltip-placement="top"\n ng-click="user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA = !user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA"\n class="switch mr-0">\n\t\t\t\t\t\t\t\t<input type="checkbox" class="switch" ng-checked="user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA"/>\n\t\t\t\t\t\t\t\t<label for="schema-on"></label>\n\t\t\t\t\t\t\t</span>\n {{\'security.default.visual.graph\' | translate}}\n\t\t\t\t\t\t\t</span>\n </div>\n\n\t\t\t\t\t\t<label class="d-block">\n\t\t\t\t\t\t\t<input type="checkbox" ng-model="user.appSettings.EXECUTE_COUNT" id="defaultCount" checked="appSettings.EXECUTE_COUNT">\n\t\t\t\t\t\t\t{{\'security.count.total.results\' | translate}}\n\t\t\t\t\t\t</label>\n\n\t\t\t\t\t\t<label class="d-block">\n\t\t\t\t\t\t\t<input type="checkbox" ng-model="user.appSettings.IGNORE_SHARED_QUERIES" id="ignore-shared" checked="appSettings.IGNORE_SHARED_QUERIES">\n\t\t\t\t\t\t\t{{\'security.ignore.shared.queries\' | translate}}\n\t\t\t\t\t\t</label>\n\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t<div class="card" id="workbench-settings" ng-if="showWorkbenchSettings">\n\t\t\t\t\t<div class="card-block">\n\t\t\t\t\t\t<h3>{{\'security.workbench.settings.title\' | translate}}\n\t\t\t\t\t\t\t<em class="icon-info text-tertiary small" gdb-tooltip="{{\'security.workbench.settings.theme.tooltip\' | translate}}"></em></h3>\n\t\t\t\t\t\t<div>\n <div class="form-group">\n <label class="col-lg-2">{{\'security.workbench.settings.theme.label\' | translate}}</label>\n <div class="btn-group theme-selector-dropdown" uib-dropdown>\n <button type="button" class="btn btn-sm btn-secondary dropdown-toggle theme-selector-dropdown-btn" uib-dropdown-toggle>\n {{selectedTheme.label}}\n </button>\n <ul class="dropdown-menu" role="menu">\n <li ng-repeat="theme in themes">\n <a ng-click="setTheme(theme)" class="dropdown-item">{{theme.label}}</a>\n </li>\n </ul>\n </div>\n </div>\n\n <div class="form-group">\n <label class="col-lg-2">{{\'security.workbench.settings.theme.mode.label\' | translate}}</label>\n <div class="radio">\n <label class="px-1">\n <input type="radio" value="light" ng-model="workbenchSettings.mode" ng-change="setThemeMode()"/>\n {{\'security.workbench.settings.theme.mode.light\' | translate}}\n </label>\n <label class="px-1">\n <input type="radio" value="dark" ng-model="workbenchSettings.mode" ng-change="setThemeMode()"/>\n {{\'security.workbench.settings.theme.mode.dark\' | translate}}\n </label>\n </div>\n </div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div class="col-md-6 us-right-col" ng-hide="!isLocalAuthentication()">\n\t\t\t\t<div class="card user-role" id="user-roles">\n\t\t\t\t\t<div class="card-block">\n\t\t\t\t\t\t<h3>{{\'security.user.role\' | translate}}</h3>\n\t\t\t\t\t\t<label class="mr-1"\n\t\t\t\t\t\t\t uib-popover-template="\'popover-content-user.html\'"\n\t\t\t\t\t\t\t popover-trigger="mouseenter"\n\t\t\t\t\t\t\t popover-placement="bottom">\n\t\t\t\t\t\t\t<input type="radio" ng-model="userType" id="roleUser" value="user" ng-disabled="hasEditRestrictions()" >\n\t\t\t\t\t\t\t{{\'security.user.label\' | translate}}\n\t\t\t\t\t\t</label>\n\t\t\t\t\t\t<label class="mr-1"\n\t\t\t\t\t\t\t uib-popover-template="\'popover-content-repo-manager.html\'"\n\t\t\t\t\t\t\t popover-trigger="mouseenter"\n\t\t\t\t\t\t\t popover-placement="bottom">\n\t\t\t\t\t\t\t<input type="radio" ng-model="userType" id="roleRepoAdmin" value="repoManager" ng-disabled="hasEditRestrictions()">\n\t\t\t\t\t\t\t{{\'security.repo.manager.label\' | translate}}\n\t\t\t\t\t\t</label>\n\t\t\t\t\t\t<label uib-popover-template="\'popover-content-admin.html\'"\n\t\t\t\t\t\t\t popover-trigger="mouseenter"\n\t\t\t\t\t\t\t popover-placement="bottom">\n\t\t\t\t\t\t\t<input type="radio" ng-model="userType" id="roleAdmin" value="admin" ng-disabled="hasEditRestrictions()">\n\t\t\t\t\t\t\t{{\'security.admin.label\' | translate}}\n\t\t\t\t\t\t</label>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n <div class="card user-custom-roles" id="user-custom-roles">\n <div class="card-block">\n <h3>{{\'security.user.custom_role\' | translate}}</h3>\n <div class="input-group">\n <tags-input class="wb-tags-input" ng-model="customRoles" min-length="2"\n ng-disabled="!isUser()"\n use-strings="true"\n add-on-space="true"\n add-on-comma="true"\n on-tag-added="addCustomRole($tag)"\n placeholder="{{\'security.user.add.custom_role.msg\' | translate}}"></tags-input>\n </div>\n </div>\n </div>\n\n\t\t\t\t<div id="user-repos" class="card user-repositories">\n\t\t\t\t\t<div class="card-block">\n\t\t\t\t\t\t<h3>{{\'security.repo.rights\' | translate}}</h3>\n\t\t\t\t\t\t<div class="has-danger">\n\t\t\t\t\t\t\t<p ng-show="repositoryCheckError" class="form-control-feedback">\n\t\t\t\t\t\t\t\t{{\'security.user.rights\' | translate}}\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t</div>\n <div class="scrollable-table">\n <table class="table table-hover table-sm" aria-describedby="User rights table">\n <thead>\n <tr>\n <th id="repositoryIdColumn">{{\'security.repository.title\' | translate}}</th>\n <th id="readRightsColumn" class="text-xs-center"><em class="icon-eye icon-lg" gdb-tooltip="{{\'security.tooltip.read\' | translate}}"></em></th>\n <th id="writeRightColumn" class="text-xs-center"><em class="icon-edit icon-lg" gdb-tooltip="{{\'security.tooltip.write\' | translate}}"></em></th>\n </tr>\n <tr>\n <th>{{\'security.any.data.repo\' | translate}}\n <em class="icon-info text-tertiary" gdb-tooltip="{{\'security.data.repos\' | translate}}"></em>\n </th>\n <th class="text-xs-center">\n <input class="read" type="checkbox" ng-model="grantedAuthorities.READ_REPO[\'*\']" ng-checked="hasReadPermission(\'*\')" ng-disabled="readCheckDisabled(\'*\')" ng-click="setGrantedAuthorities()">\n </th>\n <th class="text-xs-center">\n <input class="write" type="checkbox" ng-model="grantedAuthorities.WRITE_REPO[\'*\']" ng-checked="hasWritePermission(\'*\')" ng-disabled="writeCheckDisabled(\'*\')" ng-click="setGrantedAuthorities()">\n </th>\n </tr>\n </thead>\n <tbody>\n <div>\n <tr ng-repeat="repository in getReadableRepositories() | orderBy: [\'location\', \'id\']">\n <td class="repository-name">{{repository.id}}<small> · {{repository.location ? repository.location : \'Local\'}}</small></td>\n <td class="text-xs-center read-rights"><input class="read" type="checkbox" ng-model="grantedAuthorities.READ_REPO[createUniqueKey(repository)]" ng-checked="hasReadPermission(repository)" ng-disabled="readCheckDisabled(repository)" ng-click="setGrantedAuthorities()"></td>\n <td class="text-xs-center write-rights"><input class="write" type="checkbox" ng-model="grantedAuthorities.WRITE_REPO[createUniqueKey(repository)]" ng-checked="hasWritePermission(repository)" ng-disabled="writeCheckDisabled(repository)" ng-click="setGrantedAuthorities()"></td>\n </tr>\n </div>\n </tbody>\n </table>\n </div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n </div>\n\t\t</div>\n\n\t\t<div class="text-right">\n <button id="wb-user-goBack" class="btn btn-secondary" type="button" ng-click="goBack()">{{\'common.cancel.btn\' | translate}}</button>\n <button id="wb-user-submit" class="btn btn-primary" type="submit">{{saveButtonText}}</button>\n\t\t</div>\n\t</form>\n</div>\n<div class="ot-loader ot-main-loader" onto-loader size="50" ng-show="loader"></div>\n\n\n\n';return __p}}}]);
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[198],{280:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<script type="text/ng-template" id="popover-content-user.html">\n\t<h5>{{\'security.user.may\' | translate}}</h5>\n\t<ul>\n <li>{{\'security.use.gdb\' | translate}}</li>\n\t <li>{{\'security.grant.read.access\' | translate}}</li>\n\t\t<li>{{\'security.grant.read.write.access\' | translate}}</li>\n </ul>\n<\/script>\n\n<script type="text/ng-template" id="popover-content-repo-manager.html">\n\t<h5>{{\'security.repo.manager.may\' | translate}}</h5>\n\t<ul>\n\t\t<li>{{\'security.use.gdb\' | translate}}</li>\n\t\t<li>{{\'security.read.write.all.repos\' | translate}}</li>\n\t\t<li>{{\'security.create.edit.delete.repos\' | translate}}</li>\n\t\t<li>{{\'security.access.monitoring\' | translate}}</li>\n\t</ul>\n<\/script>\n\n<script type="text/ng-template" id="popover-content-admin.html">\n\t<h5>{{\'security.admin.may\' | translate}}</h5>\n\t<ul>\n\t\t<li>{{\'security.use.gdb\' | translate}}</li>\n\t\t<li>{{\'security.read.write.all.repos\' | translate}}</li>\n\t\t<li>{{\'security.create.edit.delete.repos\' | translate}}</li>\n\t\t<li>{{\'security.access.monitoring\' | translate}}</li>\n\t\t<li>{{\'security.attach.remote.locations\' | translate}}</li>\n\t\t<li>{{\'security.manage.users.access\' | translate}}</li>\n\t\t<li>{{\'security.manage.cluster\' | translate}}</li>\n\t\t<li>{{\'security.view.sys.info\' | translate}}</li>\n\t</ul>\n<\/script>\n\n<link href="css/lib/ng-tags-input/ng-tags-input.min.css?v=2.4.0-RC2" rel="stylesheet"/>\n\n<h1>{{pageTitle}}</h1>\n\n<div id="wb-user" ng-hide="loader">\n\t<form name="form" class="form newUserForm userForm editUserContainer" ng-submit="submit()" novalidate>\n\t\t<div class="row">\n\t\t\t<div class="col-md-6 us-left-col">\n\t\t\t\t<div class="card login-credentials" ng-hide="isOverrideAuth() || !isLocalAuthentication()">\n\t\t\t\t\t<div class="card-block">\n\t\t\t\t\t\t<h3>{{\'view.login.title\' | translate}}</h3>\n\t\t\t\t\t\t<div class="form-group" ng-class="{\'has-danger\': usernameError}">\n\t\t\t\t\t\t\t<div class="input-group">\n\t\t\t\t\t\t\t\t<span class="input-group-addon" gdb-tooltip="{{\'security.table.username\' | translate}}"><em class="icon-user icon-2x text-muted"></em></span>\n\t\t\t\t\t\t\t\t<input id="wb-user-username" placeholder="{{\'security.table.username\' | translate}}" name="username" class="form-control form-control-lg" type="text" ng-model="user.username" ng-readonly="mode !== \'add\'">\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div ng-show="usernameError" class="form-control-feedback">{{usernameError}}</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class="form-group" ng-class="{\'has-danger\': passwordError}">\n\t\t\t\t\t\t\t<div class="input-group">\n\t\t\t\t\t\t\t\t<span class="input-group-addon" gdb-tooltip="{{\'security.password.placeholder\' | translate}}"><em class="icon-lock icon-2x text-muted"></em></span>\n\t\t\t\t\t\t\t\t<input id="wb-user-password" placeholder="{{passwordPlaceholder | translate}}" name="password" class="form-control form-control-lg" type="password"\tng-model="user.password" ng-hide="user.external || hasExternalAuthUser()" ng-readonly="noPassword">\n\t\t\t\t\t\t\t\t<span ng-show="user.external || hasExternalAuthUser()">{{\'security.auth.from.external.module\' | translate}}</span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div ng-show="passwordError" class="form-control-feedback">{{passwordError}}</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class="form-group" ng-class="{\'has-danger\': confirmPasswordError}" ng-hide="user.external || hasExternalAuthUser()">\n\t\t\t\t\t\t\t<div class="input-group">\n\t\t\t\t\t\t\t\t<span class="input-group-addon" gdb-tooltip="{{\'security.password.confirm\' | translate}}"><em class="icon-lock icon-2x text-muted"></em></span>\n\t\t\t\t\t\t\t\t<input id="wb-user-confirmpassword" placeholder="{{\'security.password.confirm\' | translate}}" name="password_confirm" class="form-control form-control-lg" type="password" ng-model="user.confirmpassword" ng-readonly="noPassword">\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div ng-show="confirmPasswordError" class="form-control-feedback">{{confirmPasswordError}}</div>\n\t\t\t\t\t\t</div>\n <div>\n <label class="d-block">\n <input type="checkbox" id="noPassword" ng-model="noPassword" ng-change="setNoPassword()">\n <span ng-show="mode === \'add\'">{{\'security.dont.set.password\' | translate}} </span>\n <span ng-show="mode !== \'add\'">{{\'security.unset.password\' | translate}} </span>\n </label>\n </div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t<div class="card sparql-editor-settings" id="user-settings">\n\t\t\t\t\t<div class="card-block">\n\t\t\t\t\t\t<h3>{{\'security.user.settings\' | translate}}</h3>\n\n\t\t\t\t\t\t<div id="sameas-on" class="mb-1">\n\t\t\t\t\t\t\t<span class="sameas-label">\n\t\t\t\t\t\t\t\t{{\'security.expand.sameAs.is\' | translate}}\n\t\t\t\t\t\t\t\t<span class="tag {{user.appSettings.DEFAULT_SAMEAS ? \'tag-primary\' : \'tag-default\'}}">\n\t\t\t\t\t\t\t\t\t{{user.appSettings.DEFAULT_SAMEAS ? \'common.on.btn\' : \'common.off.btn\' | translate}}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span gdb-tooltip="{{shouldDisableSameAs() ? \'core.require.inferred\' : \'security.tooltip.click.me\' | translate}}" tooltip-placement="top"\n\t\t\t\t\t\t\t\t ng-click="user.appSettings.DEFAULT_SAMEAS = !user.appSettings.DEFAULT_SAMEAS"\n\t\t\t\t\t\t\t\t class="switch mr-0">\n\t\t\t\t\t\t\t\t<input id="sameAsCheck" type="checkbox" class="switch"\n ng-checked="user.appSettings.DEFAULT_SAMEAS"\n ng-disabled="shouldDisableSameAs()"/>\n\t\t\t\t\t\t\t\t<label for="sameas-on"></label>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t{{\'security.default.editor.graph\' | translate}}\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div id="inference-on" class="mb-1">\n\t\t\t\t\t\t\t<span class="inference-label">\n\t\t\t\t\t\t\t\t{{\'security.inference.is\' | translate}}\n\t\t\t\t\t\t\t\t<span class="tag {{user.appSettings.DEFAULT_INFERENCE ? \'tag-primary\' : \'tag-default\'}}">\n\t\t\t\t\t\t\t\t\t{{user.appSettings.DEFAULT_INFERENCE ? \'common.on.btn\' : \'common.off.btn\' | translate}}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span gdb-tooltip="{{\'security.tooltip.click.me\' | translate}}" tooltip-placement="top"\n\t\t\t\t\t\t\t\t ng-click="user.appSettings.DEFAULT_INFERENCE = !user.appSettings.DEFAULT_INFERENCE"\n\t\t\t\t\t\t\t\t class="switch mr-0">\n\t\t\t\t\t\t\t\t<input type="checkbox" class="switch" ng-checked="user.appSettings.DEFAULT_INFERENCE"/>\n\t\t\t\t\t\t\t\t<label for="inference-on"></label>\n\t\t\t\t\t\t\t</span>\n {{\'security.default.editor.graph\' | translate}}\n\t\t\t\t\t\t</div>\n\n <div id="schema-on" class="mb-1">\n\t\t\t\t\t\t\t<span class="schema-label">\n\t\t\t\t\t\t\t\t{{\'security.show.schema\' | translate}}\n\t\t\t\t\t\t\t\t<span class="tag {{user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA ? \'tag-primary\' : \'tag-default\'}}">\n\t\t\t\t\t\t\t\t\t{{user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA ? \'common.on.btn\' : \'common.off.btn\' | translate}}\n\t\t\t\t\t\t\t\t</span>\n <span gdb-tooltip="{{\'security.tooltip.click.me\' | translate}}" tooltip-placement="top"\n ng-click="user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA = !user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA"\n class="switch mr-0">\n\t\t\t\t\t\t\t\t<input type="checkbox" class="switch" ng-checked="user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA"/>\n\t\t\t\t\t\t\t\t<label for="schema-on"></label>\n\t\t\t\t\t\t\t</span>\n {{\'security.default.visual.graph\' | translate}}\n\t\t\t\t\t\t\t</span>\n </div>\n\n\t\t\t\t\t\t<label class="d-block">\n\t\t\t\t\t\t\t<input type="checkbox" ng-model="user.appSettings.EXECUTE_COUNT" id="defaultCount" checked="appSettings.EXECUTE_COUNT">\n\t\t\t\t\t\t\t{{\'security.count.total.results\' | translate}}\n\t\t\t\t\t\t</label>\n\n\t\t\t\t\t\t<label class="d-block">\n\t\t\t\t\t\t\t<input type="checkbox" ng-model="user.appSettings.IGNORE_SHARED_QUERIES" id="ignore-shared" checked="appSettings.IGNORE_SHARED_QUERIES">\n\t\t\t\t\t\t\t{{\'security.ignore.shared.queries\' | translate}}\n\t\t\t\t\t\t</label>\n\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t<div class="card" id="workbench-settings" ng-if="showWorkbenchSettings">\n\t\t\t\t\t<div class="card-block">\n\t\t\t\t\t\t<h3>{{\'security.workbench.settings.title\' | translate}}\n\t\t\t\t\t\t\t<em class="icon-info text-tertiary small" gdb-tooltip="{{\'security.workbench.settings.theme.tooltip\' | translate}}"></em></h3>\n\t\t\t\t\t\t<div>\n <div class="form-group">\n <label class="col-lg-2">{{\'security.workbench.settings.theme.label\' | translate}}</label>\n <div class="btn-group theme-selector-dropdown" uib-dropdown>\n <button type="button" class="btn btn-sm btn-secondary dropdown-toggle theme-selector-dropdown-btn" uib-dropdown-toggle>\n {{selectedTheme.label}}\n </button>\n <ul class="dropdown-menu" role="menu">\n <li ng-repeat="theme in themes">\n <a ng-click="setTheme(theme)" class="dropdown-item">{{theme.label}}</a>\n </li>\n </ul>\n </div>\n </div>\n\n <div class="form-group">\n <label class="col-lg-2">{{\'security.workbench.settings.theme.mode.label\' | translate}}</label>\n <div class="radio">\n <label class="px-1">\n <input type="radio" value="light" ng-model="workbenchSettings.mode" ng-change="setThemeMode()"/>\n {{\'security.workbench.settings.theme.mode.light\' | translate}}\n </label>\n <label class="px-1">\n <input type="radio" value="dark" ng-model="workbenchSettings.mode" ng-change="setThemeMode()"/>\n {{\'security.workbench.settings.theme.mode.dark\' | translate}}\n </label>\n </div>\n </div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div class="col-md-6 us-right-col" ng-hide="!isLocalAuthentication()">\n\t\t\t\t<div class="card user-role" id="user-roles">\n\t\t\t\t\t<div class="card-block">\n\t\t\t\t\t\t<h3>{{\'security.user.role\' | translate}}</h3>\n\t\t\t\t\t\t<label class="mr-1"\n\t\t\t\t\t\t\t uib-popover-template="\'popover-content-user.html\'"\n\t\t\t\t\t\t\t popover-trigger="mouseenter"\n\t\t\t\t\t\t\t popover-placement="bottom">\n\t\t\t\t\t\t\t<input type="radio" ng-model="userType" id="roleUser" value="user" ng-disabled="hasEditRestrictions()" >\n\t\t\t\t\t\t\t{{\'security.user.label\' | translate}}\n\t\t\t\t\t\t</label>\n\t\t\t\t\t\t<label class="mr-1"\n\t\t\t\t\t\t\t uib-popover-template="\'popover-content-repo-manager.html\'"\n\t\t\t\t\t\t\t popover-trigger="mouseenter"\n\t\t\t\t\t\t\t popover-placement="bottom">\n\t\t\t\t\t\t\t<input type="radio" ng-model="userType" id="roleRepoAdmin" value="repoManager" ng-disabled="hasEditRestrictions()">\n\t\t\t\t\t\t\t{{\'security.repo.manager.label\' | translate}}\n\t\t\t\t\t\t</label>\n\t\t\t\t\t\t<label uib-popover-template="\'popover-content-admin.html\'"\n\t\t\t\t\t\t\t popover-trigger="mouseenter"\n\t\t\t\t\t\t\t popover-placement="bottom">\n\t\t\t\t\t\t\t<input type="radio" ng-model="userType" id="roleAdmin" value="admin" ng-disabled="hasEditRestrictions()">\n\t\t\t\t\t\t\t{{\'security.admin.label\' | translate}}\n\t\t\t\t\t\t</label>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n <div class="card user-custom-roles" id="user-custom-roles">\n <div class="card-block">\n <h3>{{\'security.user.custom_role\' | translate}}</h3>\n <div class="input-group">\n <tags-input class="wb-tags-input" ng-model="customRoles" min-length="2"\n ng-disabled="!isUser()"\n use-strings="true"\n add-on-space="true"\n add-on-comma="true"\n on-tag-added="addCustomRole($tag)"\n placeholder="{{\'security.user.add.custom_role.msg\' | translate}}"></tags-input>\n </div>\n </div>\n </div>\n\n\t\t\t\t<div id="user-repos" class="card user-repositories">\n\t\t\t\t\t<div class="card-block">\n\t\t\t\t\t\t<h3>{{\'security.repo.rights\' | translate}}</h3>\n\t\t\t\t\t\t<div class="has-danger">\n\t\t\t\t\t\t\t<p ng-show="repositoryCheckError" class="form-control-feedback">\n\t\t\t\t\t\t\t\t{{\'security.user.rights\' | translate}}\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t</div>\n <div class="scrollable-table">\n <table class="table table-hover table-sm" aria-describedby="User rights table">\n <thead>\n <tr>\n <th id="repositoryIdColumn">{{\'security.repository.title\' | translate}}</th>\n <th id="readRightsColumn" class="text-xs-center"><em class="icon-eye icon-lg" gdb-tooltip="{{\'security.tooltip.read\' | translate}}"></em></th>\n <th id="writeRightColumn" class="text-xs-center"><em class="icon-edit icon-lg" gdb-tooltip="{{\'security.tooltip.write\' | translate}}"></em></th>\n </tr>\n <tr>\n <th>{{\'security.any.data.repo\' | translate}}\n <em class="icon-info text-tertiary" gdb-tooltip="{{\'security.data.repos\' | translate}}"></em>\n </th>\n <th class="text-xs-center">\n <input class="read" type="checkbox" ng-model="grantedAuthorities.READ_REPO[\'*\']" ng-checked="hasReadPermission(\'*\')" ng-disabled="readCheckDisabled(\'*\')" ng-click="setGrantedAuthorities()">\n </th>\n <th class="text-xs-center">\n <input class="write" type="checkbox" ng-model="grantedAuthorities.WRITE_REPO[\'*\']" ng-checked="hasWritePermission(\'*\')" ng-disabled="writeCheckDisabled(\'*\')" ng-click="setGrantedAuthorities()">\n </th>\n </tr>\n </thead>\n <tbody>\n <div>\n <tr ng-repeat="repository in getReadableRepositories() | orderBy: [\'location\', \'id\']">\n <td class="repository-name">{{repository.id}}<small> · {{repository.location ? repository.location : \'Local\'}}</small></td>\n <td class="text-xs-center read-rights"><input class="read" type="checkbox" ng-model="grantedAuthorities.READ_REPO[createUniqueKey(repository)]" ng-checked="hasReadPermission(repository)" ng-disabled="readCheckDisabled(repository)" ng-click="setGrantedAuthorities()"></td>\n <td class="text-xs-center write-rights"><input class="write" type="checkbox" ng-model="grantedAuthorities.WRITE_REPO[createUniqueKey(repository)]" ng-checked="hasWritePermission(repository)" ng-disabled="writeCheckDisabled(repository)" ng-click="setGrantedAuthorities()"></td>\n </tr>\n </div>\n </tbody>\n </table>\n </div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n </div>\n\t\t</div>\n\n\t\t<div class="text-right">\n <button id="wb-user-goBack" class="btn btn-secondary" type="button" ng-click="goBack()">{{\'common.cancel.btn\' | translate}}</button>\n <button id="wb-user-submit" class="btn btn-primary" type="submit">{{saveButtonText}}</button>\n\t\t</div>\n\t</form>\n</div>\n<div class="ot-loader ot-main-loader" onto-loader size="50" ng-show="loader"></div>\n\n\n\n';return __p}}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[20,25,32,40,64],{133:function(e,t,l){"use strict";l.r(t);l(6),l(22),l(28),l(83),l(87),l(21);angular.module("graphdb.framework.aclmanagement",["ui.bootstrap","toastr","ngCookies","ngRoute","graphdb.framework.aclmanagement.controllers","graphdb.framework.core.services.repositories","graphdb.framework.core.directives","graphdb.framework.core.controllers"])},61:function(e,t,l){"use strict";l.r(t),l.d(t,"mapAclRulesResponse",(function(){return r}));var s=l(62);const r=e=>{const t=new s.ACListModel;return e&&e.data&&e.data.forEach(e=>{t.appendNewRule(e.subject,e.predicate,e.object,e.context,e.role,e.policy)}),t}},62:function(e,t,l){"use strict";l.r(t),l.d(t,"ACListModel",(function(){return s})),l.d(t,"ACRuleModel",(function(){return r})),l.d(t,"ACL_POLICY",(function(){return o}));class s{constructor(e=[]){this._aclRules=e}size(){return this.aclRules.length}appendNewRule(e,t,l,s,o,n){this.aclRules.push(new r(e,t,l,s,o,n))}addRule(e){this.aclRules.splice(e,0,new r)}removeRule(e){this.aclRules.splice(e,1)}replaceRule(e,t){this.aclRules.splice(e,1,t)}getRule(e){return this.aclRules[e]}isRuleDuplicated(e){const t=this.aclRules[e];return this.aclRules.some((l,s)=>e!==s&&angular.equals(t,l))}getRuleCopy(e){const t=this.aclRules[e];return{subject:t.subject,predicate:t.predicate,object:t.object,context:t.context,role:t.role,policy:t.policy}}moveUp(e){const t=this.aclRules[e-1];this.aclRules[e-1]=this.aclRules[e],this.aclRules[e]=t}moveDown(e){const t=this.aclRules[e+1];this.aclRules[e+1]=this.aclRules[e],this.aclRules[e]=t}toJSON(){return this.aclRules.map(e=>({subject:e.subject,predicate:e.predicate,object:e.object,context:e.context,role:e.role,policy:e.policy}))}get aclRules(){return this._aclRules}set aclRules(e){this._aclRules=e}}class r{constructor(e="*",t="*",l="*",s="*",r="CUSTOM_",n=o.ALLOW){this._subject=e,this._predicate=t,this._object=l,this._context=s,this._role=r,this._policy=n}get subject(){return this._subject}set subject(e){this._subject=e}get predicate(){return this._predicate}set predicate(e){this._predicate=e}get object(){return this._object}set object(e){this._object=e}get context(){return this._context}set context(e){this._context=e}get role(){return this._role}set role(e){this._role=e}get policy(){return this._policy}set policy(e){this._policy=e}}const o={ALLOW:"allow",DENY:"deny"}},84:function(e,t,l){"use strict";l.r(t);l(61);angular.module("graphdb.framework.rest.aclmanagement.service",[]).factory("AclManagementRestService",s),s.$inject=["$http"];function s(e){return{getAcl:function(t){return e.get(`rest/repositories/${t}/acl`)},updateAcl:function(t,l){return e.put(`rest/repositories/${t}/acl`,l)}}}},87:function(e,t,l){"use strict";l.r(t);l(29),l(84);var s=l(61),r=l(82);function o(e,t,l,o,n,a,c){const i=[];e.ruleData={},e.loading=!1,e.rulesModel=void 0,e.rulesModelCopy=void 0,e.selectedRule=void 0,e.editedRuleIndex=void 0,e.editedRuleCopy=void 0,e.isNewRule=!1,e.modelIsDirty=!1,e.addRule=t=>{e.rulesModel.addRule(t),e.editedRuleIndex=t,e.isNewRule=!0,m()},e.editRule=t=>{e.editedRuleIndex=t,e.isNewRule=!1,e.editedRuleCopy=e.rulesModel.getRuleCopy(t),m()},e.deleteRule=t=>{c.openConfirmation(a.instant("common.confirm"),a.instant("acl_management.rulestable.messages.delete_rule_confirmation",{index:t}),()=>{e.rulesModel.removeRule(t),m()})},e.saveRule=()=>{e.rulesModel.isRuleDuplicated(e.editedRuleIndex)?g():(e.editedRuleIndex=void 0,e.isNewRule=!1,m())},e.cancelEditing=t=>{e.isNewRule?(e.rulesModel.removeRule(t),e.isNewRule=!1):(e.rulesModel.replaceRule(t,e.editedRuleCopy),e.editedRuleCopy=void 0),e.editedRuleIndex=void 0,m()},e.moveUp=t=>{e.rulesModel.moveUp(t),e.selectedRule=t-1,m()},e.moveDown=t=>{e.rulesModel.moveDown(t),e.selectedRule=t+1,m()},e.saveAcl=()=>{e.loading=!0,d().then(u).finally(()=>{e.loading=!1})},e.cancelAclSave=()=>{c.openConfirmation(a.instant("common.confirm"),a.instant("acl_management.rulestable.messages.revert_acl_list"),()=>{p(),l.success(a.instant("acl_management.rulestable.messages.rules_reverted"))})};const u=()=>{const t=R();return o.getAcl(t).then(t=>{e.rulesModel=Object(s.mapAclRulesResponse)(t),e.rulesModelCopy=Object(s.mapAclRulesResponse)(t),m()}).catch(e=>{const t=getError(e);l.error(t,a.instant("acl_management.errors.loading_rules"))})},d=()=>{const t=R();return o.updateAcl(t,e.rulesModel.toJSON()).then(()=>{l.success(a.instant("acl_management.rulestable.messages.rules_updated"))}).catch(e=>{const t=getError(e);l.error(t,a.instant("acl_management.errors.updating_rules"))})},p=()=>{R()&&(e.loading=!0,u().finally(()=>{e.loading=!1}))},m=()=>{e.modelIsDirty=!Object(r.isEqual)(e.rulesModel,e.rulesModelCopy)},R=()=>n.getActiveRepository(),g=()=>{l.error(a.instant("acl_management.errors.duplicated_rules"))},h=t=>{e.modelIsDirty&&(t.returnValue=!0)},b=()=>{window.removeEventListener("beforeunload",h),i.forEach(e=>e())},_=(l,s)=>{e.modelIsDirty&&(l.preventDefault(),c.openSimpleModal({title:a.instant("common.confirm"),message:a.instant("acl_management.rulestable.messages.unsaved_changes_confirmation"),warning:!0}).result.then((function(){b();const e=t.absUrl().length-t.url().length,l=s.substring(e);t.path(l)}),(function(){})))};i.push(e.$watch(R,p)),i.push(e.$on("$locationChangeStart",_)),i.push(e.$on("$destroy",b)),window.addEventListener("beforeunload",h)}angular.module("graphdb.framework.aclmanagement.controllers",["graphdb.framework.rest.plugins.service","graphdb.framework.rest.aclmanagement.service"]).controller("AclManagementCtrl",o),o.$inject=["$scope","$location","toastr","AclManagementRestService","$repositories","$translate","ModalService"]}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[22],{106:function(e,t,n){"use strict";n.r(t);var r=n(293),i=n.n(r),a=n(304),o=n(296),s=n(297);n(10);function l(e,t,n,r,l,c,d,u,f,h,p,v,y){return{restrict:"AE",template:'<div id="classChart"></div>',scope:{classHierarchyData:"=",flattenedClassNames:"=",selectedClass:"=",currentSliderValue:"=",showClassInfoPanel:"=",showExternalElements:"=",hidePrefixes:"=",currentBrowserLimit:"="},link:function(d,g,m){!function(d,g){var m=d3.layout.pack().size([780,780]).value((function(e){return e.size})),x=d3.scale.linear().domain([0,4]).range(["hsl(19, 70%, 90%)","hsl(19, 70%, 50%)"]).interpolate(d3.interpolateHcl),w=d3.select("#classChart").insert("svg:svg","h2").attr("viewBox","0 0 800 800").attr("preserveAspectRatio","xMidYMid meet").on("dblclick.zoom",null);function S(){return w.append("svg:g").attr({id:"main-group",transform:"translate(400,400)"})}function C(){return"true"===p.get(v.CLASS_HIERARCHY_HIDE_PREFIXES)}function E(){var e=s.a.Export.getCSSRules("css/rdf-class-hierarchy-labels.css?v=2.4.0-RC1");d3.selectAll("#main-group").append("defs"),$("defs").append('<style type="text/css"><![CDATA['+e+"]]></style>"),d3.selectAll("g").style("opacity",1);var t=s.a.Export.generateBase64ImageSource();d3.select(this).attr({href:t,download:"class-hierarchy-"+c.getActiveRepository()+".svg"})}d.hidePrefixes=C();var T,R,A=S();if(!d.classHierarchyData.classCount&&c.getActiveRepository()&&!c.isSystemRepository()){e.loader=!0,e.hierarchyError=!1;const t=p.get("classHierarchy-selectedGraph-"+c.getActiveRepository());n.getClassHierarchyData(null!==t?t.contextID.uri:"").success((function(t,n,r){e.loader=!1,207===n&&u.warning(y.instant("graphexplore.update.diagram"),y.instant("graphexplore.repository.data.changed")),d.classHierarchyData=t,d3.select("#download-svg").on("mouseover",E)})).error((function(t){e.loader=!1,e.hierarchyError=getError(t),u.error(y.instant("graphexplore.error.request.failed",{name:h,error:getError(t)}))}))}var H,P,I,b,k,F,L,D,N={};function z(n,s,c,u){I&&I(),b&&b(),d3.selectAll("#main-group").remove(),A=S(),a.a.SingleChild.addPlaceholders(n,!0),P=c||n;var p,v=m.nodes(n);P.isInFocusTransitive=!0,a.a.SingleChild.removePlaceholders(v),a.a.SingleChild.centerNodes(v),a.a.SingleChild.makePositionsRelativeToZero(v);var y=i()().attr("class","d3-tip").customPosition((function(e){return{top:"inherit",bottom:r.innerHeight-d3.event.clientY+"px",right:r.innerWidth-d3.event.clientX+"px"}})).html((function(e){return e.name}));w.call(y);var g=A.selectAll("circle").data(v).enter().append("g");s.doFade&&g.each((function(e){o.a.Transition.fadeIn(d3.select(this),550)}));var C,E=[],k=g.append("circle").attr("class",(function(e){return e.role})).attr("guide-selector",(function(e){return"class-"+e.name})).style("fill",(function(e){return e.children?x(e.depth):"#E0D0D0"})).each((function(e){if(e.circle=d3.select(this),e.name!==h){var t=e.name;E.push({name:t}),N[[t]]=e,e.circle.classed("rdf-class",!0),e.circle.on("mouseover",(function(){s.noPrefixes||e.textHidden?y.show(e):y.hide(e)})),e.circle.on("mouseout",y.hide)}})).on("gdb-focus",R).on("gdb-zoom",B);function F(e){d3.selectAll(".selected").classed("selected",e.selected=!1),e.circle.classed("selected",e.selected=!0),C=e}function L(){d.showClassInfoPanel=!1}E&&(E=_.uniqBy(E,"name"),d.flattenedClassNames=E);var D=o.a.Click.delayDblClick();d3.selectAll(".parent, .topLevelParent, .child, .root").call(D);R=function(e){B(e),e.name===h?(L(),d3.selectAll(".selected").classed("selected",!1)):(F(e),d.selectedClass=C,d.showClassInfoPanel=!0,d.$on("sidePanelClosed",(function(t){d3.selectAll(".selected").classed("selected",e.selected=!1)})))},D.on("click",(function(e){e.id&&r.history.pushState({id:e.id},"classHierarchyPage"+e.id,"hierarchy#"+e.id),y.hide(),R(e)})),D.on("dblclick",(function(t){t!==n&&(y.hide(),F(t),e.$broadcast("goToDomainRangeGraphView",C,P),d3.event.stopPropagation())}));var $=0;w.on("wheel",(function(){y.hide();var e=d3.event;e.preventDefault(),e.stopPropagation();var t=(new Date).getTime();if(t-$>100){$=t;var n="";e.deltaY<=-1?n="in":e.deltaY>=1&&(n="out");var i=e.target.__data__;if(i||(i=P),"in"===n){if(i!==P){for(;i.parent&&!i.parent.isInFocusTransitive;)i=i.parent;i.depth<P.depth&&(i=P)}if(i===P&&i.children){for(var a=i.children[0],o=1;o<i.children.length;o++)i.children[o].sortingRank>a.sortingRank&&(a=i.children[o]);a.children&&(i=a)}else i.children||(i=i.parent);B(i,!0)}else"out"===n&&(i=P.parent)&&B(i,!0);P.name===h&&r.history.replaceState({id:1},"classHierarchyPage1","hierarchy#1"),O()}}));var z=A.selectAll("text").data(v).enter().append("text").attr("class",(function(e){return e.children&&e.children.length?"label":"label child-label"})).each((function(e){e.textSel=d3.select(this)}));s.noPrefixes?(H!==n&&(z.each((function(e){var t=e.name.indexOf(":");e.name.indexOf("http://")>-1?e.noPrefixName=e.name:t>-1&&(e.noPrefixName=e.name.substring(t+1))})),H=n),z.style("font-size",(function(e){return o.a.Text.calcFontSize(e.noPrefixName,e.r)})).text((function(e){return o.a.Text.getTextWithElipsisIfNeeded(e.noPrefixName,e.r/3)}))):z.style("font-size",(function(e){return o.a.Text.calcFontSize(e.name,e.r)})).text((function(e){return o.a.Text.getTextWithElipsisIfNeeded(e.name,e.r/3)})),z.style("display",(function(e){return e.parent===n?(e.textHidden=this.textContent.indexOf("...")+3===this.textContent.length,null):(e.textHidden=!0,"none")})),s.doFade&&!s.keepPrevState&&z.each((function(e){o.a.Transition.fadeIn(d3.select(this),550)})),T=function(){function e(e){e&&k.each((function(t){e==t.id&&R(t)}))}var n=t.hash();r.onpopstate=function(t){t.state&&e(t.state.id)},e(n)};var U=A.selectAll("circle, text");function M(e,t){var n=800/e[2];p=e,U.attr("transform",(function(t){return"translate("+(t.x-e[0])*n+","+(t.y-e[1])*n+")"})),k.attr("r",(function(e){return e.r*n})),t&&z.each((function(e){e.fullName!==P.topLevelParentUri&&P.topLevelParentUri!==h||(e.textSel.style("display","none"),P.children&&P.children.length?_.each(P.children,(function(e){e.textSel.style("display","inline")})):P.textSel.style("display","inline"),P.parent&&_.each(P.parent.children,(function(e){e.name!==P.name&&e.textSel.style("display","inline")})))})),z.style("font-size",(function(e){return s.noPrefixes?o.a.Text.calcFontSize(e.noPrefixName,e.r*n):o.a.Text.calcFontSize(e.name,e.r*n)})).text((function(e){return s.noPrefixes?o.a.Text.getTextWithElipsisIfNeeded(e.noPrefixName,e.r*n/3):o.a.Text.getTextWithElipsisIfNeeded(e.name,e.r*n/3)}))}function V(e){var t=2*e+20;return 2*e/t<.3&&(t=2*e+2),t}function W(e){!e.isInFocusTransitive&&e.parent&&e.parent.isInFocusTransitive||(e.textHidden=!0,this.style.display="none")}function Y(e){!e.isInFocusTransitive&&e.parent&&e.parent.isInFocusTransitive&&(e.textHidden=this.textContent.indexOf("...")+3===this.textContent.length,this.style.display="")}function B(e,t){if(l((function(){d.showExternalElements=e.name===h})),P!==e&&(e.id&&r.history.replaceState({id:e.id},"classHierarchyPage"+e.id,"hierarchy#"+e.id),e.children||(e=e.parent,P!==e))){if(t&&(L(),d3.selectAll(".selected").classed("selected",!1)),P.parent)for(var n=P;n;)n.isInFocusTransitive=!1,n=n.parent;for(n=e;n;)n.isInFocusTransitive=n.children,n=n.parent;if(2*(P=e).r/(2*P.r+20)<.3||d.currentSliderValue>d.currentBrowserLimit)M([P.x,P.y,V(P.r)]),z.each((function(e){W.call(this,e),Y.call(this,e)}));else d3.transition().duration(f).tween("zoom",(function(e){var t=d3.interpolateZoom(p,[P.x,P.y,V(P.r)]);return function(e){M(t(e))}})).selectAll("text").each("start",W).each("end",Y)}}M([P.x,P.y,V(P.r)],u),I=d.$on("rootFocus",(function(){r.history.pushState({id:1},"classHierarchyPage1","hierarchy#1"),R(n)})),b=d.$on("classSearch",(function(e){R(e)}))}function O(){var t=d.classHierarchyData.classCount;let n=p.get(v.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE);(!n||n>t)&&(n=t,p.set(v.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE,n)),e.$broadcast("classCount",t,n)}window.addEventListener("resize",O),window.addEventListener("beforeunload",(function e(){window.removeEventListener("resize",O),window.removeEventListener("beforeunload",e)})),d.$watch("classHierarchyData",(function(){k&&k(),F&&F(),L&&L(),D&&D();var e=C();if(d.classHierarchyData.classCount){O();var t=angular.copy(d.classHierarchyData);var n,r,i=function(e){return m.nodes(e).sort((function(e,t){return e.sortingRank>t.sortingRank?-1:e.sortingRank<t.sortingRank||e.depth>t.depth?1:e.depth<t.depth?-1:0}))}(t);function a(e,t){var i={keepPrevState:!0,noPrefixes:C()};r=i.noPrefixes,z(n||e,i,P,!0),l((function(){p.set(v.CLASS_HIERARCHY_SWITCH_PREFIXES,t),T()}),70)}function o(e,i,o){if(e){p.set(v.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE,e),n={name:h,children:[]};for(var s=new Set,l=1;l<=e;l++)s.add(i[l].id),i[l].parent===i[0]&&n.children.push(i[l]);if(function e(t){if(t.children){for(var n=[],r=0;r<t.children.length;r++)s.has(t.children[r].id)&&n.push($.extend({},t.children[r]));t.children=n;for(r=0;r<t.children.length;r++)e(t.children[r])}}(n),o)r=angular.isUndefined(r)?C():r,z(n,{noPrefixes:r});else a(t)}}var s,c=p.get(v.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE);if(c)o(c,i);else{var u={doFade:!0,keepPrevState:!0,noPrefixes:C()};z(t,u),T()}k=d.$watch("hidePrefixes",(function(n){angular.isUndefined(n)||e?e=void 0:l((function(){!function(e){angular.isUndefined(e)||p.set(v.CLASS_HIERARCHY_HIDE_PREFIXES,e)}(n),a(t,!0)}),50)}),!0),F=d.$watch("currentSliderValue",(function(e){o(e,i,!0)}),!0),D=d.$on("onEnterKeypressSearchAction",(function(e){s&&R(s)})),L=d.$on("searchedClass",(function(e,t){(s=N[t.name])&&R(s)}))}}),!0)}(d)}}}angular.module("graphdb.framework.graphexplore.directives.class",["graphdb.framework.graphexplore.controllers.class","graphdb.framework.utils.localstorageadapter"]).constant("ZOOM_DURATION",500).constant("ROOT_OBJ_NAME","RDF Class Hierarchy").directive("rdfClassHierarchy",l),l.$inject=["$rootScope","$location","GraphDataRestService","$window","$timeout","$repositories","$licenseService","toastr","ZOOM_DURATION","ROOT_OBJ_NAME","LocalStorageAdapter","LSKeys","$translate"]},293:function(e,t,n){var r,i,a;i=[],void 0===(a="function"==typeof(r=function(){return function(){var e=function(){return"n"},t=function(){return[0,0]},n=function(){return" "},r=u(),i=null,a=null,o=null,s=null;function l(e){var t;i="svg"===(t=(t=e).node()).tagName.toLowerCase()?t:t.ownerSVGElement,a=i.createSVGPoint(),document.body.appendChild(r)}l.show=function(){var r=Array.prototype.slice.call(arguments);r[r.length-1]instanceof SVGElement&&(o=r.pop());var i,a=n.apply(this,r),u=t.apply(this,r),h=e.apply(this,r),p=f(),v=d.length,y=document.documentElement.scrollTop||document.body.scrollTop,g=document.documentElement.scrollLeft||document.body.scrollLeft,m=s.apply(this,r);for(p.html(a).style({opacity:1,"pointer-events":"all"});v--;)p.classed(d[v],!1);return i=c.get(h).apply(this),m?p.style(m):p.classed(h,!0).style({top:i.top+u[0]+y+"px",left:i.left+u[1]+g+"px"}),l},l.hide=function(){return f().style({opacity:0,"pointer-events":"none"}),l},l.attr=function(e,t){if(arguments.length<2&&"string"==typeof e)return f().attr(e);var n=Array.prototype.slice.call(arguments);return d3.selection.prototype.attr.apply(f(),n),l},l.style=function(e,t){if(arguments.length<2&&"string"==typeof e)return f().style(e);var n=Array.prototype.slice.call(arguments);return d3.selection.prototype.style.apply(f(),n),l},l.direction=function(t){return arguments.length?(e=null==t?t:d3.functor(t),l):e},l.offset=function(e){return arguments.length?(t=null==e?e:d3.functor(e),l):t},l.html=function(e){return arguments.length?(n=null==e?e:d3.functor(e),l):n},l.customPosition=function(e){return arguments.length?(s=null==e?e:d3.functor(e),l):s},l.destroy=function(){return r&&(f().remove(),r=null),l};var c=d3.map({n:function(){var e=h();return{top:e.n.y-r.offsetHeight,left:e.n.x-r.offsetWidth/2}},s:function(){var e=h();return{top:e.s.y,left:e.s.x-r.offsetWidth/2}},e:function(){var e=h();return{top:e.e.y-r.offsetHeight/2,left:e.e.x}},w:function(){var e=h();return{top:e.w.y-r.offsetHeight/2,left:e.w.x-r.offsetWidth}},nw:function(){var e=h();return{top:e.nw.y-r.offsetHeight,left:e.nw.x-r.offsetWidth}},ne:function(){var e=h();return{top:e.ne.y-r.offsetHeight,left:e.ne.x}},sw:function(){var e=h();return{top:e.sw.y,left:e.sw.x-r.offsetWidth}},se:function(){var e=h();return{top:e.se.y,left:e.e.x}}}),d=c.keys();function u(){var e=d3.select(document.createElement("div"));return e.style({position:"absolute",top:0,opacity:0,"pointer-events":"none","box-sizing":"border-box"}),e.node()}function f(){return null===r&&(r=u(),document.body.appendChild(r)),d3.select(r)}function h(){for(var e=o||d3.event.target;void 0===e.getScreenCTM&&"undefined"===e.parentNode;)e=e.parentNode;var t={},n=e.getScreenCTM(),r=e.getBBox(),i=r.width,s=r.height,l=r.x,c=r.y;return a.x=l,a.y=c,t.nw=a.matrixTransform(n),a.x+=i,t.ne=a.matrixTransform(n),a.y+=s,t.se=a.matrixTransform(n),a.x-=i,t.sw=a.matrixTransform(n),a.y-=s/2,t.w=a.matrixTransform(n),a.x+=i,t.e=a.matrixTransform(n),a.x-=i/2,a.y-=s/2,t.n=a.matrixTransform(n),a.y+=s,t.s=a.matrixTransform(n),t}return l}})?r.apply(t,i):r)||(e.exports=a)},296:function(e,t,n){"use strict";var r=r||{};r.Text=function(){function e(e,t,n,r){n=n||10;var i=t/3;return"string"==typeof e?(i*=10/(e.substring(0,t/3).length+1.5),i+=1,e.match(/[\u0900-\u0DFF\u1100-\u11FF\u2E80-\u2EFF\u3000-\u9FFF]/)&&(i*=.6),i<n&&(i=n),Math.round(i)):(i<n&&(i=n),Math.round(i))}return{calcFontSizeRaw:e,calcFontSize:function(t,n,r,i){return e(t,n,r)+"px"},getTextWithElipsisIfNeeded:function(e,t){return"string"==typeof e&&e.length>t?e.substring(0,t-3)+"...":e}}}(),r.Transition={fadeIn:function(e,t){e.style("opacity",0).transition().duration(t).style("opacity",1)},fadeOut:function(e,t){e.style("opacity",1).transition().duration(t).style("opacity",0)}},r.Click={delayDblClick:function(){var e=d3.dispatch("click","dblclick");return d3.rebind((function(t){var n,r=null;t.on("mousedown",(function(){n=d3.mouse(document.body),new Date})),t.on("mouseup",(function(t){var i,a;i=n,a=d3.mouse(document.body),Math.sqrt(Math.pow(i[0]-a[0],2),Math.pow(i[1]-a[1],2))>5||(r?(window.clearTimeout(r),r=null,e.dblclick(t)):r=window.setTimeout((d3.event,function(){e.click(t),r=null}),250))}))}),e,"on")}},t.a=r},297:function(e,t,n){"use strict";var r=r||{};r.Export={getCSSRules:function(e){var t=$('link[href="'+e+'"]')[0].sheet.rules,n="";return _.each(t,(function(e){n+=e.cssText})),n},generateBase64ImageSource:function(){var e=d3.selectAll("svg").attr({version:"1.1",xmlns:"http://www.w3.org/2000/svg"}).node().parentNode.innerHTML;return"data:image/svg+xml;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(e)))}},t.a=r},304:function(e,t,n){"use strict";var r=r||{};r.SingleChild={addPlaceholders:function e(t,n){if(t.children){for(var r=0;r<t.children.length;r++)e(t.children[r]);if(1===t.children.length){var i=1.2*t.size;n&&(i=.1*t.children[0].size),t.children.push({name:"placeholder",size:i})}}},removePlaceholders:function e(t){for(var n=t.length-1;n>=0;n--){var r=t[n];"placeholder"===r.name?t.splice(n,1):r.children&&e(r.children)}},centerNodes:function(e){for(var t=0;t<e.length;t++){var n=e[t];if(n.children&&1===n.children.length){var r=n.x-n.children[0].x;n.children[0].x+=r,i(n.children[0],r)}}function i(e,t){if(e.children)for(var n=0;n<e.children.length;n++)e.children[n].x+=t,i(e.children[n],t)}},makePositionsRelativeToZero:function(e){for(var t=e[0].x,n=e[0].y,r=0;r<e.length;r++){var i=e[r];i.x-=t,i.y-=n}}},t.a=r}}]);
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[22],{106:function(e,t,n){"use strict";n.r(t);var r=n(293),i=n.n(r),a=n(304),o=n(296),s=n(297);n(10);function l(e,t,n,r,l,c,d,u,f,h,p,v,y){return{restrict:"AE",template:'<div id="classChart"></div>',scope:{classHierarchyData:"=",flattenedClassNames:"=",selectedClass:"=",currentSliderValue:"=",showClassInfoPanel:"=",showExternalElements:"=",hidePrefixes:"=",currentBrowserLimit:"="},link:function(d,g,m){!function(d,g){var m=d3.layout.pack().size([780,780]).value((function(e){return e.size})),x=d3.scale.linear().domain([0,4]).range(["hsl(19, 70%, 90%)","hsl(19, 70%, 50%)"]).interpolate(d3.interpolateHcl),w=d3.select("#classChart").insert("svg:svg","h2").attr("viewBox","0 0 800 800").attr("preserveAspectRatio","xMidYMid meet").on("dblclick.zoom",null);function S(){return w.append("svg:g").attr({id:"main-group",transform:"translate(400,400)"})}function C(){return"true"===p.get(v.CLASS_HIERARCHY_HIDE_PREFIXES)}function E(){var e=s.a.Export.getCSSRules("css/rdf-class-hierarchy-labels.css?v=2.4.0-RC2");d3.selectAll("#main-group").append("defs"),$("defs").append('<style type="text/css"><![CDATA['+e+"]]></style>"),d3.selectAll("g").style("opacity",1);var t=s.a.Export.generateBase64ImageSource();d3.select(this).attr({href:t,download:"class-hierarchy-"+c.getActiveRepository()+".svg"})}d.hidePrefixes=C();var T,R,A=S();if(!d.classHierarchyData.classCount&&c.getActiveRepository()&&!c.isSystemRepository()){e.loader=!0,e.hierarchyError=!1;const t=p.get("classHierarchy-selectedGraph-"+c.getActiveRepository());n.getClassHierarchyData(null!==t?t.contextID.uri:"").success((function(t,n,r){e.loader=!1,207===n&&u.warning(y.instant("graphexplore.update.diagram"),y.instant("graphexplore.repository.data.changed")),d.classHierarchyData=t,d3.select("#download-svg").on("mouseover",E)})).error((function(t){e.loader=!1,e.hierarchyError=getError(t),u.error(y.instant("graphexplore.error.request.failed",{name:h,error:getError(t)}))}))}var H,P,I,b,k,F,L,D,N={};function z(n,s,c,u){I&&I(),b&&b(),d3.selectAll("#main-group").remove(),A=S(),a.a.SingleChild.addPlaceholders(n,!0),P=c||n;var p,v=m.nodes(n);P.isInFocusTransitive=!0,a.a.SingleChild.removePlaceholders(v),a.a.SingleChild.centerNodes(v),a.a.SingleChild.makePositionsRelativeToZero(v);var y=i()().attr("class","d3-tip").customPosition((function(e){return{top:"inherit",bottom:r.innerHeight-d3.event.clientY+"px",right:r.innerWidth-d3.event.clientX+"px"}})).html((function(e){return e.name}));w.call(y);var g=A.selectAll("circle").data(v).enter().append("g");s.doFade&&g.each((function(e){o.a.Transition.fadeIn(d3.select(this),550)}));var C,E=[],k=g.append("circle").attr("class",(function(e){return e.role})).attr("guide-selector",(function(e){return"class-"+e.name})).style("fill",(function(e){return e.children?x(e.depth):"#E0D0D0"})).each((function(e){if(e.circle=d3.select(this),e.name!==h){var t=e.name;E.push({name:t}),N[[t]]=e,e.circle.classed("rdf-class",!0),e.circle.on("mouseover",(function(){s.noPrefixes||e.textHidden?y.show(e):y.hide(e)})),e.circle.on("mouseout",y.hide)}})).on("gdb-focus",R).on("gdb-zoom",B);function F(e){d3.selectAll(".selected").classed("selected",e.selected=!1),e.circle.classed("selected",e.selected=!0),C=e}function L(){d.showClassInfoPanel=!1}E&&(E=_.uniqBy(E,"name"),d.flattenedClassNames=E);var D=o.a.Click.delayDblClick();d3.selectAll(".parent, .topLevelParent, .child, .root").call(D);R=function(e){B(e),e.name===h?(L(),d3.selectAll(".selected").classed("selected",!1)):(F(e),d.selectedClass=C,d.showClassInfoPanel=!0,d.$on("sidePanelClosed",(function(t){d3.selectAll(".selected").classed("selected",e.selected=!1)})))},D.on("click",(function(e){e.id&&r.history.pushState({id:e.id},"classHierarchyPage"+e.id,"hierarchy#"+e.id),y.hide(),R(e)})),D.on("dblclick",(function(t){t!==n&&(y.hide(),F(t),e.$broadcast("goToDomainRangeGraphView",C,P),d3.event.stopPropagation())}));var $=0;w.on("wheel",(function(){y.hide();var e=d3.event;e.preventDefault(),e.stopPropagation();var t=(new Date).getTime();if(t-$>100){$=t;var n="";e.deltaY<=-1?n="in":e.deltaY>=1&&(n="out");var i=e.target.__data__;if(i||(i=P),"in"===n){if(i!==P){for(;i.parent&&!i.parent.isInFocusTransitive;)i=i.parent;i.depth<P.depth&&(i=P)}if(i===P&&i.children){for(var a=i.children[0],o=1;o<i.children.length;o++)i.children[o].sortingRank>a.sortingRank&&(a=i.children[o]);a.children&&(i=a)}else i.children||(i=i.parent);B(i,!0)}else"out"===n&&(i=P.parent)&&B(i,!0);P.name===h&&r.history.replaceState({id:1},"classHierarchyPage1","hierarchy#1"),O()}}));var z=A.selectAll("text").data(v).enter().append("text").attr("class",(function(e){return e.children&&e.children.length?"label":"label child-label"})).each((function(e){e.textSel=d3.select(this)}));s.noPrefixes?(H!==n&&(z.each((function(e){var t=e.name.indexOf(":");e.name.indexOf("http://")>-1?e.noPrefixName=e.name:t>-1&&(e.noPrefixName=e.name.substring(t+1))})),H=n),z.style("font-size",(function(e){return o.a.Text.calcFontSize(e.noPrefixName,e.r)})).text((function(e){return o.a.Text.getTextWithElipsisIfNeeded(e.noPrefixName,e.r/3)}))):z.style("font-size",(function(e){return o.a.Text.calcFontSize(e.name,e.r)})).text((function(e){return o.a.Text.getTextWithElipsisIfNeeded(e.name,e.r/3)})),z.style("display",(function(e){return e.parent===n?(e.textHidden=this.textContent.indexOf("...")+3===this.textContent.length,null):(e.textHidden=!0,"none")})),s.doFade&&!s.keepPrevState&&z.each((function(e){o.a.Transition.fadeIn(d3.select(this),550)})),T=function(){function e(e){e&&k.each((function(t){e==t.id&&R(t)}))}var n=t.hash();r.onpopstate=function(t){t.state&&e(t.state.id)},e(n)};var U=A.selectAll("circle, text");function M(e,t){var n=800/e[2];p=e,U.attr("transform",(function(t){return"translate("+(t.x-e[0])*n+","+(t.y-e[1])*n+")"})),k.attr("r",(function(e){return e.r*n})),t&&z.each((function(e){e.fullName!==P.topLevelParentUri&&P.topLevelParentUri!==h||(e.textSel.style("display","none"),P.children&&P.children.length?_.each(P.children,(function(e){e.textSel.style("display","inline")})):P.textSel.style("display","inline"),P.parent&&_.each(P.parent.children,(function(e){e.name!==P.name&&e.textSel.style("display","inline")})))})),z.style("font-size",(function(e){return s.noPrefixes?o.a.Text.calcFontSize(e.noPrefixName,e.r*n):o.a.Text.calcFontSize(e.name,e.r*n)})).text((function(e){return s.noPrefixes?o.a.Text.getTextWithElipsisIfNeeded(e.noPrefixName,e.r*n/3):o.a.Text.getTextWithElipsisIfNeeded(e.name,e.r*n/3)}))}function V(e){var t=2*e+20;return 2*e/t<.3&&(t=2*e+2),t}function W(e){!e.isInFocusTransitive&&e.parent&&e.parent.isInFocusTransitive||(e.textHidden=!0,this.style.display="none")}function Y(e){!e.isInFocusTransitive&&e.parent&&e.parent.isInFocusTransitive&&(e.textHidden=this.textContent.indexOf("...")+3===this.textContent.length,this.style.display="")}function B(e,t){if(l((function(){d.showExternalElements=e.name===h})),P!==e&&(e.id&&r.history.replaceState({id:e.id},"classHierarchyPage"+e.id,"hierarchy#"+e.id),e.children||(e=e.parent,P!==e))){if(t&&(L(),d3.selectAll(".selected").classed("selected",!1)),P.parent)for(var n=P;n;)n.isInFocusTransitive=!1,n=n.parent;for(n=e;n;)n.isInFocusTransitive=n.children,n=n.parent;if(2*(P=e).r/(2*P.r+20)<.3||d.currentSliderValue>d.currentBrowserLimit)M([P.x,P.y,V(P.r)]),z.each((function(e){W.call(this,e),Y.call(this,e)}));else d3.transition().duration(f).tween("zoom",(function(e){var t=d3.interpolateZoom(p,[P.x,P.y,V(P.r)]);return function(e){M(t(e))}})).selectAll("text").each("start",W).each("end",Y)}}M([P.x,P.y,V(P.r)],u),I=d.$on("rootFocus",(function(){r.history.pushState({id:1},"classHierarchyPage1","hierarchy#1"),R(n)})),b=d.$on("classSearch",(function(e){R(e)}))}function O(){var t=d.classHierarchyData.classCount;let n=p.get(v.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE);(!n||n>t)&&(n=t,p.set(v.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE,n)),e.$broadcast("classCount",t,n)}window.addEventListener("resize",O),window.addEventListener("beforeunload",(function e(){window.removeEventListener("resize",O),window.removeEventListener("beforeunload",e)})),d.$watch("classHierarchyData",(function(){k&&k(),F&&F(),L&&L(),D&&D();var e=C();if(d.classHierarchyData.classCount){O();var t=angular.copy(d.classHierarchyData);var n,r,i=function(e){return m.nodes(e).sort((function(e,t){return e.sortingRank>t.sortingRank?-1:e.sortingRank<t.sortingRank||e.depth>t.depth?1:e.depth<t.depth?-1:0}))}(t);function a(e,t){var i={keepPrevState:!0,noPrefixes:C()};r=i.noPrefixes,z(n||e,i,P,!0),l((function(){p.set(v.CLASS_HIERARCHY_SWITCH_PREFIXES,t),T()}),70)}function o(e,i,o){if(e){p.set(v.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE,e),n={name:h,children:[]};for(var s=new Set,l=1;l<=e;l++)s.add(i[l].id),i[l].parent===i[0]&&n.children.push(i[l]);if(function e(t){if(t.children){for(var n=[],r=0;r<t.children.length;r++)s.has(t.children[r].id)&&n.push($.extend({},t.children[r]));t.children=n;for(r=0;r<t.children.length;r++)e(t.children[r])}}(n),o)r=angular.isUndefined(r)?C():r,z(n,{noPrefixes:r});else a(t)}}var s,c=p.get(v.CLASS_HIERARCHY_CURRENT_SLIDER_VALUE);if(c)o(c,i);else{var u={doFade:!0,keepPrevState:!0,noPrefixes:C()};z(t,u),T()}k=d.$watch("hidePrefixes",(function(n){angular.isUndefined(n)||e?e=void 0:l((function(){!function(e){angular.isUndefined(e)||p.set(v.CLASS_HIERARCHY_HIDE_PREFIXES,e)}(n),a(t,!0)}),50)}),!0),F=d.$watch("currentSliderValue",(function(e){o(e,i,!0)}),!0),D=d.$on("onEnterKeypressSearchAction",(function(e){s&&R(s)})),L=d.$on("searchedClass",(function(e,t){(s=N[t.name])&&R(s)}))}}),!0)}(d)}}}angular.module("graphdb.framework.graphexplore.directives.class",["graphdb.framework.graphexplore.controllers.class","graphdb.framework.utils.localstorageadapter"]).constant("ZOOM_DURATION",500).constant("ROOT_OBJ_NAME","RDF Class Hierarchy").directive("rdfClassHierarchy",l),l.$inject=["$rootScope","$location","GraphDataRestService","$window","$timeout","$repositories","$licenseService","toastr","ZOOM_DURATION","ROOT_OBJ_NAME","LocalStorageAdapter","LSKeys","$translate"]},293:function(e,t,n){var r,i,a;i=[],void 0===(a="function"==typeof(r=function(){return function(){var e=function(){return"n"},t=function(){return[0,0]},n=function(){return" "},r=u(),i=null,a=null,o=null,s=null;function l(e){var t;i="svg"===(t=(t=e).node()).tagName.toLowerCase()?t:t.ownerSVGElement,a=i.createSVGPoint(),document.body.appendChild(r)}l.show=function(){var r=Array.prototype.slice.call(arguments);r[r.length-1]instanceof SVGElement&&(o=r.pop());var i,a=n.apply(this,r),u=t.apply(this,r),h=e.apply(this,r),p=f(),v=d.length,y=document.documentElement.scrollTop||document.body.scrollTop,g=document.documentElement.scrollLeft||document.body.scrollLeft,m=s.apply(this,r);for(p.html(a).style({opacity:1,"pointer-events":"all"});v--;)p.classed(d[v],!1);return i=c.get(h).apply(this),m?p.style(m):p.classed(h,!0).style({top:i.top+u[0]+y+"px",left:i.left+u[1]+g+"px"}),l},l.hide=function(){return f().style({opacity:0,"pointer-events":"none"}),l},l.attr=function(e,t){if(arguments.length<2&&"string"==typeof e)return f().attr(e);var n=Array.prototype.slice.call(arguments);return d3.selection.prototype.attr.apply(f(),n),l},l.style=function(e,t){if(arguments.length<2&&"string"==typeof e)return f().style(e);var n=Array.prototype.slice.call(arguments);return d3.selection.prototype.style.apply(f(),n),l},l.direction=function(t){return arguments.length?(e=null==t?t:d3.functor(t),l):e},l.offset=function(e){return arguments.length?(t=null==e?e:d3.functor(e),l):t},l.html=function(e){return arguments.length?(n=null==e?e:d3.functor(e),l):n},l.customPosition=function(e){return arguments.length?(s=null==e?e:d3.functor(e),l):s},l.destroy=function(){return r&&(f().remove(),r=null),l};var c=d3.map({n:function(){var e=h();return{top:e.n.y-r.offsetHeight,left:e.n.x-r.offsetWidth/2}},s:function(){var e=h();return{top:e.s.y,left:e.s.x-r.offsetWidth/2}},e:function(){var e=h();return{top:e.e.y-r.offsetHeight/2,left:e.e.x}},w:function(){var e=h();return{top:e.w.y-r.offsetHeight/2,left:e.w.x-r.offsetWidth}},nw:function(){var e=h();return{top:e.nw.y-r.offsetHeight,left:e.nw.x-r.offsetWidth}},ne:function(){var e=h();return{top:e.ne.y-r.offsetHeight,left:e.ne.x}},sw:function(){var e=h();return{top:e.sw.y,left:e.sw.x-r.offsetWidth}},se:function(){var e=h();return{top:e.se.y,left:e.e.x}}}),d=c.keys();function u(){var e=d3.select(document.createElement("div"));return e.style({position:"absolute",top:0,opacity:0,"pointer-events":"none","box-sizing":"border-box"}),e.node()}function f(){return null===r&&(r=u(),document.body.appendChild(r)),d3.select(r)}function h(){for(var e=o||d3.event.target;void 0===e.getScreenCTM&&"undefined"===e.parentNode;)e=e.parentNode;var t={},n=e.getScreenCTM(),r=e.getBBox(),i=r.width,s=r.height,l=r.x,c=r.y;return a.x=l,a.y=c,t.nw=a.matrixTransform(n),a.x+=i,t.ne=a.matrixTransform(n),a.y+=s,t.se=a.matrixTransform(n),a.x-=i,t.sw=a.matrixTransform(n),a.y-=s/2,t.w=a.matrixTransform(n),a.x+=i,t.e=a.matrixTransform(n),a.x-=i/2,a.y-=s/2,t.n=a.matrixTransform(n),a.y+=s,t.s=a.matrixTransform(n),t}return l}})?r.apply(t,i):r)||(e.exports=a)},296:function(e,t,n){"use strict";var r=r||{};r.Text=function(){function e(e,t,n,r){n=n||10;var i=t/3;return"string"==typeof e?(i*=10/(e.substring(0,t/3).length+1.5),i+=1,e.match(/[\u0900-\u0DFF\u1100-\u11FF\u2E80-\u2EFF\u3000-\u9FFF]/)&&(i*=.6),i<n&&(i=n),Math.round(i)):(i<n&&(i=n),Math.round(i))}return{calcFontSizeRaw:e,calcFontSize:function(t,n,r,i){return e(t,n,r)+"px"},getTextWithElipsisIfNeeded:function(e,t){return"string"==typeof e&&e.length>t?e.substring(0,t-3)+"...":e}}}(),r.Transition={fadeIn:function(e,t){e.style("opacity",0).transition().duration(t).style("opacity",1)},fadeOut:function(e,t){e.style("opacity",1).transition().duration(t).style("opacity",0)}},r.Click={delayDblClick:function(){var e=d3.dispatch("click","dblclick");return d3.rebind((function(t){var n,r=null;t.on("mousedown",(function(){n=d3.mouse(document.body),new Date})),t.on("mouseup",(function(t){var i,a;i=n,a=d3.mouse(document.body),Math.sqrt(Math.pow(i[0]-a[0],2),Math.pow(i[1]-a[1],2))>5||(r?(window.clearTimeout(r),r=null,e.dblclick(t)):r=window.setTimeout((d3.event,function(){e.click(t),r=null}),250))}))}),e,"on")}},t.a=r},297:function(e,t,n){"use strict";var r=r||{};r.Export={getCSSRules:function(e){var t=$('link[href="'+e+'"]')[0].sheet.rules,n="";return _.each(t,(function(e){n+=e.cssText})),n},generateBase64ImageSource:function(){var e=d3.selectAll("svg").attr({version:"1.1",xmlns:"http://www.w3.org/2000/svg"}).node().parentNode.innerHTML;return"data:image/svg+xml;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(e)))}},t.a=r},304:function(e,t,n){"use strict";var r=r||{};r.SingleChild={addPlaceholders:function e(t,n){if(t.children){for(var r=0;r<t.children.length;r++)e(t.children[r]);if(1===t.children.length){var i=1.2*t.size;n&&(i=.1*t.children[0].size),t.children.push({name:"placeholder",size:i})}}},removePlaceholders:function e(t){for(var n=t.length-1;n>=0;n--){var r=t[n];"placeholder"===r.name?t.splice(n,1):r.children&&e(r.children)}},centerNodes:function(e){for(var t=0;t<e.length;t++){var n=e[t];if(n.children&&1===n.children.length){var r=n.x-n.children[0].x;n.children[0].x+=r,i(n.children[0],r)}}function i(e,t){if(e.children)for(var n=0;n<e.children.length;n++)e.children[n].x+=t,i(e.children[n],t)}},makePositionsRelativeToZero:function(e){for(var t=e[0].x,n=e[0].y,r=0;r<e.length;r++){var i=e[r];i.x-=t,i.y-=n}}},t.a=r}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[23,61,127,128,143],{122:function(e,r){function t(e,r,t,o){return{restrict:"E",scope:!0,templateUrl:"js/angular/repositories/templates/fedx-repo.html",link:function(n){const s="ResolvableRepository";n.fedxMembers=[],n.knownRepos=[],n.allAttachedRepos=[],n.editRepoPage&&(n.fedxMembers=n.repositoryInfo.params.member.value.slice());function i(){for(const e of n.fedxMembers)n.knownRepos=n.knownRepos.filter((function(r){return e.repositoryServer?r.id!==e.repositoryName||r.location!==e.repositoryServer:r.id!==e.repositoryName||!r.local}))}function a(){r.getRepositories(n.repositoryInfo.location).success((function(e){let r=[];_.values(e).forEach(e=>{r.push.apply(r,e)}),n.allAttachedRepos=_.cloneDeep(r)})).error((function(e){const r=getError(e);t.error(r,o.instant("common.error"))})).then((function(){n.knownRepos=n.allAttachedRepos.slice(),i()}))}n.setWritableRepo=function(e){let r=n.fedxMembers.find(e=>"true"===e.writable);r&&((r.store!==s||e.store===s&&r.repositoryName===e.repositoryName)&&("RemoteRepository"!==r.store||"RemoteRepository"===e.store&&r.repositoryName===e.repositoryName&&r.repositoryServer===e.repositoryServer)||(r.writable="false")),e.writable=JSON.stringify("false"===e.writable)},n.getActiveClass=function(e){return"true"===e.writable?" active":""},n.checkIfRepoExist=function(e){return!n.allAttachedRepos.length||(e.store===s?n.allAttachedRepos.find(r=>r.id===e.repositoryName&&!r.location):"RemoteRepository"!==e.store||n.allAttachedRepos.find(r=>r.id===e.repositoryName&&r.location===e.repositoryServer))},n.getRepositoryServer=function(e){return e.local?"Local":e.location};const c=setInterval((function(){a()}),5e3);function l(e){n.fedxMembers.push(e),n.repositoryInfo.params.member.value=n.fedxMembers}function p(e){return"/"===e.slice(-1)?e.slice(0,-1):e}function d(){return n.editRepoPage&&!n.editRepoPage||!n.model.editMode}n.$on("$destroy",(function(){clearInterval(c)})),n.addMember=function(e){let r;r="Local"===n.getRepositoryServer(e)?{store:s,repositoryName:e.id,repoType:e.type,respectRights:"true",writable:"false"}:{store:"RemoteRepository",repositoryName:e.id,repositoryServer:e.location,username:"",password:"",supportsASKQueries:"true",writable:"false"},n.knownRepos=n.knownRepos.filter(r=>r.id!==e.id||r.location!==e.location),l(r)},n.removeMember=function(e){e.store&&e.store===s?(n.fedxMembers=n.fedxMembers.filter(r=>r.store!==e.store||r.repositoryName!==e.repositoryName&&!r.repositoryServer),a()):e.store&&"SPARQLEndpoint"===e.store?n.fedxMembers=n.fedxMembers.filter(r=>r.endpoint!==e.endpoint):e.store&&"NativeStore"===e.store?n.fedxMembers=n.fedxMembers.filter(r=>r.repositoryLocation!==e.repositoryLocation):e.store&&"RemoteRepository"===e.store&&(n.fedxMembers=n.fedxMembers.filter(r=>r.store!==e.store||r.repositoryName!==e.repositoryName||r.repositoryServer!==e.repositoryServer),a()),n.repositoryInfo.params.member.value=n.fedxMembers},n.addRemoteMember=function(){n.mode="remote",n.model={editMode:!1,store:"RemoteRepository",repositoryName:"",repositoryServer:"",sparqlEndpoint:"",username:"",password:"",supportsASKQueries:"true",writable:"false"},n.$uibModalInstance=e.open({templateUrl:"js/angular/templates/modal/add-fedx-remote-repo.html",scope:n})},n.getMemberIcon=function(e){return e.repoType?"icon-repo-"+e.repoType:"NativeStore"===e.store?"icon-warning":"icon-link"},n.editFedXRepository=function(r){r.store===s?(n.mode="local",n.model={editMode:!0,store:r.store,respectRights:r.respectRights,repositoryName:r.repositoryName,repoType:r.repoType,writable:r.writable}):(n.mode="remote",n.model={editMode:!0,store:r.store,repositoryName:r.repositoryName,repositoryServer:r.repositoryServer,sparqlEndpoint:"SPARQLEndpoint"===r.store?r.endpoint:r.repositoryLocation,username:r.username,password:r.password,supportsASKQueries:r.supportsASKQueries,writable:r.writable}),n.$uibModalInstance=e.open({templateUrl:"js/angular/templates/modal/add-fedx-remote-repo.html",scope:n})},n.resolveName=function(e){switch(e.store){case s:return e.repositoryName;case"RemoteRepository":return e.repositoryName+"@"+e.repositoryServer;case"SPARQLEndpoint":return e.endpoint;case"NativeStore":return e.repositoryLocation;default:return""}},n.cancel=function(){n.$uibModalInstance.dismiss("cancel")},n.ok=function(){let e;if(n.model.repositoryName&&n.model.store===s)e={store:s,repositoryName:n.model.repositoryName,repoType:n.model.repoType,respectRights:n.model.respectRights,writable:n.model.writable},n.fedxMembers=n.fedxMembers.filter(r=>r.repositoryName!==e.repositoryName||r.store!==e.store);else if(n.model.repositoryName&&"RemoteRepository"===n.model.store){if(e={store:"RemoteRepository",repositoryName:n.model.repositoryName,repositoryServer:p(n.model.repositoryServer),username:n.model.username,password:n.model.password,writable:n.model.writable},d()&&n.fedxMembers.find(r=>r.repositoryName===e.repositoryName&&r.repositoryServer===e.repositoryServer)){let r=n.resolveName(e);return t.error(o.instant("fedx.repo.already.added.member.error",{name:r})),void n.$uibModalInstance.close()}n.fedxMembers=n.fedxMembers.filter(r=>r.repositoryName!==e.repositoryName||r.repositoryServer!==e.repositoryServer)}else{if(e={store:"SPARQLEndpoint",endpoint:p(n.model.sparqlEndpoint),username:n.model.username,password:n.model.password,supportsASKQueries:n.model.supportsASKQueries,writable:n.model.writable},d()&&n.fedxMembers.find(r=>r.endpoint===e.endpoint)){let r=n.resolveName(e);return t.error(o.instant("fedx.repo.already.added.sparql.endpoint.error",{name:r})),void n.$uibModalInstance.close()}n.fedxMembers=n.fedxMembers.filter(r=>r.endpoint!==e.endpoint)}l(e),i(),n.$uibModalInstance.close()},n.$on("changedLocation",(function(){n.fedxMembers=[],a()})),a()}}}angular.module("graphdb.framework.repositories.fedx-repo.directive",[]).directive("fedxRepo",t),t.$inject=["$uibModal","RepositoriesRestService","toastr","$translate"]},123:function(e,r,t){"use strict";t.r(r);t(6),t(22),t(13),t(85),t(32),t(33),t(23),t(51),t(52);function o(e){e.interceptors.push("$unauthorizedInterceptor"),e.interceptors.push("$authenticationInterceptor")}function n(e,r,t){e.$on("$locationChangeStart",(function(){t.isLicenseHardcoded&&"/license/register"===r.url()&&r.path("license")}))}angular.module("graphdb.framework.settings",["toastr","ui.bootstrap","graphdb.framework.rest.license.service","graphdb.framework.settings.controllers","graphdb.framework.core.interceptors.unauthorized","graphdb.framework.core.interceptors.authentication","graphdb.framework.core.services.jwtauth"]).config(o).run(n),o.$inject=["$httpProvider","$routeProvider"],n.$inject=["$rootScope","$location","$licenseService"]},129:function(e,r,t){"use strict";t.r(r);var o=t(82);const n={OBDA:"obdaFile",OWL:"owlFile",CONSTRAINT:"constraintFile",LENSES:"lensesFile",DB_METADATA:"dbMetadataFile"};class s{constructor(e="generic"){this.driverType=e,this.hostName="",this.port=void 0,this.databaseName="",this.username="",this.password="",this.driverClass="",this.url="",this.urlUserInput=""}}class i{constructor(e,r=!1){this.type=e,this.fileName="",this.loading=!1,this.required=r}}class a extends Error{}const c="generic",l="dremio",p="databricks",d="snowflake";class m{constructor(){this.classAvailable=!1,this.downloadDriverUrl="",this.driverClass="",this.driverName="",this.driverType="",this.portRequired=!1,this.urlTemplate=""}static isGenericDriver(e){return e===c}static isSnowflakeDriver(e){return e===d}}function f(e,r,t,f,u){return{restrict:"E",scope:!1,templateUrl:"js/angular/repositories/templates/ontop-repo.html",link:function(v){v.isGenericDriver=!0,v.defaultUrlTemplate="jdbc:database://localhost:port/database_name",v.ontopProperiesLink="https://ontop-vkg.org/guide/advanced/configuration.html",v.ontopFileType=n,v.selectedDriver=new m,v.supportedDriversData=[],v.formData={connectionInformation:new s,settings:{additionalProperties:"",ontopFiles:[]}},v.selectDriver=e=>{v.selectedDriver=v.supportedDriversData.find(r=>r.driverType===e),v.isGenericDriver=m.isGenericDriver(v.selectedDriver.driverType),v.editRepoPage&&v.currentOntopRepoInfo&&v.currentOntopRepoInfo.connectionInformation.driverType===e?v.formData=angular.copy(v.currentOntopRepoInfo):(L(),v.formData.connectionInformation.driverType=v.selectedDriver.driverType),v.formData.connectionInformation.driverClass=v.selectedDriver.driverClass,v.updateUrl()},v.getOntopFileInfo=e=>v.formData.settings.ontopFiles.find(r=>e===r.type),v.getHostNameLabel=()=>{const e=m.isSnowflakeDriver(v.selectedDriver.driverType)?"ontop.repo.database.snowflake.host_name":"ontop.repo.database.host_name";return u.instant(e)+"*"},v.getDatabaseNameLabel=()=>{let e="";switch(v.selectedDriver.driverType){case d:e="ontop.repo.database.warehouse.database_name";break;case p:e="ontop.repo.database.http_path.database_name";break;case l:e="ontop.repo.database.schema.database_name";break;default:e="ontop.repo.database.database_name"}return u.instant(e)},v.updateUrl=()=>{const e=y()||"";v.formData.connectionInformation.url=e+v.formData.connectionInformation.urlUserInput},v.isTestConnectionDisabled=()=>{const e=v.formData.connectionInformation,r=v.selectedDriver;return!(e.driverClass&&e.url&&(!r.portRequired||e.port))||!(m.isGenericDriver(r.driverType)||e.hostName&&e.databaseName)},v.testConnection=()=>{I().then(T).then(R).then(S).then(k).then(D).then(()=>r.validateOntopPropertiesConnection(v.repositoryInfo)).then(()=>t.success(u.instant("ontop.repo.successful.connection.msg"))).catch(e=>{e instanceof a?t.error(e.message):N(u.instant("ontop.repo.failed.to.connect"),e)})},v.editFile=t=>{const n=v.repositoryInfo.params[t.type].label,s=u.instant("update.file.edit.content.header",{fileName:n});e.open({templateUrl:"js/angular/templates/modal/editRepoFile.html",controller:"EditRepositoryFileCtrl",windowClass:"update-ontop-repo-dialog",resolve:{file:()=>{const e=v.repositoryInfo.params[t.type];return e?e.value:""},dialogTitle:()=>s}}).result.then(e=>{r.updateRepositoryFileContent(e.fileLocation,e.content,v.repositoryInfo.location).success(e=>{t.fileName=Object(o.getFileName)(e.fileLocation),v.repositoryInfo.params[t.type].value=e.fileLocation}).error(e=>{N(u.instant("common.error"),e)})})},v.uploadOntopFile=(e,r)=>{if(e&&e.length){const o=e[0];r.loading=!0;const n={url:"rest/repositories/file/upload",data:{file:o,location:v.repositoryInfo.location}};f.upload(n).success(e=>{e.success?(r.fileName=o.name,v.repositoryInfo.params[r.type].value=e.fileLocation):t.error(e.errorMessage)}).error(e=>{N(u.instant("common.error"),e),v.uploadFile=""}).finally(()=>{r.loading=!1})}},v.updateOntopRepo=()=>{const e=v.editRepoPage?v.editRepository:v.createRepo;$().then(I).then(T).then(R).then(S).then(k).then(M).then(D).then(e).catch(e=>{e instanceof a?t.error(e.message):console.log(e)})},v.onKeyDownInUrlInput=e=>{const r=e.keyCode;if(37===r||39===r||36===r||35===r)return;const t=y();if(!t)return;const o=e.ctrlKey||e.metaKey;if(o&&65===r||o&&67===r)return;const n=e.target.selectionStart;8===r&&n-1<t.length&&(e.preventDefault(),e.stopPropagation()),n<t.length&&(e.preventDefault(),e.stopPropagation())},v.onKeyUpInUrlInput=()=>{g()};const g=()=>{const e=y();e&&v.formData.connectionInformation.url.startsWith(e)?v.formData.connectionInformation.urlUserInput=v.formData.connectionInformation.url.substring(e.length):v.formData.connectionInformation.urlUserInput=v.formData.connectionInformation.url},y=()=>m.isSnowflakeDriver(v.selectedDriver.driverType)?h():b(),h=()=>{let e=v.selectedDriver.urlTemplate;const r=v.formData.connectionInformation;return r.hostName&&(e=e.replace("{identifier}",r.hostName)),r.port&&(e=e.replace(".snowflakecomputing.com/?",`.snowflakecomputing.com:${r.port}/?`)),r.databaseName&&(e=e.replace("{database}",r.databaseName)),e},b=()=>{let e=v.selectedDriver.urlTemplate;const r=v.formData.connectionInformation;return r.hostName&&(e=r.port?e.replace("{hostport}",`${r.hostName}:${r.port}`):e.replace("{hostport}",""+r.hostName)),r.databaseName&&(e=e.replace("{database}",r.databaseName)),e},w=e=>{v.formData.settings.ontopFiles.forEach(r=>{r.loading=e})},D=()=>{w(!0);const e=v.formData.connectionInformation,t={hostName:e.hostName,port:e.port,databaseName:e.databaseName,userName:e.username,password:e.password,driverClass:e.driverClass,url:e.url,additionalProperties:v.formData.settings.additionalProperties};return r.updatePropertiesFile(v.repositoryInfo.params.propertiesFile.value,t,v.repositoryInfo.location,v.selectedDriver.driverType).success(e=>{v.repositoryInfo.params.propertiesFile.value=e.fileLocation}).error(e=>{N(u.instant("common.error"),e)}).finally(()=>w(!1))},N=(e,r)=>{const o=getError(r);t.error(o,e)},I=()=>m.isGenericDriver(v.selectedDriver.driverType)||v.formData.connectionInformation.hostName?Promise.resolve():Promise.reject(new a(u.instant("missing.required.field",{fieldName:u.instant("ontop.repo.database.host_name")}))),R=()=>m.isGenericDriver(v.selectedDriver.driverType)||v.formData.connectionInformation.databaseName?Promise.resolve():Promise.reject(new a(u.instant("missing.required.field",{fieldName:u.instant("ontop.repo.database.database_name")}))),S=()=>v.formData.connectionInformation.driverClass?Promise.resolve():Promise.reject(new a(u.instant("missing.required.field",{fieldName:u.instant("ontop.repo.database.driver_class")}))),k=()=>v.formData.connectionInformation.url?Promise.resolve():Promise.reject(new a(u.instant("missing.required.field",{fieldName:u.instant("ontop.repo.database.url")}))),$=()=>v.repositoryInfo.id?Promise.resolve():Promise.reject(new a(u.instant("empty.repoid.warning"))),M=()=>v.getOntopFileInfo(n.OBDA).fileName?Promise.resolve():Promise.reject(new a(u.instant("ontop.repo.missing.required.file",{fileName:v.repositoryInfo.params[n.OBDA].label}))),T=()=>v.selectedDriver.portRequired&&!v.formData.connectionInformation.port?Promise.reject(new a(u.instant("missing.required.field",{fieldName:u.instant("ontop.repo.database.port")}))):Promise.resolve(),L=()=>{v.formData={connectionInformation:new s,settings:{additionalProperties:"",ontopFiles:[]}},Object.values(n).forEach(e=>{const r=new i(e);v.formData.settings.ontopFiles.push(r)}),v.getOntopFileInfo(n.OBDA).required=!0};r.getSupportedDriversData(v.repositoryInfo).success(e=>{v.supportedDriversData=e}).error(e=>{N(u.instant("common.error"),e)}).then(()=>{v.editRepoPage?(w(!0),r.loadPropertiesFile(v.repositoryInfo.params.propertiesFile.value,v.repositoryInfo.location,v.selectedDriver.driverType).success(e=>{let r=v.supportedDriversData.find(r=>r.driverClass===e.driverClass);r&&e.hostName||(r=v.supportedDriversData.find(e=>m.isGenericDriver(e.driverType))),v.selectDriver(r.driverType),v.formData.connectionInformation.driverType=r.driverType,v.formData.connectionInformation.driverClass=e.driverClass,v.formData.connectionInformation.password=e.password,v.formData.connectionInformation.username=e.userName,v.formData.connectionInformation.url=e.url,v.formData.settings.additionalProperties=e.additionalProperties,m.isGenericDriver(r.driverType)||(v.formData.connectionInformation.hostName=e.hostName,v.formData.connectionInformation.databaseName=e.databaseName,v.formData.connectionInformation.port=e.port?parseInt(e.port,10):void 0),g(),v.updateUrl(),Object.values(n).forEach(e=>{const r=v.repositoryInfo.params[e],t=v.getOntopFileInfo(e);r&&(t.fileName=Object(o.getFileName)(r.value))}),v.currentOntopRepoInfo=angular.copy(v.formData)}).error(e=>{N(u.instant("common.error"),e)}).finally(()=>{w(!1)})):v.selectDriver(c)})}}}angular.module("graphdb.framework.repositories.ontop-repo.directive",[]).directive("ontopRepo",f),f.$inject=["$uibModal","RepositoriesRestService","toastr","Upload","$translate"]},185:function(e,r,t){"use strict";t.r(r);t(6),t(22),t(28),t(82),t(129),t(122),t(21),t(123),t(51),t(52);angular.module("graphdb.framework.repositories",["ui.bootstrap","toastr","ngCookies","ngRoute","graphdb.framework.repositories.controllers","graphdb.framework.repositories.ontop-repo.directive","graphdb.framework.repositories.fedx-repo.directive","graphdb.framework.core.services.repositories","graphdb.framework.core.directives","graphdb.framework.core.controllers","graphdb.framework.settings"])},85:function(e,r,t){"use strict";t.r(r);t(6),t(23);function o(e,r,t,o,n){e.supportsStatistics=!0,e.settings={statistics:!1},e.getSettings=function(){e.loader=!0,o.getStatistics().then((function(r){e.settings.statistics="true"===r.data,e.supportsStatistics=!0}),(function(t){if(404===t.status)e.supportsStatistics=!1;else{const e=getError(t.data);r.error(e,n.instant("error.getting.settings"))}}))},e.getSettings(),e.setSettings=function(){e.loader=!0,o.toggleStatistics(e.settings.statistics).then((function(){t.close(),r.success(n.instant("saving.settings.success"))}),(function(e){const t=getError(e.data);r.error(t,n.instant("saving.settings.error"))}))},e.submitForm=function(){e.setSettings()},e.cancel=function(){t.dismiss("cancel")}}function n(e,r,t,o,n,s,i){e.loadingLicense=function(){return t.loadingLicense},t.checkLicenseStatus(),e.revertToFree=function(){s.openSimpleModal({title:i.instant("confirm.operation"),message:i.instant("revert.to.free.warning.msg"),warning:!0}).result.then((function(){r.unregisterLicense().success((function(){t.checkLicenseStatus()}))}))}}function s(e,r,t,o,n,s,i,a){e.$on("securityInit",(function(){i.isAdmin()||t.path("/license")})),e.sendLicenseToValidateAndActivate=l;const c=$(".license-textarea");function l(e){r.sendLicenseToValidate(e).success((function(t){"Invalid"!==t.licensee?(c.val(e),function(e,t){o.open({templateUrl:"js/angular/settings/modal/validate-license.html",controller:"ValidateLicenseModalCtrl",size:"lg",resolve:{license:function(){return e}}}).result.then((function(){!function(e){e||(e=c.val());if(e){const t=atob(e.replace(/\s/g,""));r.registerLicense(t).success((function(){s.history.back()})).error((function(){n.error(a.instant("license.register.error"))}))}else n.error(a.instant("no.license.code.error"))}(t)}))}(t,e)):(c.val(""),n.error(t.message))})).error((function(){n.error(a.instant("invalid.license"))}))}e.$watch("currentFile",(function(){if(e.currentFile){const t=e.currentFile;r.extractFromLicenseFile(t).success((function(e){l(e)})).error((function(){n.error(a.instant("could.not.upload.file.error"))}))}})),e.getBackToPreviousPage=function(){s.history.back()}}function i(e,r,t){e.ok=function(){r.close()},e.cancel=function(){r.dismiss("cancel")},e.license=t}function a(e){e.loader=!0,e.setLoader=function(r){e.loader=r}}angular.module("graphdb.framework.settings.controllers",["ngCookies","ui.bootstrap","graphdb.framework.core.services.jwtauth","toastr"]).controller("ActiveLocationSettingsCtrl",o).controller("ValidateLicenseModalCtrl",i).controller("LicenseCtrl",n).controller("RegisterLicenseCtrl",s).controller("LoaderSamplesCtrl",a),o.$inject=["$scope","toastr","$uibModalInstance","LicenseRestService","$translate"],n.$inject=["$scope","LicenseRestService","$licenseService","toastr","$rootScope","ModalService","$translate"],s.$inject=["$scope","LicenseRestService","$location","$uibModal","toastr","$window","$jwtAuth","$translate"],i.$inject=["$scope","$uibModalInstance","license"],a.$inject=["$scope"]}}]);
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[23,61,127,128,143],{122:function(e,r){function t(e,r,t,o){return{restrict:"E",scope:!0,templateUrl:"js/angular/repositories/templates/fedx-repo.html",link:function(n){const s="ResolvableRepository";n.fedxMembers=[],n.knownRepos=[],n.allAttachedRepos=[],n.editRepoPage&&(n.fedxMembers=n.repositoryInfo.params.member.value.slice());function i(){for(const e of n.fedxMembers)n.knownRepos=n.knownRepos.filter((function(r){return e.repositoryServer?r.id!==e.repositoryName||r.location!==e.repositoryServer:r.id!==e.repositoryName||!r.local}))}function a(){r.getRepositories(n.repositoryInfo.location).success((function(e){let r=[];_.values(e).forEach(e=>{r.push.apply(r,e)}),n.allAttachedRepos=_.cloneDeep(r)})).error((function(e){const r=getError(e);t.error(r,o.instant("common.error"))})).then((function(){n.knownRepos=n.allAttachedRepos.slice(),i()}))}n.setWritableRepo=function(e){let r=n.fedxMembers.find(e=>"true"===e.writable);r&&((r.store!==s||e.store===s&&r.repositoryName===e.repositoryName)&&("RemoteRepository"!==r.store||"RemoteRepository"===e.store&&r.repositoryName===e.repositoryName&&r.repositoryServer===e.repositoryServer)||(r.writable="false")),e.writable=JSON.stringify("false"===e.writable)},n.getActiveClass=function(e){return"true"===e.writable?" active":""},n.checkIfRepoExist=function(e){return!n.allAttachedRepos.length||(e.store===s?n.allAttachedRepos.find(r=>r.id===e.repositoryName&&!r.location):"RemoteRepository"!==e.store||n.allAttachedRepos.find(r=>r.id===e.repositoryName&&r.location===e.repositoryServer))},n.getRepositoryServer=function(e){return e.local?"Local":e.location};const c=setInterval((function(){a()}),5e3);function l(e){n.fedxMembers.push(e),n.repositoryInfo.params.member.value=n.fedxMembers}function p(e){return"/"===e.slice(-1)?e.slice(0,-1):e}function d(){return n.editRepoPage&&!n.editRepoPage||!n.model.editMode}n.$on("$destroy",(function(){clearInterval(c)})),n.addMember=function(e){let r;r="Local"===n.getRepositoryServer(e)?{store:s,repositoryName:e.id,repoType:e.type,respectRights:"true",writable:"false"}:{store:"RemoteRepository",repositoryName:e.id,repositoryServer:e.location,username:"",password:"",supportsASKQueries:"true",writable:"false"},n.knownRepos=n.knownRepos.filter(r=>r.id!==e.id||r.location!==e.location),l(r)},n.removeMember=function(e){e.store&&e.store===s?(n.fedxMembers=n.fedxMembers.filter(r=>r.store!==e.store||r.repositoryName!==e.repositoryName&&!r.repositoryServer),a()):e.store&&"SPARQLEndpoint"===e.store?n.fedxMembers=n.fedxMembers.filter(r=>r.endpoint!==e.endpoint):e.store&&"NativeStore"===e.store?n.fedxMembers=n.fedxMembers.filter(r=>r.repositoryLocation!==e.repositoryLocation):e.store&&"RemoteRepository"===e.store&&(n.fedxMembers=n.fedxMembers.filter(r=>r.store!==e.store||r.repositoryName!==e.repositoryName||r.repositoryServer!==e.repositoryServer),a()),n.repositoryInfo.params.member.value=n.fedxMembers},n.addRemoteMember=function(){n.mode="remote",n.model={editMode:!1,store:"RemoteRepository",repositoryName:"",repositoryServer:"",sparqlEndpoint:"",username:"",password:"",supportsASKQueries:"true",writable:"false"},n.$uibModalInstance=e.open({templateUrl:"js/angular/templates/modal/add-fedx-remote-repo.html",scope:n})},n.getMemberIcon=function(e){return e.repoType?"icon-repo-"+e.repoType:"NativeStore"===e.store?"icon-warning":"icon-link"},n.editFedXRepository=function(r){r.store===s?(n.mode="local",n.model={editMode:!0,store:r.store,respectRights:r.respectRights,repositoryName:r.repositoryName,repoType:r.repoType,writable:r.writable}):(n.mode="remote",n.model={editMode:!0,store:r.store,repositoryName:r.repositoryName,repositoryServer:r.repositoryServer,sparqlEndpoint:"SPARQLEndpoint"===r.store?r.endpoint:r.repositoryLocation,username:r.username,password:r.password,supportsASKQueries:r.supportsASKQueries,writable:r.writable}),n.$uibModalInstance=e.open({templateUrl:"js/angular/templates/modal/add-fedx-remote-repo.html",scope:n})},n.resolveName=function(e){switch(e.store){case s:return e.repositoryName;case"RemoteRepository":return e.repositoryName+"@"+e.repositoryServer;case"SPARQLEndpoint":return e.endpoint;case"NativeStore":return e.repositoryLocation;default:return""}},n.cancel=function(){n.$uibModalInstance.dismiss("cancel")},n.ok=function(){let e;if(n.model.repositoryName&&n.model.store===s)e={store:s,repositoryName:n.model.repositoryName,repoType:n.model.repoType,respectRights:n.model.respectRights,writable:n.model.writable},n.fedxMembers=n.fedxMembers.filter(r=>r.repositoryName!==e.repositoryName||r.store!==e.store);else if(n.model.repositoryName&&"RemoteRepository"===n.model.store){if(e={store:"RemoteRepository",repositoryName:n.model.repositoryName,repositoryServer:p(n.model.repositoryServer),username:n.model.username,password:n.model.password,writable:n.model.writable},d()&&n.fedxMembers.find(r=>r.repositoryName===e.repositoryName&&r.repositoryServer===e.repositoryServer)){let r=n.resolveName(e);return t.error(o.instant("fedx.repo.already.added.member.error",{name:r})),void n.$uibModalInstance.close()}n.fedxMembers=n.fedxMembers.filter(r=>r.repositoryName!==e.repositoryName||r.repositoryServer!==e.repositoryServer)}else{if(e={store:"SPARQLEndpoint",endpoint:p(n.model.sparqlEndpoint),username:n.model.username,password:n.model.password,supportsASKQueries:n.model.supportsASKQueries,writable:n.model.writable},d()&&n.fedxMembers.find(r=>r.endpoint===e.endpoint)){let r=n.resolveName(e);return t.error(o.instant("fedx.repo.already.added.sparql.endpoint.error",{name:r})),void n.$uibModalInstance.close()}n.fedxMembers=n.fedxMembers.filter(r=>r.endpoint!==e.endpoint)}l(e),i(),n.$uibModalInstance.close()},n.$on("changedLocation",(function(){n.fedxMembers=[],a()})),a()}}}angular.module("graphdb.framework.repositories.fedx-repo.directive",[]).directive("fedxRepo",t),t.$inject=["$uibModal","RepositoriesRestService","toastr","$translate"]},123:function(e,r,t){"use strict";t.r(r);t(6),t(22),t(13),t(86),t(32),t(33),t(23),t(51),t(52);function o(e){e.interceptors.push("$unauthorizedInterceptor"),e.interceptors.push("$authenticationInterceptor")}function n(e,r,t){e.$on("$locationChangeStart",(function(){t.isLicenseHardcoded&&"/license/register"===r.url()&&r.path("license")}))}angular.module("graphdb.framework.settings",["toastr","ui.bootstrap","graphdb.framework.rest.license.service","graphdb.framework.settings.controllers","graphdb.framework.core.interceptors.unauthorized","graphdb.framework.core.interceptors.authentication","graphdb.framework.core.services.jwtauth"]).config(o).run(n),o.$inject=["$httpProvider","$routeProvider"],n.$inject=["$rootScope","$location","$licenseService"]},129:function(e,r,t){"use strict";t.r(r);var o=t(83);const n={OBDA:"obdaFile",OWL:"owlFile",CONSTRAINT:"constraintFile",LENSES:"lensesFile",DB_METADATA:"dbMetadataFile"};class s{constructor(e="generic"){this.driverType=e,this.hostName="",this.port=void 0,this.databaseName="",this.username="",this.password="",this.driverClass="",this.url="",this.urlUserInput=""}}class i{constructor(e,r=!1){this.type=e,this.fileName="",this.loading=!1,this.required=r}}class a extends Error{}const c="generic",l="dremio",p="databricks",d="snowflake";class m{constructor(){this.classAvailable=!1,this.downloadDriverUrl="",this.driverClass="",this.driverName="",this.driverType="",this.portRequired=!1,this.urlTemplate=""}static isGenericDriver(e){return e===c}static isSnowflakeDriver(e){return e===d}}function f(e,r,t,f,u){return{restrict:"E",scope:!1,templateUrl:"js/angular/repositories/templates/ontop-repo.html",link:function(v){v.isGenericDriver=!0,v.defaultUrlTemplate="jdbc:database://localhost:port/database_name",v.ontopProperiesLink="https://ontop-vkg.org/guide/advanced/configuration.html",v.ontopFileType=n,v.selectedDriver=new m,v.supportedDriversData=[],v.formData={connectionInformation:new s,settings:{additionalProperties:"",ontopFiles:[]}},v.selectDriver=e=>{v.selectedDriver=v.supportedDriversData.find(r=>r.driverType===e),v.isGenericDriver=m.isGenericDriver(v.selectedDriver.driverType),v.editRepoPage&&v.currentOntopRepoInfo&&v.currentOntopRepoInfo.connectionInformation.driverType===e?v.formData=angular.copy(v.currentOntopRepoInfo):(L(),v.formData.connectionInformation.driverType=v.selectedDriver.driverType),v.formData.connectionInformation.driverClass=v.selectedDriver.driverClass,v.updateUrl()},v.getOntopFileInfo=e=>v.formData.settings.ontopFiles.find(r=>e===r.type),v.getHostNameLabel=()=>{const e=m.isSnowflakeDriver(v.selectedDriver.driverType)?"ontop.repo.database.snowflake.host_name":"ontop.repo.database.host_name";return u.instant(e)+"*"},v.getDatabaseNameLabel=()=>{let e="";switch(v.selectedDriver.driverType){case d:e="ontop.repo.database.warehouse.database_name";break;case p:e="ontop.repo.database.http_path.database_name";break;case l:e="ontop.repo.database.schema.database_name";break;default:e="ontop.repo.database.database_name"}return u.instant(e)},v.updateUrl=()=>{const e=y()||"";v.formData.connectionInformation.url=e+v.formData.connectionInformation.urlUserInput},v.isTestConnectionDisabled=()=>{const e=v.formData.connectionInformation,r=v.selectedDriver;return!(e.driverClass&&e.url&&(!r.portRequired||e.port))||!(m.isGenericDriver(r.driverType)||e.hostName&&e.databaseName)},v.testConnection=()=>{I().then(T).then(R).then(S).then(k).then(D).then(()=>r.validateOntopPropertiesConnection(v.repositoryInfo)).then(()=>t.success(u.instant("ontop.repo.successful.connection.msg"))).catch(e=>{e instanceof a?t.error(e.message):N(u.instant("ontop.repo.failed.to.connect"),e)})},v.editFile=t=>{const n=v.repositoryInfo.params[t.type].label,s=u.instant("update.file.edit.content.header",{fileName:n});e.open({templateUrl:"js/angular/templates/modal/editRepoFile.html",controller:"EditRepositoryFileCtrl",windowClass:"update-ontop-repo-dialog",resolve:{file:()=>{const e=v.repositoryInfo.params[t.type];return e?e.value:""},dialogTitle:()=>s}}).result.then(e=>{r.updateRepositoryFileContent(e.fileLocation,e.content,v.repositoryInfo.location).success(e=>{t.fileName=Object(o.getFileName)(e.fileLocation),v.repositoryInfo.params[t.type].value=e.fileLocation}).error(e=>{N(u.instant("common.error"),e)})})},v.uploadOntopFile=(e,r)=>{if(e&&e.length){const o=e[0];r.loading=!0;const n={url:"rest/repositories/file/upload",data:{file:o,location:v.repositoryInfo.location}};f.upload(n).success(e=>{e.success?(r.fileName=o.name,v.repositoryInfo.params[r.type].value=e.fileLocation):t.error(e.errorMessage)}).error(e=>{N(u.instant("common.error"),e),v.uploadFile=""}).finally(()=>{r.loading=!1})}},v.updateOntopRepo=()=>{const e=v.editRepoPage?v.editRepository:v.createRepo;$().then(I).then(T).then(R).then(S).then(k).then(M).then(D).then(e).catch(e=>{e instanceof a?t.error(e.message):console.log(e)})},v.onKeyDownInUrlInput=e=>{const r=e.keyCode;if(37===r||39===r||36===r||35===r)return;const t=y();if(!t)return;const o=e.ctrlKey||e.metaKey;if(o&&65===r||o&&67===r)return;const n=e.target.selectionStart;8===r&&n-1<t.length&&(e.preventDefault(),e.stopPropagation()),n<t.length&&(e.preventDefault(),e.stopPropagation())},v.onKeyUpInUrlInput=()=>{g()};const g=()=>{const e=y();e&&v.formData.connectionInformation.url.startsWith(e)?v.formData.connectionInformation.urlUserInput=v.formData.connectionInformation.url.substring(e.length):v.formData.connectionInformation.urlUserInput=v.formData.connectionInformation.url},y=()=>m.isSnowflakeDriver(v.selectedDriver.driverType)?h():b(),h=()=>{let e=v.selectedDriver.urlTemplate;const r=v.formData.connectionInformation;return r.hostName&&(e=e.replace("{identifier}",r.hostName)),r.port&&(e=e.replace(".snowflakecomputing.com/?",`.snowflakecomputing.com:${r.port}/?`)),r.databaseName&&(e=e.replace("{database}",r.databaseName)),e},b=()=>{let e=v.selectedDriver.urlTemplate;const r=v.formData.connectionInformation;return r.hostName&&(e=r.port?e.replace("{hostport}",`${r.hostName}:${r.port}`):e.replace("{hostport}",""+r.hostName)),r.databaseName&&(e=e.replace("{database}",r.databaseName)),e},w=e=>{v.formData.settings.ontopFiles.forEach(r=>{r.loading=e})},D=()=>{w(!0);const e=v.formData.connectionInformation,t={hostName:e.hostName,port:e.port,databaseName:e.databaseName,userName:e.username,password:e.password,driverClass:e.driverClass,url:e.url,additionalProperties:v.formData.settings.additionalProperties};return r.updatePropertiesFile(v.repositoryInfo.params.propertiesFile.value,t,v.repositoryInfo.location,v.selectedDriver.driverType).success(e=>{v.repositoryInfo.params.propertiesFile.value=e.fileLocation}).error(e=>{N(u.instant("common.error"),e)}).finally(()=>w(!1))},N=(e,r)=>{const o=getError(r);t.error(o,e)},I=()=>m.isGenericDriver(v.selectedDriver.driverType)||v.formData.connectionInformation.hostName?Promise.resolve():Promise.reject(new a(u.instant("missing.required.field",{fieldName:u.instant("ontop.repo.database.host_name")}))),R=()=>m.isGenericDriver(v.selectedDriver.driverType)||v.formData.connectionInformation.databaseName?Promise.resolve():Promise.reject(new a(u.instant("missing.required.field",{fieldName:u.instant("ontop.repo.database.database_name")}))),S=()=>v.formData.connectionInformation.driverClass?Promise.resolve():Promise.reject(new a(u.instant("missing.required.field",{fieldName:u.instant("ontop.repo.database.driver_class")}))),k=()=>v.formData.connectionInformation.url?Promise.resolve():Promise.reject(new a(u.instant("missing.required.field",{fieldName:u.instant("ontop.repo.database.url")}))),$=()=>v.repositoryInfo.id?Promise.resolve():Promise.reject(new a(u.instant("empty.repoid.warning"))),M=()=>v.getOntopFileInfo(n.OBDA).fileName?Promise.resolve():Promise.reject(new a(u.instant("ontop.repo.missing.required.file",{fileName:v.repositoryInfo.params[n.OBDA].label}))),T=()=>v.selectedDriver.portRequired&&!v.formData.connectionInformation.port?Promise.reject(new a(u.instant("missing.required.field",{fieldName:u.instant("ontop.repo.database.port")}))):Promise.resolve(),L=()=>{v.formData={connectionInformation:new s,settings:{additionalProperties:"",ontopFiles:[]}},Object.values(n).forEach(e=>{const r=new i(e);v.formData.settings.ontopFiles.push(r)}),v.getOntopFileInfo(n.OBDA).required=!0};r.getSupportedDriversData(v.repositoryInfo).success(e=>{v.supportedDriversData=e}).error(e=>{N(u.instant("common.error"),e)}).then(()=>{v.editRepoPage?(w(!0),r.loadPropertiesFile(v.repositoryInfo.params.propertiesFile.value,v.repositoryInfo.location,v.selectedDriver.driverType).success(e=>{let r=v.supportedDriversData.find(r=>r.driverClass===e.driverClass);r&&e.hostName||(r=v.supportedDriversData.find(e=>m.isGenericDriver(e.driverType))),v.selectDriver(r.driverType),v.formData.connectionInformation.driverType=r.driverType,v.formData.connectionInformation.driverClass=e.driverClass,v.formData.connectionInformation.password=e.password,v.formData.connectionInformation.username=e.userName,v.formData.connectionInformation.url=e.url,v.formData.settings.additionalProperties=e.additionalProperties,m.isGenericDriver(r.driverType)||(v.formData.connectionInformation.hostName=e.hostName,v.formData.connectionInformation.databaseName=e.databaseName,v.formData.connectionInformation.port=e.port?parseInt(e.port,10):void 0),g(),v.updateUrl(),Object.values(n).forEach(e=>{const r=v.repositoryInfo.params[e],t=v.getOntopFileInfo(e);r&&(t.fileName=Object(o.getFileName)(r.value))}),v.currentOntopRepoInfo=angular.copy(v.formData)}).error(e=>{N(u.instant("common.error"),e)}).finally(()=>{w(!1)})):v.selectDriver(c)})}}}angular.module("graphdb.framework.repositories.ontop-repo.directive",[]).directive("ontopRepo",f),f.$inject=["$uibModal","RepositoriesRestService","toastr","Upload","$translate"]},185:function(e,r,t){"use strict";t.r(r);t(6),t(22),t(28),t(83),t(129),t(122),t(21),t(123),t(51),t(52);angular.module("graphdb.framework.repositories",["ui.bootstrap","toastr","ngCookies","ngRoute","graphdb.framework.repositories.controllers","graphdb.framework.repositories.ontop-repo.directive","graphdb.framework.repositories.fedx-repo.directive","graphdb.framework.core.services.repositories","graphdb.framework.core.directives","graphdb.framework.core.controllers","graphdb.framework.settings"])},86:function(e,r,t){"use strict";t.r(r);t(6),t(23);function o(e,r,t,o,n){e.supportsStatistics=!0,e.settings={statistics:!1},e.getSettings=function(){e.loader=!0,o.getStatistics().then((function(r){e.settings.statistics="true"===r.data,e.supportsStatistics=!0}),(function(t){if(404===t.status)e.supportsStatistics=!1;else{const e=getError(t.data);r.error(e,n.instant("error.getting.settings"))}}))},e.getSettings(),e.setSettings=function(){e.loader=!0,o.toggleStatistics(e.settings.statistics).then((function(){t.close(),r.success(n.instant("saving.settings.success"))}),(function(e){const t=getError(e.data);r.error(t,n.instant("saving.settings.error"))}))},e.submitForm=function(){e.setSettings()},e.cancel=function(){t.dismiss("cancel")}}function n(e,r,t,o,n,s,i){e.loadingLicense=function(){return t.loadingLicense},t.checkLicenseStatus(),e.revertToFree=function(){s.openSimpleModal({title:i.instant("confirm.operation"),message:i.instant("revert.to.free.warning.msg"),warning:!0}).result.then((function(){r.unregisterLicense().success((function(){t.checkLicenseStatus()}))}))}}function s(e,r,t,o,n,s,i,a){e.$on("securityInit",(function(){i.isAdmin()||t.path("/license")})),e.sendLicenseToValidateAndActivate=l;const c=$(".license-textarea");function l(e){r.sendLicenseToValidate(e).success((function(t){"Invalid"!==t.licensee?(c.val(e),function(e,t){o.open({templateUrl:"js/angular/settings/modal/validate-license.html",controller:"ValidateLicenseModalCtrl",size:"lg",resolve:{license:function(){return e}}}).result.then((function(){!function(e){e||(e=c.val());if(e){const t=atob(e.replace(/\s/g,""));r.registerLicense(t).success((function(){s.history.back()})).error((function(){n.error(a.instant("license.register.error"))}))}else n.error(a.instant("no.license.code.error"))}(t)}))}(t,e)):(c.val(""),n.error(t.message))})).error((function(){n.error(a.instant("invalid.license"))}))}e.$watch("currentFile",(function(){if(e.currentFile){const t=e.currentFile;r.extractFromLicenseFile(t).success((function(e){l(e)})).error((function(){n.error(a.instant("could.not.upload.file.error"))}))}})),e.getBackToPreviousPage=function(){s.history.back()}}function i(e,r,t){e.ok=function(){r.close()},e.cancel=function(){r.dismiss("cancel")},e.license=t}function a(e){e.loader=!0,e.setLoader=function(r){e.loader=r}}angular.module("graphdb.framework.settings.controllers",["ngCookies","ui.bootstrap","graphdb.framework.core.services.jwtauth","toastr"]).controller("ActiveLocationSettingsCtrl",o).controller("ValidateLicenseModalCtrl",i).controller("LicenseCtrl",n).controller("RegisterLicenseCtrl",s).controller("LoaderSamplesCtrl",a),o.$inject=["$scope","toastr","$uibModalInstance","LicenseRestService","$translate"],n.$inject=["$scope","LicenseRestService","$licenseService","toastr","$rootScope","ModalService","$translate"],s.$inject=["$scope","LicenseRestService","$location","$uibModal","toastr","$window","$jwtAuth","$translate"],i.$inject=["$scope","$uibModalInstance","license"],a.$inject=["$scope"]}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[25,32,40,64],{61:function(e,t,l){"use strict";l.r(t),l.d(t,"mapAclRulesResponse",(function(){return n}));var s=l(62);const n=e=>{const t=new s.ACListModel;return e&&e.data&&e.data.forEach(e=>{t.appendNewRule(e.subject,e.predicate,e.object,e.context,e.role,e.policy)}),t}},62:function(e,t,l){"use strict";l.r(t),l.d(t,"ACListModel",(function(){return s})),l.d(t,"ACRuleModel",(function(){return n})),l.d(t,"ACL_POLICY",(function(){return o}));class s{constructor(e=[]){this._aclRules=e}size(){return this.aclRules.length}appendNewRule(e,t,l,s,o,r){this.aclRules.push(new n(e,t,l,s,o,r))}addRule(e){this.aclRules.splice(e,0,new n)}removeRule(e){this.aclRules.splice(e,1)}replaceRule(e,t){this.aclRules.splice(e,1,t)}getRule(e){return this.aclRules[e]}isRuleDuplicated(e){const t=this.aclRules[e];return this.aclRules.some((l,s)=>e!==s&&angular.equals(t,l))}getRuleCopy(e){const t=this.aclRules[e];return{subject:t.subject,predicate:t.predicate,object:t.object,context:t.context,role:t.role,policy:t.policy}}moveUp(e){const t=this.aclRules[e-1];this.aclRules[e-1]=this.aclRules[e],this.aclRules[e]=t}moveDown(e){const t=this.aclRules[e+1];this.aclRules[e+1]=this.aclRules[e],this.aclRules[e]=t}toJSON(){return this.aclRules.map(e=>({subject:e.subject,predicate:e.predicate,object:e.object,context:e.context,role:e.role,policy:e.policy}))}get aclRules(){return this._aclRules}set aclRules(e){this._aclRules=e}}class n{constructor(e="*",t="*",l="*",s="*",n="CUSTOM_",r=o.ALLOW){this._subject=e,this._predicate=t,this._object=l,this._context=s,this._role=n,this._policy=r}get subject(){return this._subject}set subject(e){this._subject=e}get predicate(){return this._predicate}set predicate(e){this._predicate=e}get object(){return this._object}set object(e){this._object=e}get context(){return this._context}set context(e){this._context=e}get role(){return this._role}set role(e){this._role=e}get policy(){return this._policy}set policy(e){this._policy=e}}const o={ALLOW:"allow",DENY:"deny"}},84:function(e,t,l){"use strict";l.r(t);l(61);angular.module("graphdb.framework.rest.aclmanagement.service",[]).factory("AclManagementRestService",s),s.$inject=["$http"];function s(e){return{getAcl:function(t){return e.get(`rest/repositories/${t}/acl`)},updateAcl:function(t,l){return e.put(`rest/repositories/${t}/acl`,l)}}}},87:function(e,t,l){"use strict";l.r(t);l(29),l(84);var s=l(61),n=l(82);function o(e,t,l,o,r,c,a){const i=[];e.ruleData={},e.loading=!1,e.rulesModel=void 0,e.rulesModelCopy=void 0,e.selectedRule=void 0,e.editedRuleIndex=void 0,e.editedRuleCopy=void 0,e.isNewRule=!1,e.modelIsDirty=!1,e.addRule=t=>{e.rulesModel.addRule(t),e.editedRuleIndex=t,e.isNewRule=!0,m()},e.editRule=t=>{e.editedRuleIndex=t,e.isNewRule=!1,e.editedRuleCopy=e.rulesModel.getRuleCopy(t),m()},e.deleteRule=t=>{a.openConfirmation(c.instant("common.confirm"),c.instant("acl_management.rulestable.messages.delete_rule_confirmation",{index:t}),()=>{e.rulesModel.removeRule(t),m()})},e.saveRule=()=>{e.rulesModel.isRuleDuplicated(e.editedRuleIndex)?h():(e.editedRuleIndex=void 0,e.isNewRule=!1,m())},e.cancelEditing=t=>{e.isNewRule?(e.rulesModel.removeRule(t),e.isNewRule=!1):(e.rulesModel.replaceRule(t,e.editedRuleCopy),e.editedRuleCopy=void 0),e.editedRuleIndex=void 0,m()},e.moveUp=t=>{e.rulesModel.moveUp(t),e.selectedRule=t-1,m()},e.moveDown=t=>{e.rulesModel.moveDown(t),e.selectedRule=t+1,m()},e.saveAcl=()=>{e.loading=!0,d().then(u).finally(()=>{e.loading=!1})},e.cancelAclSave=()=>{a.openConfirmation(c.instant("common.confirm"),c.instant("acl_management.rulestable.messages.revert_acl_list"),()=>{p(),l.success(c.instant("acl_management.rulestable.messages.rules_reverted"))})};const u=()=>{const t=R();return o.getAcl(t).then(t=>{e.rulesModel=Object(s.mapAclRulesResponse)(t),e.rulesModelCopy=Object(s.mapAclRulesResponse)(t),m()}).catch(e=>{const t=getError(e);l.error(t,c.instant("acl_management.errors.loading_rules"))})},d=()=>{const t=R();return o.updateAcl(t,e.rulesModel.toJSON()).then(()=>{l.success(c.instant("acl_management.rulestable.messages.rules_updated"))}).catch(e=>{const t=getError(e);l.error(t,c.instant("acl_management.errors.updating_rules"))})},p=()=>{R()&&(e.loading=!0,u().finally(()=>{e.loading=!1}))},m=()=>{e.modelIsDirty=!Object(n.isEqual)(e.rulesModel,e.rulesModelCopy)},R=()=>r.getActiveRepository(),h=()=>{l.error(c.instant("acl_management.errors.duplicated_rules"))},g=t=>{e.modelIsDirty&&(t.returnValue=!0)},_=()=>{window.removeEventListener("beforeunload",g),i.forEach(e=>e())},b=(l,s)=>{e.modelIsDirty&&(l.preventDefault(),a.openSimpleModal({title:c.instant("common.confirm"),message:c.instant("acl_management.rulestable.messages.unsaved_changes_confirmation"),warning:!0}).result.then((function(){_();const e=t.absUrl().length-t.url().length,l=s.substring(e);t.path(l)}),(function(){})))};i.push(e.$watch(R,p)),i.push(e.$on("$locationChangeStart",b)),i.push(e.$on("$destroy",_)),window.addEventListener("beforeunload",g)}angular.module("graphdb.framework.aclmanagement.controllers",["graphdb.framework.rest.plugins.service","graphdb.framework.rest.aclmanagement.service"]).controller("AclManagementCtrl",o),o.$inject=["$scope","$location","toastr","AclManagementRestService","$repositories","$translate","ModalService"]}}]);
|