diff --git a/htdocs/admin/menus/edit.php b/htdocs/admin/menus/edit.php index 44dcc88fba2..b97d28e716a 100644 --- a/htdocs/admin/menus/edit.php +++ b/htdocs/admin/menus/edit.php @@ -1,6 +1,6 @@ - * Copyright (C) 2007 Laurent Destailleur +/* Copyright (C) 2007 Patrick Raguin + * Copyright (C) 2007-2008 Laurent Destailleur * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -17,7 +17,6 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * * $Id$ - * $Source$ */ /** @@ -80,10 +79,12 @@ if (isset($_GET["action"]) && $_GET["action"] == 'add') { if ($_POST['cancel']) { - header("location:index.php"); + header("Location: ".DOL_URL_ROOT."/admin/menus/index.php"); exit; } + $langs->load("errors"); + $error=0; if (! $error && ! $_POST['handler']) { @@ -109,6 +110,12 @@ if (isset($_GET["action"]) && $_GET["action"] == 'add') $_GET["action"] = 'create'; $error++; } + if (! $error && $_POST['menuId'] && $_POST['type'] == 'top') + { + $mesg='
'.$langs->trans("ErrorTopMenuMustHaveAParentWithId0").'
'; + $_GET["action"] = 'create'; + $error++; + } if (! $error) { $sql = "SELECT max(m.rowid) as maxId FROM ".MAIN_DB_PREFIX."menu as m"; @@ -143,13 +150,12 @@ if (isset($_GET["action"]) && $_GET["action"] == 'add') $result=$db->query($sql); if ($result > 0) { - dolibarr_syslog("location: edit.php?action=edit&menuId=".$rowid); - header("location: edit.php?action=edit&menuId=".$rowid); + header("Location: ".DOL_URL_ROOT."/admin/menus/index.php"); exit; } else { - $mesg='
'.'FailedToInsert'.$db->lasterror().' sql='.$sql.'
'; + $mesg='
Error '.$db->lasterror().' sql='.$sql.'
'; $_GET["action"] = 'create'; } } @@ -204,15 +210,17 @@ if (isset($_GET["action"]) && $_GET["action"] == 'del_const') // Suppression if ($_POST["action"] == 'confirm_delete' && $_POST["confirm"] == 'yes') { + $this->db->begin(); + $sql = "SELECT c.rowid, c.fk_constraint FROM ".MAIN_DB_PREFIX."menu_const as c WHERE c.fk_menu = ".$_GET['menuId']; $res = $db->query($sql); if ($res) { - while ($obj = $db->fetch_object ($res)) + while ($obj = $db->fetch_object($res)) { $sql = "DELETE FROM ".MAIN_DB_PREFIX."menu_const WHERE rowid = ".$obj->rowid; - $db->query($sql); + $result = $db->query($sql); $sql = "SELECT count(rowid) as countId FROM ".MAIN_DB_PREFIX."menu_const WHERE fk_constraint = ".$obj->fk_constraint; $result = $db->query($sql); @@ -224,9 +232,6 @@ if ($_POST["action"] == 'confirm_delete' && $_POST["confirm"] == 'yes') $db->query($sql); } } - - - } $sql = "DELETE FROM ".MAIN_DB_PREFIX."menu WHERE rowid = ".$_GET['menuId']; @@ -234,6 +239,8 @@ if ($_POST["action"] == 'confirm_delete' && $_POST["confirm"] == 'yes') if ($result == 0) { + $this->db->commit(); + llxHeader(); print '
'.$langs->trans("MenuDeleted").'
'; llxFooter(); @@ -241,6 +248,8 @@ if ($_POST["action"] == 'confirm_delete' && $_POST["confirm"] == 'yes') } else { + $this->db->rollback(); + $reload = 0; $_GET["action"]=''; } @@ -261,6 +270,7 @@ if (isset($_GET["action"]) && $_GET["action"] == 'create') print_titre($langs->trans("NewMenu"),'','setup'); if ($mesg) print $mesg; + else print '
'; print '
'; @@ -287,16 +297,12 @@ if (isset($_GET["action"]) && $_GET["action"] == 'create') // MenuId Parent print ''.$langs->trans('MenuIdParent').''; - //$menu_handler - //print ''; - print ''; + print ''; print ''.$langs->trans('DetailMenuIdParent').''; //Handler print ''.$langs->trans('MenuHandler').''; - //$menu_handler - //print ''; - print ''; + print ''; print ''.$langs->trans('DetailMenuHandler').''; // Type @@ -309,11 +315,11 @@ if (isset($_GET["action"]) && $_GET["action"] == 'create') // print ''; print ''.$langs->trans('DetailType').''; //User - print ''.$langs->trans('User').''; + print ''.$langs->trans('MenuForUsers').''; print ''; print ''.$langs->trans('DetailUser').''; //Level @@ -323,7 +329,7 @@ if (isset($_GET["action"]) && $_GET["action"] == 'create') //URL print ''.$langs->trans('URL').''.$langs->trans('DetailUrl').''; //Langs - print ''.$langs->trans('Langs').''.$langs->trans('DetailLangs').''; + print ''.$langs->trans('LangFile').''.$langs->trans('DetailLangs').''; //Target print ''.$langs->trans('Target').''.$langs->trans('DetailLeftmenu').''; // Boutons - print ''; + print ''; print ' '; - print ''; + print ''; print ''; @@ -351,6 +357,8 @@ elseif (isset($_GET["action"]) && $_GET["action"] == 'edit') { print_titre($langs->trans("ModifMenu"),'','setup'); + print '
'; + print ''; print ''; @@ -382,10 +390,10 @@ elseif (isset($_GET["action"]) && $_GET["action"] == 'edit') print ''; // user - print ''; // Type @@ -397,7 +405,7 @@ elseif (isset($_GET["action"]) && $_GET["action"] == 'edit') // Titre print ''; // Langs - print ''; + print ''; // Url print ''; @@ -409,7 +417,7 @@ elseif (isset($_GET["action"]) && $_GET["action"] == 'edit') print ''; // Right - print ''; + print ''; // Leftmenu //print ''; @@ -417,16 +425,20 @@ elseif (isset($_GET["action"]) && $_GET["action"] == 'edit') //print ''; // Bouton - print ''; + print ''; $i++; } } + print '
'.$langs->trans('MenuHandler').''.$menu->menu_handler.''.$langs->trans('DetailMenuHandler').'
'.$langs->trans('User').'
'.$langs->trans('MenuForUsers').''.$langs->trans('DetailUser').'
'.$langs->trans('Title').''.$langs->trans('DetailTitre').'
'.$langs->trans('Langs').''.$langs->trans('DetailLangs').'
'.$langs->trans('LangFile').''.$langs->trans('DetailLangs').'
'.$langs->trans('URL').''.$langs->trans('DetailUrl').'
'.$langs->trans('DetailTarget').'
'.$langs->trans('Right').''.$langs->trans('DetailRight').'
'.$langs->trans('Rights').''.$langs->trans('DetailRight').'
'.$langs->trans('Leftmenu').''.$langs->trans('DetailLeftmenu').'
'.$langs->trans('Group').''.$langs->trans('DetailMainmenu').'
'; - print ' '; - print '
'; + print '     '; + print '
'; + print '
'; - + + print '
'; + /* * Lignes de contraintes */ @@ -478,7 +490,7 @@ elseif (isset($_GET["action"]) && $_GET["action"] == 'edit') } print ''; - print ''.$langs->trans('Constraint').''; + print ''.$langs->trans('Constraints').''; print ''.$langs->trans('User').''; print ' '; print "\n"; @@ -495,6 +507,7 @@ elseif (isset($_GET["action"]) && $_GET["action"] == 'edit') print ''; print ''; @@ -251,20 +256,93 @@ $idLast = -1; if ($conf->use_javascript_ajax) { print ''; + + /*-------------------- MAIN ----------------------- + tableau des éléments de l'arbre: + c'est un tableau à 2 dimensions. + Une ligne représente un élément : data[$x] + chaque ligne est décomposée en 3 données: + - l'index de l'élément + - l'index de l'élément parent + - la chaîne à afficher + ie: data[]= array (index, index parent, chaine ) + */ + //il faut d'abord déclarer un élément racine de l'arbre + + $data[] = array(0,-1,"racine"); + + //puis tous les éléments enfants + + + $sql = "SELECT m.rowid, m.fk_menu, m.titre, m.langs"; + $sql.= " FROM ".MAIN_DB_PREFIX."menu as m"; + $sql.= " WHERE menu_handler='".$menu_handler."'"; + $sql.= " ORDER BY m.order, m.rowid"; + $res = $db->query($sql); + + if ($res) + { + $num = $db->num_rows($res); + + $i = 1; + while ($menu = $db->fetch_array ($res)) + { + $langs->load($menu['langs']); + $titre = $langs->trans($menu['titre']); + $data[] = array($menu['rowid'],$menu['fk_menu'],$titre); + $i++; + } + } + + //appelle de la fonction récursive (ammorce) + //avec recherche depuis la racine. + print '
    '; + recur($data,0,0); + print ''; + print '
'; + + print ''; + + print ''; + + print ''; + + + print ''; + + + /* + * Boutons actions + */ + print '
'; + print ''.$langs->trans("NewMenu").''; + print '
'; } +else +{ + $langs->load("errors"); + print '
'.$langs->trans("ErrorFeatureNeedJavascript").'
'; +} + +$db->close(); + +llxFooter('$Date$ - $Revision$'); + + /* cette fonction gère le décallage des éléments suivant leur position dans l'arborescence */ function affiche($tab,$rang) { - global $rangLast, $idLast, $menu_handler; + global $conf, $rangLast, $idLast, $menu_handler; if ($conf->use_javascript_ajax) { if($rang == $rangLast) { print ''; + //print 'aa'; } elseif($rang > $rangLast) { @@ -307,9 +385,9 @@ function affiche($tab,$rang) print '
  • '; print ''; print ''.$tab[2].''; - print ''; - print ''; - print ''; + print ''; + print ''; + print ''; print ''; print '
  • '; echo "\n"; @@ -345,67 +423,5 @@ function recur($tab,$pere,$rang) { } } -/*-------------------- MAIN ----------------------- - tableau des éléments de l'arbre: - c'est un tableau à 2 dimensions. - Une ligne représente un élément : data[$x] - chaque ligne est décomposée en 3 données: - - l'index de l'élément - - l'index de l'élément parent - - la chaîne à afficher - ie: data[]= array (index, index parent, chaine ) -*/ - //il faut d'abord déclarer un élément racine de l'arbre - -$data[] = array(0,-1,"racine"); - - //puis tous les éléments enfants - - -$sql = "SELECT m.rowid, m.fk_menu, m.titre, m.langs"; -$sql.= " FROM ".MAIN_DB_PREFIX."menu as m"; -$sql.= " WHERE menu_handler='".$menu_handler."'"; -$sql.= " ORDER BY m.order, m.rowid"; -$res = $db->query($sql); - -if ($res) -{ - $num = $db->num_rows(); - - $i = 1; - while ($menu = $db->fetch_array ($res)) - { - $langs->load($menu['langs']); - $titre = $langs->trans($menu['titre']); - $data[] = array($menu['rowid'],$menu['fk_menu'],$titre); - $i++; - } -} - - //appelle de la fonction récursive (ammorce) - //avec recherche depuis la racine. - print '
      '; - recur($data,0,0); - print ''; - print '
    '; - - - print ''; - - print ''; - - print ''; - - -print ''; - -print '
    '; -print ''.$langs->trans("NewMenu").''; -print '
    '; - - -$db->close(); - -llxFooter('$Date$ - $Revision$'); ?> diff --git a/htdocs/conf/conf.php.example b/htdocs/conf/conf.php.example index 53d5ac2c54b..b1869b792f4 100644 --- a/htdocs/conf/conf.php.example +++ b/htdocs/conf/conf.php.example @@ -131,7 +131,7 @@ $character_set_client="ISO-8859-1"; # $dolibarr_main_authentication="dolibarr"; # $dolibarr_main_authentication="ldap"; # -$dolibarr_main_authentication="dolibarr" +$dolibarr_main_authentication="dolibarr"; # Parameters used to setup LDAP authentication. diff --git a/htdocs/includes/boxes/box_actions.php b/htdocs/includes/boxes/box_actions.php index 2b28ed43495..fd88b65d424 100644 --- a/htdocs/includes/boxes/box_actions.php +++ b/htdocs/includes/boxes/box_actions.php @@ -52,7 +52,7 @@ class box_actions extends ModeleBoxes { global $langs; $langs->load("boxes"); - $this->boxlabel="Actions commerciales"; + $this->boxlabel=$langs->trans("BoxLastActions"); } /** diff --git a/htdocs/includes/menus/barre_top/auguria_backoffice.php b/htdocs/includes/menus/barre_top/auguria_backoffice.php index 556ea6ae561..ff719fe7b8e 100644 --- a/htdocs/includes/menus/barre_top/auguria_backoffice.php +++ b/htdocs/includes/menus/barre_top/auguria_backoffice.php @@ -69,7 +69,7 @@ class MenuTop { if (! session_id()) { session_name("DOLSESSID_".$dolibarr_main_db_name); - session_start(); // En mode authentification PEAR, la session a déjà été ouverte + session_start(); } $user->getrights(""); @@ -86,7 +86,7 @@ class MenuTop { } - $menuArbo = new menudb($this->db,'auguria','top'); + $menuArbo = new MenuDb($this->db,'auguria','top'); $tabMenu = $menuArbo->menutopCharger(0,$_SESSION['mainmenu']); print '
      '; @@ -104,8 +104,6 @@ class MenuTop { } } - - print '
    '; diff --git a/htdocs/includes/menus/barre_top/auguria_frontoffice.php b/htdocs/includes/menus/barre_top/auguria_frontoffice.php index dfe533455e2..6e7f728c45a 100644 --- a/htdocs/includes/menus/barre_top/auguria_frontoffice.php +++ b/htdocs/includes/menus/barre_top/auguria_frontoffice.php @@ -69,7 +69,7 @@ class MenuTop { if (! session_id()) { session_name("DOLSESSID_".$dolibarr_main_db_name); - session_start(); // En mode authentification PEAR, la session a déjà été ouverte + session_start(); } $user->getrights(""); @@ -104,9 +104,7 @@ class MenuTop { } } - - - + print ''; } diff --git a/htdocs/includes/menus/barre_top/eldy_backoffice.php b/htdocs/includes/menus/barre_top/eldy_backoffice.php index 55b8211fc34..474a577c764 100644 --- a/htdocs/includes/menus/barre_top/eldy_backoffice.php +++ b/htdocs/includes/menus/barre_top/eldy_backoffice.php @@ -423,6 +423,26 @@ class MenuTop { print 'atarget?" target=$this->atarget":"").'>'.$langs->trans("BugTracker").''; } + + + // Affichage des menus personnalises + require_once(DOL_DOCUMENT_ROOT."/admin/menus/module_menudb.php"); + + $menuArbo = new MenuDb($this->db,'eldy','top'); + $tabMenu = $menuArbo->menutopCharger(0,$_SESSION['mainmenu']); + for($i=0;$iatarget?" target=$this->atarget":"").'>'.$tabMenu[$i]['titre'].''; + } + else + { + print ''.$tabMenu[$i]['titre'].''; + } + + } + print ''; diff --git a/htdocs/includes/modules/modAgenda.class.php b/htdocs/includes/modules/modAgenda.class.php index 460dd04e9d2..ec9c409dd81 100644 --- a/htdocs/includes/modules/modAgenda.class.php +++ b/htdocs/includes/modules/modAgenda.class.php @@ -82,6 +82,7 @@ class modAgenda extends DolibarrModules // Boites //------- $this->boxes = array(); + $this->boxes[0][1] = "box_actions.php"; // Permissions //------------ diff --git a/htdocs/includes/modules/modCommercial.class.php b/htdocs/includes/modules/modCommercial.class.php index 68df048e255..3930344ee74 100644 --- a/htdocs/includes/modules/modCommercial.class.php +++ b/htdocs/includes/modules/modCommercial.class.php @@ -80,9 +80,6 @@ class modCommercial extends DolibarrModules $this->boxes[1][0] = "Derniers prospects enregistrés"; $this->boxes[1][1] = "box_prospect.php"; - $this->boxes[2][0] = "Dernières actions"; - $this->boxes[2][1] = "box_actions.php"; - // Permissions $this->rights = array(); $this->rights_class = 'commercial'; diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index a318778b902..99fc8a869b6 100644 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -44,6 +44,8 @@ ComptaSetup=Accounting module setup UserSetup=Users' management setup MenuSetup=Menus management setup MenuLimits=Limits and accuracy +MenuIdParent=Parent menu id +DetailMenuIdParent=Id of parent menu (0 for a top menu) NotConfigured=Not configured Setup=Setup Activation=Activation @@ -70,7 +72,9 @@ Boxes=Boxes PositionByDefault=Default order Position=Order MenusDesc=Menus managers define content of the 2 menu bars (horizontal bar and vertical bar). -MenusEditorDesc=The menu editor allow you to define personalized entries in menus. Use it carefully to avoid having dolibarr instable and menu entries definitely not reachable. +MenusEditorDesc=The menu editor allow you to define personalized entries in menus. Use it carefully to avoid having dolibarr instable and menu entries definitely not reachable.
    Some modules add some entries in menus (in menu all in most cases). If you removed some of this entries by error, you can restore them by disabling and reenabling the module. +MenuForUsers=Menu for users +LangFile=File .langs System=System SystemInfo=System information SystemTools=System tools @@ -804,14 +808,14 @@ MenuHandler=Menu handler DetailId=Id menu DetailMenuHandler=Menu handler (or "all" for all menu handlers) DetailType=Type of menu (top or left) -DetailTitre=Menu label +DetailTitre=Menu label or label code for translation DetailMainmenu=Group for which it belongs (obsolete) -DetailUrl=URL where menu send you +DetailUrl=URL where menu send you (Absolute URL link or external link with http://) DetailLeftmenu=Displya condition or not (obsolete) DetailRight=Condition to display unauthorized grey menus -DetailLangs=Lang file name for label translation +DetailLangs=Lang file name for label code translation DetailUser=Intern / Extern / All -DetailTarget=Target +DetailTarget=Target for links (_new top open a new window) DetailLevel=Level (-1:top menu, 0:header menu, >0 menu and sub menu) ModifMenu=Menu change DeleteMenu=Delete menu entry diff --git a/htdocs/langs/en_US/boxes.lang b/htdocs/langs/en_US/boxes.lang index 0323db55b73..d0c284b44e6 100644 --- a/htdocs/langs/en_US/boxes.lang +++ b/htdocs/langs/en_US/boxes.lang @@ -12,6 +12,7 @@ BoxLastCustomers=Last customers BoxLastCustomerOrders=Last customer orders BoxLastSuppliers=Last suppliers BoxLastBooks=Last books +BoxLastActions=Last actions BoxCurrentAccounts=Current accounts balance BoxSalesTurnover=Sales turnover BoxTotalUnpayedCustomerBills=Total unpayed customer's invoices diff --git a/htdocs/langs/en_US/errors.lang b/htdocs/langs/en_US/errors.lang index 366573a461c..9404b222ddb 100644 --- a/htdocs/langs/en_US/errors.lang +++ b/htdocs/langs/en_US/errors.lang @@ -1,19 +1,21 @@ -# Dolibarr language file - en_US - errors -ErrorDuplicateTrigger=A trigger file with class nam '%s' is present sevaral times. Remove duplicate trigger file in directory '%s'. -ErrorFailToDeleteFile=Failed to remove file '%s'. -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. -ErrorBadThirdPartyName=Bad value for third party name -ErrorBadCustomerCodeSyntax=Bad syntax for customer code -ErrorCustomerCodeRequired=Customer code required -ErrorCustomerCodeAlreadyUsed=Customer code already used -ErrorPrefixRequired=Prefix required -ErrorBadSupplierCodeSyntax=Bad syntax for supplier code -ErrorSupplierCodeRequired=Supplier code required +# Dolibarr language file - en_US - errors +ErrorDuplicateTrigger=A trigger file with class nam '%s' is present sevaral times. Remove duplicate trigger file in directory '%s'. +ErrorFailToDeleteFile=Failed to remove file '%s'. +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. +ErrorBadThirdPartyName=Bad value for third party name +ErrorBadCustomerCodeSyntax=Bad syntax for customer code +ErrorCustomerCodeRequired=Customer code required +ErrorCustomerCodeAlreadyUsed=Customer code already used +ErrorPrefixRequired=Prefix required +ErrorBadSupplierCodeSyntax=Bad syntax for supplier code +ErrorSupplierCodeRequired=Supplier code required ErrorSupplierCodeAlreadyUsed=Supplier code already used ErrorBadParameters=Bad parameters -UserCannotBeDelete=User can not be deleted. May be it is associated on Dolibarr entities. +UserCannotBeDelete=User can not be deleted. May be it is associated on Dolibarr entities. ErrorFieldsRequired=Some required fields were not filled. ErrorFailedToCreateDir=Failed to create a directory. Check that Web server user has permissions to write into Dolibarr documents directory. If parameter safe_mode is enabled on this PHP, check that Dolibarr php files owns to web server user (or group). -ErrorNoMailDefinedForThisUser=No mail defined for this user +ErrorNoMailDefinedForThisUser=No mail defined for this user +ErrorFeatureNeedJavascript=This feature need javascript to be activated to work. Change this in setup - display. +ErrorTopMenuMustHaveAParentWithId0=A menu of type 'Top' can't have a parent menu. Put 0 in parent menu or choose a menu of type 'Left'. \ No newline at end of file diff --git a/htdocs/langs/fr_FR/admin.lang b/htdocs/langs/fr_FR/admin.lang index f0a8ec2fca6..a6647b47e1f 100644 --- a/htdocs/langs/fr_FR/admin.lang +++ b/htdocs/langs/fr_FR/admin.lang @@ -43,6 +43,8 @@ UseAvToScanUploadedFiles=Utilisation d'un anti-virus pour scanner les fichiers u ComptaSetup=Configuration du module Comptabilité UserSetup=Configuration gestion des utilisateurs MenuSetup=Administration des menus par base de données +MenuIdParent=Id du menu parent +DetailMenuIdParent=Id du menu parent (0 pour un menu du haut) MenuLimits=Limites et précision NotConfigured=Non configuré Setup=Configuration @@ -70,7 +72,9 @@ Boxes=Bo PositionByDefault=Position par défaut Position=Ordre MenusDesc=Les gestionnaires de menu définissent le contenu des 2 barres de menus (la barre horizontale et la barre verticale). Il est possible de mettre un gestionnaire différent selon que l'utilisateur soit interne ou externe. -MenusEditorDesc=L'éditeur de menu permet de définir des entrées personalisées dans les menus. Il doit être utilisé avec prudence sous peine de mettre Dolibarr en situation instable nécéssitant une réinstallation pour retrouver un menu cohérent. +MenusEditorDesc=L'éditeur de menu permet de définir des entrées personalisées dans les menus. Il doit être utilisé avec prudence sous peine de mettre Dolibarr en situation instable nécéssitant une réinstallation pour retrouver un menu cohérent.
    Certains modules ajoutent des entrées personnalisées aux menus (dans le menu all en général). Si vous détruisez ces entrées par erreur, vous pourrez les récupérer en désactivant puis réactivant le module. +MenuForUsers=Menu pour les utilisateurs +LangFile=Fichier .langs System=Système SystemInfo=Infos Système SystemTools=Outils Système @@ -809,14 +813,14 @@ MenuHandler=Gestionnaire de menu DetailId=Identifiant du menu DetailMenuHandler=Nom du gestionnaire menu (ou "all" pour tous) DetailType=Type de menu (top ou left) -DetailTitre=Libellé du menu +DetailTitre=Libellé du menu ou code libellé à traduire DetailMainmenu=Groupe auquel il appartient (obsolete) -DetailUrl=URL de la page vers laquelle le menu pointe +DetailUrl=URL vers laquelle le menu pointe (Lien URL absolu ou lien externe avec http://) DetailLeftmenu=Condition d'affichage ou non (obsolete) DetailRight=Condition d'affichage plein ou grisé -DetailLangs=Fichier langs pour la traduction du titre +DetailLangs=Fichier langs pour la traduction du code libellé DetailUser=Interne / Externe / Tous -DetailTarget=Cible +DetailTarget=Cible liens menu (_new pour ouvrir une nouvelle fenetre) DetailLevel=Niveau (-1:menu top, 0:entete menu, >0 menu et sous menu) ModifMenu=Modification du menu DeleteMenu=Effacer entrée de menu diff --git a/htdocs/langs/fr_FR/boxes.lang b/htdocs/langs/fr_FR/boxes.lang index 2801b8a0501..2b3285b147a 100644 --- a/htdocs/langs/fr_FR/boxes.lang +++ b/htdocs/langs/fr_FR/boxes.lang @@ -12,6 +12,7 @@ BoxLastCustomers=Derniers clients BoxLastCustomerOrders=Dernières commandes BoxLastSuppliers=Derniers fournisseurs BoxLastBooks=Derniers livres +BoxLastActions=Dernières actions BoxCurrentAccounts=Soldes Comptes courants BoxSalesTurnover=Chiffre d'affaire BoxTotalUnpayedCustomerBills=Total des factures clients impayées diff --git a/htdocs/langs/fr_FR/errors.lang b/htdocs/langs/fr_FR/errors.lang index 20264046c94..0bb0abd63ea 100644 --- a/htdocs/langs/fr_FR/errors.lang +++ b/htdocs/langs/fr_FR/errors.lang @@ -1,19 +1,21 @@ -# Dolibarr language file - fr_FR - errors -ErrorDuplicateTrigger=Un fichier trigger de classe '%s' est present plusieurs fois. Supprimer le doublon du répertoire '%s'. -ErrorFailToDeleteFile=Echec de l'effacement du fichier '%s'. -ErrorThisContactIsAlreadyDefinedAsThisType=Ce contact est déjà défini comme contact pour ce type. +# Dolibarr language file - fr_FR - errors +ErrorDuplicateTrigger=Un fichier trigger de classe '%s' est present plusieurs fois. Supprimer le doublon du répertoire '%s'. +ErrorFailToDeleteFile=Echec de l'effacement du fichier '%s'. +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 espèce. ErrorFromToAccountsMustDiffers=Le compte source et destination doivent etre différents. -ErrorBadThirdPartyName=Nom de tiers incorrect -ErrorBadCustomerCodeSyntax=La syntaxe du code client est incorrect -ErrorCustomerCodeRequired=Code client obligatoire -ErrorCustomerCodeAlreadyUsed=Code client deja utilise -ErrorPrefixRequired=Prefix obligatoire -ErrorBadSupplierCodeSyntax=La syntaxe du code fournisseur est incorrect -ErrorSupplierCodeRequired=Code fournisseur obligatoire +ErrorBadThirdPartyName=Nom de tiers incorrect +ErrorBadCustomerCodeSyntax=La syntaxe du code client est incorrect +ErrorCustomerCodeRequired=Code client obligatoire +ErrorCustomerCodeAlreadyUsed=Code client deja utilise +ErrorPrefixRequired=Prefix obligatoire +ErrorBadSupplierCodeSyntax=La syntaxe du code fournisseur est incorrect +ErrorSupplierCodeRequired=Code fournisseur obligatoire ErrorSupplierCodeAlreadyUsed=Code fournisseur deja utilise ErrorBadParameters=Parametres incorrects -UserCannotBeDelete=L'utilisateur ne peut pas etre supprimée. Peut-être est-il associé à des éléments de Dolibarr. +UserCannotBeDelete=L'utilisateur ne peut pas etre supprimée. Peut-être est-il associé à des éléments de Dolibarr. ErrorFieldsRequired=Des champs obligatoires n'ont pas été renseignés ErrorFailedToCreateDir=Echec a la creation d'un repertoire. Verifiez que le user du serveur Web a bien les droits d'ecriture dans les repertoires documents de Dolibarr. Si le parametre safe_mode a été activé sur ce PHP, vérifier que les fichiers php dolibarr appartiennent à l'utilisateur du serveur Web. -ErrorNoMailDefinedForThisUser=EMail non defini pour cet utilisateur \ No newline at end of file +ErrorNoMailDefinedForThisUser=EMail non defini pour cet utilisateur +ErrorFeatureNeedJavascript=Cette fonctionnalité a besoin de javascript activé pour fonctionner. Modifier dans configuration - affichage. +ErrorTopMenuMustHaveAParentWithId0=Un menu de type 'Top' ne peut avoir de menu père. Mettre 0 dans l'id père ou choisir un menu de type 'Left'. \ No newline at end of file diff --git a/htdocs/lib/functions.inc.php b/htdocs/lib/functions.inc.php index feed3dcba38..9e7ef92586a 100644 --- a/htdocs/lib/functions.inc.php +++ b/htdocs/lib/functions.inc.php @@ -1029,12 +1029,13 @@ function img_edit_remove($alt = "default") \param float Si il faut y mettre le style "float: right" \return string Retourne tag img */ -function img_edit($alt = "default",$float=0) +function img_edit($alt = "default", $float=0, $other='') { global $conf,$langs; if ($alt=="default") $alt=$langs->trans("Modify"); $img=''.$alt.'global->MAIN_FEATURES_LEVEL) || $conf->global->MAIN_FEATURES_LEVEL < 2) +if (empty($conf->global->MAIN_FEATURES_LEVEL) || $conf->global->MAIN_FEATURES_LEVEL < 2) { header('Cache-Control: max-age=3600, public, must-revalidate'); } @@ -167,16 +167,19 @@ div.tmenu border-left: 0px; padding: 0px 0px 0px 0px; margin: 0px 0px 2px 0px; + font-size: 12px; + height: 19px; background-image : url() ; height: 22px; } div.tmenu .tmenudisabled { color: #757575; - font-size: 13px; + font-size: 12px; padding-left:10px; padding-right:10px; padding-top:3px; + cursor: not-allowed; } table.tmenu @@ -240,8 +243,9 @@ font.tmenudisabled color: #93a5aa; padding: 0px 5px 0px 5px; margin: 0px 0px 2px 0px; - font-weight:bold; - font-size:12px; + font-weight: normal; + font-size: 12px; + cursor: not-allowed; } a.tmenu:active @@ -906,6 +910,10 @@ font-size: 12px; .warning { color: #887711; } .error { color: #550000; font-weight: bold; } +td.warning { /* Utilise par Smarty */ + background: #FF99A9; +} + div.ok { color: #114466; } @@ -921,6 +929,13 @@ div.error { border: 1px solid #8C9CAB; } +div.info { /* Info admin */ + color: #888888; + padding: 0.2em 0.2em 0.2em 0.2em; + margin: 0.5em 0em 0.5em 0em; + border: 1px solid #ACACAB; +} + /* * Liens Payes/Non payes diff --git a/htdocs/theme/eldy/eldy.css.php b/htdocs/theme/eldy/eldy.css.php index 53dda0fefad..49c0e6b59df 100644 --- a/htdocs/theme/eldy/eldy.css.php +++ b/htdocs/theme/eldy/eldy.css.php @@ -183,7 +183,7 @@ div.tmenu border-bottom: 1px solid #8B9999; padding: 0px 0px 0px 0px; margin: 0px 0px 2px 0px; - font-weight: bold; + font-weight: normal; font-size: 12px; height: 19px; background: #b3c5cc; @@ -194,10 +194,11 @@ div.tmenu div.tmenu .tmenudisabled { color: #757575; - font-size: 13px; + font-size: 12px; padding-left:10px; padding-right:10px; padding-top:3px; + cursor: not-allowed; } table.tmenu @@ -262,7 +263,7 @@ font.tmenudisabled padding: 0px 5px 0px 5px; margin: 0px 0px 2px 0px; font-weight: normal; - font-size:12px; + font-size: 12px; cursor: not-allowed; }