fisharebest/webtrees

View on GitHub
resources/views/admin/broadcast.phtml

Summary

Maintainability
Test Coverage
<?php

declare(strict_types=1);

use Fisharebest\Webtrees\Contracts\UserInterface;
use Fisharebest\Webtrees\Http\RequestHandlers\BroadcastAction;
use Fisharebest\Webtrees\Http\RequestHandlers\ControlPanel;
use Fisharebest\Webtrees\I18N;
use Illuminate\Support\Collection;

/**
 * @var UserInterface                 $from
 * @var string                        $title
 * @var string                        $to
 * @var Collection<int,UserInterface> $recipients
 */

?>

<?= view('components/breadcrumbs', ['links' => [route(ControlPanel::class) => I18N::translate('Control panel'), $title]]) ?>

<h1><?= $title ?></h1>

<form method="post" action="<?= e(route(BroadcastAction::class, ['to' => $to])) ?>">
    <div class="row mb-3">
        <label class="col-sm-3 col-form-label" for="from">
            <?= I18N::translateContext('Email sender', 'From') ?>
        </label>
        <div class="col-sm-9">
            <input class="form-control" id="from" type="text" value="<?= e($from->realName()) ?>" disabled>
        </div>
    </div>

    <div class="row mb-3">
        <label class="col-sm-3 col-form-label" for="to">
            <?= I18N::translateContext('Email recipient', 'To') ?>
        </label>
        <div class="col-sm-9">
            <input class="form-control" id="to" type="text" value="<?= $recipients->map(static fn (UserInterface $user): string => e($user->realName()))->implode(', ') ?>" disabled>
        </div>
    </div>

    <div class="row mb-3">
        <label class="col-sm-3 col-form-label" for="subject">
            <?= I18N::translate('Subject') ?>
        </label>
        <div class="col-sm-9">
            <input class="form-control" id="subject" type="text" name="subject" required="required">
        </div>
    </div>

    <div class="row mb-3">
        <label class="col-sm-3 col-form-label" for="body">
            <?= I18N::translate('Message') ?>
        </label>
        <div class="col-sm-9">
            <textarea class="form-control" id="body" name="body" rows="5" dir="auto" required="required"></textarea>
        </div>
    </div>

    <div class="row mb-3">
        <div class="col-sm-3 col-form-label"></div>
        <div class="col-sm-9">
            <button type="submit" class="btn btn-primary">
                <?= I18N::translate('Send') ?>
            </button>
            <a class="btn btn-link" href="<?= e(route(ControlPanel::class)) ?>">
                <?= I18N::translate('cancel') ?>
            </a>
        </div>
    </div>

    <?= csrf_field() ?>
</form>