getAttributeEditField() handels arrays of attr values propperly

This commit is contained in:
Uwe Steinmann 2025-02-28 17:53:54 +01:00
parent 86362c5284
commit 4ba5099569
2 changed files with 68 additions and 14 deletions

View File

@ -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;

View File

@ -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 .= "<input type=\"text\" class=\"form-control\" id=\"".$attr_id."\" name=\"".$attr_name."\" value=\"".htmlspecialchars($objvalue)."\"".((!$norequire && $attrdef->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;