From dce2fb17d1b23d0885c746b3bb50ef0ce9059d2a Mon Sep 17 00:00:00 2001
From: fvanroie <15969459+fvanroie@users.noreply.github.com>
Date: Fri, 30 Apr 2021 05:31:06 +0200
Subject: [PATCH] Add File Editor
---
.gitignore | 2 +
data/edit.htm | 437 ++++++++++++++++++++++++++++++++++++++
data/edit.htm.gz | Bin 0 -> 3753 bytes
platformio.ini | 4 +-
src/hasp/hasp_dispatch.h | 1 +
src/sys/svc/hasp_http.cpp | 17 ++
6 files changed, 460 insertions(+), 1 deletion(-)
create mode 100644 data/edit.htm
create mode 100644 data/edit.htm.gz
diff --git a/.gitignore b/.gitignore
index eac47ff6..a8cd17da 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,6 +5,8 @@
.git
.pio
data/*
+!data/edit.htm
+!data/edit.htm.gz
src/user_setups/active/*
include/user_config_override.h
src/user_config_override.h
diff --git a/data/edit.htm b/data/edit.htm
new file mode 100644
index 00000000..9e655932
--- /dev/null
+++ b/data/edit.htm
@@ -0,0 +1,437 @@
+
+
+
+
+
+ File Browser
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/data/edit.htm.gz b/data/edit.htm.gz
new file mode 100644
index 0000000000000000000000000000000000000000..d9519e4a1cb5784e686a3235cef4d163e78e1fe9
GIT binary patch
literal 3753
zcmV;a4p#9WiwFojd5d5I0A*xpbS`LgZ2-L*i+0*J^j92jOYLC{q*=B>oD7nzY4Z-y
zF6qg3ge^dcEP1vFq>O*xm1G-3NR#Yr+u9=CE9pLTpMveR{jLf;=`zR#zp`IX?ltDDo*WfWGgQ2MZ
zSgp>0e`7?alq9081lIHfkLp#$I(&pE9uNkD2n7LQgSy^E$uyTX#uN#1j~gLjS*INjSMq>K-DtUx_A|C2hwQMSN3A^GDQA6t7_=w{G
zG2}F3f~eD;YrP!uFXa)8VNS6xw36W-dUr%TMmz!()TNX()E8I-^(a=fEAfUKWxQ0tkzh-SQ76J$l-D*X%Vne2fR3%hu@q(b<5IVf*^DfO7ey?y`c
z!`0UQ+scnWo&;xvb?(132Ych69+J-R{XMIE)c+EeDEj%VLs4Ao
z2F*%oZ=<;>;>$g@|Ms^1Q>#_uy+1eJ-EF<=Ze8>)n(fV27hSb4n*Gh*aCmgo`88;M
ziJNER=H#H;JS-g@oK$P=tG9!bt#K~7~GCb^7
zo6X}h{OjIZbhP1r0{wS?!#|dqe?5ZExqA$+F3!{c&qH0YBFICP&dBCt_QX0u1=PHs`KeR%>h30z{so
zLB-oBgor`}{6>J5SM#Ik>R>VFNyqNmR)Jt0*3G_wO9MqX-$XH75FUT!%uLLsv*FA<
z2`Z@ynNabXAN^P=K!z$B5tvKZ*5S7~8KILw~jqu4-R!2OZ53s)~Z&{krZnjO<_AeS(P
zR+>Dy_gEsRLJvGNRi5(TJ&NnL{mwgr;-$@Tw*DUaSk~(c`>cT
zb`sa8C`nG$Jt*5Z75(^m`tgF46r=c+3Q6Rb-_bhz~c3F
zYol6S16TsnQL>9Dj$!Y?<>lGsXS0;SOXf}8kkc3^5oZbRfLYpg0rNh9hUZ|Hmhaw6
zd$jFY=q6Y+g@_6009&RsWz#Wr_%Ll}86Og6I<*yWGy(XA{Zc)Ja6~~*89|4*ocWaa
zcV4Cp*f}lN);up|+Ety#S>G~U(*~^+*IC?Scx?Q3a(pO6bcz2Q;Y8SQq|&2Q5Qg@L
z4X`&-S0dE%UwItvBY_$sWzkB#7uybZIY2D)yxRe_RAdS;B{Y%Cggwhu=`dGXYd59^
z?K*U&IHYe?L7>2u@hfpDW&<(&7rED=FFpQq^~TX06~#Ggua;*9+c?u?Uc$5HV@^s%
zKZki0Yq#!NpMQ66O18cGZN;r+%wHpTk*8Sdg6?OsDxaW`xB^_ypyl)`5VBsO#
zSw=8Gn6k??JwF_!g~_ABN+
z6->>vPK0BhF3AFNU(6|73j5@Ny0$fKR~3eC+7m-u<_v^l%V5)p(jOilm<(k&j)MF|3`It!+=3>Mv#mK$hm}9t3(%0D^!9h7C2W(_`E_UA(ioNMeK7@)QS+8AE)cnbm8MF
zHOH*3Ra0!SV$Fd|b*qJnDubCXKTmm}stu_1E#$~d3&qw8E4qx1j?w!E#|NE*JWS{4
zELi_H_g)PAGH^K%7M>47y7{zJ34?b{vySZ&OiJvT?h1@T^)^_HVrHZ*mQ=6D9Dlia
z@>ix>YDwCz;KzK7<2{sM3(C4Il4&dio>i;X*SSW|^x2#VAPt<27ARm><}~1UUpLH_
z?O-qv9-YS=GAq(n=VV)+f0f8npu@ezyGZ<)Q`+It?i28O4$lVZiSs3nzw*#y+!wn~
zA)Yx_t#PQQwBW)Wz{hVT-ysW-s}gUZV&?>A=b+X3Ifqj?*`p;hn#^IKT90T@08S*9
z%zV|;OyVJz_xlMJpJeiO;(UInQg;KUEaamE^O0D%T?=OdZPUO0$|pOtl+34B+oUkr
zA*C3M=U?_c1il9aduEVxKcp7Ux|!9z3swyZv_Z?Qh_I6}5&lqySRZWO6cb_A)#x_i
ztT3c{EL)WvnhyNzGm5fNlHn#HY}DSnR-L7T+MIRr@39`SLB?5>jRvIuRq~1S#jhn4
zg?~v_(Fdh*>iJXynZ{enH0$dt1H@}8LL|ROj4ip3dn`37C-AC`V4F9BQpr}&j;hK0
z9NfsqKi~x|R*05x0I9oSJ(6EbLXuK!eQ2MZx)F*YKCa4ouuQF6&QB1{E8b!qF(gUx(P+V+Uzn9=*+?I^-0mExrbFM9gB)&8
z3-x?%(`H1Ge05^4wQiPKH!C`3eqf^qOx!hcj|7bTqzj1KM8R*-JG@O02A_C*hvPZ~
zjY2<4v}60rF1-ez%$b+!Mt`wl^cTIR5Rq0LZ9U&iuWo){*)!+KcQLAgeX4jRQWV<|tinLa^{rYUG90Vo5icCfF$8O%?ZIEW?r|
zg9y%Rn`6STRfEVP{}iI|OfDL5ku8vT3G(GLc^gxlE}U7^@$JHO#Hs@DU;50FIDRqU
zVMWG&9NkhkUQ-51J7YIP%}cL=2sg}bS>Bd$3a@+e1D+hdUJ~
z>aoLGt4V~9IAHxuk9;=pLsa)9Dcw9N~xhbWB*?+!HY^x1sw(K1}o)
zn9m#;ChIF7z;x_=&Fv87>1eUdLQ7B264|1>XMGko&QyluI+NxD_qgf-I=@~7#v^i@
zo2LML>SVY=(h!mc;4OK*UI
TlmtH1?=b%cg#_Zumni@M+j38U
literal 0
HcmV?d00001
diff --git a/platformio.ini b/platformio.ini
index c2fffdad..81234770 100644
--- a/platformio.ini
+++ b/platformio.ini
@@ -96,7 +96,9 @@ board_upload.flash_size=4MB
board_upload.maximum_size = 4194304
board_build.partitions = user_setups/esp32/partition_app1704k_spiffs720k.csv
board_build.filesystem = littlefs
-
+board_build.embed_files =
+ data/edit.htm.gz
+
; ----- crash reporter
monitor_filters = esp32_exception_decoder
diff --git a/src/hasp/hasp_dispatch.h b/src/hasp/hasp_dispatch.h
index 270f600c..2748858c 100644
--- a/src/hasp/hasp_dispatch.h
+++ b/src/hasp/hasp_dispatch.h
@@ -59,6 +59,7 @@ void dispatch_web_update(const char*, const char* espOtaUrl);
void dispatch_statusupdate(const char*, const char*);
void dispatch_idle(const char*, const char*);
void dispatch_calibrate(const char*, const char*);
+void dispatch_wakeup(const char*, const char*);
void dispatch_gpio_input_event(uint8_t pin, uint8_t group, uint8_t eventid);
diff --git a/src/sys/svc/hasp_http.cpp b/src/sys/svc/hasp_http.cpp
index 6233f85d..0fcd0da7 100644
--- a/src/sys/svc/hasp_http.cpp
+++ b/src/sys/svc/hasp_http.cpp
@@ -94,6 +94,8 @@ ESP8266WebServer webServer(80);
#include
#include
WebServer webServer(80);
+extern const uint8_t EDIT_HTM_GZ_START[] asm("_binary_data_edit_htm_gz_start");
+extern const uint8_t EDIT_HTM_GZ_END[] asm("_binary_data_edit_htm_gz_end");
#endif // ESP32
HTTPUpload* upload;
@@ -901,7 +903,15 @@ bool handleFileRead(String path)
file.close();
return true;
}
+
+#ifdef ARDUINO_ARCH_ESP32
+ size_t size = EDIT_HTM_GZ_END - EDIT_HTM_GZ_START;
+ webServer.sendHeader(F("Content-Encoding"), F("gzip"));
+ webServer.send_P(200, PSTR("text/html"), (const char*)EDIT_HTM_GZ_START, size);
+ return true;
+#else
return false;
+#endif
}
void handleFileUpload()
@@ -998,11 +1008,18 @@ void handleFileCreate()
}
}
if(webServer.hasArg(F("init"))) {
+ dispatch_wakeup(NULL, NULL);
hasp_init();
}
if(webServer.hasArg(F("load"))) {
+ dispatch_wakeup(NULL, NULL);
hasp_load_json();
}
+ if(webServer.hasArg(F("page"))) {
+ uint8_t pageid = atoi(webServer.arg(F("page")).c_str());
+ dispatch_wakeup(NULL, NULL);
+ dispatch_set_page(pageid, LV_SCR_LOAD_ANIM_NONE);
+ }
webServer.send(200, PSTR("text/plain"), "");
}