From f995d0d9cb7b6544f478b1540bf2c7fb080425bb Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 9 May 2012 16:03:15 +0200 Subject: [PATCH] Fix: Missing extrafields New: Can resiliate/edit member status from list. --- ChangeLog | 1 + htdocs/adherents/fiche.php | 102 ++++++++++++++++---------- htdocs/adherents/liste.php | 30 ++++---- htdocs/core/class/html.form.class.php | 23 ++++-- 4 files changed, 101 insertions(+), 55 deletions(-) diff --git a/ChangeLog b/ChangeLog index e2325cf8433..f21ab790c3a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -14,6 +14,7 @@ For users: - New: Add bank account on payment list of invoice card. - New: Cloning project allow to clones task, notes, files, contacts. - New: Enhance default style. +- New: Can edit and resiliate member status from list. For developers: - New: A module can overwrite templates parts. diff --git a/htdocs/adherents/fiche.php b/htdocs/adherents/fiche.php index cd15b82eb42..c729a455388 100644 --- a/htdocs/adherents/fiche.php +++ b/htdocs/adherents/fiche.php @@ -43,6 +43,7 @@ $langs->load("users"); $action=GETPOST('action','alpha'); +$backtopage=GETPOST('backtopage','alpha'); $confirm=GETPOST('confirm','alpha'); $rowid=GETPOST('rowid','int'); $typeid=GETPOST('typeid','int'); @@ -331,6 +332,12 @@ if ($action == 'update' && ! $_POST["cancel"] && $user->rights->adherent->creer) $rowid=$object->id; $action=''; + + if (! empty($backtopage)) + { + header("Location: ".$backtopage); + exit; + } } else { @@ -505,8 +512,16 @@ if ($user->rights->adherent->supprimer && $action == 'confirm_delete' && $confir $result=$object->delete($rowid); if ($result > 0) { - Header("Location: liste.php"); - exit; + if (! empty($backtopage)) + { + header("Location: ".$backtopage); + exit; + } + else + { + Header("Location: liste.php"); + exit; + } } else { @@ -548,37 +563,45 @@ if ($user->rights->adherent->creer && $action == 'confirm_valid' && $confirm == } } -if ($user->rights->adherent->supprimer && $action == 'confirm_resign' && $confirm == 'yes') +if ($user->rights->adherent->supprimer && $action == 'confirm_resign') { - $adht = new AdherentType($db); - $adht->fetch($object->typeid); + if ($confirm == 'yes') + { + $adht = new AdherentType($db); + $adht->fetch($object->typeid); - $result=$object->resiliate($user); + $result=$object->resiliate($user); - if ($result >= 0 && ! count($object->errors)) - { - if ($object->email && $_POST["send_mail"]) - { - $result=$object->send_an_email($adht->getMailOnResiliate(),$conf->global->ADHERENT_MAIL_RESIL_SUBJECT,array(),array(),array(),"","",0,-1); - } - if ($result < 0) - { - $errmsg.=$object->error; - } + if ($result >= 0 && ! count($object->errors)) + { + if ($object->email && $_POST["send_mail"]) + { + $result=$object->send_an_email($adht->getMailOnResiliate(),$conf->global->ADHERENT_MAIL_RESIL_SUBJECT,array(),array(),array(),"","",0,-1); + } + if ($result < 0) + { + $errmsg.=$object->error; + } - // supprime l'utilisateur des divers abonnements .. - if ($object->del_to_abo() < 0) - { - // error - $errmsg.=$langs->trans("FaildToRemoveFromMailmanList").': '.$object->error."
\n"; - } - } - else - { - if ($object->error) $errmsg=$object->error; - else $errmsgs=$object->errors; - $action=''; - } + // supprime l'utilisateur des divers abonnements .. + if ($object->del_to_abo() < 0) + { + // error + $errmsg.=$langs->trans("FaildToRemoveFromMailmanList").': '.$object->error."
\n"; + } + } + else + { + if ($object->error) $errmsg=$object->error; + else $errmsgs=$object->errors; + $action=''; + } + } + if (! empty($backtopage) && ! $errmsg) + { + header("Location: ".$backtopage); + exit; + } } if ($user->rights->adherent->supprimer && $action == 'confirm_del_spip' && $confirm == 'yes') @@ -819,8 +842,8 @@ if ($action == 'edit') $res=$object->fetch($rowid); if ($res < 0) { dol_print_error($db,$object->error); exit; } - //$res=$object->fetch_optionals($object->id,$extralabels); - //if ($res < 0) { dol_print_error($db); exit; } + $res=$object->fetch_optionals($object->id,$extralabels); + if ($res < 0) { dol_print_error($db); exit; } $adht = new AdherentType($db); $adht->fetch($object->typeid); @@ -874,6 +897,7 @@ if ($action == 'edit') print ''; print ''; print ''; + print ''; print ''; @@ -1052,7 +1076,6 @@ if ($rowid && $action != 'edit') /* */ /* ************************************************************************** */ - //$object = new Adherent($db); $res=$object->fetch($rowid); if ($res < 0) { dol_print_error($db,$object->error); exit; } $res=$object->fetch_optionals($object->id,$extralabels); @@ -1182,15 +1205,18 @@ if ($rowid && $action != 'edit') // Cree un tableau formulaire $formquestion=array(); - if ($object->email) $formquestion[0]=array('type' => 'checkbox', 'name' => 'send_mail', 'label' => $label, 'value' => ($conf->global->ADHERENT_DEFAULT_SENDINFOBYMAIL?'true':'false')); - $ret=$form->form_confirm("fiche.php?rowid=$rowid",$langs->trans("ResiliateMember"),$langs->trans("ConfirmResiliateMember"),"confirm_resign",$formquestion); + if ($object->email) $formquestion[]=array('type' => 'checkbox', 'name' => 'send_mail', 'label' => $label, 'value' => ($conf->global->ADHERENT_DEFAULT_SENDINFOBYMAIL?'true':'false')); + if ($backtopage) $formquestion[]=array('type' => 'hidden', 'name' => 'backtopage', 'value' => ((! empty($backtopage) && $backtopage != '1') ? $backtopage : $_SERVER["HTTP_REFERER"])); + $ret=$form->form_confirm("fiche.php?rowid=".$rowid,$langs->trans("ResiliateMember"),$langs->trans("ConfirmResiliateMember"),"confirm_resign",$formquestion); if ($ret == 'html') print '
'; } // Confirm remove member if ($action == 'delete') { - $ret=$form->form_confirm("fiche.php?rowid=$rowid",$langs->trans("DeleteMember"),$langs->trans("ConfirmDeleteMember"),"confirm_delete",'',0,1); + $formquestion=array(); + if ($backtopage) $formquestion[]=array('type' => 'hidden', 'name' => 'backtopage', 'value' => ((! empty($backtopage) && $backtopage != '1') ? $backtopage : $_SERVER["HTTP_REFERER"])); + $ret=$form->form_confirm("fiche.php?rowid=".$rowid,$langs->trans("DeleteMember"),$langs->trans("ConfirmDeleteMember"),"confirm_delete",$formquestion,0,1); if ($ret == 'html') print '
'; } @@ -1199,7 +1225,8 @@ if ($rowid && $action != 'edit') */ if ($action == 'add_spip') { - $ret=$form->form_confirm("fiche.php?rowid=$rowid","Ajouter dans spip","Etes-vous sur de vouloir ajouter cet adherent dans spip ? (serveur : ".ADHERENT_SPIP_SERVEUR.")","confirm_add_spip"); + $langs->load("mailmanspip"); + $ret=$form->form_confirm("fiche.php?rowid=".$rowid,"Add to spip","Etes-vous sur de vouloir ajouter cet adherent dans spip ? (serveur : ".ADHERENT_SPIP_SERVEUR.")","confirm_add_spip"); if ($ret == 'html') print '
'; } @@ -1208,6 +1235,7 @@ if ($rowid && $action != 'edit') */ if ($action == 'del_spip') { + $langs->load("mailmanspip"); $ret=$form->form_confirm("fiche.php?rowid=$rowid","Supprimer dans spip","Etes-vous sur de vouloir effacer cet adherent dans spip ? (serveur : ".ADHERENT_SPIP_SERVEUR.")","confirm_del_spip"); if ($ret == 'html') print '
'; } @@ -1506,7 +1534,7 @@ if ($rowid && $action != 'edit') } // Action SPIP - if ($conf->global->ADHERENT_USE_SPIP) + if ($conf->mailmanspip->enabled && $conf->global->ADHERENT_USE_SPIP) { $isinspip=$object->is_in_spip(); if ($isinspip == 1) diff --git a/htdocs/adherents/liste.php b/htdocs/adherents/liste.php index dbdb8174c6b..ad7d6597146 100644 --- a/htdocs/adherents/liste.php +++ b/htdocs/adherents/liste.php @@ -31,16 +31,6 @@ require_once(DOL_DOCUMENT_ROOT."/adherents/class/adherent_type.class.php"); $langs->load("members"); $langs->load("companies"); -$sortfield = GETPOST("sortfield",'alpha'); -$sortorder = GETPOST("sortorder",'alpha'); -$page = GETPOST("page",'int'); -if ($page == -1) { $page = 0 ; } -$offset = $conf->liste_limit * $page ; -$pageprev = $page - 1; -$pagenext = $page + 1; -if (! $sortorder) { $sortorder="ASC"; } -if (! $sortfield) { $sortfield="d.nom"; } - $action=GETPOST("action"); $filter=GETPOST("filter"); $statut=GETPOST("statut"); @@ -54,6 +44,16 @@ $search_email=GETPOST("search_email"); $search_categ=GETPOST("search_categ"); $sall=GETPOST("sall"); +$sortfield = GETPOST("sortfield",'alpha'); +$sortorder = GETPOST("sortorder",'alpha'); +$page = GETPOST("page",'int'); +if ($page == -1) { $page = 0; } +$offset = $conf->liste_limit * $page ; +$pageprev = $page - 1; +$pagenext = $page + 1; +if (! $sortorder) { $sortorder=($filter=='outofdate'?"ASC":"DESC"); } +if (! $sortfield) { $sortfield=($filter=='outofdate'?"d.datefin":"d.nom"); } + if (GETPOST("button_removefilter")) { $search=""; @@ -333,12 +333,16 @@ if ($resql) print '"; diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php index cbf6a1b7bf6..a9d215da757 100644 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -2207,7 +2207,7 @@ class Form $more.=$input['value']; $more.=''."\n"; } - array_push($inputarray,$input['name']); + if ($input['type'] != 'hidden') array_push($inputarray,$input['name']); } } $more.='
'; if ($user->rights->adherent->creer) { - print "rowid&action=edit&return=liste.php\">".img_edit().""; + print "rowid."&action=edit&backtopage=1\">".img_edit().""; } print ' '; - if ($user->rights->adherent->supprimer) + if ($user->rights->adherent->supprimer && $objp->statut == -1) { - print "rowid&action=resign&return=liste.php\">".img_picto($langs->trans("Resiliate"),'disable.png').""; + print "rowid."&action=delete&backtopage=1\">".img_picto($langs->trans("Delete"),'disable.png').""; + } + if ($user->rights->adherent->supprimer && $objp->statut == 1) + { + print "rowid."&action=resign&backtopage=1\">".img_picto($langs->trans("Resiliate"),'disable.png').""; } print "
'."\n"; @@ -2228,6 +2228,18 @@ class Form } $pageyes=$page.'&action='.$action.'&confirm=yes'; $pageno=($useajax == 2?$page.'&confirm=no':''); + // Add hidden fields + if (is_array($formquestion)) + { + foreach ($formquestion as $key => $input) + { + if ($input['type'] == 'hidden') + { + $pageyes.='&'.$input['name'].'='.urlencode($input['value']); + $pageno.=($useajax == 2?$page.'&'.$input['name'].'='.urlencode($input['value']):''); + } + } + } // New code using jQuery only $formconfirm.= '