openactive-dataset_site 0.1.1 → 6.0.1
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.
- checksums.yaml +5 -5
- data/.github/workflows/create-dataset-site-template-pr.yaml +63 -0
- data/.github/workflows/release.yaml +39 -0
- data/.github/workflows/tests.yaml +66 -0
- data/README.md +71 -25
- data/Rakefile +6 -0
- data/examples/basic_csp_example_with_booking.rb +41 -0
- data/examples/basic_example.rb +2 -2
- data/examples/basic_example_with_booking.rb +41 -0
- data/examples/basic_example_with_booking_minimal.rb +35 -0
- data/examples/dataset_csp_example_with_booking.rb +92 -0
- data/examples/dataset_example.rb +7 -2
- data/examples/dataset_example_with_booking.rb +92 -0
- data/examples/dataset_patch.rb +3 -3
- data/examples/specific_feed_override_example.rb +2 -2
- data/examples/specific_feed_override_example2.rb +2 -2
- data/lib/openactive/dataset_site/datasetsite-csp.mustache +205 -0
- data/lib/openactive/dataset_site/datasetsite-csp.static.zip +0 -0
- data/lib/openactive/dataset_site/datasetsite.mustache +1158 -829
- data/lib/openactive/dataset_site/settings.rb +76 -8
- data/lib/openactive/dataset_site/template_renderer.rb +15 -5
- data/lib/openactive/dataset_site/version.rb +1 -1
- metadata +14 -4
@@ -0,0 +1,92 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'bundler/setup'
|
3
|
+
|
4
|
+
require "openactive/dataset_site"
|
5
|
+
|
6
|
+
dataset = OpenActive::Models::Dataset.new(
|
7
|
+
id: "http://example.com/dataset/",
|
8
|
+
url: "http://example.com/dataset/",
|
9
|
+
description:
|
10
|
+
"Near real-time availability and rich descriptions relating to the facilities and sessions available from Simpleweb",
|
11
|
+
access_service:
|
12
|
+
OpenActive::Models::WebAPI.new(
|
13
|
+
name: 'Open Booking API',
|
14
|
+
description: "API that allows for seamless booking experiences to be created for facilities and sessions available from Simpleweb",
|
15
|
+
documentation: "https://permalink.openactive.io/dataset-site/open-booking-api-documentation",
|
16
|
+
terms_of_service: "https://example.com/api-terms-page",
|
17
|
+
endpoint_url: "https://reference-implementation.openactive.io/api/openbooking",
|
18
|
+
authentication_authority: "https://auth.reference-implementation.openactive.io",
|
19
|
+
conforms_to: ["https://openactive.io/open-booking-api/EditorsDraft/"],
|
20
|
+
endpoint_description: "https://www.openactive.io/open-booking-api/EditorsDraft/swagger.json",
|
21
|
+
landing_page: "https://example.com/api-landing-page"
|
22
|
+
),
|
23
|
+
date_modified: "2019-12-09T15:36:15+00:00",
|
24
|
+
keywords:
|
25
|
+
["Facilities",
|
26
|
+
"Sessions",
|
27
|
+
"Activities",
|
28
|
+
"Sports",
|
29
|
+
"Physical Activity",
|
30
|
+
"OpenActive"],
|
31
|
+
schema_version: "https://www.openactive.io/modelling-opportunity-data/2.0/",
|
32
|
+
license: "https://creativecommons.org/licenses/by/4.0/",
|
33
|
+
publisher:
|
34
|
+
OpenActive::Models::Organization.new(
|
35
|
+
name: "Simpleweb",
|
36
|
+
description:
|
37
|
+
"Simpleweb is a purpose driven software company that specialises in new technologies, product development, and human interaction.",
|
38
|
+
url: "https://www.simpleweb.co.uk/",
|
39
|
+
legalName: "Simpleweb Ltd",
|
40
|
+
logo:
|
41
|
+
OpenActive::Models::ImageObject.new(
|
42
|
+
url:
|
43
|
+
"https://simpleweb.co.uk/wp-content/uploads/2015/07/facebook-default.png",
|
44
|
+
),
|
45
|
+
email: "spam@simpleweb.co.uk",
|
46
|
+
),
|
47
|
+
discussion_url: "https://github.com/simpleweb/sw-oa-php-test-site",
|
48
|
+
date_published: "2019-11-05T00:00:00+00:00",
|
49
|
+
in_language: ["en-GB"],
|
50
|
+
distribution:
|
51
|
+
[OpenActive::Models::DataDownload.new(
|
52
|
+
name: "FacilityUse",
|
53
|
+
additional_type: "https://openactive.io/FacilityUse",
|
54
|
+
encoding_format: "application/vnd.openactive.rpde+json; version=1",
|
55
|
+
content_url: "http://example.com/feed/facility-uses",
|
56
|
+
),
|
57
|
+
OpenActive::Models::DataDownload.new(
|
58
|
+
name: "ScheduledSession",
|
59
|
+
additional_type: "https://openactive.io/ScheduledSession",
|
60
|
+
encoding_format: "application/vnd.openactive.rpde+json; version=1",
|
61
|
+
content_url: "http://example.com/feed/scheduled-sessions",
|
62
|
+
),
|
63
|
+
OpenActive::Models::DataDownload.new(
|
64
|
+
name: "SessionSeries",
|
65
|
+
additional_type: "https://openactive.io/SessionSeries",
|
66
|
+
encoding_format: "application/vnd.openactive.rpde+json; version=1",
|
67
|
+
content_url: "http://example.com/feed/session_series",
|
68
|
+
),
|
69
|
+
OpenActive::Models::DataDownload.new(
|
70
|
+
name: "Slot",
|
71
|
+
additional_type: "https://openactive.io/Slot",
|
72
|
+
encoding_format: "application/vnd.openactive.rpde+json; version=1",
|
73
|
+
content_url: "http://example.com/feed/slots",
|
74
|
+
)],
|
75
|
+
background_image:
|
76
|
+
OpenActive::Models::ImageObject.new(
|
77
|
+
url:
|
78
|
+
"https://simpleweb.co.uk/wp-content/uploads/2017/06/IMG_8994-500x500-c-default.jpg",
|
79
|
+
),
|
80
|
+
documentation: "https://permalink.openactive.io/dataset-site/open-data-documentation",
|
81
|
+
name: "Simpleweb Facilities and Sessions",
|
82
|
+
booking_service:
|
83
|
+
OpenActive::Models::BookingService.new(
|
84
|
+
name: "SimpleWeb Booking",
|
85
|
+
url: "https://www.example.com/",
|
86
|
+
has_credential: "https://certificates.reference-implementation.openactive.io/examples/all-features/controlled/",
|
87
|
+
),
|
88
|
+
)
|
89
|
+
|
90
|
+
renderer = OpenActive::DatasetSite::TemplateRenderer.new(dataset)
|
91
|
+
|
92
|
+
puts renderer.render
|
data/examples/dataset_patch.rb
CHANGED
@@ -14,7 +14,7 @@ settings = OpenActive::DatasetSite::Settings.new(
|
|
14
14
|
open_data_feed_base_url: "http://example.com/feed/",
|
15
15
|
dataset_site_url: "http://example.com/dataset/",
|
16
16
|
dataset_discussion_url: "https://github.com/simpleweb/sw-oa-php-test-site",
|
17
|
-
dataset_documentation_url: "https://
|
17
|
+
dataset_documentation_url: "https://permalink.openactive.io/dataset-site/open-data-documentation",
|
18
18
|
dataset_languages: ["en-GB"],
|
19
19
|
organisation_name: "Simpleweb",
|
20
20
|
organisation_url: "https://www.simpleweb.co.uk/",
|
@@ -24,13 +24,13 @@ settings = OpenActive::DatasetSite::Settings.new(
|
|
24
24
|
organisation_logo_url: "https://simpleweb.co.uk/wp-content/uploads/2015/07/facebook-default.png",
|
25
25
|
organisation_email: "spam@simpleweb.co.uk",
|
26
26
|
background_image_url: "https://simpleweb.co.uk/wp-content/uploads/2017/06/IMG_8994-500x500-c-default.jpg",
|
27
|
-
date_first_published: "2019-11-05",
|
27
|
+
date_first_published: "2019-11-05",
|
28
28
|
data_feed_types: feed_types,
|
29
29
|
)
|
30
30
|
|
31
31
|
dataset = settings.to_dataset
|
32
32
|
|
33
|
-
dataset.description = "Some better non-generated description here
|
33
|
+
dataset.description = "Some better non-generated description here"
|
34
34
|
|
35
35
|
renderer = OpenActive::DatasetSite::TemplateRenderer.new(dataset)
|
36
36
|
|
@@ -25,7 +25,7 @@ end.new(
|
|
25
25
|
open_data_feed_base_url: "http://example.com/feed/",
|
26
26
|
dataset_site_url: "http://example.com/dataset/",
|
27
27
|
dataset_discussion_url: "https://github.com/simpleweb/sw-oa-php-test-site",
|
28
|
-
dataset_documentation_url: "https://
|
28
|
+
dataset_documentation_url: "https://permalink.openactive.io/dataset-site/open-data-documentation",
|
29
29
|
dataset_languages: ["en-GB"],
|
30
30
|
organisation_name: "Simpleweb",
|
31
31
|
organisation_url: "https://www.simpleweb.co.uk/",
|
@@ -35,7 +35,7 @@ end.new(
|
|
35
35
|
organisation_logo_url: "https://simpleweb.co.uk/wp-content/uploads/2015/07/facebook-default.png",
|
36
36
|
organisation_email: "spam@simpleweb.co.uk",
|
37
37
|
background_image_url: "https://simpleweb.co.uk/wp-content/uploads/2017/06/IMG_8994-500x500-c-default.jpg",
|
38
|
-
date_first_published: "2019-11-05",
|
38
|
+
date_first_published: "2019-11-05",
|
39
39
|
data_feed_types: feed_types,
|
40
40
|
)
|
41
41
|
|
@@ -27,7 +27,7 @@ settings = CustomDatasetSettings.new(
|
|
27
27
|
open_data_feed_base_url: "http://example.com/feed/",
|
28
28
|
dataset_site_url: "http://example.com/dataset/",
|
29
29
|
dataset_discussion_url: "https://github.com/simpleweb/sw-oa-php-test-site",
|
30
|
-
dataset_documentation_url: "https://
|
30
|
+
dataset_documentation_url: "https://permalink.openactive.io/dataset-site/open-data-documentation",
|
31
31
|
dataset_languages: ["en-GB"],
|
32
32
|
organisation_name: "Simpleweb",
|
33
33
|
organisation_url: "https://www.simpleweb.co.uk/",
|
@@ -37,7 +37,7 @@ settings = CustomDatasetSettings.new(
|
|
37
37
|
organisation_logo_url: "https://simpleweb.co.uk/wp-content/uploads/2015/07/facebook-default.png",
|
38
38
|
organisation_email: "spam@simpleweb.co.uk",
|
39
39
|
background_image_url: "https://simpleweb.co.uk/wp-content/uploads/2017/06/IMG_8994-500x500-c-default.jpg",
|
40
|
-
date_first_published: "2019-11-05",
|
40
|
+
date_first_published: "2019-11-05",
|
41
41
|
data_feed_types: feed_types,
|
42
42
|
)
|
43
43
|
|
@@ -0,0 +1,205 @@
|
|
1
|
+
<!DOCTYPE HTML>
|
2
|
+
<!--
|
3
|
+
OpenActive Dataset Site Template version 6, from https://unpkg.com/@openactive/dataset-site-template@6.0.0/dist/datasetsite-csp.mustache
|
4
|
+
|
5
|
+
This HTML file must reference a self-hosted 'datasetsite.styles.v6.css' file, co-located with the rest
|
6
|
+
of the static assets from the following archive:
|
7
|
+
https://unpkg.com/@openactive/dataset-site-template@6.0.0/dist/datasetsite-csp.static.zip
|
8
|
+
-->
|
9
|
+
<!--
|
10
|
+
Design: Identity by HTML5 UP
|
11
|
+
html5up.net | @ajlkn
|
12
|
+
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
13
|
+
|
14
|
+
DCAT Template: Nick Evans / imin
|
15
|
+
imin.co | @nickevans / @_imin_
|
16
|
+
For openactive.io
|
17
|
+
Free for personal and commercial use under the CC-BY v4.0 license (https://creativecommons.org/licenses/by/4.0/)
|
18
|
+
-->
|
19
|
+
<html prefix="dct: http://purl.org/dc/terms/
|
20
|
+
rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns#
|
21
|
+
dcat: http://www.w3.org/ns/dcat#
|
22
|
+
foaf: http://xmlns.com/foaf/0.1/
|
23
|
+
og: http://ogp.me/ns#
|
24
|
+
odrs: http://schema.theodi.org/odrs#"
|
25
|
+
lang="en">
|
26
|
+
<head>
|
27
|
+
<title>{{name}} - Open Data</title>
|
28
|
+
|
29
|
+
<meta name="title" content="{{name}} - Open Data" />
|
30
|
+
<meta name="identifier" content="{{url}}" />
|
31
|
+
<meta name="Keywords" content="{{#keywords}}{{.}},{{/keywords}}Open Data" />
|
32
|
+
<meta name="Description" content="{{description}}" />
|
33
|
+
<meta name="language" content="English" />
|
34
|
+
|
35
|
+
<meta property="og:title" content="{{name}} - Open Data" />
|
36
|
+
<meta property="og:description" content="{{description}}" />
|
37
|
+
<meta property="og:locale" content="en_GB" />
|
38
|
+
<meta property="og:url" content="{{url}}" />
|
39
|
+
<meta property="og:image" content="{{publisher.logo.url}}" />
|
40
|
+
|
41
|
+
<meta charset="utf-8" />
|
42
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
43
|
+
|
44
|
+
<!-- JSON-LD conforming to Google Structured Data specification. -->
|
45
|
+
<script type="application/ld+json">
|
46
|
+
{{{jsonld}}}
|
47
|
+
</script>
|
48
|
+
|
49
|
+
<!--
|
50
|
+
This stylesheet href must reference a self-hosted 'datasetsite.styles.v6.css' file in
|
51
|
+
the same directory as the other static assets sourced from the following archive:
|
52
|
+
https://unpkg.com/@openactive/dataset-site-template@6.0.0/dist/datasetsite-csp.static.zip
|
53
|
+
-->
|
54
|
+
<link rel="stylesheet" href="{{{staticAssetsPathUrl}}}/datasetsite.styles.v6.css" crossorigin="anonymous">
|
55
|
+
|
56
|
+
</head>
|
57
|
+
<body id="booking" background="{{backgroundImage.url}}">
|
58
|
+
<table class="always-hidden" bgcolor="#FFFFFF" width="100%" height="500px"><tr><td align="center">
|
59
|
+
<p></p>
|
60
|
+
<p><large><strong>Error: Static Assets Not Found</strong><large></p>
|
61
|
+
<p>This HTML page must reference self-hosted static assets located at the relative or absolute path configured by "staticAssetsPathUrl" in the mustache template source data.</p>
|
62
|
+
<p>"staticAssetsPathUrl" is currently set to "{{staticAssetsPathUrl}}", and this page has failed to access this file: <pre>{{staticAssetsPathUrl}}/datasetsite.styles.v6.css</pre></p>
|
63
|
+
<p>Please ensure that the assets at this location exactly match those in
|
64
|
+
<a href="https://unpkg.com/@openactive/dataset-site-template@6.0.0/dist/datasetsite-csp.static.zip">datasetsite-csp.static.zip version 6</a>.</p>
|
65
|
+
<p></p>
|
66
|
+
<p>See the <a href="https://github.com/openactive/dataset-site-template">"CSP compatible template" documentation</a> for more information</p>
|
67
|
+
<p></p>
|
68
|
+
</td></tr></table>
|
69
|
+
|
70
|
+
<div class="outerscene">
|
71
|
+
<div id="anchor"></div>
|
72
|
+
<!-- Wrapper -->
|
73
|
+
<div id="wrapper" typeof="dcat:Dataset" resource="{{url}}">
|
74
|
+
{{#accessService}}
|
75
|
+
<a class="tab left" href="#"><div>Open Data</div></a>
|
76
|
+
<a class="tab right" href="#booking"><div><span class="short">Open</span> Booking <span class="short">API</span></div></a>
|
77
|
+
{{/accessService}}
|
78
|
+
<div class="content">
|
79
|
+
<div class="bar">
|
80
|
+
{{#disambiguatingDescription}}
|
81
|
+
<p class="warning">{{.}}</p>
|
82
|
+
{{/disambiguatingDescription}}
|
83
|
+
</div>
|
84
|
+
<div class="scene">
|
85
|
+
<div class="flip">
|
86
|
+
<!-- Front -->
|
87
|
+
<section id="main" class="front card">
|
88
|
+
|
89
|
+
<header>
|
90
|
+
<div>
|
91
|
+
<a href="{{publisher.url}}" about="{{publisher.url}}" property="foaf:homepage">
|
92
|
+
<span class="avatar" property="foaf:name" content="{{publisher.name}}"><img class="logo" src="{{publisher.logo.url}}" alt="" /></span>
|
93
|
+
</a>
|
94
|
+
</div>
|
95
|
+
|
96
|
+
<h1>Open Data</h1>
|
97
|
+
|
98
|
+
<h2 property="dct:title">{{name}}</h2>
|
99
|
+
|
100
|
+
<p class="description">{{description}}, published using <a href='https://www.openactive.io/'>OpenActive</a> <a href='https://openactive.io/realtime-paged-data-exchange/1.0/'>RPDE 1.0</a> and <a href='{{schemaVersion}}'>Model 2.0</a>.</p>
|
101
|
+
<p class="metadata" property="dct:description">{{description}}.</p>
|
102
|
+
<p class="metadata" property="dct:created" content='{{datePublished}}' datatype='xsd:dateTime'></p>
|
103
|
+
{{#keywords}}
|
104
|
+
<p class="metadata" property="dcat:keyword">{{.}}</p>
|
105
|
+
{{/keywords}}
|
106
|
+
<a class="metadata" href="http://purl.org/linked-data/sdmx/2009/code#freq-N" property="dct:accrualPeriodicity">Every minute</a>
|
107
|
+
<ul class="icons">
|
108
|
+
<li><a href="{{documentation}}" class="fa-info">Documentation</a><br /><span>Documentation</span></li>
|
109
|
+
<li><a href="{{discussionUrl}}" class="fa-comments">Discussion</a><br /><span>Discussion</span></li>
|
110
|
+
{{#bookingService.hasCredential}}
|
111
|
+
<li><a href="{{.}}" class="fa-certificate">Certificate</a><br /><span>Certificate</span></li>
|
112
|
+
{{/bookingService.hasCredential}}
|
113
|
+
</ul>
|
114
|
+
</header>
|
115
|
+
|
116
|
+
<ul class="download">
|
117
|
+
{{#distribution}}
|
118
|
+
<li>
|
119
|
+
<a property='dcat:distribution' typeof='dcat:Distribution' href='{{contentUrl}}'>
|
120
|
+
<i class="fa fa-cloud-download"></i>
|
121
|
+
<span property="dct:title">{{name}}</span>
|
122
|
+
<span class="metadata" content='{{encodingFormat}}' property='dcat:mediaType'>OpenActive RPDE v1.0 Endpoints conforming to Modelling Specification 2.0.</span>
|
123
|
+
</a>
|
124
|
+
</li>
|
125
|
+
{{/distribution}}
|
126
|
+
</ul>
|
127
|
+
|
128
|
+
<footer>
|
129
|
+
<div class="license">
|
130
|
+
<span property="dct:license" resource="{{license}}">
|
131
|
+
This data is owned by <a property="dct:publisher" href="{{publisher.url}}">{{publisher.legalName}}</a> and is licensed under the
|
132
|
+
<a href="{{license}}"><span property="dct:title">Creative Commons Attribution Licence (CC-BY v4.0)</span></a>
|
133
|
+
for anyone to access, use and share;
|
134
|
+
</span>
|
135
|
+
<span property="dct:rights" resource="#rights" typeof="odrs:RightsStatement">
|
136
|
+
<span class="metadata" property="rdfs:label">Rights Statement</span>
|
137
|
+
<a class="metadata" href="{{license}}" property="odrs:dataLicense">Creative Commons Attribution Licence (CC-BY v4.0)</a>
|
138
|
+
<a class="metadata" href="{{license}}" property="odrs:contentLicense">Creative Commons Attribution Licence (CC-BY v4.0)</a>
|
139
|
+
using attribution
|
140
|
+
"<a href="{{url}}" property="odrs:attributionURL"><span property="odrs:attributionText">{{publisher.name}}</span></a>".
|
141
|
+
</span>
|
142
|
+
</div>
|
143
|
+
<span class="avatar"><a href="https://www.openactive.io/"><div class="logo-sm openactive-logo" alt="OpenActive"></div></a></span>
|
144
|
+
</footer>
|
145
|
+
</section>
|
146
|
+
|
147
|
+
<!-- Back -->
|
148
|
+
<section id="access" class="back card">
|
149
|
+
<header>
|
150
|
+
<div>
|
151
|
+
<a href="{{publisher.url}}">
|
152
|
+
<span class="avatar"><img class="logo" src="{{publisher.logo.url}}" alt="" /></span>
|
153
|
+
</a>
|
154
|
+
</div>
|
155
|
+
|
156
|
+
<h1>Open Booking API</h1>
|
157
|
+
|
158
|
+
<h2>{{name}}</h2>
|
159
|
+
|
160
|
+
<p class="description">{{accessService.description}}, conforming to <a href='https://www.openactive.io/'>OpenActive</a> <a href='https://openactive.io/open-booking-api/EditorsDraft/1.0CR3/'>Open Booking 1.0 CR3</a>.</p>
|
161
|
+
<ul class="icons">
|
162
|
+
<li><a href="{{accessService.landingPage}}" class="fa-key">Access</a><br /><span>Access</span></li>
|
163
|
+
<li><a href="{{accessService.documentation}}" class="fa-info">Documentation</a><br /><span>Documentation</span></li>
|
164
|
+
<li><a href="{{discussionUrl}}" class="fa-comments">Discussion</a><br /><span>Discussion</span></li>
|
165
|
+
<li><a href="{{bookingService.hasCredential}}" class="fa-certificate">Certificate</a><br /><span>Certificate</span></li>
|
166
|
+
</ul>
|
167
|
+
</header>
|
168
|
+
|
169
|
+
<div class="baseurls">
|
170
|
+
<div class="baseurl">
|
171
|
+
<label for="txtEndpointUrl">Base URI</label>
|
172
|
+
<input id="txtEndpointUrl" type="text" class="code" value="{{accessService.endpointUrl}}" disabled>
|
173
|
+
</div>
|
174
|
+
|
175
|
+
{{#accessService.authenticationAuthority}}
|
176
|
+
<div class="baseurl">
|
177
|
+
<label for="txtAuthenticationAuthority">Authentication Authority</label>
|
178
|
+
<input id="txtAuthenticationAuthority" type="text" class="code" value="{{.}}" disabled>
|
179
|
+
</div>
|
180
|
+
{{/accessService.authenticationAuthority}}
|
181
|
+
</div>
|
182
|
+
|
183
|
+
<footer>
|
184
|
+
{{#accessService.termsOfService}}
|
185
|
+
<div class="license">
|
186
|
+
Use of this API is governed by specific <a href="{{.}}">Terms of Service</a>.
|
187
|
+
</div>
|
188
|
+
{{/accessService.termsOfService}}
|
189
|
+
<span class="avatar"><a href="https://www.openactive.io/"><div class="logo-sm openactive-logo" alt="OpenActive"></div></a></span>
|
190
|
+
</footer>
|
191
|
+
</section>
|
192
|
+
</div>
|
193
|
+
</div>
|
194
|
+
</div>
|
195
|
+
|
196
|
+
<!-- Footer -->
|
197
|
+
<footer id="footer">
|
198
|
+
<ul class="copyright">
|
199
|
+
<li>{{#bookingService}}Platform: <a href="{{url}}">{{name}} {{softwareVersion}}</a>. {{/bookingService}}Design: <a href="http://html5up.net">HTML5 UP</a>.</li>
|
200
|
+
</ul>
|
201
|
+
</footer>
|
202
|
+
</div>
|
203
|
+
</div>
|
204
|
+
</body>
|
205
|
+
</html>
|
Binary file
|