www/board/agenda/views/buttons/approve.js.rb (31 lines of code) (raw):
#
# Approve/Unapprove a report
#
class Approve < Vue
def initialize
@disabled = false
end
# render a single button
def render
_button.btn.btn_primary request, onClick: self.click, disabled: @disabled
end
# set request (and button text) depending on whether or not the
# not this items was previously approved
def request
if Pending.approved.include? @@item.attach
'unapprove'
elsif Pending.unapproved.include? @@item.attach
'approve'
elsif @@item.approved and @@item.approved.include? User.initials
'unapprove'
else
'approve'
end
end
# when button is clicked, send request
def click(event)
data = {
agenda: Agenda.file,
initials: User.initials,
attach: @@item.attach,
request: request
}
@disabled = true
Pending.update 'approve', data do |pending|
@disabled = false
end
end
end