Browse Source

Fixing session search see #6755

Julio Montoya 11 years ago
parent
commit
230522319a
3 changed files with 33 additions and 21 deletions
  1. 18 9
      main/admin/session_list.php
  2. 11 10
      main/inc/ajax/model.ajax.php
  3. 4 2
      main/inc/lib/sessionmanager.lib.php

+ 18 - 9
main/admin/session_list.php

@@ -18,8 +18,8 @@ api_protect_admin_script(true);
 //Add the JS needed to use the jqgrid
 $htmlHeadXtra[] = api_get_jqgrid_js();
 
-$action = $_REQUEST['action'];
-$idChecked = $_REQUEST['idChecked'];
+$action = isset($_REQUEST['action']) ? $_REQUEST['action'] : null;
+$idChecked = isset($_REQUEST['idChecked']) ? $_REQUEST['idChecked'] : null;
 
 if ($action == 'delete') {
 	SessionManager::delete_session($idChecked);
@@ -78,27 +78,37 @@ if (!empty($courseId)) {
 
 if (isset($_REQUEST['keyword'])) {
     //Begin with see the searchOper param
-    $url = api_get_path(WEB_AJAX_PATH).'model.ajax.php?a=get_sessions&_search=true&rows=20&page=1&sidx=&sord=asc&filters=&searchField=name&searchString='.Security::remove_XSS($_REQUEST['keyword']).'&searchOper=bw';
+    $url = api_get_path(WEB_AJAX_PATH).'model.ajax.php?a=get_sessions&_force_search=true&rows=20&page=1&sidx=&sord=asc&filters=&searchField=s.name&searchString='.Security::remove_XSS($_REQUEST['keyword']).'&searchOper=bw';
 }
 
 if (isset($_REQUEST['id_category'])) {
     $sessionCategory = SessionManager::get_session_category($_REQUEST['id_category']);
     if (!empty($sessionCategory)) {
         //Begin with see the searchOper param
-        $url = api_get_path(WEB_AJAX_PATH).'model.ajax.php?a=get_sessions&_search=true&rows=20&page=1&sidx=&sord=asc&filters=&searchField=category_name&searchString='.Security::remove_XSS($sessionCategory['name']).'&searchOper=bw';
+        $url = api_get_path(WEB_AJAX_PATH).'model.ajax.php?a=get_sessions&_force_search=true&rows=20&page=1&sidx=&sord=asc&filters=&searchField=sc.name&searchString='.Security::remove_XSS($sessionCategory['name']).'&searchOper=bw';
     }
 }
 
 //The order is important you need to check the the $column variable in the model.ajax.php file
-$columns = array(get_lang('Name'), get_lang('NumberOfCourses'), get_lang('NumberOfUsers'), get_lang('SessionCategoryName'),
-                 get_lang('StartDate'), get_lang('EndDate'), get_lang('Coach'),  get_lang('Status'), get_lang('Visibility'), get_lang('Actions'));
+$columns = array(
+    get_lang('Name'),
+    get_lang('NumberOfCourses'),
+    get_lang('NumberOfUsers'),
+    get_lang('SessionCategoryName'),
+    get_lang('StartDate'),
+    get_lang('EndDate'),
+    get_lang('Coach'),
+    get_lang('Status'),
+    get_lang('Visibility'),
+    get_lang('Actions')
+);
 
 //Column config
 $column_model   = array(
     array('name'=>'name',           'index'=>'s.name',        'width'=>'160',  'align'=>'left', 'search' => 'true', 'wrap_cell' => "true"),
     array('name'=>'nbr_courses',    'index'=>'nbr_courses',   'width'=>'30',   'align'=>'left', 'search' => 'true'),
     array('name'=>'nbr_users',      'index'=>'nbr_users',     'width'=>'30',   'align'=>'left', 'search' => 'true'),
-    array('name'=>'category_name',  'index'=>'category_name', 'width'=>'70',   'align'=>'left', 'search' => 'true'),
+    array('name'=>'category_name',  'index'=>'sc.name', 'width'=>'70',   'align'=>'left', 'search' => 'true'),
     array('name'=>'date_start',     'index'=>'s.date_start',    'width'=>'40',   'align'=>'left', 'search' => 'true'),
     array('name'=>'date_end',       'index'=>'s.date_end',      'width'=>'40',   'align'=>'left', 'search' => 'true'),
     array('name'=>'coach_name',     'index'=>'coach_name',    'width'=>'80',   'align'=>'left', 'search' => 'false'),
@@ -187,8 +197,7 @@ $(function() {
     },buttonicon:'ui-icon-document'})
     */
 
-
-    //Adding search options
+    // Adding search options
     var options = {
         'stringResult': true,
         'autosearch' : true,

+ 11 - 10
main/inc/ajax/model.ajax.php

@@ -94,16 +94,17 @@ function get_where_clause($col, $oper, $val)
     return " $col {$ops[$oper]} '$val' ";
 }
 
-$where_condition = ""; //if there is no search request sent by jqgrid, $where should be empty
-
-$operation    = isset($_REQUEST['oper'])  ? $_REQUEST['oper']  : false;
-$export_format    = isset($_REQUEST['export_format'])  ? $_REQUEST['export_format']  : 'csv';
-
-$search_field    = isset($_REQUEST['searchField'])  ? $_REQUEST['searchField']  : false;
-$search_oper     = isset($_REQUEST['searchOper'])   ? $_REQUEST['searchOper']   : false;
-$search_string   = isset($_REQUEST['searchString']) ? $_REQUEST['searchString'] : false;
-
-if ($_REQUEST['_search'] == 'true') {
+//if there is no search request sent by jqgrid, $where should be empty
+$where_condition = "";
+$operation = isset($_REQUEST['oper'])  ? $_REQUEST['oper']  : false;
+$export_format = isset($_REQUEST['export_format'])  ? $_REQUEST['export_format']  : 'csv';
+$search_field = isset($_REQUEST['searchField'])  ? $_REQUEST['searchField']  : false;
+$search_oper = isset($_REQUEST['searchOper'])   ? $_REQUEST['searchOper']   : false;
+$search_string = isset($_REQUEST['searchString']) ? $_REQUEST['searchString'] : false;
+$search = isset($_REQUEST['_search']) ? $_REQUEST['_search'] : false;
+$forceSearch = isset($_REQUEST['_force_search']) ? $_REQUEST['_force_search'] : false;
+
+if ($search || $forceSearch) {
     $where_condition = ' 1 = 1 ';
     $where_condition_in_form = get_where_clause($search_field, $search_oper, $search_string);
 

+ 4 - 2
main/inc/lib/sessionmanager.lib.php

@@ -223,7 +223,9 @@ class SessionManager
 
         $extraJoin = null;
 
-        if (api_is_session_admin() && api_get_setting('allow_session_admins_to_manage_all_sessions') == 'false') {
+        if (api_is_session_admin() &&
+            api_get_setting('allow_session_admins_to_manage_all_sessions') == 'false'
+        ) {
             $where .= " AND (
                             s.session_admin_id = $user_id  OR
                             sru.id_user = '$user_id' AND
@@ -283,7 +285,7 @@ class SessionManager
                     INNER JOIN $tbl_user u ON s.id_coach = u.user_id
                     $courseCondition
                     $extraJoin
-                $where AND $where_condition  ) as session_table";
+                $where AND $where_condition ) as session_table";
 
         if (api_is_multiple_url_enabled()) {