| # |
| # Overall Agenda page: simple table with one row for each item in the index |
| # |
| |
| class Index < Vue |
| def render |
| _header do |
| _h1 'ASF Board Agenda' |
| end |
| |
| _table.table_bordered.agenda do |
| _thead do |
| _th 'Attach' |
| _th 'Title' |
| _th 'Owner' |
| _th 'Shepherd' |
| end |
| |
| started = Minutes.started |
| _tbody Agenda.index do |row| |
| _tr class: row.color do |
| _td row.attach |
| |
| # once meeting has started, link to flagged queue for flagged items |
| if started and row.attach =~ /^(\d+|[A-Z]+)$/ and !row.skippable |
| _td { _Link text: row.title, href: 'flagged/' + row.href } |
| else |
| _td { _Link text: row.title, href: row.href } |
| end |
| |
| _td row.owner || row.chair_name |
| _td do |
| if row.shepherd |
| _Link text: row.shepherd, |
| href: "shepherd/#{row.shepherd.split(' ').first}" |
| end |
| end |
| end |
| end |
| end |
| end |
| end |