diff --git a/presentation/lookAndFeel/knowledgeTree/administration/docfieldmanagement/conditional/manageConditionals.php b/presentation/lookAndFeel/knowledgeTree/administration/docfieldmanagement/conditional/manageConditionals.php index b95c2d4..860b1a9 100644 --- a/presentation/lookAndFeel/knowledgeTree/administration/docfieldmanagement/conditional/manageConditionals.php +++ b/presentation/lookAndFeel/knowledgeTree/administration/docfieldmanagement/conditional/manageConditionals.php @@ -72,291 +72,12 @@ class ManageConditionalDispatcher extends KTStandardDispatcher { return $oTemplate->render($aTemplateData); } - - - /** DELETE FROM HERE. */ - - - function do_newMasterConditionSet() { - $fieldset_id = KTUtil::arrayGet($_REQUEST, 'fieldset_id'); - - if (empty($fieldset_id)) { - return $this->errorRedirectToMain("No fieldset specified."); - } - $oFieldset = KTFieldset::get($fieldset_id); - if (PEAR::isError($oFieldset)) { - return $this->errorRedirectToMain("Unable to open the specified fieldset."); - } - - - // now we need to get other fields in this set. - $aOtherFields = DocumentField::getList('parent_fieldset = '.$oFieldset->getId().' AND id != '.$oFieldset->getMasterField()); - if (PEAR::isError($aOtherFields)) { - $this->errorRedirectToMain("Failed to get field list for table."); - } - $oTemplating = new KTTemplating; - - $oTemplate = $oTemplating->loadTemplate("ktcore/metadata/conditional/editsimple"); - $aTemplateData = array( - "fieldset_id" => $fieldset_id, - "other_fields" => $aOtherFields, - ); - return $oTemplate->render($aTemplateData); - } - - function do_newSubConditionSet() { - global $default; - $default->log->debug('SUBCONDITION CREATION: starting.'); - $fieldset_id = KTUtil::arrayGet($_REQUEST, 'fieldset_id'); - $starting_id = KTUtil::arrayGet($_REQUEST, 'starting_field'); // populated elsewhere. - - if (empty($fieldset_id)) { - return $this->errorRedirectToMain("No fieldset specified."); - } - if (empty($starting_id)) { - return $this->errorRedirectToMain("No field specified to start from."); - } - $default->log->debug('SUBCONDITION CREATION: extracted.'); - $oFieldset = KTFieldset::get($fieldset_id); - if (PEAR::isError($oFieldset)) { - return $this->errorRedirectToMain("Unable to open the specified fieldset."); - } - $default->log->debug('SUBCONDITION CREATION: validated.'); - - // now we need to get other fields in this set. - $aOtherFields = DocumentField::getList('parent_fieldset = '.$oFieldset->getId().' AND id != '.$oFieldset->getMasterField().' AND id != '.$starting_id); - if (PEAR::isError($aOtherFields)) { - $this->errorRedirectToMain("Failed to get field list for table."); - } - // FIXME we tableMappings. - $starting_lookup = DBUtil::getResultArray(array('SELECT id, name FROM metadata_lookup WHERE document_field_id = ? ', array($starting_id))); - if (PEAR::isError($starting_lookup)) { - return $this->errorRedirectToMain('invalid starting field.'); - } - $default->log->debug('SUBCONDITION CREATION: rendering.'); - $oTemplating = new KTTemplating; - - $oTemplate = $oTemplating->loadTemplate("ktcore/metadata/conditional/new_subchain"); - $aTemplateData = array( - "fieldset_id" => $fieldset_id, - "starting_field" => $starting_id, - "starting_lookup" => $starting_lookup, - "other_fields" => $aOtherFields, - ); - return $oTemplate->render($aTemplateData); - } - - function handleOutput($data) { global $main; $main->bFormDisabled = true; $main->setCentralPayload($data); $main->render(); } - - /* create a "master" (or root) condition for a fieldset. - * this _must_ be for a "masterfield". - */ - - function do_createMasterChain() { - global $default; - $default->log->debug("CREATE MASTER CHAIN: starting."); - - - // FIXME: delete EVERYTHING that chains FROM this item. - $fieldset_id = KTUtil::arrayGet($_REQUEST, 'fieldset_id'); - $rule_name = KTUtil::arrayGet($_REQUEST, 'rule_name'); - $base_lookup_id = KTUtil::arrayGet($_REQUEST, 'lookup_id'); // we ARE on the master field, this represents that. - - $default->log->debug("CREATE MASTER CHAIN: lookup_id " .print_r($lookup_id, true)); - - $fields_to_attach = KTUtil::arrayGet($_REQUEST, 'fields_to_attach'); // listed as fields_to_attach[], a list. - if (empty($fields_to_attach)) { - return $this->errorRedirectToMain("No fields specified."); - } else { - // get the list of fields, and their "chained" values. - // we key this by field. - $chained_direct_values = array(); - foreach ($fields_to_attach as $field_id) { - $chained_direct_values[$field_id] = array(); - // we now grab the appropriate values from the form. - // these will have been input as "direct_values_{$field_id} - $direct_values = KTUtil::arrayGet($_REQUEST, "direct_values_".$field_id); - if (empty($direct_values)) { - return $this->errorRedirectToMain("Missing input for field ".$field_id); - } else { - foreach ($direct_values as $lookup_id) { - // FIXME use MetaData::get() on these to verify their existence. - $chained_direct_values[$field_id][] = $lookup_id; - } - } - } - } - - $default->log->debug("CREATE MASTER CHAIN: lookup_id (2) " .print_r($lookup_id, true)); - $rulesets_to_attach = KTUtil::arrayGet($_REQUEST, 'rulesets_to_attach'); - - $oFieldset = KTFieldset::get($fieldset_id); - if (PEAR::isError($oFieldset)) { - return $this->errorRedirectToMain("Invalid Fieldset."); - } - - $resObj = MDConditionNode::createFromArray(array( - "iFieldId" => $oFieldset->getMasterField(), - "iLookupId" => $base_lookup_id, - "sName" => $rule_name, - )); - - $default->log->debug("CREATE MASTER CHAIN: created master chain node " .print_r($resObj, true)); - - $resObj2 = MDConditionChain::createFromArray(array( - "iParentCondition" => null, // this is a MASTER chain. - "iChildCondition" => $resObj->getId(), - )); - - // the id of this "master rule". - $master_rule_id = $resObj->getId(); - - // walk the connections to make, and ... - // NBM: please make this transactional... - foreach ($chained_direct_values as $field_id => $lookup_ids) { - foreach ($lookup_ids as $lookup_id) { - $lookupCreation = MDConditionNode::createFromArray(array( - "iFieldId" => $field_id, - "iLookupId" => $lookup_id, - )); - if (PEAR::isError($lookupCreation)) { - return $this->errorRedirectToMain("Error creating link to ".$field_id." => ".$lookup_id); - } - $lookupChain = MDConditionChain::createFromArray(array( - "iParentCondition" => $master_rule_id, - "iChildCondition" => $lookupCreation->getId(), - )); - if (PEAR::isError($lookupChain)) { - return $this->errorRedirectToMain("Error creating link to ".$field_id." => ".$lookup_id); - } - } - } - if (!empty($rulesets_to_attach)) { - foreach ($rulesets_to_attach as $child_ruleset) { - $lookupChain = MDConditionChain::createFromArray(array( - "iParentCondition" => $master_rule_id, - "iChildCondition" => $child_ruleset, - )); - if (PEAR::isError($lookupChain)) { - return $this->errorRedirectToMain("Error creating link to ruleset ".$child_ruleset); - } - } - } - $default->log->debug("CREATE MASTER CHAIN: done."); - return $this->errorRedirectToMain("Created ruleset."); - } - - function do_createSubChain() { - global $default; - $default->log->debug("CREATE SB CHAIN: starting."); - - - // FIXME: delete EVERYTHING that chains FROM this item. - $fieldset_id = KTUtil::arrayGet($_REQUEST, 'fieldset_id'); - $starting_id = KTUtil::arrayGet($_REQUEST, 'starting_field'); - $rule_name = KTUtil::arrayGet($_REQUEST, 'rule_name'); - - if (empty($fieldset_id)) { - return $this->errorRedirectToMain('No fieldset specified.'); - } - if (empty($rule_name)) { - return $this->errorRedirectToMain('Sub-rules MUST have a name specified.'); - } - if (empty($starting_id)) { - return $this->errorRedirectToMain('Must indicate which fieldset to start with.'); - } - - $base_lookup_id = KTUtil::arrayGet($_REQUEST, 'lookup_id'); // we NEED TO KNOW which is the "base" element. - - $default->log->debug("CREATE SB CHAIN: lookup_id " .print_r($base_lookup_id, true)); - - // these are the next layers of rules to attach. - $fields_to_attach = KTUtil::arrayGet($_REQUEST, 'fields_to_attach'); // listed as fields_to_attach[], a list. - $default->log->debug("CREATE SB CHAIN: fields_to_attach " .print_r($fields_to_attach, true)); - if (empty($fields_to_attach)) { - return $this->errorRedirectToMain("No fields specified."); - } else { - // get the list of fields, and their "chained" values. - // we key this by field. - $chained_direct_values = array(); - foreach ($fields_to_attach as $field_id) { - $chained_direct_values[$field_id] = array(); - // we now grab the appropriate values from the form. - // these will have been input as "direct_values_{$field_id} - $direct_values = KTUtil::arrayGet($_REQUEST, "direct_values_".$field_id); - if (empty($direct_values)) { - return $this->errorRedirectToMain("Missing input for field ".$field_id); - } else { - foreach ($direct_values as $lookup_id) { - // FIXME use MetaData::get() on these to verify their existence. - $chained_direct_values[$field_id][] = $lookup_id; - } - } - } - } - - $default->log->debug("CREATE SB CHAIN: lookup_id (2) " .print_r($lookup_id, true)); - $rulesets_to_attach = KTUtil::arrayGet($_REQUEST, 'rulesets_to_attach'); - - $oFieldset = KTFieldset::get($fieldset_id); - if (PEAR::isError($oFieldset)) { - return $this->errorRedirectToMain("Invalid Fieldset."); - } - - $resObj = MDConditionNode::createFromArray(array( - "iFieldId" => $starting_id, - "iLookupId" => $base_lookup_id, - "sName" => $rule_name, - )); - - $default->log->debug("CREATE SB CHAIN: created master chain node " .print_r($resObj, true)); - - // WE DON'T CREATE A PARENT-CHAIN ... this one must be picked up by other nodes. - - // the id of this "master rule". - $master_rule_id = $resObj->getId(); - - // walk the connections to make, and ... - // NBM: please make this transactional... - foreach ($chained_direct_values as $field_id => $lookup_ids) { - foreach ($lookup_ids as $lookup_id) { - $lookupCreation = MDConditionNode::createFromArray(array( - "iFieldId" => $field_id, - "iLookupId" => $lookup_id, - )); - if (PEAR::isError($lookupCreation)) { - return $this->errorRedirectToMain("Error creating link to ".$field_id." => ".$lookup_id); - } - $lookupChain = MDConditionChain::createFromArray(array( - "iParentCondition" => $master_rule_id, - "iChildCondition" => $lookupCreation->getId(), - )); - if (PEAR::isError($lookupChain)) { - return $this->errorRedirectToMain("Error creating link to ".$field_id." => ".$lookup_id); - } - } - } - if (!empty($rulesets_to_attach)) { - foreach ($rulesets_to_attach as $child_ruleset) { - $lookupChain = MDConditionChain::createFromArray(array( - "iParentCondition" => $master_rule_id, - "iChildCondition" => $child_ruleset, - )); - if (PEAR::isError($lookupChain)) { - return $this->errorRedirectToMain("Error creating link to ruleset ".$child_ruleset); - } - } - } - $default->log->debug("CREATE SB CHAIN: done."); - return $this->errorRedirectToMain("Created ruleset."); - } - } $oDispatcher = new ManageConditionalDispatcher();