Skip to content
Snippets Groups Projects
Commit c74be89e authored by Paul's avatar Paul
Browse files

initial commit of dashboard skin

parent 928881b3
No related branches found
No related tags found
No related merge requests found
Showing
with 12853 additions and 0 deletions
# pygeoapi-skin-dashboard # pygeoapi-skin-dashboard
A skin for [pygeoapi](http://pygeoapi.io), based on a typical dashboard interface A skin for [pygeoapi](http://pygeoapi.io), based on a typical dashboard interface
![Snapshot of skin](snap.png)
Skin is inspired by [StartBootstrap Dashboard](https://startbootstrap.com/theme/sb-admin-2). Skin is inspired by [StartBootstrap Dashboard](https://startbootstrap.com/theme/sb-admin-2).
# Installation # Installation
......
snap.png 0 → 100644
snap.png

245 KiB

.flat {
border: 0px;
}
header {
display: inline-block;
}
main {
background-color:white
}
.crumbs {
background-color:rgb(230, 230, 230);
padding: 6px;
}
.crumbs a {
padding: 0px 6px;
color:black;
/* text-transform: capitalize;*/
}
#items-map {
width: 100%;
height: 400px;
}
/* cancel mini-css header>button uppercase */
header button, header [type="button"], header .button, header [role="button"] {
text-transform: none;
}
html, body {
background-color: #fff;
}
footer.sticky {
position: fixed;
width: 100%;
}
main {
padding-bottom: 65px; /* prevent from falling under the footer */
}
table:not(.horizontal) {
max-height: none;
}
This diff is collapsed.
This diff is collapsed.
static/img/favicon.ico

1.12 KiB

static/img/logo.png

21 KiB

static/img/pygeoapi.png

21 KiB

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="{{ config['server']['encoding'] }}">
<title>{% block title %}{{ config['metadata']['identification']['title'] }} -{% endblock %}</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="language" content="{{ config['server']['language'] }}">
<meta name="description" content="{{ config['metadata']['identification']['title'] }}">
<meta name="keywords" content="{{ config['metadata']['identification']['keywords']|join(',') }}">
<link rel="shortcut icon" href="{{ config['server']['url'] }}/static/img/favicon.ico" type="image/x-icon">
<!-- Custom fonts for this template-->
<link href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" type="text/css">
<link
href="https://fonts.googleapis.com/css?family=Nunito:200,200i,300,300i,400,400i,600,600i,700,700i,800,800i,900,900i"
rel="stylesheet">
<link rel="stylesheet" href="{{ config['server']['url'] }}/static/css/default.css">
<!-- Custom styles for this template-->
<link href="{{ config['server']['url'] }}/static/css/sb.css" rel="stylesheet">
{% for link in data['links'] %}
<link rel="{{ link['rel'] }}" type="{{ link['type'] }}" title="{{ link['title'] }}" href="{{ link['href'] }}"/>
{% if (link['rel']=="self" and link['type']=="text/html") %}
<link rel="canonical" href="{{ link['href'].split('?')[0] }}" />
{% endif %}
{% endfor %}
{% block extrahead %}
{% endblock %}
</head>
<body id="page-top">
<!-- Page Wrapper -->
<div id="wrapper">
<!-- Sidebar -->
<ul class="navbar-nav bg-gradient-primary sidebar sidebar-dark accordion" id="accordionSidebar">
<!-- Sidebar - Brand -->
<a class="sidebar-brand d-flex align-items-center justify-content-center" style="background-color:white"
href="{{ config['server']['url'] }}" class="logo" role="button">
<img src="{{ config['server']['url'] }}/static/img/logo.png" title="{{ config['metadata']['identification']['title'] }}" style="height:40px;vertical-align: middle;" /></a>
</a>
<!-- Divider -->
<hr class="sidebar-divider my-0">
<li class="nav-item">
<a class="nav-link" href="{{ config['server']['url'] }}">
<i class="fas fa-fw fa-home"></i>
Home</a>
</li>
<!-- Divider -->
<hr class="sidebar-divider"/>
<div class="sidebar-heading">
Resources
</div>
<!-- Nav Item -->
<li class="nav-item">
<a class="nav-link" href="{{ config['server']['url'] }}/collections">
<i class="fas fa-fw fa-table"></i>
Collections</a>
</li>
{% if data['stac'] %}
<!-- Nav Item -->
<li class="nav-item">
<a class="nav-link" href="{{ config['server']['url'] }}/stac">
<i class="fas fa-fw fa-image"></i>
SpatioTemporal Assets</a>
</li>
{% endif %}
{% if data['processes'] %}
<!-- Nav Item -->
<li class="nav-item">
<a class="nav-link" href="{{ config['server']['url'] }}/processes">
<i class="fas fa-fw fa-wrench"></i>
Processes</a>
</li>
{% endif %}
<!-- Divider -->
<hr class="sidebar-divider">
<div class="sidebar-heading">
Documentation
</div>
<!-- Nav Item -->
<li class="nav-item">
<a class="nav-link" href="{{ config['server']['url'] }}/openapi">
<i class="fas fa-fw fa-cog"></i>
API Definition</a>
</li>
<!-- Nav Item -->
<li class="nav-item">
<a class="nav-link" href="conformance">
<i class="fas fa-fw fa-tachometer-alt"></i>
Conformance</a>
</li>
</ul>
<!-- End of Sidebar -->
<!-- Content Wrapper -->
<div id="content-wrapper" class="d-flex flex-column">
<!-- Main Content -->
<div id="content">
<!-- Topbar -->
<nav class="navbar navbar-expand navbar-light bg-white topbar mb-4 static-top shadow">
<!-- Sidebar Toggle (Topbar) -->
<button id="sidebarToggleTop" class="btn btn-link d-md-none rounded-circle mr-3">
<i class="fa fa-bars"></i>
</button>
<div>
{% block crumbs %}
<a href="{{ config['server']['url'] }}">Home</a>
{% endblock %}
</div>
<!-- Topbar Navbar -->
<ul class="navbar-nav ml-auto">
<li class="nav-item"><a class="nav-link" href="{{ data['links'] | map(rel='self') | attr('href') }}?f=json">JSON</a></li>
<li class="nav-item"><a class="nav-link" href="{{ data['links'] | map(rel='self') | attr('href') }}?f=jsonld">JSON-LD</a></li>
</ul>
</nav>
<!-- End of Topbar -->
<!-- Begin Page Content -->
<div class="container-fluid">
<!-- Page Heading
<div class="d-sm-flex align-items-center justify-content-between mb-4">
<h1 class="h3 mb-0 text-gray-800">Dashboard</h1>
<a href="#" class="d-none d-sm-inline-block btn btn-sm btn-primary shadow-sm"><i
class="fas fa-download fa-sm text-white-50"></i> Generate Report</a>
</div>-->
<!-- Content Row -->
{% block body %}
{% endblock %}
</div>
<!-- End of Main Content -->
</div>
<!-- Footer -->
<footer class="sticky-footer bg-dark">
<div class="container my-auto">
<div class="my-auto">
<div class="row">
<div class="col-md-3">
<b>Service provided by:</b><br/>
<a itemprop="url" href="{{ config['metadata']['provider']['url'] }}">{{ config['metadata']['provider']['name'] }}</a><br/>
<b>Address</b><br/>
{{ config['metadata']['contact']['address'] }}<br/>
{{ config['metadata']['contact']['city'] }},
{{ config['metadata']['contact']['stateorprovince'] }}<br/>
{{ config['metadata']['contact']['postalcode'] }}<br/>
{{ config['metadata']['contact']['country'] }}
</div>
<div class="col-md-3">
<b>Email</b><br/>
<a href="mailto:{{ config['metadata']['contact']['email'] }}">{{ config['metadata']['contact']['email'] }}</a><br/>
{% if config['metadata']['contact']['phone'] %}
<b>Telephone</b><br/>
<a href="tel:{{ config['metadata']['contact']['phone'] }}">{{ config['metadata']['contact']['phone'] }}</a><br/>
{% endif %}
{% if config['metadata']['contact']['fax'] %}
<b>Fax</b><br/>
<a href="tel:{{ config['metadata']['contact']['fax'] }}">{{ config['metadata']['contact']['fax'] }}</a><br/>
{% endif %}
{% if config['metadata']['contact']['url'] %}
<b>Web</b><br/>
<a href="{{ config['metadata']['contact']['url'] }}">{{ config['metadata']['contact']['url'] }}</a><br/>
{% endif %}
</div>
<div class="col-md-3">
{% if config['metadata']['contact']['hours'] %}
<b>Hours</b><br/>
{{ config['metadata']['contact']['hours'] }}<br/>
{% endif %}
{% if config['metadata']['contact']['instructions'] %}
<b>Contact instructions</b><br/>
{{ config['metadata']['contact']['instructions'] }}
{% endif %}
</div>
<div class="col-md-3">
{% if config['metadata']['identification']['terms_of_service'] %}
<p>
<b>Terms of service</b><br/>
{{ config['metadata']['identification']['terms_of_service'] | urlize() }}
</p>
{% endif %}
{% if config['metadata']['license']['url'] %}
<p>
<b>License</b><br/>
<a href="{{ config['metadata']['license']['url'] }}">
{{ config['metadata']['license']['name'] or config['metadata']['license']['url'] }}</a>
</p>
{% endif %}
</div>
</div>
</div>
</div>
</footer>
<!-- End of Footer -->
</div>
<!-- End of Content Wrapper -->
</div>
<!-- End of Page Wrapper -->
<script>
// Requests and embeds JSON-LD representation of current page
var xhr = new XMLHttpRequest();
var path = window.location.protocol + "//" + window.location.host + window.location.pathname + "?f=jsonld";
xhr.open('GET', path);
xhr.onload = function() {
if (xhr.status === 200) {
var head = document.getElementsByTagName('head')[0];
var jsonld_datablock = document.createElement('script');
jsonld_datablock.type = "application/ld+json";
jsonld_datablock.textContent = xhr.responseText;
head.appendChild(jsonld_datablock);
}
};
xhr.send();
</script>
</body>
</html>
{% extends "base.html" %}
{% block title %}{{ super() }} {{ data['title'] }} {% endblock %}
{% block crumbs %}{{ super() }}
/ <a href="../collections">Collections</a>
/ <a href="./{{ data['id'] }}">{{ data['title'] }}</a>
{% endblock %}
{% block body %}
<section id="collection" itemscope itemtype="https://schema.org/Dataset">
<span itemprop="includedInDataCatalog" itemscope itemtype="https://schema.org/DataCatalog">
<meta itemprop="url" content="{{ config['server']['url'] }}/collections" />
<meta itemprop="name" content="{{ config['metadata']['identification']['title'] | striptags }}" />
<meta itemprop="description" content="{{ config['metadata']['identification']['description'] | striptags }}" />
</span>
<h1 itemprop="name">{{ data['title'] }}</h1>
<meta itemprop="url" content="{{ config['server']['url'] }}" />
<p itemprop="description">{{ data['description'] }}</p>
<p itemprop="keywords">
{% for kw in data['keywords'] %}
<mark class="tag">{{ kw }}</mark>
{% endfor %}
</p>
{% if data['itemType'] == 'Feature' %}
<h3>Queryables</h3>
<ul>
<li>
<div>
<meta itemprop="encodingFormat" content="text/html" />
<a title="Display Queryables" itemprop="contentURL" href="{{ config['server']['url'] }}/collections/{{ data['id'] }}/queryables">
Display Queryables of "{{ data['title'] }}"</a></div>
</li>
</ul>
<h3>View</h3>
<ul>
<li>
<div itemprop="distribution" itemscope itemtype="https://schema.org/DataDownload">
<meta itemprop="encodingFormat" content="text/html" />
<a title="Browse Items" itemprop="contentURL" href="{{ config['server']['url'] }}/collections/{{ data['id'] }}/items">
Browse through the items of "{{ data['title'] }}"</a></div>
</li>
</ul>
{% for provider in config['resources'][data['id']]['providers'] %}
{% if 'tile' in provider['type'] %}
<h3>Tiles</h3>
<ul>
<li>
<div>
<meta itemprop="encodingFormat" content="text/html" />
<a title="Display Tiles" itemprop="contentURL" href="{{ config['server']['url'] }}/collections/{{ data['id'] }}/tiles">Display Tiles of "{{ data['title'] }}"</a>
</div>
</li>
</ul>
{% endif %}
{% endfor %}
{% endif %}
<h3>Links</h3>
<ul>
{% for link in data['links'] %}
<li itemprop="distribution" itemscope itemtype="https://schema.org/DataDownload">
<a itemprop="contentURL" title="{{ link['rel'] }}" href="{{ link['href'] }}">
<span itemprop="name">{{ link['title'] }}</span> (<span itemprop="encodingFormat">{{ link['type'] }}</span>)
<meta itemprop="inLanguage" content="{{ link['hreflang'] }}" />
</a></li>
{% endfor %}
</ul>
</section>
{% endblock %}
{% extends "base.html" %}
{% block title %}{{ super() }} Collections {% endblock %}
{% block crumbs %}{{ super() }}
/ <a href="./collections">Collections</a>
{% endblock %}
{% block body %}
<section id="collections" itemscope itemtype="https://schema.org/DataCatalog">
<meta itemprop="url" content="{{ config['server']['url'] }}" />
<meta itemprop="name" content="{{ config['metadata']['identification']['title'] | striptags }}" />
<meta itemprop="description" content="{{ config['metadata']['identification']['description'] | striptags }}" />
<h2>Collections in this service</h2>
<table class="striped">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
{% for k, v in filter_dict_by_key_value(config['resources'], 'type', 'collection').items() %}
<tr itemprop="dataset" itemscope itemtype="https://schema.org/Dataset">
<td data-label="name">
<meta itemprop="url" content="{{ config['server']['url'] }}/collections/{{ k }}" />
<a title="{{ v['title'] | striptags | truncate }}"
href="{{ config['server']['url'] }}/collections/{{ k }}">
<span itemprop="name">{{ v['title'] | striptags | truncate }}</span></a>
</td>
<td itemprop="description" data-label="description">
{{ v['description'] | striptags | truncate }}
</td>
</tr>
{% endfor %}
</tbody>
</table>
</section>
{% endblock %}
{% extends "base.html" %}
{% block title %}{{ super() }} Conformance {% endblock %}
{% block crumbs %}{{ super() }}
/ <a href="./conformance">Conformance</a>
{% endblock %}
{% block body %}
<section id="conformance">
<h2>Conformance</h2>
<ul>
{% for link in data['conformsTo'] %}
<li><a title="{{ link }}" href="{{ link }}">{{ link }}</a></li>
{% endfor %}
</ul>
</section>
{% endblock %}
{% extends "base.html" %}
{% block title %}{{ super() }} {{ data['title'] }} {% endblock %}
{% block crumbs %}{{ super() }}
/ <a href="../../">Collections</a>
/ <a href="../../../collections/{{ data['id'] }}">{{ data['title'] }}</a>
{% endblock %}
{% block body %}
<section id="collection" itemscope itemtype="https://schema.org/Dataset">
<span itemprop="includedInDataCatalog" itemscope itemtype="https://schema.org/DataCatalog">
<meta itemprop="url" content="{{ config['server']['url'] }}/collections" />
<meta itemprop="name" content="{{ config['metadata']['identification']['title'] | striptags }}" />
<meta itemprop="description" content="{{ config['metadata']['identification']['description'] | striptags }}" />
</span>
<h1 itemprop="name">{{ data['title'] }}</h1>
<meta itemprop="url" content="{{ config['server']['url'] }}" />
<p itemprop="description">{{ data['description'] }}</p>
<h3>Coverage domain set</h3>
<h4>Axis labels</h4>
<ul>
{% for al in data['generalGrid']['axisLabels'] %}
<li>{{ al }}</li>
{% endfor %}
</ul>
<h4>Extent</h4>
<ul>
<li>minx: {{ data['generalGrid']['axis'][0]['lowerBound'] }}</li>
<li>miny: {{ data['generalGrid']['axis'][1]['lowerBound'] }}</li>
<li>maxx: {{ data['generalGrid']['axis'][0]['upperBound'] }}</li>
<li>maxy: {{ data['generalGrid']['axis'][1]['upperBound'] }}</li>
<li>Coordinate reference system: {{ data['generalGrid']['srsName'] }}</li>
</ul>
<h4>Size</h4>
<ul>
<li>width: {{ data['generalGrid']['gridLimits']['axis'][0]['upperBound'] }} </li>
<li>height: {{ data['generalGrid']['gridLimits']['axis'][1]['upperBound'] }} </li>
</ul>
<h4>Resolution</h4>
<ul>
<li>x: {{ data['generalGrid']['axis'][0]['resolution'] }} </li>
<li>y: {{ data['generalGrid']['axis'][1]['resolution'] }} </li>
</ul>
</section>
{% endblock %}
This diff is collapsed.
{% extends "base.html" %}
{# Optionally renders an img element, otherwise standard value or link rendering #}
{% macro render_item_value(v, width) -%}
{% set val = v | string | trim %}
{% if val|length and val.lower().endswith(('.jpg', '.jpeg', '.png', '.gif', '.bmp')) %}
{# Ends with image extension: render img element with link to image #}
<a href="{{ val }}"><img src="{{ val }}" alt="" width="{{ width }}"/></a>
{% else %}
{# All other cases: text or link value #}
{{ v | urlize() }}
{% endif %}
{%- endmacro %}
{% block title %}{{ super() }} {{ data['title'] }} - {{ data['id'] }}{% endblock %}
{% block crumbs %}{{ super() }}
/ <a href="../../../collections">Collections</a>
{% for link in data['links'] %}
{% if link.rel == 'collection' %}
/ <a href="{{ link['href'] }}">{{ link['title'] }}</a>
{% endif %}
{% endfor %}
/ <a href="../items">Items</a>
/ <a href="./{{ data['id'] }}">Item {{ data['id'] }}</a>
{% endblock %}
{% block extrahead %}
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.3.1/dist/leaflet.css"/>
<script src="https://unpkg.com/leaflet@1.3.1/dist/leaflet.js"></script>
{% endblock %}
{% block body %}
<section id="item">
<div class="row">
<div class="col-sm">
<h2>Item {{ data['id'] }}</h2>
</div>
</div>
<div class="row">
<div class="col-md-6 col-sm-12">
<div class="row">
<div class="col-sm-12">
<div id="items-map"></div>
</div>
</div>
<div class="row">
<div class="col-sm-12">
{% if data['prev'] or data['next'] %}
<div class="row">
<div class="col-sm-12">
{% for link in data['links'] %}
{% if link['rel'] == 'prev' %}
<a role="button" href="./{{ data['prev'] }}">Previous</a>
{% elif link['rel'] == 'next' %}
<a role="button" href="./{{ data['next'] }}">Next</a>
{% endif %}
{% endfor %}
</div>
</div>
{% endif %}
</div>
</div>
</div>
<div class="col-md-6 col-sm-12">
<table class="striped">
<thead>
<tr>
<th>Property</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>id</td>
<td>{{ data.id }}</td>
</tr>
{% for k, v in data['properties'].items() %}
<tr>
<td>{{ k }}</td>
{% if k == 'links' %}
<td>
<ul>
{% for l in v %}
<li><a href="{{ l['href'] }}">{{ l['title'] }}</a></li>
{% endfor %}
</ul>
</td>
{% else %}
<td>{{ render_item_value(v, 80) }}</td>
{% endif %}
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
</section>
{% endblock %}
{% block extrafoot %}
<script>
var map = L.map('items-map').setView([{{ 45 }}, {{ -75 }}], 10);
map.addLayer(new L.TileLayer(
'{{ config['server']['map']['url'] }}', {
maxZoom: 18,
attribution: '{{ config['server']['map']['attribution'] }}'
}
));
var geojson_data = {{ data |to_json }};
var items = new L.GeoJSON(geojson_data);
map.addLayer(items);
map.fitBounds(items.getBounds(), {maxZoom: 10});
</script>
{% endblock %}
{% extends "base.html" %}
{% block title %}{{ super() }} {{ data['title'] }} {% endblock %}
{% block crumbs %}{{ super() }}
/ <a href="{{ data['collections_path'] }}">Collections</a>
{% for link in data['links'] %}
{% if link.rel == 'collection' %} /
<a href="{{ data['dataset_path'] }}">{{ link['title'] }}</a>
{% set col_title = link['title'] %}
{% endif %}
{% endfor %}
/ <a href="{{ data['items_path']}}">Items</a>
{% endblock %}
{% block extrahead %}
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.3.1/dist/leaflet.css"/>
<script src="https://unpkg.com/leaflet@1.3.1/dist/leaflet.js"></script>
{% endblock %}
{% block body %}
<section id="items"></section>
<section id="collection">
<h1>{% for l in data['links'] if l.rel == 'collection' %} {{ l['title'] }} {% endfor %}</h1>
<p>Items in this collection.</p>
</section>
<section id="items">
{% if data['features'] %}
<div class="row">
<div class="col-sm-12 col-md-6">
<div class="row">
<div class="col-sm-12">
<div id="items-map"></div>
</div>
<div class="col-sm-12">
<div class="row">
<div class="col-sm-12">
Warning: Higher limits not recommended!
</div>
</div>
<div class="row">
<div class="col-sm-12">
Limit:
<select id="limits">
<option value="10">10 (default)</option>
<option value="100">100</option>
<option value="1000">1,000</option>
<option value="2000">2,000</option>
</select>
<script>
var select = document.getElementById('limits');
let params = (new URL(document.location)).searchParams;
select.value = params.get('limit') || 10;
select.addEventListener('change', ev => {
var limit = ev.target.value;
document.location.search = `limit=${limit}`;
});
</script>
</div>
</div>
<div class="row">
<div class="col-sm-12">
{% for link in data['links'] %}
{% if link['rel'] == 'prev' and data['startindex'] > 0 %}
<a role="button" href="{{ link['href'] }}">Prev</a>
{% elif link['rel'] == 'next' and data['features'] %}
<a role="button" href="{{ link['href'] }}">Next</a>
{% endif %}
{% endfor %}
</div>
</div>
</div>
</div>
</div>
<div class="col-sm-12 col-md-6">
<table class="striped">
<thead>
<tr>
<th>id</th>
{% for k, v in data['features'][0]['properties'].items() %}
{% if loop.index < 5 %}
<td>{{ k }}</td>
{% endif %}
{% endfor %}
</tr>
</thead>
<tbody>
{% for ft in data['features'] %}
<tr>
<td data-label="id"><a href="{{ data['items_path']}}/{{ ft.id }}">{{ ft.id }}</a></td>
{% for k, v in ft['properties'].items() %}
{% if loop.index < 5 %}
<td data-label="{{ k }}">{{ v | urlize(20) }}</td>
{% endif %}
{% endfor %}
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
{% else %}
<div class="row col-sm-12">
<p>No items</p>
</div>
{% endif %}
</section>
{% endblock %}
{% block extrafoot %}
{% if data['features'] %}
<script>
var map = L.map('items-map').setView([{{ 45 }}, {{ -75 }}], 5);
map.addLayer(new L.TileLayer(
'{{ config['server']['map']['url'] }}', {
maxZoom: 18,
attribution: '{{ config['server']['map']['attribution'] }}'
}
));
var geojson_data = {{ data['features'] |to_json }};
var items = new L.GeoJSON(geojson_data, {
onEachFeature: function (feature, layer) {
var url = '{{ data['items_path'] }}/' + feature.id + '?f=html';
var html = '<span><a href="' + url + '">' + feature.id + '</a></span>';
layer.bindPopup(html);
}
});
map.addLayer(items);
map.fitBounds(items.getBounds());
</script>
{% endif %}
{% endblock %}
{% extends "base.html" %}
{% block title %}{{ super() }} Home {% endblock %}
{% block body %}
<div class="row">
<div class="col-sm-12">
<h1>{{ config['metadata']['identification']['title'] }}</h1>
<p>{{ config['metadata']['identification']['description'] }}</p>
<p>
{% for kw in config['metadata']['identification']['keywords'] %}
<mark class="badge badge-info">{{ kw }}</mark>
{% endfor %}
</p>
</div>
</div>
{% endblock %}
<!-- HTML for static distribution bundle build -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Swagger UI - {{ config['metadata']['identification']['title'] }}</title>
<link rel="stylesheet" type="text/css" href="https://unpkg.com/swagger-ui-dist@3.28.0/swagger-ui.css" >
<link rel="icon" type="image/png" href="https://unpkg.com/swagger-ui-dist@3.28.0/favicon-32x32.png" sizes="32x32" />
<link rel="icon" type="image/png" href="https://unpkg.com/swagger-ui-dist@3.28.0/favicon-16x16.png" sizes="16x16" />
<style>
html
{
box-sizing: border-box;
overflow: -moz-scrollbars-vertical;
overflow-y: scroll;
}
*,
*:before,
*:after
{
box-sizing: inherit;
}
body
{
margin:0;
background: #fafafa;
}
</style>
</head>
<body>
<div id="swagger-ui"></div>
<script src="https://unpkg.com/swagger-ui-dist@3.28.0/swagger-ui-bundle.js"> </script>
<script src="https://unpkg.com/swagger-ui-dist@3.28.0/swagger-ui-standalone-preset.js"> </script>
<script>
window.onload = function() {
// Begin Swagger UI call region
ui = SwaggerUIBundle({
url: '{{ data['openapi-document-path'] }}',
dom_id: '#swagger-ui',
deepLinking: true,
presets: [
SwaggerUIBundle.presets.apis,
SwaggerUIStandalonePreset
],
plugins: [
SwaggerUIBundle.plugins.DownloadUrl
],
layout: 'StandaloneLayout'
})
// End Swagger UI call region
window.ui = ui
}
</script>
<style>.swagger-ui .topbar .download-url-wrapper { display: none } undefined</style>
</body>
</html>
{% extends "base.html" %}
{% block title %}{{ super() }} {{ data['title'] }} {% endblock %}
{% block crumbs %}{{ super() }}
/ <a href="../processes">Processes</a>
/ <a href="./{{ data['id'] }}">{{ data['title'] }}</a>
{% endblock %}
{% block body %}
<section id="processes" itemscope itemtype="https://schema.org/WebAPI">
<h2 itemprop="name">{{ data['title'] }}</h2>
<div itemprop="description">{{ data['description'] }}</div>
<meta itemprop="url" content="{{ config['server']['url'] }}/processes/{{ data['id'] }}" />
<div class="row">
<div class="col-sm-12 col-md-6">
<table class="striped">
<caption>Inputs</caption>
<thead>
<tr>
<th>Id</th>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
{% for input_ in data['inputs'] %}
<tr itemprop="parameter" itemscope itemtype="https://schema.org/Parameter">
<td itemprop="id" data-label="name">{{ input_['id'] }}</td>
<td itemprop="name" data-label="title">{{ input_['title'] }}</td>
<td itemprop="description" data-label="description">
{{ input_['description'] | striptags | truncate }}
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
<h2>Links</h2>
<ul>
{% for link in data['links'] %}
<li>
<a itemprop="documentation" title="{{ link['rel'] }}" href="{{ link['href'] }}">
{{ link['title'] }} ({{ link['type'] }})
</a></li>
{% endfor %}
</ul>
</section>
{% endblock %}
{% extends "base.html" %}
{% block title %}{{ super() }} Processes {% endblock %}
{% block crumbs %}{{ super() }}
/ <a href="./processes">Processes</a>
{% endblock %}
{% block body %}
<section id="processes">
<h2>Processes available on this service</h2>
<div class="row">
<div class="col-sm-12 col-md-6">
<table class="striped">
<caption>Processes</caption>
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
{% for p in data['processes'] %}
<tr itemscope itemtype="https://schema.org/WebAPI">
<td itemprop="name" data-label="name">
<meta itemprop="url" content="{{ config['server']['url'] }}/processes/{{ p['id'] }}" />
<a title="{{ p['title'] | striptags | truncate }}" href="{{ config['server']['url'] }}/processes/{{ p['id'] }}">{{ p['title'] | striptags | truncate }}</a>
</td>
<td itemprop="description" data-label="description">
{{ p['description'] | striptags | truncate }}
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
</section>
{% endblock %}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment