diff --git a/htdocs/adherents/class/adherent.class.php b/htdocs/adherents/class/adherent.class.php
index 6da25c8ef01..225261e8f9f 100644
--- a/htdocs/adherents/class/adherent.class.php
+++ b/htdocs/adherents/class/adherent.class.php
@@ -3203,4 +3203,40 @@ class Adherent extends CommonObject
return $nbko;
}
+
+ /**
+ * Return clicable link of object (with eventually picto)
+ *
+ * @param string $option Where point the link (0=> main card, 1,2 => shipment, 'nolink'=>No link)
+ * @return string HTML Code for Kanban thumb.
+ */
+ public function getKanbanView($option = '')
+ {
+
+ $return = '
';
+ $return .= '
';
+ $return .= '
';
+
+ if (property_exists($this, 'photo') || !empty($this->photo)) {
+ $return.= Form::showphoto('memberphoto', $this, 0, 60, 0, 'photokanban photoref photowithmargin photologintooltip', 'small', 0, 1);
+ } else {
+ $return .= img_picto('', 'user');
+ }
+ $return .= ' ';
+ $return .= '
';
+ $return .= '
'.(method_exists($this, 'getNomUrl') ? $this->getNomUrl() : $this->ref).' ';
+ if (property_exists($this, 'type')) {
+ $return .= '
'.$this->type.' ';
+ }
+ if (method_exists($this, 'getmorphylib')) {
+ $return .= '
'.$this->getmorphylib('', 2).' ';
+ }
+ if (method_exists($this, 'getLibStatut')) {
+ $return .= '
'.$this->getLibStatut(5).'
';
+ }
+ $return .= '
';
+ $return .= '
';
+ $return .= '
';
+ return $return;
+ }
}
diff --git a/htdocs/adherents/list.php b/htdocs/adherents/list.php
index 50bbbca42d7..b9cbb252144 100644
--- a/htdocs/adherents/list.php
+++ b/htdocs/adherents/list.php
@@ -47,6 +47,7 @@ $show_files = GETPOST('show_files', 'int');
$confirm = GETPOST('confirm', 'alpha');
$toselect = GETPOST('toselect', 'array');
$contextpage = GETPOST('contextpage', 'aZ') ?GETPOST('contextpage', 'aZ') : 'memberslist'; // To manage different context of search
+$mode = GETPOST('mode', 'alpha');
// Search fields
@@ -534,6 +535,9 @@ if ($search_type > 0) {
}
$param = '';
+if (!empty($mode)) {
+ $param .= '&mode='.urlencode($mode);
+}
if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) {
$param .= '&contextpage='.urlencode($contextpage);
}
@@ -635,6 +639,8 @@ if (GETPOST('nomassaction', 'int') || in_array($massaction, array('presend', 'pr
$massactionbutton = $form->selectMassAction('', $arrayofmassactions);
$newcardbutton = '';
+$newcardbutton .= dolGetButtonTitle($langs->trans('ViewList'), '', 'fa fa-bars imgforviewmode', $_SERVER["PHP_SELF"].'?mode=common'.preg_replace('/(&|\?)*mode=[^&]+/', '', $param), '', ((empty($mode) || $mode == 'common') ? 2 : 1), array('morecss'=>'reposition'));
+$newcardbutton .= dolGetButtonTitle($langs->trans('ViewKanban'), '', 'fa fa-th-list imgforviewmode', $_SERVER["PHP_SELF"].'?mode=kanban'.preg_replace('/(&|\?)*mode=[^&]+/', '', $param), '', ($mode == 'kanban' ? 2 : 1), array('morecss'=>'reposition'));
if ($user->hasRight('adherent', 'creer')) {
$newcardbutton .= dolGetButtonTitle($langs->trans('NewMember'), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/adherents/card.php?action=create');
}
@@ -649,6 +655,8 @@ print ' ';
print ' ';
print ' ';
print ' ';
+print ' ';
+
print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, $object->picto, 0, $newcardbutton, '', $limit, 0, 0, 1);
@@ -987,276 +995,293 @@ while ($i < min($num, $limit)) {
}
$memberstatic->company = $companyname;
- print '';
-
- // Action column
- if (!empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) {
- print '';
- if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined
- $selected = 0;
- if (in_array($obj->rowid, $arrayofselected)) {
- $selected = 1;
- }
- print ' ';
+ if ($mode == 'kanban') {
+ if ($i == 0) {
+ print ' ';
+ print '';
}
- print '
';
- }
-
- if (!empty($conf->global->MAIN_SHOW_TECHNICAL_ID)) {
- print ''.$obj->rowid.' ';
- if (!$i) {
- $totalarray['nbfield']++;
- }
- }
-
- // Ref
- if (!empty($arrayfields['d.ref']['checked'])) {
- print "";
- print $memberstatic->getNomUrl(-1, 0, 'card', 'ref', '', -1, 0, 1);
- print " \n";
- if (!$i) {
- $totalarray['nbfield']++;
- }
- }
- // Civility
- if (!empty($arrayfields['d.civility']['checked'])) {
- print "";
- print $obj->civility;
- print " \n";
- if (!$i) {
- $totalarray['nbfield']++;
- }
- }
- // Firstname
- if (!empty($arrayfields['d.firstname']['checked'])) {
- print '';
- print $memberstatic->getNomUrl(0, 0, 'card', 'firstname');
- //print $obj->firstname;
- print " \n";
- if (!$i) {
- $totalarray['nbfield']++;
- }
- }
- // Lastname
- if (!empty($arrayfields['d.lastname']['checked'])) {
- print '';
- print $memberstatic->getNomUrl(0, 0, 'card', 'lastname');
- //print $obj->lastname;
- print " \n";
- if (!$i) {
- $totalarray['nbfield']++;
- }
- }
- // Gender
- if (!empty($arrayfields['d.gender']['checked'])) {
- print '';
- if ($obj->gender) {
- print $langs->trans("Gender".$obj->gender);
- }
- print ' ';
- if (!$i) {
- $totalarray['nbfield']++;
- }
- }
- // Company
- if (!empty($arrayfields['d.company']['checked'])) {
- print '';
- print $companynametoshow;
- print " \n";
- }
- // Login
- if (!empty($arrayfields['d.login']['checked'])) {
- print ''.$obj->login." \n";
- if (!$i) {
- $totalarray['nbfield']++;
- }
- }
- // Nature (Moral/Physical)
- if (!empty($arrayfields['d.morphy']['checked'])) {
- print '';
- print $memberstatic->getmorphylib('', 2);
- print " \n";
- if (!$i) {
- $totalarray['nbfield']++;
- }
- }
- // Type label
- if (!empty($arrayfields['t.libelle']['checked'])) {
$membertypestatic->id = $obj->type_id;
$membertypestatic->label = $obj->type;
- print '';
- print $membertypestatic->getNomUrl(1, 32);
- print ' ';
- if (!$i) {
- $totalarray['nbfield']++;
+ $memberstatic->type = $membertypestatic->label;
+ $memberstatic->photo = $obj->photo;
+ // Output Kanban
+ print $memberstatic->getKanbanView('');
+ if ($i == (min($num, $limit) - 1)) {
+ print '';
+ print ' ';
}
- }
- // Address
- if (!empty($arrayfields['d.address']['checked'])) {
- print '';
- print $obj->address;
- print ' ';
- if (!$i) {
- $totalarray['nbfield']++;
- }
- }
- // Zip
- if (!empty($arrayfields['d.zip']['checked'])) {
- print '';
- print $obj->zip;
- print ' ';
- if (!$i) {
- $totalarray['nbfield']++;
- }
- }
- // Town
- if (!empty($arrayfields['d.town']['checked'])) {
- print '';
- print $obj->town;
- print ' ';
- if (!$i) {
- $totalarray['nbfield']++;
- }
- }
- // State
- if (!empty($arrayfields['state.nom']['checked'])) {
- print "".$obj->state_name." \n";
- if (!$i) {
- $totalarray['nbfield']++;
- }
- }
- // Country
- if (!empty($arrayfields['country.code_iso']['checked'])) {
- $tmparray = getCountry($obj->country, 'all');
- print '';
- print dol_escape_htmltag($tmparray['label']);
- print ' ';
- if (!$i) {
- $totalarray['nbfield']++;
- }
- }
- // Phone pro
- if (!empty($arrayfields['d.phone']['checked'])) {
- print '';
- print $obj->phone;
- print ' ';
- if (!$i) {
- $totalarray['nbfield']++;
- }
- }
- // Phone perso
- if (!empty($arrayfields['d.phone_perso']['checked'])) {
- print '';
- print $obj->phone_perso;
- print ' ';
- if (!$i) {
- $totalarray['nbfield']++;
- }
- }
- // Phone mobile
- if (!empty($arrayfields['d.phone_mobile']['checked'])) {
- print '';
- print $obj->phone_mobile;
- print ' ';
- if (!$i) {
- $totalarray['nbfield']++;
- }
- }
- // EMail
- if (!empty($arrayfields['d.email']['checked'])) {
- print '';
- print dol_print_email($obj->email, 0, 0, 1, 64, 1, 1);
- print " \n";
- }
- // End of subscription date
- $datefin = $db->jdate($obj->datefin);
- if (!empty($arrayfields['d.datefin']['checked'])) {
- print '';
- if ($datefin) {
- print dol_print_date($datefin, 'day');
- if ($memberstatic->hasDelay()) {
- $textlate = ' ('.$langs->trans("DateReference").' > '.$langs->trans("DateToday").' '.(ceil($conf->adherent->subscription->warning_delay / 60 / 60 / 24) >= 0 ? '+' : '').ceil($conf->adherent->subscription->warning_delay / 60 / 60 / 24).' '.$langs->trans("days").')';
- print " ".img_warning($langs->trans("SubscriptionLate").$textlate);
+ } else {
+ print ' ';
+
+ // Action column
+ if (!empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) {
+ print '';
+ if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined
+ $selected = 0;
+ if (in_array($obj->rowid, $arrayofselected)) {
+ $selected = 1;
+ }
+ print ' ';
}
- } else {
- if (!empty($obj->subscription)) {
- print ''.$langs->trans("SubscriptionNotReceived").' ';
- if ($obj->statut > 0) {
- print " ".img_warning();
+ print ' ';
+ }
+
+ if (!empty($conf->global->MAIN_SHOW_TECHNICAL_ID)) {
+ print ''.$obj->rowid.' ';
+ if (!$i) {
+ $totalarray['nbfield']++;
+ }
+ }
+
+ // Ref
+ if (!empty($arrayfields['d.ref']['checked'])) {
+ print "";
+ print $memberstatic->getNomUrl(-1, 0, 'card', 'ref', '', -1, 0, 1);
+ print " \n";
+ if (!$i) {
+ $totalarray['nbfield']++;
+ }
+ }
+ // Civility
+ if (!empty($arrayfields['d.civility']['checked'])) {
+ print "";
+ print $obj->civility;
+ print " \n";
+ if (!$i) {
+ $totalarray['nbfield']++;
+ }
+ }
+ // Firstname
+ if (!empty($arrayfields['d.firstname']['checked'])) {
+ print '';
+ print $memberstatic->getNomUrl(0, 0, 'card', 'firstname');
+ //print $obj->firstname;
+ print " \n";
+ if (!$i) {
+ $totalarray['nbfield']++;
+ }
+ }
+ // Lastname
+ if (!empty($arrayfields['d.lastname']['checked'])) {
+ print '';
+ print $memberstatic->getNomUrl(0, 0, 'card', 'lastname');
+ //print $obj->lastname;
+ print " \n";
+ if (!$i) {
+ $totalarray['nbfield']++;
+ }
+ }
+ // Gender
+ if (!empty($arrayfields['d.gender']['checked'])) {
+ print '';
+ if ($obj->gender) {
+ print $langs->trans("Gender".$obj->gender);
+ }
+ print ' ';
+ if (!$i) {
+ $totalarray['nbfield']++;
+ }
+ }
+ // Company
+ if (!empty($arrayfields['d.company']['checked'])) {
+ print '';
+ print $companynametoshow;
+ print " \n";
+ }
+ // Login
+ if (!empty($arrayfields['d.login']['checked'])) {
+ print ''.$obj->login." \n";
+ if (!$i) {
+ $totalarray['nbfield']++;
+ }
+ }
+ // Nature (Moral/Physical)
+ if (!empty($arrayfields['d.morphy']['checked'])) {
+ print '';
+ print $memberstatic->getmorphylib('', 2);
+ print " \n";
+ if (!$i) {
+ $totalarray['nbfield']++;
+ }
+ }
+ // Type label
+ if (!empty($arrayfields['t.libelle']['checked'])) {
+ $membertypestatic->id = $obj->type_id;
+ $membertypestatic->label = $obj->type;
+ print '';
+ print $membertypestatic->getNomUrl(1, 32);
+ print ' ';
+ if (!$i) {
+ $totalarray['nbfield']++;
+ }
+ }
+ // Address
+ if (!empty($arrayfields['d.address']['checked'])) {
+ print '';
+ print $obj->address;
+ print ' ';
+ if (!$i) {
+ $totalarray['nbfield']++;
+ }
+ }
+ // Zip
+ if (!empty($arrayfields['d.zip']['checked'])) {
+ print '';
+ print $obj->zip;
+ print ' ';
+ if (!$i) {
+ $totalarray['nbfield']++;
+ }
+ }
+ // Town
+ if (!empty($arrayfields['d.town']['checked'])) {
+ print '';
+ print $obj->town;
+ print ' ';
+ if (!$i) {
+ $totalarray['nbfield']++;
+ }
+ }
+ // State
+ if (!empty($arrayfields['state.nom']['checked'])) {
+ print "".$obj->state_name." \n";
+ if (!$i) {
+ $totalarray['nbfield']++;
+ }
+ }
+ // Country
+ if (!empty($arrayfields['country.code_iso']['checked'])) {
+ $tmparray = getCountry($obj->country, 'all');
+ print '';
+ print dol_escape_htmltag($tmparray['label']);
+ print ' ';
+ if (!$i) {
+ $totalarray['nbfield']++;
+ }
+ }
+ // Phone pro
+ if (!empty($arrayfields['d.phone']['checked'])) {
+ print '';
+ print $obj->phone;
+ print ' ';
+ if (!$i) {
+ $totalarray['nbfield']++;
+ }
+ }
+ // Phone perso
+ if (!empty($arrayfields['d.phone_perso']['checked'])) {
+ print '';
+ print $obj->phone_perso;
+ print ' ';
+ if (!$i) {
+ $totalarray['nbfield']++;
+ }
+ }
+ // Phone mobile
+ if (!empty($arrayfields['d.phone_mobile']['checked'])) {
+ print '';
+ print $obj->phone_mobile;
+ print ' ';
+ if (!$i) {
+ $totalarray['nbfield']++;
+ }
+ }
+ // EMail
+ if (!empty($arrayfields['d.email']['checked'])) {
+ print '';
+ print dol_print_email($obj->email, 0, 0, 1, 64, 1, 1);
+ print " \n";
+ }
+ // End of subscription date
+ $datefin = $db->jdate($obj->datefin);
+ if (!empty($arrayfields['d.datefin']['checked'])) {
+ print '';
+ if ($datefin) {
+ print dol_print_date($datefin, 'day');
+ if ($memberstatic->hasDelay()) {
+ $textlate = ' ('.$langs->trans("DateReference").' > '.$langs->trans("DateToday").' '.(ceil($conf->adherent->subscription->warning_delay / 60 / 60 / 24) >= 0 ? '+' : '').ceil($conf->adherent->subscription->warning_delay / 60 / 60 / 24).' '.$langs->trans("days").')';
+ print " ".img_warning($langs->trans("SubscriptionLate").$textlate);
}
} else {
- print ' ';
+ if (!empty($obj->subscription)) {
+ print ''.$langs->trans("SubscriptionNotReceived").' ';
+ if ($obj->statut > 0) {
+ print " ".img_warning();
+ }
+ } else {
+ print ' ';
+ }
+ }
+ print ' ';
+ }
+ // Extra fields
+ include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_print_fields.tpl.php';
+ // Fields from hook
+ $parameters = array('arrayfields'=>$arrayfields, 'obj'=>$obj, 'i'=>$i, 'totalarray'=>&$totalarray);
+ $reshook = $hookmanager->executeHooks('printFieldListValue', $parameters); // Note that $action and $object may have been modified by hook
+ print $hookmanager->resPrint;
+ // Date creation
+ if (!empty($arrayfields['d.datec']['checked'])) {
+ print '';
+ print dol_print_date($db->jdate($obj->date_creation), 'dayhour', 'tzuser');
+ print ' ';
+ if (!$i) {
+ $totalarray['nbfield']++;
}
}
- print '';
- }
- // Extra fields
- include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_print_fields.tpl.php';
- // Fields from hook
- $parameters = array('arrayfields'=>$arrayfields, 'obj'=>$obj, 'i'=>$i, 'totalarray'=>&$totalarray);
- $reshook = $hookmanager->executeHooks('printFieldListValue', $parameters); // Note that $action and $object may have been modified by hook
- print $hookmanager->resPrint;
- // Date creation
- if (!empty($arrayfields['d.datec']['checked'])) {
- print '';
- print dol_print_date($db->jdate($obj->date_creation), 'dayhour', 'tzuser');
- print ' ';
- if (!$i) {
- $totalarray['nbfield']++;
- }
- }
- // Birth
- if (!empty($arrayfields['d.birth']['checked'])) {
- print '';
- print dol_print_date($db->jdate($obj->birth), 'day', 'tzuser');
- print ' ';
- if (!$i) {
- $totalarray['nbfield']++;
- }
- }
- // Date modification
- if (!empty($arrayfields['d.tms']['checked'])) {
- print '';
- print dol_print_date($db->jdate($obj->date_update), 'dayhour', 'tzuser');
- print ' ';
- if (!$i) {
- $totalarray['nbfield']++;
- }
- }
- // Status
- if (!empty($arrayfields['d.statut']['checked'])) {
- print '';
- print $memberstatic->LibStatut($obj->statut, $obj->subscription, $datefin, 5);
- print ' ';
- if (!$i) {
- $totalarray['nbfield']++;
- }
- }
- if (!empty($arrayfields['d.import_key']['checked'])) {
- print '';
- print dol_escape_htmltag($obj->import_key);
- print " \n";
- if (!$i) {
- $totalarray['nbfield']++;
- }
- }
- // Action column
- if (empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) {
- print '';
- if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined
- $selected = 0;
- if (in_array($obj->rowid, $arrayofselected)) {
- $selected = 1;
+ // Birth
+ if (!empty($arrayfields['d.birth']['checked'])) {
+ print ' ';
+ print dol_print_date($db->jdate($obj->birth), 'day', 'tzuser');
+ print ' ';
+ if (!$i) {
+ $totalarray['nbfield']++;
}
- print ' ';
}
- print '';
- }
- if (!$i) {
- $totalarray['nbfield']++;
- }
+ // Date modification
+ if (!empty($arrayfields['d.tms']['checked'])) {
+ print '';
+ print dol_print_date($db->jdate($obj->date_update), 'dayhour', 'tzuser');
+ print ' ';
+ if (!$i) {
+ $totalarray['nbfield']++;
+ }
+ }
+ // Status
+ if (!empty($arrayfields['d.statut']['checked'])) {
+ print '';
+ print $memberstatic->LibStatut($obj->statut, $obj->subscription, $datefin, 5);
+ print ' ';
+ if (!$i) {
+ $totalarray['nbfield']++;
+ }
+ }
+ if (!empty($arrayfields['d.import_key']['checked'])) {
+ print '';
+ print dol_escape_htmltag($obj->import_key);
+ print " \n";
+ if (!$i) {
+ $totalarray['nbfield']++;
+ }
+ }
+ // Action column
+ if (empty($conf->global->MAIN_CHECKBOX_LEFT_COLUMN)) {
+ print '';
+ if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined
+ $selected = 0;
+ if (in_array($obj->rowid, $arrayofselected)) {
+ $selected = 1;
+ }
+ print ' ';
+ }
+ print ' ';
+ }
+ if (!$i) {
+ $totalarray['nbfield']++;
+ }
- print ' '."\n";
+ print ''."\n";
+ }
$i++;
}