From ddd88b4aadb23f29a88983b98fe2d0ffebc58f6c Mon Sep 17 00:00:00 2001 From: Oliver Marks Date: Tue, 17 Sep 2019 19:38:13 +0100 Subject: [PATCH] Clean up project code. --- deps.edn | 2 +- figwheel-main.edn | 2 +- prod.cljs.edn | 7 +++---- resources/public/dev-main.js | 2 +- resources/public/form.edn | 25 +++++++++++++------------ resources/public/prod.html | 14 ++++++++++++++ src/weecfg/core.cljs | 35 +++++++++++++++++++++-------------- 7 files changed, 54 insertions(+), 33 deletions(-) create mode 100644 resources/public/prod.html diff --git a/deps.edn b/deps.edn index 64d143e..ea89dfe 100644 --- a/deps.edn +++ b/deps.edn @@ -9,4 +9,4 @@ com.bhauman/figwheel-main {:mvn/version "0.2.1-SNAPSHOT"} cider/piggieback {:mvn/version "0.4.0"} com.bhauman/rebel-readline-cljs {:mvn/version "0.1.4"}} - :paths ["app" "src" "resources"]} + :paths ["src" "resources"]} diff --git a/figwheel-main.edn b/figwheel-main.edn index 5b8ca4a..8acc3d7 100644 --- a/figwheel-main.edn +++ b/figwheel-main.edn @@ -1,2 +1,2 @@ -{:target-dir "app/data" +{:target-dir "resources" :watch-dirs ["src"]} diff --git a/prod.cljs.edn b/prod.cljs.edn index 564a899..4bb526c 100644 --- a/prod.cljs.edn +++ b/prod.cljs.edn @@ -1,5 +1,4 @@ -{:output-to "app/data/main.js" - :output-dir "app/data/" - :asset-path "app/data/", - :optimizations :advanced +^{ :open-url "http://127.0.0.1:9500/prod.html"} +{:output-to "resources/public/main.js" +:optimizations :advanced :main weecfg.core} diff --git a/resources/public/dev-main.js b/resources/public/dev-main.js index 8d65a93..951ca3a 100644 --- a/resources/public/dev-main.js +++ b/resources/public/dev-main.js @@ -1,4 +1,4 @@ -var CLOSURE_UNCOMPILED_DEFINES = {"figwheel.repl.connect_url":"ws:\/\/localhost:9500\/figwheel-connect?fwprocess=094d2d&fwbuild=dev"}; +var CLOSURE_UNCOMPILED_DEFINES = {"figwheel.repl.connect_url":"ws:\/\/localhost:9500\/figwheel-connect?fwprocess=226ccd&fwbuild=dev"}; var CLOSURE_NO_DEPS = true; if(typeof goog == "undefined") document.write(''); document.write(''); diff --git a/resources/public/form.edn b/resources/public/form.edn index f39b8c0..303fe66 100644 --- a/resources/public/form.edn +++ b/resources/public/form.edn @@ -1,12 +1,13 @@ -[{:name "server" :title "Server" :placeholder "127.0.0.1" - :validator "server-type" - :error "Invalid server address"} - {:name "device-id" :title "Device Unique ID" :placeholder "AAAA" - :validator "device-id-type" - :error "Invalid identifier" :focus "true"} - {:name "wifi-ssid" :title "WIFI SSID" - :validator "wifi-ssid-type" - :error "Invalid SSID"} - {:name "wifi-key" :title "WIFI Password" - :validator "wifi-key-type" - :error "Invalid wifi password" :type "password"}] +{:title "GASP Sensor setup" + :fields [{:name "server" :title "Server" :placeholder "127.0.0.1" + :validator "server-type" + :error "Invalid server address"} + {:name "device-id" :title "Device Unique ID" :placeholder "AAAA" + :validator "device-id-type" + :error "Invalid identifier" :focus "true"} + {:name "wifi-ssid" :title "WIFI SSID" + :validator "wifi-ssid-type" + :error "Invalid SSID"} + {:name "wifi-key" :title "WIFI Password" + :validator "wifi-key-type" + :error "Invalid wifi password" :type "password"}]} diff --git a/resources/public/prod.html b/resources/public/prod.html new file mode 100644 index 0000000..e0200a0 --- /dev/null +++ b/resources/public/prod.html @@ -0,0 +1,14 @@ + + + + Device setup + + + + + + +
Loading
+ + + diff --git a/src/weecfg/core.cljs b/src/weecfg/core.cljs index a4c4f0d..fa34a2d 100644 --- a/src/weecfg/core.cljs +++ b/src/weecfg/core.cljs @@ -1,9 +1,8 @@ (ns weecfg.core (:require [accountant.core :as accountant] - [clojure.spec.alpha :as s] - [cognitect.transit :as t] + [ajax.core :refer [GET]] [clojure.edn :refer [read-string]] - [ajax.core :refer [GET, POST]] + [clojure.spec.alpha :as s] [reagent.core :as reagent :refer [atom]] [reagent.session :as session] [reitit.frontend :as reitit])) @@ -12,11 +11,11 @@ (defonce form-errors (atom nil)) (defonce form-title "GASP Sensor setup") (defonce form-data (atom {:server "" :device-id "" :wifi-ssid "" :wifi-key ""})) -(defonce form-layout (atom [])) (defonce device-id-regex #"[A-Za-z0-9]{4}") (defonce ssid-regex #"^[!#;].|[+\[\]\"\t\s].*$") ; spec validation definitions +(s/def ::boolean-type boolean?) (s/def ::size-test #(<= (count %) 2)) (s/def ::ssid-size-limit #(<= (count %) 32)) (s/def ::default-size-limit #(<= (count %) 50)) @@ -89,11 +88,17 @@ {:response :transit :format :transit :error-handler handle-failure - :handler (fn [response] (reset! form-fields (read-string response)))})) + :handler (fn [response] + (let [form (read-string response) + title (:title form) + fields (:fields form)] + + (reset! form-fields form-title) + (reset! form-fields fields)))})) ;submit the data as raw post data (defn form-submit [data] - (POST "/submit" + (GET "/save" {:params @data :error-handler handle-failure :format :raw @@ -141,11 +146,13 @@ ; give a browser route load the relevant defn handler (defn page-for [route] "Map your route keys to pages here" + (print route) (case route - :index #'home-page - :error #'home-page - :success #'success-page - :about #'about-page)) + :index (var home-page) + ;:error #'home-page + :success (success-page) + :about (var about-page) + (var home-page))) ; default page wrapper html (defn current-page [] @@ -153,10 +160,10 @@ (let [page (:current-page (session/get :route))] [:div.bg-green.flex.justify-center.items-center.h-100 [:div.w-25 - [:a.athelas.f3.link.white-70.hover-white.no-underline.flex.items-center.pa3 - {:href "/"} - [:h2.w-100 - [:a.link.fr.black {:href (path-for :about)} [:i.fas.fa-question-circle]] + [:h2.w-100 + [:a.link.fr.black {:href (path-for :about)} [:i.fas.fa-question-circle]] + [:a.athelas.f3.link.white-70.hover-white.no-underline.flex.items-center.pa3 + {:href "/"} [:i.fas.fa-surprise.mr3] "GASP Sensor setup"]] [page]]])))