Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a 'useful links' feature to APIServer #71

Open
wants to merge 6 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 19 additions & 15 deletions AFL/automation/APIServer/APIServer.py
Original file line number Diff line number Diff line change
Expand Up @@ -268,32 +268,36 @@ def init_logging(self,toaddrs=None):


def index(self):
'''Live, status page of the robot'''
'''
Render the legacy status board
'''
self.app.logger.info('Serving index page')

kw = {}
kw['queue'] = self.get_queue()
kw['contact'] = self.contact
kw['experiment'] = self.experiment
kw['queue_state'] = self.queue_state()
kw['name'] = self.name
kw['driver'] = self.queue_daemon.driver.name
kw['queue'] = self.get_queue()
kw['queue_state'] = self.queue_state()
kw['name'] = self.name
kw['driver'] = self.queue_daemon.driver.name
kw['useful_links'] = self.queue_daemon.driver.useful_links
return render_template(self.index_template,**kw),200
def index_new(self):
'''Live, status page of the robot'''
'''
Render the new driver UI
'''
self.app.logger.info('Serving index page')

kw = {}
kw['queue'] = self.get_queue()
kw['contact'] = self.contact
kw['experiment'] = self.experiment
kw['queue_state'] = self.queue_state()
kw['name'] = self.name
kw['driver'] = self.queue_daemon.driver.name
kw['queue'] = self.get_queue()
kw['queue_state'] = self.queue_state()
kw['name'] = self.name
kw['driver'] = self.queue_daemon.driver.name
kw['useful_links'] = self.queue_daemon.driver.useful_links
return render_template(self.new_index_template,**kw),200

def webapp(self):
'''Live, status page of the robot'''
'''
Render the jquery webapp
'''
self.app.logger.info('Serving WebApp')

return render_template('webapp.html'),200
Expand Down
7 changes: 6 additions & 1 deletion AFL/automation/APIServer/Driver.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ class Driver:
unqueued = makeRegistrar()
queued = makeRegistrar()
quickbar = makeRegistrar()
def __init__(self,name,defaults=None,overrides=None):
def __init__(self,name,defaults=None,overrides=None,useful_links=None):
self.app = None
self.data = None
self.dropbox = None
Expand All @@ -51,6 +51,11 @@ def __init__(self,name,defaults=None,overrides=None):
self.name = 'Driver'
else:
self.name = name

if useful_links is None:
self.useful_links = []
else:
self.useful_links = useful_links

self.path = pathlib.Path.home() / '.afl'
self.path.mkdir(exist_ok=True,parents=True)
Expand Down
6 changes: 4 additions & 2 deletions AFL/automation/APIServer/DummyDriver.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,13 @@ class DummyDriver(Driver):
defaults = {}
defaults['speed of light'] = 3.0e8
defaults['density of water'] = 1.0
def __init__(self,name=None,overrides=None):
def __init__(self,name=None,overrides=None,useful_links=None):
self.app = None
if name is None:
name = 'DummyDriver'
Driver.__init__(self,name=name,defaults=self.gather_defaults(),overrides=overrides)
if useful_links is None:
useful_links = {'How Many (5)':'/how_many?count=5'}
Driver.__init__(self,name=name,defaults=self.gather_defaults(),overrides=overrides,useful_links=useful_links)

def status(self):
status = []
Expand Down
9 changes: 9 additions & 0 deletions AFL/automation/APIServer/templates/index-new.html
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,15 @@ <h3>• {{ name }} • </h3>
</div>

<div id="driver_status" class="overflow"></div>
{% if useful_links %}
<div id="useful_links" class="element status">
<ul>
{% for text, url in useful_links.items() %}
<li class="element status"><a href="{{ url|safe }}" target="_blank">{{ text }}</a></li>
{% endfor %}
</ul>
</div>
{% endif %}
<div id="quickbar-commands" class="command-container"></div>

<div id="queued-commands" class="command-container"></div>
Expand Down
12 changes: 9 additions & 3 deletions AFL/automation/APIServer/templates/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,19 @@
<br/>
Driver:&nbsp;{{driver}} • Queue&nbsp;State:&nbsp;<span id='queue_state'></span>
<br/>
Experiment:&nbsp;{{experiment}} • Contact:&nbsp;{{contact}}
<br/>
Last&nbsp;Updated:&nbsp;<span id='time'></span>
</p>
<!--<form action="/halt" method="POST"><input id="estop" type="submit" value="HALT"></form>-->
<img id="ncnr-logo" src="static/ncnr.png" />
</div>
{% if useful_links %}
<div id="useful_links" class="element status">
<ul>
{% for text,url in useful_links.items() %}
<li><a href="{{ url|safe }}" target="_blank">{{ text }}</a></li>
{% endfor %}
</ul>
</div>
{% endif %}
<div id="content_container">
<div class="button_row">
<button class='button' onclick=$.post('/clear_history')>Clear History</button>
Expand Down
119 changes: 0 additions & 119 deletions AFL/automation/APIServer/templates/index_pump.html

This file was deleted.