Issue #0001636: reste encore des choses à faire

This commit is contained in:
Aram HARUTYUNYAN 2013-06-13 13:42:40 +00:00
parent 701d665fed
commit 5beffa5180
3 changed files with 119 additions and 3 deletions

View File

@ -548,4 +548,81 @@ class UserController extends Zend_Controller_Action
echo "</pre>";
}
/**
* Sends email to the specific client, who requests for forgotten password
*/
public function motpasseAction()
{
$request = $this->getRequest();
$name = 'Mot de passe, Identifiant oubliés';
$params = array(
'identifiant' => '',
'telephone' => '',
'email' => '',
'nom' => '',
'prenom' => '',
'fonction' => '',
'rsociale' => '',
);
if ( $request->isXmlHttpRequest() ) {
$this->_helper->layout()->disableLayout();
if ( $request->isPost() ) {
$params = $request->getParams();
$message = '';
$paramlist = array(
'telephone' => 'Numéro de téléphone direct',
'email' => 'Adresse email',
'nom' => 'Nom',
'prenom' => 'Prénom',
'fonction' => 'Fonction',
'rsociale' => 'Sociale',
);
foreach ($paramlist as $item => $val) {
if (!isset($params[$item])) {
$message .= "Valeur $val vide !<br/>";
}
}
$validator = new Zend_Validate_EmailAddress();
if (isset($params['email'])){
if (!$validator->isValid($params['email'])) {
$message .="Adress email n'est pas correct! <br/>";
}
}
if ($message == '') {
require_once 'Scores/Mail.php';
$mail = new Mail();
$mail->setSubject($name);
$mail->setBodyHTML($params['mailbody']);
$mail->setFrom('support');
$mail->addToKey('support');
/*try {
$mail->send();
$message = "Votre demande avec les informations suivantes a été envoyée. Nous vous contacterons prochainement.";
}
catch ( Zend_Mail_Transport_Exception $e ){
$message = $e->getMessage();
}*/
// this is temporary mail sending, changing to Zend_mail is needed
$header = 'MIME-Version: 1.0' . "\r\n";
$header .= 'Content-type: text/html; charset=utf-8' . "\r\n";
$header .= 'FROM: ';
mail('aharutyunyan@snd-a.com', $name, $params['mailbody'], $header);
$message = "Votre demande avec les informations suivantes a été envoyée. Nous vous contacterons prochainement.";
// end of temporary mail sending
}
$this->view->assign('message', $message);
}
} else {
$this->view->assign('name', $name);
$this->view->assign('href', $this->view->url(array('controller'=>'user','action'=>'motpasse')));
}
$this->view->assign('params', $params);
}
}

View File

@ -17,7 +17,7 @@ $('a.dlg').on('click', function(e){
$(this).load(href);
},
buttons: {'Fermer': function() { $(this).dialog('close'); }},
close: function() { $('#dialog').remove(); }};
close: function() { $('#dlg').remove(); }};
$('<div id="dlg"></div>').dialog(dlgOpts);
return false;
});
@ -69,6 +69,10 @@ input#frm {
height:25px;
}
#alwayshidden {
display:none;
}
</style>
<?php if ($this->message!='') {?>
@ -78,7 +82,7 @@ input#frm {
$params = $this->params;
?>
<div>
<div id='vspace'>
<pre>Cher client,
Pour recevoir votre mot de passe ou votre identifiant oubliés, nous vous invitons à saisir les informations ci-dessous et cliquer sur valider.
@ -119,6 +123,31 @@ Tous les champs (*) sont obligatoires : en cas de données manquantes ou erroné
<input id='frm' type="text" name="rsociale" value="<?=$params['rsociale']; ?>" required/>
</div>
<div id='alwayshidden'>
<style type='text/css'>
table {font-family:Arial, Helvetica, sans-serif; font-size: 12px; width: 550px; border: none;}
table td{padding: 4px 8px;}
</style>
Chers S&amp;D collègues,<br />
J'ai oublié mon identifiant et(ou) mot de passe de site web scores-decisions.com.<br />
S'il vous plaît envoyez-moi encore une fois l'identifiant et(ou) le mot de passe qui me permettra d'avoir un accès au site.
<p>Ci-dessous, trouvez les informations enregistrées sur mon identité:</p>
<table>
<tr bgcolor='#eeeeee'><td width='200px'><strong>Identifiant :</strong></td><td id='identifiant'></td></tr>
<tr><td><strong>Adresse email:</strong></td><td id='email'></td></tr>
<tr bgcolor='#eeeeee'><td><strong>Numéro de téléphone direct:</strong></td><td id='telephone'></td></tr>
<tr><td><strong>Nom:</strong></td><td id='nom'></td></tr>
<tr bgcolor='#eeeeee'><td><strong>Prénom:</strong></td><td id='prenom'></td></tr>
<tr><td><strong>Fonction:</strong></td><td id='fonction'></td></tr>
<tr bgcolor='#eeeeee'><td><strong>Raison Sociale:</strong></td><td id='rsociale'></td></tr>
</table>
<p>Veuillez agréer, chers collègues, l'assurance de mes sentiments respectueux.</p>
</div>
<input type="hidden" name="mailbody" value=""/>
</form>
</div>

View File

@ -1,3 +1,10 @@
function fill() {
$("input#frm").each(function() {
var td_id = $(this).attr("name");
$("td#"+td_id).text($(this).val());
});
}
function validate() {
var allvals = true;
$("[required]").each(function() {
@ -34,6 +41,8 @@ $('[required]').blur(function(){
$('#dlg').dialog({ buttons: [
{ text: "Valider", click: function() {
fill();
$("[name='mailbody']").val($("#alwayshidden").html());
var values = $(this).find('form').serialize();
if (validate() && isEmail($('[name=email]'))) {
if ($('.loading').css('display')=='none') {
@ -45,6 +54,7 @@ $('#dlg').dialog({ buttons: [
$.post('/user/motpasse', values, function(data) {
$('#dlg').html(data);
$('pre').hide();
$('#vspace').height(50);
$('input#frm').attr("disabled", "disabled");
$(".ui-dialog-buttonpane button:contains('Valider')").hide();
});