added delete button for emails
This commit is contained in:
parent
a34d40bb9f
commit
cf86029533
14
web/api.php
14
web/api.php
|
@ -21,6 +21,20 @@ if(!empty($email)){
|
||||||
|
|
||||||
switch($action)
|
switch($action)
|
||||||
{
|
{
|
||||||
|
case 'del':
|
||||||
|
$id = intval($_REQUEST['mid']);
|
||||||
|
if(!is_dir($dir))
|
||||||
|
$o = array('status'=>'err','reason'=>'No emails received on this address');
|
||||||
|
else if(!is_numeric($id) || !emailIDExists($email,$id))
|
||||||
|
$o = array('status'=>'err','reason'=>'Invalid Email ID');
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(unlink($dir.DS.$id.'.json'))
|
||||||
|
$o = array('status'=>'ok');
|
||||||
|
else
|
||||||
|
$o = array('status'=>'err','reason'=>'Could not delete email');
|
||||||
|
}
|
||||||
|
break;
|
||||||
case 'getdoms':
|
case 'getdoms':
|
||||||
$settings = loadSettings();
|
$settings = loadSettings();
|
||||||
if($settings['DOMAINS'])
|
if($settings['DOMAINS'])
|
||||||
|
|
|
@ -5,7 +5,3 @@ body {
|
||||||
padding: 3rem 1.5rem;
|
padding: 3rem 1.5rem;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.anemail{
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
|
@ -37,10 +37,13 @@ function renderEmail(email,id,data)
|
||||||
btns+='<a class="btn btn-primary" target="_blank" href="api.php?a=attachment&email='+email+'&id='+id+'&filename='+filename+'" role="button">'+filename+'</a>'
|
btns+='<a class="btn btn-primary" target="_blank" href="api.php?a=attachment&email='+email+'&id='+id+'&filename='+filename+'" role="button">'+filename+'</a>'
|
||||||
}
|
}
|
||||||
$("#main").html('<h2 class="text-center">'+email+'</h2>\
|
$("#main").html('<h2 class="text-center">'+email+'</h2>\
|
||||||
<button onClick="loadAccount(\''+activeemail+'\')" class="btn btn-primary my-2 my-sm-0"><i class="fas fa-backward"></i> Back</button>\
|
<button onClick="loadAccount(\''+activeemail+'\')" class="btn btn-primary my-2 my-sm-0"><i class="fas fa-backward"></i> Back</button><br/>\
|
||||||
'+(data.parsed.body?'<pre>'+data.parsed.body+'</pre>':'')+' \
|
'+(data.parsed.body?'<pre>'+data.parsed.body+'</pre>':'')+' \
|
||||||
'+(data.parsed.htmlbody?'<div class="card card-body bg-light">'+data.parsed.htmlbody+'</pre>':'')+' \
|
'+(data.parsed.htmlbody?'<div class="card card-body bg-light">'+data.parsed.htmlbody+'</pre>':'')+' \
|
||||||
'+(btns!==''?'<h4>Attachments</h4>'+btns:'')+'\
|
'+(btns!==''?'<h4>Attachments</h4>'+btns:'')+'\
|
||||||
|
<div class="card card-body bg-light">\
|
||||||
|
<h4>Raw Email</h4><pre><code>'+data.raw+'</code></pre>\
|
||||||
|
</div>\
|
||||||
')
|
')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -63,6 +66,7 @@ function loadAccount(email)
|
||||||
<th scope="col">Date</th>\
|
<th scope="col">Date</th>\
|
||||||
<th scope="col">From</th>\
|
<th scope="col">From</th>\
|
||||||
<th scope="col">Subject</th>\
|
<th scope="col">Subject</th>\
|
||||||
|
<th scope="col">Action</th>\
|
||||||
</tr>\
|
</tr>\
|
||||||
</thead>\
|
</thead>\
|
||||||
<tbody id="emailtable">\
|
<tbody id="emailtable">\
|
||||||
|
@ -119,18 +123,19 @@ function updateEmailTable()
|
||||||
var datestring = moment.unix(parseInt(dateofemail/1000)).format(data.dateformat); // Use moment.js formatting
|
var datestring = moment.unix(parseInt(dateofemail/1000)).format(data.dateformat); // Use moment.js formatting
|
||||||
var ed = data.emails[em]
|
var ed = data.emails[em]
|
||||||
$("#emailtable").append('\
|
$("#emailtable").append('\
|
||||||
<tr class="anemail" onClick="loadMail(\''+email+'\','+dateofemail+');">\
|
<tr class="anemail" email="'+email+'" messageid="'+dateofemail+'">\
|
||||||
<th scope="row">'+(index++)+'</th>\
|
<th scope="row">'+(index++)+'</th>\
|
||||||
<td >'+datestring+'</td>\
|
<td >'+datestring+'</td>\
|
||||||
'+(admin===true?'<td>'+email+'</td>':'')+'\
|
'+(admin===true?'<td>'+email+'</td>':'')+'\
|
||||||
<td>'+ed.from.toHtmlEntities()+'</td>\
|
<td>'+ed.from.toHtmlEntities()+'</td>\
|
||||||
<td>'+ed.subject.toHtmlEntities()+'</td>\
|
<td>'+ed.subject.toHtmlEntities()+'</td>\
|
||||||
|
<td><button class="btn btn-success openmailbtn">Open Email</button> <button class="btn btn-danger deletemailbtn">Delete</button></td>\
|
||||||
</tr>');
|
</tr>');
|
||||||
}
|
}
|
||||||
else if(lastid==0 && $("#nomailyet").length == 0){
|
else if(lastid==0 && $("#nomailyet").length == 0){
|
||||||
$("#emailtable").append('\
|
$("#emailtable").append('\
|
||||||
<tr id="nomailyet">\
|
<tr id="nomailyet">\
|
||||||
<td colspan="4" class="text-center" ><h4>No emails received on this address (yet..)</h4></td>\
|
<td colspan="5" class="text-center" ><h4>No emails received on this address (yet..)</h4></td>\
|
||||||
</tr>');
|
</tr>');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -188,3 +193,31 @@ String.fromHtmlEntities = function(string) {
|
||||||
return String.fromCharCode(s.match(/\d+/gm)[0]);
|
return String.fromCharCode(s.match(/\d+/gm)[0]);
|
||||||
})
|
})
|
||||||
};
|
};
|
||||||
|
|
||||||
|
$(document).on("click",".deletemailbtn",function(e) {
|
||||||
|
var btn = $(this);
|
||||||
|
var email = $(this).parent().parent().attr("email");
|
||||||
|
var messageid = $(this).parent().parent().attr("messageid");
|
||||||
|
|
||||||
|
|
||||||
|
if(confirm("Do you really want to delete this email?"))
|
||||||
|
{
|
||||||
|
$.get( "api.php?a=del&email="+email+"&mid="+messageid, function( data ) {
|
||||||
|
console.log(data);
|
||||||
|
if(data.status=="ok")
|
||||||
|
btn.parent().parent().fadeOut();
|
||||||
|
else alert("Error deleting email: "+data.reason)
|
||||||
|
},'json');
|
||||||
|
}
|
||||||
|
|
||||||
|
e.preventDefault();
|
||||||
|
});
|
||||||
|
|
||||||
|
$(document).on("click",".openmailbtn",function(e) {
|
||||||
|
var email = $(this).parent().parent().attr("email");
|
||||||
|
var messageid = $(this).parent().parent().attr("messageid");
|
||||||
|
|
||||||
|
loadMail(email,messageid);
|
||||||
|
|
||||||
|
e.preventDefault();
|
||||||
|
});
|
Loading…
Reference in a new issue