mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-10-15 08:35:00 +00:00
184 lines
10 KiB
Twig
184 lines
10 KiB
Twig
{% extends './layout/default' %}
|
|
|
|
{% block breadcrumbs %}
|
|
{{ Breadcrumbs.render }}
|
|
{% endblock %}
|
|
{% block content %}
|
|
{% if allowInvites %}
|
|
<div class="row">
|
|
<div class="col-lg-6">
|
|
<form action="{{ route('settings.users.invite') }}" method="post">
|
|
<input type="hidden" name="_token" value="{{ csrf_token() }}"/>
|
|
<div class="box box-primary">
|
|
<div class="box-header with-border">
|
|
<h3 class="box-title">{{ 'invite_new_user_title'|_ }}</h3>
|
|
</div>
|
|
<div class="box-body">
|
|
<p>
|
|
{{ 'invite_new_user_text'|_ }}
|
|
</p>
|
|
{{ ExpandedForm.text('invited_user',null, {'type': 'email', 'label' : 'invited_user_mail'|_}) }}
|
|
</div>
|
|
<div class="box-footer">
|
|
<button type="submit" class="btn pull-right btn-success">
|
|
{{ ('invite_user')|_ }}
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
{% endif %}
|
|
<div class="row">
|
|
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
|
|
<div class="box box-primary">
|
|
<div class="box-header with-border">
|
|
<h3 class="box-title">{{ 'all_users'|_ }}</h3>
|
|
</div>
|
|
<div class="box-body no-padding">
|
|
<table class="table table-responsive table-condensed sortable" aria-label="Table">
|
|
<thead>
|
|
<tr>
|
|
<th data-defaultsign="_19" class="hidden-xs" colspan="2"> </th>
|
|
<th data-defaultsign="az">{{ trans('list.email') }}</th>
|
|
<th data-defaultsign="month" class="hidden-xs">{{ trans('list.registered_at') }}</th>
|
|
<th data-defaultsign="month" class="hidden-xs">{{ trans('list.updated_at') }}</th>
|
|
<th class="hidden-xs">{{ trans('list.is_admin') }}</th>
|
|
<th class="hidden-xs">{{ trans('list.has_two_factor') }}</th>
|
|
<th>{{ trans('list.is_blocked') }}</th>
|
|
<th data-defaultsign="az" class="hidden-xs">{{ trans('list.blocked_code') }}</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{% for user in users %}
|
|
<tr>
|
|
<td class="hidden-xs" data-value="{{ user.id }}">
|
|
<div class="btn-group btn-group-xs">
|
|
<a class="btn btn-default" href="{{ route('settings.users.edit',user.id) }}"><span
|
|
class="fa fa-pencil"></span></a>
|
|
<a class="btn btn-danger" href="{{ route('settings.users.delete',user.id) }}"><span
|
|
class="fa fa-trash"></span></a>
|
|
</div>
|
|
</td>
|
|
<td class="hidden-xs" data-value="{{ user.id }}">#{{ user.id }}</td>
|
|
<td data-value="{{ user.email }}">
|
|
<a href="{{ route('settings.users.show',user.id) }}">{{ user.email }}</a></td>
|
|
<td class="hidden-xs" data-value="{{ user.created_at.format('Y-m-d H-i-s') }}">
|
|
{{ user.created_at.isoFormat(monthAndDayFormat) }}
|
|
{{ user.created_at.format('H:i') }}
|
|
</td>
|
|
<td class="hidden-xs" data-value="{{ user.updated_at.format('Y-m-d H-i-s') }}">
|
|
{{ user.updated_at.isoFormat(monthAndDayFormat) }}
|
|
{{ user.updated_at.format('H:i') }}
|
|
</td>
|
|
<td class="hidden-xs" data-value="{% if user.isAdmin %}1{% else %}0{% endif %}">
|
|
{% if user.isAdmin %}
|
|
<small class="text-success"><span class="fa fa-fw fa-check"></span></small>
|
|
{% else %}
|
|
<small class="text-danger"><span class="fa fa-fw fa-times"></span></small>
|
|
{% endif %}
|
|
</td>
|
|
<td class="hidden-xs" data-value="{% if user.has2FA %}1{% else %}0{% endif %}">
|
|
{% if user.has2FA %}
|
|
<small class="text-success"><span class="fa fa-fw fa-check"></span></small>
|
|
{% else %}
|
|
<small class="text-danger"><span class="fa fa-fw fa-times"></span></small>
|
|
{% endif %}
|
|
</td>
|
|
<td data-value="{% if user.blocked %}1{% else %}0{% endif %}">
|
|
{% if user.blocked == 1 %}
|
|
<small class="text-danger"><span class="fa fa-fw fa-check"
|
|
title="{{ 'yes'|_ }}"></span></small>
|
|
{% else %}
|
|
<small class="text-success"><span class="fa fa-fw fa-times"
|
|
title="{{ 'no'|_ }}"></span></small>
|
|
{% endif %}
|
|
</td>
|
|
<td class="hidden-xs">
|
|
<small>
|
|
{% if user.blocked == 1 %}
|
|
{% if user.blocked_code == "" %}
|
|
<em>~</em>
|
|
{% else %}
|
|
{{ user.blocked_code }}
|
|
{% endif %}
|
|
{% endif %}
|
|
</small>
|
|
</td>
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% if invitedUsers.count > 0 %}
|
|
<div class="row">
|
|
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
|
|
<div class="box">
|
|
<div class="box-header with-border">
|
|
<h3 class="box-title">{{ 'all_invited_users'|_ }}</h3>
|
|
</div>
|
|
<div class="box-body no-padding">
|
|
<table class="table table-responsive table-condensed sortable">
|
|
<thead>
|
|
<tr>
|
|
<th data-defaultsign="_19" class="hidden-xs" colspan="1"> </th>
|
|
<th data-defaultsign="az">{{ trans('list.email') }}</th>
|
|
<th data-defaultsign="month" class="hidden-xs">{{ trans('list.invited_at') }}</th>
|
|
<th data-defaultsign="month" class="hidden-xs">{{ trans('list.expires') }}</th>
|
|
<th class="hidden-xs">{{ trans('list.invited_by') }}</th>
|
|
<th>{{ trans('list.invite_link') }}</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{% for invitee in invitedUsers %}
|
|
<tr>
|
|
<td class="hidden-xs" data-value="{{ user.id }}">
|
|
<div class="btn-group btn-group-xs">
|
|
<a class="btn btn-danger delete-invite" href="{{ route('settings.users.delete-invite', invitee.id) }}"><span
|
|
class="fa fa-trash"></span></a>
|
|
</div>
|
|
</td>
|
|
<td>
|
|
{{ invitee.email }}
|
|
</td>
|
|
<td class="hidden-xs">
|
|
{{ invitee.created_at.isoFormat(monthAndDayFormat) }}
|
|
{{ invitee.created_at.format('H:i') }}
|
|
</td>
|
|
<td>
|
|
{{ invitee.expires.isoFormat(monthAndDayFormat) }}
|
|
{{ invitee.expires.format('H:i') }}
|
|
</td>
|
|
<td>
|
|
{{ invitee.user.email }}
|
|
</td>
|
|
<td>
|
|
{% if invitee.redeemed %}
|
|
<em><s>{{ 'code_already_used'|_ }}</s></em>
|
|
{% else %}
|
|
<input type="text" class="form-control" readonly value="{{ route('invite', [invitee.invite_code]) }}">
|
|
{% endif %}
|
|
</td>
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
{% endif %}
|
|
{% endblock %}
|
|
{% block styles %}
|
|
<link rel="stylesheet" href="v1/css/bootstrap-sortable.css?v={{ FF_VERSION }}" type="text/css" media="all"
|
|
nonce="{{ JS_NONCE }}">
|
|
{% endblock %}
|
|
{% block scripts %}
|
|
<script type="text/javascript" src="v1/js/lib/bootstrap-sortable.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
|
|
<script type="text/javascript" src="v1/js/ff/admin/users.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
|
|
{% endblock %}
|