diff --git a/presentation/lookAndFeel/knowledgeTree/administration/docfieldmanagement/documentFields.php b/presentation/lookAndFeel/knowledgeTree/administration/docfieldmanagement/documentFields.php index d6dd7b7..d625668 100644 --- a/presentation/lookAndFeel/knowledgeTree/administration/docfieldmanagement/documentFields.php +++ b/presentation/lookAndFeel/knowledgeTree/administration/docfieldmanagement/documentFields.php @@ -7,6 +7,7 @@ require_once(KT_LIB_DIR . '/templating/templating.inc.php'); require_once(KT_LIB_DIR . '/documentmanagement/DocumentField.inc'); require_once(KT_LIB_DIR . '/metadata/fieldset.inc.php'); require_once(KT_LIB_DIR . '/metadata/metadatautil.inc.php'); +require_once(KT_LIB_DIR . '/validation/dispatchervalidation.inc.php'); $sectionName = "Administration"; require_once(KT_DIR . "/presentation/webpageTemplate.inc"); @@ -14,6 +15,7 @@ require_once(KT_DIR . "/presentation/webpageTemplate.inc"); class KTDocumentFieldDispatcher extends KTStandardDispatcher { var $bAutomaticTransaction = true; + // {{{ do_main function do_main () { $oTemplating =& KTTemplating::getSingleton(); $oTemplate =& $oTemplating->loadTemplate('ktcore/metadata/listFieldsets'); @@ -22,7 +24,9 @@ class KTDocumentFieldDispatcher extends KTStandardDispatcher { )); return $oTemplate; } + // }}} + // {{{ do_edit function do_edit() { $oTemplating =& KTTemplating::getSingleton(); $oTemplate =& $oTemplating->loadTemplate('ktcore/metadata/editFieldset'); @@ -32,7 +36,9 @@ class KTDocumentFieldDispatcher extends KTStandardDispatcher { )); return $oTemplate; } + // }}} + // {{{ edit_object function do_editobject() { $oFieldset =& KTFieldset::get($_REQUEST['fFieldsetId']); $oFieldset->setName($_REQUEST['name']); @@ -42,10 +48,35 @@ class KTDocumentFieldDispatcher extends KTStandardDispatcher { $this->errorRedirectTo('edit', 'Could not save fieldset changes', 'fFieldsetId=' . $oFieldset->getId()); exit(0); } - $this->errorRedirectTo('edit', 'Changes saved', 'fFieldsetId=' . $oFieldset->getId()); + $this->successRedirectTo('edit', 'Changes saved', 'fFieldsetId=' . $oFieldset->getId()); exit(0); } + // }}} + // {{{ do_new + function do_new() { + if (KTUtil::arrayGet($_REQUEST, 'generic')) { + $generic = true; + } else { + $generic = false; + } + $res = KTFieldset::createFromArray(array( + 'name' => $_REQUEST['name'], + 'namespace' => $_REQUEST['namespace'], + 'mandatory' => false, + 'isconditional' => false, + 'isgeneric' => $generic, + )); + if (PEAR::isError($res) || ($res === false)) { + $this->errorRedirectToMain('Could not create fieldset'); + exit(0); + } + $this->successRedirectTo('edit', 'Fieldset created', 'fFieldsetId=' . $res->getId()); + exit(0); + } + // }}} + + // {{{ do_newfield function do_newfield() { $is_lookup = false; $is_tree = false; @@ -68,10 +99,16 @@ class KTDocumentFieldDispatcher extends KTStandardDispatcher { $this->errorRedirectTo('edit', 'Could not create field', 'fFieldsetId=' . $oFieldset->getId()); exit(0); } - $this->errorRedirectTo('edit', 'Field created', 'fFieldsetId=' . $oFieldset->getId()); + if ($is_lookup) { + $this->successRedirectTo('editField', 'Field created', 'fFieldsetId=' . $oFieldset->getId() . '&fFieldId=' . $oField->getId()); + } else { + $this->successRedirectTo('edit', 'Field created', 'fFieldsetId=' . $oFieldset->getId()); + } exit(0); } + // }}} + // {{{ do_editField function do_editField() { $oTemplating =& KTTemplating::getSingleton(); $oTemplate =& $oTemplating->loadTemplate('ktcore/metadata/editField'); @@ -83,7 +120,27 @@ class KTDocumentFieldDispatcher extends KTStandardDispatcher { )); return $oTemplate; } + // }}} + + // {{{ do_editFieldObject + function do_editFieldObject() { + $oTemplating =& KTTemplating::getSingleton(); + $oTemplate =& $oTemplating->loadTemplate('ktcore/metadata/editField'); + $oFieldset =& KTFieldset::get($_REQUEST['fFieldsetId']); + $oField =& DocumentField::get($_REQUEST['fFieldId']); + + $oField->setName($_REQUEST['name']); + $res = $oField->update(); + if (PEAR::isError($res) || ($res === false)) { + $this->errorRedirectTo('editField', 'Could not save field changes', 'fFieldsetId=' . $oFieldset->getId() . '&fFieldId=' . $oField->getId()); + exit(0); + } + $this->successRedirectTo('editField', 'Changes saved', 'fFieldsetId=' . $oFieldset->getId() . '&fFieldId=' . $oField->getId()); + exit(0); + } + // }}} + // {{{ do_addLookups function do_addLookups() { $oFieldset =& KTFieldset::get($_REQUEST['fFieldsetId']); $oField =& DocumentField::get($_REQUEST['fFieldId']); @@ -94,13 +151,102 @@ class KTDocumentFieldDispatcher extends KTStandardDispatcher { $this->successRedirectTo('editField', 'Lookup added', 'fFieldsetId=' . $oFieldset->getId() . '&fFieldId=' . $oField->getId()); exit(0); } + // }}} + + // {{{ do_removeLookups + function do_removeLookups() { + $oFieldset =& KTFieldset::get($_REQUEST['fFieldsetId']); + $oField =& DocumentField::get($_REQUEST['fFieldId']); + foreach ($_REQUEST['metadata'] as $iMetaDataId) { + $oMetaData =& MetaData::get($iMetaDataId); + $oMetaData->delete(); + } + $this->successRedirectTo('editField', 'Lookups removed', 'fFieldsetId=' . $oFieldset->getId() . '&fFieldId=' . $oField->getId()); + exit(0); + } + // }}} + + // {{{ do_becomeconditional + function do_becomeconditional() { + $oFieldset =& KTFieldset::get($_REQUEST['fFieldsetId']); + $oFieldset->setIsConditional(true); + $res = $oFieldset->update(); + if (PEAR::isError($res) || ($res === false)) { + $this->errorRedirectTo('edit', 'Could not become conditional', 'fFieldsetId=' . $oFieldset->getId()); + exit(0); + } + $this->successRedirectTo('edit', 'Became conditional', 'fFieldsetId=' . $oFieldset->getId()); + exit(0); + } + // }}} + + // {{{ do_removeconditional + function do_removeconditional() { + $oFieldset =& KTFieldset::get($_REQUEST['fFieldsetId']); + $oFieldset->setIsConditional(false); + $res = $oFieldset->update(); + if (PEAR::isError($res) || ($res === false)) { + $this->errorRedirectTo('edit', 'Could not stop being conditional', 'fFieldsetId=' . $oFieldset->getId()); + exit(0); + } + $this->successRedirectTo('edit', 'Became no longer conditional', 'fFieldsetId=' . $oFieldset->getId()); + exit(0); + } + // }}} + + // {{{ do_removeFields + function do_removeFields() { + $oFieldset =& KTFieldset::get($_REQUEST['fFieldsetId']); + foreach ($_REQUEST['fields'] as $iFieldId) { + $oField =& DocumentField::get($iFieldId); + $oField->delete(); + } + $this->successRedirectTo('edit', 'Fields removed', 'fFieldsetId=' . $oFieldset->getId()); + exit(0); + } + // }}} - function handleOutput($data) { - global $main; - $main->bFormDisabled = true; - $main->setCentralPayload($data); - $main->render(); + // {{{ do_manageConditional + function do_manageConditional () { + $oTemplating =& KTTemplating::getSingleton(); + $oTemplate =& $oTemplating->loadTemplate('ktcore/metadata/conditional/manageConditional'); + $oFieldset =& KTFieldset::get($_REQUEST['fFieldsetId']); + $sTable = KTUtil::getTableName('field_orders'); + $aQuery = array( + "SELECT parent_field_id, child_field_id FROM $sTable WHERE fieldset_id = ?", + array($oFieldset->getId()) + ); + $aFieldOrders = DBUtil::getResultArray($aQuery); + $oTemplate->setData(array( + 'oFieldset' => $oFieldset, + 'free_fields' => $oFieldset->getFields(), + 'parent_fields' => $oFieldset->getFields(), + 'aFieldOrders' => $aFieldOrders, + )); + return $oTemplate; + } + // }}} + + // {{{ + function do_orderFields() { + $oFieldset =& KTFieldset::get($_REQUEST['fFieldsetId']); + $aFreeFieldIds = $_REQUEST['fFreeFieldIds']; + $iParentFieldId = $_REQUEST['fParentFieldId']; + if (in_array($aParentFieldId, $aFreeFieldIds)) { + $this->errorRedirectTo('manageConditional', 'Field cannot be its own parent field', 'fFieldsetId=' . $oFieldset->getId()); + } + foreach ($aFreeFieldIds as $iChildFieldId) { + $res = KTMetadataUtil::addFieldOrder($iParentFieldId, $iChildFieldId); + var_dump($res); + KTDispatcherValidation::notError($this, $res, array( + 'redirect_to' => array('manageConditional', 'fFieldsetId=' . $oFieldset->getId()), + 'message' => 'Error adding Fields', + )); + } + $this->successRedirectTo('manageConditional', 'Fields ordered', 'fFieldsetId=' . $oFieldset->getId()); + exit(0); } + // }}} } $d =& new KTDocumentFieldDispatcher;