in www/project/icla/views/pages/vote.js.rb [45:210]
def render
_p %{
This form allows PMC and PPMC members to
vote to invite a contributor to become a committer or a PMC/PPMC member.
}
if @phase == 'vote'
_b 'Project: ' + @pmc
_p
_b 'Contributor: ' + @iclaname + ' (' + @iclaemail + ')'
_p
_b 'Proposed by: ' + @proposer
_p
_p 'Subject: ' + @subject
_p
_div.form_group.vote do
_label do
_input type: 'radio', name: 'vote', value: '+1',
onClick: lambda {@vote = '+1'; @showComment = false; checkValidity()}
_span ' +1 approve '
end
_p
_label do
_input type: 'radio', name: 'vote', value: '+0',
onClick: lambda {@vote = '+0'; @showComment = false; checkValidity()}
_span " +0 don't care "
end
_p
_label do
_input type: 'radio', name: 'vote', value: '-0',
onClick: lambda {@vote = '-0'; @showComment = false; checkValidity()}
_span " -0 don't care "
end
_p
_label do
_input type: 'radio', name: 'vote', value: '-1',
onClick: lambda {@vote = '-1'; @showComment = true; checkValidity()}
_span ' -1 disapprove, because... '
end
_p
end
if @showComment
_div.form_group do
_textarea.form_control rows: 4,
placeholder: 'reason to disapprove',
id: 'commentBody', value: @commentBody,
onChange: self.setCommentBody
end
end
_h5 'Voting history'
tally = {}
@votes.each {|v|
tally[v.member] = [v.vote, v.timestamp]
_p v.vote + ' From: ' + v.member + ' Date: ' + v.timestamp
}
_h5 'Summary of voting so far'
vote_count = {}
tally.each_key { |k|
vote_count[tally[k][0]] ||= 0
vote_count[tally[k][0]] += 1
_ k + ' ' + tally[k][0] + ' ' + tally[k][1]
_br
}
_br
vote_count.each_key {|k|
_ k + ': ' + vote_count[k]
_br
}
started = new Date(@votes[0]['timestamp'])
now = new Date()
elapsed = (now - started) / (1000 * 60 * 60)
_ 'Voting started: ' + started.toISOString() + ' Hours elapsed: ' + elapsed.to_i
_p
_h5 'Previous discussion'
@comments.each {|c|
_b 'From: ' + c.member + ' Date: ' + c.timestamp
_p c.comment
}
_p do
_button.btn.btn_primary 'Submit my vote', disabled: @disabled,
onClick: self.submitVote
_b ' or '
_button.btn.btn_primary 'Cancel the vote', disabled: false,
onClick: self.cancelVote
_b ' or '
_button.btn.btn_primary 'Tally the vote', disabled: false,
onClick: self.tallyVote
end
end
if @debug
_p 'token: ' + @token
_p 'comment: ' + @commentBody
_p 'vote: ' + @vote
end
if @alert
_div.alert.alert_danger do
_b 'Error: '
_span @alert
end
end
_div.modal.fade.invitation_preview! do
_div.modal_dialog do
_div.modal_content do
_div.modal_header do
_button.close "\u00d7", type: 'button', data_dismiss: 'modal'
_h4 'Preview Invitation Email'
end
_div.modal_body do
_div do
_b 'From: '
_span @memberEmail
end
_div do
_b 'To: '
_span "#{@iclaname} <#{@iclaemail}>"
end
_div do
_b 'cc: '
_span @pmcEmail
end
_div.form_group do
_label :for => 'invitation'
_textarea.form_control.invitation! value: @invitation, rows: 12,
onChange: self.setInvitation
end
end
_div.modal_footer do
_button.btn.btn_default 'Cancel', data_dismiss: 'modal'
_button.btn.btn_primary 'Mock Send', onClick: self.mockSend
end
end
end
end
end