function addPermission(userEmail,permission){ if (confirm("Really give permission to "+userEmail+"?")){ $.post('/api/user/addpermission',{email:userEmail,permissions:permission},reload,'json'); } } function disableList(listEmail){ $.post('/api/list/disable',{list:listEmail},showListResult,'json'); } function dropList(listEmail){ console.log('dopList('+listEmail+')'); } function dropPermission(userEmail,permission){ if (confirm("Really withdraw permission from "+userEmail+"?")){ $.post('/api/user/droppermission',{email:userEmail,permissions:permission},reload,'json'); } } function enableList(listEmail){ $.post('/api/list/enable',{list:listEmail},showListResult,'json'); } function hideList(listEmail){ $.post('/api/list/hide',{list:listEmail},showListResult,'json'); } function loadArchive(domain,prefix){ let listEmail = prefix+'@'+domain; $.get('/api/list/archive?list='+listEmail,showListArchive,'json'); } function loadListDetail(listEmail){ $.post('/api/list/detail',{list:listEmail},showListDetail,'json'); } function loadListOfEditableLists(){ $.getJSON('/api/list/editable', showListOfEditableLists); } function loadListOfSubscribableLists(){ $.getJSON('/api/list/subscribable', showListList); } function loadMembers(listEmail){ $.post('/api/list/members',{list:listEmail},showMembers,'json'); } function loadUserList(){ $.getJSON('/api/user/list', showUserList); } function reload(){ window.location.reload(true); } function showList(listEmail){ $.post('/api/list/show',{list:listEmail},showListResult,'json'); } function showListArchive(data){ for (let time in data.archive){ let post = data.archive[time]; let row = $(''); var url = 'post?id='+post.id; $('').html(''+new Date(post.date)+'').appendTo(row); $('').html(''+post.from_name+'').appendTo(row); $('').html(''+post.subject+'').appendTo(row); row.appendTo($('#archive')); console.log(post); } } function showListDetail(data){ if (data.forward_from) $('input[name="forward_from"]').prop('checked',true); if (data.forward_attached) $('input[name="forward_attached"]').prop('checked',true); if (data.hide_receivers) $('input[name="hide_receivers"]').prop('checked',true); if (data.reply_to_list) $('input[name="reply_to_list"]').prop('checked',true); if (data.open) $('input[name="open"]').prop('checked',true); if (data.archive) $('input[name="archive"]').prop('checked',true); } function showListOfEditableLists(data){ for (let i in data.lists){ let list = data.lists[i]; let row = $(''); let addr = list.email.prefix+'@'+list.email.domain; let inspect = 'inspect?list='+addr; let td = $(''); $('',{href:inspect}).text(list.name).appendTo(td); td.appendTo(row); td = $(''); $('',{href:inspect}).text(addr).appendTo(td) td.appendTo(row); let states = []; for (let state in list.state){ if (list.state[state] > 0) states.push(state); } $('').text(states.toString()).appendTo(row); let select = $('