Right, that's enough for today. I understand what's wrong.

This commit is contained in:
Simon Brooke 2018-08-28 18:44:26 +01:00
parent 7724a2514a
commit b7c745a0a4
7 changed files with 68 additions and 43 deletions

View file

@ -28,9 +28,13 @@
<menu id="nav-menu" class="nav"> <menu id="nav-menu" class="nav">
<li class=""><a href="{{servlet-context}}/home">Home</a></li> <li class=""><a href="{{servlet-context}}/home">Home</a></li>
<li class=""><a href="{{servlet-context}}/library">Library</a></li> <li class=""><a href="{{servlet-context}}/library">Library</a></li>
{% if user %}
<li class=""><a href="{{servlet-context}}/roles">Roles</a></li>
<li class=""><a href="{{servlet-context}}/logout">Logout</a></li>
{% else %}
<li class=""><a href="{{servlet-context}}/register">Register</a></li> <li class=""><a href="{{servlet-context}}/register">Register</a></li>
<li class="">{% if user %}<a href="{{servlet-context}}/logout">Logout</a> <li class=""><a href="{{servlet-context}}/login">Login</a></li>
{% else %}<a href="{{servlet-context}}/login">Login</a>{% endif %}</li> {% endif %}
<li class=""><a href="{{servlet-context}}/about">About</a></li> <li class=""><a href="{{servlet-context}}/about">About</a></li>
{% if user %} {% if user %}
<li id="user"><a href="{{servlet-context}}/profile">Logged in as {{user.username}}</a></li> <li id="user"><a href="{{servlet-context}}/profile">Logged in as {{user.username}}</a></li>

View file

@ -36,19 +36,16 @@ Add a new Followuprequest
<thead> <thead>
<tr> <tr>
<th> <th>
Id Elector
</th> </th>
<th> <th>
Elector_id Visit
</th> </th>
<th> <th>
Visit_id Issue
</th> </th>
<th> <th>
Issue_id Method
</th>
<th>
Method_id
</th> </th>
<th> <th>
&nbsp; &nbsp;
@ -56,9 +53,6 @@ Method_id
</tr> </tr>
<tr> <tr>
<th> <th>
<input id='id' type='text' name='id' value='{{ params.id }}'/>
</th>
<th>
<input id='elector_id' type='text' name='elector_id' value='{{ params.elector_id }}'/> <input id='elector_id' type='text' name='elector_id' value='{{ params.elector_id }}'/>
</th> </th>
<th> <th>
@ -79,9 +73,6 @@ Method_id
{% for record in records %} {% for record in records %}
<tr> <tr>
<td> <td>
{{ record.id }}
</td>
<td>
<a href='{{servlet-context}}/form-electors-Elector?id={{ record.elector_id }}'> <a href='{{servlet-context}}/form-electors-Elector?id={{ record.elector_id }}'>
{{ record.elector_id_expanded }} {{ record.elector_id_expanded }}
</a> </a>

View file

@ -140,7 +140,8 @@
params :visit_id (current-visit-id request))) params :visit_id (current-visit-id request)))
201) 201)
{:status 400 {:status 400
:body (json/write-str "create-intention requires params: `option_id` :body (json/write-str
"create-intention requires params: `option_id`
and either `locality` or both `address_id` and `elector_id`.")}) and either `locality` or both `address_id` and `elector_id`.")})
request))) request)))
@ -164,7 +165,32 @@
request))) request)))
(defn update-elector-signature!
"Set the `signature` in the params of this `request` as the signature for
the elector whose `id` is in the params of this `request`."
[request]
(let [params (massage-params request)]
(if (and (:elector_id request)(:signature request))
(valid-user-or-forbid
(with-params-or-error
(do-or-server-fail
(db/create-followuprequest! db/*db* params)
201)
params
#{:elector_id :signature})
request))
{:status 400
:body
(json/write-str
"update-elector-signature requires params `id` and `signature`.")}))
(defroutes rest-routes (defroutes rest-routes
(GET "/rest/get-local-data" request (route/restricted (get-local-data request))) (GET "/rest/get-local-data"
(GET "/rest/create-intention" request (route/restricted (create-intention-and-visit! request))) request (route/restricted (get-local-data request)))
(GET "/rest/create-request" request (route/restricted (create-request-and-visit! request)))) (GET "/rest/create-intention"
request (route/restricted (create-intention-and-visit! request)))
(GET "/rest/create-request"
request (route/restricted (create-request-and-visit! request)))
(GET "/rest/update-elector-signature"
request (route/restricted (update-elector-signature! request))))

View file

@ -384,26 +384,20 @@
(reg-event-db (reg-event-db
:update-elector :update-elector
(fn [db [_ args]] (fn [db [_ elector]]
(if (:signature (:elector db)) (js/console.log (str "Elector is " elector))
(do
(js/console.log "Updating elector signature")
(add-to-feedback
(add-to-outqueue
db db
{:elector (:elector db) ))
:action :update-elector-signature})
:send-request))
(assoc db :error "Please supply a telephone number to call"))))
(reg-event-db (reg-event-db
:set-consent-and-page :set-consent-and-page
(fn [db [_ args]] (fn [db [_ args]]
(let [page (:page args) (let [page (:page args)
elector (:elector args)] elector (:elector args)
new-db (assoc (clear-messages db) :elector elector :page page)]
(dispatch [:update-elector {:elector elector}]) (dispatch [:update-elector {:elector elector}])
(assoc (clear-messages db) :elector elector :page page)))) new-db)))
(reg-event-db (reg-event-db

View file

@ -45,15 +45,16 @@
(defn big-link (defn big-link
[text & {:keys [target handler]}] [text & {:keys [target handler]}]
(js/console.log (str "Big link with target '" target "'; handler '" handler "'")) (js/console.log (str "Big link with target '" target "'; onclick handler '" handler "'"))
[:div.big-link-container {:key (gensym "big-link")} [:div.big-link-container {:key (gensym "big-link")}
[:a.big-link (merge {:href target :on-click handler} [:a.big-link (merge {:alt "Hello"}
(if target {:href target}{}) (if target {:href target}{})
(if handler {:on-click handler}{})) (if handler {:title handler}{}))
text]]) text]])
(defn nav-link [uri title page collapsed?] (defn nav-link [uri title page collapsed?]
(js/console.log (str "Adding nav-link with title '" title "'; target '" uri "'"))
(let [selected-page @(rf/subscribe [:page])] (let [selected-page @(rf/subscribe [:page])]
[:li.nav-item [:li.nav-item
{:class (when (= page selected-page) "active") {:class (when (= page selected-page) "active")
@ -81,4 +82,5 @@
(nav-link "#/map" "Map" :map collapsed?) (nav-link "#/map" "Map" :map collapsed?)
(nav-link "#/dwelling" "Electors" :dwelling collapsed?) (nav-link "#/dwelling" "Electors" :dwelling collapsed?)
(nav-link "#/issues" "Issues" :issues collapsed?) (nav-link "#/issues" "Issues" :issues collapsed?)
(nav-link "#/about" "About" :about collapsed?)]])) (nav-link "#/about" "About" :about collapsed?)
(nav-link "/logout" "Logout" :logout collapsed?)]]))

View file

@ -56,20 +56,17 @@
[:canvas {:id "signature-pad"}]]]]]] [:canvas {:id "signature-pad"}]]]]]]
(ui/back-link "#dwelling") (ui/back-link "#dwelling")
(ui/big-link "I consent" (ui/big-link "I consent"
;; :target (str "#elector/" (:id elector) "/true/") :handler #(dispatch
:handler #(fn
[]
(ui/log-and-dispatch
[:set-consent-and-page [:set-consent-and-page
{:elector-id (:id elector) {:elector-id (:id elector)
:page :elector :page :elector
:elector (merge :elector (assoc
elector elector
:signature :signature
(.toDataURL (.toDataURL
sig-pad @sig-pad
"image/svg+xml") "image/svg+xml")
)}]))) )}]))
(ui/big-link "I DO NOT consent" (ui/big-link "I DO NOT consent"
:target (str "#elector/" (:id elector) "/false"))])) :target (str "#elector/" (:id elector) "/false"))]))

View file

@ -0,0 +1,11 @@
(ns youyesyet.canvasser-app.ui-utils-test
(:require [cljs.test :refer-macros [is are deftest testing use-fixtures]]
[reagent.core :as reagent :refer [atom]]
[youyesyet.canvasser-app.ui-utils :refer :all]))
(deftest big-link-tests
(testing "big-link"
(is (= [:div.big-link-container {:key (gensym "big-link")}
[:a.big-link {}
"Test"]]
(big-link "Test" nil nil)))))