implemented editing of list credentials for admin/owner, fixed bug:

if login fails due to wrong auth, it is no longer repeated. instead, the list is disabeld
This commit is contained in:
2022-04-22 18:20:03 +02:00
parent f234cded1b
commit 6abee6e977
15 changed files with 276 additions and 97 deletions

View File

@@ -9,66 +9,8 @@
<body id="add_list">
«navigation()»
«userinfo()»
<h1>Widerhall List Creation</h1>
«messages()»
<form method="POST" action="add_list">
<fieldset>
<legend>List configuration</legend>
<fieldset>
<legend>Basic data</legend>
<label>
<input type="text" name="name" value="«data.name»" id="name" />
List name
</label>
<label>
<input type="text" name="email" value="«data.email»" id="email" />
List E-Mail Address
</label>
</fieldset>
<fieldset>
<legend>IMAP protocol</legend>
<label>
<input type="text" name="imap_host" value="«data.imap_host»" id="imap_host" />
Hostname
</label>
<label>
<input type="number" name="imap_port" value="«data.imap_port»" id="imap_port" />
Port
</label>
<label>
<input type="text" name="imap_user" value="«data.imap_user»" id="imap_user" />
Username
</label>
<label>
<input type="password" name="imap_pass" value="«data.imap_pass»" id="imap_pass" />
Password
</label>
<label>
<input type="text" name="inbox" value="«if(data.inbox)»«data.inbox»«else»INBOX«endif»" id="imap_inbox" />
Inbox name
</label>
</fieldset>
<fieldset>
<legend>SMTP protocol</legend>
<label>
<input type="text" name="smtp_host" value="«data.smtp_host»" id="smtp_host" />
Hostname
</label>
<label>
<input type="number" name="smtp_port" value="«data.smtp_port»" id="smtp_port" />
Port
</label>
<label>
<input type="text" name="smtp_user" value="«data.smtp_user»" id="smtp_user" />
Username
</label>
<label>
<input type="password" name="smtp_pass" value="«data.smtp_pass»" id="smtp_pass" />
Password
</label>
</fieldset>
<button type="submit">Save new mailing list</button>
</fieldset>
</form>
<h1>Widerhall List Creation</h1>
«list_data_form()»
</body>
</html>

View File

@@ -3,7 +3,7 @@ label {
margin: 5px 0;
}
#add_list form,
form#list_data,
#login form,
#register form,
#subscribe form{

View File

@@ -0,0 +1,17 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<script src="jquery"></script>
<script src="js"></script>
<link rel="stylesheet" href="css" />
</head>
<body>
«navigation()»
«userinfo()»
«messages()»
<h1>Widerhall List Setup</h1>
«list_data_form()»
«footer()»
</body>
</html>

View File

@@ -14,6 +14,7 @@
<form method="POST">
<fieldset>
<legend>Settings</legend>
This page shows configuration options for the mailing list. To edit login credentials, goto <a href="edit_list?list=«data.list»">edit list</a>
<fieldset>
<legend>Forward permissions</legend>
<p>

View File

@@ -110,7 +110,9 @@ function showListOfModeratedLists(data){
if (list.state[state] > 0) states.push(state);
}
$('<td/>').text(states.toString()).appendTo(row);
if (list.last_error){
$('<td/>').html('<span class="error">'+list.last_error+'</span>').appendTo(row);
} else $('<td/>').text('-').appendTo(row);
let select = $('<select/>',{name:addr}).change(function () {
let action = $(this).children("option:selected").val();
let list = $(this).attr('name');
@@ -123,11 +125,9 @@ function showListOfModeratedLists(data){
$('<td/>').text(list.imap_host).appendTo(row);
$('<td/>').text(list.imap_port).appendTo(row);
$('<td/>').text(list.imap_user).appendTo(row);
$('<td/>').text(list.inbox).appendTo(row);
$('<td/>').text(list.smtp_host).appendTo(row);
$('<td/>').text(list.smtp_port).appendTo(row);
$('<td/>').text(list.smtp_user).appendTo(row);
row.appendTo('#listlist');
}
if (data.user.permissions.includes('create lists')){

View File

@@ -0,0 +1,59 @@
<form id="list_data" method="POST">
<fieldset>
<legend>List configuration</legend>
<fieldset>
<legend>Basic data</legend>
<label>
<input type="text" name="name" value="«if(data.name)»«data.name»«else»«data.list.name»«endif»" id="name" />
List name
</label>
<label>
<input type="text" name="email" value="«if(data.email)»«data.email»«else»«data.list.email.prefix»@«data.list.email.domain»«endif»" id="email" />
List E-Mail Address
</label>
</fieldset>
<fieldset>
<legend>IMAP protocol</legend>
<label>
<input type="text" name="imap_host" value="«if(data.imap_host)»«data.imap_host»«else»«data.list.imap_host»«endif»" id="imap_host" />
Hostname
</label>
<label>
<input type="number" name="imap_port" value="«if(data.imap_port)»«data.imap_port»«else»«data.list.imap_port»«endif»" id="imap_port" />
Port
</label>
<label>
<input type="text" name="imap_user" value="«if(data.imap_user)»«data.imap_user»«else»«data.list.imap_user»«endif»" id="imap_user" />
Username
</label>
<label>
<input type="password" name="imap_pass" value="«data.imap_pass»" id="imap_pass" />
Password
</label>
<label>
<input type="text" name="inbox" value="«if(data.inbox)»«data.inbox»«else»INBOX«endif»" id="imap_inbox" />
Inbox name
</label>
</fieldset>
<fieldset>
<legend>SMTP protocol</legend>
<label>
<input type="text" name="smtp_host" value="«if(data.smtp_host)»«data.smtp_host»«else»«data.list.smtp_host»«endif»" id="smtp_host" />
Hostname
</label>
<label>
<input type="number" name="smtp_port" value="«if(data.smtp_port)»«data.smtp_port»«else»«data.list.smtp_port»«endif»" id="smtp_port" />
Port
</label>
<label>
<input type="text" name="smtp_user" value="«if(data.smtp_user)»«data.smtp_user»«else»«data.list.smtp_user»«endif»" id="smtp_user" />
Username
</label>
<label>
<input type="password" name="smtp_pass" value="«data.smtp_pass»" id="smtp_pass" />
Password
</label>
</fieldset>
<button type="submit">Save mailing list</button>
</fieldset>
</form>

View File

@@ -10,14 +10,13 @@
<th>Name</th>
<th>Address</th>
<th>State</th>
<th>Last error</th>
<th>Actions</th>
<th>Host</th>
<th>Port</th>
<th>User</th>
<th>Inbox</th>
<th>Host</th>
<th>Port</th>
<th>User</th>
</tr>
</table>
<a href="add_list">Add new mailing list</a>

View File

@@ -1,5 +1,9 @@
<nav>
<a href="index">Home</a>
<a href="admin">Administration</a>
<!-- a class="button" href="reload" />Reload templates</a -->
<script type="text/javascript">
if ('«data.user.permissions»'.includes('admin')){
$('<a/>',{class:'button',href:'reload'}).text('Reload templates').appendTo($('nav'));
}
</script>
</nav>