diff --git a/resources/public/css/yyy-common.css b/resources/public/css/yyy-common.css index c0b7548..465171a 100644 --- a/resources/public/css/yyy-common.css +++ b/resources/public/css/yyy-common.css @@ -141,7 +141,6 @@ select { } table { - border: 2px solid black; border-collapse: collapse; } @@ -376,6 +375,14 @@ th { padding-left: 75px; } + input, select { + background-color: rgb( 50, 109, 177); + color: white; + font-size: 1.1em; + padding: 0.25em 1em; + border-radius: 0.5em; + } + .hidden { display: none; } diff --git a/src/cljs/youyesyet/core.cljs b/src/cljs/youyesyet/core.cljs index fa274f3..9522673 100644 --- a/src/cljs/youyesyet/core.cljs +++ b/src/cljs/youyesyet/core.cljs @@ -97,7 +97,7 @@ (rf/dispatch [:set-active-page :issues])) (secretary/defroute "/issues/:elector" {elector-id :elector} - (rf/dispatch [:set-elector-and-page elector-id :issues])) + (rf/dispatch [:set-elector-and-page {:elector-id elector-id :page :issues}])) (secretary/defroute "/issue/:issue" {issue :issue} (rf/dispatch [:set-issue issue])) diff --git a/src/cljs/youyesyet/handlers.cljs b/src/cljs/youyesyet/handlers.cljs index 8df5adb..0e0794d 100644 --- a/src/cljs/youyesyet/handlers.cljs +++ b/src/cljs/youyesyet/handlers.cljs @@ -1,6 +1,8 @@ (ns youyesyet.handlers - (:require [youyesyet.db :as db] - [re-frame.core :refer [dispatch reg-event-db]])) + (:require [cljs.reader :refer [read-string]] + [re-frame.core :refer [dispatch reg-event-db]] + [youyesyet.db :as db] + )) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;; @@ -30,22 +32,32 @@ (fn [_ _] db/default-db)) + (reg-event-db :set-active-page (fn [db [_ page]] (assoc db :page page))) -(reg-event-db - :set-elector-and-page - (fn [db [_ [elector-id page]]] - (let [elector - (remove nil? - (map - #(if (= elector-id (:id %)) %) - (:electors (:address db))))] - (merge db {:elector elector :page page})))) (reg-event-db - :set-issue - (fn [db [_ issue]] - (assoc (assoc db :issue issue) :page :issue))) + :set-elector-and-page + (fn [db [_ args]] + (let [page (:page args) + elector-id (read-string (:elector-id args)) + elector + (first + (remove nil? + (map + #(if (= elector-id (:id %)) %) + (:electors (:address db)))))] + (js/console.log (str "Setting page to " page ", elector to " elector)) + (assoc (assoc db :elector elector) :page page)))) + + +(reg-event-db + :set-issue + (fn [db [_ issue]] + (js/console.log (str "Setting page to :issue, issue to " issue)) + (assoc (assoc db :issue issue) :page :issue))) + + diff --git a/src/cljs/youyesyet/ui_utils.cljs b/src/cljs/youyesyet/ui_utils.cljs index c25ab2a..719090b 100644 --- a/src/cljs/youyesyet/ui_utils.cljs +++ b/src/cljs/youyesyet/ui_utils.cljs @@ -50,7 +50,7 @@ [:div [:h1.error message] [:div.container {:id "main-container"} - (ui/back-link)]]) + (back-link)]]) (defn navbar [] diff --git a/src/cljs/youyesyet/views/electors.cljs b/src/cljs/youyesyet/views/electors.cljs index e6de69b..5c02e53 100644 --- a/src/cljs/youyesyet/views/electors.cljs +++ b/src/cljs/youyesyet/views/electors.cljs @@ -99,7 +99,7 @@ options @(subscribe [:options])] (if address [:div - [:h1 (:address address) (count electors) " electors"] + [:h1 (:address address)] [:div.container {:id "main-container"} [:table [:tbody diff --git a/src/cljs/youyesyet/views/followup.cljs b/src/cljs/youyesyet/views/followup.cljs index a09034c..0810aac 100644 --- a/src/cljs/youyesyet/views/followup.cljs +++ b/src/cljs/youyesyet/views/followup.cljs @@ -40,6 +40,7 @@ issues @(subscribe [:issues]) elector @(subscribe [:elector]) address @(subscribe [:address])] + (js/console.log (str "Issue is " issue "; elector is " elector)) (cond (nil? address) (ui/error-panel "No address selected") @@ -55,15 +56,18 @@ [:select {:id "elector" :name "elector"} (map #(let [selkey (if (= (:id elector) (:id %)) :selected :not-selected)] - [:option {:value (:id %) selkey "true"} (:name %)]) (:electors address))]] + [:option {:value (:id %) :key (:id %) selkey "true"} (:name %)]) (:electors address))]] [:p.widget [:label {:for "issue"} "Issue"] [:select {:id "issue" :name "issue"} (map - #(let [selkey (if (= (:id issue) (:id %)) :selected :not-selected)] - [:option {selkey "true"} %]) (keys issues))]] + #(let [selkey (if (= issue %) :selected :not-selected)] + [:option {selkey "true" :key %} %]) (keys issues))]] [:p.widget - [:label {:for "submit"} " "] - [:input {:id "submit" :name "submit" :type "submit" :value "Request Call"}]] + [:label {:for "telephone"} "Telephone number"] + [:input {:type "text" :id "telephone" :name "telephone"}]] + [:p.widget + [:label {:for "submit"} "To request a call"] + [:input {:id "submit" :name "submit" :type "submit" :value "Send this!"}]] ] (ui/back-link)]]))) diff --git a/src/cljs/youyesyet/views/map.cljs b/src/cljs/youyesyet/views/map.cljs index 30ea9a9..a509f7a 100644 --- a/src/cljs/youyesyet/views/map.cljs +++ b/src/cljs/youyesyet/views/map.cljs @@ -33,7 +33,6 @@ ;;; See https://github.com/simon-brooke/youyesyet/blob/master/doc/specification/userspec.md#map-view - ;;; Cribbed heavily from ;;; https://github.com/reagent-project/reagent-cookbook/tree/master/recipes/leaflet ;;; but using OSM data because we can't afford commercial, so also cribbed from @@ -52,11 +51,13 @@ (def osm-url "http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png") (def osm-attrib "Map data © <a href='http://openstreetmap.org'>OpenStreetMap</a> contributors") + (defn pin-image "select the name of a suitable pin image for this address" [address] "yes-pin") + (defn add-map-pin "Add a map-pin with this pin-image at this latitude and longitude in this map view"