Dont record us in seenby/path for local messages. Update echomail display to know if an exchomail seenby has collected the message
This commit is contained in:
parent
4f8448563d
commit
f082bb0ebd
@ -10,6 +10,7 @@ use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
|
||||
use App\Casts\{CollectionOrNull,CompressedString};
|
||||
use App\Classes\FTN\Message;
|
||||
use App\Interfaces\Packet;
|
||||
use App\Traits\{MessageAttributes,MsgID,ParseAddresses,QueryCacheableConfig};
|
||||
|
||||
@ -96,7 +97,6 @@ final class Echomail extends Model implements Packet
|
||||
throw new \Exception('Cannot save, validation errors exist');
|
||||
});
|
||||
|
||||
// @todo dont save us in the seenby/path, we'll add it dynamically when we send out.
|
||||
// @todo if the message is updated with new SEEN-BY's from another route, we'll delete the pending export for systems (if there is one)
|
||||
static::created(function($model) {
|
||||
$rogue = collect();
|
||||
@ -110,7 +110,7 @@ final class Echomail extends Model implements Packet
|
||||
Log::debug(sprintf('%s:^ Message [%d] from point address is [%d]',self::LOGKEY,$model->id,$model->fftn->point_id));
|
||||
|
||||
// Make sure our sender is first in the path
|
||||
if (! $path->contains($model->fftn_id)) {
|
||||
if ((! $model->isFlagSet(Message::FLAG_LOCAL)) && (! $path->contains($model->fftn_id))) {
|
||||
Log::alert(sprintf('%s:? Echomail adding sender to start of PATH [%s].',self::LOGKEY,$model->fftn_id));
|
||||
$path->prepend($model->fftn_id);
|
||||
}
|
||||
@ -141,7 +141,7 @@ final class Echomail extends Model implements Packet
|
||||
$seenby = self::parseAddresses('seenby',$model->set->get('set_seenby'),$model->fftn->zone,$rogue);
|
||||
|
||||
// Make sure our sender is in the seenby
|
||||
if (! $seenby->contains($model->fftn_id)) {
|
||||
if ((! $model->isFlagSet(Message::FLAG_LOCAL)) && (! $seenby->contains($model->fftn_id))) {
|
||||
Log::alert(sprintf('%s:? Echomail adding sender to SEENBY [%s].',self::LOGKEY,$model->fftn_id));
|
||||
$seenby->push($model->fftn_id);
|
||||
}
|
||||
@ -182,6 +182,7 @@ final class Echomail extends Model implements Packet
|
||||
->addresses
|
||||
->filter(function($item) use ($model) { return $model->echoarea->can_read($item->security); })
|
||||
->pluck('id')
|
||||
->diff(our_address($model->fftn->zone->domain))
|
||||
->diff($seenby);
|
||||
|
||||
if ($exportto->count()) {
|
||||
|
@ -63,7 +63,20 @@ use App\Models\{Echomail,Netmail};
|
||||
@if ($msg instanceof Echomail)
|
||||
<div class="row pb-2">
|
||||
<div class="col-8">
|
||||
SEENBY: <br><strong class="highlight">{!! $msg->seenby->pluck('ftn2d')->join('</strong>, <strong class="highlight">') !!}</strong>
|
||||
SEENBY: <br><strong class="highlight">{!! $msg
|
||||
->seenby
|
||||
->map(function($item) {
|
||||
if ($item->pivot->export_at) {
|
||||
if ($item->pivot->sent_at)
|
||||
return sprintf('<strong class="success" title="Sent: %s Packet: %s">%s</strong>',$item->pivot->sent_at,$item->pivot->sent_pkt,$item->ftn2d);
|
||||
else
|
||||
return sprintf('<strong class="danger">%s</strong>',$item->ftn2d);
|
||||
|
||||
} else {
|
||||
return sprintf('<strong class="highlight">%s</strong>',$item->ftn2d);
|
||||
}
|
||||
})->join(', ') !!}
|
||||
</strong>
|
||||
</div>
|
||||
|
||||
@if($msg->rogue_seenby->count())
|
||||
@ -72,10 +85,14 @@ use App\Models\{Echomail,Netmail};
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<!-- @todo for the nodes we export to, highlight those that we have actually sent it, vs those that havent received it yet -->
|
||||
<div class="row pb-2">
|
||||
<div class="col-8">
|
||||
PATH: <br><strong class="highlight">{!! $msg->pathorder()->join('</strong> -> <strong class="highlight">') !!}</strong>
|
||||
PATH:
|
||||
@if($msg->path->count())
|
||||
<br><strong class="highlight">{!! $msg->pathorder()->join('</strong> -> <strong class="highlight">') !!}</strong>
|
||||
@else
|
||||
<br><small>[<strong>No details</strong>]</small>
|
||||
@endif
|
||||
|
||||
@if(($msg instanceof Echomail) && $msg->rogue_path->count())
|
||||
<br><small>[<strong>NOTE</strong>: Some path values couldnt be identified - ({{ $msg->rogue_path->join(',') }})]</small>
|
||||
@ -83,19 +100,20 @@ use App\Models\{Echomail,Netmail};
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row pb-2">
|
||||
<div class="col-8">
|
||||
@if($msg instanceof Netmail)
|
||||
@if($msg->path->count())
|
||||
<div class="row pb-2">
|
||||
<div class="col-8">
|
||||
RECEIVED:<br>
|
||||
@foreach ($msg->path as $path)
|
||||
<strong class="highlight">{{ $path->pivot->recv_pkt }}</strong> from <strong class="highlight">{{ $path->ftn }}</strong> {{ $msg->created_at }}
|
||||
@endforeach
|
||||
@elseif ($msg instanceof Echomail)
|
||||
RECEIVED:<br>
|
||||
<strong class="highlight">{{ ($x=$msg->path->sortBy('pivot.parent_id')->last())->pivot->recv_pkt }}</strong> from <strong class="highlight">{{ $x->ftn }}</strong> {{ $x->pivot->recv_at }}
|
||||
@endif
|
||||
@if($msg instanceof Netmail)
|
||||
@foreach ($msg->path as $path)
|
||||
<strong class="highlight">{{ $path->pivot->recv_pkt }}</strong> from <strong class="highlight">{{ $path->ftn }}</strong> {{ $msg->created_at }}<br>
|
||||
@endforeach
|
||||
@elseif ($msg instanceof Echomail)
|
||||
<strong class="highlight">{{ ($x=$msg->path->sortBy('pivot.parent_id')->last())->pivot->recv_pkt }}</strong> from <strong class="highlight">{{ $x->ftn }}</strong> {{ $x->pivot->recv_at }}<br>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@if($msg instanceof Netmail)
|
||||
<div class="col-8">
|
||||
|
Loading…
Reference in New Issue
Block a user