Adding some fixes when using multiple URLS in the session list see BT#3368

skala
Julio Montoya 13 years ago
parent b7413bfc6b
commit c4faeaf3a8
  1. 26
      main/admin/session_list.php
  2. 9
      main/inc/ajax/model.ajax.php
  3. 4
      main/inc/lib/javascript/jquery-ui/default.css
  4. 211
      main/inc/lib/sessionmanager.lib.php

@ -1,13 +1,10 @@
<?php
/* For licensing terms, see /license.txt */
//@todo fix sort in this table or use jqgrid
$language_file = 'admin';
$cidReset = true;
require_once '../inc/global.inc.php';
$this_section = SECTION_PLATFORM_ADMIN;
api_protect_admin_script(true);
@ -15,31 +12,25 @@ api_protect_admin_script(true);
//Add the JS needed to use the jqgrid
$htmlHeadXtra[] = api_get_jquery_ui_js(true);
$action=$_REQUEST['action'];
$action = $_REQUEST['action'];
$idChecked = $_REQUEST['idChecked'];
if ($action == 'delete') {
SessionManager::delete_session($idChecked);
header('Location: '.api_get_self());
header('Location: session_list.php');
exit();
} elseif ($action == 'copy') {
SessionManager::copy_session($idChecked);
header('Location: '.api_get_self());
header('Location: session_list.php');
exit();
}
$interbreadcrumb[]=array("url" => "index.php","name" => get_lang('PlatformAdmin'));
//table for the search
$tool_name = get_lang('SessionList');
Display::display_header($tool_name);
//jqgrid will use this URL to do the selects
$url = api_get_path(WEB_AJAX_PATH).'model.ajax.php?a=get_sessions';
//The order is important you need to check the the $column variable in the model.ajax.php file
@ -54,12 +45,9 @@ $column_model = array(
array('name'=>'category_name', 'index'=>'category_name', 'width'=>'70', 'align'=>'left', 'search' => 'true'),
array('name'=>'date_start', 'index'=>'date_start', 'width'=>'40', 'align'=>'left', 'search' => 'true'),
array('name'=>'date_end', 'index'=>'date_end', 'width'=>'40', 'align'=>'left', 'search' => 'true'),
array('name'=>'coach_name', 'index'=>'coach_name', 'width'=>'80', 'align'=>'left', 'search' => 'false'),
array('name'=>'status', 'index'=>'session_active', 'width'=>'40', 'align'=>'left', 'search' => 'true', 'stype'=>'select',
array('name'=>'coach_name', 'index'=>'coach_name', 'width'=>'80', 'align'=>'left', 'search' => 'false'),
array('name'=>'status', 'index'=>'session_active','width'=>'40', 'align'=>'left', 'search' => 'true', 'stype'=>'select',
//for the bottom bar
'searchoptions' => array(
'defaultValue' => '1',
@ -77,7 +65,7 @@ $extra_params['autowidth'] = 'true';
//height auto
$extra_params['height'] = 'auto';
$extra_params['excel'] = 'excel';
//$extra_params['excel'] = 'excel';
$extra_params['rowList'] = array(10, 20 ,30);
@ -147,7 +135,7 @@ $(function() {
var options = {
'stringResult': true,
'autosearch' : true,
'searchOnEnter':false,
'searchOnEnter':false
}
jQuery("#sessions").jqGrid('filterToolbar',options);
var sgrid = $("#sessions")[0];

@ -7,8 +7,6 @@ $language_file = array('admin','exercice');
require_once '../global.inc.php';
$libpath = api_get_path(LIBRARY_PATH);
require_once $libpath.'array.lib.php';
@ -86,8 +84,7 @@ if ($_REQUEST['_search'] == 'true') {
$counter++;
}
$where_condition .= ' ) ';
}
}
}
// get index row - i.e. user click to sort $sord = $_GET['sord'];
@ -155,9 +152,7 @@ if ($_REQUEST['oper'] == 'del') {
//4. Querying the DB for the elements
$columns = array();
switch ($action) {
case 'get_exercise_results':
case 'get_exercise_results':
$is_allowedToEdit = api_is_allowed_to_edit(null,true);
$is_tutor = api_is_allowed_to_edit(true);

@ -22,8 +22,8 @@
color: #212121;
}
.ui-jqgrid .ui-pg-selbox {
height: 23px;
.ui-jqgrid .ui-pg-selbox {
height: 23px !important;
}

@ -164,8 +164,9 @@ class SessionManager {
$tbl_session_category = Database::get_main_table(TABLE_MAIN_SESSION_CATEGORY);
$tbl_user = Database::get_main_table(TABLE_MAIN_USER);
$where = '';
$where = 'WHERE 1=1 ';
$user_id = api_get_user_id();
if (api_is_session_admin()==true) {
$where.=" WHERE s.session_admin_id = $user_id ";
}
@ -181,6 +182,8 @@ class SessionManager {
$table_access_url_rel_session= Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_SESSION);
$access_url_id = api_get_current_access_url_id();
if ($access_url_id != -1) {
$where.= " AND ar.access_url_id = $access_url_id ";
$query_rows = "SELECT count(*) as total_rows
FROM $tbl_session s
LEFT JOIN $tbl_session_category sc ON s.session_category_id = sc.id
@ -199,111 +202,109 @@ class SessionManager {
* Gets the admin session list callback of the admin/session_list.php page
* @param array order and limit keys
*/
public function get_sessions_admin($options) {
$tbl_session = Database::get_main_table(TABLE_MAIN_SESSION);
$tbl_session_category = Database::get_main_table(TABLE_MAIN_SESSION_CATEGORY);
$tbl_user = Database::get_main_table(TABLE_MAIN_USER);
$where = 'WHERE 1=1 ';
$user_id = api_get_user_id();
if (api_is_session_admin()==true) {
$where.=" AND s.session_admin_id = $user_id ";
}
$coach_name = " CONCAT (u.lastname , ' ', u.firstname) as coach_name ";
if (api_is_western_name_order()) {
$coach_name = " CONCAT (u.firstname, ' ', u.lastname) as coach_name ";
}
public function get_sessions_admin($options) {
$tbl_session = Database::get_main_table(TABLE_MAIN_SESSION);
$tbl_session_category = Database::get_main_table(TABLE_MAIN_SESSION_CATEGORY);
$tbl_user = Database::get_main_table(TABLE_MAIN_USER);
$today = api_get_utc_datetime();
$today = api_strtotime($today);
$today = date('Y-m-d', $today);
$select = "SELECT * FROM (SELECT
IF (
(s.date_start <= '$today' AND '$today' < s.date_end) OR
(s.date_start = '0000-00-00' AND s.date_end = '0000-00-00' ) OR
(s.date_start <= '$today' AND '0000-00-00' = s.date_end) OR
('$today' < s.date_end AND '0000-00-00' = s.date_start)
, 1, 0)
as session_active,
s.name, nbr_courses, s.date_start, s.date_end, $coach_name, sc.name as category_name, s.visibility, u.user_id, s.id";
$query = "$select FROM $tbl_session s
LEFT JOIN $tbl_session_category sc ON s.session_category_id = sc.id
INNER JOIN $tbl_user u ON s.id_coach = u.user_id ".
$where;
if ($_configuration['multiple_access_urls']) {
$table_access_url_rel_session= Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_SESSION);
$access_url_id = api_get_current_access_url_id();
if ($access_url_id != -1) {
$where.= " AND ar.access_url_id = $access_url_id ";
$query = "$select
FROM $tbl_session s
LEFT JOIN $tbl_session_category sc ON s.session_category_id = sc.id
INNER JOIN $tbl_user u ON s.id_coach = u.user_id
INNER JOIN $table_access_url_rel_session ar ON ar.session_id = s.id
$where";
}
}
$query .= ") AS session_table";
if (!empty($options['where'])) {
$query .= ' WHERE '.$options['where'];
}
$query .= " ORDER BY ".$options['order']." LIMIT ".$options['limit'];
// echo $query;
$result = Database::query($query);
$formatted_sessions = array();
if (Database::num_rows($result)) {
$sessions = Database::store_result($result);
foreach ($sessions as $session) {
$session['name'] = Display::url($session['name'], "resume_session.php?id_session=".$session['id']);
$session['coach_name'] = Display::url($session['coach_name'], "user_information.php?user_id=".$session['user_id']);
if ($session['date_start'] == '0000-00-00' && $session['date_end'] == '0000-00-00') {
// $session['session_active'] = 1;
}
if ($session['session_active'] == 1) {
$session['session_active'] = Display::return_icon('accept.png', get_lang('Active'), array(), 22);
} else {
$session['session_active'] = Display::return_icon('error.png', get_lang('Inactive'), array(), 22);
}
if ($session['date_start'] == '0000-00-00') {
$session['date_start'] = '';
}
if ($session['date_end'] == '0000-00-00') {
$session['date_end'] = '';
}
switch ($session['visibility']) {
case SESSION_VISIBLE_READ_ONLY: //1
$session['visibility'] = get_lang('ReadOnly');
break;
case SESSION_VISIBLE: //2
$session['visibility'] = get_lang('Visible');
break;
case SESSION_INVISIBLE: //3
$session['visibility'] = api_ucfirst(get_lang('Invisible'));
break;
}
$formatted_sessions[] = $session;
}
}
return $formatted_sessions;
}
$where = 'WHERE 1=1 ';
$user_id = api_get_user_id();
if (api_is_session_admin()==true) {
$where.=" AND s.session_admin_id = $user_id ";
}
$coach_name = " CONCAT (u.lastname , ' ', u.firstname) as coach_name ";
if (api_is_western_name_order()) {
$coach_name = " CONCAT (u.firstname, ' ', u.lastname) as coach_name ";
}
$today = api_get_utc_datetime();
$today = api_strtotime($today);
$today = date('Y-m-d', $today);
$select = "SELECT * FROM (SELECT
IF (
(s.date_start <= '$today' AND '$today' < s.date_end) OR
(s.date_start = '0000-00-00' AND s.date_end = '0000-00-00' ) OR
(s.date_start <= '$today' AND '0000-00-00' = s.date_end) OR
('$today' < s.date_end AND '0000-00-00' = s.date_start)
, 1, 0)
as session_active,
s.name, nbr_courses, s.date_start, s.date_end, $coach_name, sc.name as category_name, s.visibility, u.user_id, s.id";
$query = "$select FROM $tbl_session s
LEFT JOIN $tbl_session_category sc ON s.session_category_id = sc.id
INNER JOIN $tbl_user u ON s.id_coach = u.user_id ".
$where;
global $_configuration;
if ($_configuration['multiple_access_urls']) {
$table_access_url_rel_session= Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_SESSION);
$access_url_id = api_get_current_access_url_id();
if ($access_url_id != -1) {
$where.= " AND ar.access_url_id = $access_url_id ";
$query = "$select
FROM $tbl_session s
LEFT JOIN $tbl_session_category sc ON s.session_category_id = sc.id
INNER JOIN $tbl_user u ON s.id_coach = u.user_id
INNER JOIN $table_access_url_rel_session ar ON ar.session_id = s.id
$where";
}
}
$query .= ") AS session_table";
if (!empty($options['where'])) {
$query .= ' WHERE '.$options['where'];
}
$query .= " ORDER BY ".$options['order']." LIMIT ".$options['limit'];
// echo $query;
$result = Database::query($query);
$formatted_sessions = array();
if (Database::num_rows($result)) {
$sessions = Database::store_result($result);
foreach ($sessions as $session) {
$session['name'] = Display::url($session['name'], "resume_session.php?id_session=".$session['id']);
$session['coach_name'] = Display::url($session['coach_name'], "user_information.php?user_id=".$session['user_id']);
if ($session['date_start'] == '0000-00-00' && $session['date_end'] == '0000-00-00') {
// $session['session_active'] = 1;
}
if ($session['session_active'] == 1) {
$session['session_active'] = Display::return_icon('accept.png', get_lang('Active'), array(), 22);
} else {
$session['session_active'] = Display::return_icon('error.png', get_lang('Inactive'), array(), 22);
}
if ($session['date_start'] == '0000-00-00') {
$session['date_start'] = '';
}
if ($session['date_end'] == '0000-00-00') {
$session['date_end'] = '';
}
switch ($session['visibility']) {
case SESSION_VISIBLE_READ_ONLY: //1
$session['visibility'] = get_lang('ReadOnly');
break;
case SESSION_VISIBLE: //2
$session['visibility'] = get_lang('Visible');
break;
case SESSION_INVISIBLE: //3
$session['visibility'] = api_ucfirst(get_lang('Invisible'));
break;
}
$formatted_sessions[] = $session;
}
}
return $formatted_sessions;
}
/**
* Creates a new course code based in given code

Loading…
Cancel
Save