Commit 59bdfdc1f5666207792634e95612b800ad7a6a74
1 parent
a2e5a044
fix for KTS-977: saved searches don't take is/is not into account properly.
git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@5420 c91229c3-7414-0410-bfa2-8a42b809f60b
Showing
2 changed files
with
15 additions
and
12 deletions
lib/browse/Criteria.inc
| @@ -175,15 +175,18 @@ class BrowseCriterion { | @@ -175,15 +175,18 @@ class BrowseCriterion { | ||
| 175 | } | 175 | } |
| 176 | 176 | ||
| 177 | function getNotWidget($aPreValue=null) { | 177 | function getNotWidget($aPreValue=null) { |
| 178 | - if (is_null($aPreValue)) { | ||
| 179 | - $is_positive = true; | ||
| 180 | - } | ||
| 181 | if (!$this->bHandleNot) { return ''; } | 178 | if (!$this->bHandleNot) { return ''; } |
| 182 | 179 | ||
| 183 | // not perfect, but acceptable. | 180 | // not perfect, but acceptable. |
| 184 | $form_name = $this->getWidgetBase() . '_not'; | 181 | $form_name = $this->getWidgetBase() . '_not'; |
| 185 | $pos_select = ''; | 182 | $pos_select = ''; |
| 186 | $neg_select = ''; | 183 | $neg_select = ''; |
| 184 | + if (is_null($aPreValue)) { | ||
| 185 | + $is_positive = true; | ||
| 186 | + } else { | ||
| 187 | + $preval = KTUtil::arrayGet($aPreValue, $form_name, "0"); // by default, use "is" not "is not" | ||
| 188 | + $is_positive = ($preval == "0"); // 0 or empty or similar. | ||
| 189 | + } | ||
| 187 | if ($is_positive) { | 190 | if ($is_positive) { |
| 188 | $pos_select = ' selected="true"'; | 191 | $pos_select = ' selected="true"'; |
| 189 | } else { | 192 | } else { |
| @@ -220,7 +223,7 @@ class BrowseCriterion { | @@ -220,7 +223,7 @@ class BrowseCriterion { | ||
| 220 | if ($handle_not) { | 223 | if ($handle_not) { |
| 221 | $want_invert = KTUtil::arrayGet($aRequest, $this->getWidgetBase() . '_not'); | 224 | $want_invert = KTUtil::arrayGet($aRequest, $this->getWidgetBase() . '_not'); |
| 222 | 225 | ||
| 223 | - if (is_null($want_invert)) { | 226 | + if (is_null($want_invert) || ($want_invert == "0")) { // use explicit "0" check |
| 224 | return $val; | 227 | return $val; |
| 225 | } else { | 228 | } else { |
| 226 | $val[0] = '(NOT (' . $val[0] . '))'; | 229 | $val[0] = '(NOT (' . $val[0] . '))'; |
| @@ -394,7 +397,7 @@ class DateCreatedCriterion extends BrowseCriterion { | @@ -394,7 +397,7 @@ class DateCreatedCriterion extends BrowseCriterion { | ||
| 394 | // handle the boolean "not" stuff. | 397 | // handle the boolean "not" stuff. |
| 395 | $want_invert = KTUtil::arrayGet($aRequest, $this->getWidgetBase() . '_not'); | 398 | $want_invert = KTUtil::arrayGet($aRequest, $this->getWidgetBase() . '_not'); |
| 396 | 399 | ||
| 397 | - if (is_null($want_invert)) { | 400 | + if (is_null($want_invert) || ($want_invert == "0")) { |
| 398 | return $val; | 401 | return $val; |
| 399 | } else { | 402 | } else { |
| 400 | $val[0] = '(NOT (' . $val[0] . '))'; | 403 | $val[0] = '(NOT (' . $val[0] . '))'; |
| @@ -519,7 +522,7 @@ class GenericMetadataCriterion extends BrowseCriterion { | @@ -519,7 +522,7 @@ class GenericMetadataCriterion extends BrowseCriterion { | ||
| 519 | 522 | ||
| 520 | // handle the boolean "not" stuff. | 523 | // handle the boolean "not" stuff. |
| 521 | $want_invert = KTUtil::arrayGet($aRequest, $this->getWidgetBase() . '_not'); | 524 | $want_invert = KTUtil::arrayGet($aRequest, $this->getWidgetBase() . '_not'); |
| 522 | - if (is_null($want_invert)) { | 525 | + if (is_null($want_invert) || ($want_invert == "0")) { |
| 523 | return $p; | 526 | return $p; |
| 524 | } else { | 527 | } else { |
| 525 | $p[0] = '(NOT (' . $p[0] . '))'; | 528 | $p[0] = '(NOT (' . $p[0] . '))'; |
| @@ -600,7 +603,7 @@ class ContentCriterion extends BrowseCriterion { | @@ -600,7 +603,7 @@ class ContentCriterion extends BrowseCriterion { | ||
| 600 | 603 | ||
| 601 | // handle the boolean "not" stuff. | 604 | // handle the boolean "not" stuff. |
| 602 | $want_invert = KTUtil::arrayGet($aRequest, $this->getWidgetBase() . '_not'); | 605 | $want_invert = KTUtil::arrayGet($aRequest, $this->getWidgetBase() . '_not'); |
| 603 | - if (is_null($want_invert)) { | 606 | + if (is_null($want_invert) || ($want_invert == "0")) { |
| 604 | return $p; | 607 | return $p; |
| 605 | } else { | 608 | } else { |
| 606 | $p[0] = '(NOT (' . $p[0] . '))'; | 609 | $p[0] = '(NOT (' . $p[0] . '))'; |
| @@ -637,7 +640,7 @@ class WorkflowStateCriterion extends BrowseCriterion { | @@ -637,7 +640,7 @@ class WorkflowStateCriterion extends BrowseCriterion { | ||
| 637 | 640 | ||
| 638 | // handle the boolean "not" stuff. | 641 | // handle the boolean "not" stuff. |
| 639 | $want_invert = KTUtil::arrayGet($aRequest, $this->getWidgetBase() . '_not'); | 642 | $want_invert = KTUtil::arrayGet($aRequest, $this->getWidgetBase() . '_not'); |
| 640 | - if (is_null($want_invert)) { | 643 | + if (is_null($want_invert) || ($want_invert == "0")) { |
| 641 | return $p; | 644 | return $p; |
| 642 | } else { | 645 | } else { |
| 643 | $p[0] = '(NOT (' . $p[0] . '))'; | 646 | $p[0] = '(NOT (' . $p[0] . '))'; |
| @@ -710,7 +713,7 @@ class TransactionTextCriterion extends BrowseCriterion { | @@ -710,7 +713,7 @@ class TransactionTextCriterion extends BrowseCriterion { | ||
| 710 | 713 | ||
| 711 | // handle the boolean "not" stuff. | 714 | // handle the boolean "not" stuff. |
| 712 | $want_invert = KTUtil::arrayGet($aRequest, $this->getWidgetBase() . '_not'); | 715 | $want_invert = KTUtil::arrayGet($aRequest, $this->getWidgetBase() . '_not'); |
| 713 | - if (is_null($want_invert)) { | 716 | + if (is_null($want_invert) || ($want_invert == "0")) { |
| 714 | return $p; | 717 | return $p; |
| 715 | } else { | 718 | } else { |
| 716 | $p[0] = '(NOT (' . $p[0] . '))'; | 719 | $p[0] = '(NOT (' . $p[0] . '))'; |
| @@ -767,7 +770,7 @@ class SearchableTextCriterion extends BrowseCriterion { | @@ -767,7 +770,7 @@ class SearchableTextCriterion extends BrowseCriterion { | ||
| 767 | 770 | ||
| 768 | // handle the boolean "not" stuff. | 771 | // handle the boolean "not" stuff. |
| 769 | $want_invert = KTUtil::arrayGet($aRequest, $this->getWidgetBase() . '_not'); | 772 | $want_invert = KTUtil::arrayGet($aRequest, $this->getWidgetBase() . '_not'); |
| 770 | - if (is_null($want_invert)) { | 773 | + if (is_null($want_invert) || ($want_invert == "0")) { |
| 771 | return $p; | 774 | return $p; |
| 772 | } else { | 775 | } else { |
| 773 | $p[0] = '(NOT (' . $p[0] . '))'; | 776 | $p[0] = '(NOT (' . $p[0] . '))'; |
plugins/ktcore/admin/savedSearch.php
| @@ -98,11 +98,11 @@ class KTSavedSearchDispatcher extends KTAdminDispatcher { | @@ -98,11 +98,11 @@ class KTSavedSearchDispatcher extends KTAdminDispatcher { | ||
| 98 | } | 98 | } |
| 99 | 99 | ||
| 100 | $aSearch = $oSearch->getSearch(); | 100 | $aSearch = $oSearch->getSearch(); |
| 101 | - | 101 | + /* |
| 102 | print '<pre>'; | 102 | print '<pre>'; |
| 103 | print_r($aSearch); | 103 | print_r($aSearch); |
| 104 | exit(0); | 104 | exit(0); |
| 105 | - | 105 | + */ |
| 106 | 106 | ||
| 107 | $oTemplating =& KTTemplating::getSingleton(); | 107 | $oTemplating =& KTTemplating::getSingleton(); |
| 108 | $oTemplate = $oTemplating->loadTemplate("ktcore/boolean_search_edit"); | 108 | $oTemplate = $oTemplating->loadTemplate("ktcore/boolean_search_edit"); |