From 6b9c7c1fd242f696ba1fe9463906e46b1941443e Mon Sep 17 00:00:00 2001
From: andrew morton <drewish@zivtech.com>
Date: Tue, 6 Dec 2011 10:16:18 -0800
Subject: [PATCH] Issue #1288438 by drewish: Followup to fix filtering after it is reset.

---
 includes/bean.pages.inc |   22 +++++++++-------------
 1 files changed, 9 insertions(+), 13 deletions(-)

diff --git a/includes/bean.pages.inc b/includes/bean.pages.inc
index 9649709..e26954b 100644
--- a/includes/bean.pages.inc
+++ b/includes/bean.pages.inc
@@ -58,16 +58,12 @@ function bean_list() {
 
   $sql_query->fields('b', array('bid', 'label', 'type', 'delta'));
   $sql_query = $sql_query->extend('TableSort')->extend('PagerDefault');
-  // Add filter
+
+  // Add filters
   $filters = bean_get_filter();
-  if (empty($filters)) {
-    $sql_query->limit(50);
-  }
-  else {
-    $sql_query->limit($filters['per_page']);
-    if (!empty($filters['types'])) {
-      $sql_query->condition('type', $filters['types'], 'IN');
-    }
+  $sql_query->limit($filters['per_page']);
+  if (!empty($filters['types'])) {
+    $sql_query->condition('type', $filters['types'], 'IN');
   }
 
   $beans = $sql_query->orderByHeader($header)->execute();
@@ -443,10 +439,10 @@ function bean_set_filter($filter) {
  * Get the filter
  */
 function bean_get_filter() {
-  $filters = !empty($_SESSION['bean-filter']) ? $_SESSION['bean-filter'] : array();
-  $types = empty($filters['types']) ? array() : $filters['types'];
-  $per_page = empty($filters['per_page']) ? array() : $filters['per_page'];
-  return compact('types', 'per_page');
+  // Pull any saved values from the session...
+  $filters = isset($_SESSION['bean-filter']) ? $_SESSION['bean-filter'] : array();
+  // ...fill in gaps with default values.
+  return $filters + array('types' => array(), 'per_page' => 50);
 }
 
 /**
-- 
1.7.0.4

