Fix javascript issues

This commit is contained in:
Nicolas Le Goff
2015-02-06 19:14:21 +01:00
parent b2dad6c18a
commit 4e5dca3720
5 changed files with 940 additions and 960 deletions

View File

@@ -561,19 +561,504 @@
<script type="text/javascript">
define([
"jquery",
"common/geonames"
], function ($, geonames) {
$(document).ready(function() {
ini_edit_usrs();
geonames.init($('#user_infos_tab input.geoname_field'), {
"server": "{{ app['geonames.server-uri'] }}",
"limit": 40
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;
});
$(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/time/sbas/',
data: {
users: $('#users_rights_form input[name="users"]').val(),
sbas_id: sbas_id
},
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');
}
$(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 () {
@@ -615,6 +1100,16 @@
}
});
});
define([
"jquery",
"common/geonames"
], function ($, geonames) {
geonames.init($('#user_infos_tab input.geoname_field'), {
"server": "{{ app['geonames.server-uri'] }}",
"limit": 40
});
});
</script>

View File

@@ -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" />

View File

@@ -251,10 +251,362 @@
<script type="text/javascript">
$(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)
{
if (el.length > 0) {
el.addClass('selected');
}
});
@@ -265,8 +617,7 @@
$('#users_reset_rights button').bind('click', function () {
var selectedUsers = $("#users tr.selected");
if(selectedUsers.length === 0)
{
if (selectedUsers.length === 0) {
alert("{{ 'select at least one user' | trans }}");
return;
}
@@ -276,8 +627,7 @@
users += $(n).attr("id").split("_").pop() + ';';
});
if(confirm("{{ 'Are you sure you want delete users rights ?' | trans }}"))
{
if (confirm("{{ 'Are you sure you want delete users rights ?' | trans }}")) {
$("#users_reset_rights input[name='users']").val(users);
var form = $(this).closest('form');
@@ -288,19 +638,16 @@
type: form.attr('method'),
data: form.serializeArray(),
success: function (data) {
if(data.error)
{
if (data.error) {
alert("{{ 'An error occured' | trans }}");
}
else
{
else {
alert("{{ 'users rights have been reseted' | trans }}");
}
}
});
}
});
});
function exportlist()

View File

@@ -1,493 +0,0 @@
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;
});
$(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/time/sbas/',
data: {
users: $('#users_rights_form input[name="users"]').val(),
sbas_id: sbas_id
},
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');
}
$(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);
});
}
}

View File

@@ -1,369 +0,0 @@
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
$(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;
});
})