Add proper validation for module grants (issue #87)

This commit is contained in:
jekkos
2015-06-23 23:32:56 +02:00
parent df7907fb8f
commit fc5f097820
14 changed files with 36 additions and 37 deletions

View File

@@ -25,3 +25,4 @@ $lang["employees_update"] = "Update Employee";
$lang["employees_username"] = "Username";
$lang["employees_username_minlength"] = "The username must be at least 5 characters";
$lang["employees_username_required"] = "Username is a required field";
$lang["employees_subpermission_required"] = "Add at least one grant for each module";

View File

@@ -25,3 +25,4 @@ $lang["employees_update"] = "Actualizar Empleado";
$lang["employees_username"] = "Usuario";
$lang["employees_username_minlength"] = "El Usuario debe tener, por lo menos, 5 caracteres";
$lang["employees_username_required"] = "Usuario es requerido";
$lang["employees_subpermission_required"] = "Add at least one grant for each module";

View File

@@ -25,3 +25,4 @@ $lang["employees_update"] = "Éditer Employé";
$lang["employees_username"] = "Nom d\'utilisateur";
$lang["employees_username_minlength"] = "Le Nom d\'utilisateur doit etre long d\'au moins 5 caractères";
$lang["employees_username_required"] = "Le Nom d\'utilisateur est requis";
$lang["employees_subpermission_required"] = "Add at least one grant for each module";

View File

@@ -25,3 +25,4 @@ $lang["employees_update"] = "Ubah Karyawan";
$lang["employees_username"] = "Nama Pengguna";
$lang["employees_username_minlength"] = "Nama Pengguna minimal 5 huruf";
$lang["employees_username_required"] = "Nama Pengguna wajib diisi";
$lang["employees_subpermission_required"] = "Add at least one grant for each module";

View File

@@ -25,3 +25,4 @@ $lang["employees_update"] = "Update Werknemer";
$lang["employees_username"] = "Gebruikersnaam";
$lang["employees_username_minlength"] = "Gebruikersnaam moet minstens 5 characters lang zijn";
$lang["employees_username_required"] = "Gebruikersnaam moet ingevuld worden";
$lang["employees_subpermission_required"] = "Selecteer minstens <20><>n permissie voor elke module";

View File

@@ -25,3 +25,4 @@ $lang["employees_update"] = "Обновлять Сотрудник";
$lang["employees_username"] = "Имя пользователя";
$lang["employees_username_minlength"] = "Имя пользователя должна быть не менее 5 символов";
$lang["employees_username_required"] = "Имя пользователи обязательный пробел";
$lang["employees_subpermission_required"] = "Add at least one grant for each module";

View File

@@ -25,3 +25,4 @@ $lang["employees_update"] = "แก้ไขข้อมูลพนักงา
$lang["employees_username"] = "Username";
$lang["employees_username_minlength"] = "ชื่อผู้ใช้งานต้องยาวเกิน 5 อักษร";
$lang["employees_username_required"] = "จำเป็นต้องกรอกชื่อผู้ใช้งาน";
$lang["employees_subpermission_required"] = "Add at least one grant for each module";

View File

@@ -25,3 +25,4 @@ $lang["employees_update"] = "Personeli Güncelle";
$lang["employees_username"] = "Kullandı Adı";
$lang["employees_username_minlength"] = "Kullanıcı Adı en az 5 karakter olmalıdır";
$lang["employees_username_required"] = "Kullanıcı Adı zorunlu alandır";
$lang["employees_subpermission_required"] = "Add at least one grant for each module";

View File

@@ -25,3 +25,4 @@ $lang["employees_update"] = "更新員工";
$lang["employees_username"] = "帳號";
$lang["employees_username_minlength"] = "帳號必需為五個字元以上";
$lang["employees_username_required"] = "帳號為必填";
$lang["employees_subpermission_required"] = "Add at least one grant for each module";

View File

@@ -56,7 +56,7 @@ foreach($all_modules->result() as $module)
{
?>
<li>
<?php echo form_checkbox("grants[]",$module->module_id,$this->Employee->has_grant($module->module_id,$person_info->person_id)); ?>
<?php echo form_checkbox("grants[]",$module->module_id,$this->Employee->has_grant($module->module_id,$person_info->person_id),"class='module'"); ?>
<span class="medium"><?php echo $this->lang->line('module_'.$module->module_id);?>:</span>
<span class="small"><?php echo $this->lang->line('module_'.$module->module_id.'_desc');?></span>
<?php
@@ -104,6 +104,21 @@ echo form_close();
//validation and submit handling
$(document).ready(function()
{
$.validator.addMethod("module", function (value, element) {
var result = true;
$(".module").each(function(index, element)
{
var parent = $(element).parent();
var checked = $(element).is(":checked");
if ($("ul", parent).length > 0 && result)
{
result &= !checked || (checked && $("ul > li > input:checked", parent).length > 0);
}
});
return result;
}, '<?php echo $this->lang->line('employees_subpermission_required'); ?>');
$("ul#permission_list > li > input[name='grants[]']").each(function()
{
var $this = $(this);
@@ -112,16 +127,13 @@ $(document).ready(function()
var $that = $(this);
var updateCheckboxes = function (checked)
{
if (checked) {
$that.removeAttr("disabled");
} else {
$that.attr("disabled", "disabled");
$that.removeAttr("checked", "");
}
$that.prop("disabled", !checked);
!checked && $that.prop("checked", false);
}
$this.change(function() {
updateCheckboxes($this.is(":checked"));
});
updateCheckboxes($this.is(":checked"));
});
});
@@ -166,29 +178,7 @@ $(document).ready(function()
{
equalTo: "#password"
},
email: "email",
"grants[]" : {
required : function(element) {
var checked = false;
$("ul#permission_list > li > input:checkbox").each(function()
{
if ($(this).is(":checked")) {
var has_children = false;
$("ul > li > input:checkbox", $(this).parent()).each(function()
{
has_children = true;
checked |= $(this).is(":checked");
});
if (has_children && !checked)
{
return false;
}
}
});
return !checked;
},
minlength: 1
}
email: "email"
},
messages:
{
@@ -216,8 +206,7 @@ $(document).ready(function()
{
equalTo: "<?php echo $this->lang->line('employees_password_must_match'); ?>"
},
email: "<?php echo $this->lang->line('common_email_invalid_format'); ?>",
"grants[]": "fill in correctly!!"
email: "<?php echo $this->lang->line('common_email_invalid_format'); ?>"
}
});
});

