diff --git a/views/bootstrap/class.Bootstrap.php b/views/bootstrap/class.Bootstrap.php index 7d7f4408d..017e213a1 100644 --- a/views/bootstrap/class.Bootstrap.php +++ b/views/bootstrap/class.Bootstrap.php @@ -1966,6 +1966,15 @@ $(document).ready(function() { echo self::getAttributeEditField($attrdef, $attribute, $fieldname, $norequire, $namepostfix, $alwaysmultiple); } /* }}} */ + /** + * Return html code for an input/select field of an attribute + * + * The passed attribute ($attribute) can either be an object of type + * SeedDMS_Core_Attribute, scalar or an array. A scalar or array is + * passed when the method is called to create the search form. In that + * case $attribute has the value from the post data after submitting the + * search form. + */ function getAttributeEditField($attrdef, $attribute, $fieldname='attributes', $norequire=false, $namepostfix='', $alwaysmultiple=false) { /* {{{ */ $dms = $this->params['dms']; $attr_id = $fieldname.'_'.$attrdef->getId().($namepostfix ? '_'.$namepostfix : ''); @@ -2002,10 +2011,19 @@ $(document).ready(function() { $content .= $this->getDocumentChooserHtml("attr".$attrdef->getId(), $target, $attr_name); break; case SeedDMS_Core_AttributeDefinition::type_user: - $target = $attribute ? $attribute->getValueAsArray() : []; $objvalue = []; - foreach($target as $t) - $objvalue[] = $t->getId(); + if($attribute) { + if(is_object($attribute)) { + $target = $attribute->getValueAsArray(); + foreach($target as $t) + $objvalue[] = $t->getId(); + } elseif(is_array($attribute)) { + foreach($attribute as $t) + $objvalue[] = $t; + } else { + $objvalue[] = $attribute; + } + } $users = $dms->getAllUsers(); if($users) { $allowempty = $attrdef->getMinValues() == 0; @@ -2025,10 +2043,19 @@ $(document).ready(function() { } break; case SeedDMS_Core_AttributeDefinition::type_group: - $target = $attribute ? $attribute->getValueAsArray() : []; $objvalue = []; - foreach($target as $t) - $objvalue[] = $t->getId(); + if($attribute) { + if(is_object($attribute)) { + $target = $attribute->getValueAsArray(); + foreach($target as $t) + $objvalue[] = $t->getId(); + } elseif(is_array($attribute)) { + foreach($attribute as $t) + $objvalue[] = $t; + } else { + $objvalue[] = $attribute; + } + } $groups = $dms->getAllGroups(); if($groups) { $allowempty = $attrdef->getMinValues() == 0; diff --git a/views/bootstrap4/class.Bootstrap4.php b/views/bootstrap4/class.Bootstrap4.php index 93ffc29f2..9e7c2fa64 100644 --- a/views/bootstrap4/class.Bootstrap4.php +++ b/views/bootstrap4/class.Bootstrap4.php @@ -1985,6 +1985,15 @@ $(document).ready(function() { echo self::getAttributeEditField($attrdef, $attribute, $fieldname, $norequire, $namepostfix, $alwaysmultiple); } /* }}} */ + /** + * Return html code for an input/select field of an attribute + * + * The passed attribute ($attribute) can either be an object of type + * SeedDMS_Core_Attribute, scalar or an array. A scalar or array is + * passed when the method is called to create the search form. In that + * case $attribute has the value from the post data after submitting the + * search form. + */ function getAttributeEditField($attrdef, $attribute, $fieldname='attributes', $norequire=false, $namepostfix='', $alwaysmultiple=false) { /* {{{ */ $dms = $this->params['dms']; $attr_id = $fieldname.'_'.$attrdef->getId().($namepostfix ? '_'.$namepostfix : ''); @@ -2018,18 +2027,27 @@ $(document).ready(function() { $content .= "getMinValues() > 0) ? ' required="required"' : '')." data-rule-number=\"true\"/>"; break; */ case SeedDMS_Core_AttributeDefinition::type_folder: - $target = $attribute ? $attribute->getValue() : null; + $target = $attribute ? (is_object($attribute) ? $attribute->getValue() : $attribute) : null; $content .= $this->getFolderChooserHtml("attr".$attrdef->getId(), M_READWRITE, -1, $target, $attr_name, false); break; case SeedDMS_Core_AttributeDefinition::type_document: - $target = $attribute ? $attribute->getValue() : null; + $target = $attribute ? (is_object($attribute) ? $attribute->getValue() : $attribute) : null; $content .= $this->getDocumentChooserHtml("attr".$attrdef->getId(), $target, $attr_name); break; case SeedDMS_Core_AttributeDefinition::type_user: - $target = $attribute ? $attribute->getValueAsArray() : []; $objvalue = []; - foreach($target as $t) - $objvalue[] = $t->getId(); + if($attribute) { + if(is_object($attribute)) { + $target = $attribute->getValueAsArray(); + foreach($target as $t) + $objvalue[] = $t->getId(); + } elseif(is_array($attribute)) { + foreach($attribute as $t) + $objvalue[] = $t; + } else { + $objvalue[] = $attribute; + } + } $users = $dms->getAllUsers(); if($users) { $allowempty = $attrdef->getMinValues() == 0; @@ -2049,10 +2067,19 @@ $(document).ready(function() { } break; case SeedDMS_Core_AttributeDefinition::type_group: - $target = $attribute ? $attribute->getValueAsArray() : []; $objvalue = []; - foreach($target as $t) - $objvalue[] = $t->getId(); + if($attribute) { + if(is_object($attribute)) { + $target = $attribute->getValueAsArray(); + foreach($target as $t) + $objvalue[] = $t->getId(); + } elseif(is_array($attribute)) { + foreach($attribute as $t) + $objvalue[] = $t; + } else { + $objvalue[] = $attribute; + } + } $groups = $dms->getAllGroups(); if($groups) { $allowempty = $attrdef->getMinValues() == 0;