jenkins-bot has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/374388 )

Change subject: Make hierarchy filters compatible for multiple filters
......................................................................


Make hierarchy filters compatible for multiple filters

Change-Id: If1d11489ae678c72a8fb3aa2285aea2312e6125e
---
M drilldown/CargoDrilldownHierarchy.php
M drilldown/CargoSpecialDrilldown.php
2 files changed, 18 insertions(+), 11 deletions(-)

Approvals:
  Yaron Koren: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/drilldown/CargoDrilldownHierarchy.php 
b/drilldown/CargoDrilldownHierarchy.php
index c91a02a..9a3f4f2 100644
--- a/drilldown/CargoDrilldownHierarchy.php
+++ b/drilldown/CargoDrilldownHierarchy.php
@@ -14,37 +14,38 @@
                $cdb = CargoUtils::getDB();
                list( $tableNames, $conds, $joinConds ) = $f->getQueryParts( 
$fullTextSearchTerm, $appliedFilters );
                if ( $f->fieldDescription->mIsList ) {
-                       $countArg = "_rowID";
                        $fieldTableName = $f->tableName . '__' . $f->name;
+                       $countColumnName = $cdb->tableName( $fieldTableName ) . 
"._rowID";
                        if ( !in_array( $fieldTableName, $tableNames ) ) {
                                $tableNames[] = $fieldTableName;
                        }
-                       $fieldName = '_value';
+                       $fieldColumnName = '_value';
                        if ( !array_key_exists( $fieldTableName, $joinConds ) ) 
{
                                $joinConds[$fieldTableName] = 
CargoUtils::joinOfMainAndFieldTable( $cdb, $f->tableName, $fieldTableName );
                        }
                } else {
-                       $countArg = "_ID";
-                       $fieldName = $f->name;
+                       $fieldColumnName = $f->name;
                        $fieldTableName = $f->tableName;
+                       $countColumnName = $cdb->tableName( $fieldTableName ) . 
"._ID";
                }
 
-               $countClause = "COUNT(DISTINCT($countArg)) AS total";
+               $countClause = "COUNT(DISTINCT($countColumnName)) AS total";
 
                $hierarchyTableName = $f->tableName . '__' . $f->name . 
'__hierarchy';
+               $cargoHierarchyTableName = $cdb->tableName( $hierarchyTableName 
);
                if ( !in_array( $hierarchyTableName, $tableNames ) ) {
                        $tableNames[] = $hierarchyTableName;
                }
 
                if ( !array_key_exists( $hierarchyTableName, $joinConds ) ) {
                        $joinConds[$hierarchyTableName] = 
CargoUtils::joinOfSingleFieldAndHierarchyTable( $cdb,
-                               $fieldTableName, $fieldName, 
$hierarchyTableName );
+                               $fieldTableName, $fieldColumnName, 
$hierarchyTableName );
                }
                $withinTreeHierarchyConds = array();
                $exactRootHierarchyConds = array();
-               $withinTreeHierarchyConds[] = "_left >= $node->mLeft";
-               $withinTreeHierarchyConds[] = "_right <= $node->mRight";
-               $exactRootHierarchyConds[] = "_left = $node->mLeft";
+               $withinTreeHierarchyConds[] = "$cargoHierarchyTableName._left 
>= $node->mLeft";
+               $withinTreeHierarchyConds[] = "$cargoHierarchyTableName._right 
<= $node->mRight";
+               $exactRootHierarchyConds[] = "$cargoHierarchyTableName._left = 
$node->mLeft";
                // within hierarchy tree value count
                $res = $cdb->select( $tableNames, array( $countClause ), 
array_merge( $conds, $withinTreeHierarchyConds ),
                        null, null, $joinConds );
diff --git a/drilldown/CargoSpecialDrilldown.php 
b/drilldown/CargoSpecialDrilldown.php
index 2304aaf..e90ef4e 100644
--- a/drilldown/CargoSpecialDrilldown.php
+++ b/drilldown/CargoSpecialDrilldown.php
@@ -491,7 +491,13 @@
 
        function printAppliedFilterLineForHierarchy( $af ) {
                $applied_filters = $this->applied_filters;
-               $cur_url = $this->makeBrowseURL( $this->tableName, 
$this->fullTextSearchTerm, array() );
+               $applied_filters_no_hierarchy = array();
+               foreach( $applied_filters as $key => $af2 ) {
+                       if ( !$af2->filter->fieldDescription->mIsHierarchy ) {
+                               $applied_filters_no_hierarchy[] = $af2;
+                       }
+               }
+               $cur_url = $this->makeBrowseURL( $this->tableName, 
$this->fullTextSearchTerm, $applied_filters_no_hierarchy );
                $cur_url .= ( strpos( $cur_url, '?' ) ) ? '&' : '?';
                // Drilldown for hierarchy is designed for literal 'drilldown'
                // Therefore it has single filter value applied at anytime
@@ -581,7 +587,7 @@
                                if ( count( $node->mChildren ) > 0 && 
$node->mWithinTreeMatchCount > 0 && $depth < $maxDepth ) {
                                        $depth++;
                                        if ( $node->mLeft !== 1 ) {
-                                               $results_line .= " ยท (";
+                                               $results_line .= " (";
                                                $num_printed_values_level = 0;
                                                if ( 
$node->mExactRootMatchCount > 0 ) {
                                                        $filter_url = $cur_url 
. urlencode( str_replace( ' ', '_', $f->name ) ) . '=' .

-- 
To view, visit https://gerrit.wikimedia.org/r/374388
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: If1d11489ae678c72a8fb3aa2285aea2312e6125e
Gerrit-PatchSet: 2
Gerrit-Project: mediawiki/extensions/Cargo
Gerrit-Branch: master
Gerrit-Owner: Fz-29 <[email protected]>
Gerrit-Reviewer: Nischayn22 <[email protected]>
Gerrit-Reviewer: Oetterer <[email protected]>
Gerrit-Reviewer: Yaron Koren <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to