new permissions:
* list members may be nominated as moderators by admin
* admin may allow moderators to nominate more moderators
* admin may set allowed senders to one of the following:
* owners and mods
* all subscribers
* everyone
* moderators are now able to remove members from list
This commit is contained in:
@@ -49,11 +49,15 @@
|
||||
</label>
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<legend>Archive options</legend>
|
||||
<legend>Other options</legend>
|
||||
<label>
|
||||
<input type="checkbox" name="archive">
|
||||
Collect messages in public archive
|
||||
</label>
|
||||
<label>
|
||||
<input type="checkbox" name="edit_mods">
|
||||
Moderators may edit list of moderators
|
||||
</label>
|
||||
</fieldset>
|
||||
<button type="submit">Save</button>
|
||||
</fieldset>
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
function addMod(userEmail,listEmail){
|
||||
$.post('/api/list/add_mod',{list:listEmail,email:userEmail},reload,'json');
|
||||
}
|
||||
|
||||
function addPermission(userEmail,permission){
|
||||
if (confirm("Really give permission to "+userEmail+"?")){
|
||||
$.post('/api/user/addpermission',{email:userEmail,permissions:permission},reload,'json');
|
||||
@@ -12,6 +16,15 @@ function dropList(listEmail){
|
||||
console.log('dopList('+listEmail+')');
|
||||
}
|
||||
|
||||
function dropMember(userEmail,listEmail){
|
||||
$.post('/api/list/drop_member',{list:listEmail,email:userEmail},reload,'json');
|
||||
}
|
||||
|
||||
function dropMod(userEmail,listEmail){
|
||||
$.post('/api/list/drop_mod',{list:listEmail,email:userEmail},reload,'json');
|
||||
}
|
||||
|
||||
|
||||
function dropPermission(userEmail,permission){
|
||||
if (confirm("Really withdraw permission from "+userEmail+"?")){
|
||||
$.post('/api/user/droppermission',{email:userEmail,permissions:permission},reload,'json');
|
||||
@@ -36,8 +49,8 @@ function loadListDetail(listEmail){
|
||||
$.post('/api/list/detail',{list:listEmail},showListDetail,'json');
|
||||
}
|
||||
|
||||
function loadListOfEditableLists(){
|
||||
$.getJSON('/api/list/editable', showListOfEditableLists);
|
||||
function loadListOfModeratedLists(){
|
||||
$.getJSON('/api/list/moderated', showListOfModeratedLists);
|
||||
}
|
||||
|
||||
function loadListOfSubscribableLists(){
|
||||
@@ -74,14 +87,14 @@ function showListArchive(data){
|
||||
}
|
||||
|
||||
function showListDetail(data){
|
||||
var options = ['forward_from','forward_attached','hide_receivers','reply_to_list','open_for_guests','open_for_subscribers','archive'];
|
||||
var options = ['forward_from','forward_attached','hide_receivers','reply_to_list','open_for_guests','open_for_subscribers','archive','edit_mods'];
|
||||
options.forEach(function(option,index,array){
|
||||
console.log(option,'→',data[option]);
|
||||
if (data[option]) $('input[name="'+option+'"]').prop('checked',true);
|
||||
});
|
||||
}
|
||||
|
||||
function showListOfEditableLists(data){
|
||||
function showListOfModeratedLists(data){
|
||||
for (let i in data.lists){
|
||||
let list = data.lists[i];
|
||||
let row = $('<tr/>');
|
||||
@@ -161,12 +174,20 @@ function showListResult(result){
|
||||
}
|
||||
|
||||
function showMembers(data){
|
||||
var list_mail = data.list.email.prefix+'@'+data.list.email.domain;
|
||||
for (let i in data.members){
|
||||
let member = data.members[i];
|
||||
let row = $('<tr/>');
|
||||
$('<td/>').text(member.name).appendTo(row);
|
||||
$('<td/>').text(member.email).appendTo(row);
|
||||
$('<td/>').text(member.state).appendTo(row);
|
||||
let col = $('<td/>');
|
||||
console.log("data",data);
|
||||
if (member.state.includes("moderator")) {
|
||||
if (!member.state.includes("owner")) $('<button/>',{onclick:'dropMod("'+member.email+'","'+list_mail+'")'}).text("- moderator").appendTo(col);
|
||||
} else $('<button/>',{onclick:'addMod("'+member.email+'","'+list_mail+'")'}).text("+ moderator").appendTo(col);
|
||||
if (!member.state.includes("owner")) $('<button/>',{onclick:'dropMember("'+member.email+'","'+list_mail+'")'}).text("remove").appendTo(col);
|
||||
col.appendTo(row);
|
||||
|
||||
row.appendTo('#memberlist');
|
||||
}
|
||||
|
||||
@@ -22,6 +22,6 @@
|
||||
</table>
|
||||
<a href="add_list">Add new mailing list</a>
|
||||
<script type="text/javascript">
|
||||
loadListOfEditableLists();
|
||||
loadListOfModeratedLists();
|
||||
</script>
|
||||
</fieldset>
|
||||
@@ -5,6 +5,7 @@
|
||||
<th>Name</th>
|
||||
<th>Email</th>
|
||||
<th>State</th>
|
||||
<th>Actions</th>
|
||||
</tr>
|
||||
</table>
|
||||
<script type="text/javascript">
|
||||
|
||||
Reference in New Issue
Block a user