graphdb-workbench
Version:
The web application for GraphDB APIs
224 lines (216 loc) • 14.9 kB
HTML
<div class="ot-loader ot-loader-home" onto-loader-fancy size="100" ng-show="isLoadingLocation()"></div>
<div class="content-wrapper" ng-hide="isLoadingLocation()" ng-cloak>
<div class="alert alert-danger" role="alert" ng-hide="isLicenseValid()">
<strong>{{getLicenseErrorMsg()}}</strong>
<div ng-bind-html="'supply.license.or.contact.us.warning' | translate | trustAsHtml"></div>
<div class="mt-1">{{'no.license.restrictions' | translate}}</div>
<div class="mt-1">
<a href="license" ng-hide="!hasRole('ROLE_ADMIN')" class="btn btn-primary">
{{'license.settings.label' | translate}}
</a>
</div>
</div>
<div class="row mt-2" ng-if="!tutorialState">
<a href="#" class="btn btn-link float-xs-right show-tutorial" ng-click="showTutorial()">{{'show.welcome.panel' | translate}}</a>
</div>
<div class="row mb-3 tutorial-container" ng-init="initTutorial()" ng-if="tutorialState">
<div class="col-lg-12">
<div class="card mt-2">
<div class="card-block">
<button type="button" gdb-tooltip="{{'common.close' | translate}}" class="close" aria-label="Close"
ng-click="declineTutorial()"></button>
<div class="pages-wrapper">
<div class="page-slide" ng-repeat="page in tutorialInfo track by $index">
<h1 class="card-title">{{page.title}}</h1>
<p class="card-text lead" ng-bind-html="getTutorialPageHtml(page)"></p>
</div>
</div>
</div>
<div class="card-block">
<a href="#" class="btn btn-lg btn-outline-secondary decline-tutorial" ng-click="declineTutorial()">{{'hide.panel' | translate}}</a>
<a href="guides" class="btn btn-lg btn-primary">{{'take.me.to.guides' | translate}}</a>
<div class="btn-toolbar pull-right" role="toolbar" aria-label="Toolbar with button groups">
<div class="btn-group" role="group" aria-label="First group">
<button type="button" class="btn btn-secondary" ng-click="slideToPage($index)"
ng-repeat="page in tutorialInfo track by $index">{{$index + 1}}
</button>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="row mb-3" ng-if="getActiveRepository() && !isLoadingLocation() && hasActiveLocation()" ng-cloak>
<div class="col-lg-12 home-rdf-resource-search">
<h3 id="view-resource-label-home"><span gdb-tooltip="{{'view.rdf.data.text.visual.graph.header' | translate}}" tooltip-placement="right">{{'view.resource.label' | translate}}</span></h3>
<div class="card">
<div class="card-block" ng-keydown="onKeyDown($event)">
<search-resource-input
repository-namespaces="repositoryNamespaces"
is-autocomplete-enabled="isAutocompleteEnabled"
open-in-new-tab="true"
preserve-search="true"
clear="doClear"
empty="empty"
radio-buttons="true"
clear-input-icon="true"
data-test="search-rdf-resource-component"
id="search-resource-input-home">
</search-resource-input>
</div>
</div>
</div>
</div>
<div core-errors></div>
<div class="mb-2 row" ng-show="!isLoadingLocation() && hasActiveLocation() && getActiveRepository()">
<div class="active-repo-widget col-lg-6">
<h3 id="active-repo-label-home"><span gdb-tooltip="{{'view.active.repo.info.label' | translate}}" tooltip-placement="top">{{'active.repo.label' | translate}}</span></h3>
<div class="card active-repo-card"
ng-show="canReadRepo(getActiveRepositoryObject()) || hasGraphqlRightsOverCurrentRepo()">
<div class="card-block">
<h6>{{getActiveRepositoryObject().location ? getActiveRepositoryObject().location : 'Local'}}</h6>
<div class="actions-bar pull-right">
<button type="button" gdb-tooltip="{{'copy.repo.url' | translate}}" class="btn btn-link"
ng-click="copyToClipboard(getActiveRepositoryObject().externalUrl)"><span class="icon-link"></span>
</button>
<button type="button" ng-click="goToEditRepo(getActiveRepositoryObject())" class="btn btn-link" gdb-tooltip="{{'repoTooltips.editRepository' | translate}}"
ng-if="canManageRepositories() && getActiveRepositoryObject().type !== 'system'">
<span class="icon-edit"></span>
</button>
<span ng-show="getDegradedReason()">
<em class="icon-warning icon-lg text-warning"
gdb-tooltip="{{getDegradedReason()}} {{'not.supported.repo.edit.label' | translate}}"
tooltip-placement="top"></em>
</span>
<button type="button" gdb-tooltip="{{'refresh.repo.info' | translate}}" class="btn btn-link"
ng-if="activeRepositorySize && !activeRepositorySizeError"
ng-click="getActiveRepositorySize()"><span class="icon-reload"></span>
</button>
</div>
<h3 class="card-title ellipsis-block repo-info-home">
<em class="icon-2x" ng-class="'icon-repo-' + getActiveRepositoryObject().type"
gdb-tooltip="{{toHumanReadableType(getActiveRepositoryObject().type)}} {{'repository.with.label' | translate}} {{canWriteActiveRepo() ? 'read.write' : 'read.only' | translate}} {{'access' | translate}}"></em>
<div>
{{getActiveRepository()}}<small ng-show="getActiveRepositoryObject().title"><span class="small"> · {{getActiveRepositoryObject().title}}</span></small>
</div>
</h3>
<div ng-if="activeRepositorySize && !activeRepositorySizeError">
<div class="container-fluid">
<div class="row">
<div class="col-xs-6 mb-1 total-statements">
<span>{{'total.statements' | translate}}</span>
<span class="data-value big" ng-if="activeRepositorySize.total !== -1">{{activeRepositorySize.total | currency:'':0}}</span>
<span class="data-value big" ng-if="activeRepositorySize.total === -1">–</span>
</div>
<div class="col-xs-6">
<div class="explicit-statements">
<span class="data-value" ng-if="activeRepositorySize.explicit !== -1">{{activeRepositorySize.explicit | currency:'':0}}</span>
<span class="data-value" ng-if="activeRepositorySize.explicit === -1">–</span>
<span>{{'explicit' | translate}}</span>
</div>
<div class="inferred-statements">
<span class="data-value" ng-if="activeRepositorySize.inferred !== -1">{{activeRepositorySize.inferred | currency:'':0}}</span>
<span class="data-value" ng-if="activeRepositorySize.inferred === -1">–</span>
<span class="">{{'inferred' | translate}}</span>
</div>
<div>
<span class="data-value" ng-if="activeRepositorySize.explicit !== 0 && activeRepositorySize.total !== -1">{{activeRepositorySize.total / activeRepositorySize.explicit | number: 2}}</span>
<span class="data-value" ng-if="activeRepositorySize.explicit === 0 || activeRepositorySize.total === -1">–</span>
<span class="">{{'expansion.ratio' | translate}}</span>
</div>
</div>
</div>
</div>
</div>
<div ng-if="activeRepositorySizeError">
<div class="d-inline-block mr-1 mb-1">
{{'error' | translate}}
<span class="data-value big">{{activeRepositorySizeError}}</span>
</div>
</div>
<div class="row">
<div class="col-xs-12">
<div>
<a ng-show="canWriteActiveRepo()" class="btn btn-link" href="import">{{'import.rdf.data.label' | translate}}</a>
<button ng-hide="canWriteActiveRepo()" disabled class="btn btn-link" href="import">{{'import.rdf.data.label' | translate}}</button>
</div>
<div>
<a ng-show="canReadRepo(getActiveRepositoryObject())" class="btn btn-link" href="graphs">{{'export.rdf.data' | translate}}</a>
<button ng-show="hasGraphqlRightsOverCurrentRepo()" disabled class="btn btn-link" href="export">{{'export.rdf.data' | translate}}</button>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="saved-sparql-queries-widget col-lg-6">
<h3 id="saved-queries-label-home"><span gdb-tooltip="{{'saved.sparql.queries.tooltip' | translate}}" tooltip-placement="top">{{'saved.sparql.queries.label' | translate}}</span></h3>
<div class="card"
ng-cloak>
<div>
<ul class="list-group limit-height clearfix {{sampleQueries.length <= 4 ? 'one-column' : 'two-columns'}} saved-queries" ng-show="sampleQueries">
<li ng-repeat="query in sampleQueries" ng-hide="isIgnoreSharedQueries && query.owner != null" class="list-group-item list-group-item-action">
<span class="help-label execute-saved-query" ng-click="goToSparqlEditor(query)">{{'common.execute' | translate}} <span class="icon-caret-right"></span></span>
<samp class="query-name">{{query.name}}</samp>
<samp class="text-muted small">{{query.body}}</samp>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="row mb-3">
<div class="license-widget col-lg-12">
<h3 id="license-label-home"><span gdb-tooltip="{{'menu.license.tooltip' | translate}}" tooltip-placement="right">{{'menu.license.label' | translate}}</span></h3>
<div class="card">
<h4 ng-if="isLicensePresent()" class="card-header">GraphDB {{getProductType() | titlecase}} {{'edition' | translate}}</h4>
<h4 ng-if="!isLicensePresent()" class="card-header">{{'no.license' | translate}}</h4>
<!-- appears only when there is a problem with the license -->
<div class="alert alert-danger" role="alert" ng-hide="isLicenseValid()">
<strong>{{getLicenseErrorMsg()}}</strong>
</div>
<div class="card-block">
<div class="row" ng-if="isLicensePresent()">
<div class="float-xs-left d-inline-block ml-1 mr-2 mb-1">
{{'licensed.to' | translate}}
<span class="data-value d-block">{{getLicense().licensee}}</span>
</div>
<div class="float-xs-left d-inline-block ml-1 mr-2 mb-1">
{{'valid.until' | translate}}
<span class="data-value d-block">{{getLicense().expiryDate ? (getLicense().expiryDate | date: 'yyyy-MM-dd') : 'perpetual' | translate}}</span>
</div>
<div class="float-xs-left d-inline-block ml-1 mr-2 mb-1">
{{'cores.number' | translate}}
<span class="data-value d-block">{{getLicense().maxCpuCores ? getLicense().maxCpuCores : 'unlimited' | translate}}</span>
</div>
<div class="float-xs-left d-inline-block ml-1 mr-2 mb-1">
{{'maintenance.date' | translate}}
<span class="data-value d-block">{{getLicense().latestPublicationDate ? (getLicense().latestPublicationDate | date: 'yyyy-MM-dd') : 'perpetual' | translate}}</span>
</div>
<div class="float-xs-left d-inline-block ml-1 mb-1">
{{'capabilities' | translate}}
<div class="data-value d-block">
<div ng-if="getLicense().licenseCapabilities.length !== 0">
<div ng-repeat="capability in getLicense().licenseCapabilities">
<div>{{capability}}</div>
</div>
</div>
<div ng-if="getLicense().licenseCapabilities.length === 0">
<div>{{'none' | translate}}</div>
</div>
</div>
</div>
</div>
<p ng-if="isLicensePresent()" class="text-muted">
{{getLicense().typeOfUse}}
</p>
<div>
<a href="license" ng-hide="!hasRole('ROLE_ADMIN')" class="btn btn-primary">
{{'license.settings.label' | translate}}
</a>
</div><!-- GET namespaces list -->
</div>
</div>
</div>
</div>
</div>