mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-23 18:03:17 +00:00
Merge remote-tracking branch 'upstream/master' into 20150306-elastic-indexer
Conflicts: bin/console bower.json composer.json composer.lock lib/Alchemy/Phrasea/Application.php lib/Alchemy/Phrasea/Border/Manager.php lib/Alchemy/Phrasea/Controller/Api/V1.php lib/Alchemy/Phrasea/Core/PhraseaEvents.php lib/Alchemy/Phrasea/SearchEngine/SearchEngineOptions.php lib/classes/caption/field.php lib/classes/record/Interface.php templates/web/prod/index.html.twig www/skins/prod/000000/prodcolor.css
This commit is contained in:
@@ -213,31 +213,6 @@
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
{# Bandeau de présentation #}
|
||||
<div class="well well-small action-block">
|
||||
<h5>{{ 'admin::base:collection: image de presentation :' | trans }}</h5>
|
||||
{% if collection.getPresentation(bas_id) is not empty %}
|
||||
<div class="thumbnail" style="width:650px;height:200px">{{ collection.getPresentation(bas_id)| raw }}</div>
|
||||
{% if app['acl'].get(app['authentication'].getUser()).has_right_on_base(bas_id, 'manage') %}
|
||||
<form method="post" action="{{ path('admin_collection_delete_banner', { 'bas_id' : bas_id }) }}" style="margin:0;">
|
||||
<button class="btn btn-danger btn-mini">
|
||||
<i class="icon-trash icon-white"></i>
|
||||
{{ 'boutton::supprimer' | trans }}
|
||||
</button>
|
||||
</form>
|
||||
{% endif%}
|
||||
{% elseif app['acl'].get(app['authentication'].getUser()).has_right_on_base(bas_id, 'manage') %}
|
||||
<span>{{ 'admin::base:collection: aucun fichier (minilogo, watermark ...)' | trans }}</span>
|
||||
<form class="fileupload no-ajax" enctype="multipart/form-data" method="post" action="{{ path('admin_collection_submit_banner', { 'bas_id' : bas_id }) }}" style="margin:0;">
|
||||
<span class="btn btn-success fileinput-button">
|
||||
<i class="icon-plus icon-white"></i>
|
||||
<span>{% trans %}Select files...{% endtrans %}</span>
|
||||
<input name="newBanner" type="file" accept="image/*" />
|
||||
</span>
|
||||
</form>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
{# Invalid file type modal shown when uploaded logo file is invalid #}
|
||||
<div id="invalid-modal" class="modal hide fade">
|
||||
<div class="modal-header">
|
||||
|
@@ -427,23 +427,24 @@ function desactiv4VS()
|
||||
|
||||
if( o2.length > 0 )
|
||||
{
|
||||
var optionLength = o2.find("options").length;
|
||||
if ( optionLength > 1) {
|
||||
var optionLength = o2.find("option").length;
|
||||
var index = o2.prop("selectedIndex");
|
||||
|
||||
if ((o2.prop("selectedIndex")+1) != optionLength) {
|
||||
if ( optionLength > 1) {
|
||||
if ((index+1) == optionLength) {
|
||||
activer_bout('bout_desc',false);
|
||||
} else {
|
||||
activer_bout('bout_desc',true);
|
||||
}
|
||||
|
||||
if (o2.prop("selectedIndex")!=0 && optionLength>1) {
|
||||
if (index == 0 && optionLength>1) {
|
||||
activer_bout('bout_mont',false);
|
||||
} else {
|
||||
activer_bout('bout_mont',true);
|
||||
}
|
||||
} else {
|
||||
activer_bout('bout_desc',true);
|
||||
activer_bout('bout_mont',true);
|
||||
activer_bout('bout_desc',false);
|
||||
activer_bout('bout_mont',false);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -461,7 +462,7 @@ function activ4VS()
|
||||
}
|
||||
|
||||
desactiv4VS();
|
||||
activer_bout('bout_supp',false);
|
||||
activer_bout('bout_supp',true);
|
||||
}
|
||||
|
||||
// supprime une valsug
|
||||
@@ -516,7 +517,7 @@ function supprimer()
|
||||
}
|
||||
|
||||
if(o2.prop("selectedIndex")<0) {
|
||||
activer_bout('bout_supp',true);
|
||||
activer_bout('bout_supp',false);
|
||||
}
|
||||
|
||||
desactiv4VS();
|
||||
@@ -766,7 +767,11 @@ function activer_bout(idBout,val)
|
||||
o = $("#"+idBout);
|
||||
|
||||
if( o.length > 0 ) {
|
||||
o.attr("disabled", val);
|
||||
if (!val) {
|
||||
o.attr("disabled", true);
|
||||
} else {
|
||||
o.removeAttr("disabled");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -1,36 +1,36 @@
|
||||
{% macro tooltip_connected_users(row) %}
|
||||
|
||||
{% set user = row.getUser() %}
|
||||
<span id="tooltip-usr">
|
||||
<table id="tabledescexp" cellpadding="0" cellspacing="0">
|
||||
<span id='tooltip-usr'>
|
||||
<table id='tabledescexp' cellpadding='0' cellspacing='0'>
|
||||
<tr>
|
||||
<td class="tooltip-title" colspan="2" valign="center" >usr_id : {{ user.getId() }}</td>
|
||||
<td class='tooltip-title' colspan='2' valign='center' >usr_id : {{ user.getId() }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2" style="height: 10px;"></td>
|
||||
<td colspan='2' style='height: 10px;'></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2"><strong>{{ 'admin::compte-utilisateur nom' | trans }} : </strong>{{ user.getDisplayName() }}</td>
|
||||
<td colspan='2'><strong>{{ 'admin::compte-utilisateur nom' | trans }} : </strong>{{ user.getDisplayName() }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2"><strong>{{ 'admin::compte-utilisateur societe' | trans }} : </strong>{{ user.getCompany() }}</td>
|
||||
<td colspan='2'><strong>{{ 'admin::compte-utilisateur societe' | trans }} : </strong>{{ user.getCompany() }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2"><strong>{{ 'admin::compte-utilisateur telephone' | trans }} : </strong>{{ user.getPhone() }}</td>
|
||||
<td colspan='2'><strong>{{ 'admin::compte-utilisateur telephone' | trans }} : </strong>{{ user.getPhone() }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2"><strong>{{ 'admin::compte-utilisateur email' | trans }} : </strong>{{ user.getEmail() }}</td>
|
||||
<td colspan='2'><strong>{{ 'admin::compte-utilisateur email' | trans }} : </strong>{{ user.getEmail() }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2"><strong>{{ 'admin::monitor: bases sur lesquelles l\'utilisateur est connecte :' | trans }} :</strong></td>
|
||||
<td colspan='2'><strong>{{ 'admin::monitor: bases sur lesquelles l\'utilisateur est connecte :' | trans }} :</strong></td>
|
||||
</tr>
|
||||
{% for databox in app['acl'].get(user).get_granted_sbas() %}
|
||||
<tr>
|
||||
<td colspan="2" style="overflow:hidden;" >{{ databox.get_label(app['locale']) }}</td>
|
||||
<td colspan='2' style='overflow:hidden;' >{{ databox.get_label(app['locale']) }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
<tr>
|
||||
<td colspan="2" valign="center" >
|
||||
<td colspan='2' valign='center' >
|
||||
<strong>{{ row.getPlatform() }} / {{ row.getBrowserName() }} - {{ row.getBrowserVersion() }}</strong><br/>
|
||||
{% if row.getToken() %}
|
||||
{{ 'Session persistente' | trans }}
|
||||
@@ -39,7 +39,6 @@
|
||||
</tr>
|
||||
</table>
|
||||
</span>
|
||||
|
||||
{% endmacro %}
|
||||
|
||||
<div class="tableTitle">{{ 'admin::utilisateurs: utilisateurs connectes' | trans }}</div>
|
||||
@@ -70,10 +69,6 @@
|
||||
<td class="colTitle" >{{ 'admin::monitor: module comparateur' | trans }}</td>
|
||||
<td class="colValue" >{{ data['applications'][6] }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="colTitle" >{{ 'admin::monitor: module validation' | trans }}</td>
|
||||
<td class="colValue" >{{ data['applications'][7] }}</td>
|
||||
</tr>
|
||||
{% if data['applications'][0] != 0 %}
|
||||
<tr>
|
||||
<td class="colTitle" >{{ 'admin::monitor: total des utilisateurs uniques :' | trans }}</td>
|
||||
@@ -99,7 +94,7 @@
|
||||
<tbody>
|
||||
{% for session in data['sessions'] %}
|
||||
{% set row = session['session'] %}
|
||||
<tr title="{{ _self.tooltip_connected_users(row) | e }}" class="{% if loop.index is odd %}odd{% else %}even{% endif %} usrTips" id="TREXP_{{ row.getId()}}">
|
||||
<tr title="{{ _self.tooltip_connected_users(row) | raw }}" class="{% if loop.index is odd %}odd{% else %}even{% endif %} usrTips" id="TREXP_{{ row.getId()}}">
|
||||
|
||||
{% if row.getId() == app['session'].get('session_id') %}
|
||||
<td style="color:#ff0000"><i>{{ row.getUser().getDisplayName() }}</i></td>
|
||||
@@ -126,7 +121,11 @@
|
||||
<script type="text/javascript">
|
||||
$(document).ready(
|
||||
function(){
|
||||
$('.usrTips').tooltip();
|
||||
$('.usrTips').tooltip({
|
||||
content: function() {
|
||||
return $( this ).attr( "title" );
|
||||
}
|
||||
});
|
||||
}
|
||||
);
|
||||
</script>
|
||||
|
@@ -559,56 +559,557 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript" language="javascript" src="{{ path('minifier', { 'f' : 'assets/geonames-server-jquery-plugin/jquery.geonames.js,scripts/common/geonames.js' }) }}"></script>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function(){
|
||||
ini_edit_usrs();
|
||||
|
||||
geonames.init($('#user_infos_tab input.geoname_field'), {
|
||||
"server": "{{ app['geonames.server-uri'] }}",
|
||||
"limit": 40
|
||||
});
|
||||
$(document).ready(function() {
|
||||
|
||||
$('div.tabs').tabs();
|
||||
function ini_edit_usrs() {
|
||||
$('.users_col.options').bind('click', function (event) {
|
||||
$('#users_check_uncheck').remove();
|
||||
event.stopPropagation();
|
||||
event.preventDefault();
|
||||
check_uncheck_menu($('input[name="right"]', $(this)).val(), $('input[name="sbas_id"]', $(this)).val(), $(this));
|
||||
return false;
|
||||
});
|
||||
|
||||
$('#users_rights_form button#reset_rights').bind('click', function(){
|
||||
if(confirm("{{ 'Are you sure you want to reset rights?' | trans }}"))
|
||||
{
|
||||
var users = $('#users_rights_form input[name="users"]').val();
|
||||
$(document).unbind('click.usersoptions').bind('click.usersoptions', function (event) {
|
||||
$('#users_check_uncheck').remove();
|
||||
});
|
||||
|
||||
$('table.hoverable tr').hover(
|
||||
function () {
|
||||
$(this).addClass('hovered');
|
||||
},
|
||||
function () {
|
||||
$(this).removeClass('hovered');
|
||||
}
|
||||
);
|
||||
|
||||
$('table.hoverable td').hover(
|
||||
function () {
|
||||
var attr = $('input:first', this).attr('name');
|
||||
var right = attr ? attr.split('_').shift() : false;
|
||||
if (right)
|
||||
$('td.case_right_' + right).addClass('hovered');
|
||||
},
|
||||
function () {
|
||||
var attr = $('input:first', this).attr('name');
|
||||
var right = attr ? attr.split('_').shift() : false;
|
||||
if (right)
|
||||
$('td.hovered').removeClass('hovered');
|
||||
}
|
||||
);
|
||||
|
||||
function user_click_box(event, element, status) {
|
||||
var newclass, newvalue, boxes;
|
||||
|
||||
var $element = $(element);
|
||||
|
||||
if ($element.hasClass('right_access')) {
|
||||
var base_id = $element.find('input').attr('name').split('_').pop();
|
||||
boxes = $('div.base_' + base_id + ':not(:first)');
|
||||
}
|
||||
|
||||
if ((typeof status !== 'undefined' && status == 'checked') || (typeof status === 'undefined' && (($element.hasClass('mixed') === true) || ($element.hasClass('unchecked') === true)))) {
|
||||
newclass = 'checked';
|
||||
newvalue = '1';
|
||||
|
||||
if (boxes)
|
||||
boxes.show();
|
||||
}
|
||||
else {
|
||||
newclass = 'unchecked';
|
||||
newvalue = '0';
|
||||
|
||||
if (boxes)
|
||||
boxes.hide();
|
||||
}
|
||||
|
||||
$element.find('input').val(newvalue);
|
||||
$element.removeClass('mixed checked unchecked').addClass(newclass);
|
||||
}
|
||||
|
||||
$('#users_rights_form div.switch_right').bind('click', function (event) {
|
||||
user_click_box(event, $(this));
|
||||
});
|
||||
$('#right-ajax button.users_rights_valid').bind('click', function () {
|
||||
var datas = {
|
||||
users: $('#users_rights_form input[name="users"]').val(),
|
||||
values: $('#users_rights_form').serialize(),
|
||||
template: $('#users_rights_form select[name="template"]').val(),
|
||||
user_infos: $('#user_infos_form').serialize()
|
||||
};
|
||||
|
||||
var callback = function (reset_before_apply) {
|
||||
datas.reset_before_apply = reset_before_apply;
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
url: '../admin/users/rights/apply/',
|
||||
dataType: 'json',
|
||||
data: datas,
|
||||
success: function (data) {
|
||||
if (!data.error)
|
||||
$('a.zone_editusers').trigger('click');
|
||||
else
|
||||
alert(data.message);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
if (datas.template !== '') {
|
||||
dialogUserTemplate(callback);
|
||||
} else {
|
||||
callback('0');
|
||||
}
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
$('#right-ajax .users_rights_cancel').bind('click', function () {
|
||||
var $this = $(this);
|
||||
$('#right-ajax').empty().addClass('loading').parent().show();
|
||||
$('#right').hide();
|
||||
$.get($this.attr('href'), function (data) {
|
||||
$('#right-ajax').removeClass('loading').html(data);
|
||||
});
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
var time_buttons = {
|
||||
'Ok': function () {
|
||||
save_time();
|
||||
},
|
||||
'Cancel': function () {
|
||||
$('#time_dialog').dialog('close');
|
||||
}
|
||||
};
|
||||
$('#time_dialog').dialog({
|
||||
resizable: false,
|
||||
autoOpen: false,
|
||||
draggable: false,
|
||||
buttons: time_buttons,
|
||||
modal: true
|
||||
});
|
||||
var quota_buttons = {
|
||||
'Ok': function () {
|
||||
save_quotas();
|
||||
},
|
||||
'Cancel': function () {
|
||||
$('#quotas_dialog').dialog('close');
|
||||
}
|
||||
};
|
||||
$('#quotas_dialog').dialog({
|
||||
resizable: false,
|
||||
autoOpen: false,
|
||||
draggable: false,
|
||||
buttons: quota_buttons,
|
||||
modal: true
|
||||
});
|
||||
|
||||
var masks_buttons = {
|
||||
'Ok': function () {
|
||||
save_masks();
|
||||
},
|
||||
'Cancel': function () {
|
||||
$('#masks_dialog').dialog('close');
|
||||
}
|
||||
};
|
||||
$('#masks_dialog').dialog({
|
||||
resizable: false,
|
||||
autoOpen: false,
|
||||
draggable: false,
|
||||
buttons: masks_buttons,
|
||||
width: 900,
|
||||
height: 300,
|
||||
modal: true
|
||||
});
|
||||
$('#users_rights_form .time_trigger').bind('click', function () {
|
||||
var base_id = $(this).find('input[name="time_base_id"]').val();
|
||||
if ('undefined' !== typeof base_id) {
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
url: '../admin/users/rights/time/',
|
||||
data: {
|
||||
users: $('#users_rights_form input[name="users"]').val(),
|
||||
base_id: base_id
|
||||
},
|
||||
success: function (data) {
|
||||
var dialog = $('#time_dialog');
|
||||
|
||||
if (dialog.data("ui-dialog")) {
|
||||
dialog.html(data).dialog('open');
|
||||
}
|
||||
|
||||
$('div.switch_time', dialog).bind('click', function (event) {
|
||||
var newclass, boxes;
|
||||
|
||||
boxes = $(this).closest('form').find('input.datepicker');
|
||||
|
||||
if (($(this).hasClass('mixed') === true) || ($(this).hasClass('unchecked') === true)) {
|
||||
newclass = 'checked';
|
||||
boxes.removeAttr('readonly');
|
||||
}
|
||||
else {
|
||||
newclass = 'unchecked';
|
||||
boxes.attr('readonly', 'readonly');
|
||||
}
|
||||
|
||||
$(this).removeClass('mixed checked unchecked').addClass(newclass);
|
||||
});
|
||||
}
|
||||
});
|
||||
} else {
|
||||
var sbas_id = $(this).find('input[name="time_sbas_id"]').val();
|
||||
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
url: '/admin/users/rights/reset/',
|
||||
dataType:'json',
|
||||
url: '../admin/users/rights/time/sbas/',
|
||||
data: {
|
||||
users : users
|
||||
users: $('#users_rights_form input[name="users"]').val(),
|
||||
sbas_id: sbas_id
|
||||
},
|
||||
success: function(data){
|
||||
if(!data.error) {
|
||||
if(users === '') {
|
||||
return false;
|
||||
success: function (data) {
|
||||
var dialog = $('#time_dialog');
|
||||
|
||||
dialog.html(data);
|
||||
dialog.dialog('open');
|
||||
|
||||
$('div.switch_time', dialog).bind('click', function (event) {
|
||||
var newclass, boxes;
|
||||
|
||||
boxes = $(this).closest('form').find('input.datepicker');
|
||||
|
||||
if (($(this).hasClass('mixed') === true) || ($(this).hasClass('unchecked') === true)) {
|
||||
newclass = 'checked';
|
||||
boxes.removeAttr('readonly');
|
||||
}
|
||||
else {
|
||||
newclass = 'unchecked';
|
||||
boxes.attr('readonly', 'readonly');
|
||||
}
|
||||
|
||||
$('#right-ajax').empty().addClass('loading');
|
||||
p4.users.sel = [];
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: '/admin/users/rights/',
|
||||
data: {
|
||||
users : users
|
||||
},
|
||||
success: function(data){
|
||||
$('#right-ajax').removeClass('loading').html(data);
|
||||
}
|
||||
});
|
||||
|
||||
return false;
|
||||
} else {
|
||||
alert(data.message);
|
||||
}
|
||||
$(this).removeClass('mixed checked unchecked').addClass(newclass);
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
$('#users_rights_form .quota_trigger').bind('click', function () {
|
||||
var base_id = $(this).find('input[name="quota_base_id"]').val();
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
url: '../admin/users/rights/quotas/',
|
||||
data: {
|
||||
users: $('#users_rights_form input[name="users"]').val(),
|
||||
base_id: base_id
|
||||
},
|
||||
success: function (data) {
|
||||
var dialog = $('#quotas_dialog');
|
||||
|
||||
if (dialog.data("ui-dialog")) {
|
||||
dialog.html(data).dialog('open');
|
||||
}
|
||||
|
||||
$('div.switch_quota', dialog).bind('click', function (event) {
|
||||
var newclass, boxes;
|
||||
|
||||
boxes = $(this).closest('form').find('input:text');
|
||||
|
||||
if (($(this).hasClass('mixed') === true) || ($(this).hasClass('unchecked') === true)) {
|
||||
newclass = 'checked';
|
||||
boxes.removeAttr('readonly');
|
||||
}
|
||||
else {
|
||||
newclass = 'unchecked';
|
||||
boxes.attr('readonly', 'readonly');
|
||||
}
|
||||
|
||||
$(this).removeClass('mixed checked unchecked').addClass(newclass);
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
$('#users_rights_form .masks_trigger').bind('click', function () {
|
||||
var base_id = $(this).find('input[name="masks_base_id"]').val();
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
url: '../admin/users/rights/masks/',
|
||||
data: {
|
||||
users: $('#users_rights_form input[name="users"]').val(),
|
||||
base_id: base_id
|
||||
},
|
||||
success: function (data) {
|
||||
$('#masks_dialog').html(data).dialog('open');
|
||||
|
||||
$('.switch_masks').bind('click', function () {
|
||||
var currentclass, newclass;
|
||||
|
||||
var bit = $(this).find('input[name="bit"]').val();
|
||||
currentclass = 'unchecked';
|
||||
if ($(this).hasClass('mixed')) {
|
||||
currentclass = 'mixed';
|
||||
}
|
||||
if ($(this).hasClass('checked')) {
|
||||
currentclass = 'checked';
|
||||
}
|
||||
switch (currentclass) {
|
||||
case 'mixed':
|
||||
default:
|
||||
$('.bitnum_' + bit).removeClass('mixed checked unchecked').addClass('checked')
|
||||
break;
|
||||
case 'unchecked':
|
||||
$(this).removeClass('mixed checked unchecked').addClass('checked')
|
||||
break;
|
||||
case 'checked':
|
||||
if ($('.checked.bitnum_' + bit).length == 2) {
|
||||
$(this).removeClass('mixed checked unchecked').addClass('unchecked')
|
||||
}
|
||||
else {
|
||||
alert("admin::user:mask: vous devez cocher au moins une case pour chaque status");
|
||||
return;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
var left = $('.bitnum_' + bit + '.bit_left');
|
||||
var right = $('.bitnum_' + bit + '.bit_right');
|
||||
|
||||
var maskform = $('#masks_dialog form');
|
||||
var vand_and = $('input[name="vand_and"]', maskform);
|
||||
var vand_or = $('input[name="vand_or"]', maskform);
|
||||
var vxor_and = $('input[name="vxor_and"]', maskform);
|
||||
var vxor_or = $('input[name="vxor_or"]', maskform);
|
||||
|
||||
var newbit_vand_and = newbit_vand_or = newbit_vxor_and = newbit_vxor_or = 0;
|
||||
|
||||
if (left.length === 1 && right.length === 1) {
|
||||
if (left.hasClass('checked') && right.hasClass('unchecked')) {
|
||||
newbit_vand_and = "1";
|
||||
newbit_vand_or = "1";
|
||||
}
|
||||
else if (left.hasClass('unchecked') && right.hasClass('checked')) {
|
||||
newbit_vand_and = "1";
|
||||
newbit_vand_or = "1";
|
||||
newbit_vxor_and = "1";
|
||||
newbit_vxor_or = "1";
|
||||
}
|
||||
vand_and.val(vand_and.val().substr(0, 31 - bit) + newbit_vand_and + vand_and.val().substr(31 + 1 - bit));
|
||||
vand_or.val(vand_or.val().substr(0, 31 - bit) + newbit_vand_or + vand_or.val().substr(31 + 1 - bit));
|
||||
vxor_and.val(vxor_and.val().substr(0, 31 - bit) + newbit_vxor_and + vxor_and.val().substr(31 + 1 - bit));
|
||||
vxor_or.val(vxor_or.val().substr(0, 31 - bit) + newbit_vxor_or + vxor_and.val().substr(31 + 1 - bit));
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
function save_masks() {
|
||||
var cont = $('#masks_dialog');
|
||||
|
||||
var maskform = $('#masks_dialog form');
|
||||
var base_id = $('input[name="base_id"]', maskform).val();
|
||||
var users = $('input[name="users"]', maskform).val();
|
||||
var vand_and = $('input[name="vand_and"]', maskform).val();
|
||||
var vand_or = $('input[name="vand_or"]', maskform).val();
|
||||
var vxor_and = $('input[name="vxor_and"]', maskform).val();
|
||||
var vxor_or = $('input[name="vxor_or"]', maskform).val();
|
||||
|
||||
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
url: '../admin/users/rights/masks/apply/',
|
||||
data: {
|
||||
users: users,
|
||||
base_id: base_id,
|
||||
vand_and: vand_and,
|
||||
vand_or: vand_or,
|
||||
vxor_and: vxor_and,
|
||||
vxor_or: vxor_or
|
||||
},
|
||||
success: function (data) {
|
||||
$('#masks_dialog').dialog('close');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
function save_quotas() {
|
||||
var cont = $('#quotas_dialog');
|
||||
var base_id = $('input[name="base_id"]', cont).val();
|
||||
var users = $('input[name="users"]', cont).val();
|
||||
var droits = $('input[name="droits"]', cont).val();
|
||||
var restes = $('input[name="restes"]', cont).val();
|
||||
|
||||
var switch_quota = $('.switch_quota', cont);
|
||||
|
||||
if (switch_quota.hasClass('mixed'))
|
||||
return;
|
||||
|
||||
var quota = 0;
|
||||
|
||||
if (switch_quota.hasClass('checked'))
|
||||
quota = 1;
|
||||
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
url: '../admin/users/rights/quotas/apply/',
|
||||
data: {
|
||||
act: "APPLYQUOTAS",
|
||||
users: users,
|
||||
base_id: base_id,
|
||||
quota: quota,
|
||||
droits: droits,
|
||||
restes: restes
|
||||
},
|
||||
success: function (data) {
|
||||
$('#quotas_dialog').dialog('close');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function save_time() {
|
||||
var cont = $('#time_dialog');
|
||||
var dmin = $('input[name="dmin"]', cont).val();
|
||||
var dmax = $('input[name="dmax"]', cont).val();
|
||||
var users = $('input[name="users"]', cont).val();
|
||||
var base_id = $('input[name="base_id"]', cont).val();
|
||||
var sbas_id = $('input[name="sbas_id"]', cont).val();
|
||||
|
||||
var switch_time = $('.switch_time', cont);
|
||||
|
||||
if (switch_time.hasClass('mixed'))
|
||||
return;
|
||||
|
||||
var limit = 0;
|
||||
|
||||
if (switch_time.hasClass('checked'))
|
||||
limit = 1;
|
||||
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
url: '../admin/users/rights/time/apply/',
|
||||
data: {
|
||||
users: users,
|
||||
base_id: base_id,
|
||||
sbas_id: sbas_id,
|
||||
limit: limit,
|
||||
dmin: dmin,
|
||||
dmax: dmax
|
||||
},
|
||||
success: function (data) {
|
||||
$('#time_dialog').dialog('close');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function check_uncheck_menu(right, sbas_id, el) {
|
||||
var top = el.offset().top;
|
||||
var left = el.offset().left + 16;
|
||||
$('body').append('<div id="users_check_uncheck" style="position:absolute;top:' + top + 'px;left:' + left + 'px;">' +
|
||||
'<div class="checker" >' +
|
||||
language.check_all +
|
||||
'<input type="hidden" name="sbas_id" value="' + sbas_id + '"/>' +
|
||||
'<input type="hidden" name="right" value="' + right + '"/>' +
|
||||
'</div>' +
|
||||
'<div class="unchecker">' +
|
||||
language.uncheck_all +
|
||||
'<input type="hidden" name="sbas_id" value="' + sbas_id + '"/>' +
|
||||
'<input type="hidden" name="right" value="' + right + '"/>' +
|
||||
'</div></div>');
|
||||
|
||||
$('#users_check_uncheck div').hover(
|
||||
function () {
|
||||
$(this).addClass('hovered');
|
||||
},
|
||||
function () {
|
||||
$(this).removeClass('hovered');
|
||||
}
|
||||
);
|
||||
$('#users_check_uncheck div.checker').bind('click', function (event) {
|
||||
event.stopPropagation();
|
||||
event.preventDefault();
|
||||
users_check(true, $('input[name="sbas_id"]', $(this)).val(), $('input[name="right"]', $(this)).val());
|
||||
$('#users_check_uncheck').remove();
|
||||
});
|
||||
$('#users_check_uncheck div.unchecker').bind('click', function (event) {
|
||||
event.stopPropagation();
|
||||
event.preventDefault();
|
||||
users_check(false, $('input[name="sbas_id"]', $(this)).val(), $('input[name="right"]', $(this)).val());
|
||||
$('#users_check_uncheck').remove();
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
function users_check(bool, sbas_id, right) {
|
||||
var newclass;
|
||||
if (bool) {
|
||||
newclass = "checked";
|
||||
}
|
||||
else {
|
||||
newclass = "unchecked";
|
||||
}
|
||||
$('.inside_sbas_' + sbas_id + '.' + right + ':visible').each(function (i, n) {
|
||||
user_click_box(null, $(n), newclass);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
ini_edit_usrs();
|
||||
|
||||
$('div.tabs').tabs();
|
||||
|
||||
$('#users_rights_form button#reset_rights').bind('click', function () {
|
||||
if (confirm("{{ 'Are you sure you want to reset rights?' | trans }}")) {
|
||||
var users = $('#users_rights_form input[name="users"]').val();
|
||||
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
url: '/admin/users/rights/reset/',
|
||||
dataType: 'json',
|
||||
data: {
|
||||
users: users
|
||||
},
|
||||
success: function (data) {
|
||||
if (!data.error) {
|
||||
if (users === '') {
|
||||
return false;
|
||||
}
|
||||
|
||||
$('#right-ajax').empty().addClass('loading');
|
||||
p4.users.sel = [];
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: '/admin/users/rights/',
|
||||
data: {
|
||||
users: users
|
||||
},
|
||||
success: function (data) {
|
||||
$('#right-ajax').removeClass('loading').html(data);
|
||||
}
|
||||
});
|
||||
|
||||
return false;
|
||||
} else {
|
||||
alert(data.message);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
define([
|
||||
"jquery",
|
||||
"common/geonames"
|
||||
], function ($, geonames) {
|
||||
geonames.init($('#user_infos_tab input.geoname_field'), {
|
||||
"server": "{{ app['geonames.server-uri'] }}",
|
||||
"limit": 40
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
|
@@ -96,7 +96,7 @@
|
||||
</ul>
|
||||
</ul>
|
||||
<% _.each(field.labels, function(value, code) { %>
|
||||
<input type="text" value="<%= value %>" id="label_<%= code %>" class="input-block-level input-label" <%= code === 'fr' ? '' : 'style="display:none"'%> >
|
||||
<input type="text" value="<%= value %>" id="label_<%= code %>" class="input-block-level input-label" <%= code === lng ? '' : 'style="display:none"'%> >
|
||||
<% }); %>
|
||||
</td>
|
||||
</tr>
|
||||
|
@@ -15,7 +15,7 @@
|
||||
{% block javascript %}
|
||||
{% include "common/templates.html.twig" %}
|
||||
{# note: Tinymce must be include here without minify else URL resolution for tinymce plugins will fail #}
|
||||
<script type="text/javascript" src="/assets/tinymce/tinymce.js"></script>
|
||||
<script type="text/javascript" src="/assets/tinymce/tinymce.min.js"></script>
|
||||
<script type="text/javascript" src="{{ path('minifier', { 'g' : 'admin' }) }}"></script>
|
||||
<script type="text/javascript">
|
||||
var p4 = p4 || {};
|
||||
@@ -81,7 +81,7 @@
|
||||
<div id="quotas_dialog"></div>
|
||||
<div id="masks_dialog"></div>
|
||||
<div id="time_dialog"></div>
|
||||
<div id="user_add_dialog" title="{{ 'Ajouter un nouvel utilisateur' | trans }}">
|
||||
<div id="user_add_dialog" title="{{ 'Ajouter un nouvel utilisateur' | trans }}" style="display:none">
|
||||
<form>
|
||||
<label for="new_user_mail">{{ 'Adresse email du nouvel utilisateur' | trans }}</label>
|
||||
<input id="new_user_mail" type="text" name="value" />
|
||||
|
@@ -42,12 +42,12 @@
|
||||
{% set statusbit = statusStructure.getStatus(bit) %}
|
||||
<td>
|
||||
{% if statusbit['img_off'] %}
|
||||
<img title='{{ statusbit['labels_off_i18n'][app['locale']] }}' src='{{ statusbit['img_off'] }}' />
|
||||
<img class="status-img" title='{{ statusbit['labels_off_i18n'][app['locale']] }}' src='{{ statusbit['img_off'] }}' />
|
||||
{% endif %}
|
||||
{{ statusbit['labels_off_i18n'][app['locale']] }}
|
||||
/
|
||||
{% if statusbit['img_on'] %}
|
||||
<img title='{{ statusbit['labels_on_i18n'][app['locale']] }}' src='{{ statusbit['img_on'] }}' />
|
||||
<img class="status-img" title='{{ statusbit['labels_on_i18n'][app['locale']] }}' src='{{ statusbit['img_on'] }}' />
|
||||
{% endif %}
|
||||
{{ statusbit['labels_on_i18n'][app['locale']] }}
|
||||
</td>
|
||||
|
@@ -53,7 +53,7 @@
|
||||
<span class="btn btn-success fileinput-button pull-left">
|
||||
<i class="icon-plus icon-white"></i>
|
||||
<span>{% trans %}Select files...{% endtrans %}</span>
|
||||
<input type="file" name="image_off" accept="image/*"/>
|
||||
<input type="file" name="image_off" accept="image/jpg, image/png"/>
|
||||
</span>
|
||||
<div class='thumbnail pull-left' style='height:20px;width:20px;margin-left:10px;'>
|
||||
{% if status['img_off'] is defined and status['img_off'] %}
|
||||
@@ -117,7 +117,7 @@
|
||||
<span class="btn btn-success fileinput-button pull-left">
|
||||
<i class="icon-plus icon-white"></i>
|
||||
<span>{% trans %}Select files...{% endtrans %}</span>
|
||||
<input type="file" name="image_on" accept="image/*"/>
|
||||
<input type="file" name="image_on" accept="image/jpg, image/png"/>
|
||||
</span>
|
||||
<div class='thumbnail pull-left' style='height:20px;width:20px;margin-left:10px'>
|
||||
{% if status['img_on'] is defined and status['img_on'] %}
|
||||
|
@@ -250,58 +250,405 @@
|
||||
</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("{{ 'select at least one user' | trans }}");
|
||||
return;
|
||||
}
|
||||
|
||||
var users = '';
|
||||
$.each(selectedUsers, function(i,n){
|
||||
users += $(n).attr("id").split("_").pop() + ';';
|
||||
});
|
||||
|
||||
if(confirm("{{ 'Are you sure you want delete users rights ?' | trans }}"))
|
||||
{
|
||||
$("#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("{{ 'An error occured' | trans }}");
|
||||
}
|
||||
else
|
||||
{
|
||||
alert("{{ 'users rights have been reseted' | trans }}");
|
||||
}
|
||||
$(document).ready(function () {
|
||||
function users_select_this(n, k) {
|
||||
if (p4.users.sel.length >= 800) {
|
||||
alert(language.max_record_selected);
|
||||
return false;
|
||||
}
|
||||
p4.users.sel.push(k);
|
||||
$(n).addClass('selected');
|
||||
return true;
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
$('#users th.sortable').live('click', function () {
|
||||
var $this = $(this);
|
||||
|
||||
var sort = $('input', $this).val();
|
||||
|
||||
if ((sort == $('#users_page_form input[name="srt"]').val())
|
||||
&& ($('#users_page_form input[name="ord"]').val() == 'asc')) {
|
||||
var ord = 'desc';
|
||||
}
|
||||
else {
|
||||
var ord = 'asc';
|
||||
}
|
||||
|
||||
$('#users_page_form input[name="srt"]').val(sort);
|
||||
$('#users_page_form input[name="ord"]').val(ord);
|
||||
|
||||
$('#users_page_form').trigger('submit');
|
||||
}).live('mouseover', function () {
|
||||
$(this).addClass('hover');
|
||||
}).live('mouseout', function () {
|
||||
$(this).removeClass('hover');
|
||||
});
|
||||
|
||||
var buttons = {};
|
||||
buttons[language.create_user] = function () {
|
||||
check_new_user(false);
|
||||
};
|
||||
buttons[language.annuler] = function () {
|
||||
$('#user_add_dialog').dialog('close')
|
||||
};
|
||||
|
||||
$('#user_add_dialog').dialog({
|
||||
buttons: buttons,
|
||||
modal: true,
|
||||
resizable: false,
|
||||
draggable: false,
|
||||
width: 500
|
||||
}).dialog('close');
|
||||
|
||||
var buttons = {};
|
||||
buttons[language.create_template] = function () {
|
||||
check_new_user(true);
|
||||
};
|
||||
buttons[language.annuler] = function () {
|
||||
$('#template_add_dialog').dialog('close');
|
||||
};
|
||||
|
||||
$('#template_add_dialog').dialog({
|
||||
buttons: buttons,
|
||||
modal: true,
|
||||
resizable: false,
|
||||
draggable: false,
|
||||
width: 500
|
||||
|
||||
}).dialog('close');
|
||||
|
||||
function check_new_user(is_template) {
|
||||
var container = is_template ? $('#template_add_dialog') : $('#user_add_dialog');
|
||||
$('#new_user_loader').show();
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
url: '../admin/users/create/',
|
||||
dataType: 'json',
|
||||
data: {
|
||||
act: 'CREATENEWUSER',
|
||||
value: $('input[name="value"]', container).val(),
|
||||
send_credentials: $('input[name="send_credentials"]', container).is(':checked') ? 1 : 0,
|
||||
validate_mail: $('input[name="validate_mail"]', container).is(':checked') ? 1 : 0,
|
||||
template: is_template ? '1' : '0'
|
||||
},
|
||||
success: function (data) {
|
||||
$('.new_user_loader', container).hide();
|
||||
if (!data.error) {
|
||||
if (container.data("ui-dialog")) {
|
||||
container.dialog('close');
|
||||
}
|
||||
$('input[name="value"]', container).val('');
|
||||
$('#right-ajax').empty().addClass('loading');
|
||||
p4.users.sel = [];
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
url: '../admin/users/rights/',
|
||||
data: {
|
||||
users: data.data
|
||||
},
|
||||
success: function (data) {
|
||||
$('#right-ajax').removeClass('loading').html(data);
|
||||
}
|
||||
});
|
||||
}
|
||||
else {
|
||||
alert(data.message);
|
||||
}
|
||||
|
||||
},
|
||||
error: function () {
|
||||
alert(language.serverError);
|
||||
},
|
||||
timeout: function () {
|
||||
alert(language.serverTimeout);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
$('#users_page .user_adder').live('click', function () {
|
||||
if ($('#user_add_dialog').data("ui-dialog")) {
|
||||
$('#user_add_dialog').dialog('open');
|
||||
}
|
||||
});
|
||||
|
||||
$('#users_page .template_adder').live('click', function () {
|
||||
if ($('#template_add_dialog').data("ui-dialog")) {
|
||||
$('#template_add_dialog').dialog('open');
|
||||
}
|
||||
});
|
||||
|
||||
$('#users_page_form').live('submit', function () {
|
||||
var datas = $('#users_page_form').serializeArray();
|
||||
$('#right-ajax').empty().addClass('loading');
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
url: '../admin/users/search/',
|
||||
data: datas,
|
||||
success: function (data) {
|
||||
$('#right-ajax').removeClass('loading').empty().html(data);
|
||||
}
|
||||
});
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
$('#users_page_search').live('submit', function () {
|
||||
var datas = $('#users_page_search').serializeArray();
|
||||
$('#right-ajax').empty().addClass('loading');
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
url: '../admin/users/search/',
|
||||
data: datas,
|
||||
success: function (data) {
|
||||
$('#right-ajax').removeClass('loading').empty().html(data);
|
||||
}
|
||||
});
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
$('#users_page_form .pager').live('click', function () {
|
||||
var form = $('#users_page_form');
|
||||
|
||||
var current_page = parseInt($('input[name="page"]', form).val());
|
||||
var perPage = parseInt($('select[name="per_page"]', form).val());
|
||||
current_page = isNaN(current_page) ? 1 : current_page;
|
||||
|
||||
var offset_start = 0;
|
||||
|
||||
if ($(this).hasClass('prev')) {
|
||||
offset_start = (current_page - 2) * perPage;
|
||||
}
|
||||
if ($(this).hasClass('first')) {
|
||||
offset_start = 0;
|
||||
}
|
||||
if ($(this).hasClass('next')) {
|
||||
offset_start = current_page * perPage;
|
||||
}
|
||||
if ($(this).hasClass('last')) {
|
||||
offset_start = (Math.floor(parseInt($('input[name=total_results]').val()) / perPage)) * perPage;
|
||||
}
|
||||
|
||||
$('input[name="offset_start"]', form).val(offset_start);
|
||||
});
|
||||
|
||||
$('#users tbody tr, #users tbody td').live('dblclick', function (evt) {
|
||||
$('#users_page_form .user_modifier').trigger('click');
|
||||
});
|
||||
|
||||
$('#users tbody tr, #users tbody td').live('click', function (evt) {
|
||||
if (evt.stopPropagation)
|
||||
evt.stopPropagation();
|
||||
evt.cancelBubble = true;
|
||||
evt.preventDefault();
|
||||
var el = $(this).closest('tr');
|
||||
var cont = $('#users');
|
||||
|
||||
var k = el.attr('id').split('_').pop();
|
||||
|
||||
if (is_shift_key(evt) && $('tr.last_selected', cont).length != 0) {
|
||||
var lst = $('tr', cont);
|
||||
var index1 = $.inArray($('tr.last_selected', cont)[0], lst);
|
||||
var index2 = $.inArray($(el)[0], lst);
|
||||
if (index2 < index1) {
|
||||
var tmp = index1;
|
||||
index1 = (index2 - 1) < 0 ? index2 : (index2 - 1);
|
||||
index2 = tmp;
|
||||
}
|
||||
|
||||
var stopped = false;
|
||||
if (index2 != -1 && index1 != -1) {
|
||||
var exp = 'tr:gt(' + index1 + '):lt(' + (index2 - index1) + ')';
|
||||
$.each($(exp, cont), function (i, n) {
|
||||
|
||||
if (!$(n).hasClass('selected')) {
|
||||
|
||||
if (!users_select_this(n, $(n).attr('id').split('_').pop())) {
|
||||
stopped = true;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
if (!stopped && $.inArray(k, p4.users.sel) < 0) {
|
||||
if (!users_select_this(el, k))
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (!is_ctrl_key(evt)) {
|
||||
if ($.inArray(k, p4.users.sel) < 0) {
|
||||
p4.users.sel = new Array();
|
||||
$('tr', cont).removeClass('selected');
|
||||
|
||||
if (!users_select_this(el, k))
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if ($.inArray(k, p4.users.sel) >= 0) {
|
||||
p4.users.sel = $.grep(p4.users.sel, function (n) {
|
||||
return (n != k);
|
||||
});
|
||||
$(el).removeClass('selected');
|
||||
}
|
||||
else {
|
||||
if (!users_select_this(el, k))
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
$('.last_selected', cont).removeClass('last_selected');
|
||||
$(el).addClass('last_selected');
|
||||
}).live('mousedown', function (evt) {
|
||||
|
||||
if (evt.stopPropagation)
|
||||
evt.stopPropagation();
|
||||
evt.cancelBubble = true;
|
||||
evt.preventDefault();
|
||||
});
|
||||
|
||||
$('#users_apply_template').live('submit', function () {
|
||||
var users = p4.users.sel.join(';');
|
||||
if (users === '') {
|
||||
return false;
|
||||
}
|
||||
|
||||
var $this = $(this);
|
||||
var template = $('select[name="template_chooser"]', $this).val();
|
||||
|
||||
if (template === '') {
|
||||
return false;
|
||||
}
|
||||
|
||||
dialogUserTemplate(function (reset_before_apply) {
|
||||
$('#right-ajax').empty().addClass('loading');
|
||||
p4.users.sel = [];
|
||||
|
||||
$.ajax({
|
||||
type: $this.attr('method'),
|
||||
url: $this.attr('action'),
|
||||
data: {
|
||||
users: users,
|
||||
template: template,
|
||||
reset_before_apply: reset_before_apply
|
||||
},
|
||||
success: function (data) {
|
||||
$('#right-ajax').removeClass('loading').html(data);
|
||||
}
|
||||
});
|
||||
});
|
||||
return false;
|
||||
});
|
||||
|
||||
$('#users_page_form .user_modifier').live('click', function () {
|
||||
var users = p4.users.sel.join(';');
|
||||
if (users === '') {
|
||||
return false;
|
||||
}
|
||||
|
||||
$('#right-ajax').empty().addClass('loading');
|
||||
p4.users.sel = [];
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
url: '../admin/users/rights/',
|
||||
data: {
|
||||
users: users
|
||||
},
|
||||
success: function (data) {
|
||||
$('#right-ajax').removeClass('loading').html(data);
|
||||
}
|
||||
});
|
||||
return false;
|
||||
});
|
||||
|
||||
$('#users_page_form .user_deleter').live('click', function () {
|
||||
var users = p4.users.sel.join(';');
|
||||
if (users === '') {
|
||||
return false;
|
||||
}
|
||||
|
||||
$('#right-ajax').empty().addClass('loading');
|
||||
p4.users.sel = [];
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
url: '../admin/users/delete/',
|
||||
data: {
|
||||
users: users
|
||||
},
|
||||
success: function (data) {
|
||||
$('#right-ajax').removeClass('loading').html(data);
|
||||
}
|
||||
});
|
||||
return false;
|
||||
});
|
||||
$('#users_page .invite_modifier, #users_page .autoregister_modifier').live('click', function () {
|
||||
var users = $(this).next('input').val();
|
||||
|
||||
if ($.trim(users) === '') {
|
||||
return false;
|
||||
}
|
||||
|
||||
$('#right-ajax').empty().addClass('loading');
|
||||
p4.users.sel = [];
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
url: '../admin/users/rights/',
|
||||
data: {
|
||||
users: users
|
||||
},
|
||||
success: function (data) {
|
||||
$('#right-ajax').removeClass('loading').html(data);
|
||||
}
|
||||
});
|
||||
return false;
|
||||
});
|
||||
$.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("{{ 'select at least one user' | trans }}");
|
||||
return;
|
||||
}
|
||||
|
||||
var users = '';
|
||||
$.each(selectedUsers, function (i, n) {
|
||||
users += $(n).attr("id").split("_").pop() + ';';
|
||||
});
|
||||
|
||||
if (confirm("{{ 'Are you sure you want delete users rights ?' | trans }}")) {
|
||||
$("#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("{{ 'An error occured' | trans }}");
|
||||
}
|
||||
else {
|
||||
alert("{{ 'users rights have been reseted' | trans }}");
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
function exportlist()
|
||||
{
|
||||
|
Reference in New Issue
Block a user