Removed old event page
This commit is contained in:
parent
60024dc915
commit
22e6400369
3 changed files with 0 additions and 207 deletions
|
|
@ -1,98 +0,0 @@
|
|||
<h1 class="page-header">Event Overview</h1>
|
||||
|
||||
<div class="col-md-12">
|
||||
<div class="panel panel-default drop-shadow">
|
||||
<div class="panel-heading">Local Events</div>
|
||||
<div class="panel-body">
|
||||
|
||||
<table id="event-device-table" class="table table-hover table-condensed">
|
||||
<thead>
|
||||
<th class="col-md-4">Name</th>
|
||||
<th class="col-md-3">Type</th>
|
||||
<th class="col-md-1">Data</th>
|
||||
<th class="col-md-2">Last Update</th>
|
||||
<th class="col-md-2 text-right">Actions</th>
|
||||
</thead>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
$(function (){
|
||||
$(".toggle-switch").on("switchChange.bootstrapSwitch", function (event, state) {
|
||||
$(this).closest('form').submit();
|
||||
});
|
||||
});
|
||||
|
||||
updateDevices();
|
||||
|
||||
// Auto update
|
||||
|
||||
setInterval(function() {
|
||||
updateDevices();
|
||||
}, 3000);
|
||||
|
||||
function updateDevices() {
|
||||
fetch('/api/event')
|
||||
.then(response => response.json())
|
||||
.then(data => {
|
||||
var table = document.getElementById('event-device-table');
|
||||
|
||||
for (const deviceData of data) {
|
||||
var row = Array.from(table.rows).find(row => row.dataset.deviceId == deviceData.id);
|
||||
|
||||
if (!row) {
|
||||
row = table.insertRow();
|
||||
row.insertCell(0);
|
||||
row.insertCell(1);
|
||||
row.insertCell(2);
|
||||
row.insertCell(3);
|
||||
row.insertCell(4);
|
||||
}
|
||||
|
||||
// Update Cells
|
||||
|
||||
if (row.dataset.deviceId != deviceData.id || row.dataset.timestamp != deviceData.data?.timestamp) {
|
||||
// Only update if data has changed
|
||||
row.dataset.deviceId = deviceData.id;
|
||||
row.cells[0].innerHTML = "<a href='?id=" + deviceData.id + "'>" + deviceData.name + "</a>";
|
||||
row.cells[1].innerHTML = deviceData.configType;
|
||||
row.cells[2].innerHTML = deviceData.data?.valueStr;
|
||||
|
||||
row.dataset.timestamp = deviceData.data?.timestamp;
|
||||
row.cells[3].innerHTML = deviceData.data?.timestamp;
|
||||
$(row.cells[3]).relTimestamp();
|
||||
|
||||
var actionHtml = "";
|
||||
switch (deviceData.dataType) {
|
||||
case "ColorEventData":
|
||||
actionHtml =
|
||||
'<input type="hidden" name="type" value="color">' +
|
||||
'<input type="color" name="data" onchange="this.form.submit()" value="' + deviceData.data?.valueStr + '">';
|
||||
break;
|
||||
case "LevelEventData":
|
||||
actionHtml =
|
||||
'<input type="hidden" name="type" value="level">' +
|
||||
'<input type="range" name="data" min="0" max="100" step="10" onchange="this.form.submit()" value="' + (deviceData.data?.value * 100) + '">';
|
||||
break;
|
||||
case "OnOffEventData":
|
||||
actionHtml =
|
||||
'<input type="hidden" name="type" value="on-off">' +
|
||||
'<input class="toggle-switch" type="checkbox" name="data" data-on-color="danger" onchange="this.form.submit()" ' + (deviceData.data?.valueStr=="ON" ? "checked" : "") + '>';
|
||||
//$(row.cells[4].querySelector('[type="checkbox"]')).bootstrapSwitch('state', deviceData.data?.value === 1, true);
|
||||
break;
|
||||
|
||||
|
||||
}
|
||||
row.cells[4].innerHTML = '<form method="POST">' +
|
||||
'<input type="hidden" name="action" value="modify">' +
|
||||
'<input type="hidden" name="action-id" value="' + deviceData.id + '">' +
|
||||
'<div class="btn-toolbar pull-right">' + actionHtml + '</div>';
|
||||
|
||||
$(".toggle-switch").bootstrapSwitch({inverse: true, size: "mini"});
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
|
|
@ -1,108 +0,0 @@
|
|||
package se.hal.page;
|
||||
|
||||
import se.hal.EventControllerManager;
|
||||
import se.hal.HalContext;
|
||||
import se.hal.intf.HalEventData;
|
||||
import se.hal.intf.HalWebPage;
|
||||
import se.hal.struct.Event;
|
||||
import se.hal.struct.devicedata.ColorEventData;
|
||||
import se.hal.struct.devicedata.LevelEventData;
|
||||
import se.hal.struct.devicedata.OnOffEventData;
|
||||
import se.hal.util.DeviceNameComparator;
|
||||
import se.hal.util.HistoryDataListSqlResult;
|
||||
import se.hal.util.HistoryDataListSqlResult.HistoryData;
|
||||
import zutil.ObjectUtil;
|
||||
import zutil.db.DBConnection;
|
||||
import zutil.io.file.FileUtil;
|
||||
import zutil.log.LogUtil;
|
||||
import zutil.parser.Templator;
|
||||
|
||||
import java.sql.PreparedStatement;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
public class EventOverviewWebPage extends HalWebPage {
|
||||
private static final Logger logger = LogUtil.getLogger();
|
||||
private static final int HISTORY_LIMIT = 200;
|
||||
private static final String OVERVIEW_TEMPLATE = HalContext.RESOURCE_WEB_ROOT + "/event_overview.tmpl";
|
||||
private static final String DETAIL_TEMPLATE = HalContext.RESOURCE_WEB_ROOT + "/event_detail.tmpl";
|
||||
|
||||
|
||||
public EventOverviewWebPage() {
|
||||
super("event_overview");
|
||||
super.getRootNav().createSubNav("Events").createSubNav(this.getId(), "Overview");
|
||||
}
|
||||
|
||||
@Override
|
||||
public Templator httpRespond(
|
||||
Map<String, Object> session,
|
||||
Map<String, String> cookie,
|
||||
Map<String, String> request)
|
||||
throws Exception{
|
||||
|
||||
DBConnection db = HalContext.getDB();
|
||||
|
||||
if ("modify".equals(request.get("action"))) {
|
||||
int id = (ObjectUtil.isEmpty(request.get("action-id")) ? -1 : Integer.parseInt(request.get("action-id")));
|
||||
|
||||
// change event data
|
||||
HalEventData eventData = null;
|
||||
|
||||
switch (request.get("type")) {
|
||||
case "level":
|
||||
eventData = new LevelEventData(Integer.parseInt(request.get("data")) / 100.0, 0);
|
||||
break;
|
||||
|
||||
case "color":
|
||||
eventData = new ColorEventData(request.get("data"), 0);
|
||||
break;
|
||||
|
||||
case "on-off":
|
||||
eventData = new OnOffEventData("on".equals(request.get("data")), 0);
|
||||
break;
|
||||
}
|
||||
|
||||
if (id >= 0 && eventData != null) {
|
||||
logger.info("Modifying Event(" + id + ") state: " + eventData.toString());
|
||||
Event event = Event.getEvent(db, id);
|
||||
EventControllerManager.getInstance().send(event, eventData);
|
||||
} else {
|
||||
logger.warning("Unable to process event change request for event " + id + ", data type most likely not supported: " + request.get("type"));
|
||||
}
|
||||
}
|
||||
|
||||
int id = (ObjectUtil.isEmpty(request.get("id")) ? -1 : Integer.parseInt(request.get("id")));
|
||||
|
||||
// --------------------------------------
|
||||
// Detailed page
|
||||
// --------------------------------------
|
||||
if (id >= 0) {
|
||||
Event event = Event.getEvent(db, id);
|
||||
|
||||
// get history data
|
||||
PreparedStatement stmt = db.getPreparedStatement(
|
||||
"SELECT * FROM event_data_raw WHERE event_id == ? ORDER BY timestamp DESC LIMIT ?");
|
||||
stmt.setLong(1, event.getId());
|
||||
stmt.setLong(2, HISTORY_LIMIT);
|
||||
List<HistoryData> history = DBConnection.exec(stmt, new HistoryDataListSqlResult());
|
||||
|
||||
Templator tmpl = new Templator(FileUtil.find(DETAIL_TEMPLATE));
|
||||
tmpl.set("event", event);
|
||||
tmpl.set("history", history);
|
||||
return tmpl;
|
||||
}
|
||||
// --------------------------------------
|
||||
// Overview page
|
||||
// --------------------------------------
|
||||
else {
|
||||
List<Event> events = Event.getLocalEvents(db);
|
||||
Collections.sort(events, DeviceNameComparator.getInstance());
|
||||
|
||||
Templator tmpl = new Templator(FileUtil.find(OVERVIEW_TEMPLATE));
|
||||
tmpl.set("events", events);
|
||||
return tmpl;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -19,7 +19,6 @@
|
|||
{"se.hal.intf.HalApiEndpoint": "se.hal.page.api.SensorApiEndpoint"},
|
||||
|
||||
{"se.hal.intf.HalJavascriptModule": "se.hal.page.JavascriptModules"},
|
||||
{"DISABLEDse.hal.intf.HalWebPage": "se.hal.page.EventOverviewWebPage"},
|
||||
{"se.hal.intf.HalWebPage": "se.hal.page.EventConfigWebPage"},
|
||||
{"se.hal.intf.HalWebPage": "se.hal.page.PropertyConfigWebPage"},
|
||||
{"se.hal.intf.HalWebPage": "se.hal.page.PluginConfigWebPage"},
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue