From 560938e6aedab663ffb49bddabdb6747c7c0d54a Mon Sep 17 00:00:00 2001 From: simon Date: Sun, 26 Mar 2017 15:58:43 +0100 Subject: [PATCH] #30: Still not quite complete --- project.clj | 12 +++--------- resources/public/img/gender/female.png | Bin 942 -> 1064 bytes resources/public/img/gender/female.xcf | Bin 9778 -> 4182 bytes resources/public/img/gender/fluid.png | Bin 0 -> 511 bytes resources/public/img/gender/fluid.xcf | Bin 0 -> 3134 bytes resources/public/img/gender/male.png | Bin 2401 -> 983 bytes resources/public/img/gender/male.xcf | Bin 0 -> 4766 bytes resources/public/img/gender/unknown.png | Bin 0 -> 1512 bytes resources/public/img/gender/unknown.xcf | Bin 0 -> 4248 bytes resources/templates/login.html | 2 +- src/cljs/youyesyet/core.cljs | 3 +++ src/cljs/youyesyet/db.cljs | 13 ++++++++----- src/cljs/youyesyet/handlers.cljs | 24 ++++++++++++++++++++++-- src/cljs/youyesyet/views/about.cljs | 3 ++- src/cljs/youyesyet/views/electors.cljs | 4 +++- src/cljs/youyesyet/views/followup.cljs | 1 + src/cljs/youyesyet/views/map.cljs | 7 ++++--- 17 files changed, 47 insertions(+), 22 deletions(-) create mode 100644 resources/public/img/gender/fluid.png create mode 100644 resources/public/img/gender/fluid.xcf create mode 100644 resources/public/img/gender/male.xcf create mode 100644 resources/public/img/gender/unknown.png create mode 100644 resources/public/img/gender/unknown.xcf diff --git a/project.clj b/project.clj index f3fdcbf..7e9a72e 100644 --- a/project.clj +++ b/project.clj @@ -85,20 +85,14 @@ :profiles {:uberjar {:omit-source true - :prep-tasks ["compile" "bower" ["cljsbuild" "once" "min"]] + :prep-tasks ["compile" ["bower" "install"] ["cljsbuild" "once" "min"]] :cljsbuild {:builds {:min {:source-paths ["src/cljc" "src/cljs" "env/prod/cljs"] :compiler - {:output-to "target/cljsbuild/public/js/app.js" - :externs ["react/externs/react.js" "externs.js"] - :optimizations :advanced - :pretty-print false - :closure-warnings - {:externs-validation :off :non-standard-jsdoc :off}}}}} - - + {:optimizations :advanced + :pretty-print false}}}} :aot :all :uberjar-name "youyesyet.jar" :source-paths ["env/prod/clj"] diff --git a/resources/public/img/gender/female.png b/resources/public/img/gender/female.png index 24b74a78ceb33ba10334ef75430c6e19784084c1..9a407ff5fb20f4af3b361a2d0fb0b0b218070739 100644 GIT binary patch literal 1064 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 As{jB1 diff --git a/resources/public/img/gender/fluid.png b/resources/public/img/gender/fluid.png new file mode 100644 index 0000000000000000000000000000000000000000..e756611452c8d4c24ea8cccdb69cd5bdb22b305d GIT binary patch literal 511 zcmeAS@N?(olHy`uVBq!ia0vp^mOz}z!3HE7rgawqDYhhUcNZWH1V5d3*8?fe0*}aI z1_o|n5N2eUHAey{$X?><>&pI+S&COlwRhRN84L`JJ)SO(Ar-gY&Nj?Dvm2#d&CvU%1(|%K7^USAcZ`}8Hb{t_xt|x8$;a6>8y7`r`;pXda z%$ZfAFLzE@vw3<*NyOJ4pP4B~Zf+4a2l^^*{q;MZaeC8@43B=!+FF&rDLKtv_}KAi z7hl2Yr-Q#eeHN#3TG`_oXZ5B#txu*nDW|1OdGbPKs(H!6Ny+I;ci*nt-~Z#zg7odT zZF^yt69nnZm}9pm$lY%lqZ--u3A|ny2!@ zq)^H!g2FYK(b`AC0knEZA`$xNBk35QWeh@V6G@b$jbyXW@arf40oqe4g%x>0Qe{y! zd7e~^>=Bl+?6M{cmZ9(bLsb(c%WY>tdn!u=U8lt1wCPxFi@N>Y? zk~JyixULGL!QUcfxtY?}iA9~;0@rgBvW4@8qFAzBzaUQks9M!D9z`Df6`5u%J{EkV zeURiL3GFRTS0w2)An8D5<})5ef>_+Z6I0*;3`5#p{8cM~IS+;!czw6}+B z;Yy>rsP<}gZMkHNnpBoeQhB#t&Oj%m2h)@h#n1^4nq1O^aZSpd-5F>_i%-dv`%v=X z?5S7NHOWh|hD=MkP3O5}31u(ynxv~mYAPWu>!O-P#H?h=VxF6F&gO2B0R-o=msf3=?UA*d%+qSd10 zZXwy;XluPd#T_O+s>CYM1=jDz{z_^!x7V%Js5RCg2YwFxs-P-p8MFj?@AkM(?KyQ4 zg-Ib`yiU=Li#E;ef6wS5%J&)Ndj@&}x(m7mx&)d5nIH{x9CQRU4B7@tqV!H1O22^8 zze4HfK=Qbw6|@4~BIuLb zMNN5*B@rfpfZe|!2UZ7uRZtbQ1X_0E6y_yxo{+-yAWW>0D(nvHa}(1X4gJK!-qMpfo5&UPxO#`u0f1D=a=vj~mrAih3T_fAv`NZ_@O! t7CanryLsO+c-PZ&Bwk}IvAa>9=p|hmx=QjuqjV0kN=V2BkIg;s{R;UfccB0P literal 0 HcmV?d00001 diff --git a/resources/public/img/gender/male.png b/resources/public/img/gender/male.png index 4427edcee01091560ff6379c20725ff32713537a..bfca00f168205b7963f771e52aa8dd3ce2589e6a 100644 GIT binary patch delta 975 zcmV;=12FvI64wVaiBL{Q4GJ0x0000DNk~Le0000f0001K2nGNE0H-(#ng9R*24YJ` zL;(K){{a7>y{D6rF&KXbbV*G`2jK%64ILz+f3z|H00U%6L_t(|+U=V=XcSQthW|5( zXhI^0;0r_vHVO&~Ru)<)2qFj;R)V#l*oa_ZBX)wQSO_VCFSHW_QN%(88^Olj2qF?i z3~`gV$v!>{?}kN_otd4TojY+(GsT=c_uK!!XXZXwDPaJ;zS_XG2_av`?bF(TOe}+$#p*YR z3AnmLZfr;mQqqbJjhfyxA?uwQ+G#>gbqI1cHApk7OZt*jMKhaBQ%Om>k`VH0>aQSI zonIxbYolq|%=&)-#d!+_Z2(HrzBX0d9Tza^yKWayiTIV72XzE0() zFU&93Us=+Oq>`iwN$v>nQo*TP!Q8?8+jLC8y#^hXt#+D)ET%bRv0!zhgmlSPf_e>z^TZ@Em9!x$a0!dF> zB;4r|$g@xe;MyV^>!%h54BSd-^M0hMkF$&1zutei*|-h@M}dR?jOyr+FMuInG%lp; zXN6-p1`IU#dK<@NW>%6kn$WhAnT-QK+i7fOmA@Ix%!@@>XcUkIWL_aDAPc+GouU;= z7LbMAMd1{MQxr~@6%VqgR$r84IoVBN_j0h?@=)E&s&J}#fUM=g?%IE+WIYd%wV06A zEDC=ou9EXvC|S(|WG$xR6`vvJvQ#pvGUb^0rA|Ul$5b-vKSd`y30aDm_r;wHeTta> zIZ9HbDHSZ7i-+Y8nAwawD2npK`pm4{$@k=*kemZ%HX})9HZAFJNdBQHfbnM!um%_b xrhqwM9JmK;St5Tc@WADL2R^v`&2jqu4Nnur`i!Wk{PO?+002ovPDHLkV1lBPwwM3_ literal 2401 zcmZuzdpr|*8=pHvc;!Aytd%mwo7|2fY@^LBx$IEAW|}mbdt?dcOpe_sEw^G7xkL;Z zZ7PgLnGUgNNmxuL$C(rJI_tdW&-eFvp5Jr%JyW<_yU*e+tsil#hwss8IYWY?T!@WQkkv?c3!&8u8*q<2_!K?xcIXf2A}@81nivQ zOXr}qyvXB}grFW0pfD#PG%z3)<{P2u=9i*&QTHfgvb|j8)M)3c)2BwVQh2_nVZQbv zKw`)U;U|%Cvw)A9x7pnhd^(sz0z6V|8V)~>w+xLT9|MLj(b2p@hk;%B4Jm`RnBtLx zkH^6s)D+72R$BzGmGP1Cj8Wd3q{(2dS_$GTDOh>Vt$#wFZa6W$au6P2 zDP{n@vQUDdE@7DgBDA(Ur>YPVGQ%p*vX0y%zN@vzeYdz;{`1aseCb+u?p3yR<0JMD ztm@Uf4_(0$lM~zp>uF0|;IyO`W8ti2^TlaKD;|JXjvDw@*rIuLti)g9t|KcT(6>4n zN5r>db(M?r(Yq#>J~l0Gu}Q0U>-tI-Cj4^14yoZIqTn|%d}7UK4!1x-_+Vev!^MTL zgiXDnY$-fJs99M$-ftKrxW~2SX6B?Rg(|Tql~x4MTNO7|nPPg}yWR^JOK_vAyGj=M zvc<122ctx6?iFmRo1Yvrh>c2S@DBaO`@hqfNE>$jUE|M%^cgi7Abq$~t@@tK^eqOv zIlnnu?kOenLUZh1txs#rt2g)ZEvlCMTCZE-G(Op0qd0{&6qPHxU1J9xLex$n6EG;VU!j78NbQkxFjJ zZ?%bsT!~8f#bXXGrBgk68y=o7&ULE(d3pP%Byvfz>u`EE)0VUv8pFP`z^gRl1jRN+ zkQB}=ZtKw90kXCxQ`W8hq6i1!v1wR#+sIVgEpP763cwqWpq;Fljkeo5o|CYrxyE(D zVGvx5M}~)^ag_>J2pmEyd6*{HTpi4QTWdPL^W===noC$zz|2=oLD=cvwmT5HqZ%-m zmV!6Uf|F|QvWA37kzo#eJ4TTidDI1jo_!FTg0Xx~16wln2d`k5sR$=Qfv%vy zm{kF1PzT%|Q{WdNdsr2uV6VT$o76oZvDX?6?ur)b7! z>2O1PP&j?h+~hTE&w*}K98!Y#Y#3zk;LNH)??cEBCxu6kupomp7I~_8ju(-y1(Qm( zVU>^!3lq)5q7IE(~Ht>ph$a#i}$iXM|q~TFV)_K}}E?UmuDB zEGuQJxy4~&6-$IB5z7SB+G6+L4Xv+gE(Fl*14~pM_5V{ka8ioaM&wylEOuEUL`|N*3rZI)UEMyu6lF#>mWu`C=-5Wl(Pn33qrY zxmBX_3$})qtNrJLGqL$=s4sHh%jun`Bf&x=!)FEO0%oqCbvW|!y#qdZ2cQ*xl9~Oru`;4-Kf!3V zGy0%5X`LP|droe7moKA4Het&yG&!GyndRGvPweD8LqZPU3)I~>k@L#v4C2bP>XKUYYPa)rsv ztj&E%!~lU={TocYb>x2Bl5x?ydV*g2w^@#d;OXJnZEwL+{cEoFjh9L@jZaF|%IAM! z?(*x(%KNh(JZ&dl)BXCu`r^$t`_Rl*J17*VlBm|K*SRAM?mRl!X~j93_rIHXfU)fBUfAw$eDP%-z?>DONrX0TA9OuO`p4*Zu-s&yB1A diff --git a/resources/public/img/gender/male.xcf b/resources/public/img/gender/male.xcf new file mode 100644 index 0000000000000000000000000000000000000000..421fac7608c3745a9692ebe38b4562778a818c7e GIT binary patch literal 4766 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 literal 0 HcmV?d00001 diff --git a/resources/templates/login.html b/resources/templates/login.html index 4f17ee9..f3e8731 100644 --- a/resources/templates/login.html +++ b/resources/templates/login.html @@ -16,7 +16,7 @@

- +

diff --git a/src/cljs/youyesyet/core.cljs b/src/cljs/youyesyet/core.cljs index 9522673..fb5c009 100644 --- a/src/cljs/youyesyet/core.cljs +++ b/src/cljs/youyesyet/core.cljs @@ -105,6 +105,9 @@ (secretary/defroute "/map" [] (rf/dispatch [:set-active-page :map])) +(secretary/defroute "/set-intention/:elector/:intention" {elector-id :elector intention :intention} + (rf/dispatch [:set-intention {:elector-id elector-id :intention intention}])) + ;; ------------------------- ;; History ;; must be called after routes have been defined diff --git a/src/cljs/youyesyet/db.cljs b/src/cljs/youyesyet/db.cljs index 820dcae..754ec45 100644 --- a/src/cljs/youyesyet/db.cljs +++ b/src/cljs/youyesyet/db.cljs @@ -32,10 +32,10 @@ (def default-db {;;; the currently selected address, if any. :address {:id 1 :address "13 Imaginary Terrace, IM1 3TE" :latitude 55.8253043 :longitude -4.2590944 - :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}]} + :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 @@ -44,7 +44,10 @@ {:id 3 :name "Alex Anderson" :gender :fluid :intention :yes} {:id 4 :name "Andy Anderson" :intention :yes}]}] ;;; electors at the currently selected address - :elector {:id 1 :name "Alan Anderson" :gender :male :intention :no} + :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}] ;;; the issue from among the issues which is currently selected. :issue "Currency" ;;; the issues selected for the issues page on this day. diff --git a/src/cljs/youyesyet/handlers.cljs b/src/cljs/youyesyet/handlers.cljs index b7dbc03..ee31a59 100644 --- a/src/cljs/youyesyet/handlers.cljs +++ b/src/cljs/youyesyet/handlers.cljs @@ -62,10 +62,30 @@ (assoc (assoc db :elector elector) :page page)))) +(reg-event-db + :set-intention + (fn [db [_ args]] + (let [intention (:intention args) + elector-id (read-string (:elector-id args)) + elector + (first + (remove nil? + (map + #(if (= elector-id (:id %)) %) + (:electors (:address db))))) + old-address (:address db) + new-address (assoc old-address :electors (cons (assoc elector :intention intention) (remove #(= % elector) (:electors old-address))))] + (cond + (nil? elector)(do (js/console.log "No elector found; not setting intention") db) + (= intention (:intention elector)) (do (js/console.log "Elector's intention hasn't changed; not setting intention") db) + true + (do + (js/console.log (str "Setting intention of elector " elector " to " intention)) + (assoc db :addresses (cons new-address (remove old-address (:addresses db))))))))) + + (reg-event-db :set-issue (fn [db [_ issue]] (js/console.log (str "Setting page to :issue, issue to " issue)) (assoc (assoc db :issue issue) :page :issue))) - - diff --git a/src/cljs/youyesyet/views/about.cljs b/src/cljs/youyesyet/views/about.cljs index 5b46783..186c95c 100644 --- a/src/cljs/youyesyet/views/about.cljs +++ b/src/cljs/youyesyet/views/about.cljs @@ -61,4 +61,5 @@ [:img {:src "img/gnu.small.png" :alt "Free Software Foundation" :height "24" :width "24"}] " Licensed under the " [:a {:href "http://www.gnu.org/licenses/gpl-2.0.html"} - "GNU General Public License v2.0"]]]])) + "GNU General Public License v2.0"]] + (ui/back-link)]])) diff --git a/src/cljs/youyesyet/views/electors.cljs b/src/cljs/youyesyet/views/electors.cljs index 5c02e53..01a37a7 100644 --- a/src/cljs/youyesyet/views/electors.cljs +++ b/src/cljs/youyesyet/views/electors.cljs @@ -45,7 +45,7 @@ [elector] (let [gender (:gender elector) image (if gender (name gender) "unknown")] - [:td {:key (:id elector)} (if gender [:img {:src (str "img/gender/" image ".png") :alt image}])])) + [:td {:key (:id elector)} [:img {:src (str "img/gender/" image ".png") :alt image}]])) (defn genders-row [electors] @@ -84,6 +84,7 @@ [:a {:href (str "#/issues/" (:id elector))} [:img {:src "/img/issues.png" :alt "Issues"}]]]) + (defn issues-row [electors] [:tr @@ -95,6 +96,7 @@ "Generate the electors panel." [] (let [address @(subscribe [:address]) + addresses @(subscribe [:addresses]) electors (:electors address) options @(subscribe [:options])] (if address diff --git a/src/cljs/youyesyet/views/followup.cljs b/src/cljs/youyesyet/views/followup.cljs index 0810aac..f76fb42 100644 --- a/src/cljs/youyesyet/views/followup.cljs +++ b/src/cljs/youyesyet/views/followup.cljs @@ -71,3 +71,4 @@ [:input {:id "submit" :name "submit" :type "submit" :value "Send this!"}]] ] (ui/back-link)]]))) + diff --git a/src/cljs/youyesyet/views/map.cljs b/src/cljs/youyesyet/views/map.cljs index 2a2c4bf..4f63e9d 100644 --- a/src/cljs/youyesyet/views/map.cljs +++ b/src/cljs/youyesyet/views/map.cljs @@ -64,6 +64,7 @@ (defn click-handler [id] + (js/console.log (str "Click handler for address #" id)) (dispatch [:set-address id])) @@ -71,7 +72,7 @@ "Add a map-pin at this address in this map view" [address view] (let [lat (:latitude address) - lon (:longitude address) + lng (:longitude address) pin (.icon js/L (clj->js {:iconUrl (str "img/map-pins/" (pin-image address) ".png") @@ -81,7 +82,7 @@ :iconAnchor [16 41] :shadowAnchor [16 23]})) marker (.marker js/L - (.latLng js/L 55.82 -4.25) + (.latLng js/L lat lng) (clj->js {:icon pin :title (:address address)})) ] (.on marker "click" #(fn [] (click-handler (:id address)))) @@ -92,7 +93,7 @@ (defn map-did-mount-mapbox "Did-mount function loading map tile data from MapBox (proprietary)." [] - (let [view (.setView (.map js/L "map" (clj->js {:zoomControl "false"})) #js [55.82 -4.25] 13)] + (let [view (.setView (.map js/L "map" (clj->js {:zoomControl "false"})) #js [55.82 -4.25] 40)] ;; NEED TO REPLACE FIXME with your mapID! (.addTo (.tileLayer js/L "http://{s}.tiles.mapbox.com/v3/FIXME/{z}/{x}/{y}.png" (clj->js {:attribution "Map data © [...]"