diff --git a/presentation/lookAndFeel/knowledgeTree/administration/docfieldmanagement/conditional/ajaxSimpleConditionals.php b/presentation/lookAndFeel/knowledgeTree/administration/docfieldmanagement/conditional/ajaxSimpleConditionals.php index f62e1bb..4f64ffe 100644 --- a/presentation/lookAndFeel/knowledgeTree/administration/docfieldmanagement/conditional/ajaxSimpleConditionals.php +++ b/presentation/lookAndFeel/knowledgeTree/administration/docfieldmanagement/conditional/ajaxSimpleConditionals.php @@ -1,5 +1,5 @@ log->error(http_build_query($_REQUEST)); $parent_field = KTUtil::arrayGet($_REQUEST, 'parent_field'); $parent_lookup = KTUtil::arrayGet($_REQUEST, 'parent_lookup'); $child_lookups = KTUtil::arrayGet($_REQUEST, 'child_lookups'); @@ -33,31 +38,88 @@ class AjaxConditionalAdminDispatcher extends KTDispatcher { // field_id:[lookup_id, lookup_id], // field_id:[lookup_id, lookup_id], // } + + $oParentInstance = KTMetadataUtil::getOrCreateValueInstanceForLookup($parent_lookup); + $iBehaviourId = $oParentInstance->getBehaviourId(); + $oParentMetadata =& MetaData::get($oParentInstance->getFieldValueId()); + if (is_null($iBehaviourId)) { + $oBehaviour =& KTFieldBehaviour::createFromArray(array( + 'name' => 'autoinstance' . $oParentInstance->getId(), + 'humanname' => 'Auto instance' . $oParentMetadata->getName(), + 'fieldid' => $oParentInstance->getFieldId(), + )); + } else { + $oBehaviour =& KTFieldBehaviour::get($iBehaviourId); + } + if (PEAR::isError($oBehaviour)) { + var_dump($oBehaviour); + return $oBehaviour; + } + $iBehaviourId = $oBehaviour->getId(); + $oParentInstance->setBehaviourId($iBehaviourId); + $oParentInstance->update(); - - print "not implemented."; - exit(1); + $sTable = KTUtil::getTableName('field_behaviour_options'); + $aOptions = array('noid' => true); + + foreach ($child_lookups as $iFieldId => $aLookups) { + foreach ($aLookups as $iLookupId) { + $oValueInstance =& KTMetadataUtil::getOrCreateValueInstanceForLookup($iLookupId); + if (PEAR::isError($oValueInstance)) { + var_dump($oValueInstance); + return $oValueInstance; + } + $res = DBUtil::autoInsert($sTable, array( + 'behaviour_id' => $iBehaviourId, + 'field_id' => $iFieldId, + 'instance_id' => $oValueInstance->getId(), + ), $aOptions); + if (PEAR::isError($res)) { + var_dump($res); + return $res; + } + } + } } // do you want the fieldset_id here? function do_updateActiveFields() { + global $default; + $default->log->error(http_build_query($_REQUEST)); $active_field = KTUtil::arrayGet($_REQUEST, 'active_field'); // field which is "active". $fieldset_id = KTUtil::arrayGet($_REQUEST, 'fieldset_id'); // REMEMBER TO SET CONTENT-TYPE application/xml $oTemplating =& KTTemplating::getSingleton(); $oTemplate =& $oTemplating->loadTemplate('ktcore/metadata/conditional/ajax_simple_update_active_fields'); - + $oTemplate->setData(array( + 'aFieldIds' => KTMetadataUtil::getChildFieldIds($active_field), + )); + header("Content-Type: application/xml"); + print $oTemplate->render(); + exit(0); } // do you want the fieldset_id here? function do_updateActiveLookups() { + global $default; + $default->log->error(http_build_query($_REQUEST)); $active_field = KTUtil::arrayGet($_REQUEST, 'active_field'); // field which is "active". $selected_lookup = KTUtil::arrayGet($_REQUEST, 'selected_lookup'); // selected value in said field. // REMEMBER TO SET CONTENT-TYPE application/xml $oTemplating =& KTTemplating::getSingleton(); $oTemplate =& $oTemplating->loadTemplate('ktcore/metadata/conditional/ajax_simple_update_active_lookups'); + + $aFieldLookups = KTMetadataUtil::getNextValuesForLookup($selected_lookup); + + $oTemplate->setData(array( + 'aFieldLookups' => $aFieldLookups, + )); + + header("Content-Type: application/xml"); + print $oTemplate->render(); + exit(0); } }