From ca9807dc1cf431e1d91307e337ccbff008ca61d0 Mon Sep 17 00:00:00 2001 From: Simon Brooke Date: Thu, 30 Mar 2017 07:02:52 +0100 Subject: [PATCH] #33: Fix Easy. --- resources/public/img/map-pins/unknown-pin.png | Bin 0 -> 1826 bytes resources/public/img/map-pins/unknown-pin.xcf | Bin 0 -> 3759 bytes src/cljs/youyesyet/core.cljs | 3 +++ src/cljs/youyesyet/db.cljs | 15 ++++++++++++--- src/cljs/youyesyet/views/map.cljs | 16 ++++++++++++---- 5 files changed, 27 insertions(+), 7 deletions(-) create mode 100644 resources/public/img/map-pins/unknown-pin.png create mode 100644 resources/public/img/map-pins/unknown-pin.xcf diff --git a/resources/public/img/map-pins/unknown-pin.png b/resources/public/img/map-pins/unknown-pin.png new file mode 100644 index 0000000000000000000000000000000000000000..f0b8fbb15f8d3ad76ce798d91491160e4edee0e0 GIT binary patch literal 1826 zcmV+-2i^FIP)00006VoOIv0RI60 z0RN!9r;`8x010qNS#tmY4c7nw4c7reD4Tcy000McNliru;R7B89S@JPi=6-f2Cqp( zK~z}7#aCTy6xS90&bc$QJL^9Tu`wV>X)7Z{?Kmw_(?n4p5~-*HW?O}-Rf|%Rhej1? z)k>8r^)cirNENiIQVH5biYz1=>@g&fAt(unFsNxF;-AK}xT-Nw)3wdo-nDmU?m2x} zLjv*d;-p8q(#&Y?Ip6uY-?@hXAP544VTd3I(g5~~$io1VSYF97^BDjK!Z7Sir_*R} zZwCcI000Ewn24m;tZBH>*tluf_x*TTt>-4a{{H^e!^79BjWI8WVYoX80?o}l`20=u)aN)wL7hinoK>(W=z%vaE4L4d^S~5%WMlbo*@|X1rPnNPzRngqs zJmR`;4B!xp$U~bpZMweHu-D*~bw2mj0p+EurRBasRegj3BvUEBxU}tzB=^?A@zuu% z)#U)FsHiNKG?gI=N7xiRcBYUJ0I2y61Lov;gqwf)@|EJ z>=6j?^lGh%a*ir%Il8!<&?UWrdNMA79ft9>(s`%8+z8wRKqWF<6aXT}VRc+4$0g+i zQf_aZ;${Ts6N>?`0!D$^BQ%o&Qco_XK!BxHks=|VP@)O~hyW$^-HSDFj3E%9AY!W? zU8&`K#ICvGI~YkA9dlVnU89+Vkuitts0Vf8VehwnglV1yfTGBa`6_9vUxC&}GA_Y5 zOzaR$X_0XmrSC-S5{Lj%s1OVllJ~Co<)e^D)y9h0irPqFV^LTIikhQGt`Z`erwA1j z{GIDLJT|fhzy6xRL<&R%A|htO%pzk5>=1|vY?UlQEeI^4VoMPtOCVAZladqv$2stR zOlu3Xkrv-sV1i0JBrlvFu|Mf1l9Hz&0x?QJ48a&C$0-3}L&RMAh4?0B5XEL(cMc5E zOIPT$vUXeXDXdl%u0_vvjp+|AFI3#l ze8Btc8lzdhg(tWv60QPinpPFTuvDikZ4(RTV&0)mnwbfC@Yss9AO@c6d1H zQU6NVSjZMd<5)E+>UjR4OA=E=Hd2UHh!xlZ`Sd}}G6En}@Y#FRni!?1ds~FdfL#&h{A-W0&w=9<07X%=vuvIv*L9H#ZoQ-8D|NNP0+c;6`=`md` z?0auKdUOC10b-RT&x{GPEC77`wZ=#$2^(o_>&6EQe|+2Ois<%>sAA0S{&&Xy;sR{W zKt!wU(Y13mphW{v7_F4o8(^(W$~P}xu?OE%xN|7Al*a=%uJQ|AB5bRoBVQmCdA{2* z060W6k0A^%Iy#yv@eI+M z{rwkLCla5&RwbmT;=j(b7bfXjnfbi=blFBU&CQc@87Ct2^z^PHqBaJwKa)CYXIyu{r&xen>TO1=cAAMccxOQ+=dP7Cz)BP zB)D@eX7ZV1sfh6D)2G+J`s!=VMD%B@}hhg}ubUJ-&IK4TZ zR|9w%z>fL6+_Ps-S95dIsOrb5>FMcNb@=d~9$X+wM*ut-hT+tX9XoLR`0|K9z5TP93)f*CnIH8tfC(OY*roR;G~0DO1m_0RZ!Ne~44?`Hr10AoNtQoCRd QBLDyZ07*qoM6N<$f+f;shX4Qo literal 0 HcmV?d00001 diff --git a/resources/public/img/map-pins/unknown-pin.xcf b/resources/public/img/map-pins/unknown-pin.xcf new file mode 100644 index 0000000000000000000000000000000000000000..b55b9f8500df60592bec0955d09938cc0df70bf0 GIT binary patch literal 3759 zcmds4YitzP6`q;h^^2q>#-(b~N-I^WNGhXHq|owmVlZIi-Lb(AP@3{Ew(FD_gh@gg zwLd~Jl%S?j3TmQ8s#2wCiiELuj7fMj2{fe85-=DW@4YkYeR%!c_ha7EbJyc#P|1(} z?MQd;Ip25gx%Zwqch23`wios~4>YwnTiSLvQ}8&UJwXI`9)U*F@G}ouQ6)!Fq`^}L z%?^!$Hs6$q-8aDg+tAN#1-IpGFYIV-E^pn}whJH%c$!+!vHz9b&CZTJyW4g>Ub3L2 zwQ0}pJ^P#sa$Whp)}1??PcD2i_dGyYWKxgA(47w$I?Fr1S|CFYbnM;H)YjhWTr@iu zfUi6VG_mp*+uQa#+uECc*4#nH?`di2Xx^V+AQ}DN&me3f?rs=e<8}P$`i9U_(CU3)vFP&p)gOI8eKzS03yyL2-+rY7^M!dMd994jI z-b6J47v@oIl&nM2H84--aR-Df3oC^6tGZ%=6Fw3LHLAdmGMe}9!1|=hsM!$4SyfS_ zJYmO@SAoK77Ch#*m2=Tf}Ood3a4)x0@|wHOd9YP_Kob0#DXEUF{$M>zJxZzU zW;gX1#juZ2HugJ|&QcFk|NB`e!8%D?>rv3qUHnk~BxuM>H1i;6yg;;Ez)LVaq6?N| zpa`L0z@p2+@L1S-3TzX)-*N_+h&B}lT_WzhBAJ#=;>#pZD*; z314V5Jm$kV81nn9gzWPNf;{Yw_G$dR6*;iV3qEk5dWVNCJD|PrmWKuil1qL_*Fglq zhu3e(eA+wj|0VC6b2Z>MJ7;PD+a;hfl=aWlfG$*w)X@(ybQ(UDD*^(6E;REFP?no z$o{7K#vnqu!N-2EWLd?kwYBw)&u)5lW8L~Sl@&{$T3r4-(Y-QJE%I9}t zL$dJv!k2L7_9H>GBpMc@FXKTbSpf0F~j`o8G_1{MhftGpsz9NC)rD&%gP$X_56tolx z0d?hz#BF}INQBHH(L8ytNc`n1iv&Zdb?382siCIMtcClZOm`X4q1&ammEpMYXDCie zmwv^=m2uggtH%3OopFUL=Cq#AxH+73#rWQZs0VcQoX`V+qI{OU%aw5Ios@^D*f4Gp zbu#%WQ3r`y%qczbWWPn1FQ!vt-C#FsAPbqa)N2LO*{pcY1a5OhoY{c%nisgJkkqe$YYvZujR4G%Y;OMCi_N2#}r>%AVX6ukA`G>(!)`@L=i;E-u| z`@pC6aqiO-G>q3N8>M}%$0#uL&%v911tjf*Vycj`Ga1`S<1EK@>o*uXQ%Z>n_HdsY zW#nq~rqSm?L2_@>{@EQrM+6k@GWHQ+n{mx>l3Np`5!{+o&NxfD0%H^WtI?0a-RVCQ Cjpg|O literal 0 HcmV?d00001 diff --git a/src/cljs/youyesyet/core.cljs b/src/cljs/youyesyet/core.cljs index 69f23aa..0b4cae8 100644 --- a/src/cljs/youyesyet/core.cljs +++ b/src/cljs/youyesyet/core.cljs @@ -95,6 +95,9 @@ (secretary/defroute "/electors" [] (rf/dispatch [:set-active-page :electors])) +(secretary/defroute "/electors/:address" {address-id :address} + (rf/dispatch [:set-address address-id])) + (secretary/defroute "/followup" [] (rf/dispatch [:set-active-page :followup])) diff --git a/src/cljs/youyesyet/db.cljs b/src/cljs/youyesyet/db.cljs index 754ec45..2d1efaf 100644 --- a/src/cljs/youyesyet/db.cljs +++ b/src/cljs/youyesyet/db.cljs @@ -31,18 +31,27 @@ (def default-db {;;; the currently selected address, if any. - :address {:id 1 :address "13 Imaginary Terrace, IM1 3TE" :latitude 55.8253043 :longitude -4.2590944 + :address {:id 1 :address "13 Imaginary Terrace, IM1 3TE" :latitude 55.8253043 :longitude -4.2569057 :electors [{:id 1 :name "Alan Anderson" :gender :male :intention :no} {:id 2 :name "Ann Anderson" :gender :female} {:id 3 :name "Alex Anderson" :gender :fluid :intention :yes} {:id 4 :name "Andy Anderson" :intention :yes}]} ;;; a list of the addresses in the current location at which there ;;; are electors registered. - :addresses [{:id 1 :address "13 Imaginary Terrace, IM1 3TE" :latitude 55.8253043 :longitude -4.2590944 + :addresses [{:id 1 :address "13 Imaginary Terrace, IM1 3TE" :latitude 55.8253043 :longitude -4.2570944 :electors [{:id 1 :name "Alan Anderson" :gender :male :intention :no} {:id 2 :name "Ann Anderson" :gender :female} {:id 3 :name "Alex Anderson" :gender :fluid :intention :yes} - {:id 4 :name "Andy Anderson" :intention :yes}]}] + {:id 4 :name "Andy Anderson" :intention :yes}]} + {:id 2 :address "15 Imaginary Terrace, IM1 3TE" :latitude 55.8252354 :longitude -4.2572778 + :electors [{:id 1 :name "Beryl Brown" :gender :female} + {:id 2 :name "Betty Black" :gender :female}]} + {:id 3 :address "17 Imaginary Terrace, IM1 3TE" :latitude 55.825166 :longitude -4.257026 + :electors [{:id 1 :name "Catriona Crathie" :gender :female :intention :yes} + {:id 2 :name "Colin Caruthers" :gender :male :intention :yes} + {:id 3 :name "Calum Crathie" :intention :yes}]} + {:id 4 :address "19 Imaginary Terrace, IM1 3TE" :latitude 55.82506950000001 :longitude -4.2570239 + :electors [{:id 1 :name "David Dewar" :gender :male :intention :no}]}] ;;; electors at the currently selected address :electors [{:id 1 :name "Alan Anderson" :gender :male :intention :no} {:id 2 :name "Ann Anderson" :gender :female} diff --git a/src/cljs/youyesyet/views/map.cljs b/src/cljs/youyesyet/views/map.cljs index 4f63e9d..01bae13 100644 --- a/src/cljs/youyesyet/views/map.cljs +++ b/src/cljs/youyesyet/views/map.cljs @@ -62,10 +62,17 @@ "mixed-pin"))) -(defn click-handler +(defn map-pin-click-handler + "On clicking on the pin, navigate to the electors at the address. + This way of doing it adds an antry in the browser location history, + so back links work." [id] (js/console.log (str "Click handler for address #" id)) - (dispatch [:set-address id])) + (set! window.location.href (str "#electors/" id))) +;; This way is probably more idiomatic React, but back links don't work: +;; (defn map-pin-click-handler +;; [id] +;; (dispatch [:set-address id])) (defn add-map-pin @@ -83,9 +90,10 @@ :shadowAnchor [16 23]})) marker (.marker js/L (.latLng js/L lat lng) - (clj->js {:icon pin :title (:address address)})) + (clj->js {:icon pin + :title (:address address)})) ] - (.on marker "click" #(fn [] (click-handler (:id address)))) + (.on marker "click" (fn [_] (map-pin-click-handler (str (:id address))))) (.addTo marker view)))