Removed old event page

This commit is contained in:
Ziver Koc 2024-09-26 00:55:47 +02:00
parent 60024dc915
commit 22e6400369
3 changed files with 0 additions and 207 deletions

View file

@ -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>

View file

@ -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;
}
}
}

View file

@ -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"},