diff --git a/htdocs/ecm/index.php b/htdocs/ecm/index.php index 577bbda7ebf608cfdc1d73be6ade8371117cfb03..974620705da70fcea5847854829e2556e4d3a0c5 100644 --- a/htdocs/ecm/index.php +++ b/htdocs/ecm/index.php @@ -121,12 +121,12 @@ $userstatic = new User($db); // Ajout rubriques automatiques $rowspan=0; $sectionauto=array(); -if ($conf->societe->enabled) { $rowspan++; $sectionauto[]=array('test'=>$conf->societe->enabled, 'label'=>$langs->trans("ThirdParties"), 'desc'=>$langs->trans("ECMDocsByThirdParties")); } -if ($conf->propal->enabled) { $rowspan++; $sectionauto[]=array('test'=>$conf->propal->enabled, 'label'=>$langs->trans("Proposals"), 'desc'=>$langs->trans("ECMDocsByProposals")); } -if ($conf->commande->enabled) { $rowspan++; $sectionauto[]=array('test'=>$conf->commande->enabled,'label'=>$langs->trans("Orders"), 'desc'=>$langs->trans("ECMDocsByOrders")); } -if ($conf->contrat->enabled) { $rowspan++; $sectionauto[]=array('test'=>$conf->contrat->enabled, 'label'=>$langs->trans("Contracts"), 'desc'=>$langs->trans("ECMDocsByContracts")); } -if ($conf->facture->enabled) { $rowspan++; $sectionauto[]=array('test'=>$conf->facture->enabled, 'label'=>$langs->trans("Invoices"), 'desc'=>$langs->trans("ECMDocsByInvoices")); } -if ($conf->produit->enabled) { $rowspan++; $sectionauto[]=array('test'=>$conf->produit->enabled, 'label'=>$langs->trans("ProductsAndServices"), 'desc'=>$langs->trans("ECMDocsByProducts")); } +if ($conf->societe->enabled) { $rowspan++; $sectionauto[]=array('module'=>'company', 'test'=>$conf->societe->enabled, 'label'=>$langs->trans("ThirdParties"), 'desc'=>$langs->trans("ECMDocsByThirdParties")); } +if ($conf->propal->enabled) { $rowspan++; $sectionauto[]=array('module'=>'propal', 'test'=>$conf->propal->enabled, 'label'=>$langs->trans("Prop"), 'desc'=>$langs->trans("ECMDocsByProposals")); } +if ($conf->commande->enabled) { $rowspan++; $sectionauto[]=array('module'=>'order', 'test'=>$conf->commande->enabled,'label'=>$langs->trans("Orders"), 'desc'=>$langs->trans("ECMDocsByOrders")); } +if ($conf->contrat->enabled) { $rowspan++; $sectionauto[]=array('module'=>'contract','test'=>$conf->contrat->enabled, 'label'=>$langs->trans("Contracts"), 'desc'=>$langs->trans("ECMDocsByContracts")); } +if ($conf->facture->enabled) { $rowspan++; $sectionauto[]=array('module'=>'invoice', 'test'=>$conf->facture->enabled, 'label'=>$langs->trans("Invoices"), 'desc'=>$langs->trans("ECMDocsByInvoices")); } +if ($conf->produit->enabled) { $rowspan++; $sectionauto[]=array('module'=>'product', 'test'=>$conf->produit->enabled, 'label'=>$langs->trans("ProductsAndServices"), 'desc'=>$langs->trans("ECMDocsByProducts")); } //*********************** @@ -160,18 +160,26 @@ print '</td><td width="50%" valign="top">'; print '<form method="post" action="'.DOL_URL_ROOT.'/ecm/search.php">'; print '<table class="noborder" width="100%">'; print "<tr class=\"liste_titre\">"; -print '<td colspan="3">'.$langs->trans("ECMSearchByEntity").'</td></tr>'; - - +print '<td colspan="4">'.$langs->trans("ECMSearchByEntity").'</td></tr>'; $buthtml='<td rowspan="'.$rowspan.'"><input type="submit" value="'.$langs->trans("Search").'" class="button"></td>'; $butshown=0; -if ($conf->societe->enabled) { print "<tr $bc[0]><td>".$langs->trans("ThirdParty").':</td><td><input type="text" name="sf_ref" class="flat" size="18"></td>'.($butshown?'':$buthtml).'</tr>'; $butshown++; } -if ($conf->contrat->enabled) { print "<tr $bc[0]><td>".$langs->trans("Contrat").':</td><td><input type="text" name="sf_ref" class="flat" size="18"></td>'.($butshown?'':$buthtml).'</tr>'; $butshown++; } -if ($conf->propal->enabled) { print "<tr $bc[0]><td>".$langs->trans("Proposal").':</td><td><input type="text" name="sf_ref" class="flat" size="18"></td>'.($butshown?'':$buthtml).'</tr>'; $butshown++; } -if ($conf->commande->enabled) { print "<tr $bc[0]><td>".$langs->trans("Order").':</td><td><input type="text" name="sf_ref" class="flat" size="18"></td>'.($butshown?'':$buthtml).'</tr>'; $butshown++; } -if ($conf->facture->enabled) { print "<tr $bc[0]><td>".$langs->trans("Invoice").':</td><td><input type="text" name="sf_ref" class="flat" size="18"></td>'.($butshown?'':$buthtml).'</tr>'; $butshown++; } -if ($conf->produit->enabled) { print "<tr $bc[0]><td>".$langs->trans("ProductsAndServices").':</td><td><input type="text" name="sf_ref" class="flat" size="18"></td>'.($butshown?'':$buthtml).'</tr>'; $butshown++; } +foreach($sectionauto as $section) +{ + if (! $section['test']) continue; + if ($butshown % 2 == 0) print '<tr '. $bc[0].'>'; + print "<td>".$section['label'].':</td>'; + print '<td'; + if ($butshown % 2 == 1) print ' align="right"'; + print '>'; + print '<input type="text" name="search_'.$section['module'].'" class="flat" size="6">'; + print '</td>'; + if ($butshown % 2 == 1) print '</tr>'; + $butshown++; +} +if ($butshown % 2 == 1) print '<td> </td><td> </td></tr>'; + +print '<tr '. $bc[0].'><td colspan="4" align="center"><input type="submit" class="button" value="'.$langs->trans("Search").'"></td></tr>'; print "</table></form><br>"; //print $langs->trans("ECMAutoOrgDesc"); diff --git a/htdocs/html.formfile.class.php b/htdocs/html.formfile.class.php index d6f7e1e692f7242d9ffbc7702a81c543af47b125..819af96fbdc3a8c2b0d4e88388688ea0163b7401 100644 --- a/htdocs/html.formfile.class.php +++ b/htdocs/html.formfile.class.php @@ -373,9 +373,10 @@ class FormFile * \param param Parameters on sort links * \param forcedownload Mime type is forced to 'application/binary' to have a download * \param relativepath Relative path of docs (autodefined if not provided) + * \param permtodelete Permission to delete * \return int <0 if KO, nb of files shown if OK */ - function list_of_documents($filearray,$object,$modulepart,$param,$forcedownload=0,$relativepath='') + function list_of_documents($filearray,$object,$modulepart,$param,$forcedownload=0,$relativepath='',$permtodelete=1) { global $user, $conf, $langs; global $bc; @@ -422,7 +423,10 @@ class FormFile print '<td align="center">'.dolibarr_print_date($file['date'],"dayhour").'</td>'; print '<td align="right">'; //print ' '; - print '<a href="'.$url.'?id='.$object->id.'&section='.$_REQUEST["section"].'&action=delete&urlfile='.urlencode($file['name']).'">'.img_delete().'</a>'; + if ($permtodelete) + print '<a href="'.$url.'?id='.$object->id.'&section='.$_REQUEST["section"].'&action=delete&urlfile='.urlencode($file['name']).'">'.img_delete().'</a>'; + else + print ' '; print "</td></tr>\n"; } } diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index fb7a1dae6de4ac977944a12a9228538d7fdf53c4..2e3ebfab4843254c9c59522f0454b99e6c043fcd 100644 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -412,6 +412,9 @@ Permission2401=Read actions (events or tasks) linked to his account Permission2402=Create/modify/delete actions (events or tasks) linked to his account Permission2403=Read actions (events or tasks) of others Permission2405=Create/modify/delete actions (events or tasks) of others +Permission2500=Read documents +Permission2501=Submit or delete documents +Permission2515=Setup documents directories DictionnaryCompanyType=Company types DictionnaryCompanyJuridicalType=Juridical kinds of company DictionnaryProspectLevel=Prospect potential level diff --git a/htdocs/langs/en_US/errors.lang b/htdocs/langs/en_US/errors.lang index 107bb349b4331d77ad4f5400388c73f6268bc6ee..3af5dd0b5bf24e2112cd39e0a67982d30e718934 100644 --- a/htdocs/langs/en_US/errors.lang +++ b/htdocs/langs/en_US/errors.lang @@ -2,6 +2,7 @@ ErrorDuplicateTrigger=A trigger file with class nam '<b>%s</b>' is present sevaral times. Remove duplicate trigger file in directory '<b>%s</b>'. ErrorFailToDeleteFile=Failed to remove file '<b>%s</b>'. ErrorFailToCreateFile=Failed to create file '<b>%s</b>'. +ErrorFailToRenameDir=Failed to rename directory '<b>%s</b>' into '<b>%s</b>'. ErrorThisContactIsAlreadyDefinedAsThisType=This contact is already defined as contact for this type. ErrorCashAccountAcceptsOnlyCashMoney=This bank account is a cash account, so it accepts payments of type cash only. ErrorFromToAccountsMustDiffers=Source and targets bank accounts must be different. diff --git a/htdocs/langs/fr_FR/admin.lang b/htdocs/langs/fr_FR/admin.lang index cc45a9063ad1c32af53aac859201d8cbdbbe70dd..52d79aae62ead16eb4fb9e46f3d8e8121494962b 100644 --- a/htdocs/langs/fr_FR/admin.lang +++ b/htdocs/langs/fr_FR/admin.lang @@ -410,6 +410,9 @@ Permission2401=Lire les actions ( Permission2402=Creer/modifier/supprimer les actions (�v�nements ou t�ches) li�es � son compte Permission2403=Lire les actions (�v�nements ou t�ches) des autres Permission2405=Creer/modifier/supprimer les actions (�v�nements ou t�ches) pour les autres +Permission2500=Consulter les documents +Permission2501=Soumettre ou supprimer des documents +Permission2515=Administrer les rubriques de documents DictionnaryCompanyType=Types de soci�t�s DictionnaryCompanyJuridicalType=Formes juridiques DictionnaryProspectLevel=Niveau de potentiel des prospects diff --git a/htdocs/langs/fr_FR/errors.lang b/htdocs/langs/fr_FR/errors.lang index f81b1bd3f1db2a4b1371666374b52df22f4077d6..5bfeda2056ee9ff387cd98b9d5a63f8058eabc45 100644 --- a/htdocs/langs/fr_FR/errors.lang +++ b/htdocs/langs/fr_FR/errors.lang @@ -2,6 +2,7 @@ ErrorDuplicateTrigger=Un fichier trigger de classe '<b>%s</b>' est present plusieurs fois. Supprimer le doublon du r�pertoire '<b>%s</b>'. ErrorFailToCreateFile=Echec de la cr�ation du fichier '<b>%s</b>'. ErrorFailToDeleteFile=Echec de l'effacement du fichier '<b>%s</b>'. +ErrorFailToRenameDir=Echec du renommage du r�pertoire '<b>%s</b>' en '<b>%s</b>'. ErrorThisContactIsAlreadyDefinedAsThisType=Ce contact est d�j� d�fini comme contact pour ce type. ErrorCashAccountAcceptsOnlyCashMoney=Ce compte bancaire est de type caisse et n'accepte que les mode de r�glement de type <b>esp�ce</b>. ErrorFromToAccountsMustDiffers=Le compte source et destination doivent etre diff�rents.