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 169 function do_becomeconditional() {
170 170 $oFieldset =& KTFieldset::get($_REQUEST['fFieldsetId']);
171 171 $oFieldset->setIsConditional(true);
  172 + $oFieldset->setIsComplete(false);
172 173 $res = $oFieldset->update();
173 174 if (PEAR::isError($res) || ($res === false)) {
174 175 $this->errorRedirectTo('edit', 'Could not become conditional', 'fFieldsetId=' . $oFieldset->getId());
... ... @@ -183,6 +184,7 @@ class KTDocumentFieldDispatcher extends KTStandardDispatcher {
183 184 function do_removeconditional() {
184 185 $oFieldset =& KTFieldset::get($_REQUEST['fFieldsetId']);
185 186 $oFieldset->setIsConditional(false);
  187 + $oFieldset->setIsComplete(true);
186 188 $res = $oFieldset->update();
187 189 if (PEAR::isError($res) || ($res === false)) {
188 190 $this->errorRedirectTo('edit', 'Could not stop being conditional', 'fFieldsetId=' . $oFieldset->getId());
... ... @@ -248,12 +250,19 @@ class KTDocumentFieldDispatcher extends KTStandardDispatcher {
248 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 259 $oTemplate->setData(array(
252 260 'oFieldset' => $oFieldset,
253 261 'free_fields' => $aFreeFields,
254 262 'parent_fields' => $aParentFields,
255 263 'aFieldOrders' => $aFieldOrders,
256 264 'oMasterField' => $oMasterField,
  265 + 'sIncomplete' => $sIncomplete,
257 266 ));
258 267 return $oTemplate;
259 268 }
... ... @@ -299,6 +308,29 @@ class KTDocumentFieldDispatcher extends KTStandardDispatcher {
299 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 336 $d =& new KTDocumentFieldDispatcher;
... ...