NEW Can filter on document name in ECM module for automatic tree
This commit is contained in:
parent
f4a44ced80
commit
c107a77722
@ -32,7 +32,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');
|
||||||
|
|
||||||
|
|
||||||
if (! isset($mode) || $mode != 'noajax') // For ajax call
|
if (! isset($mode) || $mode != 'noajax') // For ajax call
|
||||||
{
|
{
|
||||||
require_once '../../main.inc.php';
|
require_once '../../main.inc.php';
|
||||||
@ -45,6 +44,7 @@ if (! isset($mode) || $mode != 'noajax') // For ajax call
|
|||||||
$section=GETPOST("section");
|
$section=GETPOST("section");
|
||||||
$module=GETPOST("module");
|
$module=GETPOST("module");
|
||||||
$urlsource=GETPOST("urlsource");
|
$urlsource=GETPOST("urlsource");
|
||||||
|
$search_doc_ref=GETPOST('search_doc_ref','alpha');
|
||||||
|
|
||||||
$sortfield = GETPOST("sortfield",'alpha');
|
$sortfield = GETPOST("sortfield",'alpha');
|
||||||
$sortorder = GETPOST("sortorder",'alpha');
|
$sortorder = GETPOST("sortorder",'alpha');
|
||||||
@ -188,12 +188,16 @@ if ($type == 'directory')
|
|||||||
if (in_array($module, $automodules))
|
if (in_array($module, $automodules))
|
||||||
{
|
{
|
||||||
$param.='&module='.$module;
|
$param.='&module='.$module;
|
||||||
|
if (isset($search_doc_ref) && $search_doc_ref != '') $param.='&search_doc_ref='.$search_doc_ref;
|
||||||
|
|
||||||
$textifempty=($section?$langs->trans("NoFileFound"):($showonrightsize=='featurenotyetavailable'?$langs->trans("FeatureNotYetAvailable"):$langs->trans("NoFileFound")));
|
$textifempty=($section?$langs->trans("NoFileFound"):($showonrightsize=='featurenotyetavailable'?$langs->trans("FeatureNotYetAvailable"):$langs->trans("NoFileFound")));
|
||||||
|
|
||||||
if ($module == 'company') $excludefiles[]='^contact$'; // The subdir 'contact' contains files of contacts with no id of thirdparty.
|
if ($module == 'company') $excludefiles[]='^contact$'; // The subdir 'contact' contains files of contacts with no id of thirdparty.
|
||||||
|
|
||||||
$filearray=dol_dir_list($upload_dir,"files",1,'', $excludefiles, $sortfield, $sorting,1);
|
$filter=preg_quote($search_doc_ref, '/');
|
||||||
$formfile->list_of_autoecmfiles($upload_dir,$filearray,$module,$param,1,'',$user->rights->ecm->upload,1,$textifempty,$maxlengthname,$url);
|
$filearray=dol_dir_list($upload_dir, "files", 1, $filter, $excludefiles, $sortfield, $sorting,1);
|
||||||
|
|
||||||
|
$formfile->list_of_autoecmfiles($upload_dir,$filearray,$module,$param,1,'',$user->rights->ecm->upload,1,$textifempty,$maxlengthname,$url,1);
|
||||||
}
|
}
|
||||||
// Manual list
|
// Manual list
|
||||||
else
|
else
|
||||||
@ -211,6 +215,8 @@ if ($type == 'directory')
|
|||||||
if ($section)
|
if ($section)
|
||||||
{
|
{
|
||||||
$param.='§ion='.$section;
|
$param.='§ion='.$section;
|
||||||
|
if (isset($search_doc_ref) && $search_doc_ref != '') $param.='&search_doc_ref='.$search_doc_ref;
|
||||||
|
|
||||||
$textifempty = $langs->trans('NoFileFound');
|
$textifempty = $langs->trans('NoFileFound');
|
||||||
}
|
}
|
||||||
else if ($section === '0') $textifempty='<br><div align="center"><font class="warning">'.$langs->trans("DirNotSynchronizedSyncFirst").'</font></div><br>';
|
else if ($section === '0') $textifempty='<br><div align="center"><font class="warning">'.$langs->trans("DirNotSynchronizedSyncFirst").'</font></div><br>';
|
||||||
|
|||||||
@ -922,9 +922,10 @@ class FormFile
|
|||||||
* @param string $sortfield Sort field ('name', 'size', 'position', ...)
|
* @param string $sortfield Sort field ('name', 'size', 'position', ...)
|
||||||
* @param string $sortorder Sort order ('ASC' or 'DESC')
|
* @param string $sortorder Sort order ('ASC' or 'DESC')
|
||||||
* @param int $disablemove 1=Disable move button, 0=Position move is possible.
|
* @param int $disablemove 1=Disable move button, 0=Position move is possible.
|
||||||
|
* @param int $addfilterfields Add line with filters
|
||||||
* @return int <0 if KO, nb of files shown if OK
|
* @return int <0 if KO, nb of files shown if OK
|
||||||
*/
|
*/
|
||||||
function list_of_documents($filearray,$object,$modulepart,$param='',$forcedownload=0,$relativepath='',$permonobject=1,$useinecm=0,$textifempty='',$maxlength=0,$title='',$url='', $showrelpart=0, $permtoeditline=-1,$upload_dir='',$sortfield='',$sortorder='ASC', $disablemove=1)
|
function list_of_documents($filearray,$object,$modulepart,$param='',$forcedownload=0,$relativepath='',$permonobject=1,$useinecm=0,$textifempty='',$maxlength=0,$title='',$url='', $showrelpart=0, $permtoeditline=-1,$upload_dir='',$sortfield='',$sortorder='ASC', $disablemove=1, $addfilterfields=0)
|
||||||
{
|
{
|
||||||
global $user, $conf, $langs, $hookmanager;
|
global $user, $conf, $langs, $hookmanager;
|
||||||
global $bc,$bcdd;
|
global $bc,$bcdd;
|
||||||
@ -1006,6 +1007,18 @@ class FormFile
|
|||||||
print '<div class="div-table-responsive-no-min">';
|
print '<div class="div-table-responsive-no-min">';
|
||||||
print '<table width="100%" id="tablelines" class="'.($useinecm?'liste noborder':'liste').'">'."\n";
|
print '<table width="100%" id="tablelines" class="'.($useinecm?'liste noborder':'liste').'">'."\n";
|
||||||
|
|
||||||
|
if (! empty($addfilterfields))
|
||||||
|
{
|
||||||
|
print '<tr class="liste_titre nodrag nodrop">';
|
||||||
|
print '<td><input type="search_doc_ref" value="'.dol_escape_htmltag(GETPOST('search_doc_ref','alpha')).'"></td>';
|
||||||
|
print '<td></td>';
|
||||||
|
print '<td></td>';
|
||||||
|
if (empty($useinecm)) print '<td></td>';
|
||||||
|
print '<td></td>';
|
||||||
|
if (! $disablemove) print '<td></td>';
|
||||||
|
print "</tr>\n";
|
||||||
|
}
|
||||||
|
|
||||||
print '<tr class="liste_titre nodrag nodrop">';
|
print '<tr class="liste_titre nodrag nodrop">';
|
||||||
print_liste_field_titre('Documents2',$url,"name","",$param,'align="left"',$sortfield,$sortorder);
|
print_liste_field_titre('Documents2',$url,"name","",$param,'align="left"',$sortfield,$sortorder);
|
||||||
print_liste_field_titre('Size',$url,"size","",$param,'align="right"',$sortfield,$sortorder);
|
print_liste_field_titre('Size',$url,"size","",$param,'align="right"',$sortfield,$sortorder);
|
||||||
@ -1291,21 +1304,47 @@ class FormFile
|
|||||||
* @param int $useinecm Change output for use in ecm module
|
* @param int $useinecm Change output for use in ecm module
|
||||||
* @param int $textifempty Text to show if filearray is empty
|
* @param int $textifempty Text to show if filearray is empty
|
||||||
* @param int $maxlength Maximum length of file name shown
|
* @param int $maxlength Maximum length of file name shown
|
||||||
* @param string $url Full url to use for click links ('' = autodetect)
|
* @param string $url Full url to use for click links ('' = autodetect)
|
||||||
|
* @param int $addfilterfields Add line with filters
|
||||||
* @return int <0 if KO, nb of files shown if OK
|
* @return int <0 if KO, nb of files shown if OK
|
||||||
*/
|
*/
|
||||||
function list_of_autoecmfiles($upload_dir,$filearray,$modulepart,$param,$forcedownload=0,$relativepath='',$permtodelete=1,$useinecm=0,$textifempty='',$maxlength=0,$url='')
|
function list_of_autoecmfiles($upload_dir,$filearray,$modulepart,$param,$forcedownload=0,$relativepath='',$permtodelete=1,$useinecm=0,$textifempty='',$maxlength=0,$url='',$addfilterfields=0)
|
||||||
{
|
{
|
||||||
global $user, $conf, $langs;
|
global $user, $conf, $langs, $form;
|
||||||
global $bc;
|
global $bc;
|
||||||
global $sortfield, $sortorder;
|
global $sortfield, $sortorder;
|
||||||
|
global $search_doc_ref;
|
||||||
|
|
||||||
dol_syslog(get_class($this).'::list_of_autoecmfiles upload_dir='.$upload_dir.' modulepart='.$modulepart);
|
dol_syslog(get_class($this).'::list_of_autoecmfiles upload_dir='.$upload_dir.' modulepart='.$modulepart);
|
||||||
|
|
||||||
// Show list of documents
|
// Show list of documents
|
||||||
if (empty($useinecm)) print load_fiche_titre($langs->trans("AttachedFiles"));
|
if (empty($useinecm)) print load_fiche_titre($langs->trans("AttachedFiles"));
|
||||||
if (empty($url)) $url=$_SERVER["PHP_SELF"];
|
if (empty($url)) $url=$_SERVER["PHP_SELF"];
|
||||||
|
|
||||||
|
if (! empty($addfilterfields))
|
||||||
|
{
|
||||||
|
print '<form action="'.$_SERVER['PHP_SELF'].'">';
|
||||||
|
print '<input type="hidden" name="module" value="'.$modulepart.'">';
|
||||||
|
}
|
||||||
|
|
||||||
|
print '<div class="div-table-responsive-no-min">';
|
||||||
print '<table width="100%" class="noborder">'."\n";
|
print '<table width="100%" class="noborder">'."\n";
|
||||||
|
|
||||||
|
if (! empty($addfilterfields))
|
||||||
|
{
|
||||||
|
print '<tr class="liste_titre nodrag nodrop">';
|
||||||
|
print '<td><input type="text" class="maxwidth100onsmartphone" name="search_doc_ref" value="'.dol_escape_htmltag($search_doc_ref).'"></td>';
|
||||||
|
print '<td></td>';
|
||||||
|
print '<td></td>';
|
||||||
|
print '<td></td>';
|
||||||
|
// Action column
|
||||||
|
print '<td class="liste_titre" align="middle">';
|
||||||
|
$searchpicto=$form->showFilterButtons();
|
||||||
|
print $searchpicto;
|
||||||
|
print '</td>';
|
||||||
|
print "</tr>\n";
|
||||||
|
}
|
||||||
|
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
$sortref="fullname";
|
$sortref="fullname";
|
||||||
if ($modulepart == 'invoice_supplier') $sortref='level1name';
|
if ($modulepart == 'invoice_supplier') $sortref='level1name';
|
||||||
@ -1490,12 +1529,15 @@ class FormFile
|
|||||||
|
|
||||||
if (count($filearray) == 0)
|
if (count($filearray) == 0)
|
||||||
{
|
{
|
||||||
print '<tr '.$bc[false].'><td colspan="4">';
|
print '<tr '.$bc[false].'><td colspan="5">';
|
||||||
if (empty($textifempty)) print $langs->trans("NoFileFound");
|
if (empty($textifempty)) print $langs->trans("NoFileFound");
|
||||||
else print $textifempty;
|
else print $textifempty;
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
}
|
}
|
||||||
print "</table>";
|
print "</table>";
|
||||||
|
print '</div>';
|
||||||
|
|
||||||
|
if (! empty($addfilterfields)) print '</form>';
|
||||||
// Fin de zone
|
// Fin de zone
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -50,10 +50,11 @@ $result = restrictedArea($user, 'ecm', 0);
|
|||||||
// Get parameters
|
// Get parameters
|
||||||
$socid=GETPOST('socid','int');
|
$socid=GETPOST('socid','int');
|
||||||
$action=GETPOST('action','aZ09');
|
$action=GETPOST('action','aZ09');
|
||||||
$section=GETPOST("section")?GETPOST("section","int"):GETPOST("section_id","int");
|
$section=GETPOST('section','int')?GETPOST('section','int'):GETPOST('section_id','int');
|
||||||
$module=GETPOST("module");
|
$module=GETPOST('module','alpha');
|
||||||
if (! $section) $section=0;
|
if (! $section) $section=0;
|
||||||
$section_dir=GETPOST('section_dir');
|
$section_dir=GETPOST('section_dir','alpha');
|
||||||
|
$search_doc_ref=GETPOST('search_doc_ref','alpha');
|
||||||
|
|
||||||
$sortfield = GETPOST("sortfield",'alpha');
|
$sortfield = GETPOST("sortfield",'alpha');
|
||||||
$sortorder = GETPOST("sortorder",'alpha');
|
$sortorder = GETPOST("sortorder",'alpha');
|
||||||
@ -88,6 +89,12 @@ $error=0;
|
|||||||
* Actions
|
* Actions
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
// Purge search criteria
|
||||||
|
if (GETPOST('button_removefilter_x','alpha') || GETPOST('button_removefilter.x','alpha') || GETPOST('button_removefilter','alpha')) // All tests are required to be compatible with all browsers
|
||||||
|
{
|
||||||
|
$search_doc_ref='';
|
||||||
|
}
|
||||||
|
|
||||||
// Upload file
|
// Upload file
|
||||||
if (GETPOST("sendit") && ! empty($conf->global->MAIN_UPLOAD_DOC))
|
if (GETPOST("sendit") && ! empty($conf->global->MAIN_UPLOAD_DOC))
|
||||||
{
|
{
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user