[svn r18038] Logic changes - Fixed user's name and course duplicated when you create or edit a session and users list is not correct into a course - see FS#3495

skala
Cristian Fasanando 17 years ago
parent 8f3a0c42cf
commit 4557d23a44
  1. 50
      main/admin/add_courses_to_session.php
  2. 45
      main/admin/add_users_to_session.php
  3. 4
      main/user/user.php

@ -102,12 +102,14 @@ function search_courses($needle)
OR course.title LIKE "'.$needle.'%"';
$rs = api_sql_query($sql, __FILE__, __LINE__);
$course_list = array();
while($course = Database :: fetch_array($rs))
{
{
$course_list[] = $course['code'];
$return .= '<a href="#" onclick="add_course_to_session(\''.$course['code'].'\',\''.$course['title'].' ('.$course['visual_code'].')'.'\')">'.$course['title'].' ('.$course['visual_code'].')</a><br />';
}
}
$_SESSION['course_list'] = $course_list;
$xajax_response -> addAssign('ajax_list_courses','innerHTML',utf8_encode($return));
return $xajax_response;
}
@ -122,11 +124,17 @@ function add_course_to_session (code, content) {
document.getElementById("ajax_list_courses").innerHTML = "";
destination = document.getElementById("destination");
destination.options[destination.length] = new Option(content,code);
destination.selectedIndex = -1;
sortOptions(destination.options);
for (i=0;i<destination.length;i++) {
if(destination.options[i].text == content) {
return false;
}
}
destination.options[destination.length] = new Option(content,code);
destination.selectedIndex = -1;
sortOptions(destination.options);
}
function remove_item(origin)
{
@ -149,7 +157,6 @@ $noPHP_SELF=true;
if($_POST['formSent'])
{
@ -235,25 +242,21 @@ if($_POST['formSent'])
Display::display_header($tool_name);
api_display_tool_title($tool_name);
/*$sql = 'SELECT COUNT(1) FROM '.$tbl_course;
$rs = api_sql_query($sql, __FILE__, __LINE__);
$count_courses = mysql_result($rs, 0, 0);*/
$ajax_search = $add_type == 'unique' ? true : false;
$nosessionCourses = $sessionCourses = array();
if($ajax_search)
{
$sql="SELECT code, title, visual_code, id_session
FROM $tbl_course course
INNER JOIN $tbl_session_rel_course session_rel_course
ON course.code = session_rel_course.course_code
AND session_rel_course.id_session = ".intval($id_session)."
ORDER BY ".(sizeof($courses)?"(code IN(".implode(',',$courses).")) DESC,":"")." title";
$result=api_sql_query($sql,__FILE__,__LINE__);
$Courses=api_store_result($result);
@ -274,7 +277,6 @@ else
$result=api_sql_query($sql,__FILE__,__LINE__);
$Courses=api_store_result($result);
foreach($Courses as $course)
{
if($course['id_session'] == $id_session)
@ -286,7 +288,8 @@ else
$nosessionCourses[$course['code']] = $course ;
}
}
}
}
unset($Courses);
if($add_type == 'multiple'){
@ -380,14 +383,12 @@ unset($nosessionCourses);
<?php
foreach($sessionCourses as $enreg)
{
?>
{
?>
<option value="<?php echo $enreg['code']; ?>"><?php echo $enreg['title'].' ('.$enreg['visual_code'].')'; ?></option>
<?php
<?php
}
unset($sessionCourses);
?>
@ -409,20 +410,25 @@ function moveItem(origin , destination){
}
destination.selectedIndex = -1;
sortOptions(destination.options);
}
function sortOptions(options) {
newOptions = new Array();
for (i = 0 ; i<options.length ; i++)
newOptions[i] = options[i];
for (i = 0 ; i<options.length ; i++) {
newOptions[i] = options[i];
}
newOptions = newOptions.sort(mysort);
options.length = 0;
for(i = 0 ; i < newOptions.length ; i++)
options[i] = newOptions[i];
for(i = 0 ; i < newOptions.length ; i++){
options[i] = newOptions[i];
}
}
function mysort(a, b){

@ -130,6 +130,13 @@ function add_user_to_session (code, content) {
document.getElementById("ajax_list_users").innerHTML = "";
destination = document.getElementById("destination_users");
for (i=0;i<destination.length;i++) {
if(destination.options[i].text == content) {
return false;
}
}
destination.options[destination.length] = new Option(content,code);
destination.selectedIndex = -1;
@ -262,15 +269,16 @@ if($ajax_search)
}
else
{
$sql="SELECT user_id, lastname, firstname, username, id_session
$sql="SELECT user_id, lastname, firstname, username, id_session
FROM $tbl_user
LEFT JOIN $tbl_session_rel_user
ON $tbl_session_rel_user.id_user = $tbl_user.user_id
ON $tbl_session_rel_user.id_user = $tbl_user.user_id AND id_session = '$id_session'
ORDER BY lastname,firstname,username";
$result=api_sql_query($sql,__FILE__,__LINE__);
$Users=api_store_result($result);
//var_dump($_REQUEST['id_session']);
foreach($Users as $user)
{
if($user['id_session'] == $id_session)
@ -341,44 +349,19 @@ if(!empty($errorMsg))
{
?>
<option value="<?php echo $enreg['user_id']; ?>"><?php echo $enreg['lastname'].' '.$enreg['firstname'].' ('.$enreg['username'].')'; ?></option>
<option value="<?php echo $enreg['user_id']; ?>" <?php if(in_array($enreg['user_id'],$UserList)) echo 'selected="selected"'; ?>><?php echo $enreg['lastname'].' '.$enreg['firstname'].' ('.$enreg['username'].')'; ?></option>
$xajax -> processRequests();
$htmlHeadXtra[] = $xajax->getJavascript('../inc/lib/xajax/');
$htmlHeadXtra[] = '
<script type="text/javascript">
function add_user_to_session (code, content) {
document.getElementById("user_to_add").value = "";
document.getElementById("ajax_list_users").innerHTML = "";
destination = document.getElementById("destination_users");
destination.options[destination.length] = new Option(content,code);
destination.selectedIndex = -1;
sortOptions(destination.options);
}
function remove_item(origin)
{
for(var i = 0 ; i<origin.options.length ; i++) {
if(origin.options[i].selected) {
origin.options[i]=null;
i = i-1;
}
}
}
</script>';
<?php
}
unset($nosessionUsersList);
?>
</select>
<?php
}
unset($nosessionUsersList);
?>
</div>
</td>

@ -1,4 +1,4 @@
<?php // $Id: user.php 17787 2009-01-17 00:41:06Z ivantcholakov $
<?php // $Id: user.php 18038 2009-01-27 23:16:42Z cfasanando $
/*
==============================================================================
Dokeos - elearning and course management software
@ -449,7 +449,7 @@ function get_user_data($from, $number_of_items, $column, $direction) {
if (!empty($_SESSION["id_session"])) {
$a_course_users = CourseManager :: get_user_list_from_course_code($_SESSION['_course']['id'], true, $_SESSION['id_session'], $limit, $order_by);
} else {
$a_course_users = CourseManager :: get_user_list_from_course_code($_SESSION['_course']['id'], true, 0, $limit, $order_by);
$a_course_users = CourseManager :: get_user_list_from_course_code($_SESSION['_course']['id'], false, 0, $limit, $order_by);
}
foreach ($a_course_users as $user_id=>$o_course_user) {

Loading…
Cancel
Save