From bd560cbd900007b86f15e46b16e47adb7ae7603a Mon Sep 17 00:00:00 2001 From: Kenneth Date: Sat, 10 May 2025 22:45:10 +0100 Subject: [PATCH] add pwa stuff --- .idea/dataSources.xml | 2 +- .../Start_placeholder_server_on_8080.xml | 12 ++++++++++++ web/favicon.png | Bin 0 -> 1242 bytes web/index.html | 9 +++++++++ web/logo.png | Bin 0 -> 27130 bytes web/manifest.json | 17 +++++++++++++++++ web/summary.js | 2 ++ 7 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 .idea/runConfigurations/Start_placeholder_server_on_8080.xml create mode 100644 web/favicon.png create mode 100644 web/logo.png create mode 100644 web/manifest.json diff --git a/.idea/dataSources.xml b/.idea/dataSources.xml index 37f9176..d4750e2 100644 --- a/.idea/dataSources.xml +++ b/.idea/dataSources.xml @@ -5,7 +5,7 @@ sqlite.xerial true org.sqlite.JDBC - jdbc:sqlite:$PROJECT_DIR$/data.sqlite + jdbc:sqlite:$PROJECT_DIR$/data/data.sqlite diff --git a/.idea/runConfigurations/Start_placeholder_server_on_8080.xml b/.idea/runConfigurations/Start_placeholder_server_on_8080.xml new file mode 100644 index 0000000..1842bf8 --- /dev/null +++ b/.idea/runConfigurations/Start_placeholder_server_on_8080.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/web/favicon.png b/web/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..4232d491f03d9552f8d54f90ebb64e8b2410a450 GIT binary patch literal 1242 zcmV<01SR{4P))04R}lkiAPnVHC!HnjwT#LqtJ=L)2msHz8Mbkf6b==wm6png)Jc?lr2- zp|%F0mbS2^md08d`VR_lKOCNv5x#qKm2YKQ>U!An@@*7ej!#1IrRAGmyYam9cfP6G z;t4~Q{vlscH9ZfuQQ`1;XR9!H9oR9R^#*P%uFOGd?nnerlN7-M`2H_ zK~FYtCcUP9Ww6q_64}{l>D}`C2#_Gl6mCMyp~xFYQvI{zt?mTLp|Oe1DoIl0W!o=` zMq1q5Oo*e(2p(ZY+!Valt$*LJuH{PLdxMr@U5o9***5gt)wO{G=-7hOOD(ELe=ch) zJB*bvrN*uRv_6>T>mWFHp;9!>_mXK=4#oc-F0!Ana%7>xyFv^A000SaNLh0L06l~N z06l~O)vT{{0009aNklWw=dWMH>$JAA`1kj( ztgH+pBO_53Oq;#%>C4x|TQH?tB&W2_+(_5Y+r!SrN=QhMfCc1%ljkmgHs2#9y@WWrE}t&_aESbJe-_Ce(vtB&IbCr5D_vX znT3g&o15F!*-=JHoPmL%vM|%d&XR$F;mh~$i&kzZt8PN5gtL~;pZ@RvKdi>Rd-pye zt>DY|?{JZdqAX+ut}c$QE{^JIDpThyMt2IFB`PX{)%1V={`F0qhHSd4y;W#P0EGSj z|9=JshT`(N^H*-b6^IBUBAjp}Z{46VE&?I-+%subE8B3%*{;TTq_d;KW}$yYYQPk?3sXo1rHuPT(N#DvWUNr zC!DRXr>meK&%nU&@#CkDA3q^0V`5^Gmy;!I!NMggkh$7w%9FKbuu^}tN9;WBcUqlmuqS!Qs 7am Weather + + + @@ -37,6 +40,12 @@

+ + diff --git a/web/logo.png b/web/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..e16f3d87bb23f3513294fec01837148d402f68f8 GIT binary patch literal 27130 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 Me}t6xv-6dI0fM;Xv;Y7A literal 0 HcmV?d00001 diff --git a/web/manifest.json b/web/manifest.json new file mode 100644 index 0000000..b566f45 --- /dev/null +++ b/web/manifest.json @@ -0,0 +1,17 @@ +{ + "name": "7am Weather", + "short_name": "7am", + "theme_color": "#1f2937", + "background_color": "#f3f4f6", + "display": "standalone", + "scope": "/", + "start_url": "/", + "description": "Daily weather updates delivered to you at 7am.", + "orientation": "vertical", + "icons": [ + { + "src": "/logo.png", + "sizes": "1024x1024" + } + ] +} \ No newline at end of file diff --git a/web/summary.js b/web/summary.js index 8476263..3f795a7 100644 --- a/web/summary.js +++ b/web/summary.js @@ -123,4 +123,6 @@ function jsonOrThrow(res) { if (canReceiveUpdates) { main() +} else { + getSummaryButton.style.display = "none" }