Commit 1c9d492a22650b972f8473209255d92d89d3ec1b

Authored by Neil Blakey-Milner
1 parent d0528527

Implement completeness-related work - any change in a conditional

fieldset sets the fieldset as incomplete, requiring the use of
"checkComplete" to set it to be complete again, which checks if it can
be considered complete first.


git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@3806 c91229c3-7414-0410-bfa2-8a42b809f60b
presentation/lookAndFeel/knowledgeTree/administration/docfieldmanagement/documentFields.php
@@ -169,6 +169,7 @@ class KTDocumentFieldDispatcher extends KTStandardDispatcher { @@ -169,6 +169,7 @@ class KTDocumentFieldDispatcher extends KTStandardDispatcher {
169 function do_becomeconditional() { 169 function do_becomeconditional() {
170 $oFieldset =& KTFieldset::get($_REQUEST['fFieldsetId']); 170 $oFieldset =& KTFieldset::get($_REQUEST['fFieldsetId']);
171 $oFieldset->setIsConditional(true); 171 $oFieldset->setIsConditional(true);
  172 + $oFieldset->setIsComplete(false);
172 $res = $oFieldset->update(); 173 $res = $oFieldset->update();
173 if (PEAR::isError($res) || ($res === false)) { 174 if (PEAR::isError($res) || ($res === false)) {
174 $this->errorRedirectTo('edit', 'Could not become conditional', 'fFieldsetId=' . $oFieldset->getId()); 175 $this->errorRedirectTo('edit', 'Could not become conditional', 'fFieldsetId=' . $oFieldset->getId());
@@ -183,6 +184,7 @@ class KTDocumentFieldDispatcher extends KTStandardDispatcher { @@ -183,6 +184,7 @@ class KTDocumentFieldDispatcher extends KTStandardDispatcher {
183 function do_removeconditional() { 184 function do_removeconditional() {
184 $oFieldset =& KTFieldset::get($_REQUEST['fFieldsetId']); 185 $oFieldset =& KTFieldset::get($_REQUEST['fFieldsetId']);
185 $oFieldset->setIsConditional(false); 186 $oFieldset->setIsConditional(false);
  187 + $oFieldset->setIsComplete(true);
186 $res = $oFieldset->update(); 188 $res = $oFieldset->update();
187 if (PEAR::isError($res) || ($res === false)) { 189 if (PEAR::isError($res) || ($res === false)) {
188 $this->errorRedirectTo('edit', 'Could not stop being conditional', 'fFieldsetId=' . $oFieldset->getId()); 190 $this->errorRedirectTo('edit', 'Could not stop being conditional', 'fFieldsetId=' . $oFieldset->getId());
@@ -248,12 +250,19 @@ class KTDocumentFieldDispatcher extends KTStandardDispatcher { @@ -248,12 +250,19 @@ class KTDocumentFieldDispatcher extends KTStandardDispatcher {
248 $aFreeFields[] =& DocumentField::get($iId); 250 $aFreeFields[] =& DocumentField::get($iId);
249 } 251 }
250 } 252 }
  253 + $res = KTMetadataUtil::checkConditionalFieldsetCompleteness($oFieldset);
  254 + if (PEAR::isError($res)) {
  255 + $sIncomplete = $res->getMessage();
  256 + } else {
  257 + $sIncomplete = null;
  258 + }
251 $oTemplate->setData(array( 259 $oTemplate->setData(array(
252 'oFieldset' => $oFieldset, 260 'oFieldset' => $oFieldset,
253 'free_fields' => $aFreeFields, 261 'free_fields' => $aFreeFields,
254 'parent_fields' => $aParentFields, 262 'parent_fields' => $aParentFields,
255 'aFieldOrders' => $aFieldOrders, 263 'aFieldOrders' => $aFieldOrders,
256 'oMasterField' => $oMasterField, 264 'oMasterField' => $oMasterField,
  265 + 'sIncomplete' => $sIncomplete,
257 )); 266 ));
258 return $oTemplate; 267 return $oTemplate;
259 } 268 }
@@ -299,6 +308,29 @@ class KTDocumentFieldDispatcher extends KTStandardDispatcher { @@ -299,6 +308,29 @@ class KTDocumentFieldDispatcher extends KTStandardDispatcher {
299 exit(0); 308 exit(0);
300 } 309 }
301 // }}} 310 // }}}
  311 +
  312 + // {{{ do_checkComplete
  313 + /**
  314 + * Checks whether the fieldset is complete, and if it is, sets it to
  315 + * be complete in the database. Otherwise, set it to not be
  316 + * complete in the database (just in case), and set the error
  317 + * messages as to why it isn't.
  318 + */
  319 + function do_checkComplete() {
  320 + $oFieldset =& $this->oValidator->validateFieldset($_REQUEST['fFieldsetId']);
  321 + $res = KTMetadataUtil::checkConditionalFieldsetCompleteness($oFieldset);
  322 + if ($res === true) {
  323 + $oFieldset->setIsComplete(true);
  324 + $oFieldset->update();
  325 + $this->successRedirectTo('manageConditional', 'Set to complete', 'fFieldsetId=' . $oFieldset->getId());
  326 + }
  327 + $oFieldset->setIsComplete(false);
  328 + $oFieldset->update();
  329 + // Success, as we want to save the incompleteness to the
  330 + // database...
  331 + $this->successRedirectTo('manageConditional', 'Could not to complete', 'fFieldsetId=' . $oFieldset->getId());
  332 + }
  333 + // }}}
302 } 334 }
303 335
304 $d =& new KTDocumentFieldDispatcher; 336 $d =& new KTDocumentFieldDispatcher;