Merge branch 'main' into lang_de
This commit is contained in:
@@ -45,7 +45,7 @@
|
||||
</label>
|
||||
<label>
|
||||
<input type="text" name="inbox" value="«if(data.inbox)»«data.inbox»«else»INBOX«endif»" id="imap_inbox" />
|
||||
Inbox name
|
||||
Name des Posteingangs-Ordners
|
||||
</label>
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
|
||||
@@ -13,9 +13,9 @@
|
||||
<h1>Widerhall List Archive</h1>
|
||||
<table id="archive">
|
||||
<tr>
|
||||
<th>Date</th>
|
||||
<th>From</th>
|
||||
<th>Subject</th>
|
||||
<th>Datum</th>
|
||||
<th>Absender</th>
|
||||
<th>Betreff</th>
|
||||
</tr>
|
||||
</table>
|
||||
«footer()»
|
||||
|
||||
@@ -11,37 +11,58 @@
|
||||
«userinfo()»
|
||||
«messages()»
|
||||
<h1>Widerhall '«data.list»'-Details</h1>
|
||||
«listmembers()»
|
||||
<form method="POST">
|
||||
<fieldset>
|
||||
<legend>Optionen für «data.list»</legend>
|
||||
<label>
|
||||
<input type="checkbox" name="forward_from">
|
||||
Ursprünglichen Absender beim Weiterleiten verwenden
|
||||
</label>
|
||||
<label>
|
||||
<input type="checkbox" name="reply_to_list">
|
||||
Set list adddress in "ReplyTo" header
|
||||
</label>
|
||||
<label>
|
||||
<input type="checkbox" name="open">
|
||||
Allow non-members to send mails via list (Danger!)
|
||||
</label>
|
||||
<label>
|
||||
<input type="checkbox" name="forward_attached">
|
||||
Ursprüngliche Nachricht beim Weiterleiten als Anhang versenden
|
||||
</label>
|
||||
<label>
|
||||
<input type="checkbox" name="hide_receivers">
|
||||
Hide receivers (using BCC)
|
||||
</label>
|
||||
<label>
|
||||
<input type="checkbox" name="archive">
|
||||
Collect messages in public archive
|
||||
</label>
|
||||
<legend>Einstellungen</legend>
|
||||
<fieldset>
|
||||
<legend>Weiterleitungs-Rechte</legend>
|
||||
<p>
|
||||
Wem ist es erlaubt, Nachrichten via «data.list» zu verteilen?
|
||||
</p>
|
||||
✓ Besitzer und Moderatoren
|
||||
<label>
|
||||
<input type="checkbox" name="open_for_subscribers">
|
||||
Allen Abonnenten
|
||||
</label>
|
||||
<label>
|
||||
<input type="checkbox" name="open_for_guests">
|
||||
Allen (m.a.W.: auch Nicht-Abonnenten, GEFAHR!)
|
||||
</label>
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<legend>Weiterleitungs-Optionen</legend>
|
||||
<label>
|
||||
<input type="checkbox" name="forward_from">
|
||||
Ursprünglichen Absender beim Weiterleiten verwenden
|
||||
</label>
|
||||
<label>
|
||||
<input type="checkbox" name="reply_to_list">
|
||||
Listen-Adresse im „ReplyTo“-Header setzen
|
||||
</label>
|
||||
<label>
|
||||
<input type="checkbox" name="forward_attached">
|
||||
Ursprüngliche Nachricht beim Weiterleiten als Anhang versenden
|
||||
</label>
|
||||
<label>
|
||||
<input type="checkbox" name="hide_receivers">
|
||||
Emfänger voreinander verbergen (BCC benutzen)
|
||||
</label>
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<legend>andere Optionen</legend>
|
||||
<label>
|
||||
<input type="checkbox" name="archive">
|
||||
Nachrichten in öffentlichem Archiv sammeln
|
||||
</label>
|
||||
<label>
|
||||
<input type="checkbox" name="edit_mods">
|
||||
Moderatoren können die Liste der Moderatoren bearbeiten
|
||||
</label>
|
||||
</fieldset>
|
||||
<button type="submit">Speichern</button>
|
||||
</fieldset>
|
||||
</form>
|
||||
«listmembers()»
|
||||
<script type="text/javascript">
|
||||
loadListDetail('«data.list»');
|
||||
</script>
|
||||
|
||||
@@ -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("Wirklich Berechtigung an "+userEmail+" geben?")){
|
||||
$.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("Wirklich Berechtigung von "+userEmail+" wegnehmen?")){
|
||||
$.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,15 +87,14 @@ function showListArchive(data){
|
||||
}
|
||||
|
||||
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);
|
||||
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/>');
|
||||
@@ -162,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');
|
||||
}
|
||||
@@ -185,14 +205,14 @@ function showUserList(data){
|
||||
let permissions = $('<span/>');
|
||||
if (isAdmin){
|
||||
if (user.permissions.includes('admin')){
|
||||
$('<button/>').text("- admin").click(() => dropPermission(user.email,1)).appendTo(permissions);
|
||||
$('<button/>').text("- Admin").click(() => dropPermission(user.email,1)).appendTo(permissions);
|
||||
} else {
|
||||
$('<button/>').text("+ admin").click(() => addPermission(user.email,1)).appendTo(permissions);
|
||||
$('<button/>').text("+ Admin").click(() => addPermission(user.email,1)).appendTo(permissions);
|
||||
}
|
||||
if (user.permissions.includes('create lists')){
|
||||
$('<button/>').text("- create lists").click(() => dropPermission(user.email,2)).appendTo(permissions);
|
||||
$('<button/>').text("- Listen anlegen").click(() => dropPermission(user.email,2)).appendTo(permissions);
|
||||
} else {
|
||||
$('<button/>').text("+ create lists").click(() => addPermission(user.email,2)).appendTo(permissions);
|
||||
$('<button/>').text("+ Listen anlegen").click(() => addPermission(user.email,2)).appendTo(permissions);
|
||||
}
|
||||
}
|
||||
permissions.appendTo(row);
|
||||
|
||||
@@ -22,6 +22,6 @@
|
||||
</table>
|
||||
<a href="add_list">Neue Mailing-Liste anlegen</a>
|
||||
<script type="text/javascript">
|
||||
loadListOfEditableLists();
|
||||
loadListOfModeratedLists();
|
||||
</script>
|
||||
</fieldset>
|
||||
@@ -5,6 +5,7 @@
|
||||
<th>Name</th>
|
||||
<th>E-Mail</th>
|
||||
<th>Status</th>
|
||||
<th>Aktionen</th>
|
||||
</tr>
|
||||
</table>
|
||||
<script type="text/javascript">
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<fieldset>
|
||||
<legend>User list</legend>
|
||||
<legend>Nutzer-Liste</legend>
|
||||
<table id="userlist">
|
||||
<tr>
|
||||
<th>Benutzername</th>
|
||||
|
||||
Reference in New Issue
Block a user