Some progress on fileupload
This commit is contained in:
parent
795893ea2e
commit
c0412d40c7
12 changed files with 88 additions and 35 deletions
12
Hal.iml
12
Hal.iml
|
|
@ -4,20 +4,8 @@
|
|||
<exclude-output />
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/test" isTestSource="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/test" isTestSource="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/resource" type="java-resource" relativeOutputPath="resource" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/external/sphinx4-5prealpha-src/sphinx4-core/src/main/java" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/external/sphinx4-5prealpha-src/sphinx4-core/src/main/resources" type="java-resource" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/external/sphinx4-5prealpha-src/sphinx4-data/src/main/resources" type="java-resource" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/lib/sphinx4-5prealpha-src/sphinx4-core/src/main/java" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/lib/sphinx4-5prealpha-src/sphinx4-core/src/main/resources" type="java-resource" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/lib/sphinx4-5prealpha-src/sphinx4-data/src/main/resources" type="java-resource" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/lib/sphinx4-5prealpha-src/sphinx4-samples/src/main/resources" type="java-resource" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/lib/java-speech-api-master/src" isTestSource="false" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/lib/sphinx4-5prealpha-src/sphinx4-data" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/lib/sphinx4-5prealpha-src/sphinx4-samples" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/lib/sphinx4-5prealpha-src/tests" />
|
||||
</content>
|
||||
<orderEntry type="jdk" jdkName="1.8" jdkType="JavaSDK" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@
|
|||
</a>
|
||||
<div class="edit-mode btn-toolbar">
|
||||
<div class="btn-group-vertical">
|
||||
<button type="button" class="btn btn-sm btn-default" title="Change Background Image">
|
||||
<button id="button-bg-edit" type="button" class="btn btn-sm btn-default" title="Change Background Image">
|
||||
<span class="glyphicon glyphicon-picture" aria-hidden="true"></span>
|
||||
</button>
|
||||
<br />
|
||||
|
|
@ -74,10 +74,11 @@
|
|||
});
|
||||
|
||||
// BG Upload
|
||||
$("#button-bg").click(function() {
|
||||
$("#button-bg-edit").click(function() {
|
||||
// Reset modal
|
||||
//$('#bg-file-input').parent().show();
|
||||
//$('#bg-file-progress').parent().hide();
|
||||
$('#bg-file-input').parent().show();
|
||||
$('#bg-file-progress').parent().hide();
|
||||
$('#bgUploadModal').modal('show');
|
||||
});
|
||||
$('#bg-file-input').filer({
|
||||
limit: 1,
|
||||
|
|
@ -92,13 +93,14 @@
|
|||
$('#bg-file-progress').parent().show();
|
||||
},
|
||||
success: function(data, el){
|
||||
|
||||
$('#bgUploadModal').modal('hide');
|
||||
drawMap();
|
||||
},
|
||||
error: function(el){
|
||||
$("bg-upload-progress").addClass("progress-bar-danger");
|
||||
$("#bg-upload-progress").addClass("progress-bar-danger");
|
||||
},
|
||||
onProgress: function(t){
|
||||
$("bg-upload-progress").css("width", t+"%");
|
||||
$("#bg-upload-progress").css("width", t+"%");
|
||||
},
|
||||
}
|
||||
});
|
||||
|
|
@ -188,10 +190,10 @@
|
|||
<div class="modal-body">
|
||||
<center>
|
||||
<div class="input-group">
|
||||
<input type="file" name="files[]" multiple="multiple" id="bg-file-input">
|
||||
<input type="file" name="bg-file" id="bg-file-input">
|
||||
</div>
|
||||
<div class="progress">
|
||||
<div id="bg-file-progress" class="progress-bar progress-bar-striped active" style="width: 45%"></div>
|
||||
<div id="bg-file-progress" class="progress-bar progress-bar-striped active" style="width: 1%"></div>
|
||||
</div>
|
||||
</center>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -156,8 +156,7 @@ public class HalContext {
|
|||
}
|
||||
|
||||
logger.info("DB upgrade done");
|
||||
dbConf.setProperty(PROPERTY_DB_VERSION, defaultDBConf.getProperty(PROPERTY_DB_VERSION));
|
||||
storeProperties();
|
||||
setProperty(PROPERTY_DB_VERSION, defaultDBConf.getProperty(PROPERTY_DB_VERSION));
|
||||
}
|
||||
referenceDB.close();
|
||||
} catch (Exception e){
|
||||
|
|
@ -177,15 +176,12 @@ public class HalContext {
|
|||
public static int getIntegerProperty(String key){
|
||||
return Integer.parseInt(getStringProperty(key));
|
||||
}
|
||||
public synchronized static void storeProperties() throws SQLException {
|
||||
logger.fine("Saving conf to DB...");
|
||||
public static void setProperty(String key, String value) throws SQLException {
|
||||
PreparedStatement stmt = db.getPreparedStatement("REPLACE INTO conf (key, value) VALUES (?, ?)");
|
||||
for(Object key : dbConf.keySet()){
|
||||
stmt.setObject(1, key);
|
||||
stmt.setObject(2, dbConf.get(key));
|
||||
stmt.addBatch();
|
||||
}
|
||||
DBConnection.execBatch(stmt);
|
||||
stmt.setObject(1, key);
|
||||
stmt.setObject(2, value);
|
||||
DBConnection.exec(stmt);
|
||||
dbConf.setProperty(key, value);
|
||||
}
|
||||
|
||||
public static DBConnection getDB(){
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ public abstract class HalHttpPage implements HttpPage{
|
|||
request.containsKey("json"))){
|
||||
out.setHeader("Content-Type", "application/json");
|
||||
JSONWriter writer = new JSONWriter(out);
|
||||
writer.write(((HalJsonPage)this).jsonResponse(session,cookie, request));
|
||||
writer.write(((HalJsonPage)this).jsonResponse(header, session,cookie, request));
|
||||
writer.close();
|
||||
}
|
||||
else{
|
||||
|
|
@ -66,7 +66,7 @@ public abstract class HalHttpPage implements HttpPage{
|
|||
tmpl.set("rootNav", rootNav.createPagedNavInstance(header).getSubNavs());
|
||||
tmpl.set("userNav", userNav.createPagedNavInstance(header).getSubNavs());
|
||||
tmpl.set("alerts", HalAlertManager.getInstance().generateAlerts());
|
||||
tmpl.set("content", httpRespond(session, cookie, request));
|
||||
tmpl.set("content", httpRespond(header, session, cookie, request));
|
||||
out.print(tmpl.compile());
|
||||
}
|
||||
} catch (Exception e) {
|
||||
|
|
@ -90,6 +90,7 @@ public abstract class HalHttpPage implements HttpPage{
|
|||
|
||||
|
||||
public abstract Templator httpRespond(
|
||||
HttpHeader header,
|
||||
Map<String, Object> session,
|
||||
Map<String, String> cookie,
|
||||
Map<String, String> request)
|
||||
|
|
@ -99,6 +100,7 @@ public abstract class HalHttpPage implements HttpPage{
|
|||
|
||||
public interface HalJsonPage{
|
||||
DataNode jsonResponse(
|
||||
HttpHeader header,
|
||||
Map<String, Object> session,
|
||||
Map<String, String> cookie,
|
||||
Map<String, String> request)
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ import se.hal.struct.Event;
|
|||
import se.hal.struct.User;
|
||||
import zutil.db.DBConnection;
|
||||
import zutil.io.file.FileUtil;
|
||||
import zutil.net.http.HttpHeader;
|
||||
import zutil.parser.Templator;
|
||||
import zutil.ui.Configurator;
|
||||
import zutil.ui.Configurator.ConfigurationParam;
|
||||
|
|
@ -40,6 +41,7 @@ public class EventConfigHttpPage extends HalHttpPage {
|
|||
|
||||
@Override
|
||||
public Templator httpRespond(
|
||||
HttpHeader header,
|
||||
Map<String, Object> session,
|
||||
Map<String, String> cookie,
|
||||
Map<String, String> request)
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ import se.hal.util.HistoryDataListSqlResult;
|
|||
import se.hal.util.HistoryDataListSqlResult.HistoryData;
|
||||
import zutil.db.DBConnection;
|
||||
import zutil.io.file.FileUtil;
|
||||
import zutil.net.http.HttpHeader;
|
||||
import zutil.parser.Templator;
|
||||
|
||||
import java.sql.PreparedStatement;
|
||||
|
|
@ -29,6 +30,7 @@ public class EventOverviewHttpPage extends HalHttpPage {
|
|||
|
||||
@Override
|
||||
public Templator httpRespond(
|
||||
HttpHeader header,
|
||||
Map<String, Object> session,
|
||||
Map<String, String> cookie,
|
||||
Map<String, String> request)
|
||||
|
|
|
|||
|
|
@ -7,10 +7,17 @@ import se.hal.struct.Event;
|
|||
import se.hal.struct.Sensor;
|
||||
import zutil.db.DBConnection;
|
||||
import zutil.io.file.FileUtil;
|
||||
import zutil.net.http.HttpHeader;
|
||||
import zutil.net.http.multipart.MultipartField;
|
||||
import zutil.net.http.multipart.MultipartFileField;
|
||||
import zutil.net.http.multipart.MultipartParser;
|
||||
import zutil.parser.Base64Decoder;
|
||||
import zutil.parser.Base64Encoder;
|
||||
import zutil.parser.DataNode;
|
||||
import zutil.parser.Templator;
|
||||
|
||||
import java.sql.SQLException;
|
||||
import java.util.Iterator;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
|
|
@ -19,6 +26,9 @@ import java.util.Map;
|
|||
public class MapHttpPage extends HalHttpPage implements HalHttpPage.HalJsonPage{
|
||||
private static final String TEMPLATE = "resource/web/map.tmpl";
|
||||
|
||||
private String bgType;
|
||||
private byte[] bgImage;
|
||||
|
||||
|
||||
public MapHttpPage() {
|
||||
super("map");
|
||||
|
|
@ -28,16 +38,43 @@ public class MapHttpPage extends HalHttpPage implements HalHttpPage.HalJsonPage{
|
|||
|
||||
|
||||
@Override
|
||||
public Templator httpRespond(Map<String, Object> session,
|
||||
public Templator httpRespond(HttpHeader header,
|
||||
Map<String, Object> session,
|
||||
Map<String, String> cookie,
|
||||
Map<String, String> request) throws Exception {
|
||||
if ("POST".equals(header.getRequestType())){
|
||||
MultipartParser multipart = new MultipartParser(header);
|
||||
Iterator<MultipartField> it = multipart.iterator();
|
||||
MultipartField field;
|
||||
while ((field = it.next()) != null){
|
||||
if (field instanceof MultipartFileField){
|
||||
MultipartFileField file = (MultipartFileField)field;
|
||||
String ext = FileUtil.getFileExtension(file.getFilename());
|
||||
if (ext.equals("jpg") || ext.equals("png") || ext.equals("svg") || ext.equals("gif")) {
|
||||
saveBgImage(ext, file.getContent());
|
||||
loadBgImage();
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
if (request.containsKey("bgimage")){
|
||||
if (bgImage == null)
|
||||
loadBgImage();
|
||||
// send bg image;
|
||||
}
|
||||
|
||||
|
||||
Templator tmpl = new Templator(FileUtil.find(TEMPLATE));
|
||||
return tmpl;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public DataNode jsonResponse(Map<String, Object> session,
|
||||
public DataNode jsonResponse(HttpHeader header,
|
||||
Map<String, Object> session,
|
||||
Map<String, String> cookie,
|
||||
Map<String, String> request) throws Exception {
|
||||
DBConnection db = HalContext.getDB();
|
||||
|
|
@ -86,4 +123,17 @@ public class MapHttpPage extends HalHttpPage implements HalHttpPage.HalJsonPage{
|
|||
deviceNode.set("y", device.getY());
|
||||
return deviceNode;
|
||||
}
|
||||
|
||||
|
||||
private void loadBgImage(){
|
||||
String property = HalContext.getStringProperty("map_bgimage");
|
||||
if (property != null) {
|
||||
String[] split = property.split(",", 2);
|
||||
bgType = split[0];
|
||||
bgImage = Base64Decoder.decodeToByte(split[1]);
|
||||
}
|
||||
}
|
||||
private void saveBgImage(String type, byte[] data) throws SQLException {
|
||||
HalContext.setProperty("map_bgimage", type+","+ Base64Encoder.encode(data));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ package se.hal.page;
|
|||
|
||||
import se.hal.intf.HalHttpPage;
|
||||
import zutil.io.file.FileUtil;
|
||||
import zutil.net.http.HttpHeader;
|
||||
import zutil.parser.Templator;
|
||||
|
||||
import java.util.Map;
|
||||
|
|
@ -17,6 +18,7 @@ public class PCHeatMapHttpPage extends HalHttpPage {
|
|||
|
||||
@Override
|
||||
public Templator httpRespond(
|
||||
HttpHeader header,
|
||||
Map<String, Object> session,
|
||||
Map<String, String> cookie,
|
||||
Map<String, String> request)
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ import se.hal.util.AggregateDataListSqlResult.AggregateData;
|
|||
import se.hal.util.UTCTimeUtility;
|
||||
import zutil.db.DBConnection;
|
||||
import zutil.io.file.FileUtil;
|
||||
import zutil.net.http.HttpHeader;
|
||||
import zutil.parser.DataNode;
|
||||
import zutil.parser.Templator;
|
||||
|
||||
|
|
@ -29,6 +30,7 @@ public class PCOverviewHttpPage extends HalHttpPage implements HalHttpPage.HalJs
|
|||
|
||||
@Override
|
||||
public Templator httpRespond(
|
||||
HttpHeader header,
|
||||
Map<String, Object> session,
|
||||
Map<String, String> cookie,
|
||||
Map<String, String> request)
|
||||
|
|
@ -48,6 +50,7 @@ public class PCOverviewHttpPage extends HalHttpPage implements HalHttpPage.HalJs
|
|||
|
||||
@Override
|
||||
public DataNode jsonResponse(
|
||||
HttpHeader header,
|
||||
Map<String, Object> session,
|
||||
Map<String, String> cookie,
|
||||
Map<String, String> request) throws Exception {
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ import se.hal.struct.Sensor;
|
|||
import se.hal.struct.User;
|
||||
import zutil.db.DBConnection;
|
||||
import zutil.io.file.FileUtil;
|
||||
import zutil.net.http.HttpHeader;
|
||||
import zutil.parser.Templator;
|
||||
import zutil.ui.Configurator;
|
||||
import zutil.ui.Configurator.ConfigurationParam;
|
||||
|
|
@ -40,6 +41,7 @@ public class SensorConfigHttpPage extends HalHttpPage {
|
|||
|
||||
@Override
|
||||
public Templator httpRespond(
|
||||
HttpHeader header,
|
||||
Map<String, Object> session,
|
||||
Map<String, String> cookie,
|
||||
Map<String, String> request)
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ import se.hal.util.HistoryDataListSqlResult.HistoryData;
|
|||
import se.hal.util.UTCTimeUtility;
|
||||
import zutil.db.DBConnection;
|
||||
import zutil.io.file.FileUtil;
|
||||
import zutil.net.http.HttpHeader;
|
||||
import zutil.parser.Templator;
|
||||
|
||||
import java.sql.PreparedStatement;
|
||||
|
|
@ -29,6 +30,7 @@ public class SensorOverviewHttpPage extends HalHttpPage {
|
|||
|
||||
@Override
|
||||
public Templator httpRespond(
|
||||
HttpHeader header,
|
||||
Map<String, Object> session,
|
||||
Map<String, String> cookie,
|
||||
Map<String, String> request)
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import se.hal.intf.HalHttpPage;
|
|||
import se.hal.struct.User;
|
||||
import zutil.db.DBConnection;
|
||||
import zutil.io.file.FileUtil;
|
||||
import zutil.net.http.HttpHeader;
|
||||
import zutil.parser.Templator;
|
||||
|
||||
import java.util.Map;
|
||||
|
|
@ -20,6 +21,7 @@ public class UserConfigHttpPage extends HalHttpPage {
|
|||
|
||||
@Override
|
||||
public Templator httpRespond(
|
||||
HttpHeader header,
|
||||
Map<String, Object> session,
|
||||
Map<String, String> cookie,
|
||||
Map<String, String> request)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue