├── client ├── index.html ├── components │ ├── AppLoading.jsx │ ├── AppNotFound.jsx │ ├── Settings.jsx │ ├── Login.jsx │ ├── Tooltip.jsx │ ├── App.jsx │ ├── Modal.jsx │ ├── Popout.jsx │ ├── Sidenav.jsx │ └── Map.jsx ├── router.jsx └── styles │ └── styles.scss ├── .meteor ├── .gitignore ├── release ├── platforms ├── .id ├── .finished-upgraders ├── packages └── versions ├── LICENSE ├── .gitignore ├── .DS_Store ├── lib └── collections.js ├── scss.json ├── server └── server.jsx └── precinct4.geojson /client/index.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.meteor/.gitignore: -------------------------------------------------------------------------------- 1 | local 2 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | 2015 © Sam Corcos 2 | -------------------------------------------------------------------------------- /client/components/AppLoading.jsx: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /client/components/AppNotFound.jsx: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /client/components/Settings.jsx: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.meteor/release: -------------------------------------------------------------------------------- 1 | METEOR@1.2-rc.7 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | settings.json 3 | -------------------------------------------------------------------------------- /.meteor/platforms: -------------------------------------------------------------------------------- 1 | server 2 | browser 3 | -------------------------------------------------------------------------------- /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samcorcos/campaign-hawk/HEAD/.DS_Store -------------------------------------------------------------------------------- /lib/collections.js: -------------------------------------------------------------------------------- 1 | VoterData = new Mongo.Collection('voterData'); 2 | VoterDataGeoJSON = new Mongo.Collection('voterDataGeoJSON'); 3 | -------------------------------------------------------------------------------- /scss.json: -------------------------------------------------------------------------------- 1 | { 2 | "enableAutoprefixer": true, 3 | "autoprefixerOptions": { 4 | "browsers": ["> 5%"], 5 | "cascade": false 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /client/components/Login.jsx: -------------------------------------------------------------------------------- 1 | Login = React.createClass({ 2 | render() { 3 | return ( 4 |

This is where the login goes

5 | ) 6 | } 7 | }) 8 | -------------------------------------------------------------------------------- /.meteor/.id: -------------------------------------------------------------------------------- 1 | # This file contains a token that is unique to your project. 2 | # Check it into your repository along with the rest of this directory. 3 | # It can be used for purposes such as: 4 | # - ensuring you don't accidentally deploy one app on top of another 5 | # - providing package authors with aggregated statistics 6 | 7 | 16ttuih1ecbn7n1tehn8k 8 | -------------------------------------------------------------------------------- /.meteor/.finished-upgraders: -------------------------------------------------------------------------------- 1 | # This file contains information which helps Meteor properly upgrade your 2 | # app when you run 'meteor update'. You should check it into version control 3 | # with your project. 4 | 5 | notices-for-0.9.0 6 | notices-for-0.9.1 7 | 0.9.4-platform-file 8 | notices-for-facebook-graph-api-2 9 | 1.2.0-standard-minifiers-package 10 | 1.2.0-meteor-platform-split 11 | 1.2.0-cordova-changes 12 | -------------------------------------------------------------------------------- /client/router.jsx: -------------------------------------------------------------------------------- 1 | const { 2 | Router, 3 | Route, 4 | Redirect 5 | } = ReactRouter; 6 | const { 7 | history 8 | } = ReactRouter.lib.BrowserHistory; 9 | Meteor.startup(function() { 10 | let AppRoutes = ( 11 | 12 | 13 | 14 | 15 | 16 | 17 | ) 18 | React.render(AppRoutes, document.body) 19 | }) 20 | 21 | // window.location.search.substring(1).split("=") 22 | // window.location.search.substring(1).split("=")[1] 23 | -------------------------------------------------------------------------------- /.meteor/packages: -------------------------------------------------------------------------------- 1 | # Meteor packages used by this project, one per line. 2 | # Check this file (and the other files in this directory) into your repository. 3 | # 4 | # 'meteor add' and 'meteor remove' will edit this file for you, 5 | # but you can also edit it by hand. 6 | 7 | standard-minifiers 8 | meteor-base 9 | mobile-experience 10 | mongo 11 | blaze-html-templates 12 | session 13 | jquery 14 | tracker 15 | logging 16 | reload 17 | random 18 | ejson 19 | spacebars 20 | check 21 | fourseven:scss 22 | react 23 | reactrouter:react-router 24 | fortawesome:fontawesome 25 | pauloborges:mapbox 26 | http 27 | reactive-var 28 | insecure 29 | d3 30 | -------------------------------------------------------------------------------- /client/components/Tooltip.jsx: -------------------------------------------------------------------------------- 1 | SidenavTooltip = React.createClass({ 2 | render() { 3 | tooltipStyle = { 4 | top: this.props.tooltipY, 5 | left: this.props.tooltipX 6 | } 7 | if (this.props.showTooltipState) { 8 | tooltipStyle.opacity = "1"; 9 | tooltipStyle.visibility = "visible"; 10 | } else { 11 | tooltipStyle.opacity = "0"; 12 | tooltipStyle.visibility = "hidden"; 13 | } 14 | return ( 15 |
16 |

{this.props.tooltipDescription}

17 |
18 |
19 | ) 20 | } 21 | }) 22 | -------------------------------------------------------------------------------- /client/components/App.jsx: -------------------------------------------------------------------------------- 1 | App = React.createClass({ 2 | render() { 3 | return ( 4 |
5 | {this.props.children} 6 |
7 | ) 8 | } 9 | }) 10 | 11 | // MeteorData = React.createClass({ 12 | // componentWillMount() { 13 | // this.c = Tracker.autorun(() => { 14 | // const sub = this.props.subscribe() 15 | // const state = this.props.fetch() 16 | // state.loading = !sub.ready() 17 | // this.setState(state) 18 | // }) 19 | // }, 20 | // componentWillUnmount() { 21 | // this.c.stop() 22 | // }, 23 | // render() { 24 | // return this.state ? this.props.render(this.state) : false 25 | // } 26 | // }) 27 | 28 | MeteorData = React.createClass({ 29 | mixins: [ReactMeteorData], 30 | getMeteorData() { 31 | const sub = this.props.subscribe() 32 | const data = this.props.fetch() 33 | data.loading = !sub.ready() 34 | return data; 35 | }, 36 | render() { 37 | return this.props.render(this.data) 38 | } 39 | }) 40 | -------------------------------------------------------------------------------- /.meteor/versions: -------------------------------------------------------------------------------- 1 | autoupdate@1.2.3-rc.1 2 | babel-compiler@5.8.22-rc.0 3 | babel-runtime@0.1.4-rc.0 4 | base64@1.0.4-rc.0 5 | binary-heap@1.0.4-rc.0 6 | blaze@2.1.3-rc.0 7 | blaze-html-templates@1.0.1-rc.0 8 | blaze-tools@1.0.4-rc.0 9 | boilerplate-generator@1.0.4-rc.0 10 | caching-compiler@1.0.0-rc.0 11 | caching-html-compiler@1.0.1-rc.0 12 | callback-hook@1.0.4-rc.0 13 | check@1.0.6-rc.0 14 | coffeescript@1.0.8-rc.2 15 | cosmos:browserify@0.5.0 16 | d3@1.0.0 17 | ddp@1.2.1-rc.0 18 | ddp-client@1.2.1-rc.1 19 | ddp-common@1.2.1-rc.0 20 | ddp-server@1.2.1-rc.1 21 | deps@1.0.8-rc.0 22 | diff-sequence@1.0.1-rc.0 23 | ecmascript@0.1.3-rc.1 24 | ecmascript-collections@0.1.5-rc.1 25 | ejson@1.0.7-rc.0 26 | fastclick@1.0.7-rc.0 27 | fortawesome:fontawesome@4.4.0 28 | fourseven:scss@3.2.0 29 | geojson-utils@1.0.4-rc.0 30 | hot-code-push@1.0.0-rc.0 31 | html-tools@1.0.5-rc.0 32 | htmljs@1.0.5-rc.1 33 | http@1.1.1-rc.1 34 | id-map@1.0.4-rc.0 35 | insecure@1.0.4-rc.0 36 | jquery@1.11.4-rc.0 37 | jsx@0.2.0 38 | launch-screen@1.0.3-rc.1 39 | livedata@1.0.14-rc.0 40 | logging@1.0.8-rc.1 41 | meteor@1.1.7-rc.1 42 | meteor-base@1.0.1-rc.0 43 | minifiers@1.1.6-rc.1 44 | minimongo@1.0.9-rc.0 45 | mobile-experience@1.0.1-rc.0 46 | mobile-status-bar@1.0.5-rc.1 47 | mongo@1.1.1-rc.2 48 | mongo-id@1.0.1-rc.0 49 | npm-mongo@1.4.39-rc.0_1 50 | observe-sequence@1.0.7-rc.0 51 | ordered-dict@1.0.4-rc.0 52 | pauloborges:mapbox@2.1.5 53 | promise@0.4.8-rc.0 54 | random@1.0.4-rc.0 55 | react@0.1.11 56 | react-meteor-data@0.1.7 57 | react-runtime@0.13.3_6 58 | react-runtime-dev@0.13.3_5 59 | react-runtime-prod@0.13.3_4 60 | reactive-dict@1.1.1-rc.0 61 | reactive-var@1.0.6-rc.0 62 | reactrouter:react-router@0.1.4 63 | reload@1.1.4-rc.0 64 | retry@1.0.4-rc.0 65 | routepolicy@1.0.6-rc.0 66 | session@1.1.1-rc.0 67 | spacebars@1.0.7-rc.0 68 | spacebars-compiler@1.0.7-rc.0 69 | standard-minifiers@1.0.0-rc.1 70 | templating@1.1.2-rc.3 71 | templating-tools@1.0.0-rc.0 72 | tracker@1.0.8-rc.0 73 | ui@1.0.7-rc.0 74 | underscore@1.0.4-rc.0 75 | url@1.0.5-rc.0 76 | webapp@1.2.2-rc.1 77 | webapp-hashing@1.0.4-rc.0 78 | -------------------------------------------------------------------------------- /client/components/Modal.jsx: -------------------------------------------------------------------------------- 1 | Modal = React.createClass({ 2 | render() { 3 | let modalStyle = { 4 | visibility: "hidden", 5 | opacity: "0" 6 | } 7 | if (!!this.props.showModalState) { 8 | modalStyle.visibility = "visible" 9 | modalStyle.opacity = "1" 10 | } 11 | return ( 12 |
13 |
14 | {(() => { 15 | switch (this.props.showModalState) { 16 | case "Add Volunteer": return ; 17 | case "View Volunteers": return

view volunteers

; 18 | default: return false; 19 | } 20 | })()} 21 |
22 |
23 | ) 24 | } 25 | }) 26 | 27 | AddVolunteerModalContent = React.createClass({ 28 | render() { 29 | return ( 30 |
31 |
32 |
33 | 34 | 35 | 36 | 37 |
38 |
39 |
40 | 41 |
42 | 43 |
×
44 |
45 |
46 |
47 |
48 |