Skip to content
Snippets Groups Projects
Commit 74c39a10 authored by Laurent Destailleur's avatar Laurent Destailleur
Browse files

Work on ajax ecm module

parent 7d14ce23
No related branches found
No related tags found
No related merge requests found
...@@ -22,10 +22,10 @@ ...@@ -22,10 +22,10 @@
*/ */
/** /**
* \file htdocs/filemanager/ajaxshowpreview.php * \file htdocs/core/ajax/ajaxdirpreview.php
* \brief Service to return a HTML preview of a file * \brief Service to return a HTML preview of a directory
* Call of this service is made with URL: * Call of this service is made with URL:
* ajaxpreview.php?action=preview&modulepart=repfichierconcerne&file=pathrelatifdufichier * ajaxdirpreview.php?mode=nojs&action=preview&module=ecm&section=0&file=xxx
*/ */
if (! defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL',1); // Disables token renewal if (! defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL',1); // Disables token renewal
...@@ -33,11 +33,45 @@ if (! defined('NOREQUIREMENU')) define('NOREQUIREMENU','1'); ...@@ -33,11 +33,45 @@ if (! defined('NOREQUIREMENU')) define('NOREQUIREMENU','1');
if (! defined('NOREQUIREHTML')) define('NOREQUIREHTML','1'); if (! defined('NOREQUIREHTML')) define('NOREQUIREHTML','1');
if (! defined('NOREQUIREAJAX')) define('NOREQUIREAJAX','1'); if (! defined('NOREQUIREAJAX')) define('NOREQUIREAJAX','1');
// C'est un wrapper, donc header vierge if (! isset($mode) || $mode != 'noajax')
function llxHeader() { } {
require_once("../../main.inc.php");
require("../../main.inc.php"); require_once(DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php');
require_once(DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'); require_once(DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php');
require_once(DOL_DOCUMENT_ROOT."/ecm/class/ecmdirectory.class.php");
$action=GETPOST("action");
$file=urldecode(GETPOST('file'));
$section=GETPOST("section");
$module=GETPOST("module");
$urlsource=GETPOST("urlsource");
$upload_dir = dirname(str_replace("../","/", $conf->ecm->dir_output.'/'.$file));
$ecmdir = new EcmDirectory($db);
$result=$ecmdir->fetch($section);
if (! $result > 0)
{
dol_print_error($db,$ecmdir->error);
exit;
}
}
else
{
$ecmdir = new EcmDirectory($db);
$relativepath='';
if ($section > 0)
{
$result=$ecmdir->fetch($section);
if (! $result > 0)
{
dol_print_error($db,$ecmdir->error);
exit;
}
}
$relativepath=$ecmdir->getRelativePath();
$upload_dir = $conf->ecm->dir_output.'/'.$relativepath;
}
// Load traductions files // Load traductions files
$langs->load("ecm"); $langs->load("ecm");
...@@ -47,371 +81,189 @@ $langs->load("other"); ...@@ -47,371 +81,189 @@ $langs->load("other");
// Security check // Security check
if ($user->societe_id > 0) $socid = $user->societe_id; if ($user->societe_id > 0) $socid = $user->societe_id;
// Do not use urldecode here ($_GET and $_REQUEST are already decoded by PHP). //print 'xxx'.$upload_dir;
$action=GETPOST("action");
$file=urldecode(GETPOST('file'));
$section=GETPOST("section");
$module=GETPOST("module");
$urlsource=GETPOST("urlsource");
if (! $section)
{
dol_print_error('',"ErrorSectionParamNotDefined");
exit;
}
// Suppression de la chaine de caractere ../ dans $original_file
$original_file = str_replace("../","/", $file);
$original_file_osencoded=dol_osencode($original_file); // New file name encoded in OS encoding charset
// Security: // Security:
// On interdit les remontees de repertoire ainsi que les pipe dans // On interdit les remontees de repertoire ainsi que les pipe dans
// les noms de fichiers. // les noms de fichiers.
if (preg_match('/\.\./',$original_file) || preg_match('/[<>|]/',$original_file)) if (preg_match('/\.\./',$upload_dir) || preg_match('/[<>|]/',$upload_dir))
{ {
dol_syslog("Refused to deliver file ".$original_file); dol_syslog("Refused to deliver file ".$upload_dir);
// Do no show plain path in shown error message // Do no show plain path in shown error message
dol_print_error(0,$langs->trans("ErrorFileNameInvalid",$_GET["file"])); dol_print_error(0,$langs->trans("ErrorFileNameInvalid",$upload_dir));
exit; exit;
} }
// Load ecm object
/*$ecmdir = new EcmDirectory($db);
$result=$ecmdir->fetch(GETPOST("section"));
if (! $result > 0)
{
dol_print_error($db,$ecmdir->error);
exit;
}
$relativepath=$ecmdir->getRelativePath();
$upload_dir = $conf->ecm->dir_output.'/'.$relativepath;
*/
/* /*
* Action * Action
*/ */
if ($action == 'remove_file') // Remove a file /*
if ($action == 'remove_file') // Remove a file
{ {
clearstatcache(); clearstatcache();
dol_syslog(__FILE__." remove $original_file $urlsource", LOG_DEBUG); dol_syslog(__FILE__." remove $original_file $urlsource", LOG_DEBUG);
// This test should be useless. We keep it to find bug more easily // This test should be useless. We keep it to find bug more easily
if (! file_exists($original_file_osencoded)) if (! file_exists($original_file_osencoded))
{ {
dol_print_error(0,$langs->trans("ErrorFileDoesNotExists",$_GET["file"])); dol_print_error(0,$langs->trans("ErrorFileDoesNotExists",$_GET["file"]));
exit; exit;
} }
dol_delete_file($original_file); dol_delete_file($original_file);
dol_syslog(__FILE__." back to ".urldecode($urlsource), LOG_DEBUG); dol_syslog(__FILE__." back to ".urldecode($urlsource), LOG_DEBUG);
header("Location: ".urldecode($urlsource)); header("Location: ".urldecode($urlsource));
return; return;
} }
*/
/* /*
* View * View
*/ */
// Ajout directives pour resoudre bug IE if (! isset($mode) || $mode != 'noajax')
header('Cache-Control: Public, must-revalidate');
header('Pragma: public');
$filename = basename($original_file_osencoded);
$sizeoffile = filesize($original_file_osencoded);
if (dol_is_dir($original_file))
{
$type='directory';
}
else
{ {
// Define mime type // Ajout directives pour resoudre bug IE
$type = 'application/octet-stream'; header('Cache-Control: Public, must-revalidate');
if (GETPOST("type") != 'auto') $type=$_GET["type"]; header('Pragma: public');
else $type=dol_mimetype($original_file,'text/plain');
//print 'X'.$type.'-'.$original_file;exit;
} }
clearstatcache(); $type='directory';
// Output file on browser
dol_syslog("document.php download $original_file $filename content-type=$type");
// This test if file exists should be useless. We keep it to find bug more easily // This test if file exists should be useless. We keep it to find bug more easily
if (! file_exists($original_file_osencoded)) if (! dol_is_dir($upload_dir))
{ {
dol_print_error(0,$langs->trans("ErrorFileDoesNotExists",$original_file)); $langs->load("install");
dol_print_error(0,$langs->trans("ErrorDirDoesNotExists",$upload_dir));
exit; exit;
} }
print '<!-- TYPE='.$type.' -->'."\n"; print '<!-- TYPE='.$type.' -->'."\n";
print '<!-- SIZE='.$sizeoffile.' -->'."\n";
print '<!-- Ajax page called with url '.$_SERVER["PHP_SELF"].'?'.$_SERVER["QUERY_STRING"].' -->'."\n"; print '<!-- Ajax page called with url '.$_SERVER["PHP_SELF"].'?'.$_SERVER["QUERY_STRING"].' -->'."\n";
// Les drois sont ok et fichier trouve, et fichier texte, on l'envoie
print '<b><font class="liste_titre">'.$langs->trans("Information").'</font></b><br>';
print '<hr>';
// Dir // Dir
if ($type == 'directory') if ($type == 'directory')
{ {
print '<table class="nobordernopadding">'; $formfile=new FormFile($db);
print '<tr><td>'.$langs->trans("Directory").':</td><td>&nbsp; <b><span class="fmvalue">'.$original_file.'</span></b></td></tr>';
$param=($sortfield?'&sortfield='.$sortfield:'').($sortorder?'&sortorder='.$sortorder:'');
//print $langs->trans("FullPath").': '.$original_file_osencoded.'<br>'; $maxlengthname=40;
//print $langs->trans("Mime-type").': '.$type.'<br>';
// Right area
$info=stat($original_file_osencoded); if ($module == 'company') // Auto area for suppliers invoices
//print '<br>'."\n";
//print $langs->trans("Owner").": ".$info['udi']."<br>\n";
//print $langs->trans("Group").": ".$info['gdi']."<br>\n";
//print $langs->trans("Size").": ".dol_print_size($info['size'])."<br>\n";
print '<tr><td>'.$langs->trans("DateLastAccess").':</td><td>&nbsp; <span class="fmvalue">'.dol_print_date($info['atime'],'%Y-%m-%d %H:%M:%S')."</span></td></tr>\n";
print '<tr><td>'.$langs->trans("DateLastChange").':</td><td>&nbsp; <span class="fmvalue">'.dol_print_date($info['mtime'],'%Y-%m-%d %H:%M:%S')."</span></td></tr>\n";
//print $langs->trans("Ctime").": ".$info['ctime']."<br>\n";
print '</table>'."\n";
print '<br><br>';
print '<b>'.$langs->trans("Content")."</b><br>\n";
print '<hr><br>';
print '<div class="filedirelem"><ul class="filedirelem">'."\n";
// Return content of dir
$dircontent=dol_dir_list($original_file,'all',0,'','','name',SORT_ASC,0);
foreach($dircontent as $key => $val)
{ {
if (dol_is_dir($val['name'])) $mimeimg='other.png'; $upload_dir = $conf->societe->dir_output;
else $mimeimg=dol_mimetype($val['name'],'application/octet-stream',2); $filearray=dol_dir_list($upload_dir,"files",1,'',array('^SPECIMEN\.pdf$','^\.','\.meta$','^temp$','^payments$','^CVS$','^thumbs$'),$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1);
print '<li class="filedirelem">';
print '<br><br>';
print '<img src="'.DOL_URL_ROOT.'/theme/common/mime/'.$mimeimg.'"><br>';
print dol_nl2br(dol_trunc($val['name'],24,'wrap'),1);
print '</li>'."\n";
}
print '</ul></div>'."\n"; $param.='&module='.$module;
} $textifempty=($section?$langs->trans("NoFileFound"):($showonrightsize=='featurenotyetavailable'?$langs->trans("FeatureNotYetAvailable"):$langs->trans("NoFileFound")));
else {
print '<table class="nobordernopadding" width="100%">'; $formfile->list_of_autoecmfiles($upload_dir,$filearray,$module,$param,1,'',$user->rights->ecm->upload,1,$textifempty,$maxlengthname);
print '<tr><td>'.$langs->trans("File").':</td><td>&nbsp; <b><span class="fmvalue">'.$original_file.'</span></b></td></tr>'; }
print '<tr><td>'.$langs->trans("Mime-type").':</td><td>&nbsp; <span class="fmvalue">'.$type.'</span></td>'; else if ($module == 'invoice') // Auto area for suppliers invoices
print '<td align="right"><a href="'.dol_buildpath('/filemanager/document.php',1).'?modulepart=filemanager&id='.$id.'&rootpath='.$rootpath.'&file='.urlencode($original_file).'">'.$langs->trans("Download").'</a></td>';
print '</tr>';
$info=stat($original_file_osencoded);
//print '<br>'."\n";
//print $langs->trans("Owner").": ".$info['udi']."<br>\n";
//print $langs->trans("Group").": ".$info['gdi']."<br>\n";
print '<tr><td>'.$langs->trans("Size").':</td><td>&nbsp; <span class="fmvalue">'.dol_print_size($info['size'])."</span></td></tr>\n";
print '<tr><td>'.$langs->trans("DateLastAccess").':</td><td>&nbsp; <span class="fmvalue">'.dol_print_date($info['atime'],'%Y-%m-%d %H:%M:%S')."</span></td></tr>\n";
print '<tr><td>'.$langs->trans("DateLastChange").':</td><td>&nbsp; <span class="fmvalue">'.dol_print_date($info['mtime'],'%Y-%m-%d %H:%M:%S')."</span></td></tr>\n";
//print $langs->trans("Ctime").": ".$info['ctime']."<br>\n";
$sizearray=array();
if (preg_match('/image/i',$type))
{ {
require_once(DOL_DOCUMENT_ROOT.'/core/lib/images.lib.php'); $upload_dir = $conf->facture->dir_output;
$sizearray=dol_getImageSize($original_file_osencoded); $filearray=dol_dir_list($upload_dir,"files",1,'',array('^SPECIMEN\.pdf$','^\.','\.meta$','^temp$','^payments$','^CVS$','^thumbs$'),$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1);
print '<tr><td>'.$langs->trans("Width").':</td><td>&nbsp; <span class="fmvalue">'.$sizearray['width'].'px</span></td></tr>';
print '<tr><td>'.$langs->trans("Height").':</td><td>&nbsp; <span class="fmvalue">'.$sizearray['height'].'px</span></td></tr>'; $param.='&module='.$module;
$textifempty=($section?$langs->trans("NoFileFound"):($showonrightsize=='featurenotyetavailable'?$langs->trans("FeatureNotYetAvailable"):$langs->trans("NoFileFound")));
$formfile->list_of_autoecmfiles($upload_dir,$filearray,$module,$param,1,'',$user->rights->ecm->upload,1,$textifempty,$maxlengthname);
} }
print '</table>'."\n"; else if ($module == 'invoice_supplier') // Auto area for suppliers invoices
{
$relativepath='facture';
$upload_dir = $conf->fournisseur->dir_output.'/'.$relativepath;
$filearray=dol_dir_list($upload_dir,"files",1,'',array('^SPECIMEN\.pdf$','^\.','\.meta$','^temp$','^CVS$','^thumbs$'),$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1);
// Flush content before preview generation $param.='&module='.$module;
flush(); // This send all data to browser. Browser however may wait to have message complete or aborted before showing it. $textifempty=($section?$langs->trans("NoFileFound"):($showonrightsize=='featurenotyetavailable'?$langs->trans("FeatureNotYetAvailable"):$langs->trans("NoFileFound")));
$formfile->list_of_autoecmfiles($upload_dir,$filearray,$module,$param,1,'',$user->rights->ecm->upload,1,$textifempty,$maxlengthname);
}
else if ($module == 'propal') // Auto area for customers orders
{
$upload_dir = $conf->propal->dir_output;
$filearray=dol_dir_list($upload_dir,"files",1,'',array('^SPECIMEN\.pdf$','^\.','\.meta$','^temp$','^payments$','^CVS$','^thumbs$'),$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1);
// Preview $param.='&module='.$module;
$preview=0; $textifempty=($section?$langs->trans("NoFileFound"):($showonrightsize=='featurenotyetavailable'?$langs->trans("FeatureNotYetAvailable"):$langs->trans("NoFileFound")));
if (preg_match('/text/i',$type))
$formfile->list_of_autoecmfiles($upload_dir,$filearray,$module,$param,1,'',$user->rights->ecm->upload,1,$textifempty,$maxlengthname);
}
else if ($module == 'order') // Auto area for customers orders
{ {
$minmem=64; // Minimum of memory required to use Geshi (color syntax on text files) $upload_dir = $conf->commande->dir_output;
$maxsize=65536; // Max size of data to read for text preview $filearray=dol_dir_list($upload_dir,"files",1,'',array('^SPECIMEN\.pdf$','^\.','\.meta$','^temp$','^payments$','^CVS$','^thumbs$'),$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1);
// Define memmax (memory_limit in bytes) $param.='&module='.$module;
$memmaxorig=@ini_get("memory_limit"); $textifempty=($section?$langs->trans("NoFileFound"):($showonrightsize=='featurenotyetavailable'?$langs->trans("FeatureNotYetAvailable"):$langs->trans("NoFileFound")));
$memmax=@ini_get("memory_limit");
if ($memmaxorig != '')
{
preg_match('/([0-9]+)([a-zA-Z]*)/i',$memmax,$reg);
if ($reg[2])
{
if (strtoupper($reg[2]) == 'M') $memmax=$reg[1]*1024*1024;
if (strtoupper($reg[2]) == 'K') $memmax=$reg[1]*1024;
}
}
//print "memmax php=".$memmax;
$out=''; $formfile->list_of_autoecmfiles($upload_dir,$filearray,$module,$param,1,'',$user->rights->ecm->upload,1,$textifempty,$maxlengthname);
$srclang=dol_mimetype($original_file,'text/plain',3); }
else if ($module == 'order_supplier') // Auto area for suppliers orders
{
$relativepath='commande';
$upload_dir = $conf->fournisseur->dir_output.'/'.$relativepath;
$filearray=dol_dir_list($upload_dir,"files",1,'',array('^SPECIMEN\.pdf$','^\.','\.meta$','^temp$','^payments$','^CVS$','^thumbs$'),$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1);
if (preg_match('/html/i',$type)) // If HTML file $param.='&module='.$module;
{ $textifempty=($section?$langs->trans("NoFileFound"):($showonrightsize=='featurenotyetavailable'?$langs->trans("FeatureNotYetAvailable"):$langs->trans("NoFileFound")));
print '<br><br>';
print '<b>'.$langs->trans("Preview")."</b><br>\n";
print '<hr>';
readfile($original_file_osencoded); $formfile->list_of_autoecmfiles($upload_dir,$filearray,$module,$param,1,'',$user->rights->ecm->upload,1,$textifempty,$maxlengthname);
//$out=file_get_contents($original_file_osencoded);
//print $out;
}
else // If not a HTML file
{
$warn='';
// Check if we have enough memory for Geshi
if ($memmax < $minmem*1024*1024)
{
$warn=img_warning().' '.$langs->trans("NotEnoughMemoryForSyntaxColor");
$warn.=' (Have '.$memmax.' - Need '.$minmem.')';
$srclang=''; // We disable geshi
}
if (empty($conf->global->FILEMANAGER_DISABLE_COLORSYNTAXING))
{
$warn=' ('.$langs->trans("ColoringDisabled").')';
$srclang=''; // We disable geshi
}
// Try to detect srclang using first line
if ($type=='text/plain' && empty($srclang)) // Try to enhance MIME detection with first line content
{
$firstline=file_get_contents($original_file_osencoded,false,null,0,32);
$texts = preg_split("/((\r(?!\n))|((?<!\r)\n)|(\r\n))/", strtolower($firstline));
if (preg_match('/^#!.*\/bin\/(.*)$/',$texts[0],$reg))
{
$converttogeshicode=array('ksh'=>'bash', 'sh'=>'bash', 'bash'=>'bash');
$srclang=$converttogeshicode[$reg[1]]?$converttogeshicode[$reg[1]]:$reg[1];
//print "ee".$srclang;
}
}
if ($srclang=='php') $srclang='php-brief';
//if ($srclang=='perl') $srclang=''; // Perl seems to be bugged
if (! empty($srclang))
{
print '<br><br>';
print '<b>'.$langs->trans("Preview")."</b> (".$srclang.")<br>\n";
print '<hr>';
// Translate with Geshi
include_once('includes/geshi/geshi.php');
$out=file_get_contents($original_file_osencoded,false,null,0,$maxsize);
if (! utf8_check($out)) { $isoutf='iso'; $out=utf8_encode($out); }
$geshi = new GeSHi($out, $srclang);
$geshi->enable_strict_mode(true);
$res='';
$res=$geshi->parse_code();
//print "zzzzzzzz";
print $res;
}
else
{
print '<br><br>';
print '<b>'.$langs->trans("Preview")."</b>";
if ($warn) print ' '.$warn;
print "<br>\n";
print '<hr>';
$maxlines=25;
$i=0;$more=0;
$handle = @fopen($original_file_osencoded, "r");
if ($handle)
{
while (!feof($handle) && $i < $maxlines)
{
$buffer = fgets($handle, $maxsize);
if (utf8_check($buffer)) $out.=$buffer."<br>\n";
else $out.=utf8_encode($buffer)."<br>\n";
$i++;
}
if (!feof($handle)) $more=1;
fclose($handle);
}
else
{
print '<div class="error">'.$langs->trans("ErrorFailedToOpenFile",$original_file).'</div>';
}
print $out;
print '<br>';
if ($more)
{
print '<b>...'.$langs->trans("More").'...</b><br>'."\n";
}
}
}
$preview=1;
} }
// Preview if image else if ($module == 'contract') // Auto area for suppliers invoices
if (preg_match('/image/i',$type))
{ {
print '<br><br>'; $upload_dir = $conf->contrat->dir_output;
print '<b>'.$langs->trans("Preview")."</b><br>\n"; $filearray=dol_dir_list($upload_dir,"files",1,'',array('^SPECIMEN\.pdf$','^\.','\.meta$','^temp$','^CVS$','^thumbs$'),$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1);
print '<hr><br>';
$param.='&module='.$module;
$textifempty=($section?$langs->trans("NoFileFound"):($showonrightsize=='featurenotyetavailable'?$langs->trans("FeatureNotYetAvailable"):$langs->trans("NoFileFound")));
print '<center><img'; $formfile->list_of_autoecmfiles($upload_dir,$filearray,$module,$param,1,'',$user->rights->ecm->upload,1,$textifempty,$maxlengthname);
if (! empty($sizearray['width']) && $sizearray['width'] > 500) print ' width="500"';
print ' src="'.dol_buildpath('/filemanager/viewimage.php',1).'?modulepart=filemanager&file='.urlencode($original_file).'"></center>';
$preview=1;
} }
// Preview if video else if ($module == 'tax') // Auto area for suppliers invoices
if (preg_match('/video/i',$type))
{ {
$typecodec=''; $upload_dir = $conf->tax->dir_output;
if (preg_match('/ogg/i',$type)) $typecodec=' type=\'video/ogg; codecs="theora, vorbis"\''; // This works with HTML5 video $filearray=dol_dir_list($upload_dir,"files",1,'',array('^SPECIMEN\.pdf$','^\.','\.meta$','^temp$','^CVS$','^thumbs$'),$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1);
//if (preg_match('/msvideo/i',$type)) $typecodec=' type=\'video/x-msvideo;\''; // AVI
//if (preg_match('/webm/i',$type)) $typecodec=' type=\'video/webm; codecs="vp8, vorbis"\'';
//if (preg_match('/mp4/i',$type)) $typecodec=' type=\'video/mp4; codecs="avc1.42E01E, mp4a.40.2"\'';
if ($typecodec) $param.='&module='.$module;
{ $textifempty=($section?$langs->trans("NoFileFound"):($showonrightsize=='featurenotyetavailable'?$langs->trans("FeatureNotYetAvailable"):$langs->trans("NoFileFound")));
print '<br><br>';
print '<b>'.$langs->trans("Preview")."</b><br>\n"; $formfile->list_of_autoecmfiles($upload_dir,$filearray,$module,$param,1,'',$user->rights->ecm->upload,1,$textifempty,$maxlengthname);
print '<hr><br>';
print '<center>';
print '<video id="movie" style="border: 1px solid #BBB;" width="320" height="240"';
print ' preload';
//print ' preload="none"';
print ' controls';
print '>';
print '<source src="'.dol_buildpath('/filemanager/viewimage.php',1).'?modulepart=filemanager&file='.urlencode($original_file).'&type='.urlencode($type).'"';
print $typecodec;
print ' />';
print '</video>';
print '</center>';
/*<video width="320" height="240"';
print ' src="'.dol_buildpath('/filemanager/viewimage.php',1).'?modulepart=filemanager&file='.urlencode($original_file).'"';
print '></center>';*/
$preview=1;
}
} }
// No preview else // Manual area
if (empty($preview))
{ {
print '<br><br>';
print '<b>'.$langs->trans("Preview")."</b><br>\n";
print '<hr>';
print $langs->trans("PreviewNotAvailableForThisType"); $relativepath=$ecmdir->getRelativePath();
$upload_dir = $conf->ecm->dir_output.'/'.$relativepath;
$filearray=dol_dir_list($upload_dir,"files",0,'',array('^\.','\.meta$','^temp$','^CVS$'),$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1);
$param.='&section='.$section;
$textifempty=($section?$langs->trans("NoFileFound"):($showonrightsize=='featurenotyetavailable'?$langs->trans("FeatureNotYetAvailable"):$langs->trans("ECMSelectASection")));
$formfile->list_of_documents($filearray,'','ecm',$param,1,$relativepath,$user->rights->ecm->upload,1,$textifempty,$maxlengthname);
} }
}
if ((! isset($mode) || $mode != 'noajax') && ! empty($conf->global->MAIN_ECM_TRY_JS))
{
// Enable jquery handlers on new generated HTML objects
print "\n".'<script type="text/javascript">'."\n";
print 'jQuery(".deletefilelink").click(function(e) { jQuery("#dialog-confirm-deletefile").dialog("open"); return false; });'."\n";
print '</script>'."\n";
if (is_object($db)) $db->close();
} }
if (is_object($db)) $db->close();
?> ?>
...@@ -33,9 +33,6 @@ if (! defined('NOREQUIREMENU')) define('NOREQUIREMENU','1'); ...@@ -33,9 +33,6 @@ if (! defined('NOREQUIREMENU')) define('NOREQUIREMENU','1');
if (! defined('NOREQUIREHTML')) define('NOREQUIREHTML','1'); if (! defined('NOREQUIREHTML')) define('NOREQUIREHTML','1');
if (! defined('NOREQUIREAJAX')) define('NOREQUIREAJAX','1'); if (! defined('NOREQUIREAJAX')) define('NOREQUIREAJAX','1');
// C'est un wrapper, donc header vierge
function llxHeader() { }
$res=@include("../../main.inc.php"); $res=@include("../../main.inc.php");
include_once(DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'); include_once(DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php');
include_once(DOL_DOCUMENT_ROOT.'/core/lib/treeview.lib.php'); include_once(DOL_DOCUMENT_ROOT.'/core/lib/treeview.lib.php');
...@@ -107,7 +104,7 @@ if( file_exists($fullpathselecteddir) ) ...@@ -107,7 +104,7 @@ if( file_exists($fullpathselecteddir) )
echo "<ul class=\"ecmjqft\" style=\"display: none;\">\n"; echo "<ul class=\"ecmjqft\" style=\"display: none;\">\n";
// All dirs // All dirs
foreach( $files as $file ) // $file can be '.', '..', or 'My dir' foreach( $files as $file ) // $file can be '.', '..', or 'My dir' or 'My file'
{ {
$nbofsubdir=0; $nbofsubdir=0;
$nboffilesinsubdir=0; $nboffilesinsubdir=0;
...@@ -129,16 +126,16 @@ if( file_exists($fullpathselecteddir) ) ...@@ -129,16 +126,16 @@ if( file_exists($fullpathselecteddir) )
} }
//if (file_exists($fullpathselecteddir . $file) && $file != '.' && $file != '..' && is_dir($fullpathselecteddir . $file)) //if (file_exists($fullpathselecteddir . $file) && $file != '.' && $file != '..' && is_dir($fullpathselecteddir . $file))
if ($file != '.' && $file != '..' && ($val['id'] >= 0 || dol_is_dir($fullpathselecteddir . $file))) if ($file != '.' && $file != '..' && ((! empty($val['fullrelativename']) && $val['id'] >= 0) || dol_is_dir($fullpathselecteddir . $file)))
{ {
print '<li class="directory collapsed">'; print '<li class="directory collapsed">';
print "<a class=\"fmdirlia jqft\" href=\"#\" rel=\"" . dol_escape_htmltag($file . '/') . "\""; print "<a class=\"fmdirlia jqft ecmjqft\" href=\"#\" rel=\"" . dol_escape_htmltag($val['fullrelativename'].'/') . "\" id=\"fmdirlia_id_".$val['id']."\"";
print " onClick=\"loadandshowpreview('".dol_escape_js($val['fullrelativename'])."',".$val['id'].")\">"; print " onClick=\"loadandshowpreview('".dol_escape_js($val['fullrelativename'])."',".$val['id'].")\">";
print dol_escape_htmltag($file); print dol_escape_htmltag($file);
print "</a>"; print "</a>";
print '<div style="float: right;">'; print '<div class="ecmjqft">';
print '<table class="nobordernopadding"><tr>'; print '<table class="nobordernopadding"><tr>';
...@@ -148,7 +145,7 @@ if( file_exists($fullpathselecteddir) ) ...@@ -148,7 +145,7 @@ if( file_exists($fullpathselecteddir) )
// Nb of docs // Nb of docs
print '<td align="right">'; print '<td align="right">';
print $val['cachenbofdoc']; print isset($val['cachenbofdoc'])?$val['cachenbofdoc']:'&nbsp;';
print '</td>'; print '</td>';
print '<td align="left">'; print '<td align="left">';
if ($nbofsubdir && $nboffilesinsubdir) print '<font color="#AAAAAA">+'.$nboffilesinsubdir.'</font> '; if ($nbofsubdir && $nboffilesinsubdir) print '<font color="#AAAAAA">+'.$nboffilesinsubdir.'</font> ';
...@@ -173,7 +170,7 @@ if( file_exists($fullpathselecteddir) ) ...@@ -173,7 +170,7 @@ if( file_exists($fullpathselecteddir) )
$htmltooltip.='<b>'.$langs->trans("ECMNbOfFilesInDir").'</b>: '.$val['cachenbofdoc'].'<br>'; $htmltooltip.='<b>'.$langs->trans("ECMNbOfFilesInDir").'</b>: '.$val['cachenbofdoc'].'<br>';
if ($nbofsubdir) $htmltooltip.='<b>'.$langs->trans("ECMNbOfFilesInSubDir").'</b>: '.$nboffilesinsubdir; if ($nbofsubdir) $htmltooltip.='<b>'.$langs->trans("ECMNbOfFilesInSubDir").'</b>: '.$nboffilesinsubdir;
else $htmltooltip.='<b>'.$langs->trans("ECMNbOfSubDir").'</b>: '.$nbofsubdir.'<br>'; else $htmltooltip.='<b>'.$langs->trans("ECMNbOfSubDir").'</b>: '.$nbofsubdir.'<br>';
print $form->textwithpicto('',$htmltooltip,1,0); print $form->textwithpicto('',$htmltooltip,1,"info");
print "</td>"; print "</td>";
print "</tr></table>\n"; print "</tr></table>\n";
...@@ -184,25 +181,14 @@ if( file_exists($fullpathselecteddir) ) ...@@ -184,25 +181,14 @@ if( file_exists($fullpathselecteddir) )
} }
} }
// All files // Enable jquery handlers on new generated HTML objects
/*
foreach( $files as $file )
{
if( file_exists($fullpathselecteddir . $file) && $file != '.' && $file != '..' && !is_dir($fullpathselecteddir . $file) )
{
$ext = preg_replace('/^.*\./', '', $file);
print "<li class=\"file ext_".$ext."\">";
print "<a class=\"fmfilelia jqft\" href=\"#\" rel=\"" . dol_escape_htmltag($selecteddir . $file) . "\">" . dol_escape_htmltag($file) . "</a>";
print "</li>\n";
}
}
*/
// Enable tooltips
print '<script type="text/javascript">'; print '<script type="text/javascript">';
print 'jQuery(".classfortooltip").tipTip({ maxWidth: "600px", edgeOffset: 10, delay: 50, fadeIn: 50, fadeOut: 50});'; print 'jQuery(".classfortooltip").tipTip({ maxWidth: "600px", edgeOffset: 10, delay: 50, fadeIn: 50, fadeOut: 50});';
print 'jQuery(".fmdirlia").click(function(e) { jQuery("#userfile_section").val(jQuery(this).attr(\'rel\')); });'; print 'jQuery(".fmdirlia").click(function(e) {
id=jQuery(this).attr(\'id\').substr(12);
jQuery("#formuserfile_section_dir").val(jQuery(this).attr(\'rel\'));
jQuery("#formuserfile_section_id").val(id);
});';
print '</script>'; print '</script>';
echo "</ul>\n"; echo "</ul>\n";
......
...@@ -78,8 +78,9 @@ class FormFile ...@@ -78,8 +78,9 @@ class FormFile
if (empty($title)) $title=$langs->trans("AttachANewFile"); if (empty($title)) $title=$langs->trans("AttachANewFile");
if ($title != 'none') print_titre($title); if ($title != 'none') print_titre($title);
print '<form name="userfile" action="'.$url.'" enctype="multipart/form-data" method="POST">'; print '<form name="formuserfile" action="'.$url.'" enctype="multipart/form-data" method="POST">';
print '<input type="hidden" id="userfile_section" name="section" value="'.$sectionid.'">'; print '<input type="hidden" id="formuserfile_section_dir" name="section_dir" value="">';
print '<input type="hidden" id="formuserfile_section_id" name="section_id" value="'.$sectionid.'">';
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">'; print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
print '<table width="100%" class="nobordernopadding">'; print '<table width="100%" class="nobordernopadding">';
...@@ -87,7 +88,7 @@ class FormFile ...@@ -87,7 +88,7 @@ class FormFile
if (! empty($options)) print '<td>'.$options.'</td>'; if (! empty($options)) print '<td>'.$options.'</td>';
print '<td valign="top" nowrap="nowrap">'; print '<td valign="middle" nowrap="nowrap">';
$max=$conf->global->MAIN_UPLOAD_DOC; // En Kb $max=$conf->global->MAIN_UPLOAD_DOC; // En Kb
$maxphp=@ini_get('upload_max_filesize'); // En inconnu $maxphp=@ini_get('upload_max_filesize'); // En inconnu
...@@ -605,8 +606,8 @@ class FormFile ...@@ -605,8 +606,8 @@ class FormFile
} }
// Delete or view link // Delete or view link
print '<td align="right">'; print '<td align="right">';
if (! empty($useinecm)) print '<a href="'.DOL_URL_ROOT.'/ecm/docfile.php?urlfile='.urlencode($file['name']).$param.'">'.img_view().'</a> &nbsp; '; if ($useinecm) print '<a href="'.DOL_URL_ROOT.'/ecm/docfile.php?urlfile='.urlencode($file['name']).$param.'" class="editfilelink" rel="'.urlencode($file['name']).'">'.img_view().'</a> &nbsp; ';
if ($permtodelete) print '<a href="'.$url.'?id='.$object->id.'&action=delete&urlfile='.urlencode($file['name']).$param.'">'.img_delete().'</a>'; if ($permtodelete) print '<a href="'.(($useinecm && ! empty($conf->global->MAIN_ECM_TRY_JS))?'#':$url.'?id='.$object->id.'&action=delete&urlfile='.urlencode($file['name']).$param).'" class="deletefilelink" rel="'.urlencode($file['name']).'">'.img_delete().'</a>';
else print '&nbsp;'; else print '&nbsp;';
print "</td>"; print "</td>";
print "</tr>\n"; print "</tr>\n";
......
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
if (! function_exists('json_encode')) if (! function_exists('json_encode'))
{ {
require_once(DOL_DOCUMENT_ROOT ."/core/lib/json.lib.php"); include_once(DOL_DOCUMENT_ROOT ."/core/lib/json.lib.php");
} }
/** /**
......
...@@ -49,12 +49,10 @@ $result = restrictedArea($user, 'ecm', 0); ...@@ -49,12 +49,10 @@ $result = restrictedArea($user, 'ecm', 0);
// Get parameters // Get parameters
$socid=GETPOST('socid','int'); $socid=GETPOST('socid','int');
$action=GETPOST("action"); $action=GETPOST("action");
$section=GETPOST("section"); $section=GETPOST("section")?GETPOST("section","int"):GETPOST("section_id","int");
$module=GETPOST("module"); $module=GETPOST("module");
if (! $section) $section=0; if (! $section) $section=0;
$upload_dir = $conf->ecm->dir_output.'/'.$section;
$sortfield = GETPOST("sortfield",'alpha'); $sortfield = GETPOST("sortfield",'alpha');
$sortorder = GETPOST("sortorder",'alpha'); $sortorder = GETPOST("sortorder",'alpha');
$page = GETPOST("page",'int'); $page = GETPOST("page",'int');
...@@ -66,9 +64,9 @@ if (! $sortorder) $sortorder="ASC"; ...@@ -66,9 +64,9 @@ if (! $sortorder) $sortorder="ASC";
if (! $sortfield) $sortfield="fullname"; if (! $sortfield) $sortfield="fullname";
$ecmdir = new EcmDirectory($db); $ecmdir = new EcmDirectory($db);
if (GETPOST("section")) if ($section)
{ {
$result=$ecmdir->fetch(GETPOST("section")); $result=$ecmdir->fetch($section);
if (! $result > 0) if (! $result > 0)
{ {
dol_print_error($db,$ecmdir->error); dol_print_error($db,$ecmdir->error);
...@@ -88,7 +86,10 @@ $userstatic = new User($db); ...@@ -88,7 +86,10 @@ $userstatic = new User($db);
// Upload file // Upload file
if (GETPOST("sendit") && ! empty($conf->global->MAIN_UPLOAD_DOC)) if (GETPOST("sendit") && ! empty($conf->global->MAIN_UPLOAD_DOC))
{ {
$relativepath=$ecmdir->getRelativePath(); // Define relativepath and upload_dir
$relativepath='';
if ($ecmdir->id) $relativepath=$ecmdir->getRelativePath();
else $relativepath=GETPOST('section_dir');
$upload_dir = $conf->ecm->dir_output.'/'.$relativepath; $upload_dir = $conf->ecm->dir_output.'/'.$relativepath;
if (dol_mkdir($upload_dir) >= 0) if (dol_mkdir($upload_dir) >= 0)
...@@ -124,8 +125,10 @@ if (GETPOST("sendit") && ! empty($conf->global->MAIN_UPLOAD_DOC)) ...@@ -124,8 +125,10 @@ if (GETPOST("sendit") && ! empty($conf->global->MAIN_UPLOAD_DOC))
} }
} }
// Add directory // Add directory
if (GETPOST("action") == 'add' && $user->rights->ecm->setup) if ($action == 'add' && $user->rights->ecm->setup)
{ {
$ecmdir->ref = 'NOTUSEDYET'; $ecmdir->ref = 'NOTUSEDYET';
$ecmdir->label = GETPOST("label"); $ecmdir->label = GETPOST("label");
...@@ -142,12 +145,14 @@ if (GETPOST("action") == 'add' && $user->rights->ecm->setup) ...@@ -142,12 +145,14 @@ if (GETPOST("action") == 'add' && $user->rights->ecm->setup)
$mesg='<div class="error">Error '.$langs->trans($ecmdir->error).'</div>'; $mesg='<div class="error">Error '.$langs->trans($ecmdir->error).'</div>';
$action = "create"; $action = "create";
} }
clearstatcache();
} }
// Remove file // Remove file
if (GETPOST('action') == 'confirm_deletefile' && GETPOST('confirm') == 'yes') if ($action == 'confirm_deletefile' && GETPOST('confirm') == 'yes')
{ {
$result=$ecmdir->fetch(GETPOST("section")); $result=$ecmdir->fetch($section);
if (! $result > 0) if (! $result > 0)
{ {
dol_print_error($db,$ecmdir->error); dol_print_error($db,$ecmdir->error);
...@@ -163,6 +168,8 @@ if (GETPOST('action') == 'confirm_deletefile' && GETPOST('confirm') == 'yes') ...@@ -163,6 +168,8 @@ if (GETPOST('action') == 'confirm_deletefile' && GETPOST('confirm') == 'yes')
$result=$ecmdir->changeNbOfFiles('-'); $result=$ecmdir->changeNbOfFiles('-');
$action='file_manager'; $action='file_manager';
clearstatcache();
} }
// Remove directory // Remove directory
...@@ -170,11 +177,15 @@ if ($action == 'confirm_deletesection' && GETPOST('confirm') == 'yes') ...@@ -170,11 +177,15 @@ if ($action == 'confirm_deletesection' && GETPOST('confirm') == 'yes')
{ {
$result=$ecmdir->delete($user); $result=$ecmdir->delete($user);
$mesg = '<div class="ok">'.$langs->trans("ECMSectionWasRemoved", $ecmdir->label).'</div>'; $mesg = '<div class="ok">'.$langs->trans("ECMSectionWasRemoved", $ecmdir->label).'</div>';
clearstatcache();
} }
// Refresh directory view // Refresh directory view
if ($action == 'refreshmanual') if ($action == 'refreshmanual')
{ {
clearstatcache();
$diroutputslash=str_replace('\\','/',$conf->ecm->dir_output); $diroutputslash=str_replace('\\','/',$conf->ecm->dir_output);
$diroutputslash.='/'; $diroutputslash.='/';
...@@ -289,13 +300,10 @@ if ($action == 'refreshmanual') ...@@ -289,13 +300,10 @@ if ($action == 'refreshmanual')
* View * View
*/ */
$userstatic = new User($db);
$ecmdirstatic = new EcmDirectory($db);
//print "xx".$_SESSION["dol_screenheight"]; //print "xx".$_SESSION["dol_screenheight"];
$maxheightwin=(isset($_SESSION["dol_screenheight"]) && $_SESSION["dol_screenheight"] > 500)?($_SESSION["dol_screenheight"]-166):660; $maxheightwin=(isset($_SESSION["dol_screenheight"]) && $_SESSION["dol_screenheight"] > 500)?($_SESSION["dol_screenheight"]-166):660;
$morejs=array(); $morejs=array();
if (! empty($conf->global->MAIN_ECM_TRY_JS)) $morejs=array("/filemanager/includes/jqueryFileTree/jqueryFileTree.js"); if (! empty($conf->global->MAIN_ECM_TRY_JS)) $morejs=array("/filemanager/includes/jqueryFileTree/jqueryFileTree.js"); // TODO Move lib into includes
$moreheadcss=" $moreheadcss="
<!-- dol_screenheight=".$_SESSION["dol_screenheight"]." --> <!-- dol_screenheight=".$_SESSION["dol_screenheight"]." -->
<style type=\"text/css\"> <style type=\"text/css\">
...@@ -366,7 +374,7 @@ print "<br>\n"; ...@@ -366,7 +374,7 @@ print "<br>\n";
// Confirm remove file // Confirm remove file
if ($action == 'delete') if ($action == 'delete')
{ {
$ret=$form->form_confirm($_SERVER["PHP_SELF"].'?section='.$_REQUEST["section"].'&urlfile='.urlencode($_GET["urlfile"]), $langs->trans('DeleteFile'), $langs->trans('ConfirmDeleteFile'), 'confirm_deletefile','','',1); $ret=$form->form_confirm($_SERVER["PHP_SELF"].'?section='.$section.'&urlfile='.urlencode($_GET["urlfile"]), $langs->trans('DeleteFile'), $langs->trans('ConfirmDeleteFile'), 'confirm_deletefile','','',1);
if ($ret == 'html') print '<br>'; if ($ret == 'html') print '<br>';
} }
...@@ -402,9 +410,8 @@ else ...@@ -402,9 +410,8 @@ else
print '<img class="toolbarbutton" border="0" src="'.DOL_URL_ROOT.'/theme/common/folder-new.png">'; print '<img class="toolbarbutton" border="0" src="'.DOL_URL_ROOT.'/theme/common/folder-new.png">';
print '</a>'; print '</a>';
} }
print '<a href="'.$_SERVER["PHP_SELF"].'?action=refreshmanual'.($module?'&amp;module='.$module:'').($section?'&amp;section='.$section:'').'" class="toolbarbutton" title="'.dol_escape_htmltag($langs->trans('Refresh')).'">'; print '<a href="'.$_SERVER["PHP_SELF"].'?action=refreshmanual'.($module?'&amp;module='.$module:'').($section?'&amp;section='.$section:'').'" class="toolbarbutton" title="'.dol_escape_htmltag($langs->trans('Refresh')).'">';
//print '<img class="toolbarbutton" border="0" src="'.DOL_URL_ROOT.'/theme/common/view-refresh.png">'; print '<img class="toolbarbutton" border="0" src="'.DOL_URL_ROOT.'/theme/common/view-refresh.png">';
print '</a>'; print '</a>';
...@@ -429,7 +436,7 @@ else ...@@ -429,7 +436,7 @@ else
// Confirmation de la suppression d'une ligne categorie // Confirmation de la suppression d'une ligne categorie
if ($action == 'delete_section') if ($action == 'delete_section')
{ {
$ret=$form->form_confirm($_SERVER["PHP_SELF"].'?section='.urlencode($_GET["section"]), $langs->trans('DeleteSection'), $langs->trans('ConfirmDeleteSection',$ecmdir->label), 'confirm_deletesection','','',1); $ret=$form->form_confirm($_SERVER["PHP_SELF"].'?section='.$section, $langs->trans('DeleteSection'), $langs->trans('ConfirmDeleteSection',$ecmdir->label), 'confirm_deletesection','','',1);
if ($ret == 'html') print '<br>'; if ($ret == 'html') print '<br>';
} }
// End confirm // End confirm
...@@ -438,8 +445,6 @@ if ($action == 'delete_section') ...@@ -438,8 +445,6 @@ if ($action == 'delete_section')
if (empty($action) || $action == 'file_manager' || preg_match('/refresh/i',$action) || $action == 'delete') if (empty($action) || $action == 'file_manager' || preg_match('/refresh/i',$action) || $action == 'delete')
{ {
print '<table width="100%" class="nobordernopadding">'; print '<table width="100%" class="nobordernopadding">';
print '<tr class="liste_titre">'; print '<tr class="liste_titre">';
...@@ -453,13 +458,17 @@ if (empty($action) || $action == 'file_manager' || preg_match('/refresh/i',$acti ...@@ -453,13 +458,17 @@ if (empty($action) || $action == 'file_manager' || preg_match('/refresh/i',$acti
// Auto section // Auto section
if (count($sectionauto)) if (count($sectionauto))
{ {
$htmltooltip=$langs->trans("ECMAreaDesc2");
// Root title line (Automatic section) // Root title line (Automatic section)
print '<tr>'; print '<tr>';
print '<td>'; print '<td>';
print '<table class="nobordernopadding"><tr class="nobordernopadding">'; print '<table class="nobordernopadding"><tr class="nobordernopadding">';
print '<td align="left" width="24">'; print '<td align="left" width="24">';
print img_picto_common('','treemenu/base.gif'); print img_picto_common('','treemenu/base.gif');
print '</td><td align="left">'.$langs->trans("ECMRoot").' ('.$langs->trans("ECMSectionsAuto").')'; print '</td><td align="left">';
$txt=$langs->trans("ECMRoot").' ('.$langs->trans("ECMSectionsAuto").')';
print $form->textwithpicto($txt,$htmltooltip,1,0);
print '</td>'; print '</td>';
print '</tr></table>'; print '</tr></table>';
print '</td>'; print '</td>';
...@@ -468,8 +477,7 @@ if (empty($action) || $action == 'file_manager' || preg_match('/refresh/i',$acti ...@@ -468,8 +477,7 @@ if (empty($action) || $action == 'file_manager' || preg_match('/refresh/i',$acti
print '<td align="right">&nbsp;</td>'; print '<td align="right">&nbsp;</td>';
print '<td align="right">&nbsp;</td>'; print '<td align="right">&nbsp;</td>';
print '<td align="center">'; print '<td align="center">';
$htmltooltip=$langs->trans("ECMAreaDesc2"); //print $form->textwithpicto('',$htmltooltip,1,0);
print $form->textwithpicto('',$htmltooltip,1,0);
print '</td>'; print '</td>';
//print '<td align="right">'.$langs->trans("ECMNbOfDocsSmall").' <a href="'.$_SERVER["PHP_SELF"].'?action=refreshauto">'.img_picto($langs->trans("Refresh"),'refresh').'</a></td>'; //print '<td align="right">'.$langs->trans("ECMNbOfDocsSmall").' <a href="'.$_SERVER["PHP_SELF"].'?action=refreshauto">'.img_picto($langs->trans("Refresh"),'refresh').'</a></td>';
print '</tr>'; print '</tr>';
...@@ -533,7 +541,7 @@ if (empty($action) || $action == 'file_manager' || preg_match('/refresh/i',$acti ...@@ -533,7 +541,7 @@ if (empty($action) || $action == 'file_manager' || preg_match('/refresh/i',$acti
$htmltooltip='<b>'.$langs->trans("Type").'</b>: '.$langs->trans("ECMSectionAuto").'<br>'; $htmltooltip='<b>'.$langs->trans("Type").'</b>: '.$langs->trans("ECMSectionAuto").'<br>';
$htmltooltip.='<b>'.$langs->trans("ECMCreationUser").'</b>: '.$langs->trans("ECMTypeAuto").'<br>'; $htmltooltip.='<b>'.$langs->trans("ECMCreationUser").'</b>: '.$langs->trans("ECMTypeAuto").'<br>';
$htmltooltip.='<b>'.$langs->trans("Description").'</b>: '.$val['desc']; $htmltooltip.='<b>'.$langs->trans("Description").'</b>: '.$val['desc'];
print $form->textwithpicto('',$htmltooltip,1,0); print $form->textwithpicto('',$htmltooltip,1,"info");
print '</td>'; print '</td>';
print "</tr>\n"; print "</tr>\n";
...@@ -554,13 +562,17 @@ if (empty($action) || $action == 'file_manager' || preg_match('/refresh/i',$acti ...@@ -554,13 +562,17 @@ if (empty($action) || $action == 'file_manager' || preg_match('/refresh/i',$acti
// Manual section // Manual section
$htmltooltip=$langs->trans("ECMAreaDesc2");
// Root of manual section // Root of manual section
print '<tr><td>'; print '<tr><td>';
print '<table class="nobordernopadding"><tr class="nobordernopadding">'; print '<table class="nobordernopadding"><tr class="nobordernopadding">';
print '<td align="left" width="24px">'; print '<td align="left" width="24px">';
print img_picto_common('','treemenu/base.gif'); print img_picto_common('','treemenu/base.gif');
print '</td><td align="left">'.$langs->trans("ECMRoot").' ('.$langs->trans("ECMSectionsManual").')'; print '</td><td align="left">';
$txt=$langs->trans("ECMRoot").' ('.$langs->trans("ECMSectionsManual").')';
print $form->textwithpicto($txt,$htmltooltip,1,"info");
print '</td>'; print '</td>';
print '</tr></table></td>'; print '</tr></table></td>';
print '<td align="right">'; print '<td align="right">';
...@@ -570,8 +582,7 @@ if (empty($action) || $action == 'file_manager' || preg_match('/refresh/i',$acti ...@@ -570,8 +582,7 @@ if (empty($action) || $action == 'file_manager' || preg_match('/refresh/i',$acti
print '<td align="right">&nbsp;</td>'; print '<td align="right">&nbsp;</td>';
print '<td align="right">&nbsp;</td>'; print '<td align="right">&nbsp;</td>';
print '<td align="center">'; print '<td align="center">';
$htmltooltip=$langs->trans("ECMAreaDesc2"); //print $form->textwithpicto('',$htmltooltip,1,"info");
print $form->textwithpicto('',$htmltooltip,1,0);
print '</td>'; print '</td>';
print '</tr>'; print '</tr>';
...@@ -617,22 +628,24 @@ if (empty($action) || $action == 'file_manager' || preg_match('/refresh/i',$acti ...@@ -617,22 +628,24 @@ if (empty($action) || $action == 'file_manager' || preg_match('/refresh/i',$acti
jQuery(document).ready( function() { jQuery(document).ready( function() {
jQuery('#filetree').fileTree({ root: '<?php print dol_escape_js($openeddir); ?>', jQuery('#filetree').fileTree({ root: '<?php print dol_escape_js($openeddir); ?>',
script: '<?php echo DOL_URL_ROOT.'/core/ajax/ajaxdirtree.php?modulepart=ecm&openeddir='.urlencode($openeddir); ?>', script: '<?php echo DOL_URL_ROOT.'/core/ajax/ajaxdirtree.php?modulepart=ecm&openeddir='.urlencode($openeddir); ?>',
folderEvent: 'click', folderEvent: 'click',
multiFolder: false }, multiFolder: false },
function(file) { function(file) {
jQuery("#mesg").hide(); jQuery("#mesg").hide();
loadandshowpreview(file); loadandshowpreview(file,0);
} }
); );
}); });
</script> </script>
<?php <?php
print $form->formconfirm('eeeee', $langs->trans('DeleteFile'), $langs->trans('ConfirmDeleteFile'), 'confirm_deletefile', '', '', 'deletefile');
} }
else else
{ {
// Load full tree // Load full tree
if (empty($sqltree)) $sqltree=$ecmdirstatic->get_full_arbo(0); if (empty($sqltree)) $sqltree=$ecmdirstatic->get_full_arbo(0);
...@@ -657,7 +670,7 @@ if (empty($action) || $action == 'file_manager' || preg_match('/refresh/i',$acti ...@@ -657,7 +670,7 @@ if (empty($action) || $action == 'file_manager' || preg_match('/refresh/i',$acti
$expandedsectionarray=array(); $expandedsectionarray=array();
if (isset($_SESSION['dol_ecmexpandedsectionarray'])) $expandedsectionarray=explode(',',$_SESSION['dol_ecmexpandedsectionarray']); if (isset($_SESSION['dol_ecmexpandedsectionarray'])) $expandedsectionarray=explode(',',$_SESSION['dol_ecmexpandedsectionarray']);
if ($section && $_GET['sectionexpand'] == 'true') if ($section && GETPOST('sectionexpand') == 'true')
{ {
// We add all sections that are parent of opened section // We add all sections that are parent of opened section
$pathtosection=explode('_',$fullpathselected); $pathtosection=explode('_',$fullpathselected);
...@@ -670,7 +683,7 @@ if (empty($action) || $action == 'file_manager' || preg_match('/refresh/i',$acti ...@@ -670,7 +683,7 @@ if (empty($action) || $action == 'file_manager' || preg_match('/refresh/i',$acti
} }
$_SESSION['dol_ecmexpandedsectionarray']=join(',',$expandedsectionarray); $_SESSION['dol_ecmexpandedsectionarray']=join(',',$expandedsectionarray);
} }
if ($section && $_GET['sectionexpand'] == 'false') if ($section && GETPOST('sectionexpand') == 'false')
{ {
// We removed all expanded sections that are child of the closed section // We removed all expanded sections that are child of the closed section
$oldexpandedsectionarray=$expandedsectionarray; $oldexpandedsectionarray=$expandedsectionarray;
...@@ -751,6 +764,7 @@ if (empty($action) || $action == 'file_manager' || preg_match('/refresh/i',$acti ...@@ -751,6 +764,7 @@ if (empty($action) || $action == 'file_manager' || preg_match('/refresh/i',$acti
if (! in_array($val['id'],$expandedsectionarray)) print img_picto($ecmdirstatic->ref,DOL_URL_ROOT.'/theme/common/treemenu/folder.gif','',1); if (! in_array($val['id'],$expandedsectionarray)) print img_picto($ecmdirstatic->ref,DOL_URL_ROOT.'/theme/common/treemenu/folder.gif','',1);
else print img_picto($ecmdirstatic->ref,DOL_URL_ROOT.'/theme/common/treemenu/folder-expanded.gif','',1); else print img_picto($ecmdirstatic->ref,DOL_URL_ROOT.'/theme/common/treemenu/folder-expanded.gif','',1);
print '</td>'; print '</td>';
// Show link // Show link
print '<td valign="middle">'; print '<td valign="middle">';
if ($section == $val['id']) print ' <u>'; if ($section == $val['id']) print ' <u>';
...@@ -788,7 +802,7 @@ if (empty($action) || $action == 'file_manager' || preg_match('/refresh/i',$acti ...@@ -788,7 +802,7 @@ if (empty($action) || $action == 'file_manager' || preg_match('/refresh/i',$acti
$htmltooltip.='<b>'.$langs->trans("ECMNbOfFilesInDir").'</b>: '.$val['cachenbofdoc'].'<br>'; $htmltooltip.='<b>'.$langs->trans("ECMNbOfFilesInDir").'</b>: '.$val['cachenbofdoc'].'<br>';
if ($nbofsubdir) $htmltooltip.='<b>'.$langs->trans("ECMNbOfFilesInSubDir").'</b>: '.$nboffilesinsubdir; if ($nbofsubdir) $htmltooltip.='<b>'.$langs->trans("ECMNbOfFilesInSubDir").'</b>: '.$nboffilesinsubdir;
else $htmltooltip.='<b>'.$langs->trans("ECMNbOfSubDir").'</b>: '.$nbofsubdir.'<br>'; else $htmltooltip.='<b>'.$langs->trans("ECMNbOfSubDir").'</b>: '.$nbofsubdir.'<br>';
print $form->textwithpicto('',$htmltooltip,1,0); print $form->textwithpicto('',$htmltooltip,1,"info");
print "</td>"; print "</td>";
print "</tr>\n"; print "</tr>\n";
...@@ -837,107 +851,11 @@ else ...@@ -837,107 +851,11 @@ else
// Start right panel // Start right panel
//if (empty($conf->global->MAIN_ECM_TRY_JS))
$formfile=new FormFile($db); //{
$mode='noajax';
$param=($sortfield?'&sortfield='.$sortfield:'').($sortorder?'&sortorder='.$sortorder:''); include_once(DOL_DOCUMENT_ROOT.'/core/ajax/ajaxdirpreview.php');
$maxlengthname=40; //}
// Right area
if ($module == 'company') // Auto area for suppliers invoices
{
$upload_dir = $conf->societe->dir_output;
$filearray=dol_dir_list($upload_dir,"files",1,'',array('^SPECIMEN\.pdf$','^\.','\.meta$','^temp$','^payments$','^CVS$','^thumbs$'),$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1);
$param.='&module='.$module;
$textifempty=($section?$langs->trans("NoFileFound"):($showonrightsize=='featurenotyetavailable'?$langs->trans("FeatureNotYetAvailable"):$langs->trans("NoFileFound")));
$formfile->list_of_autoecmfiles($upload_dir,$filearray,$module,$param,1,'',$user->rights->ecm->upload,1,$textifempty,$maxlengthname);
}
else if ($module == 'invoice') // Auto area for suppliers invoices
{
$upload_dir = $conf->facture->dir_output;
$filearray=dol_dir_list($upload_dir,"files",1,'',array('^SPECIMEN\.pdf$','^\.','\.meta$','^temp$','^payments$','^CVS$','^thumbs$'),$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1);
$param.='&module='.$module;
$textifempty=($section?$langs->trans("NoFileFound"):($showonrightsize=='featurenotyetavailable'?$langs->trans("FeatureNotYetAvailable"):$langs->trans("NoFileFound")));
$formfile->list_of_autoecmfiles($upload_dir,$filearray,$module,$param,1,'',$user->rights->ecm->upload,1,$textifempty,$maxlengthname);
}
else if ($module == 'invoice_supplier') // Auto area for suppliers invoices
{
$relativepath='facture';
$upload_dir = $conf->fournisseur->dir_output.'/'.$relativepath;
$filearray=dol_dir_list($upload_dir,"files",1,'',array('^SPECIMEN\.pdf$','^\.','\.meta$','^temp$','^CVS$','^thumbs$'),$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1);
$param.='&module='.$module;
$textifempty=($section?$langs->trans("NoFileFound"):($showonrightsize=='featurenotyetavailable'?$langs->trans("FeatureNotYetAvailable"):$langs->trans("NoFileFound")));
$formfile->list_of_autoecmfiles($upload_dir,$filearray,$module,$param,1,'',$user->rights->ecm->upload,1,$textifempty,$maxlengthname);
}
else if ($module == 'propal') // Auto area for customers orders
{
$upload_dir = $conf->propal->dir_output;
$filearray=dol_dir_list($upload_dir,"files",1,'',array('^SPECIMEN\.pdf$','^\.','\.meta$','^temp$','^payments$','^CVS$','^thumbs$'),$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1);
$param.='&module='.$module;
$textifempty=($section?$langs->trans("NoFileFound"):($showonrightsize=='featurenotyetavailable'?$langs->trans("FeatureNotYetAvailable"):$langs->trans("NoFileFound")));
$formfile->list_of_autoecmfiles($upload_dir,$filearray,$module,$param,1,'',$user->rights->ecm->upload,1,$textifempty,$maxlengthname);
}
else if ($module == 'order') // Auto area for customers orders
{
$upload_dir = $conf->commande->dir_output;
$filearray=dol_dir_list($upload_dir,"files",1,'',array('^SPECIMEN\.pdf$','^\.','\.meta$','^temp$','^payments$','^CVS$','^thumbs$'),$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1);
$param.='&module='.$module;
$textifempty=($section?$langs->trans("NoFileFound"):($showonrightsize=='featurenotyetavailable'?$langs->trans("FeatureNotYetAvailable"):$langs->trans("NoFileFound")));
$formfile->list_of_autoecmfiles($upload_dir,$filearray,$module,$param,1,'',$user->rights->ecm->upload,1,$textifempty,$maxlengthname);
}
else if ($module == 'order_supplier') // Auto area for suppliers orders
{
$relativepath='commande';
$upload_dir = $conf->fournisseur->dir_output.'/'.$relativepath;
$filearray=dol_dir_list($upload_dir,"files",1,'',array('^SPECIMEN\.pdf$','^\.','\.meta$','^temp$','^payments$','^CVS$','^thumbs$'),$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1);
$param.='&module='.$module;
$textifempty=($section?$langs->trans("NoFileFound"):($showonrightsize=='featurenotyetavailable'?$langs->trans("FeatureNotYetAvailable"):$langs->trans("NoFileFound")));
$formfile->list_of_autoecmfiles($upload_dir,$filearray,$module,$param,1,'',$user->rights->ecm->upload,1,$textifempty,$maxlengthname);
}
else if ($module == 'contract') // Auto area for suppliers invoices
{
$upload_dir = $conf->contrat->dir_output;
$filearray=dol_dir_list($upload_dir,"files",1,'',array('^SPECIMEN\.pdf$','^\.','\.meta$','^temp$','^CVS$','^thumbs$'),$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1);
$param.='&module='.$module;
$textifempty=($section?$langs->trans("NoFileFound"):($showonrightsize=='featurenotyetavailable'?$langs->trans("FeatureNotYetAvailable"):$langs->trans("NoFileFound")));
$formfile->list_of_autoecmfiles($upload_dir,$filearray,$module,$param,1,'',$user->rights->ecm->upload,1,$textifempty,$maxlengthname);
}
else if ($module == 'tax') // Auto area for suppliers invoices
{
$upload_dir = $conf->tax->dir_output;
$filearray=dol_dir_list($upload_dir,"files",1,'',array('^SPECIMEN\.pdf$','^\.','\.meta$','^temp$','^CVS$','^thumbs$'),$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1);
$param.='&module='.$module;
$textifempty=($section?$langs->trans("NoFileFound"):($showonrightsize=='featurenotyetavailable'?$langs->trans("FeatureNotYetAvailable"):$langs->trans("NoFileFound")));
$formfile->list_of_autoecmfiles($upload_dir,$filearray,$module,$param,1,'',$user->rights->ecm->upload,1,$textifempty,$maxlengthname);
}
else // Manual area
{
$relativepath=$ecmdir->getRelativePath();
$upload_dir = $conf->ecm->dir_output.'/'.$relativepath;
$filearray=dol_dir_list($upload_dir,"files",0,'',array('^\.','\.meta$','^temp$','^CVS$'),$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1);
$param.='&section='.$section;
$textifempty=($section?$langs->trans("NoFileFound"):($showonrightsize=='featurenotyetavailable'?$langs->trans("FeatureNotYetAvailable"):$langs->trans("ECMSelectASection")));
$formfile->list_of_documents($filearray,'','ecm',$param,1,$relativepath,$user->rights->ecm->upload,1,$textifempty,$maxlengthname);
}
// End right panel // End right panel
...@@ -946,7 +864,7 @@ if ($conf->use_javascript_ajax) ...@@ -946,7 +864,7 @@ if ($conf->use_javascript_ajax)
?> ?>
</div> </div>
</div> </div>
<div class="pane-in ecm-in-layout-south layout-padding"> <div class="pane-in ecm-in-layout-south layout-padding valignmiddle">
<?php <?php
} }
else else
...@@ -958,11 +876,11 @@ else ...@@ -958,11 +876,11 @@ else
// Start Add new file area // Start Add new file area
// To attach new file // To attach new file
if (! empty($conf->global->MAIN_ECM_TRY_JS) || ! empty($section)) if (! empty($conf->global->MAIN_ECM_TRY_JS) || ! empty($section))
{ {
$formfile->form_attach_new_file(DOL_URL_ROOT.'/ecm/index.php', 'none', 0, $section, $user->rights->ecm->upload, 48); $formfile=new FormFile($db);
$formfile->form_attach_new_file(DOL_URL_ROOT.'/ecm/index.php', 'none', 0, ($section?$section:-1), $user->rights->ecm->upload, 48);
} }
else print '&nbsp;'; else print '&nbsp;';
......
...@@ -2054,6 +2054,111 @@ div.tdlineupdown { ...@@ -2054,6 +2054,111 @@ div.tdlineupdown {
white-space: nowrap; white-space: nowrap;
} }
/* ============================================================================== */
/* JSGantt */
/* ============================================================================== */
div.scroll2 {
width: 582px !important;
}
/* ============================================================================== */
/* jFileTree */
/* ============================================================================== */
.ecmfiletree {
width: 99%;
height: 99%;
background: #FFF;
padding-left: 2px;
font-weight: normal;
}
.fileview {
width: 99%;
height: 99%;
background: #FFF;
padding-left: 2px;
padding-top: 4px;
font-weight: normal;
}
div.filedirelem {
position: relative;
display: block;
text-decoration: none;
}
ul.filedirelem {
padding: 2px;
margin: 0 5px 5px 5px;
}
ul.filedirelem li {
list-style: none;
padding: 2px;
margin: 0 10px 20px 10px;
width: 160px;
height: 120px;
text-align: center;
display: block;
float: <?php print $left; ?>;
border: solid 1px #DDDDDD;
}
ui-layout-north {
}
ul.ecmjqft {
font-size: 11px;
line-height: 16px;
padding: 0px;
margin: 0px;
font-weight: normal;
}
ul.ecmjqft li {
list-style: none;
padding: 0px;
padding-left: 20px;
margin: 0px;
white-space: nowrap;
display: block;
}
ul.ecmjqft a {
line-height: 16px;
vertical-align: middle;
color: #333;
padding: 0px 0px;
font-weight:normal;
display: inline-block !important;
/* float: left;*/
}
ul.ecmjqft a:active {
font-weight: bold !important;
}
ul.ecmjqft a:hover {
text-decoration: underline;
}
div.ecmjqft {
vertical-align: middle;
display: inline-block !important;
text-align: right;
position:absolute;
right:8px;
}
/* Core Styles */
.ecmjqft LI.directory { font-weight:normal; background: url(<?php echo dol_buildpath($path.'/theme/common/treemenu/folder2.png',1); ?>) left top no-repeat; }
.ecmjqft LI.expanded { font-weight:normal; background: url(<?php echo dol_buildpath($path.'/theme/common/treemenu/folder2-expanded.png',1); ?>) left top no-repeat; }
.ecmjqft LI.wait { font-weight:normal; background: url(<?php echo dol_buildpath('/theme/eldy/img/working.gif',1); ?>) left top no-repeat; }
<?php <?php
if (is_object($db)) $db->close(); if (is_object($db)) $db->close();
?> ?>
\ No newline at end of file
...@@ -2308,6 +2308,111 @@ form.listactionsfilter input[type="submit"] { ...@@ -2308,6 +2308,111 @@ form.listactionsfilter input[type="submit"] {
margin: 2px 0px; margin: 2px 0px;
} }
/* ============================================================================== */
/* JSGantt */
/* ============================================================================== */
div.scroll2 {
width: 582px !important;
}
/* ============================================================================== */
/* jFileTree */
/* ============================================================================== */
.ecmfiletree {
width: 99%;
height: 99%;
background: #FFF;
padding-left: 2px;
font-weight: normal;
}
.fileview {
width: 99%;
height: 99%;
background: #FFF;
padding-left: 2px;
padding-top: 4px;
font-weight: normal;
}
div.filedirelem {
position: relative;
display: block;
text-decoration: none;
}
ul.filedirelem {
padding: 2px;
margin: 0 5px 5px 5px;
}
ul.filedirelem li {
list-style: none;
padding: 2px;
margin: 0 10px 20px 10px;
width: 160px;
height: 120px;
text-align: center;
display: block;
float: <?php print $left; ?>;
border: solid 1px #DDDDDD;
}
ui-layout-north {
}
ul.ecmjqft {
font-size: 11px;
line-height: 16px;
padding: 0px;
margin: 0px;
font-weight: normal;
}
ul.ecmjqft li {
list-style: none;
padding: 0px;
padding-left: 20px;
margin: 0px;
white-space: nowrap;
display: block;
}
ul.ecmjqft a {
line-height: 16px;
vertical-align: middle;
color: #333;
padding: 0px 0px;
font-weight:normal;
display: inline-block !important;
/* float: left;*/
}
ul.ecmjqft a:active {
font-weight: bold !important;
}
ul.ecmjqft a:hover {
text-decoration: underline;
}
div.ecmjqft {
vertical-align: middle;
display: inline-block !important;
text-align: right;
position:absolute;
right:8px;
}
/* Core Styles */
.ecmjqft LI.directory { font-weight:normal; background: url(<?php echo dol_buildpath($path.'/theme/common/treemenu/folder2.png',1); ?>) left top no-repeat; }
.ecmjqft LI.expanded { font-weight:normal; background: url(<?php echo dol_buildpath($path.'/theme/common/treemenu/folder2-expanded.png',1); ?>) left top no-repeat; }
.ecmjqft LI.wait { font-weight:normal; background: url(<?php echo dol_buildpath('/theme/eldy/img/working.gif',1); ?>) left top no-repeat; }
<?php <?php
if (is_object($db)) $db->close(); if (is_object($db)) $db->close();
?> ?>
\ No newline at end of file
...@@ -2125,6 +2125,109 @@ div.table-val-border-col { ...@@ -2125,6 +2125,109 @@ div.table-val-border-col {
} }
/* ============================================================================== */
/* JSGantt */
/* ============================================================================== */
div.scroll2 {
width: 582px !important;
}
/* ============================================================================== */
/* jFileTree */
/* ============================================================================== */
.ecmfiletree {
width: 99%;
height: 99%;
background: #FFF;
padding-left: 2px;
font-weight: normal;
}
.fileview {
width: 99%;
height: 99%;
background: #FFF;
padding-left: 2px;
padding-top: 4px;
font-weight: normal;
}
div.filedirelem {
position: relative;
display: block;
text-decoration: none;
}
ul.filedirelem {
padding: 2px;
margin: 0 5px 5px 5px;
}
ul.filedirelem li {
list-style: none;
padding: 2px;
margin: 0 10px 20px 10px;
width: 160px;
height: 120px;
text-align: center;
display: block;
float: <?php print $left; ?>;
border: solid 1px #DDDDDD;
}
ui-layout-north {
}
ul.ecmjqft {
font-size: 11px;
line-height: 16px;
padding: 0px;
margin: 0px;
font-weight: normal;
}
ul.ecmjqft li {
list-style: none;
padding: 0px;
padding-left: 20px;
margin: 0px;
white-space: nowrap;
display: block;
}
ul.ecmjqft a {
line-height: 16px;
vertical-align: middle;
color: #333;
padding: 0px 0px;
font-weight:normal;
display: inline-block !important;
/* float: left;*/
}
ul.ecmjqft a:active {
font-weight: bold !important;
}
ul.ecmjqft a:hover {
text-decoration: underline;
}
div.ecmjqft {
vertical-align: middle;
display: inline-block !important;
text-align: right;
position:absolute;
right:8px;
}
/* Core Styles */
.ecmjqft LI.directory { font-weight:normal; background: url(<?php echo dol_buildpath($path.'/theme/common/treemenu/folder2.png',1); ?>) left top no-repeat; }
.ecmjqft LI.expanded { font-weight:normal; background: url(<?php echo dol_buildpath($path.'/theme/common/treemenu/folder2-expanded.png',1); ?>) left top no-repeat; }
.ecmjqft LI.wait { font-weight:normal; background: url(<?php echo dol_buildpath('/theme/cameleo/img/working.gif',1); ?>) left top no-repeat; }
<?php <?php
if (is_object($db)) $db->close(); if (is_object($db)) $db->close();
?> ?>
...@@ -256,6 +256,9 @@ th .button { ...@@ -256,6 +256,9 @@ th .button {
-webkit-border-radius:0px !important; -webkit-border-radius:0px !important;
border-radius:0px !important; border-radius:0px !important;
} }
.valignmiddle {
vertical-align: middle;
}
/* ============================================================================== */ /* ============================================================================== */
/* Styles to hide objects */ /* Styles to hide objects */
...@@ -2296,9 +2299,8 @@ ui-layout-north { ...@@ -2296,9 +2299,8 @@ ui-layout-north {
} }
ul.ecmjqft { ul.ecmjqft {
font-family: Verdana, sans-serif;
font-size: 11px; font-size: 11px;
line-height: 18px; line-height: 16px;
padding: 0px; padding: 0px;
margin: 0px; margin: 0px;
font-weight: normal; font-weight: normal;
...@@ -2310,93 +2312,36 @@ ul.ecmjqft li { ...@@ -2310,93 +2312,36 @@ ul.ecmjqft li {
padding-left: 20px; padding-left: 20px;
margin: 0px; margin: 0px;
white-space: nowrap; white-space: nowrap;
display: block;
} }
ul.ecmjqft a { ul.ecmjqft a {
line-height: 16px;
vertical-align: middle;
color: #333; color: #333;
padding: 0px 0px; padding: 0px 0px;
font-weight:normal; font-weight:normal;
display: inline-block !important;
/* float: left;*/
} }
ul.ecmjqft a:active { ul.ecmjqft a:active {
font-weight: bold !important; font-weight: bold !important;
} }
ul.ecmjqft a:hover { ul.ecmjqft a:hover {
text-decoration: underline; text-decoration: underline;
} }
div.ecmjqft {
vertical-align: middle;
display: inline-block !important;
text-align: right;
position:absolute;
right:4px;
}
/* Core Styles */ /* Core Styles */
.ecmjqft LI.directory { font-weight:normal; background: url(<?php echo dol_buildpath('/filemanager/includes/jqueryFileTree/images/directory.png',1); ?>) left top no-repeat; } .ecmjqft LI.directory { font-weight:normal; background: url(<?php echo dol_buildpath($path.'/theme/common/treemenu/folder2.png',1); ?>) left top no-repeat; }
.ecmjqft LI.expanded { font-weight:normal; background: url(<?php echo dol_buildpath('/filemanager/includes/jqueryFileTree/images/folder_open.png',1); ?>) left top no-repeat; } .ecmjqft LI.expanded { font-weight:normal; background: url(<?php echo dol_buildpath($path.'/theme/common/treemenu/folder2-expanded.png',1); ?>) left top no-repeat; }
.ecmjqft LI.file { font-weight:normal; background: url(<?php echo dol_buildpath('/filemanager/includes/jqueryFileTree/images/file.png',1); ?>) left top no-repeat; } .ecmjqft LI.wait { font-weight:normal; background: url(<?php echo dol_buildpath('/theme/eldy/img/working.gif',1); ?>) left top no-repeat; }
.ecmjqft LI.wait { font-weight:normal; background: url(<?php echo dol_buildpath('/filemanager/includes/jqueryFileTree/images/spinner.gif',1); ?>) left top no-repeat; }
/* File Extensions*/
.ecmjqft LI.ext_3gp { background: url(<?php echo dol_buildpath('/filemanager/includes/jqueryFileTree/images/film.png',1); ?>) left top no-repeat; }
.ecmjqft LI.ext_afp { background: url(<?php echo dol_buildpath('/filemanager/includes/jqueryFileTree/images/code.png',1); ?>) left top no-repeat; }
.ecmjqft LI.ext_afpa { background: url(<?php echo dol_buildpath('/filemanager/includes/jqueryFileTree/images/code.png',1); ?>) left top no-repeat; }
.ecmjqft LI.ext_asp { background: url(<?php echo dol_buildpath('/filemanager/includes/jqueryFileTree/images/code.png',1); ?>) left top no-repeat; }
.ecmjqft LI.ext_aspx { background: url(<?php echo dol_buildpath('/filemanager/includes/jqueryFileTree/images/code.png',1); ?>) left top no-repeat; }
.ecmjqft LI.ext_avi { background: url(<?php echo dol_buildpath('/filemanager/includes/jqueryFileTree/images/film.png',1); ?>) left top no-repeat; }
.ecmjqft LI.ext_bat { background: url(<?php echo dol_buildpath('/filemanager/includes/jqueryFileTree/images/application.png',1); ?>) left top no-repeat; }
.ecmjqft LI.ext_bmp { background: url(<?php echo dol_buildpath('/filemanager/includes/jqueryFileTree/images/picture.png',1); ?>) left top no-repeat; }
.ecmjqft LI.ext_c { background: url(<?php echo dol_buildpath('/filemanager/includes/jqueryFileTree/images/code.png',1); ?>) left top no-repeat; }
.ecmjqft LI.ext_cfm { background: url(<?php echo dol_buildpath('/filemanager/includes/jqueryFileTree/images/code.png',1); ?>) left top no-repeat; }
.ecmjqft LI.ext_cgi { background: url(<?php echo dol_buildpath('/filemanager/includes/jqueryFileTree/images/code.png',1); ?>) left top no-repeat; }
.ecmjqft LI.ext_com { background: url(<?php echo dol_buildpath('/filemanager/includes/jqueryFileTree/images/application.png',1); ?>) left top no-repeat; }
.ecmjqft LI.ext_cpp { background: url(<?php echo dol_buildpath('/filemanager/includes/jqueryFileTree/images/code.png',1); ?>) left top no-repeat; }
.ecmjqft LI.ext_css { background: url(<?php echo dol_buildpath('/filemanager/includes/jqueryFileTree/images/css.png',1); ?>) left top no-repeat; }
.ecmjqft LI.ext_doc { background: url(<?php echo dol_buildpath('/filemanager/includes/jqueryFileTree/images/doc.png',1); ?>) left top no-repeat; }
.ecmjqft LI.ext_exe { background: url(<?php echo dol_buildpath('/filemanager/includes/jqueryFileTree/images/application.png',1); ?>) left top no-repeat; }
.ecmjqft LI.ext_gif { background: url(<?php echo dol_buildpath('/filemanager/includes/jqueryFileTree/images/picture.png',1); ?>) left top no-repeat; }
.ecmjqft LI.ext_fla { background: url(<?php echo dol_buildpath('/filemanager/includes/jqueryFileTree/images/flash.png',1); ?>) left top no-repeat; }
.ecmjqft LI.ext_h { background: url(<?php echo dol_buildpath('/filemanager/includes/jqueryFileTree/images/code.png',1); ?>) left top no-repeat; }
.ecmjqft LI.ext_htm { background: url(<?php echo dol_buildpath('/filemanager/includes/jqueryFileTree/images/html.png',1); ?>) left top no-repeat; }
.ecmjqft LI.ext_html { background: url(<?php echo dol_buildpath('/filemanager/includes/jqueryFileTree/images/html.png',1); ?>) left top no-repeat; }
.ecmjqft LI.ext_jar { background: url(<?php echo dol_buildpath('/filemanager/includes/jqueryFileTree/images/java.png',1); ?>) left top no-repeat; }
.ecmjqft LI.ext_jpg { background: url(<?php echo dol_buildpath('/filemanager/includes/jqueryFileTree/images/picture.png',1); ?>) left top no-repeat; }
.ecmjqft LI.ext_jpeg { background: url(<?php echo dol_buildpath('/filemanager/includes/jqueryFileTree/images/picture.png',1); ?>) left top no-repeat; }
.ecmjqft LI.ext_js { background: url(<?php echo dol_buildpath('/filemanager/includes/jqueryFileTree/images/script.png',1); ?>) left top no-repeat; }
.ecmjqft LI.ext_lasso { background: url(<?php echo dol_buildpath('/filemanager/includes/jqueryFileTree/images/code.png',1); ?>) left top no-repeat; }
.ecmjqft LI.ext_log { background: url(<?php echo dol_buildpath('/filemanager/includes/jqueryFileTree/images/txt.png',1); ?>) left top no-repeat; }
.ecmjqft LI.ext_m4p { background: url(<?php echo dol_buildpath('/filemanager/includes/jqueryFileTree/images/music.png',1); ?>) left top no-repeat; }
.ecmjqft LI.ext_mov { background: url(<?php echo dol_buildpath('/filemanager/includes/jqueryFileTree/images/film.png',1); ?>) left top no-repeat; }
.ecmjqft LI.ext_mp3 { background: url(<?php echo dol_buildpath('/filemanager/includes/jqueryFileTree/images/music.png',1); ?>) left top no-repeat; }
.ecmjqft LI.ext_mp4 { background: url(<?php echo dol_buildpath('/filemanager/includes/jqueryFileTree/images/film.png',1); ?>) left top no-repeat; }
.ecmjqft LI.ext_mpg { background: url(<?php echo dol_buildpath('/filemanager/includes/jqueryFileTree/images/film.png',1); ?>) left top no-repeat; }
.ecmjqft LI.ext_mpeg { background: url(<?php echo dol_buildpath('/filemanager/includes/jqueryFileTree/images/film.png',1); ?>) left top no-repeat; }
.ecmjqft LI.ext_ogg { background: url(<?php echo dol_buildpath('/filemanager/includes/jqueryFileTree/images/music.png',1); ?>) left top no-repeat; }
.ecmjqft LI.ext_ogv { background: url(<?php echo dol_buildpath('/filemanager/includes/jqueryFileTree/images/film.png',1); ?>) left top no-repeat; }
.ecmjqft LI.ext_pcx { background: url(<?php echo dol_buildpath('/filemanager/includes/jqueryFileTree/images/picture.png',1); ?>) left top no-repeat; }
.ecmjqft LI.ext_pdf { background: url(<?php echo dol_buildpath('/filemanager/includes/jqueryFileTree/images/pdf.png',1); ?>) left top no-repeat; }
.ecmjqft LI.ext_php { background: url(<?php echo dol_buildpath('/filemanager/includes/jqueryFileTree/images/php.png',1); ?>) left top no-repeat; }
.ecmjqft LI.ext_png { background: url(<?php echo dol_buildpath('/filemanager/includes/jqueryFileTree/images/picture.png',1); ?>) left top no-repeat; }
.ecmjqft LI.ext_ppt { background: url(<?php echo dol_buildpath('/filemanager/includes/jqueryFileTree/images/ppt.png',1); ?>) left top no-repeat; }
.ecmjqft LI.ext_psd { background: url(<?php echo dol_buildpath('/filemanager/includes/jqueryFileTree/images/psd.png',1); ?>) left top no-repeat; }
.ecmjqft LI.ext_pl { background: url(<?php echo dol_buildpath('/filemanager/includes/jqueryFileTree/images/script.png',1); ?>) left top no-repeat; }
.ecmjqft LI.ext_py { background: url(<?php echo dol_buildpath('/filemanager/includes/jqueryFileTree/images/script.png',1); ?>) left top no-repeat; }
.ecmjqft LI.ext_rb { background: url(<?php echo dol_buildpath('/filemanager/includes/jqueryFileTree/images/ruby.png',1); ?>) left top no-repeat; }
.ecmjqft LI.ext_rbx { background: url(<?php echo dol_buildpath('/filemanager/includes/jqueryFileTree/images/ruby.png',1); ?>) left top no-repeat; }
.ecmjqft LI.ext_rhtml { background: url(<?php echo dol_buildpath('/filemanager/includes/jqueryFileTree/images/ruby.png',1); ?>) left top no-repeat; }
.ecmjqft LI.ext_rpm { background: url(<?php echo dol_buildpath('/filemanager/includes/jqueryFileTree/images/linux.png',1); ?>) left top no-repeat; }
.ecmjqft LI.ext_ruby { background: url(<?php echo dol_buildpath('/filemanager/includes/jqueryFileTree/images/ruby.png',1); ?>) left top no-repeat; }
.ecmjqft LI.ext_sql { background: url(<?php echo dol_buildpath('/filemanager/includes/jqueryFileTree/images/db.png',1); ?>) left top no-repeat; }
.ecmjqft LI.ext_swf { background: url(<?php echo dol_buildpath('/filemanager/includes/jqueryFileTree/images/flash.png',1); ?>) left top no-repeat; }
.ecmjqft LI.ext_tif { background: url(<?php echo dol_buildpath('/filemanager/includes/jqueryFileTree/images/picture.png',1); ?>) left top no-repeat; }
.ecmjqft LI.ext_tiff { background: url(<?php echo dol_buildpath('/filemanager/includes/jqueryFileTree/images/picture.png',1); ?>) left top no-repeat; }
.ecmjqft LI.ext_txt { background: url(<?php echo dol_buildpath('/filemanager/includes/jqueryFileTree/images/txt.png',1); ?>) left top no-repeat; }
.ecmjqft LI.ext_vb { background: url(<?php echo dol_buildpath('/filemanager/includes/jqueryFileTree/images/code.png',1); ?>) left top no-repeat; }
.ecmjqft LI.ext_wav { background: url(<?php echo dol_buildpath('/filemanager/includes/jqueryFileTree/images/music.png',1); ?>) left top no-repeat; }
.ecmjqft LI.ext_webm { background: url(<?php echo dol_buildpath('/filemanager/includes/jqueryFileTree/images/film.png',1); ?>) left top no-repeat; }
.ecmjqft LI.ext_wmv { background: url(<?php echo dol_buildpath('/filemanager/includes/jqueryFileTree/images/film.png',1); ?>) left top no-repeat; }
.ecmjqft LI.ext_xls { background: url(<?php echo dol_buildpath('/filemanager/includes/jqueryFileTree/images/xls.png',1); ?>) left top no-repeat; }
.ecmjqft LI.ext_xml { background: url(<?php echo dol_buildpath('/filemanager/includes/jqueryFileTree/images/code.png',1); ?>) left top no-repeat; }
.ecmjqft LI.ext_zip { background: url(<?php echo dol_buildpath('/filemanager/includes/jqueryFileTree/images/zip.png',1); ?>) left top no-repeat; }
/* Right panel */
.fmvalue {
color: #001166;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment