Right, that's enough for today. I understand what's wrong.
This commit is contained in:
parent
7724a2514a
commit
b7c745a0a4
|
@ -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>
|
||||||
|
|
|
@ -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>
|
||||||
|
|
||||||
|
@ -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>
|
||||||
|
|
|
@ -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))))
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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?)]]))
|
||||||
|
|
|
@ -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"))]))
|
||||||
|
|
||||||
|
|
11
test/cljs/youyesyet/canvasser_app/ui_utils_test.cljs
Normal file
11
test/cljs/youyesyet/canvasser_app/ui_utils_test.cljs
Normal 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)))))
|
Loading…
Reference in a new issue