Files
Phraseanet/templates/web/admin/users.html.twig
2012-10-04 15:42:54 +02:00

303 lines
16 KiB
Twig
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{% extends app['request'].isXmlHttpRequest ? "admin/common/ajax_wrap.html.twig" : "admin/common/iframe_wrap.html.twig" %}
{% block content %}
{% if app['request'].query.get('user-updated') is not none%}
<div class="alert alert-success">
<button class="close" data-dismiss="alert" type="button">×</button>
{% set user_count = app['request'].get('user-updated') %}
{% trans %}
{{ user_count }} user has been crreated
{% plural user_count %}
{{ user_count }} users have been created
{% endtrans %}
</div>
{% endif %}
<div id="users_page">
<h1>{% trans 'Users' %}</h1>
<p class="admin_head_opts">
<a class="user_adder" href="#">{% trans 'admin::user: nouvel utilisateur' %}</a>
<a class="template_adder" href="#">{% trans 'admin::user: nouveau template' %}</a>
<a href="/admin/users/import/file/" target='right'>{% trans 'admin::user: import d\'utilisateurs' %}</a> /
<a href="javascript:void();return(false);" onclick="exportlist();return(false);">{% trans 'admin::user: export d\'utilisateurs' %}</a>
<a class="invite_modifier" href="#">{% trans 'Reglages:: reglages d acces guest' %}</a>
<input type="hidden" value="{{invite_user.get_id()}}" name="invite_user_id"/>
<a class="autoregister_modifier" href="#">{% trans 'Reglages:: reglages d inscitpition automatisee' %}</a>
<input type="hidden" value="{{autoregister_user.get_id()}}" name="autoregister_user_id"/>
</p>
<form id="users_page_search" method="post" action="/admin/users/search/" target="_self">
<p class="admin_head_opts">
<span>{% trans 'Filter' %}</span>
<select name="like_field" class="input-medium">
<option {% if parm['like_field'] == "usr_login" %}selected="selected"{% endif %} value="usr_login">{% trans 'Push::filter on login' %}</option>
<option {% if parm['like_field'] == "name" %}selected="selected"{% endif %} value="name">{% trans 'Push::filter on name' %}</option>
<option {% if parm['like_field'] == "pays" %}selected="selected"{% endif %} value="pays">{% trans 'Push::filter on countries' %}</option>
<option {% if parm['like_field'] == "societe" %}selected="selected"{% endif %} value="societe">{% trans 'Push::filter on companies' %}</option>
<option {% if parm['like_field'] == "usr_mail" %}selected="selected"{% endif %} value="usr_mail">{% trans 'Push::filter on emails' %}</option>
<option {% if parm['like_field'] == "lastModel" %}selected="selected"{% endif %} value="lastModel">{% trans 'Push::filter on templates' %}</option>
</select>
<span>{% trans 'Push::filter starts' %}</span>
<input type="text" value="{{parm['like_value']}}" name="like_value" class="input-medium">
<button type="submit" class="btn">{% trans 'boutton::chercher' %}</button>
</p>
</form>
<form id="users_apply_template" method="post" action="/admin/users/apply_template/" target="_self" style="float:left">
<p class="admin_head_opts">
<span>{% trans 'Apply a template' %}</span>
<select name="template_chooser" class="input-medium">
<option value="">{% trans 'boutton::choisir' %}</option>
{% for template in templates %}
<option value="{{ template.get_id() }}">{{ template.get_display_name() }}</option>
{% endfor %}
</select>
<button type="submit" class="btn">{% trans 'boutton::appliquer' %}</button>
</p>
</form>
<form id="users_reset_rights" method="post" action="/admin/users/rights/reset/" target="_self" style="float:right">
<input type="hidden" value="" name="users">
<button type='button' class="btn btn-warning">{% trans 'reset users rights' %}</button>
</form>
<table id="users" cellspacing="0" cellpadding="0" border="0" class="admintable">
<thead>
<tr>
<th style="text-align: center;" class="sortable {{ parm.srt == 'usr_id' ? 'sorted' : '' }} {{ parm.ord == 'asc' ? 'sort_asc' : 'sort_desc' }}">
<span>{% trans 'admin::compte-utilisateur id utilisateur' %}</span>
<span class="ord_notifier">{{ parm.ord == 'asc' ? '&#x25bc;' : '&#x25B2;' }}</span>
<input type="hidden" name="srt" value="usr_id" />
</th>
<th class="sortable {{ parm.srt == 'usr_login' ? 'sorted' : '' }} ">
<span>{% trans 'admin::compte-utilisateur identifiant' %}</span>
<span class="ord_notifier">{{ parm.ord == 'asc' ? '&#x25bc;' : '&#x25B2;' }}</span>
<input type="hidden" name="srt" value="usr_login" />
</th>
<th class="sortable {{ parm.srt == 'usr_nom' ? 'sorted' : '' }} {{ parm.ord == 'asc' ? 'sort_asc' : 'sort_desc' }}">
<span>{% trans 'admin::compte-utilisateur nom/prenom' %}</span>
<span class="ord_notifier">{{ parm.ord == 'asc' ? '&#x25bc;' : '&#x25B2;' }}</span>
<input type="hidden" name="srt" value="usr_nom" />
</th>
<th class="sortable {{ parm.srt == 'societe' ? 'sorted' : '' }} {{ parm.ord == 'asc' ? 'sort_asc' : 'sort_desc' }}">
<span>{% trans 'admin::compte-utilisateur societe' %}</span>
<span class="ord_notifier">{{ parm.ord == 'asc' ? '&#x25bc;' : '&#x25B2;' }}</span>
<input type="hidden" name="srt" value="societe" />
</th>
<th class="sortable {{ parm.srt == 'usr_mail' ? 'sorted' : '' }} {{ parm.ord == 'asc' ? 'sort_asc' : 'sort_desc' }}">
<span>{% trans 'admin::compte-utilisateur email' %}</span>
<span class="ord_notifier">{{ parm.ord == 'asc' ? '&#x25bc;' : '&#x25B2;' }}</span>
<input type="hidden" name="srt" value="usr_mail" />
</th>
<th class="sortable {{ parm.srt == 'pays' ? 'sorted' : '' }} {{ parm.ord == 'asc' ? 'sort_asc' : 'sort_desc' }}">
<span>{% trans 'admin::compte-utilisateur pays' %}</span>
<span class="ord_notifier">{{ parm.ord == 'asc' ? '&#x25bc;' : '&#x25B2;' }}</span>
<input type="hidden" name="srt" value="pays" />
</th>
<th class="sortable {{ parm.srt == 'lastModel' ? 'sorted' : '' }} {{ parm.ord == 'asc' ? 'sort_asc' : 'sort_desc' }}">
<span>{% trans 'admin::compte-utilisateur dernier modele applique' %}</span>
<span class="ord_notifier">{{ parm.ord == 'asc' ? '&#x25bc;' : '&#x25B2;' }}</span>
<input type="hidden" name="srt" value="lastModel" />
</th>
<th class="sortable {{ parm.srt == 'usr_creationdate' ? 'sorted' : '' }} {{ parm.ord == 'asc' ? 'sort_asc' : 'sort_desc' }}">
<span>{% trans 'admin::compte-utilisateur date de creation' %}</span>
<span class="ord_notifier">{{ parm.ord == 'asc' ? '&#x25bc;' : '&#x25B2;' }}</span>
<input type="hidden" name="srt" value="usr_creationdate" />
</th>
</tr>
</thead>
<tbody>
{% for usr in users.get_results %}
<tr class="{% if loop.index is odd %}odd{% else %}even{% endif %}" id="user_{{usr.get_id()}}">
<td style="text-align: center;">
{% if usr.is_template() %}
<img title="{% trans 'This is a template' %}" src="/skins/icons/template.png"/>
{% else %}
{% if usr.ACL().is_phantom() %}
<img title="{% trans 'This user has no rights' %}" src="/skins/admin/ghost.png"/>
{% endif %}
{{usr.get_id()}}
{% endif %}
</td>
<td>
{{usr.get_login()}}
</td>
<td>
{{usr.get_firstname()}} {{usr.get_lastname()}}
</td>
<td>
{{usr.get_company()}}
</td>
<td>
{{usr.get_email()}}
</td>
<td>
{{usr.get_country()}}
</td>
<td>
{{usr.get_applied_template()}}
</td>
<td>
{{ app['date-formatter'].getDate(usr.get_creation_date()) }}
</td>
</tr>
{% endfor %}
</tbody>
</table>
<form id="export_form" method="post" target="exportwindow" action="/admin/users/search/export/">
<input name="srt" value="{{parm['srt']}}" type="hidden" />
<input name="ord" value="{{parm.ord}}" type="hidden" />
{% for sbas_id in parm.sbas_id %}
<input name="sbas_id[]" value="{{sbas_id}}" type="hidden" />
{% endfor %}
{% for base_id in parm.base_id %}
<input name="base_id[]" value="{{base_id}}" type="hidden" />
{% endfor %}
{% if parm['usr_ids'] is defined %}
<input name="usr_ids" value="{{parm.usr_ids}}" type="hidden" />
{% endif %}
<input name="like_value" value="{{parm.like_value}}" type="hidden" />
<input name="like_field" value="{{parm.like_field}}" type="hidden" />
<input name="inactives" value="{{parm.inactives}}" type="hidden" />
</form>
<form id="users_page_form" method="post" target="_self" action="/admin/users/search/">
<p>
<span>{{users.get_total}} resultats,</span>
{% set pages = users.get_total() / parm['per_page'] %}
{% set modulo = users.get_total() % parm['per_page'] %}
{% if modulo > 0 %}{% set pages = pages + 1 %}{% endif %}
<span>{{pages|floor}} pages</span>
{% if users.get_page > 2 %}
<button class="pager first btn"><<</button>
{% endif %}
{% if users.get_page > 1 %}
<button class="pager prev btn"><</button>
{% endif %}
<input type="text" value="{{users.get_page}}" class="input-mini"/>
{% if users.get_page < pages -1 %}
<button class="pager next btn">></button>
{% endif %}
{% if users.get_page < pages - 2 %}
<button class="pager last btn">>></button>
{% endif %}
<select name="per_page" class="input-medium">
{% set n_par_page = 10 %}
<option value="10" {% if parm['per_page'] == 10%}selected="selected"{% endif %}>{% trans %}{{n_par_page}} par page {% endtrans %}</option>
{% set n_par_page = 20 %}
<option value="20" {% if parm['per_page'] == 20%}selected="selected"{% endif %}>{% trans %}{{n_par_page}} par page {% endtrans %}</option>
{% set n_par_page = 50 %}
<option value="50" {% if parm['per_page'] == 50%}selected="selected"{% endif %}>{% trans %}{{n_par_page}} par page {% endtrans %}</option>
</select>
<button class="user_modifier btn">{% trans 'boutton::modifier' %}</button>
<button class="user_deleter btn">{% trans 'Supprimer' %}</button>
<input type="hidden" name="total_results" value="{{users.get_total()}}"/>
<input type="hidden" name="page" value="{{users.get_page()}}"/>
<input name="srt" value="{{parm['srt']}}" type="hidden" />
<input name="ord" value="{{parm.ord}}" type="hidden" />
{% if parm['act'] is defined %}
<input name="act" value="{{parm.act}}" type="hidden" />
{% endif %}
{% for sbas_id in parm.sbas_id %}
<input name="sbas_id[]" value="{{sbas_id}}" type="hidden" />
{% endfor %}
{% for base_id in parm.base_id %}
<input name="base_id[]" value="{{base_id}}" type="hidden" />
{% endfor %}
{% if parm['usr_ids'] is defined %}
<input name="usr_ids" value="{{parm.usr_ids}}" type="hidden" />
{% endif %}
<input name="like_value" value="{{parm.like_value}}" type="hidden" />
<input name="like_field" value="{{parm.like_field}}" type="hidden" />
<input name="inactives" value="{{parm.inactives}}" type="hidden" />
<input name="offset_start" value="{{parm.offset_start}}" type="hidden" />
</p>
</form>
<form target="_blank" method="post" action="/admin/users/export/csv/">
{% if parm.base_id is not empty %}
{% for base_id in parm.base_id %}
<input name="base_id[]" value="{{base_id}}" type="hidden" />
{% endfor %}
{% endif %}
{% if parm.sbas_id is not empty %}
{% for sbas_id in parm.sbas_id %}
<input name="sbas_id[]" value="{{sbas_id}}" type="hidden" />
{% endfor %}
{% endif %}
<input name="like_value" value="{{parm.like_value}}" type="hidden" />
<input name="like_field" value="{{parm.like_field}}" type="hidden" />
<button class="btn btn-warning">{% trans 'boutton::exporter' %}</button>
</form>
<script type="text/javascript">
$(document).ready(function(){
$.each(p4.users.sel, function(i,n){
var el = $('#user_'+n);
if(el.length > 0)
{
el.addClass('selected');
}
});
$('#users_page_form select[name="per_page"]').bind('change', function(){
$(this).closest('form').submit();
});
$('#users_reset_rights button').bind('click', function(){
var selectedUsers = $("#users tr.selected");
if(selectedUsers.length === 0)
{
alert("{% trans 'select at least one user' %}");
return;
}
var users = '';
$.each(selectedUsers, function(i,n){
users += $(n).attr("id").split("_").pop() + ';';
});
if(confirm("{% trans 'are you sure you want reset rights ?' %}"))
{
$("#users_reset_rights input[name='users']").val(users);
var form = $(this).closest('form');
$.ajax({
url: form.attr("action"),
dataType: 'json',
type : form.attr('method'),
data: form.serializeArray(),
success: function(data){
if(data.error)
{
alert("{% trans 'An error occured' %}");
}
else
{
alert("{% trans 'users rights have been reseted' %}");
}
}
});
}
});
});
function exportlist()
{
$('#export_form').submit();
}
</script>
</div>
{% endblock %}