mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-18 15:33:15 +00:00
List Manager
This commit is contained in:
149
templates/web/prod/actions/Feedback/ListsMacros.html.twig
Normal file
149
templates/web/prod/actions/Feedback/ListsMacros.html.twig
Normal file
@@ -0,0 +1,149 @@
|
|||||||
|
{% macro ResultTable(results, list, sort, ord) %}
|
||||||
|
{{ sort}} {{ ord }} la
|
||||||
|
<table id="list-editor-search-results" style="width:100%;table-layout:fixed;">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th style="text-align: center;" class="sortable {{ sort == 'usr_login' ? 'sorted' : '' }} {{ ord == 'asc' ? 'sort_asc' : 'sort_desc' }}">
|
||||||
|
{% trans 'Login' %}
|
||||||
|
<span class="ord_notifier">
|
||||||
|
{{ ord == 'asc' ? '▼' : '▲' }}
|
||||||
|
</span>
|
||||||
|
<input type="hidden" name="srt" value="usr_login" />
|
||||||
|
</th>
|
||||||
|
<th style="text-align: center;" class="sortable {{ sort == 'usr_nom' ? 'sorted' : '' }} {{ ord == 'asc' ? 'sort_asc' : 'sort_desc' }}">
|
||||||
|
{% trans 'First/Last Name' %}
|
||||||
|
<span class="ord_notifier">
|
||||||
|
{{ ord == 'asc' ? '▼' : '▲' }}
|
||||||
|
</span>
|
||||||
|
<input type="hidden" name="srt" value="usr_nom" />
|
||||||
|
</th>
|
||||||
|
<th style="text-align: center;" class="sortable {{ sort == 'societe' ? 'sorted' : '' }} {{ ord == 'asc' ? 'sort_asc' : 'sort_desc' }}">
|
||||||
|
{% trans 'Company' %}
|
||||||
|
<span class="ord_notifier">
|
||||||
|
{{ ord == 'asc' ? '▼' : '▲' }}
|
||||||
|
</span>
|
||||||
|
<input type="hidden" name="srt" value="societe" />
|
||||||
|
</th>
|
||||||
|
<th style="text-align: center;" class="sortable {{ sort == 'usr_mail' ? 'sorted' : '' }} {{ ord == 'asc' ? 'sort_asc' : 'sort_desc' }}">
|
||||||
|
{% trans 'E-Mail' %}
|
||||||
|
<span class="ord_notifier">
|
||||||
|
{{ ord == 'asc' ? '▼' : '▲' }}
|
||||||
|
</span>
|
||||||
|
<input type="hidden" name="srt" value="usr_mail" />
|
||||||
|
</th>
|
||||||
|
<th style="text-align: center;" class="sortable {{ sort == 'pays' ? 'sorted' : '' }} {{ ord == 'asc' ? 'sort_asc' : 'sort_desc' }}">
|
||||||
|
{% trans 'Country' %}
|
||||||
|
<span class="ord_notifier">
|
||||||
|
{{ ord == 'asc' ? '▼' : '▲' }}
|
||||||
|
</span>
|
||||||
|
<input type="hidden" name="srt" value="pays" />
|
||||||
|
</th>
|
||||||
|
<th style="text-align: center;" class="sortable {{ sort == 'lastModel' ? 'sorted' : '' }} {{ ord == 'asc' ? 'sort_asc' : 'sort_desc' }}">
|
||||||
|
{% trans 'Last Template' %}
|
||||||
|
<span class="ord_notifier">
|
||||||
|
{{ ord == 'asc' ? '▼' : '▲' }}
|
||||||
|
</span>
|
||||||
|
<input type="hidden" name="srt" value="lastModel" />
|
||||||
|
</th>
|
||||||
|
<th style="text-align: center;" class="sortable {{ sort == 'usr_creationdate' ? 'sorted' : '' }} {{ ord == 'asc' ? 'sort_asc' : 'sort_desc' }}">
|
||||||
|
{% trans 'Creation date' %}
|
||||||
|
<span class="ord_notifier">
|
||||||
|
{{ ord == 'asc' ? '▼' : '▲' }}
|
||||||
|
</span>
|
||||||
|
<input type="hidden" name="srt" value="usr_creationdate" />
|
||||||
|
</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
{% for user in results %}
|
||||||
|
<tr class="{% if list.has(user) %} selected {% endif %}{% if loop.index is odd %} odd {% endif %}">
|
||||||
|
<td>
|
||||||
|
{{ user.get_login() }}
|
||||||
|
<input name="usr_id" value="{{ user.get_id() }}" type="hidden" />
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
{{ user.get_display_name() }}
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
{{ user.get_company() }}
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
{{ user.get_email() }}
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
{{ user.get_country() }}
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
{{ user.get_login() }}
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
{{ user.get_creation_date()|getDate }}
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<script>
|
||||||
|
|
||||||
|
$(document).ready(function(){
|
||||||
|
var $editor = $('#list-editor-search-results');
|
||||||
|
|
||||||
|
$('th.sortable', $editor).bind('click', function(){
|
||||||
|
|
||||||
|
var $this = $(this);
|
||||||
|
|
||||||
|
var sort = $('input', $this).val();
|
||||||
|
|
||||||
|
var $form = $this.closest('.editor').find('form[name="list-editor-search"]');
|
||||||
|
|
||||||
|
if((sort == $('input[name="srt"]', $form).val())
|
||||||
|
&& ($('input[name="ord"]', $form).val() == 'asc'))
|
||||||
|
{
|
||||||
|
var ord = 'desc';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var ord = 'asc';
|
||||||
|
}
|
||||||
|
|
||||||
|
$('input[name="srt"]', $form).val(sort);
|
||||||
|
$('input[name="ord"]', $form).val(ord);
|
||||||
|
|
||||||
|
$form.trigger('submit');
|
||||||
|
})
|
||||||
|
.bind('mouseover', function(){$(this).addClass('hover');})
|
||||||
|
.bind('mouseout', function(){$(this).removeClass('hover');});
|
||||||
|
|
||||||
|
$('tbody tr', $editor).bind('click', function(){
|
||||||
|
|
||||||
|
var $this = $(this);
|
||||||
|
var usr_id = $('input[name="usr_id"]', $this).val();
|
||||||
|
|
||||||
|
var counters = $('#ListManager .counter.current, #ListManager .lists .list.selected .counter');
|
||||||
|
|
||||||
|
if($this.hasClass('selected'))
|
||||||
|
{
|
||||||
|
$this.removeClass('selected');
|
||||||
|
p4.ListManager.getList().removeUser(usr_id);
|
||||||
|
|
||||||
|
counters.each(function(i,el){
|
||||||
|
var n = parseInt($(el).text());
|
||||||
|
$(el).text(n - 1);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$this.addClass('selected');
|
||||||
|
p4.ListManager.getList().addUser(usr_id);
|
||||||
|
|
||||||
|
counters.each(function(i,el){
|
||||||
|
var n = parseInt($(el).text());
|
||||||
|
$(el).text(n + 1);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
{% endmacro %}
|
@@ -0,0 +1,3 @@
|
|||||||
|
{% import 'prod/actions/Feedback/ListsMacros.html.twig' as ListsMacros %}
|
||||||
|
|
||||||
|
{{ ListsMacros.ResultTable(results, list, sort, ord) }}
|
Reference in New Issue
Block a user