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"), ""); }