include ./post.pug mixin ban(ban, banpage) tr td if !banpage || (ban.appeal == null && ban.allowAppeal === true) input.post-check(type='checkbox', name='checkedbans' value=ban._id) td if ban.board a(href=`/${ban.board}/`) /#{ban.board}/ else | Global td= ban.reason - const ip = viewRawIp === true ? ban.ip.raw : ban.ip.cloak; if viewRawIp === true td #{ip} else td #{ip}#{ban.type === 'hrange' ? '.*.*' : (ban.type === 'qrange' ? '.*' : '')} td #{ban.category === 0 ? 'IP' : ban.category === 1 ? 'Bypass' : 'Pruned IP'} td #{ban.type === 0 ? 'Single' : ban.type === 1 ? 'Quarter' : 'Half'} td #{(!banpage || ban.showUser === true) ? ban.issuer : 'Hidden User'} - const banDate = new Date(ban.date); td: time.right.reltime(datetime=banDate.toISOString()) #{banDate.toLocaleString(undefined, {hourCycle:'h23'})} - const expireDate = new Date(ban.expireAt); td: time.right.reltime(datetime=expireDate.toISOString()) #{expireDate.toLocaleString(undefined, {hourCycle:'h23'})} td.banposts if ban.posts && ban.posts.length > 0 | Hover to view .thread each p in ban.posts +post(p, false, false, false, true) else Posts not shown td if ban.seen | ✓ else | ⨯ td if ban.allowAppeal && !ban.appeal | ✓ else | ⨯ td if ban.appeal textarea(rows=1 disabled='true') #{ban.appeal} else if ban.allowAppeal | No appeal submitted else | -