000-mail.xjs 4.71 KiB
<!--HIDDEN:Mail-->
<?xjs
if (user.number == 0 || user.alias == settings.guest) exit();
load('sbbsdefs.js');
load(settings.web_lib + 'forum.js');
var _mail_tab = http_request.query.tab ? http_request.query.tab[0] : 'inbox';
var _mail = get_mail_headers(_mail_tab, true);
function _active_tab(tab) {
return tab == _mail_tab ? 'active' : '';
}
?>
<? function writeMessage(header) { ?>
<li id="li-<? write(header.number); ?>" class="list-group-item mail striped <? write(header.attr&MSG_READ ? 'read' : 'unread'); ?>">
<div class="row">
<div class="col-sm-1">
<div class="checkbox">
<label class="checkbox-inline">
<input id="check-<? write(header.number); ?>" type="checkbox" class="mail-select">
<? write(header.attr&MSG_READ ? '' : '<span class="badge new">New</span>') ?>
</label>
</div>
</div>
<div class="col-sm-11" style="cursor:pointer;" onclick="getMailBody(<? write(header.number); ?>)">
<? write(_mail_tab == 'sent' ? locale.strings.page_mail.label_message_to : locale.strings.page_mail.label_message_from); ?>:
<strong><? write(_mail_tab == 'sent' ? header.to : header.from); ?></strong>
<? if (header.from_net_type != NET_NONE) { ?>
<<? write(_mail_tab == 'sent' ? (header.to + '@' + header.to_net_addr) : (header.from + '@' + header.from_net_addr)); ?>>
<? } ?>
<? write(locale.strings.page_mail.label_message_date); ?>
<? write((new Date(header.when_written_time * 1000)).toLocaleString()); ?>
<p>
<? write(locale.strings.page_mail.label_message_subject); ?>:
<strong><? write(header.subject); ?></strong>
</p>
</div>
</div>
<div class="message" id="message-<? write(header.number); ?>" hidden></div>
</li>
<? } ?>
<?xjs
function _read_unread(tab) {
write('(');
if (_mail[tab].unread) {
write('<strong>' + _mail[tab].unread + '</strong>');
} else {
write(_mail[tab].unread);
}
write('/' + _mail[tab].read + ')');
}
?>
<script type="text/javascript" src="./js/forum.js"></script>
<script type="text/javascript">
function selectAllMail() {
$('input.mail-select').each(function () {
$(this).prop('checked', $(this).prop('checked') ? false : true);
});
}
async function deleteSelectedMail() {
const numbers = [];
$('input.mail-select:checked').each(function () {
numbers.push($(this).attr('id').split('-')[1]);
});
const data = await v4_get('./api/forum.ssjs?call=delete-mail&number=' + numbers.join('&number='));
if (!data.success) return;
numbers.forEach(e => $('#li-' + e).remove());
}
</script>
<? if (typeof http_request.query.notice != "undefined") { ?>
<div id="noticebox" class="alert alert-warning">
<? write(http_request.query.notice[0]); ?>
</div>
<script type="text/javascript">
$("#noticebox").fadeOut(3000, function () {
$("#noticebox").remove();
});
</script>
<? } ?>
<? if (!(user.security.restrictions&UFLAG_E) && !(user.security.restrictions&UFLAG_M)) { ?>
<button class="btn btn-default icon" aria-label="<? write(locale.strings.page_mail.button_post_new); ?>" title="<? write(locale.strings.page_mail.button_post_new); ?>" onclick="addNew('mail')">
<span class="glyphicon glyphicon-pencil"></span>
</button>
<button class="btn btn-default icon" aria-label="<? write(locale.strings.page_mail.button_select_all); ?>" title="<? write(locale.strings.page_mail.button_select_all); ?>" onclick="selectAllMail()">
<span class="glyphicon glyphicon-check"></span>
</button>
<button class="btn btn-default icon" aria-label="<? write(locale.strings.page_mail.button_delete_selected); ?>" title="<? write(locale.strings.page_mail.button_delete_selected); ?>" onclick="deleteSelectedMail()">
<span class="glyphicon glyphicon-trash"></span>
</button>
<? } ?>
<ul class="nav nav-tabs">
<li role="presentation" class="<? write(_active_tab('inbox')); ?>">
<a href="./?page=<? write(page); ?>&tab=inbox">
<? write(locale.strings.page_mail.label_tab_inbox); ?>
<? _read_unread('inbox'); ?>
</a>
</li>
<li role="presentation" class="<? write(_active_tab('spam')); ?>">
<a href="./?page=<? write(page); ?>&tab=spam">
Spam
<? _read_unread('spam'); ?>
</a>
</li>
<li role="presentation" class="<? write(_active_tab('sent')); ?>">
<a href="./?page=<? write(page); ?>&tab=sent">
<? write(locale.strings.page_mail.label_tab_sent); ?>
<? _read_unread('sent'); ?>
</a>
</li>
</ul>
<br>
<ul id="forum-list-container" class="list-group">
<? _mail.headers.forEach(writeMessage); ?>
</ul>