hlc-server
Version:
Serves real-time real-world context at a human scale by combining RFID, RTLS and M2M with structured, linked data on the web. We believe in an open Internet of Things.
334 lines (333 loc) • 15 kB
HTML
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport"
content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description"
content="Associate JSON-LD & Schema.org stories with radio-identifiable devices.">
<link rel="stylesheet" href="../../style/bootstrap.min.css">
<link rel="stylesheet" href="../../style/reelyactive.css">
<title> Story Association by reelyActive </title>
</head>
<body>
<!----- Navigation ----->
<nav class="navbar navbar-expand-lg navbar-reelyactive bg-reelyactive">
<a class="navbar-brand" href="https://www.reelyactive.com/">
<img src="../../images/reelyactive-logo-nav.png"
width="165" height="30" alt="reelyActive">
</a>
<button class="navbar-toggler" type="button" data-toggle="collapse"
data-target="#navbarItems" aria-controls="navbarItems"
aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarItems">
<ul class="navbar-nav mr-auto"></ul>
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link" href="../../"> <i class="fas fa-home"></i> </a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" id="navbarDropdown"
role="button" data-toggle="dropdown" aria-haspopup="true"
aria-expanded="false">
<i class="fas fa-question-circle"></i>
</a>
<div class="dropdown-menu dropdown-menu-right"
aria-labelledby="navbarDropdown">
<a class="dropdown-item"
href="https://www.reelyactive.com/how-we-observe/#digital">
<i class="fas fa-mouse-pointer"></i>
Behaviour tracking free
<span class="badge badge-success">
<i class="fas fa-user-shield"></i>
</span>
</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" target="_blank"
href="https://getbootstrap.com" >
<i class="fab fa-bootstrap"></i>
Bootstrap 4
<span class="badge badge-light">
<i class="fab fa-osi"></i> MIT
</span>
</a>
<a class="dropdown-item" target="_blank"
href="https://fontawesome.com" >
<i class="fab fa-font-awesome"></i>
Font Awesome (Free)
<span class="badge badge-light">
<i class="fab fa-creative-commons"></i>
<i class="fab fa-osi"></i> MIT
</span>
</a>
<a class="dropdown-item" target="_blank"
href="https://jquery.com" >
<i class="fab fa-js"></i>
JQuery
<span class="badge badge-light">
<i class="fab fa-osi"></i> MIT
</span>
</a>
<a class="dropdown-item" target="_blank"
href="https://github.com/reelyactive/web-style-guide/" >
<i class="fas fa-code"></i>
Web Style Guide
<span class="badge badge-light">
<i class="fab fa-osi"></i> MIT
</span>
</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" target="_blank"
href="https://www.reelyactive.com/made-in-montreal/" >
<i class="fab fa-canadian-maple-leaf"></i>
Made in Montréal
<i class="fas fa-city"></i>
</a>
</div>
</li>
</ul>
</div>
</nav>
<!----- Content ----->
<div class="container-fluid">
<div class="row justify-content-center my-4">
<!-- Device selection -->
<div class="col-sm-12 col-md-12 col-lg-12 col-xl-8">
<h2> Select a device </h2>
<ul class="nav nav-tabs" role="tablist">
<li class="nav-item">
<a class="nav-link active" id="idtab" data-toggle="tab"
href="#idcontent" role="tab" aria-controls="idcontent"
aria-selected="true">
<i class="fas fa-barcode"></i> Select by ID
</a>
</li>
<li class="nav-item">
<a class="nav-link disabled" id="locationtab" data-toggle="tab"
href="#locationcontent" role="tab" aria-controls="locationcontent"
aria-selected="false">
<i class="fas fa-map-pin"></i> Select by Location
</a>
</li>
</ul>
<div class="tab-content tab-content-reelyactive">
<!-- By ID -->
<div class="tab-pane fade show active" id="idcontent"
role="tabpanel" aria-labelledby="idtab">
<form class="form-inline my-2" onsubmit="return false;">
<div class="input-group mb-2 mr-sm-2">
<div class="input-group-prepend">
<div class="input-group-text">
<i class="fas fa-barcode"></i> Device ID
</div>
</div>
<div class="dropdown">
<input type="text" class="form-control dropdown-toggle"
id="idFilter" size="16" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false"
placeholder="Start typing">
<div class="dropdown-menu" id="idDropdown"
aria-labelledby="idFilter">
</div>
</div>
<div class="input-group-append">
<button class="btn btn-outline-secondary" type="button"
id="resetButton">
<i class="fas fa-undo-alt"></i>
</button>
</div>
</div>
<button type="submit" class="btn btn-primary mb-2"
id="selectButton" disabled> Select </button>
</form>
</div>
<!-- By Location -->
<div class="tab-pane fade" id="idcontent"
role="tabpanel" aria-labelledby="idtab">
</div>
</div>
</div>
</div>
<div class="row justify-content-center my-4">
<!-- Story entry -->
<div class="col-sm-12 col-md-6 col-lg-6 col-xl-4">
<h2 id="storyActionTitle"> Create a story </h2>
<ul class="nav nav-tabs" role="tablist">
<li class="nav-item">
<a class="nav-link active" id="persontab" data-toggle="tab"
href="#personcontent" role="tab" aria-controls="personcontent"
aria-selected="true">
<i class="fas fa-user-alt"></i> Person
</a>
</li>
<li class="nav-item">
<a class="nav-link" id="producttab" data-toggle="tab"
href="#productcontent" role="tab" aria-controls="productcontent"
aria-selected="false">
<i class="fas fa-box"></i> Product
</a>
</li>
<li class="nav-item">
<a class="nav-link" id="placetab" data-toggle="tab"
href="#placecontent" role="tab" aria-controls="placecontent"
aria-selected="false">
<i class="fas fa-map-pin"></i> Place
</a>
</li>
</ul>
<div class="tab-content tab-content-reelyactive">
<!-- Person -->
<div class="tab-pane fade show active" id="personcontent"
role="tabpanel" aria-labelledby="persontab">
<form id="personForm" enctype="multipart/form-data">
<div class="form-group">
<label for="personGivenName"> Given Name </label>
<input type="text" class="form-control" id="personGivenName"
placeholder="Given Name">
</div>
<div class="form-group">
<label for="personFamilyName"> Family Name </label>
<input type="text" class="form-control" id="personFamilyName"
placeholder="Family Name">
</div>
<div class="form-group">
<label for="personImageInput"> Image </label>
<input type="file" class="form-control-file" id="personImageInput">
</div>
<p id="error"></p> <!-- TODO: remove/improve -->
</form>
</div>
<!-- Product -->
<div class="tab-pane fade" id="productcontent"
role="tabpanel" aria-labelledby="producttab">
<form id="productForm" enctype="multipart/form-data">
<div class="form-group">
<label for="productName"> Name </label>
<input type="text" class="form-control" id="productName"
placeholder="Name">
</div>
<div class="form-group">
<label for="productManufacturer"> Manufacturer </label>
<input type="text" class="form-control" id="productManufacturer"
placeholder="Manufacturer">
</div>
<div class="form-group">
<label for="productImageInput"> Image </label>
<input type="file" class="form-control-file" id="productImageInput">
</div>
</form>
</div>
<!-- Place -->
<div class="tab-pane fade" id="placecontent"
role="tabpanel" aria-labelledby="placetab">
<form id="placeForm" enctype="multipart/form-data">
<div class="form-group">
<label for="placeName"> Name </label>
<input type="text" class="form-control" id="placeName"
placeholder="Name">
</div>
<div class="form-group">
<label for="placeCapacity"> Maximum attendee capacity </label>
<input type="number" class="form-control" id="placeCapacity"
placeholder="25">
</div>
<div class="form-group">
<label for="placeImageInput"> Image </label>
<input type="file" class="form-control-file" id="placeImageInput">
</div>
</form>
</div>
</div>
<!-- Actions to store the story -->
<div id="storeStory" class="text-center my-4">
<button type="button" class="btn btn-primary" id="storeButton"
disabled>
<i class="fas fa-database"></i> Store and Associate
</button>
</div>
<!-- Actions to access the stored story -->
<div id="accessStory" hidden>
<form class="mt-4" id="storyUrlForm">
<div class="form-group">
<label for="storyUrl"> Access the story via the following URL: </label>
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text">
<i class="fas fa-link"></i>
</span>
</div>
<input type="url" id="storyUrl"
class="form-control" readonly></input>
</div>
</div>
</form>
<div class="text-center mb-4">
<div class="btn-group" role="group">
<button type="button" class="btn btn-secondary" id="copyButton">
<i class="fas fa-copy"></i> Copy URL
</button>
<a type="button" class="btn btn-dark" id="visitButton"
target="_blank">
<i class="fas fa-external-link-alt"></i> Visit URL
</a>
<a type="button" class="btn btn-dark" id="associationsButton"
target="_blank">
<i class="fas fa-external-link-alt"></i> Visit Associations
</a>
</div>
</div>
</div>
</div>
<!-- Story visualisation -->
<div class="col-sm-12 col-md-6 col-lg-6 col-xl-4">
<h2> Story preview </h2>
<ul class="nav nav-tabs" role="tablist">
<li class="nav-item">
<a class="nav-link active" id="humantab" data-toggle="tab"
href="#humancontent" role="tab" aria-controls="humancontent"
aria-selected="true">
<i class="fas fa-user-alt"></i> Human-readable
</a>
</li>
<li class="nav-item">
<a class="nav-link" id="machinetab" data-toggle="tab"
href="#machinecontent" role="tab" aria-controls="machinecontent"
aria-selected="false">
<i class="fas fa-code"></i> Machine-readable
</a>
</li>
</ul>
<div class="tab-content tab-content-reelyactive">
<!-- Human-readable content -->
<div class="tab-pane fade show active" id="humancontent"
role="tabpanel" aria-labelledby="humantab">
<div class="card" id="visualPreview"></div>
</div>
<!-- Machine-readable content -->
<div class="tab-pane fade" id="machinecontent"
role="tabpanel" aria-labelledby="machinetab">
<pre id="storyPreview"></pre>
</div>
</div>
</div>
</div>
</div>
<footer class="footer">
<a href="https://github.com/reelyactive/hlc-server"> hlc-server </a>
|
<a href="https://www.reelyactive.com"> © reelyActive 2014-2021 </a>
</footer>
<script defer src="../../js/solid.min.js"></script>
<script defer src="../../js/brands.min.js"></script>
<script defer src="../../js/fontawesome.min.js"></script>
<script src="../../js/jquery-3.4.0.min.js"></script>
<script src="../../js/bootstrap.bundle.min.js"></script>
<script src="../../js/socket.io.min.js"></script>
<script src="../../js/beaver.js"></script>
<script src="../../js/cormorant.js"></script>
<script src="../../js/cuttlefish.js"></script>
<script src="js/story-association.js"></script>
</body>
</html>