List Manager

This commit is contained in:
Romain Neutron
2012-02-02 11:26:22 +01:00
parent dd1714fbfa
commit 9a9e20ae29
2 changed files with 152 additions and 0 deletions

View 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' ? '&#x25bc;' : '&#x25B2;' }}
</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' ? '&#x25bc;' : '&#x25B2;' }}
</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' ? '&#x25bc;' : '&#x25B2;' }}
</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' ? '&#x25bc;' : '&#x25B2;' }}
</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' ? '&#x25bc;' : '&#x25B2;' }}
</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' ? '&#x25bc;' : '&#x25B2;' }}
</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' ? '&#x25bc;' : '&#x25B2;' }}
</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 %}

View File

@@ -0,0 +1,3 @@
{% import 'prod/actions/Feedback/ListsMacros.html.twig' as ListsMacros %}
{{ ListsMacros.ResultTable(results, list, sort, ord) }}