Merge branch 'main' into lang_de

This commit is contained in:
2022-04-22 13:06:41 +02:00
17 changed files with 613 additions and 145 deletions

View File

@@ -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>

View File

@@ -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()»

View File

@@ -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>

View File

@@ -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);

View File

@@ -22,6 +22,6 @@
</table>
<a href="add_list">Neue Mailing-Liste anlegen</a>
<script type="text/javascript">
loadListOfEditableLists();
loadListOfModeratedLists();
</script>
</fieldset>

View File

@@ -5,6 +5,7 @@
<th>Name</th>
<th>E-Mail</th>
<th>Status</th>
<th>Aktionen</th>
</tr>
</table>
<script type="text/javascript">

View File

@@ -1,5 +1,5 @@
<fieldset>
<legend>User list</legend>
<legend>Nutzer-Liste</legend>
<table id="userlist">
<tr>
<th>Benutzername</th>