Trying to get the GDPR consent form working (fail)
This commit is contained in:
parent
c7b6484597
commit
f70d8ee2ff
|
@ -10,7 +10,7 @@
|
|||
[re-frame.core :as rf]
|
||||
[secretary.core :as secretary]
|
||||
[youyesyet.canvasser-app.ajax :refer [load-interceptors!]]
|
||||
[youyesyet.canvasser-app.handlers]
|
||||
[youyesyet.canvasser-app.handlers :as h]
|
||||
[youyesyet.canvasser-app.subscriptions]
|
||||
[youyesyet.canvasser-app.ui-utils :as ui]
|
||||
[youyesyet.canvasser-app.views.about :as about]
|
||||
|
@ -62,6 +62,9 @@
|
|||
(defn elector-page []
|
||||
(elector/panel))
|
||||
|
||||
(defn gdpr-page []
|
||||
(gdpr/panel))
|
||||
|
||||
(defn followup-page []
|
||||
(followup/panel))
|
||||
|
||||
|
@ -80,6 +83,7 @@
|
|||
:elector #'elector-page
|
||||
:electors #'electors-page
|
||||
:followup #'followup-page
|
||||
:gdpr #'gdpr-page
|
||||
:issues #'issues-page
|
||||
:issue #'issue-page
|
||||
:map #'map-page
|
||||
|
@ -98,7 +102,7 @@
|
|||
[:header
|
||||
[ui/navbar]]
|
||||
(if content [content]
|
||||
[:div.error (str "No content in page " :page)])
|
||||
[:div.error (str "No content in page " @(rf/subscribe [:page]))])
|
||||
[:footer
|
||||
[:div.error {:style [:display (if error "block" "none")]} (str error)]
|
||||
[:div.feedback {:style [:display (if feedback :block :none)]} (str feedback)]
|
||||
|
@ -126,7 +130,10 @@
|
|||
(rf/dispatch [:set-active-page :followup]))
|
||||
|
||||
(secretary/defroute "/gdpr" []
|
||||
(rf/despatch [:set-active-page :gdpr]))
|
||||
(rf/dispatch [:set-active-page :gdpr]))
|
||||
|
||||
(secretary/defroute "/gdpr/:elector" {elector-id :elector}
|
||||
(rf/dispatch [:set-elector-and-page {:elector-id elector-id :page :gdpr}]))
|
||||
|
||||
(secretary/defroute "/issues" []
|
||||
(rf/dispatch [:set-active-page :issues]))
|
||||
|
@ -162,7 +169,7 @@
|
|||
|
||||
(defn init! []
|
||||
(rf/dispatch-sync [:initialize-db])
|
||||
(get-current-location)
|
||||
(h/get-current-location)
|
||||
(load-interceptors!)
|
||||
(hook-browser-navigation!)
|
||||
(mount-components))
|
||||
|
|
|
@ -148,6 +148,17 @@
|
|||
:page :building)))))
|
||||
|
||||
|
||||
(reg-event-db
|
||||
:set-consent-and-page
|
||||
(fn [db [_ args]]
|
||||
(let [page (:page args)
|
||||
elector-id (read-string (:elector-id args))
|
||||
elector (get-elector elector-id db)]
|
||||
(js/console.log (str "Setting page to " page ", consent to true for " elector))
|
||||
(assoc (clear-messages db) :elector (assoc elector :consent true) :page page))))
|
||||
|
||||
|
||||
|
||||
(reg-event-db
|
||||
:set-dwelling
|
||||
(fn [db [_ dwelling-id]]
|
||||
|
@ -168,7 +179,7 @@
|
|||
(assoc (assoc (clear-messages db) :issue issue) :page :issue)))
|
||||
|
||||
|
||||
(reg-event-db
|
||||
(reg-event-db
|
||||
:set-elector-and-page
|
||||
(fn [db [_ args]]
|
||||
(let [page (:page args)
|
||||
|
|
|
@ -38,11 +38,11 @@
|
|||
[:a {:href target :id "back-link"} "Back"]]))
|
||||
|
||||
(defn big-link
|
||||
[text & {:keys [target intention]}]
|
||||
[text & {:keys [target handler]}]
|
||||
[:div.big-link-container {:key target}
|
||||
[:a.big-link (merge
|
||||
(if target {:href target}{})
|
||||
(if intention {:on-click intention}))
|
||||
(if handler {:on-click handler}))
|
||||
text]])
|
||||
|
||||
(defn nav-link [uri title page collapsed?]
|
||||
|
|
|
@ -90,15 +90,11 @@
|
|||
[:div.container {:id "main-container"}
|
||||
[:table
|
||||
[:tbody
|
||||
;; genders row
|
||||
(gender-row elector)
|
||||
;; names row
|
||||
(name-row elector)
|
||||
;; options rows
|
||||
(map
|
||||
#(option-row elector %)
|
||||
options)
|
||||
;; issues row
|
||||
#(option-row elector %)
|
||||
options)
|
||||
(issue-row elector)]]
|
||||
(ui/back-link)]]
|
||||
(ui/error-panel "No address selected"))))
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
(ns ^{:doc "Canvasser app electors in household panel."
|
||||
:author "Simon Brooke"}
|
||||
youyesyet.canvasser-app.views.gdpr
|
||||
(:require [reagent.core :refer [atom]]
|
||||
[re-frame.core :refer [reg-sub subscribe dispatch]]
|
||||
(:require [re-frame.core :refer [reg-sub subscribe dispatch]]
|
||||
[reagent.core :as reagent]
|
||||
[youyesyet.canvasser-app.ui-utils :as ui]))
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
@ -30,7 +30,6 @@
|
|||
|
||||
;; OK, the idea here is a GDPR consent form to be signed by the elector
|
||||
|
||||
|
||||
(defn gdpr-render
|
||||
[]
|
||||
(let [elector @(subscribe [:elector])]
|
||||
|
@ -53,7 +52,9 @@
|
|||
[:tr
|
||||
[:td
|
||||
[:canvas {:id "signature-pad" :style "width: 100%; min-width 300px; min-height 200px;"}]]]]]]
|
||||
(ui/big-link "I consent" :target "#elector") ;; TODO: need to save the signature
|
||||
(ui/big-link "I consent"
|
||||
:handler (fn [] (dispatch [:set-consent-and-page elector "#/gdpr"])))
|
||||
;; TODO: need to save the signature
|
||||
(ui/big-link "I DO NOT consent" :target "#elector")]))
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue