2021-09-30 14:35:06 +02:00
< div >
< a href = "/#/email" class = "back-to-view-link" > < i class = "fas fa-arrow-left" > < / i > {{ 'email.backAction' | tr }}< / a >
2021-10-08 20:34:06 -07:00
< br / >
< div class = "col-md-10 col-md-offset-1" >
2021-09-30 14:35:06 +02:00
< h1 >
{{ 'emails.eventlog.title' | tr }}
2023-07-12 14:33:57 +02:00
< a class = "btn btn-default btn-outline pull-right" href = "/frontend/logs.html?id=mail" target = "_blank" > {{ 'main.action.logs' | tr }}< / a >
2022-10-15 16:25:12 +02:00
< a class = "btn btn-default btn-outline pull-right" href = "#/emails-queue" > {{ 'emails.action.queue' | tr }}< / a >
2021-09-30 14:35:06 +02:00
< / h1 >
< / div >
< / div >
< div >
2021-10-08 20:34:06 -07:00
< div class = "col-md-10 col-md-offset-1" >
2021-09-30 14:35:06 +02:00
< div class = "maillog-filter" >
2021-12-16 11:22:17 +01:00
< input class = "form-control" style = "width: 200px;" placeholder = "{{ 'main.searchPlaceholder' | tr }}" type = "text" ng-model = "activity.search" ng-model-options = "{ debounce: 1000 }" ng-change = "activity.updateFilter(true)" / >
2021-09-30 14:35:06 +02:00
< multiselect ng-model = "activity.selectedTypes" ms-header = "{{ 'emails.typeFilterHeader' | tr }}" options = "a.name for a in activityTypes" data-multiple = "true" ng-change = "activity.updateFilter(true)" filter-after-rows = "5" scroll-after-rows = "10" > < / multiselect >
< select class = "form-control" ng-model = "activity.pageItems" ng-options = "a.name for a in pageItemCount" ng-change = "activity.updateFilter(true)" > < / select >
< / div >
< div class = "pagination pull-right" >
< button class = "btn btn-default btn-outline" ng-click = "activity.refresh()" > < i class = "fas fa-sync-alt" ng-class = "{ 'fa-spin': busyRefresh }" > < / i > < / button >
< button class = "btn btn-default btn-outline" ng-click = "activity.showPrevPage()" ng-disabled = "activity.busy || activity.currentPage <= 1" > < i class = "fa fa-angle-double-left" > < / i > {{ 'main.pagination.prev' | tr }}< / button >
< button class = "btn btn-default btn-outline" ng-click = "activity.showNextPage()" ng-disabled = "activity.busy || activity.perPage > activity.eventLogs.length" > {{ 'main.pagination.next' | tr }} < i class = "fa fa-angle-double-right" > < / i > < / button >
< / div >
< / div >
< / div >
< div >
2021-10-08 20:34:06 -07:00
< div class = "col-md-10 col-md-offset-1" >
2021-09-30 14:35:06 +02:00
< div class = "card card-block" style = "max-width: 100%" >
< div >
< center ng-show = "activity.busy" > < h2 > < i class = "fa fa-circle-notch fa-spin" > < / i > < / h2 > < / center >
2021-10-08 20:34:06 -07:00
< table ng-hide = "activity.busy" class = "table table-hover" style = "margin: 0; table-layout:fixed" >
2021-09-30 14:35:06 +02:00
< thead >
< tr >
< th style = "width: 5%" > <!-- Icon --> < / th >
2021-10-08 20:34:06 -07:00
< th style = "width: 15%" > {{ 'emails.eventlog.time' | tr }}< / th >
< th style = "width: 25%" > {{ 'emails.eventlog.mailFrom' | tr }}< / th >
< th style = "width: 25%" > {{ 'emails.eventlog.rcptTo' | tr }}< / th >
< th style = "width: 30%" > {{ 'emails.eventlog.details' | tr }}< / th >
2021-09-30 14:35:06 +02:00
< / tr >
< / thead >
< tbody ng-hide = "activity.eventLogs.length" >
< tr >
< td colspan = "4" class = "text-center" >
< br >
< br >
{{ 'emails.eventlog.empty' | tr }}
< br >
< br >
< / td >
< / tr >
< / tbody >
< tbody ng-show = "activity.eventLogs.length" ng-repeat = "eventlog in activity.eventLogs" >
< tr ng-click = "activity.showEventLogDetails(eventlog)" class = "hand" >
< td class = "no-wrap" >
< i class = "fas fa-arrow-circle-left" ng-show = "eventlog.type === 'delivered'" uib-tooltip = "{{ 'emails.eventlog.type.outgoing' | tr }}" > < / i >
< i class = "fas fa-history" ng-show = "eventlog.type === 'deferred'" uib-tooltip = "{{ 'emails.eventlog.type.deferred' | tr }}" > < / i >
< i class = "fas fa-arrow-circle-right" ng-show = "eventlog.type === 'received'" uib-tooltip = "{{ 'emails.eventlog.type.incoming' | tr }}" > < / i >
2021-10-12 18:18:03 -07:00
< i class = "fas fa-align-justify" ng-show = "eventlog.type === 'queued' && eventlog.spamStatus.indexOf('Yes,') !== 0" uib-tooltip = "{{ 'emails.eventlog.type.queued' | tr }}" > < / i >
< i class = "fas fa-trash" ng-show = "eventlog.type === 'queued' && eventlog.spamStatus.indexOf('Yes,') === 0" uib-tooltip = "{{ 'emails.eventlog.type.queued' | tr }}" > < / i >
2021-09-30 14:35:06 +02:00
< i class = "fas fa-minus-circle" ng-show = "eventlog.type === 'denied'" uib-tooltip = "{{ 'emails.eventlog.type.denied' | tr }}" > < / i >
< i class = "fas fa-hand-paper" ng-show = "eventlog.type === 'bounce'" uib-tooltip = "{{ 'emails.eventlog.type.bounce' | tr }}" > < / i >
< i class = "fas fa-filter" ng-show = "eventlog.type === 'spam-learn'" uib-tooltip = "{{ 'emails.eventlog.type.spamFilterTrained' | tr }}" > < / i >
2022-08-21 09:40:14 +02:00
< i class = "fas fa-fill-drip" ng-show = "eventlog.type === 'quota'" uib-tooltip = "{{ 'emails.eventlog.type.quota' | tr }}" > < / i >
2021-09-30 14:35:06 +02:00
< / td >
< td class = "no-wrap" > < span uib-tooltip = "{{ eventlog.ts | prettyLongDate }}" class = "arrow" > {{ eventlog.ts | prettyDate }}< / span > < / td >
2021-10-08 20:34:06 -07:00
< td class = "elide-table-cell" > {{ (eventlog.mailFrom | prettyEmailAddresses) || '-' }}< / td >
2022-08-21 09:40:14 +02:00
< td class = "elide-table-cell" > {{ (eventlog.rcptTo | prettyEmailAddresses) || eventlog.mailbox || '-' }}< / td >
2021-09-30 14:35:06 +02:00
< td >
2021-10-12 18:18:03 -07:00
< span ng-show = "eventlog.type === 'bounce'" > {{ 'emails.eventlog.type.bounceInfo' | tr }}. {{ eventlog.message || eventlog.reason }}< / span >
< span ng-show = "eventlog.type === 'deferred'" > {{ 'emails.eventlog.type.deferredInfo' | tr: { delay:eventlog.delay } }}. {{ eventlog.message || eventlog.reason }} < / span >
2021-09-30 14:35:06 +02:00
< span ng-show = "eventlog.type === 'queued'" >
2021-10-08 20:34:06 -07:00
< span ng-show = "eventlog.direction === 'inbound'" > {{ 'emails.eventlog.type.inboundInfo' | tr }}< / span >
< span ng-show = "eventlog.direction === 'outbound'" > {{ 'emails.eventlog.type.outboundInfo' | tr }}< / span >
2021-09-30 14:35:06 +02:00
< / span >
2021-10-08 20:34:06 -07:00
< span ng-show = "eventlog.type === 'received'" > {{ 'emails.eventlog.type.receivedInfo' | tr }}< / span >
< span ng-show = "eventlog.type === 'delivered'" > {{ 'emails.eventlog.type.deliveredInfo' | tr }}< / span >
2021-10-12 18:18:03 -07:00
< span ng-show = "eventlog.type === 'denied'" > {{ 'emails.eventlog.type.deniedInfo' | tr }}. {{ eventlog.message || eventlog.reason }} < / span >
2021-10-08 20:34:06 -07:00
< span ng-show = "eventlog.type === 'spam-learn'" > {{ 'emails.eventlog.type.spamFilterTrainedInfo' | tr }}< / span >
2022-08-21 09:40:14 +02:00
< span ng-show = "eventlog.type === 'quota'" >
< span ng-show = "eventlog.quotaPercent > 0" > {{ 'emails.eventlog.type.overQuotaInfo' | tr: { mailbox: eventlog.mailbox, quotaPercent: eventlog.quotaPercent } }}< / span >
< span ng-show = "eventlog.quotaPercent < 0" > {{ 'emails.eventlog.type.underQuotaInfo' | tr: { mailbox: eventlog.mailbox, quotaPercent: -eventlog.quotaPercent } }}< / span >
< / span >
2021-09-30 14:35:06 +02:00
< / td >
< / tr >
< tr ng-show = "activity.activeEventLog === eventlog" >
< td colspan = "6" >
< pre class = "eventlog-details" > {{ eventlog | json }}< / pre >
< / td >
< / tr >
< / tbody >
< / table >
< / div >
< / div >
< / div >
< / div >