www/roster/views/ppmc/committers.js.rb (115 lines of code) (raw):

# # Committers on the PPMC # class PPMCCommitters < Vue def render pending = [] _ ' ' # Not sure why, but without this the H2 elements are not generated if @@ppmc.committers.all? do |id| @@ppmc.owners.include? id end then _h2.committers! 'Committers (' + committers.length + ')' _p 'All committers are members of the PPMC' else _h2.committers! do _ 'Committers (' + committers.length + ')' _small ' (the listing excludes PPMC members above)' end _p 'Click on column name to sort' _table.table.table_hover do _thead do _tr do _th if @@auth.ppmc _th 'id', data_sort: 'string' _th 'githubUsername', data_sort: 'string' _th.sorting_asc 'public name', data_sort: 'string-ins' _th 'notes' end end _tbody do committers.each do |person| next if @@ppmc.owners.include? person.id _PPMCCommitter auth: @@auth, person: person, ppmc: @@ppmc pending << person.id if person.status == :pending end if pending.length > 1 _tr do _td colspan: 2 _td data_ids: pending.join(',') do # produce a list of ids to be added if pending.length == 2 list = "#{pending[0]} and #{pending[1]}" else list = pending[0..-2].join(', ') + ', and ' + pending[-1] end _button.btn.btn_success 'Add all as committers', data_action: 'add ppmc committer', data_target: '#confirm', data_toggle: 'modal', data_confirmation: "Add #{list} as committers for " + "#{@@ppmc.display_name} PPMC?" end end end end end end end def mounted() jQuery('.table', $el).stupidtable() end # compute list of committers def committers result = [] @@ppmc.committers.each do |id| person = @@ppmc.roster[id] person.id = id result << person end result.sort_by {|person| person.name} end end # # Show a committer # class PPMCCommitter < Vue def render _tr do if @@auth.ppmc _td do _input type: 'checkbox', checked: @@person.selected || false, onChange: -> {self.toggleSelect(@@person)} end end if @@person.member == true # full member _td { _b { _a @@person.id, href: "committer/#{@@person.id}"} } _td @@person.githubUsername _td { _b @@person.name } elsif @@person.member _td { _i { _a @@person.id, href: "committer/#{@@person.id}"} } _td @@person.githubUsername _td { _i @@person.name _ ' (' _ @@person.member.sub(%r{( \(Non-voting\))? Member}, '').sub(%r{^Emeritus}, 'ASF Emeritus') _ ')' } else _td { _a @@person.id, href: "committer/#{@@person.id}" } _td @@person.githubUsername _td @@person.name end if @@person.selected _td data_ids: @@person.id do if @@auth.ipmc and not @@person.icommit _button.btn.btn_primary 'Add as an incubator committer', data_action: 'add icommit', data_target: '#confirm', data_toggle: 'modal', data_confirmation: "Add #{@@person.name} as a committer " + 'for the incubator PPMC?' end end elsif not @@person.icommit _span.issue 'not listed as an incubator committer' else _td '' end end end # toggle checkbox def toggleSelect(person) person.selected = !person.selected @@ppmc.refresh() end end