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"}
cider/piggieback {:mvn/version "0.4.0"}
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"]}

View File

@ -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}

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;
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>');

View File

@ -1,4 +1,5 @@
[{:name "server" :title "Server" :placeholder "127.0.0.1"
{: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"
@ -9,4 +10,4 @@
:error "Invalid SSID"}
{:name "wifi-key" :title "WIFI Password"
:validator "wifi-key-type"
:error "Invalid wifi password" :type "password"}]
: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
(: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]]
[:a.athelas.f3.link.white-70.hover-white.no-underline.flex.items-center.pa3
{:href "/"}
[:i.fas.fa-surprise.mr3] "GASP Sensor setup"]]
[page]]])))