]> git.mjollnir.org Git - moodle.git/commitdiff
MDL-9907 searching/sorting by author name fixed when paging, MDL-14389 more transitio...
authorskodak <skodak>
Wed, 16 Apr 2008 13:54:01 +0000 (13:54 +0000)
committerskodak <skodak>
Wed, 16 Apr 2008 13:54:01 +0000 (13:54 +0000)
mod/data/lib.php
mod/data/view.php

index 05f51e9aca1cb610e9074b0405e07246e21daa5d..b5fe97c3b8f11811c5e453a4a41837c1b7ad52e9 100755 (executable)
@@ -1130,6 +1130,7 @@ function data_print_preference_form($data, $perpage, $search, $sort='', $order='
         //  End -->
         //]]>
         </script>';
+    echo '&nbsp;<input type="hidden" name="advanced" value="0" />';
     echo '&nbsp;<input type="checkbox" id="advancedcheckbox" name="advanced" value="1" '.$checked.' onchange="showHideAdvSearch(this.checked);" /><label for="advancedcheckbox">'.get_string('advancedsearch', 'data').'</label>';
     echo '&nbsp;<input type="submit" value="'.get_string('savesettings','data').'" />';
     
index 1d27c0bdb5e1df0fe78dcd638af0d777b7f93ee1..14101b78cccbed2b4bad84cf2afcfc8dd1584448 100755 (executable)
         $SESSION->dataprefs[$data->id]['advanced'] = 0;
         $SESSION->dataprefs[$data->id]['order'] = ($data->defaultsortdir == 0) ? 'ASC' : 'DESC';
     }
-    $advanced = optional_param('advanced', $SESSION->dataprefs[$data->id]['advanced'], PARAM_INT);
+
+    $advanced = optional_param('advanced', -1, PARAM_INT);
+    if ($advanced == -1) {
+        $advanced = $SESSION->dataprefs[$data->id]['advanced'];
+    } else {
+        if (!$advanced) {
+            // explicitly switched to normal mode - discard all advanced search settings
+            $SESSION->dataprefs[$data->id]['search_array'] = array();
+        }
+    }
+
     $search_array = $SESSION->dataprefs[$data->id]['search_array'];
     
     if (!empty($advanced)) {
             $fn = optional_param('u_fn', '', PARAM_NOTAGS);
             $ln = optional_param('u_ln', '', PARAM_NOTAGS);
         } else {
-            $fn = isset($search_array[DATA_FIRSTNAME]) ? $search_array[DATA_FIRSTNAME] : '';
-            $ln = isset($search_array[DATA_LASTNAME]) ? $search_array[DATA_LASTNAME] : '';
+            $fn = isset($search_array[DATA_FIRSTNAME]) ? $search_array[DATA_FIRSTNAME]->data : '';
+            $ln = isset($search_array[DATA_LASTNAME]) ? $search_array[DATA_LASTNAME]->data : '';
         }
         if (!empty($fn)) {
             $search_array[DATA_FIRSTNAME] = new object();
     }
 
     //Advanced search form doesn't make sense for single (redirects list view)
-    if ($records || $search || $page ||  $mode == 'asearch'  && $mode != 'single') {
+    if (($records || $search || $page ||  $mode == 'asearch') && $mode != 'single') {
         data_print_preference_form($data, $perpage, $search, $sort, $order, $search_array, $advanced, $mode);
     }