[svn r12996] refactor a bit the dropbox tool. Indeed there was two incrusted form tags which made a bug when there was several pages of files (you couldn't add feedbacks anymore).

My solution is probably not totally perfect, but it uses functions of SortableTable ... that seems more logical.
skala
Eric Marguin 18 years ago
parent 3524577ef3
commit 235a5e131a
  1. 27
      main/dropbox/dropbox_functions.inc.php
  2. 13
      main/dropbox/dropbox_init.inc.php
  3. 43
      main/dropbox/index.php
  4. 3
      main/inc/lib/display.lib.php
  5. 3
      plugin/messages/new_message.php

@ -40,31 +40,34 @@ function handle_multiple_actions()
global $_user, $is_courseAdmin, $is_courseTutor;
// STEP 1: are we performing the actions on the received or on the sent files?
foreach ($_POST as $key=>$value)
if($_POST['action']=='delete_received' || $_POST['action']=='download_received')
{
if (strstr($key,'do_actions_') AND !$part)
{
$part=str_replace('do_actions_','',$key);
}
$part = 'received';
}
elseif($_POST['action']=='delete_sent' || $_POST['action']=='download_sent')
{
$part = 'sent';
}
// STEP 2: at least one file has to be selected. If not we return an error message
foreach ($_POST as $key=>$value)
{
if (strstr($key,$part.'_') AND $key!='view_received_category' AND $key!='view_sent_category')
if (strstr($value,$part.'_') AND $key!='view_received_category' AND $key!='view_sent_category')
{
$checked_files=true;
$checked_file_ids[]=$value;
$checked_file_ids[]=intval(substr($value,strrpos($value,'_')));
}
}
if (!$checked_files)
$checked_file_ids = $_POST['id'];
if (!is_array($checked_file_ids) || count($checked_file_ids)==0)
{
return get_lang('CheckAtLeastOneFile');
}
// STEP 3A: deleting
if ($_POST['actions']=='delete')
if ($_POST['action']=='delete_received' || $_POST['action']=='delete_sent')
{
$dropboxfile=new Dropbox_Person( $_user['user_id'], $is_courseAdmin, $is_courseTutor);
foreach ($checked_file_ids as $key=>$value)
@ -103,7 +106,7 @@ function handle_multiple_actions()
}
// STEP 3D: downloading
if ($_POST['actions']=='download')
if ($_POST['action']=='download_sent' || $_POST['action']=='download_received')
{
zip_download($checked_file_ids);
}
@ -184,7 +187,7 @@ function display_move_form($part, $id, $target=array())
$message.='<option value="'.$category['cat_id'].'">'.$category['cat_name'].'</option>';
}
$message.= '</select>';
$message.='<input type="submit" name="do_move" value="'.get_lang('Submit').'">';
$message.='<input type="submit" name="do_move" value="'.get_lang('Ok').'">';
$message.='</form>';
Display :: display_normal_message($message,false);
}
@ -1067,7 +1070,7 @@ function feedback_form()
$number_users_who_see_file=mysql_num_rows($result);
if ($number_users_who_see_file>1)
{
$return .= '<textarea name="feedback" style="width: 80%; height: 80px;"></textarea><br /><input type="submit" name="store_feedback" value="'.get_lang('Ok').'">';
$return .= '<textarea name="feedback" style="width: 80%; height: 80px;"></textarea><br /><input type="button" name="store_feedback" value="'.get_lang('Ok').'" onclick="document.forms.form_tablename.action = document.location;document.forms.form_tablename.submit();"/>';
}
else
{

@ -268,23 +268,16 @@ else
{
header ('location: index.php?view='.$_GET['view'].'&error=Error');
}
if ($_POST['actions']=='download' and !$_POST['store_feedback'])
if (($_POST['action']=='download_received' || $_POST['action']=='download_sent') and !$_POST['store_feedback'])
{
foreach ($_POST as $key=>$value)
{
if (strstr($key,$part.'_'))
{
$checked_files=true;
$checked_file_ids[]=$value;
}
}
if ($checked_files==false)
$checked_file_ids = $_POST['id'];
if (!is_array($checked_file_ids) || count($checked_file_ids)==0)
{
header ('location: index.php?view='.$_GET['view'].'&error=CheckAtLeastOneFile');
exit;
}
else
{
handle_multiple_actions();
exit;
}

@ -228,14 +228,15 @@ if (($_GET['action']=='deletereceivedcategory' OR $_GET['action']=='deletesentca
// *** Do an action on multiple files ***
// only the download has is handled separately in dropbox_init_inc.php because this has to be done before the headers are sent
// (which also happens in dropbox_init.inc.php
if ($_POST['do_actions_received'] OR $_POST['do_actions_sent'])
if (!isset($_POST['feedback']) && $_POST['action'] == 'delete_received' OR $_POST['action'] == 'download_received' OR $_POST['action'] == 'delete_sent' OR $_POST['action'] == 'download_sent')
{
$display_message=handle_multiple_actions();
Display :: display_normal_message($display_message);
}
// *** Store Feedback ***
if ($_POST['store_feedback'])
if ($_POST['feedback'])
{
$display_message = store_feedback();
Display :: display_normal_message($display_message);
@ -313,9 +314,6 @@ if (!$_GET['view'] OR $_GET['view']=='received' OR $dropbox_cnf['sent_received_t
echo "<a href=\"".api_get_self()."?".api_get_cidreq()."&action=addreceivedcategory\"><img src=\"../img/folder_new.gif\" alt=\"".get_lang('NewFolder')."\" align=\"absmiddle\"/> ".get_lang('AddNewCategory')."</a>\n";
echo '<form name="recieved_files" method="post" action="'.api_get_self().'?view_received_category='.$_GET['view_received_category'].'&amp;view_sent_category='.$_GET['view_sent_category'].'&amp;view='.$_GET['view'].'&amp;action='.$_GET['action'].'&amp;id='.$_GET['id'].'">';
// object initialisation
$dropbox_person = new Dropbox_Person( $_user['user_id'], $is_courseAdmin, $is_courseTutor); // note: are the $is_courseAdmin and $is_courseTutor parameters needed????
@ -343,7 +341,7 @@ if (!$_GET['view'] OR $_GET['view']=='received' OR $dropbox_cnf['sent_received_t
$dropbox_file_data=array();
if ($view_dropbox_category_received==$dropbox_file->category) // we only display the files that are in the category that we are in.
{
$dropbox_file_data[]=display_file_checkbox($dropbox_file->id, 'received');
$dropbox_file_data[]=$dropbox_file->id;
// new icon
if ($dropbox_file->last_upload_date > $last_access AND !in_array($dropbox_file->id,$_SESSION['_seen'][$_course['id']][TOOL_DROPBOX]))
{
@ -408,19 +406,8 @@ if (!$_GET['view'] OR $_GET['view']=='received' OR $dropbox_cnf['sent_received_t
// Displaying the table
$additional_get_parameters=array('view'=>$_GET['view'], 'view_received_category'=>$_GET['view_received_category'],'view_sent_category'=>$_GET['view_sent_category']);
Display::display_sortable_table($column_header, $dropbox_data_recieved, $sorting_options, $paging_options, $additional_get_parameters);
if (empty($dropbox_data_recieved))
{
//echo get_lang('NoFilesHere');
}
else
{
echo '<a href="'.api_get_self().'?'.api_get_cidreq().'&view_received_category='.$_GET['view_received_category'].'&amp;view_sent_category='.$_GET['view_sent_category'].'&amp;view='.$_GET['view'].'&amp;selectall">'.get_lang('SelectAll').'</a> - ';
echo '<a href="'.api_get_self().'?'.api_get_cidreq().'&view_received_category='.$_GET['view_received_category'].'&amp;view_sent_category='.$_GET['view_sent_category'].'&amp;view='.$_GET['view'].'">'.get_lang('UnSelectAll').'</a> ';
echo get_lang('WithSelected').': ';
display_action_options('received',$dropbox_received_category, $view_dropbox_category_received);
}
echo '</form>';
Display::display_sortable_table($column_header, $dropbox_data_recieved, $sorting_options, $paging_options, $additional_get_parameters, array ('delete_received' => get_lang('Delete'),'download_received'=>get_lang('Download')));
}
@ -456,7 +443,6 @@ if ($_GET['view']=='sent' OR $dropbox_cnf['sent_received_tabs']==false)
echo "<a href=\"".api_get_self()."?".api_get_cidreq()."&view=".$_GET['view']."&amp;action=addsentcategory\"><img src=\"../img/folder_new.gif\" alt=\"".get_lang('NewFolder')."\" align=\"absmiddle\" /> ".get_lang('AddNewCategory')."</a>\n";
//echo '<form name="sent_files" method="post" action="'.api_get_self().'?view_received_category='.$_GET['view_received_category'].'&amp;view_sent_category='.$_GET['view_sent_category'].'">';
echo '<form name="recieved_files" method="post" action="'.api_get_self().'?view_received_category='.$_GET['view_received_category'].'&amp;view_sent_category='.$_GET['view_sent_category'].'&amp;view='.$_GET['view'].'&amp;action='.$_GET['action'].'&amp;id='.$_GET['id'].'">';
// object initialisation
$dropbox_person = new Dropbox_Person( $_user['user_id'], $is_courseAdmin, $is_courseTutor);
@ -489,7 +475,7 @@ if ($_GET['view']=='sent' OR $dropbox_cnf['sent_received_tabs']==false)
if ($view_dropbox_category_sent==$dropbox_file->category)
{
$dropbox_file_data[]=display_file_checkbox($dropbox_file->id, 'sent'); ;
$dropbox_file_data[]=$dropbox_file->id;
$dropbox_file_data[]=build_document_icon_tag('file',$dropbox_file->title);
$dropbox_file_data[]='<a href="dropbox_download.php?'.api_get_cidreq().'&id='.$dropbox_file->id.'&amp;action=download"><img src="../img/filesave.gif" style="float:right;" alt="'.get_lang('Save').'" /></a><a href="dropbox_download.php?'.api_get_cidreq().'&id='.$dropbox_file->id.'">'.$dropbox_file->title.'</a>';
$dropbox_file_data[]=$dropbox_file->author;
@ -549,19 +535,8 @@ if ($_GET['view']=='sent' OR $dropbox_cnf['sent_received_tabs']==false)
// Displaying the table
$additional_get_parameters=array('view'=>$_GET['view'], 'view_received_category'=>$_GET['view_received_category'],'view_sent_category'=>$_GET['view_sent_category']);
Display::display_sortable_table($column_header, $dropbox_data_sent, $sorting_options, $paging_options, $additional_get_parameters);
if (empty($dropbox_data_sent))
{
//echo get_lang('NoFilesHere');
}
else
{
echo '<a href="'.api_get_self().'?view_received_category='.$_GET['view_received_category'].'&amp;view_sent_category='.$_GET['view_sent_category'].'&amp;view='.$_GET['view'].'&amp;selectall">'.get_lang('SelectAll').'</a> - ';
echo '<a href="'.api_get_self().'?view_received_category='.$_GET['view_received_category'].'&amp;view_sent_category='.$_GET['view_sent_category'].'&amp;view='.$_GET['view'].'">'.get_lang('UnSelectAll').'</a> ';
echo get_lang('WithSelected').': ';
display_action_options('sent',$dropbox_sent_category, $view_dropbox_category_sent);
}
echo '</form>';
Display::display_sortable_table($column_header, $dropbox_data_sent, $sorting_options, $paging_options, $additional_get_parameters, array ('delete_received' => get_lang('Delete'),'download_received'=>get_lang('Download')));
}

@ -276,7 +276,7 @@ class Display {
* @param array $query_vars Additional variables to add in the query-string
* @author bart.mollet@hogent.be
*/
function display_sortable_table($header, $content, $sorting_options = array (), $paging_options = array (), $query_vars = null)
function display_sortable_table($header, $content, $sorting_options = array (), $paging_options = array (), $query_vars = null, $form_actions=array())
{
global $origin;
$column = isset ($sorting_options['column']) ? $sorting_options['column'] : 0;
@ -289,6 +289,7 @@ class Display {
{
$table->set_header($index, $header_item[0], $header_item[1], $header_item[2], $header_item[3]);
}
$table->set_form_actions($form_actions);
$table->display();
}
/**

@ -1,4 +1,4 @@
<?php // $Id: new_message.php 10675 2007-01-11 13:03:10Z bmol $
<?php // $Id: new_message.php 12996 2007-09-11 14:49:05Z elixir_inter $
/*
==============================================================================
Dokeos - elearning and course management software
@ -139,6 +139,7 @@ function manage_form($default, $select_from_user_list = null)
" VALUES (".
"' ".$id_msg ."' , '".api_get_user_id()."', '".$receiver_user_id."', '1', '".date('Y-m-d H:i:s')."','".$title."','".$content."'".
");";
@api_sql_query($query,__FILE__,__LINE__);
display_success_message($receiver_user_id);
}

Loading…
Cancel
Save