Clean up project code.

This commit is contained in:
Oliver Marks 2019-09-17 19:38:13 +01:00
parent 320285df1e
commit ddd88b4aad
7 changed files with 54 additions and 33 deletions

View File

@ -9,4 +9,4 @@
com.bhauman/figwheel-main {:mvn/version "0.2.1-SNAPSHOT"} com.bhauman/figwheel-main {:mvn/version "0.2.1-SNAPSHOT"}
cider/piggieback {:mvn/version "0.4.0"} cider/piggieback {:mvn/version "0.4.0"}
com.bhauman/rebel-readline-cljs {:mvn/version "0.1.4"}} com.bhauman/rebel-readline-cljs {:mvn/version "0.1.4"}}
:paths ["app" "src" "resources"]} :paths ["src" "resources"]}

View File

@ -1,2 +1,2 @@
{:target-dir "app/data" {:target-dir "resources"
:watch-dirs ["src"]} :watch-dirs ["src"]}

View File

@ -1,5 +1,4 @@
{:output-to "app/data/main.js" ^{ :open-url "http://127.0.0.1:9500/prod.html"}
:output-dir "app/data/" {:output-to "resources/public/main.js"
:asset-path "app/data/", :optimizations :advanced
:optimizations :advanced
:main weecfg.core} :main weecfg.core}

View File

@ -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; var CLOSURE_NO_DEPS = true;
if(typeof goog == "undefined") document.write('<script src="/cljs-out/dev/goog/base.js"></script>'); if(typeof goog == "undefined") document.write('<script src="/cljs-out/dev/goog/base.js"></script>');
document.write('<script src="/cljs-out/dev/goog/deps.js"></script>'); document.write('<script src="/cljs-out/dev/goog/deps.js"></script>');

View File

@ -1,12 +1,13 @@
[{:name "server" :title "Server" :placeholder "127.0.0.1" {:title "GASP Sensor setup"
:validator "server-type" :fields [{:name "server" :title "Server" :placeholder "127.0.0.1"
:error "Invalid server address"} :validator "server-type"
{:name "device-id" :title "Device Unique ID" :placeholder "AAAA" :error "Invalid server address"}
:validator "device-id-type" {:name "device-id" :title "Device Unique ID" :placeholder "AAAA"
:error "Invalid identifier" :focus "true"} :validator "device-id-type"
{:name "wifi-ssid" :title "WIFI SSID" :error "Invalid identifier" :focus "true"}
:validator "wifi-ssid-type" {:name "wifi-ssid" :title "WIFI SSID"
:error "Invalid SSID"} :validator "wifi-ssid-type"
{:name "wifi-key" :title "WIFI Password" :error "Invalid SSID"}
:validator "wifi-key-type" {:name "wifi-key" :title "WIFI Password"
:error "Invalid wifi password" :type "password"}] :validator "wifi-key-type"
:error "Invalid wifi password" :type "password"}]}

View File

@ -0,0 +1,14 @@
<!DOCTYPE html>
<html class="h-100 bg-green" lang="en">
<head>
<title>Device setup</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta charset="UTF-8">
<link rel="stylesheet" href="tachyon.css" type="text/css"/>
<link rel="stylesheet" href="all.min.css" type="text/css"/>
</head>
<body class="h-100">
<div id="app" class="h-100"><i class="fas fa-spinner"></i>Loading</div>
<script src="main.js"></script>
</body>
</html>

View File

@ -1,9 +1,8 @@
(ns weecfg.core (ns weecfg.core
(:require [accountant.core :as accountant] (:require [accountant.core :as accountant]
[clojure.spec.alpha :as s] [ajax.core :refer [GET]]
[cognitect.transit :as t]
[clojure.edn :refer [read-string]] [clojure.edn :refer [read-string]]
[ajax.core :refer [GET, POST]] [clojure.spec.alpha :as s]
[reagent.core :as reagent :refer [atom]] [reagent.core :as reagent :refer [atom]]
[reagent.session :as session] [reagent.session :as session]
[reitit.frontend :as reitit])) [reitit.frontend :as reitit]))
@ -12,11 +11,11 @@
(defonce form-errors (atom nil)) (defonce form-errors (atom nil))
(defonce form-title "GASP Sensor setup") (defonce form-title "GASP Sensor setup")
(defonce form-data (atom {:server "" :device-id "" :wifi-ssid "" :wifi-key ""})) (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 device-id-regex #"[A-Za-z0-9]{4}")
(defonce ssid-regex #"^[!#;].|[+\[\]\"\t\s].*$") (defonce ssid-regex #"^[!#;].|[+\[\]\"\t\s].*$")
; spec validation definitions ; spec validation definitions
(s/def ::boolean-type boolean?)
(s/def ::size-test #(<= (count %) 2)) (s/def ::size-test #(<= (count %) 2))
(s/def ::ssid-size-limit #(<= (count %) 32)) (s/def ::ssid-size-limit #(<= (count %) 32))
(s/def ::default-size-limit #(<= (count %) 50)) (s/def ::default-size-limit #(<= (count %) 50))
@ -89,11 +88,17 @@
{:response :transit {:response :transit
:format :transit :format :transit
:error-handler handle-failure :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 ;submit the data as raw post data
(defn form-submit [data] (defn form-submit [data]
(POST "/submit" (GET "/save"
{:params @data {:params @data
:error-handler handle-failure :error-handler handle-failure
:format :raw :format :raw
@ -141,11 +146,13 @@
; give a browser route load the relevant defn handler ; give a browser route load the relevant defn handler
(defn page-for [route] (defn page-for [route]
"Map your route keys to pages here" "Map your route keys to pages here"
(print route)
(case route (case route
:index #'home-page :index (var home-page)
:error #'home-page ;:error #'home-page
:success #'success-page :success (success-page)
:about #'about-page)) :about (var about-page)
(var home-page)))
; default page wrapper html ; default page wrapper html
(defn current-page [] (defn current-page []
@ -153,10 +160,10 @@
(let [page (:current-page (session/get :route))] (let [page (:current-page (session/get :route))]
[:div.bg-green.flex.justify-center.items-center.h-100 [:div.bg-green.flex.justify-center.items-center.h-100
[:div.w-25 [:div.w-25
[:a.athelas.f3.link.white-70.hover-white.no-underline.flex.items-center.pa3 [:h2.w-100
{:href "/"} [:a.link.fr.black {:href (path-for :about)} [:i.fas.fa-question-circle]]
[:h2.w-100 [:a.athelas.f3.link.white-70.hover-white.no-underline.flex.items-center.pa3
[:a.link.fr.black {:href (path-for :about)} [:i.fas.fa-question-circle]] {:href "/"}
[:i.fas.fa-surprise.mr3] "GASP Sensor setup"]] [:i.fas.fa-surprise.mr3] "GASP Sensor setup"]]
[page]]]))) [page]]])))