Switched away from deprecated bootstrap
This commit is contained in:
parent
8790cd1c17
commit
d87cc769dd
2 changed files with 123 additions and 92 deletions
128
configurator.py
128
configurator.py
|
@ -1984,55 +1984,6 @@ INDEX = Template(r"""<!DOCTYPE html>
|
||||||
modemapping['txt'] = 'ace/mode/text';
|
modemapping['txt'] = 'ace/mode/text';
|
||||||
modemapping['xml'] = 'ace/mode/xml';
|
modemapping['xml'] = 'ace/mode/xml';
|
||||||
modemapping['yaml'] = 'ace/mode/yaml';
|
modemapping['yaml'] = 'ace/mode/yaml';
|
||||||
var separator = '$separator';
|
|
||||||
var bootstrap = $bootstrap;
|
|
||||||
if (bootstrap.hasOwnProperty("events")) {
|
|
||||||
var events = document.getElementById("events");
|
|
||||||
for (var i = 0; i < bootstrap.events.length; i++) {
|
|
||||||
var option = document.createElement("option");
|
|
||||||
option.value = bootstrap.events[i].event;
|
|
||||||
option.text = bootstrap.events[i].event;
|
|
||||||
events.add(option);
|
|
||||||
}
|
|
||||||
var events = document.getElementById("events_side");
|
|
||||||
for (var i = 0; i < bootstrap.events.length; i++) {
|
|
||||||
var option = document.createElement("option");
|
|
||||||
option.value = bootstrap.events[i].event;
|
|
||||||
option.text = bootstrap.events[i].event;
|
|
||||||
events.add(option);
|
|
||||||
}
|
|
||||||
var entities = document.getElementById("entities");
|
|
||||||
for (var i = 0; i < bootstrap.states.length; i++) {
|
|
||||||
var option = document.createElement("option");
|
|
||||||
option.value = bootstrap.states[i].entity_id;
|
|
||||||
option.text = bootstrap.states[i].attributes.friendly_name + ' (' + bootstrap.states[i].entity_id + ')';
|
|
||||||
entities.add(option);
|
|
||||||
}
|
|
||||||
var entities = document.getElementById("entities_side");
|
|
||||||
for (var i = 0; i < bootstrap.states.length; i++) {
|
|
||||||
var option = document.createElement("option");
|
|
||||||
option.value = bootstrap.states[i].entity_id;
|
|
||||||
option.text = bootstrap.states[i].attributes.friendly_name + ' (' + bootstrap.states[i].entity_id + ')';
|
|
||||||
entities.add(option);
|
|
||||||
}
|
|
||||||
var services = document.getElementById("services");
|
|
||||||
for (var i = 0; i < bootstrap.services.length; i++) {
|
|
||||||
for (var k in bootstrap.services[i].services) {
|
|
||||||
var option = document.createElement("option");
|
|
||||||
option.value = bootstrap.services[i].domain + '.' + k;
|
|
||||||
option.text = bootstrap.services[i].domain + '.' + k;
|
|
||||||
services.add(option);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var services = document.getElementById("services_side");
|
|
||||||
for (var i = 0; i < bootstrap.services.length; i++) {
|
|
||||||
for (var k in bootstrap.services[i].services) {
|
|
||||||
var option = document.createElement("option");
|
|
||||||
option.value = bootstrap.services[i].domain + '.' + k;
|
|
||||||
option.text = bootstrap.services[i].domain + '.' + k;
|
|
||||||
services.add(option);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function sort_select(id) {
|
function sort_select(id) {
|
||||||
var options = $('#' + id + ' option');
|
var options = $('#' + id + ' option');
|
||||||
|
@ -2051,10 +2002,68 @@ INDEX = Template(r"""<!DOCTYPE html>
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var separator = '$separator';
|
||||||
|
var services_list = $services;
|
||||||
|
var events_list = $events;
|
||||||
|
var states_list = $states;
|
||||||
|
|
||||||
|
if (events_list) {
|
||||||
|
var events = document.getElementById("events");
|
||||||
|
for (var i = 0; i < events_list.length; i++) {
|
||||||
|
var option = document.createElement("option");
|
||||||
|
option.value = events_list[i].event;
|
||||||
|
option.text = events_list[i].event;
|
||||||
|
events.add(option);
|
||||||
|
}
|
||||||
|
var events = document.getElementById("events_side");
|
||||||
|
for (var i = 0; i < events_list.length; i++) {
|
||||||
|
var option = document.createElement("option");
|
||||||
|
option.value = events_list[i].event;
|
||||||
|
option.text = events_list[i].event;
|
||||||
|
events.add(option);
|
||||||
|
}
|
||||||
sort_select('events');
|
sort_select('events');
|
||||||
sort_select('events_side');
|
sort_select('events_side');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (states_list) {
|
||||||
|
var entities = document.getElementById("entities");
|
||||||
|
for (var i = 0; i < states_list.length; i++) {
|
||||||
|
var option = document.createElement("option");
|
||||||
|
option.value = states_list[i].entity_id;
|
||||||
|
option.text = states_list[i].attributes.friendly_name + ' (' + states_list[i].entity_id + ')';
|
||||||
|
entities.add(option);
|
||||||
|
}
|
||||||
|
var entities = document.getElementById("entities_side");
|
||||||
|
for (var i = 0; i < states_list.length; i++) {
|
||||||
|
var option = document.createElement("option");
|
||||||
|
option.value = states_list[i].entity_id;
|
||||||
|
option.text = states_list[i].attributes.friendly_name + ' (' + states_list[i].entity_id + ')';
|
||||||
|
entities.add(option);
|
||||||
|
}
|
||||||
sort_select('entities');
|
sort_select('entities');
|
||||||
sort_select('entities_side');
|
sort_select('entities_side');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (services_list) {
|
||||||
|
var services = document.getElementById("services");
|
||||||
|
for (var i = 0; i < services_list.length; i++) {
|
||||||
|
for (var k in services_list[i].services) {
|
||||||
|
var option = document.createElement("option");
|
||||||
|
option.value = services_list[i].domain + '.' + k;
|
||||||
|
option.text = services_list[i].domain + '.' + k;
|
||||||
|
services.add(option);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var services = document.getElementById("services_side");
|
||||||
|
for (var i = 0; i < services_list.length; i++) {
|
||||||
|
for (var k in services_list[i].services) {
|
||||||
|
var option = document.createElement("option");
|
||||||
|
option.value = services_list[i].domain + '.' + k;
|
||||||
|
option.text = services_list[i].domain + '.' + k;
|
||||||
|
services.add(option);
|
||||||
|
}
|
||||||
|
}
|
||||||
sort_select('services');
|
sort_select('services');
|
||||||
sort_select('services_side');
|
sort_select('services_side');
|
||||||
}
|
}
|
||||||
|
@ -3090,16 +3099,27 @@ class RequestHandler(BaseHTTPRequestHandler):
|
||||||
self.send_header('Content-type', 'text/html')
|
self.send_header('Content-type', 'text/html')
|
||||||
self.end_headers()
|
self.end_headers()
|
||||||
|
|
||||||
boot = "{}"
|
services = "[]"
|
||||||
|
events = "[]"
|
||||||
|
states = "[]"
|
||||||
try:
|
try:
|
||||||
headers = {
|
headers = {
|
||||||
"Content-Type": "application/json"
|
"Content-Type": "application/json"
|
||||||
}
|
}
|
||||||
if HASS_API_PASSWORD:
|
if HASS_API_PASSWORD:
|
||||||
headers["x-ha-access"] = HASS_API_PASSWORD
|
headers["x-ha-access"] = HASS_API_PASSWORD
|
||||||
req = urllib.request.Request("%sbootstrap" % HASS_API, headers=headers, method='GET')
|
|
||||||
|
req = urllib.request.Request("%sservices" % HASS_API, headers=headers, method='GET')
|
||||||
with urllib.request.urlopen(req) as response:
|
with urllib.request.urlopen(req) as response:
|
||||||
boot = response.read().decode('utf-8')
|
services = response.read().decode('utf-8')
|
||||||
|
|
||||||
|
req = urllib.request.Request("%sevents" % HASS_API, headers=headers, method='GET')
|
||||||
|
with urllib.request.urlopen(req) as response:
|
||||||
|
events = response.read().decode('utf-8')
|
||||||
|
|
||||||
|
req = urllib.request.Request("%sstates" % HASS_API, headers=headers, method='GET')
|
||||||
|
with urllib.request.urlopen(req) as response:
|
||||||
|
states = response.read().decode('utf-8')
|
||||||
|
|
||||||
except Exception as err:
|
except Exception as err:
|
||||||
LOG.warning("Exception getting bootstrap")
|
LOG.warning("Exception getting bootstrap")
|
||||||
|
@ -3114,7 +3134,9 @@ class RequestHandler(BaseHTTPRequestHandler):
|
||||||
except Exception as err:
|
except Exception as err:
|
||||||
LOG.warning("Exception getting release")
|
LOG.warning("Exception getting release")
|
||||||
LOG.warning(err)
|
LOG.warning(err)
|
||||||
html = get_html().safe_substitute(bootstrap=boot,
|
html = get_html().safe_substitute(services=services,
|
||||||
|
events=events,
|
||||||
|
states=states,
|
||||||
current=VERSION,
|
current=VERSION,
|
||||||
versionclass=color,
|
versionclass=color,
|
||||||
separator="\%s" % os.sep if os.sep == "\\" else os.sep)
|
separator="\%s" % os.sep if os.sep == "\\" else os.sep)
|
||||||
|
|
107
dev.html
107
dev.html
|
@ -1906,55 +1906,6 @@
|
||||||
modemapping['txt'] = 'ace/mode/text';
|
modemapping['txt'] = 'ace/mode/text';
|
||||||
modemapping['xml'] = 'ace/mode/xml';
|
modemapping['xml'] = 'ace/mode/xml';
|
||||||
modemapping['yaml'] = 'ace/mode/yaml';
|
modemapping['yaml'] = 'ace/mode/yaml';
|
||||||
var separator = '$separator';
|
|
||||||
var bootstrap = $bootstrap;
|
|
||||||
if (bootstrap.hasOwnProperty("events")) {
|
|
||||||
var events = document.getElementById("events");
|
|
||||||
for (var i = 0; i < bootstrap.events.length; i++) {
|
|
||||||
var option = document.createElement("option");
|
|
||||||
option.value = bootstrap.events[i].event;
|
|
||||||
option.text = bootstrap.events[i].event;
|
|
||||||
events.add(option);
|
|
||||||
}
|
|
||||||
var events = document.getElementById("events_side");
|
|
||||||
for (var i = 0; i < bootstrap.events.length; i++) {
|
|
||||||
var option = document.createElement("option");
|
|
||||||
option.value = bootstrap.events[i].event;
|
|
||||||
option.text = bootstrap.events[i].event;
|
|
||||||
events.add(option);
|
|
||||||
}
|
|
||||||
var entities = document.getElementById("entities");
|
|
||||||
for (var i = 0; i < bootstrap.states.length; i++) {
|
|
||||||
var option = document.createElement("option");
|
|
||||||
option.value = bootstrap.states[i].entity_id;
|
|
||||||
option.text = bootstrap.states[i].attributes.friendly_name + ' (' + bootstrap.states[i].entity_id + ')';
|
|
||||||
entities.add(option);
|
|
||||||
}
|
|
||||||
var entities = document.getElementById("entities_side");
|
|
||||||
for (var i = 0; i < bootstrap.states.length; i++) {
|
|
||||||
var option = document.createElement("option");
|
|
||||||
option.value = bootstrap.states[i].entity_id;
|
|
||||||
option.text = bootstrap.states[i].attributes.friendly_name + ' (' + bootstrap.states[i].entity_id + ')';
|
|
||||||
entities.add(option);
|
|
||||||
}
|
|
||||||
var services = document.getElementById("services");
|
|
||||||
for (var i = 0; i < bootstrap.services.length; i++) {
|
|
||||||
for (var k in bootstrap.services[i].services) {
|
|
||||||
var option = document.createElement("option");
|
|
||||||
option.value = bootstrap.services[i].domain + '.' + k;
|
|
||||||
option.text = bootstrap.services[i].domain + '.' + k;
|
|
||||||
services.add(option);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var services = document.getElementById("services_side");
|
|
||||||
for (var i = 0; i < bootstrap.services.length; i++) {
|
|
||||||
for (var k in bootstrap.services[i].services) {
|
|
||||||
var option = document.createElement("option");
|
|
||||||
option.value = bootstrap.services[i].domain + '.' + k;
|
|
||||||
option.text = bootstrap.services[i].domain + '.' + k;
|
|
||||||
services.add(option);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function sort_select(id) {
|
function sort_select(id) {
|
||||||
var options = $('#' + id + ' option');
|
var options = $('#' + id + ' option');
|
||||||
|
@ -1973,10 +1924,68 @@
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var separator = '$separator';
|
||||||
|
var services_list = $services;
|
||||||
|
var events_list = $events;
|
||||||
|
var states_list = $states;
|
||||||
|
|
||||||
|
if (events_list) {
|
||||||
|
var events = document.getElementById("events");
|
||||||
|
for (var i = 0; i < events_list.length; i++) {
|
||||||
|
var option = document.createElement("option");
|
||||||
|
option.value = events_list[i].event;
|
||||||
|
option.text = events_list[i].event;
|
||||||
|
events.add(option);
|
||||||
|
}
|
||||||
|
var events = document.getElementById("events_side");
|
||||||
|
for (var i = 0; i < events_list.length; i++) {
|
||||||
|
var option = document.createElement("option");
|
||||||
|
option.value = events_list[i].event;
|
||||||
|
option.text = events_list[i].event;
|
||||||
|
events.add(option);
|
||||||
|
}
|
||||||
sort_select('events');
|
sort_select('events');
|
||||||
sort_select('events_side');
|
sort_select('events_side');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (states_list) {
|
||||||
|
var entities = document.getElementById("entities");
|
||||||
|
for (var i = 0; i < states_list.length; i++) {
|
||||||
|
var option = document.createElement("option");
|
||||||
|
option.value = states_list[i].entity_id;
|
||||||
|
option.text = states_list[i].attributes.friendly_name + ' (' + states_list[i].entity_id + ')';
|
||||||
|
entities.add(option);
|
||||||
|
}
|
||||||
|
var entities = document.getElementById("entities_side");
|
||||||
|
for (var i = 0; i < states_list.length; i++) {
|
||||||
|
var option = document.createElement("option");
|
||||||
|
option.value = states_list[i].entity_id;
|
||||||
|
option.text = states_list[i].attributes.friendly_name + ' (' + states_list[i].entity_id + ')';
|
||||||
|
entities.add(option);
|
||||||
|
}
|
||||||
sort_select('entities');
|
sort_select('entities');
|
||||||
sort_select('entities_side');
|
sort_select('entities_side');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (services_list) {
|
||||||
|
var services = document.getElementById("services");
|
||||||
|
for (var i = 0; i < services_list.length; i++) {
|
||||||
|
for (var k in services_list[i].services) {
|
||||||
|
var option = document.createElement("option");
|
||||||
|
option.value = services_list[i].domain + '.' + k;
|
||||||
|
option.text = services_list[i].domain + '.' + k;
|
||||||
|
services.add(option);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var services = document.getElementById("services_side");
|
||||||
|
for (var i = 0; i < services_list.length; i++) {
|
||||||
|
for (var k in services_list[i].services) {
|
||||||
|
var option = document.createElement("option");
|
||||||
|
option.value = services_list[i].domain + '.' + k;
|
||||||
|
option.text = services_list[i].domain + '.' + k;
|
||||||
|
services.add(option);
|
||||||
|
}
|
||||||
|
}
|
||||||
sort_select('services');
|
sort_select('services');
|
||||||
sort_select('services_side');
|
sort_select('services_side');
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue