UNPKG

graphdb-workbench

Version:
363 lines (357 loc) 26.7 kB
<link href="css/repositories.css?v=1.11.3-TR1" rel="stylesheet"> <link href="css/lib/bootstrap-switch/bootstrap-switch.min.css?v=1.11.3-TR1" rel="stylesheet"> <div id="wb-repository"> <h1>{{pageTitle}}</h1> <p class="alert alert-danger" ng-hide="hasActiveLocation()"> No active location! Please <a ng-href="repository" href="repository">select a location first</a>. </p> <div ng-show="hasActiveLocation()"> <div class="ot-loader ot-main-loader" onto-loader size="50" ng-show="loader"></div> <div ng-hide="loader"> <form id="newRepoForm" class="form-horizontal" novalidate="novalidate"> <fieldset> <!-- Simply to satisfy the HTML specs, because it's reported as bug from SonarCloud --> <legend style="display: none">Repository properties</legend> <div class="form-group row"> <label for="id" class="col-md-3 col-lg-2 col-form-label">Repository ID*</label> <div class="col-md-7 col-lg-6 col-xl-5" uib-tooltip="{{repoTooltips.id}}"> <a class="btn btn-link ot-edit-input" ng-click="editRepositoryId()" ng-if="!canEditRepoId && editRepoPage" tooltip-trigger="mouseenter" uib-tooltip="Edit repository id" tooltip-placement="right"><span class="icon-edit"></span></a> <input name="id" id="id" class="form-control" ng-disabled="!canEditRepoId && editRepoPage" placeholder="This field is required" type="text" ng-model="repositoryInfo.id" required ng-attr-autofocus="{{ autofocusId }}"> <div style="margin-top: 5px" ng-show="isInvalidRepoName" class="idError alert alert-danger"> Repository name can contain only letters (a-z, A-Z), numbers (0-9), "-" and "_" </div> </div> </div> <div class="form-group row"> <label class="col-md-3 col-lg-2 col-form-label">Repository description</label> <div class="col-md-7 col-lg-6 col-xl-5" uib-tooltip="{{repoTooltips.title}}"> <input class="form-control" type="text" name="title" id="title" ng-model="repositoryInfo.title"> </div> </div> <div class="form-group row" ng-if="repositoryInfo.type != 'master' && repositoryInfo.type != 'ontop' && repositoryInfo.type != 'fedx'"> <div class="checkbox offset-md-3 offset-lg-2"> <label class="padding-label" uib-tooltip="{{repoTooltips.readOnly}}"> <input id="readOnly" type="checkbox" ng-true-value="'true'" ng-false-value="'false'" ng-model="repositoryInfo.params.readOnly.value"/> {{repositoryInfo.params.readOnly.label}} </label> </div> </div> <!-- Ontop repository related directive --> <ontop-repo ng-if="repositoryInfo.type === 'ontop'"></ontop-repo> <!-- FedX repository related directive --> <fedx-repo ng-if="repositoryInfo.type === 'fedx'"></fedx-repo> <div id="additionalParams" class="pt-1" ng-if="repositoryInfo.type != 'master' && repositoryInfo.type != 'ontop' && repositoryInfo.type != 'fedx'"> <h5>Inference and Validation</h5> <div class="form-group row indented-div"> <label for="ruleset" class="col-xs-12 col-md-3 col-lg-2 col-form-label"> {{repositoryInfo.params.ruleset.label}} <div class="ruleset-warning icon-warning icon-2x" ng-if="rulesetWarning()" tooltip-html-unsafe="{{rulesetWarning()}}" tooltip-placement="top"></div> </label> <div class="col-xs-6 col-md-4 col-lg-3 wrapper-div" uib-tooltip="{{repoTooltips.ruleset}}" tooltip-trigger="mouseenter"> <select ng-disabled="editRepoPage" class="form-control" id="ruleset" ng-model="repositoryInfo.params.ruleset.value" ng-change="repositoryInfo.params.disableSameAs.value = repositoryInfo.params.ruleset.value.indexOf('owl') === 0 ? 'false' : 'true'" ng-options="r.id as r.name for r in rulesets"> </select> </div> <div class="form-group col-xs-4 col-md-4 col-lg-3" ng-if="!editRepoPage"> <div class="btn btn-outline-primary btn-sm"> <div ngf-select ngf-change="uploadRuleset($files)" ngf-multiple="false" class="selectFiles pointer clearfix" accept=".pie" uib-tooltip="Upload a custom ruleset file." tooltip-trigger="mouseenter"> <em ng-hide="uploadFileLoader" class="fa fa-upload fa-2x"></em>&nbsp; <div ng-show="uploadFileLoader" onto-loader size="24" class="spinner-container ot-loader"></div> <span class="pageInfo" style="vertical-align: super; color: #8a8a8a;">Custom ruleset...</span> </div> </div> <input class="form-control" id="customRuleSet" type="file" name="ruleset" style="display: none;"/> </div> </div> <div class="form-group row indented-div"> <div class="checkbox offset-md-3 offset-lg-2"> <label class="padding-label" uib-tooltip="{{repoTooltips.disableSameAs}}"> <input id="disableSameAs" ng-disabled="editRepoPage || repositoryInfo.params.ruleset.value === 'empty'" type="checkbox" ng-true-value="'true'" ng-false-value="'false'" ng-model="repositoryInfo.params.disableSameAs.value"/> {{repositoryInfo.params.disableSameAs.label}} </label> </div> </div> <div class="form-group row indented-div"> <div class="checkbox offset-md-3 offset-lg-2"> <label class="padding-label" uib-tooltip="{{repoTooltips.checkForInconsistencies}}"> <input id="checkForInconsistencies" type="checkbox" ng-true-value="'true'" ng-false-value="'false'" ng-model="repositoryInfo.params.checkForInconsistencies.value"/> {{repositoryInfo.params.checkForInconsistencies.label}} </label> </div> </div> <div class="form-group row indented-div"> <div class="checkbox offset-md-3 offset-lg-2"> <label class="padding-label" uib-tooltip="{{repoTooltips.isShacl}}"> <input id="isShacl" ng-disabled="editRepoPage" type="checkbox" ng-true-value="'true'" ng-false-value="'false'" ng-model="repositoryInfo.params.isShacl.value"/> {{repositoryInfo.params.isShacl.label}} </label> <label class="padding-label wrapper-div" uib-tooltip="Shows additional SHACL options when SHACL is enabled."> <i class="{{getShaclOptionsClass()}}" aria-hidden="true"></i> <button class="text-btn" data-toggle="collapse" style="text-align: left" ng-disabled="repositoryInfo.params.isShacl.value !== 'true'" data-target="#shaclOptions"> SHACL options </button> </label> </div> </div> <div ng-if="repositoryInfo.params.isShacl.value === 'true'" id="shaclOptions" class="collapse pb-1"> <div class="row"> <div class="checkbox offset-xs-1 offset-md-4 offset-lg-3"> <label class="col-lg-4" uib-tooltip="{{repoTooltips.shaclOptions.cacheSelectNodes}}"> <input id="cacheSelectNodes" name="cacheSelectNodes" type="checkbox" ng-true-value="'true'" ng-false-value="'false'" ng-model="repositoryInfo.params.cacheSelectNodes.value"/> {{repositoryInfo.params.cacheSelectNodes.label}} </label> </div> <div class="checkbox offset-xs-1 offset-md-4 offset-lg-3"> <label class="padding-label" uib-tooltip="{{repoTooltips.shaclOptions.undefinedTargetValidatesAllSubjects}}"> <input id="undefinedTargetValidatesAllSubjects" name="undefinedTargetValidatesAllSubjects" type="checkbox" ng-true-value="'true'" ng-false-value="'false'" ng-model="repositoryInfo.params.undefinedTargetValidatesAllSubjects.value"/> {{repositoryInfo.params.undefinedTargetValidatesAllSubjects.label}} </label> </div> </div> <div class="row"> <div class="checkbox offset-xs-1 offset-md-4 offset-lg-3"> <label class="col-lg-4" uib-tooltip="{{repoTooltips.shaclOptions.logValidationPlans}}"> <input id="logValidationPlans" name="logValidationPlans" type="checkbox" ng-true-value="'true'" ng-false-value="'false'" ng-model="repositoryInfo.params.logValidationPlans.value"/> {{repositoryInfo.params.logValidationPlans.label}} </label> </div> <div class="checkbox offset-xs-1 offset-md-4 offset-lg-3"> <label class="padding-label" uib-tooltip="{{repoTooltips.shaclOptions.logValidationViolations}}"> <input id="logValidationViolations" name="logValidationViolations" type="checkbox" ng-true-value="'true'" ng-false-value="'false'" ng-model="repositoryInfo.params.logValidationViolations.value"/> {{repositoryInfo.params.logValidationViolations.label}} </label> </div> </div> <div class="row"> <div class="checkbox offset-xs-1 offset-md-4 offset-lg-3"> <label class="col-lg-4" uib-tooltip="{{repoTooltips.shaclOptions.parallelValidation}}"> <input id="parallelValidation" name="parallelValidation" type="checkbox" ng-true-value="'true'" ng-false-value="'false'" ng-model="repositoryInfo.params.parallelValidation.value"/> {{repositoryInfo.params.parallelValidation.label}} </label> </div> <div class="checkbox offset-xs-1 offset-md-4 offset-lg-3"> <label class="padding-label" uib-tooltip="{{repoTooltips.shaclOptions.globalLogValidationExecution}}"> <input id="globalLogValidationExecution" name="globalLogValidationExecution" type="checkbox" ng-true-value="'true'" ng-false-value="'false'" ng-model="repositoryInfo.params.globalLogValidationExecution.value"/> {{repositoryInfo.params.globalLogValidationExecution.label}} </label> </div> </div> <div class="row"> <div class="checkbox offset-xs-1 offset-md-4 offset-lg-3"> <label class="col-lg-4" uib-tooltip="{{repoTooltips.shaclOptions.performanceLogging}}"> <input id="performanceLogging" name="performanceLogging" type="checkbox" ng-true-value="'true'" ng-false-value="'false'" ng-model="repositoryInfo.params.performanceLogging.value"/> {{repositoryInfo.params.performanceLogging.label}} </label> </div> <div class="checkbox offset-xs-1 offset-md-4 offset-lg-3"> <label class="padding-label" uib-tooltip="{{repoTooltips.shaclOptions.eclipseRdf4jShaclExtensions}}"> <input id="eclipseRdf4jShaclExtensions" name="eclipseRdf4jShaclExtensions" type="checkbox" ng-true-value="'true'" ng-false-value="'false'" ng-model="repositoryInfo.params.eclipseRdf4jShaclExtensions.value"/> {{repositoryInfo.params.eclipseRdf4jShaclExtensions.label}} </label> </div> </div> <div> <div class="row"> <div class="checkbox offset-xs-1 offset-md-4 offset-lg-3"> <label class="col-lg-4" uib-tooltip="{{repoTooltips.shaclOptions.dashDataShapes}}"> <input id="dashDataShapes" name="dashDataShapes" type="checkbox" ng-true-value="'true'" ng-false-value="'false'" ng-model="repositoryInfo.params.dashDataShapes.value"/> {{repositoryInfo.params.dashDataShapes.label}} </label> </div> </div> </div> <div> <div class="row"> <div class="offset-xs-1 offset-md-4 offset-lg-3"> <label class="col-lg-2"> {{repositoryInfo.params.validationResultsLimitTotal.label}} </label> <div class="col-lg-2"> <input id="validationResultsLimitTotal" name="validationResultsLimitTotal" type="number" step="1" ng-model="repositoryInfo.params.validationResultsLimitTotal.value" class="form-control"/> </div> </div> <div class="offset-xs-1 offset-md-4 offset-lg-3"> <label class="col-lg-2"> {{repositoryInfo.params.validationResultsLimitPerConstraint.label}} </label> <div class="col-lg-2"> <input id="validationResultsLimitPerConstraint" name="validationResultsLimitPerConstraint" type="number" step="1" ng-model="repositoryInfo.params.validationResultsLimitPerConstraint.value" class="form-control"/> </div> </div> </div> </div> </div> <h5>Indexing</h5> <div class="form-group row indented-div"> <label class="col-md-3 col-lg-2">{{repositoryInfo.params.entityIdSize.label}}</label> <div class="radio"> <label class="padding-label" tooltip-html-unsafe="{{repoTooltips.entityIdSize}}"> <input id="entityIdSize32" type="radio" value="32" ng-disabled="editRepoPage" ng-model="repositoryInfo.params.entityIdSize.value"/> 32-bit </label> <label class="padding-label" tooltip-html-unsafe="{{repoTooltips.entityIdSize}}"> <input id="entityIdSize40" type="radio" value="40" ng-disabled="editRepoPage" ng-model="repositoryInfo.params.entityIdSize.value"/> 40-bit </label> </div> </div> <div class="form-group row indented-div"> <div class="checkbox offset-md-3 offset-lg-2"> <label class="padding-label" uib-tooltip="{{repoTooltips.enableContextIndex}}"> <input id="enableContextIndex" name="enableContextIndex" type="checkbox" ng-true-value="'true'" ng-false-value="'false'" ng-model="repositoryInfo.params.enableContextIndex.value"/> {{repositoryInfo.params.enableContextIndex.label}} </label> </div> </div> <div class="form-group row indented-div"> <div class="checkbox offset-md-3 offset-lg-2"> <label class="padding-label" uib-tooltip="{{repoTooltips.enablePredicateList}}"> <input id="enablePredicateList" name="enablePredicateList" ng-true-value="'true'" ng-false-value="'false'" type="checkbox" ng-model="repositoryInfo.params.enablePredicateList.value" ng-change="resetIndexMemory()"/> {{repositoryInfo.params.enablePredicateList.label}} </label> </div> </div> <h5>Queries and Updates</h5> <div class="form-group row indented-div"> <label class="col-xs-12 col-md-3 col-lg-2 col-form-label">{{repositoryInfo.params.queryTimeout.label}}</label> <div class="col-xs-3 col-md-2" uib-tooltip="{{repoTooltips.queryTimeout}}"> <input class="form-control" id="queryTimeout" type="number" step="1" ng-model="repositoryInfo.params.queryTimeout.value" ng-change="validateNumberInput()"/> </div> <div class="checkbox offset-xs-3 offset-md-2"> <label class="padding-label col-form-label" uib-tooltip="{{repoTooltips.throwQueryEvaluationExceptionOnTimeout}}"> <input id="throwQueryEvaluationExceptionOnTimeout" type="checkbox" ng-true-value="'true'" ng-false-value="'false'" ng-model="repositoryInfo.params.throwQueryEvaluationExceptionOnTimeout.value"/> {{repositoryInfo.params.throwQueryEvaluationExceptionOnTimeout.label}} </label> </div> </div> <div class="form-group row indented-div"> <label class="col-xs-12 col-md-3 col-lg-2 col-form-label">{{repositoryInfo.params.queryLimitResults.label}}</label> <div class="col-xs-3 col-md-2" uib-tooltip="{{repoTooltips.queryLimitResults}}"> <input class="form-control" id="queryLimitResults" type="number" step="1" ng-model="repositoryInfo.params.queryLimitResults.value" ng-change="validateNumberInput()"/> </div> </div> <div class="form-group row indented-div" ng-if="repositoryInfo.type == 'worker'"> <label class="col-md-3 col-lg-2 col-form-label">{{repositoryInfo.params.nonInterpretablePredicates.label}}</label> <div class="col-md-7 col-lg-6 col-xl-5" uib-tooltip="{{repoTooltips.nonInterpretablePredicates}}"> <textarea class="form-control" id="nonInterpretablePredicates" name="nonInterpretablePredicates" ng-model="repositoryInfo.params.nonInterpretablePredicates.value" rows="4"></textarea> </div> </div> </div> <!-- Restart checkbox and buttons, when creating repo of type 'ontop' are provided in ontop-repo.html template --> <div ng-if="repositoryInfo.type !== 'ontop'" class="pt-1"></div> <div class="form-group row" ng-if="repositoryInfo.type !== 'ontop' && editRepoPage"> <div class="checkbox col-xs-12"> <label uib-tooltip="Check to restart the repository and apply the changes."> <input id="restartRepo" name="restartRepo" type="checkbox" ng-model="repositoryInfo.restartRequested" ng-checked="repositoryInfo.restartRequested || repositoryInfo.saveId !== repositoryInfo.id" ng-disabled="repositoryInfo.saveId !== repositoryInfo.id"/> Restart repository </label> </div> </div> <div class="form-group row pb-3" ng-if="repositoryInfo.type !== 'ontop'"> <div class="col-xs-12"> <button id="addSaveRepository" ng-click="createRepo()" ng-if="!editRepoPage" type="submit" class="btn btn-primary">Create </button> <button id="addSaveRepository" ng-click="editRepository()" ng-if="editRepoPage" type="submit" class="btn btn-primary">Save </button> <a ng-click="goBackToPreviousLocation()" class="btn btn-secondary">Cancel</a> </div> </div> </fieldset> </form> </div> </div> </div>