View File

@@ -12716,7 +12716,7 @@ function set_feedback(text, classname, keep_displayed)
;(function($){
//keylisteners
$.each(['customers', 'items', 'reports', 'receivings', 'sales', 'employees', 'config', 'giftcards'], function(key, value) {
$.each(['customers', 'items', 'reports', 'receivings', 'sales'], function(key, value) {
$(window).jkey('f' + (key+1), function(){
window.location = BASE_URL + '/' + value + '/index';
});

View File

File diff suppressed because one or more lines are too long

View File

@@ -38,7 +38,7 @@ function set_feedback(text, classname, keep_displayed)
;(function($){
//keylisteners
$.each(['customers', 'items', 'reports', 'receivings', 'sales', 'employees', 'config', 'giftcards'], function(key, value) {
$.each(['customers', 'items', 'reports', 'receivings', 'sales'], function(key, value) {
$(window).jkey('f' + (key+1), function(){
window.location = BASE_URL + '/' + value + '/index';
});

View File

@@ -24,3 +24,4 @@ employees_update,Update Werknemer,Actualizar Empleado,Update Employee,Éditer Em
employees_username,Gebruikersnaam,Usuario,Username,Nom d\'utilisateur,帳號,Имя пользователя,Username,Kullandı Adı,Nama Pengguna
employees_username_minlength,Gebruikersnaam moet minstens 5 characters lang zijn,"El Usuario debe tener, por lo menos, 5 caracteres",The username must be at least 5 characters,Le Nom d\'utilisateur doit etre long d\'au moins 5 caractères,帳號必需為五個字元以上,Имя пользователя должна быть не менее 5 символов,ชื่อผู้ใช้งานต้องยาวเกิน 5 อักษร,Kullanıcı Adı en az 5 karakter olmalıdır,Nama Pengguna minimal 5 huruf
employees_username_required,Gebruikersnaam moet ingevuld worden,Usuario es requerido,Username is a required field,Le Nom d\'utilisateur est requis,帳號為必填,Имя пользователи обязательный пробел,จำเป็นต้องกรอกชื่อผู้ใช้งาน,Kullanıcı Adı zorunlu alandır,Nama Pengguna wajib diisi
employees_subpermission_required,Selecteer minstens <20><>n permissie voor elke module,Add at least one grant for each module,Add at least one grant for each module,Add at least one grant for each module,Add at least one grant for each module,Add at least one grant for each module,Add at least one grant for each module,Add at least one grant for each module,Add at least one grant for each module
1 label nl-BE es en fr zh ru th tr id
24 employees_username Gebruikersnaam Usuario Username Nom d\'utilisateur 帳號 Имя пользователя Username Kullandı Adı Nama Pengguna
25 employees_username_minlength Gebruikersnaam moet minstens 5 characters lang zijn El Usuario debe tener, por lo menos, 5 caracteres The username must be at least 5 characters Le Nom d\'utilisateur doit etre long d\'au moins 5 caractères 帳號必需為五個字元以上 Имя пользователя должна быть не менее 5 символов ชื่อผู้ใช้งานต้องยาวเกิน 5 อักษร Kullanıcı Adı en az 5 karakter olmalıdır Nama Pengguna minimal 5 huruf
26 employees_username_required Gebruikersnaam moet ingevuld worden Usuario es requerido Username is a required field Le Nom d\'utilisateur est requis 帳號為必填 Имя пользователи обязательный пробел จำเป็นต้องกรอกชื่อผู้ใช้งาน Kullanıcı Adı zorunlu alandır Nama Pengguna wajib diisi
27 employees_subpermission_required Selecteer minstens n permissie voor elke module Add at least one grant for each module Add at least one grant for each module Add at least one grant for each module Add at least one grant for each module Add at least one grant for each module Add at least one grant for each module Add at least one grant for each module Add at least one grant for each module