diff --git a/htdocs/comm/mailing/cibles.php b/htdocs/comm/mailing/cibles.php index 3767ba17add4fabb5b4311ae642425af212498df..e22b8538a6681dfc55e0eacfce4ab6fbf3ad72ca 100644 --- a/htdocs/comm/mailing/cibles.php +++ b/htdocs/comm/mailing/cibles.php @@ -238,14 +238,22 @@ if ($object->fetch($id) >= 0) { print load_fiche_titre($langs->trans("ToAddRecipientsChooseHere"), ($user->admin?info_admin($langs->trans("YouCanAddYourOwnPredefindedListHere"),1):''), 'title_generic'); - print '<table class="noborder" width="100%">'; - print '<tr class="liste_titre">'; - print '<td class="liste_titre">'.$langs->trans("RecipientSelectionModules").'</td>'; - print '<td class="liste_titre" align="center">'.$langs->trans("NbOfUniqueEMails").'</td>'; - print '<td class="liste_titre" align="left">'.$langs->trans("Filter").'</td>'; - print '<td class="liste_titre" align="center"> </td>'; - print "</tr>\n"; - + //print '<table class="noborder" width="100%">'; + print '<div class="tagtable centpercent liste_titre_bydiv" id="tablelines">'; + + //print '<tr class="liste_titre">'; + print '<div class="tagtr liste_titre">'; + //print '<td class="liste_titre">'.$langs->trans("RecipientSelectionModules").'</td>'; + print '<div class="tagtd">'.$langs->trans("RecipientSelectionModules").'</div>'; + //print '<td class="liste_titre" align="center">'.$langs->trans("NbOfUniqueEMails").'</td>'; + print '<div class="tagtd" align="center">'.$langs->trans("NbOfUniqueEMails").'</div>'; + //print '<td class="liste_titre" align="left">'.$langs->trans("Filter").'</td>'; + print '<div class="tagtd" align="left">'.$langs->trans("Filter").'</div>'; + //print '<td class="liste_titre" align="center"> </td>'; + print '<div class="tagtd"> </div>'; + //print "</tr>\n"; + print '</div>'; + clearstatcache(); $var=true; @@ -303,19 +311,28 @@ if ($object->fetch($id) >= 0) if ($qualified) { $var = !$var; - print '<tr '.$bc[$var].'>'; + //print '<tr '.$bc[$var].'>'; +// print '<div '.$bctag[$var].'>'; if ($allowaddtarget) { - print '<form name="'.$modulename.'" action="'.$_SERVER['PHP_SELF'].'?action=add&id='.$object->id.'&module='.$modulename.'" method="POST" enctype="multipart/form-data">'; + print '<form '.$bctag[$var].' name="'.$modulename.'" action="'.$_SERVER['PHP_SELF'].'?action=add&id='.$object->id.'&module='.$modulename.'" method="POST" enctype="multipart/form-data">'; print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">'; } + else + { + print '<div '.$bctag[$var].'>'; + } - print '<td>'; + //print '<td>'; + print '<div class="tagtd">'; if (empty($obj->picto)) $obj->picto='generic'; - print img_object($langs->trans("Module").': '.get_class($obj),$obj->picto).' '.$obj->getDesc(); - print '</td>'; - + print img_object($langs->trans("Module").': '.get_class($obj),$obj->picto); + print ' '; + print $obj->getDesc(); + //print '</td>'; + print '</div>'; + try { $nbofrecipient=$obj->getNbOfRecipients(''); } @@ -324,7 +341,8 @@ if ($object->fetch($id) >= 0) dol_syslog($e->getMessage(), LOG_ERR); } - print '<td align="center">'; + //print '<td align="center">'; + print '<div class="tagtd center">'; if ($nbofrecipient >= 0) { print $nbofrecipient; @@ -333,41 +351,54 @@ if ($object->fetch($id) >= 0) { print $langs->trans("Error").' '.img_error($obj->error); } - print '</td>'; - - print '<td align="left">'; - try { - $filter=$obj->formFilter(); - } - catch(Exception $e) + //print '</td>'; + print '</div>'; + + //print '<td align="left">'; + print '<div class="tagtd" align="left">'; + if ($allowaddtarget) { - dol_syslog($e->getMessage(), LOG_ERR); + try { + $filter=$obj->formFilter(); + } + catch(Exception $e) + { + dol_syslog($e->getMessage(), LOG_ERR); + } + if ($filter) print $filter; + else print $langs->trans("None"); } - if ($filter) print $filter; - else print $langs->trans("None"); - print '</td>'; - - print '<td align="right">'; + //print '</td>'; + print '</div>'; + + //print '<td align="right">'; + print '<div class="tagtd" align="right">'; if ($allowaddtarget) { - print '<input type="submit" class="button" value="'.$langs->trans("Add").'">'; + print '<input type="submit" class="button" name="button_'.$modulename.'" value="'.$langs->trans("Add").'">'; } else { + print '<input type="submit" class="button disabled" disabled="disabled" name="button_'.$modulename.'" value="'.$langs->trans("Add").'">'; //print $langs->trans("MailNoChangePossible"); print " "; } - print '</td>'; - + //print '</td>'; + print '</div>'; + if ($allowaddtarget) print '</form>'; - - print "</tr>\n"; + else print '</div>'; + + //print "</tr>\n"; +// print '</div>'."\n"; } } } // End foreach dir - print '</table>'; - print '<br>'; + //print '</table>'; + print '</div>'; + + print '<br><br>'; } // List of selected targets diff --git a/htdocs/core/modules/mailings/modules_mailings.php b/htdocs/core/modules/mailings/modules_mailings.php index c75e22ed33416d36277bc635409616736032dc2f..16b930e8907f8dfbebfb07af6bef5bb3bad66818 100644 --- a/htdocs/core/modules/mailings/modules_mailings.php +++ b/htdocs/core/modules/mailings/modules_mailings.php @@ -33,7 +33,8 @@ class MailingTargets // This can't be abstract as it is used for some method { var $db; var $error; - + var $tooltip=''; + /** * Constructor @@ -52,11 +53,16 @@ class MailingTargets // This can't be abstract as it is used for some method */ function getDesc() { - global $langs; + global $langs, $form; + $langs->load("mails"); $transstring="MailingModuleDesc".$this->name; - if ($langs->trans($transstring) != $transstring) return $langs->trans($transstring); - else return $this->desc; + $s=''; + if ($langs->trans($transstring) != $transstring) $s=$langs->trans($transstring); + else $s=$this->desc; + + if ($this->tooltip && is_object($form)) $s .= ' '.$form->textwithpicto('', $langs->trans($this->tooltip), 1, 1); + return $s; } /** diff --git a/htdocs/core/modules/mailings/xinputfile.modules.php b/htdocs/core/modules/mailings/xinputfile.modules.php index 7b6f8361d24d3f9d62f2f1dba20f59c7cb5d71f0..04c4be3ce2e3135146e3f2b0035670bc4f87b9fd 100644 --- a/htdocs/core/modules/mailings/xinputfile.modules.php +++ b/htdocs/core/modules/mailings/xinputfile.modules.php @@ -31,12 +31,11 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; class mailing_xinputfile extends MailingTargets { var $name='EmailsFromFile'; // Identifiant du module mailing - var $desc='EMails issus d\'un fichier'; // Libelle utilise si aucune traduction pour MailingModuleDescXXX ou XXX=name trouv�e + var $desc='EMails from a file'; // Libelle utilise si aucune traduction pour MailingModuleDescXXX ou XXX=name trouv�e var $require_module=array(); // Module mailing actif si modules require_module actifs var $require_admin=0; // Module mailing actif pour user admin ou non var $picto='generic'; - - var $db; + var $tooltip='UseFormatFileEmailToTarget'; /** diff --git a/htdocs/core/modules/mailings/xinputuser.modules.php b/htdocs/core/modules/mailings/xinputuser.modules.php index 7832d1f6a938a40c2523d6f402d0e0f81d194b86..4c5567f574d71afe0fef3b7ab90eb3db26a65344 100644 --- a/htdocs/core/modules/mailings/xinputuser.modules.php +++ b/htdocs/core/modules/mailings/xinputuser.modules.php @@ -35,9 +35,8 @@ class mailing_xinputuser extends MailingTargets var $require_module=array(); // Module mailing actif si modules require_module actifs var $require_admin=0; // Module mailing actif pour user admin ou non var $picto='generic'; - - var $db; - + var $tooltip='UseFormatInputEmailToTarget'; + /** * Constructor @@ -104,7 +103,7 @@ class mailing_xinputuser extends MailingTargets global $langs; $s=''; - $s.='<input type="text" name="xinputuser" class="flat" size="40" value="'.GETPOST("xinputuser").'">'; + $s.='<input type="text" name="xinputuser" class="flat minwidth300" value="'.GETPOST("xinputuser").'">'; return $s; } diff --git a/htdocs/langs/en_US/mails.lang b/htdocs/langs/en_US/mails.lang index 072bbdd975098be4d6cab6557ac3886c4b2a2baf..d036a72186bfbed6cb0c023152cfa59914341f38 100644 --- a/htdocs/langs/en_US/mails.lang +++ b/htdocs/langs/en_US/mails.lang @@ -118,6 +118,8 @@ MailSendSetupIs2=You must first go, with an admin account, into menu %sHome - Se MailSendSetupIs3=If you have any questions on how to setup your SMTP server, you can ask to %s. YouCanAlsoUseSupervisorKeyword=You can also add the keyword <strong>__SUPERVISOREMAIL__</strong> to have email being sent to the supervisor of user (works only if an email is defined for this supervisor) NbOfTargetedContacts=Current number of targeted contact emails +UseFormatFileEmailToTarget=Imported file must have format <strong>email;name;firstname;other</strong> +UseFormatInputEmailToTarget=Enter a string with format <strong>email;name;firstname;other</strong> MailAdvTargetRecipients=Recipients (advanced selection) AdvTgtTitle=Fill input fields to preselect the thirdparties or contacts/addresses to target AdvTgtSearchTextHelp=Use %% as magic caracters. For exemple to find all item like <b>jean, joe, jim</b>, you can input <b>j%%</b>, you can also use ; as separator for value, and use ! for except this value. For exemple <b>jean;joe;jim%%;!jimo;!jima%</b> will target all jean, joe, start with jim but not jimo and not everythnig taht start by jima diff --git a/htdocs/main.inc.php b/htdocs/main.inc.php index 12ed77dd36efe9b4baf761e2bf37b21c611c55e1..3a9ef61d7ecc5efbb84ddab9b429217f24747bf4 100644 --- a/htdocs/main.inc.php +++ b/htdocs/main.inc.php @@ -849,6 +849,7 @@ if (! defined('NOREQUIRETRAN')) $bc=array(0=>'class="impair"',1=>'class="pair"'); $bcdd=array(0=>'class="impair drag drop"',1=>'class="pair drag drop"'); $bcnd=array(0=>'class="impair nodrag nodrop nohover"',1=>'class="pair nodrag nodrop nohoverpair"'); // Used for tr to add new lines +$bctag=array(0=>'class="impair tagtr"',1=>'class="pair tagtr"'); // Define messages variables $mesg=''; $warning=''; $error=0; diff --git a/htdocs/public/test/test_arrays.php b/htdocs/public/test/test_arrays.php index 5eaa20003af6bca818b669f040350caf79211857..175352f404bca5f1d263ade82405f9fc9e5b8d6f 100644 --- a/htdocs/public/test/test_arrays.php +++ b/htdocs/public/test/test_arrays.php @@ -242,8 +242,8 @@ if (! empty($moreforfilter)) <br> - -<br><hr><br>Example 2 : Table using tags: table/thead/tbody/tr/th-td + dataTable => Use this for short result tables<br> +<!-- +<br><hr><br>Example 1b : Table using tags: table/thead/tbody/tr/th-td + dataTable => Use this for short result tables<br> @@ -278,9 +278,6 @@ $(document).ready(function(){ } }, "aaSorting": [[0,'desc']], - - - /* To use in ajax mode "bProcessing": true, "stateSave": true, @@ -292,126 +289,12 @@ $(document).ready(function(){ */ }) }); - - -/* -// counts total number of td in a head so that we can use it for label extraction -var head_col_count = $('xxxthead td').size(); -// loop which replaces td -for ( i=0; i <= head_col_count; i++ ) { - // head column label extraction - var head_col_label = $('xxxthead td:nth-child('+ i +')').text(); - // replaces td with <div class="column" data-label="label"> - $('xxxtr td:nth-child('+ i +')').replaceWith( - function(){ - return $('<div class="column" data-label="'+ head_col_label +'">').append($(this).contents()); - } - ); -} -// replaces table with <div class="table"> -$('xxxtable').replaceWith( - function(){ - return $('<div class="table">').append($(this).contents()); - } -); -// replaces thead with <div class="table-head"> -$('xxxthead').replaceWith( - function(){ - return $('<div class="table-head">').append($(this).contents()); - } -); -// replaces tr with <div class="row"> -$('xxxtr').replaceWith( - function(){ - return $('<div class="row">').append($(this).contents()); - } -); -// replaces th with <div class="column"> -$('xxxth').replaceWith( - function(){ - return $('<div class="column">').append($(this).contents()); - } -); -*/ </script> -<table id="idtableexample2" class="centpercent"> - <thead> - <tr class="liste_titre"> - <th>Column A</th> - <th><label><input type="checkbox" name="hidedetails" value="2"> A checkbox inside a title of Column B</label></th> - <?php - print getTitleFieldOfList($langs->trans('Column C'),1,$_SERVER["PHP_SELF"],'','','','align="center" class="tagtd"',$sortfield,$sortorder); - ?> - </tr> - </thead> - <tbody> - <tr> - <td>line1</td> - <td>dfsdf</td> - <td align="center"> xxx </td> - </tr> - <tr> - <td>line2</td> - <td>dfsdf</td> - <td align="center" class="nowrap"> xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx </td> - </tr> - <tr> - <td>line3</td> - <td>dfsdf</td> - <td align="center"> xxx </td> - </tr> - <tr> - <td>line4</td> - <td>dfsdf</td> - <td align="center"> xxx </td> - </tr> - <tr> - <td>line5</td> - <td>dfsdf</td> - <td align="center"> xxx </td> - </tr> - <tr> - <td>line6</td> - <td>dfsdf</td> - <td align="center"> xxx </td> - </tr> - <tr> - <td>line7</td> - <td>dfsdf</td> - <td align="center"> xxx </td> - </tr> - <tr> - <td>line8</td> - <td>dfsdf</td> - <td align="center"> xxx </td> - </tr> - <tr> - <td>line9</td> - <td>dfsdf</td> - <td align="center"> xxx </td> - </tr> - <tr> - <td>line10</td> - <td>dfsdf</td> - <td align="center"> xxx </td> - </tr> - <tr> - <td>line11</td> - <td>dfsdf</td> - <td align="center"> xxx </td> - </tr> - <tr> - <td>line12</td> - <td>dfsdf</td> - <td align="center"> xxx </td> - </tr> - </tbody> -</table> -<br> + --> -<br><hr><br>Example 3 : Table using tags: div.tagtable+div.tagtr+div or div.tagtable+div.tagtr+div.tagtd => Use this for tables that need to have a different form for each line, but AVOID IT if possible (drag and drop of lines does not work for this case, also height of title can't be forced to a minimum)<br><br> +<br><hr><br>Example 2 : Table using tags: div.tagtable+(div|form).tagtr+div[.tagtd] => Use this for tables that need to have a different form for each line, but AVOID IT if possible (drag and drop of lines does not work for this case, also height of title can't be forced to a minimum)<br><br> <?php @@ -419,7 +302,7 @@ $('xxxth').replaceWith( $tagidfortablednd='tablelines'; if (! empty($conf->use_javascript_ajax)) include DOL_DOCUMENT_ROOT.'/core/tpl/ajaxrow.tpl.php'; ?> -<div class="tagtable centpercent" id="tablelines"> +<div class="tagtable centpercent liste_titre_bydiv" id="tablelines"> <div class="tagtr liste_titre"> <div class="tagtd">Title A<input type="hidden" name="cartitem" value="3"></div> <div class="tagtd">title B</div>