|
18 | 18 |
|
19 | 19 | {% block main %}
|
20 | 20 | <div class="row">
|
21 |
| - <div class="col-sm-3"> |
| 21 | + <div class="col-sm-3 mb-4"> |
22 | 22 | <div class="card text-center">
|
23 | 23 | <div class="card-header">{{ 'user.stats.card.lastConnexion'|trans({}, 'UserStatsBundle') }}</div>
|
24 | 24 | <div class="card-body">
|
|
92 | 92 | </div>
|
93 | 93 | </div>
|
94 | 94 | </div>
|
95 |
| - <div class="col-sm-12"> |
| 95 | + <div class="col-sm-12 mb-4"> |
96 | 96 | <div class="card">
|
97 | 97 | <div class="card-body">
|
98 | 98 | <table class="table table-bordered fluffy-user-stats-table" style="width: 100%">
|
|
124 | 124 | </div>
|
125 | 125 | </div>
|
126 | 126 | </div>
|
| 127 | + {% if statsSession %} |
| 128 | + <div class="col-sm-12 mb-4"> |
| 129 | + <div class="card"> |
| 130 | + <div class="card-header">Par session</div> |
| 131 | + <div class="card-body"> |
| 132 | + <div class="accordion" id="ffAccordionSession"> |
| 133 | + {% for sessionId, userStatsLines in statsSession %} |
| 134 | + <div class="accordion-item"> |
| 135 | + <h2 class="accordion-header" id="heading{{ sessionId }}"> |
| 136 | + <button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#collapse{{ sessionId }}" aria-expanded="true" aria-controls="collapse{{ sessionId }}"> |
| 137 | + {{ (userStatsLines|first).createdAt|format_datetime('short', 'medium', locale=app.request.locale) }} - {{ (userStatsLines|last).createdAt|format_datetime('short', 'medium', locale=app.request.locale) }} |
| 138 | + </button> |
| 139 | + </h2> |
| 140 | + <div id="collapse{{ sessionId }}" class="accordion-collapse collapse" aria-labelledby="heading{{ sessionId }}" data-bs-parent="#ffAccordionSession"> |
| 141 | + <div class="accordion-body"> |
| 142 | + <ul class="list-group"> |
| 143 | + {% for index, userStatsLine in userStatsLines %} |
| 144 | + <li class="list-group-item d-flex justify-content-between align-items-center"> |
| 145 | + <div> |
| 146 | + <p class="mb-0"><span class="badge bg-secondary me-2">{{ userStatsLines|length - index }}</span>{{ userStatsLine.route }}</p> |
| 147 | + <a href="{{ userStatsLine.url }}"><small>{{ userStatsLine.url|length > 50 ? userStatsLine.url|slice(0, 50) ~ '...' : userStatsLine.url }}</small></a> |
| 148 | + </div> |
| 149 | + <div> |
| 150 | + {{ userStatsLine.diff|date("<span class='badge badge-secondary'>%d j</span> <span class='badge badge-secondary'>%h h</span> <span class='badge badge-secondary'>%i m</span> <span class='badge badge-secondary'>%s s</span>")|raw }} |
| 151 | + </div> |
| 152 | + </li> |
| 153 | + {% endfor %} |
| 154 | + </ul> |
| 155 | + </div> |
| 156 | + </div> |
| 157 | + </div> |
| 158 | + {% endfor %} |
| 159 | + </div> |
| 160 | + </div> |
| 161 | + </div> |
| 162 | + </div> |
| 163 | + {% endif %} |
127 | 164 | </div>
|
128 | 165 |
|
129 | 166 | <div class="modal fade" id="removeUsersStatsModal" tabindex="-1" role="dialog" aria-labelledby="removeUsersStatsModalLabel" aria-hidden="true">
|
|
0 commit comments