13 qRegisterMetaType<DBT_INTERFACEBOXES>();
15 connect(
this, SIGNAL(deleteInterfacebox(
int)), Static::db, SLOT(deleteInterfacebox(
int)), Qt::QueuedConnection);
16 connect(
this, SIGNAL(restartInterfacebox()), Static::interfacebox, SLOT(restart()), Qt::QueuedConnection);
20 QByteArray action = request.getParameter(
"action");
21 if(action.startsWith(
"add")) {
23 }
else if(action.startsWith(
"edit")) {
25 }
else if(action.startsWith(
"delete")) {
27 }
else if(action.startsWith(
"restart")) {
33 QList<DBT_INTERFACEBOXES> interfaceboxes = Static::db->
interfaceboxes();
34 write(QString(
"<h2>%1</h2>\n").arg(tr(
"Interfaceboxes")));
35 write(QString(
"<a href=\"/interfaceboxes?action=add\">%1</a>\n").arg(tr(
"Add an interfacebox")));
37 write( QString(
"<tr class=\"line1st\"><th></th><th>%1</th><th>%2</th>""</tr>")
38 .arg(tr(
"Description"))
43 "<td><a href=\"/interfaceboxes?action=edit&id=%4\">%1</a> "
44 "<a href=\"/interfaceboxes?action=delete&id=%4\">%2</a></td>"
45 "<td>%3</td><td>%5</td></tr>");
46 QList<DBT_INTERFACEBOXES>::const_iterator i;
47 for(i = interfaceboxes.constBegin(); i != interfaceboxes.constEnd(); ++i) {
50 .arg(tr(
"Edit"), tr(
"Delete"))
64 s.append(QString(
"<input type=\"hidden\" name=\"id\" value=\"%1\" />\n").arg(interfacebox.interfacebox));
65 QString i (
"<tr><td><label for=\"%2\">%1</label>: </td><td><input type=\"text\" name=\"%2\" value=\"%3\" /></td></tr>\n");
66 s.append(i.arg(tr(
"Description"),
"description", interfacebox.description));
69 QList<DBT_LINES> lines = Static::db->
lines();
70 s.append(QString(
"<tr><td><label for=\"%2\">%1</label>: </td><td><select id=\"%2\" name=\"%2\">\n").arg(tr(
"Line"),
"line"));
71 QList<DBT_LINES>::const_iterator ii;
72 for(ii = lines.constBegin(); ii != lines.constEnd(); ++ii) {
74 s.append(QString(
"<option value=\"%1\" %4>%1 %2 %3</option>\n")
75 .arg(l.line).arg(l.device, l.description,
76 (l.line == interfacebox.line) ?
"selected=\"selected\"" :
""));
78 s.append(
"</select></td></tr>\n");
84 interfacebox.interfacebox = request.getParameter(
"id").toInt();
85 interfacebox.description = request.getParameter(
"description");
86 interfacebox.line = request.getParameter(
"line").toInt();
93 qDebug() <<
"InterfaceboxesController::actionAdd()";
94 QByteArray action = request.getParameter(
"action");
96 write(QString(
"<h2>%1</h2>\n").arg(tr(
"Add an interfacebox")));
97 write(
"<form method=\"post\">\n"
98 "<input type=\"hidden\" name=\"action\" value=\"add2\" />\n");
101 write(
"<table class=\"formTable\">");
104 write(QString(
"<input type=\"submit\" value=\"%1\">\n"
105 "</form>\n").arg(tr(
"Add")));
106 if(action ==
"add2") {
108 interfacebox.interfacebox= 0;
111 emit saveInterfacebox(interfacebox);
112 QString location = QString(
"/interfaceboxes?message=%1").arg(percentEncode(tr(
"Interfacebox added.")));
115 write(QString(
"<p>%1</p>").arg(tr(
"Interfacebox definition invalid (not added).")));
124 QByteArray action = request.getParameter(
"action");
127 write(QString(
"<h2>%1</h2>\n").arg(tr(
"Edit an interfacebox")));
128 write(
"<form method=\"post\">\n"
129 "<input type=\"hidden\" name=\"action\" value=\"edit2\" />\n");
130 if(action ==
"edit") {
131 QByteArray
id = request.getParameter(
"id");
132 int idi =
id.toInt();
133 if(
id.isEmpty() || idi < 1) {
134 redirect(QString(
"/interfaceboxes?message=%1").arg(percentEncode(tr(
"Error: Invalid interfacebox ID."))));
137 QList<DBT_INTERFACEBOXES> interfaceboxes = Static::db->
interfaceboxes(QList<int>() << idi);
138 if(interfaceboxes.empty()) {
139 redirect(QString(
"/interfaceboxes?message=%1").arg(percentEncode(tr(
"Error: no such interfacebox found."))));
142 write(
"<table class=\"formTable\">");
147 write(
"<table class=\"formTable\">");
151 write(QString(
"<input type=\"submit\" value=\"%1\">\n"
152 "</form>\n").arg(tr(
"Edit")));
153 if(action ==
"edit2") {
156 if(interfacebox.interfacebox> 0 &&
true) {
157 emit saveInterfacebox(interfacebox);
158 QString location = QString(
"/interfaceboxes?message=%1").arg(percentEncode(tr(
"Interfacebox edited.")));
161 write(QString(
"<p>%1</p>").arg(tr(
"Error: Interfacebox definition invalid (not edited).")));
170 write(QString(
"<h2>%1</h2>\n").arg(tr(
"Delete an interfacebox")));
172 QByteArray
id = request.getParameter(
"id");
173 int idi =
id.toInt();
174 if(!
id.isEmpty() && idi > 0) {
175 emit deleteInterfacebox(idi);
176 location = QString(
"/interfaceboxes?message=%1").arg(percentEncode(tr(
"Interfacebox deleted.")));
178 location = QString(
"/interfaceboxes?message=%1").arg(percentEncode(tr(
"Error: Invalid invertor ID. Interfacebox not deleted.")));
189 write(QString(
"<h2>%1</h2>\n")
190 .arg(tr(
"All interfaceboxes were signalled to restart"))
192 emit restartInterfacebox();
QList< DBT_INTERFACEBOXES > interfaceboxes(int line=0)
Returns list of interfaceboxes filtered by line number.
void actionEdit(HttpRequest &request)
QList< DBT_LINES > lines(int line=0)
Returns list of communications lines.
static void readForm(DBT_INTERFACEBOXES &interfacebox, HttpRequest &request)
static QString getEditFormContents(HttpRequest &request, const DBT_INTERFACEBOXES &line=DBT_INTERFACEBOXES(), bool generator=false)
void actionDelete(HttpRequest &request)
void actionRestart(HttpRequest &request)
InterfaceboxesController()
void actionAdd(HttpRequest &request)
void servicePrivate(HttpRequest &request)
Class describing database table LINES.