forked from extern/egroupware
"Fixes from Klaus Leithoff <kl-AT-stylite.de>:
- folders can have comments now - folder selection is now sorted alphabetically - fixed handling of unknown mime-types and application/pdf - some performance fixes"
This commit is contained in:
parent
98ca788a6d
commit
20e1535e70
@ -30,6 +30,7 @@
|
||||
var $lesspath;
|
||||
var $readable_groups;
|
||||
var $files_array;
|
||||
var $dirs_options;
|
||||
var $numoffiles;
|
||||
var $dispsep;
|
||||
|
||||
@ -638,7 +639,8 @@
|
||||
}
|
||||
|
||||
# Checkboxes
|
||||
if(!$this->rename_x && !$this->edit_comments_x && $this->path != $this->bo->fakebase && $this->path != '/')
|
||||
//if(!$this->rename_x && !$this->edit_comments_x && $this->path != $this->bo->fakebase && $this->path != '/')
|
||||
if(!$this->rename_x && !$this->edit_comments_x && $this->path != '/')
|
||||
{
|
||||
$cbox='<input type="checkbox" name="fileman['.$i.']" value="'.$files['name'].'">';
|
||||
$this->t->set_var('actions',$cbox);
|
||||
@ -1062,8 +1064,8 @@
|
||||
//$toolbar.='<input id="fmInputLocation" type="text" size="20" disabled="disabled" name="location" value="'.$this->disppath.'"/> ';
|
||||
$current_option='<option>'.$this->disppath.'</option>';
|
||||
// selectbox for change/move/and copy to
|
||||
$dirs_options=$this->all_other_directories_options();
|
||||
$toolbar.='<select name="cdtodir" onChange="document.formfm.changedir.value=\'true\';document.formfm.submit()">'.$current_option.$dirs_options.'</select>
|
||||
$this->dirs_options=$this->all_other_directories_options();
|
||||
$toolbar.='<select name="cdtodir" onChange="document.formfm.changedir.value=\'true\';document.formfm.submit()">'.$current_option.$this->dirs_options.'</select>
|
||||
<input type="hidden" name="changedir" value="false"></td>
|
||||
';
|
||||
$toolbar.=$this->inputImage('goto','goto',lang('Quick jump to'));
|
||||
@ -1116,6 +1118,19 @@
|
||||
}
|
||||
$toolbar.='<td><img alt="spacer" src="'.$GLOBALS['egw']->common->image('filemanager','spacer').'" height="27" width="1"></td>';
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($this->path = $this->bo->fakebase)
|
||||
{
|
||||
$toolbar.='<td><img alt="spacer" src="'.$GLOBALS['egw']->common->image('phpgwapi','buttonseparator').'" height="27" width="8"></td>';
|
||||
$toolbar.='
|
||||
<td><img alt="spacer" src="'.$GLOBALS['egw']->common->image('filemanager','spacer').'" height="27" width="1"></td>';
|
||||
if(!$this->rename_x)
|
||||
{
|
||||
$toolbar.=$this->inputImage('edit_comments','edit_comments',lang('Edit comments'));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// $toolbar.='</tr></table>';
|
||||
if(!$this->rename_x && !$this->edit_comments_x)
|
||||
@ -1126,8 +1141,8 @@
|
||||
$toolbar3.='<td><img alt="spacer" src="'.$GLOBALS['egw']->common->image('phpgwapi','buttonseparator').'" height="27" width="8"></td>';
|
||||
$toolbar3.='<td><img alt="spacer" src="'.$GLOBALS['egw']->common->image('filemanager','spacer').'" height="27" width="1"></td>';
|
||||
|
||||
$dirs_options=$this->all_other_directories_options();
|
||||
$toolbar3.='<td><select name="todir">'.$dirs_options.'</select></td>';
|
||||
if(!($this->dirs_options)) $this->dirs_options=$this->all_other_directories_options();
|
||||
$toolbar3.='<td><select name="todir">'.$this->dirs_options.'</select></td>';
|
||||
|
||||
$toolbar3.=$this->inputImage('copy_to','copy_to',lang('Copy to'));
|
||||
$toolbar3.=$this->inputImage('move_to','move_to',lang('Move to'));
|
||||
@ -1758,6 +1773,7 @@
|
||||
{
|
||||
if($this->file) //FIXME
|
||||
{
|
||||
$mime_type='unknown';
|
||||
$ls_array = $this->bo->vfs->ls(array(
|
||||
'string' => $this->path.'/'.$this->file,//FIXME
|
||||
'relatives' => array(RELATIVE_ALL),
|
||||
@ -1769,19 +1785,28 @@
|
||||
{
|
||||
$mime_type = $ls_array[0]['mime_type'];
|
||||
}
|
||||
elseif($this->prefs['viewtextplain'])
|
||||
{
|
||||
$mime_type = 'text/plain';
|
||||
}
|
||||
else
|
||||
{
|
||||
list($_first,$_ext) = split("\.",$this->file);
|
||||
$mime_type = ExecMethod('phpgwapi.mime_magic.ext2mime',$_ext);
|
||||
}
|
||||
$viewable = array('','text/plain','text/csv','text/html','text/text');
|
||||
else
|
||||
{
|
||||
list($_first,$_ext) = split("\.",$this->file);
|
||||
$mime_type = ExecMethod('phpgwapi.mime_magic.ext2mime',$_ext);
|
||||
}
|
||||
// check if the prefs are set for viewing unknown extensions as text/plain and
|
||||
// check if the mime_type is unknown, empty or not found (application/octet)
|
||||
// or check if the mimetype contains text,
|
||||
// THEN set the mime_type text/plain
|
||||
if(($this->prefs['viewtextplain'] && ($mime_type=='' or $mime_type=='unknown' or $mime_type=='application/octet-stream')) or strpos($mime_type, 'text/')!==false)
|
||||
{
|
||||
|
||||
$mime_type = 'text/plain';
|
||||
}
|
||||
|
||||
// we want to define pdfs and text files as viewable
|
||||
$viewable = array('','text/plain','text/csv','text/html','text/text','application/pdf');
|
||||
// we want to view pdfs and text files within the browser
|
||||
if(in_array($mime_type,$viewable) && !$_GET['download'])
|
||||
{
|
||||
// if you add attachment; to the Content-disposition between disposition and filename
|
||||
// you get a download dialog even for viewable files
|
||||
header('Content-type: ' . $mime_type);
|
||||
header('Content-disposition: filename="' . $this->file . '"');//FIXME
|
||||
Header("Pragma: public");
|
||||
@ -1816,77 +1841,92 @@
|
||||
}
|
||||
|
||||
//give back an array with all directories except current and dirs that are not accessable
|
||||
function all_other_directories_options()
|
||||
{
|
||||
# First we get the directories in their home directory
|
||||
$dirs = array();
|
||||
$dirs[] = array('directory' => $this->bo->fakebase, 'name' => $this->bo->userinfo['account_lid']);
|
||||
function all_other_directories_options()
|
||||
{
|
||||
# First we get the directories in their home directory
|
||||
$dirs = array();
|
||||
$dirs[] = array('directory' => $this->bo->fakebase, 'name' => $this->bo->userinfo['account_lid']);
|
||||
|
||||
$tmp_arr=array(
|
||||
'string' => $this->bo->homedir,
|
||||
'relatives' => array(RELATIVE_NONE),
|
||||
'checksubdirs' => True,
|
||||
'mime_type' => 'Directory'
|
||||
);
|
||||
$tmp_arr=array(
|
||||
'string' => $this->bo->homedir,
|
||||
'relatives' => array(RELATIVE_NONE),
|
||||
'checksubdirs' => True,
|
||||
'mime_type' => 'Directory'
|
||||
);
|
||||
|
||||
$ls_array = $this->bo->vfs->ls($tmp_arr);
|
||||
$ls_array = $this->bo->vfs->ls($tmp_arr);
|
||||
|
||||
while(list($num, $dir) = each($ls_array))
|
||||
{
|
||||
$dirs[] = $dir;
|
||||
}
|
||||
while(list($num, $dir) = each($ls_array))
|
||||
{
|
||||
$dirs[] = $dir;
|
||||
}
|
||||
|
||||
|
||||
# Then we get the directories in their readable groups' home directories
|
||||
reset($this->readable_groups);
|
||||
while(list($num, $group_array) = each($this->readable_groups))
|
||||
{
|
||||
# Don't list directories for groups that don't have access
|
||||
if(!$this->groups_applications[$group_array['account_name']][$this->bo->appname]['enabled'])
|
||||
{
|
||||
continue;
|
||||
}
|
||||
# Then we get the directories in their readable groups' home directories
|
||||
reset($this->readable_groups);
|
||||
while(list($num, $group_array) = each($this->readable_groups))
|
||||
{
|
||||
# Don't list directories for groups that don't have access
|
||||
if(!$this->groups_applications[$group_array['account_name']][$this->bo->appname]['enabled'])
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
$dirs[] = array('directory' => $this->bo->fakebase, 'name' => $group_array['account_name']);
|
||||
$dirs[] = array('directory' => $this->bo->fakebase, 'name' => $group_array['account_name']);
|
||||
|
||||
$tmp_arr=array(
|
||||
'string' => $this->bo->fakebase.'/'.$group_array['account_name'],
|
||||
'relatives' => array(RELATIVE_NONE),
|
||||
'checksubdirs' => True,
|
||||
'mime_type' => 'Directory'
|
||||
);
|
||||
$tmp_arr=array(
|
||||
'string' => $this->bo->fakebase.'/'.$group_array['account_name'],
|
||||
'relatives' => array(RELATIVE_NONE),
|
||||
'checksubdirs' => True,
|
||||
'mime_type' => 'Directory'
|
||||
);
|
||||
|
||||
$ls_array = $this->bo->vfs->ls($tmp_arr);
|
||||
while(list($num, $dir) = each($ls_array))
|
||||
{
|
||||
$dirs[] = $dir;
|
||||
}
|
||||
}
|
||||
$ls_array = $this->bo->vfs->ls($tmp_arr);
|
||||
while(list($num, $dir) = each($ls_array))
|
||||
{
|
||||
$dirs[] = $dir;
|
||||
}
|
||||
}
|
||||
|
||||
reset($dirs);
|
||||
while(list($num, $dir) = each($dirs))
|
||||
{
|
||||
if(!$dir['directory'])
|
||||
{
|
||||
continue;
|
||||
}
|
||||
reset($dirs);
|
||||
// key for the sorted array
|
||||
$i=0;
|
||||
|
||||
# So we don't display //
|
||||
if($dir['directory'] != '/')
|
||||
{
|
||||
$dir['directory'] .= '/';
|
||||
}
|
||||
while(list($num, $dir) = each($dirs))
|
||||
{
|
||||
if(!$dir['directory'])
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
# No point in displaying the current directory, or a directory that doesn't exist
|
||||
if((($dir['directory'] . $dir['name']) != $this->path) && $this->bo->vfs->file_exists(array('string' => $dir['directory'] . $dir['name'],'relatives' => array(RELATIVE_NONE))))
|
||||
{
|
||||
# So we don't display //
|
||||
if($dir['directory'] != '/')
|
||||
{
|
||||
$dir['directory'] .= '/';
|
||||
}
|
||||
|
||||
# No point in displaying the current directory, or a directory that doesn't exist
|
||||
if((($dir['directory'] . $dir['name']) != $this->path) && $this->bo->vfs->file_exists(array('string' => $dir['directory'] . $dir['name'],'relatives' => array(RELATIVE_NONE))))
|
||||
{
|
||||
//FIXME replace the html_form_option function
|
||||
//$options .= $this->html_form_option($dir['directory'] . $dir['name'], $dir['directory'] . $dir['name']);
|
||||
// set the content of the sorted array
|
||||
$i++;
|
||||
$dirs_sorted[$i]=$dir['directory'] . $dir['name'];
|
||||
}
|
||||
}
|
||||
// sort the directory optionlist
|
||||
natcasesort($dirs_sorted);
|
||||
|
||||
// set the optionlist
|
||||
foreach ($dirs_sorted as $key => $row) {
|
||||
//FIXME replace the html_form_option function
|
||||
$options .= $this->html_form_option($dir['directory'] . $dir['name'], $dir['directory'] . $dir['name']);
|
||||
}
|
||||
//$options .= $this->html_form_option($dir['directory'] . $dir['name'], $dir['directory'] . $dir['name']);
|
||||
$options .= $this->html_form_option($row, $row);
|
||||
}
|
||||
|
||||
return $options;
|
||||
}
|
||||
return $options;
|
||||
}
|
||||
|
||||
/* seek icon for mimetype else return an unknown icon */
|
||||
function mime_icon($mime_type, $size=16)
|
||||
@ -2143,4 +2183,4 @@
|
||||
$rstring = "</td>";
|
||||
return($this->bo->eor($rstring, $return));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user