jschan - Anonymous imageboard software. Classic look, modern features and feel. Works without JavaScript and supports Tor, I2P, Lokinet, etc.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

55 lines
1.5 KiB

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}#{'.*'.repeat(ban.range)}
td #{__(['IPV4', 'IPV6', 'Bypass', 'Pruned IP'][ban.ip.type])}
td #{__(['Single', 'Narrow', 'Wide'][ban.range])}
td #{(!banpage || ban.showUser === true) ? ban.issuer : __('Hidden User')}
- const banDate = new Date(ban.date);
td: time.right.reltime(datetime=banDate.toISOString()) #{banDate.toLocaleString(pageLanguage, {hourCycle:'h23'})}
- const expireDate = new Date(ban.expireAt);
td: time.right.reltime(datetime=expireDate.toISOString()) #{expireDate.toLocaleString(pageLanguage, {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
| -
td
if ban.note
| #{ban.note}
else
| -