Fix ajax call, when filtering sessions with a letter.

pull/2487/head
jmontoyaa 8 years ago
parent 8f45fcf8d7
commit 8ceb907d48
  1. 14
      main/inc/lib/add_courses_to_session_functions.lib.php
  2. 12
      main/session/add_courses_to_session.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;
}

@ -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();

Loading…
Cancel
Save