blob: 3cfd578595b2e17f38a5058a7ac00edfc5cd166b [file] [log] [blame]
mvp = (json, state) ->
nlist = new HTML('select', { name: 'size', id: 'size'})
for i in [10,20,50,100,200,500,1000,2000]
el = new HTML('option', { value: i, text: i+""})
if globArgs.size and parseInt(globArgs.size) == i
el.selected = 'selected'
el.inject(txt(i+""))
nlist.inject(el)
nlist.addEventListener("change", () ->
n = this.value
if n == ""
n = null
globArgs.size = n
updateWidgets('mvp', null, { size: n })
, false)
state.widget.inject(
new HTML('b', {}, "List size: "),
true
)
state.widget.inject(nlist)
nlist = new HTML('select', { name: 'sort', id: 'sort'})
for i in ['commits', 'issues', 'emails']
el = new HTML('option', { value: i, text: i})
if globArgs.sort and globArgs.sort == i
el.selected = 'selected'
el.inject(txt(i))
nlist.inject(el)
nlist.addEventListener("change", () ->
n = this.value
if n == ""
n = null
globArgs.sort = n
updateWidgets('mvp', null, { sort: n })
, false)
state.widget.inject(
new HTML('b', {}, " Sort by: "),
)
state.widget.inject(nlist)
tbl = mk('table', {class: "table table-striped"})
tr = mk('tr', {}, [
mk('th', {}, "Rank"),
mk('th', {}, "Avatar"),
mk('th', {}, "Name",)
mk('th', {}, "Address"),
mk('th', {}, if globArgs.author then "Authorings" else "Commits"),
mk('th', {}, "Issues"),
mk('th', {}, "Email")
])
app(tbl, tr)
tb = new HTML('tbody')
for person, i in json.sorted
tr = mk('tr', {scope: 'row'}, [
mk('td', {}, (i+1).pretty()),
mk('td', {}, new HTML('img', {style: { width: '32px', height: '32px'}, class: "img-circle img-responsive", src:"https://secure.gravatar.com/avatar/#{person.md5}.png?d=identicon"})),
mk('td', {}, mk('a', { href: "?page=people&email=#{person.address}"}, person.name)),
mk('td', {}, person.address),
mk('td', {}, person.commits.pretty()),
mk('td', {}, person.issues.pretty()),
mk('td', {}, person.emails.pretty()),
])
tb.inject(tr)
app(tbl, tb)
state.widget.inject(tbl)
#updateWidgets('trends', null, { email: email })