Selaa lähdekoodia

Fix ajax call, when filtering sessions with a letter.

jmontoyaa 7 vuotta sitten
vanhempi
commit
8ceb907d48

+ 9 - 5
main/inc/lib/add_courses_to_session_functions.lib.php

@@ -1,6 +1,8 @@
 <?php
 /* For licensing terms, see /license.txt */
 
+use ChamiloSession as Session;
+
 /**
  * Class AddCourseToSession
  */
@@ -14,9 +16,11 @@ class AddCourseToSession
      * @assert ('abc', 'single') !== null
      * @assert ('abc', 'multiple') !== null
      */
-    public static function search_courses($needle, $type)
+    public static function search_courses($needle, $type, $id_session)
     {
-        global $tbl_session_rel_course, $id_session;
+        $tbl_session_rel_course = Database::get_main_table(TABLE_MAIN_SESSION_COURSE);
+        // Session value set in file add_courses_to_session.php
+        $id_session = (int) $id_session;
         $tbl_course = Database::get_main_table(TABLE_MAIN_COURSE);
         $course_title = null;
         $xajax_response = new xajaxResponse();
@@ -101,7 +105,7 @@ class AddCourseToSession
             $course_list = array();
             if ($type == 'single') {
                 while ($course = Database::fetch_array($rs)) {
-                    $course_list[] = $course['code'];
+                    $course_list[] = $course['id'];
                     $course_title = str_replace("'", "\'", $course_title);
                     $return .= '<a href="javascript: void(0);" onclick="javascript: add_course_to_session(\''.$course['id'].'\',\''.$course_title.' ('.$course['visual_code'].')'.'\')">'.$course['title'].' ('.$course['visual_code'].')</a><br />';
                 }
@@ -109,7 +113,7 @@ class AddCourseToSession
             } else {
                 $return .= '<select id="origin" name="NoSessionCoursesList[]" multiple="multiple" size="20" style="width:340px;">';
                 while ($course = Database::fetch_array($rs)) {
-                    $course_list[] = $course['code'];
+                    $course_list[] = $course['id'];
                     $course_title = str_replace("'", "\'", $course_title);
                     $return .= '<option value="'.$course['id'].'" title="'.htmlspecialchars($course['title'].' ('.$course['visual_code'].')', ENT_QUOTES).'">'.$course['title'].' ('.$course['visual_code'].')</option>';
                 }
@@ -117,7 +121,7 @@ class AddCourseToSession
                 $xajax_response -> addAssign('ajax_list_courses_multiple', 'innerHTML', api_utf8_encode($return));
             }
         }
-        $_SESSION['course_list'] = $course_list;
+        Session::write('course_list', $course_list);
 
         return $xajax_response;
     }

+ 8 - 4
main/session/add_courses_to_session.php

@@ -1,6 +1,8 @@
 <?php
 /* For licensing terms, see /license.txt */
 
+use ChamiloSession as Session;
+
 /**
  * @package chamilo.admin
  * @todo use formvalidator
@@ -23,14 +25,16 @@ $xajax->registerFunction(array('search_courses', 'AddCourseToSession', 'search_c
 $this_section = SECTION_PLATFORM_ADMIN;
 
 // setting breadcrumbs
-$interbreadcrumb[] = array('url' => 'session_list.php', 'name' => get_lang('SessionList'));
+$interbreadcrumb[] = array(
+    'url' => 'session_list.php',
+    'name' => get_lang('SessionList')
+);
 $interbreadcrumb[] = array(
     'url' => "resume_session.php?id_session=".$sessionId,
     'name' => get_lang('SessionOverview')
 );
 
 // Database Table Definitions
-$tbl_session_rel_course_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
 $tbl_session = Database::get_main_table(TABLE_MAIN_SESSION);
 $tbl_session_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_USER);
 $tbl_session_rel_course = Database::get_main_table(TABLE_MAIN_SESSION_COURSE);
@@ -214,7 +218,7 @@ unset($Courses);
             <?php
             if (!($add_type == 'multiple')) {
                 ?>
-                <input type="text" id="course_to_add" onkeyup="xajax_search_courses(this.value,'single')" class="form-control"/>
+                <input type="text" id="course_to_add" onkeyup="xajax_search_courses(this.value, 'single', <?php echo $sessionId; ?>)" class="form-control"/>
                 <div id="ajax_list_courses_single"></div>
             <?php
             } else {
@@ -238,7 +242,7 @@ unset($Courses);
                 <div class="code-course">
                     <?php echo get_lang('FirstLetterCourse'); ?> :
 
-                    <select name="firstLetterCourse" onchange = "xajax_search_courses(this.value,'multiple')" class="selectpicker show-tick form-control">
+                    <select name="firstLetterCourse" onchange = "xajax_search_courses(this.value,'multiple', <?php echo $sessionId; ?>)" class="selectpicker show-tick form-control">
                         <option value="%">--</option>
                         <?php
                         echo Display :: get_alphabet_options();