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