Commit 9af2f73503c42ea2fa2ee360fa7138d146d96627

Authored by Brad Shuttleworth
1 parent 869d301b

fix for KTS-715


git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@5166 c91229c3-7414-0410-bfa2-8a42b809f60b
lib/metadata/metadatautil.inc.php
@@ -105,6 +105,14 @@ class KTMetadataUtil { @@ -105,6 +105,14 @@ class KTMetadataUtil {
105 } 105 }
106 106
107 $GLOBALS['default']->log->debug('KTMetadataUtil::_getNextForBehaviour, final values are ' . print_r($aValues, true)); 107 $GLOBALS['default']->log->debug('KTMetadataUtil::_getNextForBehaviour, final values are ' . print_r($aValues, true));
  108 +
  109 + // now we need to clean this up: remove no-value entries.
  110 + $temp = $aValues;
  111 + foreach ($temp as $k => $v) {
  112 + if (empty($v)) {
  113 + unset($aValues[$k]);
  114 + }
  115 + }
108 return $aValues; 116 return $aValues;
109 } 117 }
110 // }}} 118 // }}}
@@ -560,12 +568,12 @@ class KTMetadataUtil { @@ -560,12 +568,12 @@ class KTMetadataUtil {
560 $aFields = DBUtil::getResultArrayKey($aQuery, 'field_id'); 568 $aFields = DBUtil::getResultArrayKey($aQuery, 'field_id');
561 $GLOBALS['default']->log->debug(" actual fields are " . print_r($aNextFields, true)); 569 $GLOBALS['default']->log->debug(" actual fields are " . print_r($aNextFields, true));
562 foreach ($aNextFields as $iFieldId) { 570 foreach ($aNextFields as $iFieldId) {
563 - if (!in_array($iFieldId, $aFields)) { 571 + /*if (!in_array($iFieldId, $aFields)) {
564 $GLOBALS['default']->log->debug(" field $iFieldId is not included, failing"); 572 $GLOBALS['default']->log->debug(" field $iFieldId is not included, failing");
565 $oChildField =& DocumentField::get($iFieldId); 573 $oChildField =& DocumentField::get($iFieldId);
566 $sChildFieldName = $oChildField->getName(); 574 $sChildFieldName = $oChildField->getName();
567 return PEAR::raiseError("Child field $sChildFieldName of parent field $sParentFieldName has no selectable values in behaviour $sBehaviourHumanName ($sBehaviourName)"); 575 return PEAR::raiseError("Child field $sChildFieldName of parent field $sParentFieldName has no selectable values in behaviour $sBehaviourHumanName ($sBehaviourName)");
568 - } 576 + }*/
569 } 577 }
570 } 578 }
571 $GLOBALS['default']->log->debug("Got through: passed!"); 579 $GLOBALS['default']->log->debug("Got through: passed!");
lib/widgets/fieldsetDisplay.inc.php
@@ -54,7 +54,7 @@ require_once(KT_LIB_DIR . "/widgets/fieldWidgets.php"); @@ -54,7 +54,7 @@ require_once(KT_LIB_DIR . "/widgets/fieldWidgets.php");
54 54
55 55
56 /* it may be useful to move this to a factory, eventually? */ 56 /* it may be useful to move this to a factory, eventually? */
57 -function getWidgetForMetadataField($field, $current_value, $page, $errors = null, $vocab = null) { 57 +function getWidgetForMetadataField($field, $current_value, $page, $errors = null, $vocab = null, $aOptions = null) {
58 // all fields have these elements. 58 // all fields have these elements.
59 $fieldLabel = $field->getName(); 59 $fieldLabel = $field->getName();
60 $fieldDescription = $field->getDescription(); 60 $fieldDescription = $field->getDescription();
@@ -62,7 +62,7 @@ function getWidgetForMetadataField($field, $current_value, $page, $errors = null @@ -62,7 +62,7 @@ function getWidgetForMetadataField($field, $current_value, $page, $errors = null
62 $fieldErrors = $errors; // array of strings 62 $fieldErrors = $errors; // array of strings
63 $fieldName = 'metadata_' . $field->getID(); 63 $fieldName = 'metadata_' . $field->getID();
64 $fieldOptions = array(); 64 $fieldOptions = array();
65 - $fieldRequired = $field->getIsMandatory(); 65 + $fieldRequired = $field->getIsMandatory() || KTUtil::arrayGet($aOptions, 'required', false);
66 if ($fieldRequired == 1) { 66 if ($fieldRequired == 1) {
67 $fieldRequired = true; 67 $fieldRequired = true;
68 } 68 }
presentation/lookAndFeel/knowledgeTree/ajaxConditional.php
@@ -84,7 +84,7 @@ class AjaxConditionalDispatcher extends KTStandardDispatcher { @@ -84,7 +84,7 @@ class AjaxConditionalDispatcher extends KTStandardDispatcher {
84 $vocab = array(); 84 $vocab = array();
85 $vocab[''] = 'Unset'; 85 $vocab[''] = 'Unset';
86 foreach ($aFieldInfo['values'] as $md_v) { $vocab[$md_v->getName()] = $md_v->getName(); } 86 foreach ($aFieldInfo['values'] as $md_v) { $vocab[$md_v->getName()] = $md_v->getName(); }
87 - $oWidget = getWidgetForMetadataField($aFieldInfo['field'], null, $main, null, $vocab) ; 87 + $oWidget = getWidgetForMetadataField($aFieldInfo['field'], null, $main, null, $vocab, array('required' => true)) ;
88 $sWidgets .= $oWidget->render(); 88 $sWidgets .= $oWidget->render();
89 } 89 }
90 90