graphdb-workbench
Version:
The web application for GraphDB APIs
374 lines (367 loc) • 27 kB
HTML
<link href="css/repositories.css?v=3.1.0-RC3" rel="stylesheet">
<h1>
{{title}}
<page-info-tooltip></page-info-tooltip>
</h1>
<div class="alert alert-warning" ng-if="locations.length && !hasActiveLocation()">
{{getLocationError()}}
</div>
<div id="wb-repositories" class="ot-owlim-ctrl mb-2">
<div class="ot-loader ot-main-loader" onto-loader size="50" ng-show="loader"></div>
<!-- Local GraphDB instance -->
<div ng-if="getLocalLocation(true, RemoteLocationType.GRAPH_DB).length && hasActiveLocation()" class="mb-1">
<table id="wb-locations-locationInGetLocations" class="table" aria-describedby="Locations repository table">
<tbody>
<tr class="location"
ng-repeat="location in getLocalLocation(true, RemoteLocationType.GRAPH_DB) | orderBy: ['uri']">
<td>
<div>
<div class="pull-left">
<strong>{{'repos.from' | translate}}</strong>
<em ng-if="location.degradedReason" class="icon-warning icon-lg text-warning"
gdb-tooltip="{{location.degradedReason}}{{'repos.degraded.reason.extra.msg' | translate}}"
tooltip-placement="right"></em>
<span class="mr-1">{{location.label}}</span>
</div>
<div ng-if="location.local" class="actions-bar-inline pull-right">
<button
gdb-tooltip="{{'repos.edit.common.settings' | translate}}"
tooltip-placement="top"
class="btn btn-link px-0"
ng-click="openActiveLocationSettings()">
<span class="icon-settings"></span>
</button>
<a class="btn btn-link px-0 pull-right" href="license"
gdb-tooltip="{{'repos.view.update.licenses' | translate}}"
tooltip-placement="top">
<span class="icon-key"></span>
</a>
</div>
<div ng-if="isAdmin() && !location.local" class="actions-bar-inline pull-right">
<button class="btn btn-link p-0"
gdb-tooltip="{{'edit.location' | translate}}" tooltip-placement="top"
ng-click="editLocation(location)">
<em class="icon-edit"></em>
</button>
<button class="btn btn-link p-0 secondary"
gdb-tooltip="{{'detach.location' | translate}}" tooltip-placement="top"
ng-click="deleteLocation(location.uri)">
<em class="icon-close"></em>
</button>
</div>
</div>
<div ng-if="hasActiveLocation()" class="pt-2">
<div class="alert alert-warning no-repositories-alert"
ng-if="!getRepositoriesFromLocation(location.uri).length && !location.errorMsg">
{{'no.repos.in.current.location' | translate}}
</div>
<div class="alert alert-danger" ng-if="location.errorMsg">
{{location.errorMsg}}{{'repos.refresh.page.msg' | translate}}
</div>
<div ng-if="getRepositoriesFromLocation(location.uri).length" class="mb-1">
<table id="wb-repositories-repositoryInGetRepositories"
class="table table-hover table-striped" aria-describedby="Repositories table">
<tbody>
<tr class="repository"
ng-repeat="repository in getRepositoriesFromLocation(location.uri) | orderBy: ['type === \'system\'', 'location', 'id'] track by repository.hash"
ng-class="{'table-info text-secondary': isRepoActive(repository)}"
guide-selector="repository-{{repository.id}}">
<td class="select-repository-button-wrapper" guide-selector="select-repository-button-wrapper">
<span role="button" class="icon-connection-off icon-lg text-secondary m-0"
gdb-tooltip="{{'connect.repo' | translate}}" tooltip-placement="top"
ng-click="setRepository(repository)"
ng-if="!isRepoActive(repository)"
data-repository-id="{{repository}}"
guide-selector="select-repository-button">
</span>
<span role="button" class="icon-connection-on icon-lg text-tertiary"
gdb-tooltip="{{'connected.tooltip' | translate}}" tooltip-placement="top"
ng-if="isRepoActive(repository)"
guide-selector="select-repository-button">
</span>
</td>
<td>
<div class="lead text-overflow" ng-mouseover="setPopoverRepo(repository)">
<span popover-popup-delay="500"
popover-trigger="mouseenter" popover-placement="bottom-right"
uib-popover-template="popoverTemplate"
popover-title="{{'security.repository.title' | translate}} {{repository.id}}">
<span class="icon-lg" ng-class="'icon-repo-' + repository.type"></span>
<strong class="repository-id">{{repository.id}}</strong></span>
<span class="repository-status"> · <span
class="text-secondary">{{repository.state}}</span></span>
<span ng-if="repository.title"><small> · {{repository.title}}</small></span>
</div>
</td>
<td width="150" class="text-nowrap repository-actions">
<button class="btn btn-link p-0"
ng-click="copyToClipboard(repository.externalUrl)"
gdb-tooltip="{{'copy.repo.url' | translate}}">
<span class="icon-link"></span>
</button>
<span ng-if="location.degradedReason">
<em class="icon-warning icon-lg text-warning"
gdb-tooltip="{{location.degradedReason}}{{'repo.not.supported.delete.or.edit' | translate}}"
tooltip-placement="top"></em>
</span>
<span ng-if="repository.type !== 'system' && !location.degradedReason">
<a class="btn btn-link p-0 edit-repository-btn"
href="repository/edit/{{repository.id}}?location={{repository.location}}"
gdb-tooltip="{{'repoTooltips.editRepository' | translate}}"
tooltip-placement="top">
<span class="icon-edit"></span>
</a>
<a class="btn btn-link p-0 download-turtle-config download-repository-config-btn"
ng-href="{{getRepositoryDownloadLink(repository)}}"
rel="noopener"
target="_blank"
gdb-tooltip="{{'download.repo.config' | translate}}"
tooltip-placement="top">
<em class="icon-download"></em>
</a>
<button class="btn btn-link p-0 restart-repository-btn" type="button"
gdb-tooltip="{{('restart.repo.label' | translate) + ' ' + repository.id}}"
tooltip-placement="top"
ng-click="restartRepository(repository)">
<span class="icon-reload"></span>
</button>
<button class="btn btn-link p-0 secondary delete-repository-btn"
type="button"
gdb-tooltip="{{'delete.repo' | translate}}"
tooltip-placement="top"
ng-click="deleteRepository(repository)">
<em class="icon-trash"></em>
</button>
</span>
</td>
<td width="50">
<button class="btn btn-link p-0 pin-repository-btn"
ng-if="repository.type !== 'system' && location.active"
ng-click="toggleDefaultRepository(repository.id)"
ng-class="getDefaultRepository() === repository.id && location.active ? 'active' : ''"
gdb-tooltip="{{'set.as.default.repo' | translate}}">
<em class="icon-pin"></em>
</button>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Remote GraphDB instances -->
<div ng-if="getLocalLocation(false, RemoteLocationType.GRAPH_DB).length && hasActiveLocation()" class="mb-1">
<h4 class="location-type-title">{{'repositories.location.remote.graph_db.instances' | translate}}</h4>
<table id="wb-locations-locationInGetRemoteLocations" class="table" aria-describedby="Locations repository table">
<tbody>
<tr class="location"
ng-repeat="location in getLocalLocation(false, RemoteLocationType.GRAPH_DB) | orderBy: ['uri']">
<td>
<div>
<div class="pull-left">
<strong>{{'repos.from' | translate}}</strong>
<em ng-if="location.degradedReason" class="icon-warning icon-lg text-warning"
gdb-tooltip="{{location.degradedReason}}{{'repos.degraded.reason.extra.msg' | translate}}"
tooltip-placement="right"></em>
<span class="mr-1">{{location.label}}</span>
</div>
<div ng-if="location.local" class="actions-bar-inline pull-right">
<button
gdb-tooltip="{{'repos.edit.common.settings' | translate}}"
tooltip-placement="top"
class="btn btn-link px-0"
ng-click="openActiveLocationSettings()">
<span class="icon-settings"></span>
</button>
<a class="btn btn-link px-0 pull-right" href="license"
gdb-tooltip="{{'repos.view.update.licenses' | translate}}"
tooltip-placement="top">
<span class="icon-key"></span>
</a>
</div>
<div ng-if="isAdmin() && !location.local" class="actions-bar-inline pull-right">
<button class="btn btn-link p-0"
gdb-tooltip="{{'edit.location' | translate}}" tooltip-placement="top"
ng-click="editLocation(location)">
<em class="icon-edit"></em>
</button>
<button class="btn btn-link p-0 secondary"
gdb-tooltip="{{'detach.location' | translate}}" tooltip-placement="top"
ng-click="deleteLocation(location.uri)">
<em class="icon-close"></em>
</button>
</div>
</div>
<div ng-if="hasActiveLocation()" class="pt-2">
<div class="alert alert-warning no-repositories-alert"
ng-if="!getRepositoriesFromLocation(location.uri).length && !location.errorMsg">
{{'no.repos.in.current.location' | translate}}
</div>
<div class="alert alert-danger" ng-if="location.errorMsg">
{{location.errorMsg}}{{'repos.refresh.page.msg' | translate}}
</div>
<div ng-if="getRepositoriesFromLocation(location.uri).length" class="mb-1">
<table id="wb-repositories-repositoryInRemoteGetRepositories"
class="table table-hover table-striped" aria-describedby="Repositories table">
<tbody>
<tr class="repository"
ng-repeat="repository in getRepositoriesFromLocation(location.uri) | orderBy: ['type === \'system\'', 'location', 'id'] track by repository.hash"
ng-class="{'table-info text-secondary': isRepoActive(repository)}">
<td width="25">
<span role="button" class="icon-connection-off icon-lg text-secondary m-0"
gdb-tooltip="{{'connect.repo' | translate}}" tooltip-placement="top"
ng-click="setRepository(repository)"
ng-if="!isRepoActive(repository)"
data-repository-id="{{repository}}"
guide-selector="repository-{{repository.id}}-plug"></span>
<span role="button" class="icon-connection-on icon-lg text-tertiary"
gdb-tooltip="{{'connected.tooltip' | translate}}" tooltip-placement="top"
ng-if="isRepoActive(repository)"></span>
</td>
<td>
<div class="lead text-overflow" ng-mouseover="setPopoverRepo(repository)">
<span popover-popup-delay="500"
popover-trigger="mouseenter" popover-placement="bottom-right"
uib-popover-template="popoverTemplate"
popover-title="{{'security.repository.title' | translate}} {{repository.id}}">
<span class="icon-lg" ng-class="'icon-repo-' + repository.type"></span>
<strong class="repository-id">{{repository.id}}</strong></span>
<span class="repository-status"> · <span
class="text-secondary">{{repository.state}}</span></span>
<span ng-if="repository.title"><small> · {{repository.title}}</small></span>
</div>
</td>
<td width="150" class="text-nowrap repository-actions">
<button class="btn btn-link p-0"
ng-click="copyToClipboard(repository.externalUrl)"
gdb-tooltip="{{'copy.repo.url' | translate}}">
<span class="icon-link"></span>
</button>
<span ng-if="location.degradedReason">
<em class="icon-warning icon-lg text-warning"
gdb-tooltip="{{location.degradedReason}}{{'repo.not.supported.delete.or.edit' | translate}}"
tooltip-placement="top"></em>
</span>
<span ng-if="repository.type !== 'system' && !location.degradedReason">
<a class="btn btn-link p-0 edit-repository-btn"
href="repository/edit/{{repository.id}}?location={{repository.location}}"
gdb-tooltip="{{'repoTooltips.editRepository' | translate}}"
tooltip-placement="top">
<span class="icon-edit"></span>
</a>
<a class="btn btn-link p-0 download-turtle-config download-repository-config-btn"
ng-href="{{getRepositoryDownloadLink(repository)}}"
rel="noopener"
target="_blank"
gdb-tooltip="{{'download.repo.config' | translate}}"
tooltip-placement="top">
<em class="icon-download"></em>
</a>
<button class="btn btn-link p-0 restart-repository-btn" type="button"
gdb-tooltip="{{'restart.repo.label' | translate}} {{repository.id}}"
tooltip-placement="top"
ng-click="restartRepository(repository)">
<span class="icon-reload"></span>
</button>
<button class="btn btn-link p-0 secondary delete-repository-btn"
type="button"
gdb-tooltip="{{'delete.repo' | translate}}"
tooltip-placement="top"
ng-click="deleteRepository(repository)">
<em class="icon-trash"></em>
</button>
</span>
</td>
<td width="50">
<button class="btn btn-link p-0 pin-repository-btn"
ng-if="repository.type !== 'system' && location.active"
ng-click="toggleDefaultRepository(repository.id)"
ng-class="getDefaultRepository() === repository.id && location.active ? 'active' : ''"
gdb-tooltip="{{'set.as.default.repo' | translate}}">
<em class="icon-pin"></em>
</button>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Remote Ontopic and SPARQL instances -->
<div ng-if="hasAnyRemoteLocation(false, [RemoteLocationType.SPARQL, RemoteLocationType.ONTOPIC])" class="mb-1 ontopic-instances">
<h4 class="remote-location-type-title">{{'repositories.location.sparql.instances' | translate}}</h4>
<table id="wb-repositories-ontopic-sparql-repositoryInGetRepositories"
class="table table-hover table-striped" aria-describedby="Repositories table">
<tbody>
<tr ng-repeat="location in getLocalLocation(false, RemoteLocationType.ONTOPIC) | orderBy: ['type === \'system\'', 'location', 'id']"
ng-class="{'table-info text-secondary': isRepoActive(location)}">
<td class="lead text-overflow">
<strong class="location-url">{{location.uri}}</strong>
<span class="location-type"> · <span
class="text-secondary">{{location.locationType}}</span></span>
</td>
<td>
<div ng-if="isAdmin()" class="actions-bar-inline pull-right">
<button class="btn btn-link p-0 edit-ontopic-location"
gdb-tooltip="{{'edit.location' | translate}}" tooltip-placement="top"
ng-click="editLocation(location)">
<em class="icon-edit"></em>
</button>
<button class="btn btn-link p-0 secondary delete-ontopic-location"
gdb-tooltip="{{'detach.location' | translate}}" tooltip-placement="top"
ng-click="deleteLocation(location.uri)">
<em class="icon-close"></em>
</button>
</div>
</td>
</tr>
<tr ng-if="getLocalLocation(false, RemoteLocationType.SPARQL).length" class="mb-1 sparql-instances"
ng-repeat="location in getLocalLocation(false, RemoteLocationType.SPARQL) | orderBy: ['type === \'system\'', 'location', 'id']"
ng-class="{'table-info text-secondary': isRepoActive(location)}">
<td class="lead text-overflow">
<strong class="location-url">{{location.uri}}</strong>
<span class="location-type"> · <span
class="text-secondary">{{location.locationType}}</span></span>
</td>
<td>
<div ng-if="isAdmin()" class="actions-bar-inline pull-right">
<button class="btn btn-link p-0 edit-sparql-location"
gdb-tooltip="{{'edit.location' | translate}}" tooltip-placement="top"
ng-click="editLocation(location)">
<em class="icon-edit"></em>
</button>
<button class="btn btn-link p-0 secondary delete-sparql-location"
gdb-tooltip="{{'detach.location' | translate}}" tooltip-placement="top"
ng-click="deleteLocation(location.uri)">
<em class="icon-close"></em>
</button>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div class="btns-all" ng-if="getLocationError()">
<div class="btn-group" uib-dropdown>
<a id="wb-repositories-addRepositoryLink" class="btn btn-primary" ng-href="repository/create" guide-selector="createRepository"><span
class="icon-plus"></span> {{'repository.create.btn' | translate}}</a>
<button type="button" class="btn btn-primary dropdown-toggle-split dropdown-toggle" uib-dropdown-toggle>
<span class="sr-only">{{'split.btn' | translate}}</span>
</button>
<ul class="dropdown-menu" role="menu">
<li><a class="dropdown-item" href ng-click="fromFile()">{{'create.from.file' | translate}}</a></li>
</ul>
</div>
<button id="addAttachRemoteLocation" ng-click="addLocation()" class="btn btn-primary pull-right"><span
class="icon-plus"></span>{{'attach.remote.location' | translate}}
</button>
</div>
</div>