diff --git a/css/gamumail.css b/css/gamumail.css index 83b76dd..2d72a1d 100644 --- a/css/gamumail.css +++ b/css/gamumail.css @@ -20,14 +20,17 @@ overflow: hidden; margin: 3px 0; } + .tag-editor div { float: left; padding: 0 4px; } + .tag-editor .placeholder { padding: 0 8px; color: #bbb; } + .tag-editor .tag-editor-spacer { padding: 0; width: 8px; @@ -35,6 +38,7 @@ color: transparent; background: none; } + .tag-editor input { vertical-align: inherit; border: 0; @@ -50,15 +54,18 @@ background: none; color: #444; } + /* hide original input field or textarea visually to allow tab navigation */ .tag-editor-hidden-src { position: absolute !important; left: -99999px; } + /* hide IE10 "clear field" X */ .tag-editor ::-ms-clear { display: none; } + /* tag style */ .tag-editor .tag-editor-tag { /*padding-left: 5px; color: #46799b; background: #e0eaf1; white-space: nowrap;*/ @@ -71,6 +78,7 @@ cursor: pointer; border-radius: 4px 0 0 4px; } + /* delete icon */ /*.tag-editor .tag-editor-delete { background: #e0eaf1; cursor: pointer; border-radius: 0 2px 2px 0; padding-left: 3px; padding-right: 4px; }*/ .tag-editor .tag-editor-delete { @@ -80,10 +88,12 @@ padding-left: 3px; padding-right: 4px; } + .tag-editor .tag-editor-delete i { line-height: 18px; display: inline-block; } + /*.tag-editor .tag-editor-delete i:before { font-size: 16px; color: #8ba7ba; content: "×"; font-style: normal; }*/ .tag-editor .tag-editor-delete i:before { font-size: 16px; @@ -91,14 +101,17 @@ content: '×'; font-style: normal; } + .tag-editor .tag-editor-delete:hover i:before { color: #d65454; } -.tag-editor .tag-editor-tag.active + .tag-editor-delete, -.tag-editor .tag-editor-tag.active + .tag-editor-delete i { + +.tag-editor .tag-editor-tag.active+.tag-editor-delete, +.tag-editor .tag-editor-tag.active+.tag-editor-delete i { visibility: hidden; cursor: text; } + .tag-editor .tag-editor-tag.active { background: none !important; } @@ -111,9 +124,11 @@ cursor: default; font-size: 14px; } + .ui-front { z-index: 9999; } + .ui-menu { list-style: none; padding: 1px; @@ -121,21 +136,26 @@ display: block; outline: none; } + .ui-menu .ui-menu-item a { text-decoration: none; display: block; padding: 2px 0.4em; line-height: 1.4; - min-height: 0; /* support: IE7 */ + min-height: 0; + /* support: IE7 */ } + .ui-widget-content { border: 1px solid #bbb; background: #fff; color: #555; } + .ui-widget-content a { color: #46799b; } + .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, @@ -143,6 +163,7 @@ .ui-widget-header .ui-state-focus { background: #e0eaf1; } + .ui-helper-hidden-accessible { display: none; } @@ -151,47 +172,65 @@ .formulaire_gamumail { padding-top: 0; } + .formulaire_gamumail .editer { padding-top: 0; } + .editer_pour { display: flex; } + .editer_pour label { width: 50px; } + +.editer_envoi_separe { + display: flex; +} + .editer_cc { display: flex; } + .editer_cc label { width: 50px; } + .editer_cci { display: flex; } + .editer_cci label { width: 50px; } + .reponse_formulaire { padding: 1rem; margin-bottom: 2rem; font-weight: bold; } -.reponse_formulaire_erreur, .editer .erreur_message { + +.reponse_formulaire_erreur, +.editer .erreur_message { background-color: #f7d1d1; border: solid 2px #f00; display: block; } + .reponse_formulaire_ok { background-color: #c4ecd6; - border: solid 2px #080; + border: solid 2px #080; } + .remplacements_slugs { margin-top: 3rem; } + .formulaire_gamumail .boutons { margin-top: 3rem; } + .formulaire_gamumail .btn { font-size: 3rem; } diff --git a/formulaires/gamumail.html b/formulaires/gamumail.html index 5309bcd..d4262d7 100644 --- a/formulaires/gamumail.html +++ b/formulaires/gamumail.html @@ -29,6 +29,25 @@ + +
+ #SET{name,envoi_separe} + #SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}} + #SET{obli,"obligatoire"} +
+ +
+ + +
+
+ + +
+
+
+ +
#SET{name,cc} diff --git a/formulaires/gamumail.php b/formulaires/gamumail.php index c000e19..84d9312 100644 --- a/formulaires/gamumail.php +++ b/formulaires/gamumail.php @@ -69,12 +69,10 @@ function formulaires_gamumail_charger_dist($slug, $destinataires = 0, $Tclient = $Tpdf = [$Tpdf]; } foreach ($Tpdf as $id => $pdf) { - //$TFichierPdf[] = $pdf['fichier']; $TFichierPdf[$id] = $pdf; - //$options[$id] = $pdf; } } -//var_dump($Tcc); + $gamuMail = sql_fetsel('sujet, texte, id_docs', 'spip_gamumails', 'slug='.sql_quote($slug)); $valeurs = array( "slug" => $slug, @@ -87,7 +85,8 @@ function formulaires_gamumail_charger_dist($slug, $destinataires = 0, $Tclient = 'Tpdfs_ok' => [], 'docs_spip' => $gamuMail['id_docs'] ?? '', 'Tid_fichiers' => [], - 'options' => $options + 'options' => $options, + 'envoi_separe' => $options['envoi_separe'] ?? '' ); // surcharges charger : d'abord les surcharges pour tous les slugs (tous_charge.php) puis les spécifiques par slug (nom_slug_charger.php) @@ -201,21 +200,12 @@ function formulaires_gamumail_traiter_dist($slug, $destinataires = 0, $Tclient = include_spip('inc/texte'); include_spip('classes/facteur'); - $retour = array(); + $retour = []; - $pour = _request('pour'); - $cc = _request('cc'); - $cci = _request('cci'); - $sujet = _request('sujet'); - $html = propre(_request('texte')); - $docs_spip = _request('docs_spip'); - $Tpdfs_ok = _request('Tpdfs_ok'); - $Tid_doc = _request('Tid_doc'); - $texte = facteur_mail_html2text($html); + $envoi_separe = _request('envoi_separe') ?? ''; + $pour = _request('pour'); $pour = explode(',', $pour); - $cc = explode(',', $cc); - $cci = explode(',', $cci); $destinataires = []; foreach ($pour as $dest) { @@ -223,12 +213,56 @@ function formulaires_gamumail_traiter_dist($slug, $destinataires = 0, $Tclient = if ($mail = sql_getfetsel('email', 'spip_auteurs', 'id_auteur='.$dest)) { $destinataires[] = $mail; } - } - elseif (email_valide($dest)) { + } elseif (email_valide($dest)) { $destinataires[] = $dest; } } + if (empty($envoi_separe)) { + gamuSend($slug, $options, $destinataires, $Tclient, $Tpdf, $redirect, $retour); + } else { + $ok = true; + foreach ($destinataires as $d) { + $r = gamuSend($slug, $options, [$d], $Tclient, $Tpdf, $redirect); + if (!$r) { + $ok = false; + } + } + if (!$ok) { + $retour['message_erreur'] = _T("gamumail:erreur_envoi_mail"); + } + else { + $retour['message_ok'] = _T('gamumail:mail_envoye'); + + // dans le retour message_ok ajouter que le gamumail est OK + $retour['message_ok'] .= '@@gamumail_ok'; + } + } + + + if ($redirect AND $redirect != '') { + $retour['redirect'] = $redirect; + } + + return $retour; +} + + +function gamuSend($slug, $options, $destinataires, $Tclient, $Tpdf, $redirect, &$retour = []) { + + $cc = _request('cc'); + $cci = _request('cci'); + + $cc = explode(',', $cc); + $cci = explode(',', $cci); + + $sujet = _request('sujet'); + $html = propre(_request('texte')); + $docs_spip = _request('docs_spip'); + $Tpdfs_ok = _request('Tpdfs_ok'); + $Tid_doc = _request('Tid_doc'); + $texte = facteur_mail_html2text($html); + $pieces_jointes = []; if ($f = charger_fonction('traiter_av_pdf', 'gamumail', true)) { $options = $f($options, $destinataires, $Tclient, $Tpdf); @@ -399,9 +433,5 @@ function formulaires_gamumail_traiter_dist($slug, $destinataires = 0, $Tclient = } } - if ($redirect AND $redirect != '') { - $retour['redirect'] = $redirect; - } - - return $retour; + return $ok; }