Moved user profile to a new page

Former-commit-id: f28819825c92b749ac250e844db9dec292132b8c
This commit is contained in:
Ziver Koc 2016-01-11 18:08:52 +01:00
parent 4428824061
commit 2c98cd897d
7 changed files with 91 additions and 41 deletions

View file

@ -10,6 +10,7 @@ import se.hal.intf.HalHttpPage;
import se.hal.page.SensorConfigHttpPage; import se.hal.page.SensorConfigHttpPage;
import se.hal.page.PCHeatMapHttpPage; import se.hal.page.PCHeatMapHttpPage;
import se.hal.page.PCOverviewHttpPage; import se.hal.page.PCOverviewHttpPage;
import se.hal.page.UserConfigHttpPage;
import se.hal.struct.Event; import se.hal.struct.Event;
import se.hal.struct.Sensor; import se.hal.struct.Sensor;
import zutil.db.DBConnection; import zutil.db.DBConnection;
@ -74,7 +75,8 @@ public class HalServer {
pages = new HalHttpPage[]{ pages = new HalHttpPage[]{
new PCOverviewHttpPage(), new PCOverviewHttpPage(),
new PCHeatMapHttpPage(), new PCHeatMapHttpPage(),
new SensorConfigHttpPage() new SensorConfigHttpPage(),
new UserConfigHttpPage(),
}; };
HttpServer http = new HttpServer(HalContext.getIntegerProperty("http_port")); HttpServer http = new HttpServer(HalContext.getIntegerProperty("http_port"));
http.setDefaultPage(new HttpFilePage(FileUtil.find("web-resource/"))); http.setDefaultPage(new HttpFilePage(FileUtil.find("web-resource/")));

View file

@ -11,7 +11,7 @@ public class PCHeatMapHttpPage extends HalHttpPage {
public PCHeatMapHttpPage() { public PCHeatMapHttpPage() {
super("Heatmap", "map"); super("Heatmap", "pc_heatmap");
} }
@Override @Override

View file

@ -19,7 +19,7 @@ public class PCOverviewHttpPage extends HalHttpPage {
private static final String TEMPLATE = "web-resource/pc_overview.tmpl"; private static final String TEMPLATE = "web-resource/pc_overview.tmpl";
public PCOverviewHttpPage() { public PCOverviewHttpPage() {
super("Power;Challenge", "powerChallenge"); super("Power;Challenge", "pc_overview");
} }
@Override @Override

View file

@ -24,7 +24,7 @@ public class SensorConfigHttpPage extends HalHttpPage {
public SensorConfigHttpPage() { public SensorConfigHttpPage() {
super("Configuration", "config"); super("Configuration", "sensor_config");
sensorConfigurations = new SensorDataParams[ sensorConfigurations = new SensorDataParams[
ControllerManager.getInstance().getAvailableSensors().size()]; ControllerManager.getInstance().getAvailableSensors().size()];
@ -49,18 +49,10 @@ public class SensorConfigHttpPage extends HalHttpPage {
// Save new input // Save new input
if(request.containsKey("action")){ if(request.containsKey("action")){
String action = request.get("action");
int id = (request.containsKey("id") ? Integer.parseInt(request.get("id")) : -1); int id = (request.containsKey("id") ? Integer.parseInt(request.get("id")) : -1);
Sensor sensor; Sensor sensor;
User user; User user;
switch(action) { switch(request.get("action")) {
// Local User
case "modify_local_user":
localUser.setUserName(request.get("username"));
localUser.setAddress(request.get("address"));
localUser.save(db);
break;
// Local Sensors // Local Sensors
case "create_local_sensor": case "create_local_sensor":
sensor = new Sensor(); sensor = new Sensor();

View file

@ -0,0 +1,55 @@
package se.hal.page;
import se.hal.ControllerManager;
import se.hal.HalContext;
import se.hal.intf.HalHttpPage;
import se.hal.struct.Sensor;
import se.hal.struct.User;
import zutil.db.DBConnection;
import zutil.io.file.FileUtil;
import zutil.parser.Templator;
import zutil.ui.Configurator;
import zutil.ui.Configurator.ConfigurationParam;
import java.util.Map;
public class UserConfigHttpPage extends HalHttpPage {
private static final String TEMPLATE = "web-resource/user_config.tmpl";
public UserConfigHttpPage() {
super("Profile", "user_profile");
}
@Override
public Templator httpRespond(
Map<String, Object> session,
Map<String, String> cookie,
Map<String, String> request)
throws Exception{
DBConnection db = HalContext.getDB();
User localUser = User.getLocalUser(db);
// Save new input
if(request.containsKey("action")){
User user;
switch(request.get("action")) {
// Local User
case "modify_local_user":
localUser.setUserName(request.get("username"));
localUser.setAddress(request.get("address"));
localUser.save(db);
break;
}
}
// Output
Templator tmpl = new Templator(FileUtil.find(TEMPLATE));
tmpl.set("user", localUser);
return tmpl;
}
}

View file

@ -1,33 +1,5 @@
<h1 class="page-header">Configuration</h1> <h1 class="page-header">Configuration</h1>
<div class="col-md-8">
<div class="panel panel-default drop-shadow">
<div class="panel-heading">Profile Information</div>
<div class="panel-body">
<form class="form-horizontal" method="POST">
<input type="hidden" name="action" value="modify_local_user">
<div class="form-group">
<label for="username" class="col-sm-2 control-label">Username:</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="username" name="username" value="{{user.username}}">
</div>
</div>
<div class="form-group">
<label for="address" class="col-sm-2 control-label">Address:</label>
<div class="col-sm-10">
<textarea class="form-control" id="address" name="address">{{user.address}}</textarea>
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" class="btn btn-primary">Save</button>
</div>
</div>
</form>
</div>
</div>
</div>
<div class="col-md-12"> <div class="col-md-12">
<div class="panel panel-default drop-shadow"> <div class="panel panel-default drop-shadow">
<div class="panel-heading">Local Sensors</div> <div class="panel-heading">Local Sensors</div>

29
web-resource/user_config.tmpl Executable file
View file

@ -0,0 +1,29 @@
<h1 class="page-header">Profile</h1>
<div class="col-md-8">
<div class="panel panel-default drop-shadow">
<div class="panel-heading">Profile Information</div>
<div class="panel-body">
<form class="form-horizontal" method="POST">
<input type="hidden" name="action" value="modify_local_user">
<div class="form-group">
<label for="username" class="col-sm-2 control-label">Username:</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="username" name="username" value="{{user.username}}">
</div>
</div>
<div class="form-group">
<label for="address" class="col-sm-2 control-label">Address:</label>
<div class="col-sm-10">
<textarea class="form-control" id="address" name="address">{{user.address}}</textarea>
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" class="btn btn-primary">Save</button>
</div>
</div>
</form>
</div>
</div>
</div>