diff --git a/presentation/lookAndFeel/knowledgeTree/administration/docfieldmanagement/conditional/ajaxComplexConditionals.php b/presentation/lookAndFeel/knowledgeTree/administration/docfieldmanagement/conditional/ajaxComplexConditionals.php
new file mode 100644
index 0000000..4e8dc6d
--- /dev/null
+++ b/presentation/lookAndFeel/knowledgeTree/administration/docfieldmanagement/conditional/ajaxComplexConditionals.php
@@ -0,0 +1,92 @@
+loadTemplate('ktcore/metadata/conditional/ajax_complex_get_item_list');
+ return $oTemplate->render();
+ }
+
+ function do_getBehaviourList() {
+ $parent_behaviour = KTUtil::arrayGet($_REQUEST, 'parent_behaviour');
+ $fieldset_id = KTUtil::arrayGet($_REQUEST, 'fieldset_id');
+ $field_id = KTUtil::arrayGet($_REQUEST, 'field_id');
+
+ header('Content-type: application/xml');
+ $oTemplating =& KTTemplating::getSingleton();
+ $oTemplate =& $oTemplating->loadTemplate('ktcore/metadata/conditional/ajax_complex_get_behaviour_list');
+ return $oTemplate->render();
+ }
+
+ function do_getActiveFields() {
+ $parent_behaviour = KTUtil::arrayGet($_REQUEST, 'parent_behaviour');
+ $fieldset_id = KTUtil::arrayGet($_REQUEST, 'fieldset_id'); //
+
+ header('Content-type: application/xml');
+ $oTemplating =& KTTemplating::getSingleton();
+ $oTemplate =& $oTemplating->loadTemplate('ktcore/metadata/conditional/ajax_complex_get_active_fields');
+ return $oTemplate->render();
+ }
+
+ /** storage methods */
+ function do_createBehaviourAndAssign() {
+ $parent_behaviour = KTUtil::arrayGet($_REQUEST, 'parent_behaviour');
+ $fieldset_id = KTUtil::arrayGet($_REQUEST, 'fieldset_id');
+ $field_id = KTUtil::arrayGet($_REQUEST, 'field_id');
+ $behaviour_name = KTUtil::arrayGet($_REQUEST, 'behaviour_name');
+ $lookups_to_assign = KTUtil::arrayGet($_REQUEST, 'lookups_to_assign'); // array
+
+ header('Content-type: application/xml');
+ $oTemplating =& KTTemplating::getSingleton();
+ $oTemplate =& $oTemplating->loadTemplate('ktcore/metadata/conditional/ajax_complex_create_behaviour_and_assign');
+ return $oTemplate->render();
+ }
+
+ function do_useBehaviourAndAssign() {
+ $parent_behaviour = KTUtil::arrayGet($_REQUEST, 'parent_behaviour');
+ $fieldset_id = KTUtil::arrayGet($_REQUEST, 'fieldset_id');
+ $field_id = KTUtil::arrayGet($_REQUEST, 'field_id');
+ $behaviour_name = KTUtil::arrayGet($_REQUEST, 'behaviour_id');
+ $lookups_to_assign = KTUtil::arrayGet($_REQUEST, 'lookups_to_assign'); // array
+
+ header('Content-type: application/xml');
+ $oTemplating =& KTTemplating::getSingleton();
+ $oTemplate =& $oTemplating->loadTemplate('ktcore/metadata/conditional/ajax_complex_use_behaviour_and_assign');
+ return $oTemplate->render();
+ }
+
+
+}
+
+$oDispatcher = new AjaxConditionalAdminDispatcher();
+$oDispatcher->dispatch();
+
+?>
diff --git a/presentation/lookAndFeel/knowledgeTree/administration/docfieldmanagement/conditional/manageConditionals.php b/presentation/lookAndFeel/knowledgeTree/administration/docfieldmanagement/conditional/manageConditionals.php
index cf10d34..b95c2d4 100644
--- a/presentation/lookAndFeel/knowledgeTree/administration/docfieldmanagement/conditional/manageConditionals.php
+++ b/presentation/lookAndFeel/knowledgeTree/administration/docfieldmanagement/conditional/manageConditionals.php
@@ -48,6 +48,29 @@ class ManageConditionalDispatcher extends KTStandardDispatcher {
);
return $oTemplate->render($aTemplateData);
}
+
+ // FIXME refactor this into do_editSimple(fieldset_id);
+ function do_editComplexFieldset() {
+ $fieldset_id = KTUtil::arrayGet($_REQUEST, "fieldset_id");
+ $oTemplating = new KTTemplating;
+ $oTemplate = $oTemplating->loadTemplate("ktcore/metadata/conditional/editcomplex");
+ /* alright: to "do" this we need at least:
+ * 1. the list of all the columns (id, name) and their available values.
+ * 2. the fieldset_id.
+ * we can then render in/out. Everything "intelligent" happens
+ * in AJAX (doing it with submits sucks arse.
+ *
+ * FIXME we fake it here with nested arrays...
+ */
+ $oFieldset =& KTFieldset::get($fieldset_id);
+ $aFields =& $oFieldset->getFields();
+ $aTemplateData = array(
+ "fieldset_id" => $fieldset_id,
+ "aFields" => $aFields,
+ "iMasterFieldId" => $aFields[0]->getId(),
+ );
+ return $oTemplate->render($aTemplateData);
+ }
diff --git a/templates/ktcore/metadata/conditional/ajax_complex_create_behaviour_and_assign.smarty b/templates/ktcore/metadata/conditional/ajax_complex_create_behaviour_and_assign.smarty
new file mode 100644
index 0000000..9396129
--- /dev/null
+++ b/templates/ktcore/metadata/conditional/ajax_complex_create_behaviour_and_assign.smarty
@@ -0,0 +1,3 @@
+