enabling jquery dataTable for reports as html format

skala
Arnaud Ligot 15 years ago
parent 821cdc6c25
commit 375c56b75f
  1. 4
      main/reports/index.php
  2. 20
      main/reports/reports.php
  3. 2
      main/reports/templates/exercicesMultiCourses.reports.php

@ -29,7 +29,7 @@ $this_section = SECTION_REPORTS;
$tool_name=get_lang('Reports');
// Displaying the header
foreach (array('jquery.js','jquery-ui-1.8.5.custom.min.js', 'jquery.ba-bbq.min.js', 'jquery.validate.js', 'jquery.form.js', 'jquery.form.wizard.js') as $js)
foreach (array('jquery.js','jquery-ui-1.8.5.custom.min.js', 'jquery.ba-bbq.min.js', 'jquery.validate.js', 'jquery.form.js', 'jquery.form.wizard.js', 'jquery.dataTables.min.js') as $js)
$htmlHeadXtra[] = '<script src="'.api_get_path(WEB_LIBRARY_PATH).'javascript/'.$js.'" type="text/javascript" language="javascript"></script>'."\n";
@ -102,6 +102,8 @@ $htmlHeadXtra[] = ' <style type="text/css">
}
</style>';
$htmlCSSXtra[] = 'dataTable.css';
reports_loadTemplates();
Display::display_header($tool_name);

@ -57,19 +57,29 @@ if (is_array($reports_template[$_REQUEST['type']])) {
}
if ($_REQUEST['format'] == 'html') {
echo '<table border="1">'; // FIXME style
echo '<script type="text/javascript" charset="utf-8">
$(document).ready(function() {
$("#reportsData").dataTable();
} );
</script>';
echo '<table id="reportsData" class="display">'; // FIXME style
$nfields = mysql_num_fields($result);
echo '<tr>';
echo '<thead><tr>';
for ($i=0; $i < $nfields; $i++)
echo '<th>'.mysql_field_name($result, $i).'</th>';
echo '</tr>';
echo '</tr></thead><tbody>';
while ($row = Database::fetch_row($result)) {
echo '<tr>';
foreach ($row as $col)
echo '<td>'.$col.'</td>';
echo '</tr>';
echo "</tr>\n";
echo '<tr>';
foreach ($row as $col)
echo '<td>'.$col.'</td>';
echo "</tr>\n";
}
echo '</table>';
echo '</tbody></table>';
} else if ($_REQUEST['format'] == 'csv') {
$nfields = mysql_num_fields($result);
for ($i=0; $i < $nfields; $i++)

@ -38,7 +38,7 @@ function reports_template_exercicesMultiCourses_getSQL() {
$columns = Database::query('select r.id as kid, c.title as course, r.child_name as test from reports_keys r, course c where r.course_id=c.id order by r.course_id, r.child_name');
if (Database::num_rows($columns) == 0)
die('<b>'.get_lang('no data found').'</b>');
$query = 'select u.user_id, u.lastname, u.firstname ';
$query = 'select u.lastname, u.firstname ';
$columns = Database::store_result($columns);
foreach ($columns as $key => $column)
$query .= ', avg(k'.$key.'.score) as `'.$column['course'].'-'.$column['test'].'` '; // FIXME function

Loading…
Cancel
Save