From: Coleman Watts Date: Thu, 21 Aug 2014 07:51:07 +0000 (+0100) Subject: CRM-14052 - Revert workarounds for tokenInput.js and cleanup tagset code X-Git-Url: https://vcs.fsf.org/?a=commitdiff_plain;h=47bc9cec347d431b5c7b6273b1228d56d14146a0;p=civicrm-core.git CRM-14052 - Revert workarounds for tokenInput.js and cleanup tagset code --- diff --git a/CRM/Contact/Form/Edit/TagsAndGroups.php b/CRM/Contact/Form/Edit/TagsAndGroups.php index 21a4f2f74e..8e09b3af29 100644 --- a/CRM/Contact/Form/Edit/TagsAndGroups.php +++ b/CRM/Contact/Form/Edit/TagsAndGroups.php @@ -165,7 +165,7 @@ class CRM_Contact_Form_Edit_TagsAndGroups { // build tag widget $parentNames = CRM_Core_BAO_Tag::getTagSet('civicrm_contact'); - CRM_Core_Form_Tag::buildQuickForm($form, $parentNames, 'civicrm_contact', $contactId, TRUE, TRUE); + CRM_Core_Form_Tag::buildQuickForm($form, $parentNames, 'civicrm_contact', $contactId, FALSE, TRUE); } $form->assign('tagGroup', $form->_tagGroup); } diff --git a/CRM/Core/Form/Tag.php b/CRM/Core/Form/Tag.php index 117c53075d..597c3beae0 100644 --- a/CRM/Core/Form/Tag.php +++ b/CRM/Core/Form/Tag.php @@ -153,31 +153,12 @@ class CRM_Core_Form_Tag { // are deleted we will have to set $params[tagset id] = '' which is done by above logic foreach ($params as $parentId => $value) { $newTagIds = array(); - $realTagIds = array(); + $tagIds = array(); if ($value) { - $tagsIDs = explode(',', $value); - foreach ($tagsIDs as $tagId) { - if (!is_numeric($tagId)) { - // check if user has selected existing tag or is creating new tag - // this is done to allow numeric tags etc. - $tagValue = explode(':::', $tagId); - - if (isset($tagValue[1]) && $tagValue[1] == 'value') { - $tagParams = array( - 'name' => $tagValue[0], - 'parent_id' => $parentId, - ); - $tagObject = CRM_Core_BAO_Tag::add($tagParams, CRM_Core_DAO::$_nullArray); - $tagId = $tagObject->id; - } - } - - $realTagIds[] = $tagId; - if ($form && $form->_action != CRM_Core_Action::UPDATE) { - $newTagIds[] = $tagId; - } - elseif (!array_key_exists($tagId, $existingTags)) { + $tagIds = explode(',', $value); + foreach ($tagIds as $tagId) { + if ($form && $form->_action != CRM_Core_Action::UPDATE || !array_key_exists($tagId, $existingTags)) { $newTagIds[] = $tagId; } } @@ -189,8 +170,8 @@ class CRM_Core_Form_Tag { WHERE civicrm_tag.id=civicrm_entity_tag.tag_id AND civicrm_entity_tag.entity_table='{$entityTable}' AND entity_id={$entityId} AND parent_id={$parentId}"; - if (!empty($realTagIds)) { - $deleteSQL .= " AND tag_id NOT IN (" . implode(', ', $realTagIds) . ");"; + if (!empty($tagIds)) { + $deleteSQL .= " AND tag_id NOT IN (" . implode(', ', $tagIds) . ");"; } CRM_Core_DAO::executeQuery($deleteSQL);