102 lines
5.0 KiB
Twig
102 lines
5.0 KiB
Twig
{#
|
||
organizations/invite_modal.twig - Модальное окно приглашения пользователя
|
||
#}
|
||
<div class="modal fade" id="inviteUserModal" tabindex="-1">
|
||
<div class="modal-dialog">
|
||
<div class="modal-content">
|
||
<div class="modal-header">
|
||
<h5 class="modal-title">
|
||
<i class="fa-solid fa-user-plus me-2"></i>Пригласить пользователя
|
||
</h5>
|
||
<button type="button" class="btn-close" data-bs-dismiss="modal"></button>
|
||
</div>
|
||
<div class="modal-body">
|
||
<form id="inviteUserForm" action="/organizations/users/{{ organization_id }}/invite" method="POST">
|
||
<input type="hidden" name="<?= csrf_token() ?>" value="<?= csrf_hash() ?>">
|
||
|
||
<div class="mb-3">
|
||
<label for="inviteEmail" class="form-label">Email адрес</label>
|
||
<input type="email"
|
||
class="form-control"
|
||
id="inviteEmail"
|
||
name="email"
|
||
placeholder="user@example.com"
|
||
required>
|
||
<div class="form-text">На этот адрес будет отправлено приглашение</div>
|
||
</div>
|
||
|
||
<div class="mb-3">
|
||
<label for="inviteRole" class="form-label">Роль</label>
|
||
<select class="form-select" id="inviteRole" name="role" required>
|
||
{% for role_value, role_info in get_all_roles() %}
|
||
{% if role_value != 'owner' %}
|
||
<option value="{{ role_value }}">{{ role_info.label }}</option>
|
||
{% endif %}
|
||
{% endfor %}
|
||
</select>
|
||
<div class="form-text">{{ get_all_roles()[current_role].description|default('') }}</div>
|
||
</div>
|
||
|
||
<div class="d-flex justify-content-end gap-2">
|
||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Отмена</button>
|
||
<button type="submit" class="btn btn-primary">
|
||
<i class="fa-solid fa-paper-plane me-2"></i>Отправить приглашение
|
||
</button>
|
||
</div>
|
||
</form>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
{# Модалка с ссылкой приглашения #}
|
||
<div class="modal fade" id="inviteLinkModal" tabindex="-1">
|
||
<div class="modal-dialog">
|
||
<div class="modal-content">
|
||
<div class="modal-header">
|
||
<h5 class="modal-title">
|
||
<i class="fa-solid fa-check-circle text-success me-2"></i>Приглашение отправлено
|
||
</h5>
|
||
<button type="button" class="btn-close" data-bs-dismiss="modal"></button>
|
||
</div>
|
||
<div class="modal-body">
|
||
<p>Приглашение успешно отправлено на <strong id="inviteEmailDisplay"></strong></p>
|
||
|
||
<div class="mb-3">
|
||
<label class="form-label">Ссылка для приглашения</label>
|
||
<div class="input-group">
|
||
<input type="text"
|
||
class="form-control"
|
||
id="inviteLinkInput"
|
||
readonly>
|
||
<button type="button"
|
||
class="btn btn-outline-secondary"
|
||
id="copyLinkBtn"
|
||
onclick="copyInviteLink()"
|
||
title="Копировать">
|
||
<i class="fa-regular fa-copy"></i>
|
||
</button>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="d-flex gap-2 flex-wrap">
|
||
<button type="button" class="btn btn-outline-primary" onclick="shareViaWebShare()">
|
||
<i class="fa-solid fa-share-nodes me-1"></i>Поделиться
|
||
</button>
|
||
<a href="#" onclick="shareToTelegram(); return false;" class="btn btn-outline-primary">
|
||
<i class="fa-brands fa-telegram me-1"></i>Telegram
|
||
</a>
|
||
</div>
|
||
|
||
<div class="alert alert-info mt-3 mb-0">
|
||
<i class="fa-solid fa-circle-info me-2"></i>
|
||
Если email не дошёл, можно скопировать ссылку и отправить другим способом
|
||
</div>
|
||
</div>
|
||
<div class="modal-footer">
|
||
<button type="button" class="btn btn-primary" data-bs-dismiss="modal">Готово</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|