fix security issue
[selectricity] / app / views / election / show.rhtml
1 <div id="title-header">
2   <span class="header">Election Overview</span>
3   <span class="subheader"></span>
4 </div>
5 <% if @election.enddate < Time.now %>
6 <div id="status">Election is finished. <%= link_to "View results",
7         :controller => 'voter', :action => 'index', 
8         :election_id => @election.id %>.</div>
9
10 <% elsif (@election.active? && @election.early_results? ) %>
11   <div id="status">You have decided that the results
12         should be viewable while the election is in progress.
13         <%if @election.voters.select {|v| v.vote.confirmed?}.empty? %>
14         However, no one has voted yet.
15         <% else %>
16         <%= link_to "View results", :controller => 'election', :action => 'results', 
17                 :id => @election.id %>.
18     <% end %>
19   </div>
20 <% elsif @election.active? %>
21   <div id="status">Vote is in currently in progress. Return to
22         this page for results on <%= @election.enddate %>.</div>
23   
24 <% else %>
25   <p style="text-align: right;">
26     <%= link_to "Edit General Information",
27                 :action => 'edit_general_information', :id => @election.id %>
28   </p>
29 <% end %>
30
31 <p><strong>Summary</strong></p>
32
33 <blockquote>
34 <%= h(@election.name) %>
35 </blockquote>
36
37 <p><strong>Description</strong></p>
38
39 <blockquote>
40 <%= h(@election.description) %>
41 </blockquote>
42
43 <p><strong>Additional Information</strong></p>
44
45 <ul> <li>Elections will end at <strong><%= @election.enddate
46 %></strong>.</li> <li>Elections results <strong><% if
47 @election.early_results %>will be<% else %>will not be<% end
48 %></strong> visible while election is in progress.</li>
49
50 <% if @election.embeddable %>
51 <li>Elections <strong>will be</strong> embeddable.</li>
52 <% end %>
53
54 <% if @election.kiosk %>
55 <li>Selectricity's kiosk mode <strong>will be</strong> available.</li>
56 <% end %>
57
58 <% if @election.verifiable%>
59 <li>Voters <strong>will be</strong> given tokens to verify their votes.</li>
60 <% else %>
61 <li>Elections <strong>will not be</strong> voter verifiable.</li>
62 <% end %>
63
64 </ul>
65
66 <% if @election.active? and not @election.authenticated? %>
67 <p><strong>Link to election:</strong></p>
68 <ul>
69 <li><%= (link_to ("Vote in election", 
70           :controller => 'voter', :action => 'index', :election_id => @election.id)).to_s %>
71      (<%= votepassword_url(:urlpassword => "open." + @election.id.to_s) %>)</li>
72
73 <% if @election.kiosk %>
74 <li><%= link_to("Kiosk mode",
75            kiosk_ready_url(:urlpassword => "open." + @election.id.to_s,
76                            :kiosk => true)) %>
77         (<%= kiosk_ready_url(:urlpassword => "open." + @election.id.to_s, :kiosk => true) %>)
78   <% end %>
79 </ul>
80 <% end -%>
81
82 <div class="normal-header">
83   <span class="header">Candidates</span>
84   <span class="subheader"></span>
85 </div>
86
87
88 <% if not (@election.active? or @election.done?) %>
89   <p style="text-align: right;">
90     <%= link_to "Edit Candidates",
91                :action => 'edit_candidates', :id => @election.id %></p>
92 <% end %>
93
94
95 <% if @election.candidates.empty? %>
96   <p><em>There are currently no candidates registered.</em>
97      <%= link_to "Add some!", :action => 'edit_candidates', :id => @election.id %>
98   </p>
99 <% else %>
100   <%= render :partial => 'candidate_list' %>
101 <% end %>
102
103 <div class="normal-header">
104   <span class="header">Voters</span>
105   <span class="subheader"></span>
106 </div>
107
108 <% if not (@election.active?  or @election.done?) %>
109 <p style="text-align: right;">
110   <%= link_to "Change Voters/Options",
111               :action => 'edit_voters', :id => @election.id %></p>
112 <% end %>
113
114 <% if not @election.authenticated? %>
115   <p><em>This election is open the public.</em></p>
116 <% elsif @election.voters.empty? %>
117   <p><em>There are currently no voters registered. </em>
118      <%= link_to "Add some!", :action => 'edit_voters',
119                  :id => @election.id %></p>
120 <% else %>
121   <%= render :partial => 'voter_list' %>
122   <p><em><%= link_to "Add or remove voters.", :action => 'edit_voters',
123               :id => @election.id unless @election.active? or @election.done? %>
124   </em></p>
125 <% end %>
126
127 <% if not (@election.active? or @election.done?)  %>
128
129 <div class="normal-header">
130   <span class="header">Start Election</span>
131   <span class="subheader"></span>
132 </div>
133
134   <% if @election.start_blockers.length > 0 %>
135     <p>Your vote cannot be started for the following reasons:</p>
136     <ul>
137     <% for reason in @election.start_blockers %>
138     <li><%= reason %></li>
139     <% end %>
140     </ul>
141   <% else %>
142     <p>Please check everything carefully on this page before starting this
143     vote. Once you begin the vote, you will <em>not</em> be able to add or
144     change candidates, modify the voting lists, or change the end
145     time.</p>
146
147     <p>When you begin the vote, the following will happen:</p>
148
149     <ul>
150     <li>The vote will be "frozen" so that further edits to the
151         candidate list and voting list cannot occur.</li>
152     <% if @election.authenticated? %>
153     <li>All voters will be emailed notifying them that the vote has
154         begun and of their unique login token.</li>
155     <% end %>
156     </ul>
157
158     <%= button_to 'Start Election!', :action => 'start_election', :id => @election.id %>
159   <% end %>
160
161 <% elsif @election.embeddable? %>
162
163 <div class="normal-header">
164   <span class="header">Embedding</span>
165   <span class="subheader"></span>
166 </div>
167
168
169 <p>To embed your election, copy and paste the following code into your
170 homepage:</p>
171
172 <pre><%= h("<iframe src='") + votepassword_url(:urlpassword => "open." + @election.id.to_s, :embed => "true") + h("' width='330px' height='#{(@election.candidates.length+2)*53}px'>" ) %>
173 <%= h("</iframe>") %></pre>
174
175 <% end %>

Benjamin Mako Hill || Want to submit a patch?