forked from voteflux/flux-website-v2
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdashboard.html
151 lines (127 loc) · 6.67 KB
/
dashboard.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
---
title: Dashboard
permalink: "/dashboard/"
layout: default
dark-theme: true
tag-section: flux graphs
tag-topic: dashboard
nav-title: Dashboard
---
{% include navbar.html %}
<script src="/js/angular.min.js"></script>
<script src="/js/lodash.min.js"></script>
<script src="https://cdn.plot.ly/plotly-latest.min.js"></script>
<script src="/js/bundle-graphs.js"></script>
<div class="bg-near-white dark-gray py4 ">
<div class="bg-near-black height-40vh absolute z1 left-0 top-0 col-12 texture-bg-img">
</div>
<div class="mx-auto max-width-3 px2 sm-px4 pt4 pb3 bg-white relative mt5 z2">
<section class="" ng-app='fluxApp'>
<div class="mx-auto max-width-3" ng-controller='GraphsController as flux'>
<div class="">
<div class="h-font light mid-gray mx" style="">
<h1 ng-show="false" class="h0">Loading... Please be patient.</h1>
<h1>Live Flux Stats</h1>
<ul>
<li><a href="#membership">Membership Stats</a></li>
<li><a href="#donations">Donation Stats</a></li>
<li><a href="#membership-tables">Membership Stats (in tables)</a></li>
</ul>
<h1 id='membership'>Membership</h1>
<h3 ng-repeat="days in flux.growthDays track by $index">Membership growth over last {{'days' | angular}}
days: {{'(flux.growthStat(days) * 100).toString().slice(0,4)' | angular}}%</h3>
<div id="membershipChart" class="col-sm-12 graph-div"></div>
<div id="memberDobYearChart" class="col-sm-12 graph-div"></div>
<div id="memberStateChart" class="col-sm-12 graph-div"></div>
<div id="memberSignupDaysAgo" class="col-sm-12 graph-div"></div>
<div id="memberSignupHoursAgo" class="col-sm-12 graph-div"></div>
<div id="memberDayPopularity" class="col-sm-12 graph-div"></div>
<div id="memberHourPopularity" class="col-sm-12 graph-div"></div>
<div id="stateSignupTimes" class="col-sm-12 graph-div"></div>
<h1 id="donations">Donations</h1>
<h3>You can view a log of donations on our <a href="/donate">Donate</a> page.</h3>
<!-- disclaimer also goes on donate.html verbatim -->
<small>
<p>
<strong>Disclaimer re donation log:</strong> Donations (as of Sept 2018) are made to the Flux Foundation and tagged for use by different branches.
In some cases this means a corresponding donation does not appear on party disclosure statements, or appears as part of a bulk donation from the Flux Foundation.
That said, depending on jurisdiction such a donation might appear on the Foundation's disclosure statement.
Furthermore, it might not appear on any disclosure statement if those funds are used for general things not directly related to the individual branch (e.g. paying our AWS bill).
In any case, be aware this donation log is a best-effort attempt at transparency, not a replacement for, substitute for, or even an indication of our official disclosures.
No data on this page regarding donations comes with any guarentee of accuracy.
</p>
</small>
<h2> Donations This FY </h2>
<div id="donationGraphByStateFY" class="col-sm-12 graph-div"></div>
<div id="donationGraphCumulativeFY" class="col-sm-12 graph-div"></div>
<div id="donationGraphCumulativeStateFY" class="col-sm-12 graph-div"></div>
<h2> All Donations since Sept 2017 </h2>
<div id="donationGraphByState" class="col-sm-12 graph-div"></div>
<div id="donationGraphCumulative" class="col-sm-12 graph-div"></div>
<div id="donationGraphCumulativeState" class="col-sm-12 graph-div"></div>
<h1 id="membership-tables">Membership Stats (Tables)</h1>
<div id="monthly-growth">
<h3>Monthly Growth Rates</h3>
<table>
<tr>
<th>Month</th>
<th>Growth %</th>
</tr>
<tr ng-repeat="month in flux.monthlyGrowth track by $index">
<td>{{'month.name' | angular}}</td>
<td>{{'month.rate' | angular}}%</td>
</tr>
</table>
<h4>Average monthly growth: {{ 'flux.averageMonthlyGrowth' | angular }}%</h4>
</div>
<div id="member-state-breakdown" class="py3">
<h3>Member Breakdown by State</h3>
<table>
<tr>
<th class="p2">State</th>
<th class="p2"># Members</th>
<th class="p2"># w/ Valid Details</th>
<th class="p2"># w/out Valid Details
<th class="p2"># Awaiting Validation<sup>*</sup></th>
</tr>
<tr ng-repeat="(state, blah) in flux.getinfo.n_members_state">
<td>{{ 'state' | angular }}</td>
<td>{{ 'flux.getinfo.n_members_state[state]' | angular }}</td>
<td>{{ 'flux.getinfo.n_members_validated_state[state]' | angular }}</td>
<td>{{ 'flux.getinfo.n_members_not_valid_state[state] || "**"' | angular }}</td>
<td>{{ 'flux.getinfo.validation_queue_state[state]' | angular}}</td>
</tr>
</table>
<small>
<ul>
<li>Members are only counted if the self-report as on the Electoral Roll</li>
<li>#: roughly translates as "Number of Members"</li>
<li>*: Includes members with valid details that have not been re-validated in the last 90 days.</li>
<li>**: Not yet implemented or no data or 0</li>
</ul>
</small>
</div>
<hr>
<h2>Backend</h2>
<div id="queue-length">
Email Queue Length: {{ 'queueData.email_queue_length' | angular }} <br>
SMS Queue Length: {{ 'queueData.sms_queue_length' | angular }} <br>
<span ng-repeat="(qName, qLen) in queueData">
<span ng-if="qName !== 'email_queue_length' && qName !== 'sms_queue_length'">
{{ 'qName' | angular }} Queue Length: {{ 'qLen' | angular }}
</span>
</span>
</div>
</div>
</div>
</div>
</section>
</div>
<div class="max-width-3 mx-auto">
{% include components/inline-signup.html %}
<div class="mt4">
<i class="material-icons mr1">arrow_back</i><a href="{{site.baseurl}}/" class="inline-block">Back to home page</a>
</div>
</div>
</div>
{% include footer.html %}