Commit b714ef17b766ea84b06e10cb146fb27e17e1d89a

Authored by Jalaloedien Abrahams
1 parent 5ef1f834

KTS-1686

"Fieldsets should not be deleted, but flagged instead. "
Fixed.

Reviewed By: Kevin

git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@6388 c91229c3-7414-0410-bfa2-8a42b809f60b
lib/database/dbutil.inc
... ... @@ -218,6 +218,15 @@ class DBUtil {
218 218 $aParams = array($iId);
219 219 return DBUtil::runQuery(array($sQuery, $aParams), $db);
220 220 }
  221 +
  222 + function deReference($sTable, $iId, $db = null) {
  223 + global $default;
  224 + // $default->log->debug('AutoDelete called for table ' . $sTable . ' with id ' . $iId);
  225 + $db =& DBUtil::getDB();
  226 + $sQuery = "UPDATE " . $sTable . " SET disabled = true WHERE id = ?";
  227 + $aParams = array($iId);
  228 + return DBUtil::runQuery(array($sQuery, $aParams), $db);
  229 + }
221 230  
222 231 function &whereDelete($sTable, $aWhereFieldValues, $db = null) {
223 232 global $default;
... ...
lib/ktentity.inc
... ... @@ -161,13 +161,17 @@ class KTEntity {
161 161 * @return boolean true on successful deletion, false otherwise and set $_SESSION["errorMessage"]
162 162 *
163 163 */
164   - function delete() {
  164 + function delete($dereference = null) {
165 165 $group = sprintf("%s/%s", get_class($this), 'id');
166 166 $oCache =& KTCache::getSingleton();
167 167 $oCache->remove($group, $this->iId);
168 168 $this->clearCachedGroups();
169 169 if ($this->iId >= 0) {
170   - $res = DBUtil::autoDelete($this->_table(), $this->iId);
  170 + if($dereference = 'true'){
  171 + $res = DBUtil::deReference($this->_table(), $this->iId);
  172 + }else{
  173 + $res = DBUtil::autoDelete($this->_table(), $this->iId);
  174 + }
171 175 if (PEAR::isError($res)) {
172 176 if ($this->_bUsePearError === false) {
173 177 $_SESSION['errorMessage'] = $res->toString();
... ...
lib/metadata/fieldset.inc.php
... ... @@ -158,6 +158,7 @@ class KTFieldset extends KTEntity {
158 158 ));
159 159 return KTEntityUtil::getByDict('KTFieldset', array(
160 160 'is_generic' => false,
  161 + 'disabled' => false,
161 162 ), $aOptions);
162 163 }
163 164  
... ... @@ -168,6 +169,7 @@ class KTFieldset extends KTEntity {
168 169 );
169 170 return KTEntityUtil::getByDict('KTFieldset', array(
170 171 'is_generic' => true,
  172 + 'disabled' => false,
171 173 ), $aOptions);
172 174 }
173 175  
... ... @@ -231,12 +233,14 @@ class KTFieldset extends KTEntity {
231 233 function &getByNamespace($sNamespace) {
232 234 return KTEntityUtil::getByDict('KTFieldset', array(
233 235 'namespace' => $sNamespace,
  236 + 'disabled' => false,
234 237 ));
235 238 }
236 239  
237 240 function &getByName($sName) {
238 241 return KTEntityUtil::getByDict('KTFieldset', array(
239 242 'name' => $sName,
  243 + 'disabled' => false,
240 244 ));
241 245 }
242 246 }
... ...
lib/metadata/metadatautil.inc.php
... ... @@ -684,7 +684,8 @@ class KTMetadataUtil {
684 684 "FROM $default->document_metadata_version_table AS DM INNER JOIN document_fields_link AS DFL ON DM.id = DFL.metadata_version_id " .
685 685 "INNER JOIN $default->document_fields_table AS DF ON DF.ID = DFL.document_field_id " .
686 686 "INNER JOIN $default->fieldsets_table AS F ON F.id = DF.parent_fieldset " .
687   - "WHERE DM.id = ?";
  687 + "WHERE DM.id = ?" .
  688 + "AND F.disabled = false";
688 689 $aParam = array($iMetadataVersionId);
689 690 $aDocumentFieldsetIds = DBUtil::getResultArrayKey(array($sQuery, $aParam), 'fieldset_id');
690 691  
... ...
lib/upgrades/UpgradeFunctions.inc.php
... ... @@ -785,7 +785,7 @@ class UpgradeFunctions {
785 785 '-12' => 'ktcore.criteria.searchabletext',
786 786 '-11' => 'ktcore.criteria.transactiontext');
787 787  
788   - $aFieldsets =& KTFieldset::getList();
  788 + $aFieldsets =& KTFieldset::getList('disabled != true');
789 789 foreach($aFieldsets as $oFieldset) {
790 790 $aFields =& DocumentField::getByFieldset($oFieldset);
791 791 foreach($aFields as $oField) {
... ...
plugins/ktcore/admin/documentFieldsv2.php
... ... @@ -54,7 +54,7 @@ class KTDocumentFieldDispatcher extends KTAdminDispatcher {
54 54  
55 55 $oTemplate->setData(array(
56 56 'context' => $this,
57   - 'fieldsets' => KTFieldset::getList(),
  57 + 'fieldsets' => KTFieldset::getList('disabled != true'),
58 58 ));
59 59 return $oTemplate;
60 60 }
... ... @@ -270,7 +270,7 @@ class KTDocumentFieldDispatcher extends KTAdminDispatcher {
270 270  
271 271 function do_delete() {
272 272 $this->startTransaction();
273   - $res = $this->oFieldset->delete();
  273 + $res = $this->oFieldset->delete('true');
274 274 $this->oValidator->notErrorFalse($res, array(
275 275 'redirect_to' => array('main', ''),
276 276 'message' => _kt('Could not delete fieldset'),
... ...
plugins/ktcore/admin/manageConditionals.php
... ... @@ -52,7 +52,7 @@ class ManageConditionalDispatcher extends KTAdminDispatcher {
52 52  
53 53 function do_main() {
54 54  
55   - $aFieldsets = KTFieldset::getList("is_conditional = 1");
  55 + $aFieldsets = KTFieldset::getList("is_conditional = 1 AND disabled != true");
56 56 $oTemplating =& KTTemplating::getSingleton();
57 57  
58 58 $oTemplate = $oTemplating->loadTemplate("ktcore/metadata/conditional/select_fieldset");
... ...