Fixes issues in UserGroupOptionForm
authorMatthias Schmidt <gravatronics@live.com>
Sun, 15 Dec 2013 19:40:42 +0000 (20:40 +0100)
committerMatthias Schmidt <gravatronics@live.com>
Sun, 15 Dec 2013 19:40:42 +0000 (20:40 +0100)
wcfsetup/install/files/acp/templates/userGroupOption.tpl
wcfsetup/install/files/lib/acp/form/UserGroupOptionForm.class.php

index 3bd1d90fe37951cf1cd91bb80c2549734fdd0a38..14b94387aef1bd876860893bacf89b8eb2e8e65d 100644 (file)
@@ -5,8 +5,20 @@
                $('#optionValueContainer label').each(function(index, label) {
                        var $label = $(label);
                        var $id = $label.prop('for');
-                       var $groupID = $id.replace(/^userGroupOption/, '');
-                       $label.parents('dl').children('dd').find('input, select, textarea').attr('id', $id).attr('name', 'values[' + $groupID + ']');
+                       if ($id && $id.match(/^userGroupOption/)) {
+                               var $groupID = $id.replace(/^userGroupOption/, '');
+                               $label.parents('dl').children('dd').find('input, select, textarea').each(function(index, element) {
+                                       var $element = $(element);
+                                       var $oldName = $element.attr('name');
+                                       
+                                       var $newName = 'values[' + $groupID + ']';
+                                       if ($oldName.substr(-2) == '[]') {
+                                               $newName += '[]';
+                                       }
+                                       
+                                       $element.attr('id', $id).attr('name', $newName);
+                               });
+                       }
                });
        });
 </script>
index cdd08bbcebaa1c575334fef7f90cb4581c2996f4..1b7059b0ad5b7144e7ccac0a0e1690a8862b3c8a 100644 (file)
@@ -144,11 +144,13 @@ class UserGroupOptionForm extends AbstractForm {
                parent::validate();
                
                // validate option values
-               foreach ($this->values as $groupID => $optionValue) {
+               foreach ($this->values as $groupID => &$optionValue) {
                        if (!isset($this->groups[$groupID])) {
                                throw new PermissionDeniedException();
                        }
                        
+                       $optionValue = $this->optionType->getData($this->userGroupOption, $optionValue);
+                       
                        try {
                                $this->optionType->validate($this->userGroupOption, $optionValue);
                        }