diff --git a/htdocs/user/class/usergroup.class.php b/htdocs/user/class/usergroup.class.php
index bb8fa374eea..849b08bc7f6 100644
--- a/htdocs/user/class/usergroup.class.php
+++ b/htdocs/user/class/usergroup.class.php
@@ -917,4 +917,32 @@ class UserGroup extends CommonObject
return $this->commonGenerateDocument($modelpath, $modele, $outputlangs, $hidedetails, $hidedesc, $hideref, $moreparams);
}
+
+ /**
+ * 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 = '')
+ {
+ global $langs;
+ $return = '
';
+ $return .= '
';
+ $return .= '
';
+ $return .= img_picto('', $this->picto);
+ $return .= '';
+ $return .= '
';
+ $return .= '
'.(method_exists($this, 'getNomUrl') ? $this->getNomUrl() : $this->ref).'';
+ if (property_exists($this, 'members')) {
+ $return .= '
'.(!empty($this->members)? $this->members : 0).' '.$langs->trans('Users').'';
+ }
+ if (property_exists($this, 'nb_rights')) {
+ $return .= '
'.$langs->trans('NbOfPermissions').' : '.$this->nb_rights.'
';
+ }
+ $return .= '
';
+ $return .= '
';
+ $return .= '
';
+ return $return;
+ }
}
diff --git a/htdocs/user/group/list.php b/htdocs/user/group/list.php
index 31d5aa93d02..1806fd15605 100644
--- a/htdocs/user/group/list.php
+++ b/htdocs/user/group/list.php
@@ -37,6 +37,8 @@ $search_group = GETPOST('search_group');
$optioncss = GETPOST('optioncss', 'alpha');
$massaction = GETPOST('massaction', 'alpha'); // The bulk action (combo box choice into lists)
$contextpage = GETPOST('optioncss', 'aZ09');
+$mode = GETPOST('mode', 'aZ');
+
// Defini si peux lire/modifier utilisateurs et permisssions
$caneditperms = ($user->admin || $user->hasRight("user", "user", "write"));
@@ -152,6 +154,10 @@ if ($resql) {
$i = 0;
$param = "&search_group=".urlencode($search_group)."&sall=".urlencode($sall);
+ if (!empty($mode)) {
+ $param .= '&mode='.urlencode($mode);
+ }
+
if ($optioncss != '') {
$param .= '&optioncss='.$optioncss;
}
@@ -159,6 +165,9 @@ if ($resql) {
$text = $langs->trans("UserGroups");
$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 ($caneditperms) {
$newcardbutton .= dolGetButtonTitle($langs->trans('NewGroup'), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/user/group/card.php?action=create&leftmenu=');
}
@@ -172,6 +181,8 @@ if ($resql) {
print '';
print '';
print '';
+ print '';
+
print_barre_liste($text, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, "", $num, $nbtotalofrecords, 'object_group', 0, $newcardbutton, '', $limit, 0, 0, 1);
@@ -205,33 +216,50 @@ if ($resql) {
$grouptemp = new UserGroup($db);
- while ($i < $num) {
+ $imaxinloop = ($limit ? min($num, $limit) : $num);
+
+ while ($i < $imaxinloop) {
$obj = $db->fetch_object($resql);
+ $grouptemp->setVarsFromFetchObj($obj);
- $grouptemp->id = $obj->rowid;
- $grouptemp->name = $obj->name;
- $grouptemp->note = $obj->note;
+ $grouptemp->name = $obj->name;
+ $grouptemp->note = $obj->note;
+ $grouptemp->members = $obj->nb;
+ $grouptemp->nb_rights = $obj->nbpermissions;
- print '';
- print '| ';
- print $grouptemp->getNomUrl(1);
- if (isModEnabled('multicompany') && !$obj->entity) {
- print img_picto($langs->trans("GlobalGroup"), 'redstar');
+ if ($mode == 'kanban') {
+ if ($i == 0) {
+ print ' |
| ';
+ print ' ';
+ }
+ // Output Kanban
+ print $grouptemp->getKanbanView('');
+ if ($i == ($imaxinloop - 1)) {
+ print ' ';
+ print ' |
';
+ }
+ } else {
+ print '';
+ print '| ';
+ print $grouptemp->getNomUrl(1);
+ if (isModEnabled('multicompany') && !$obj->entity) {
+ print img_picto($langs->trans("GlobalGroup"), 'redstar');
+ }
+ print " | ";
+ //multicompany
+ if (isModEnabled('multicompany') && is_object($mc) && empty($conf->global->MULTICOMPANY_TRANSVERSE_MODE) && $conf->entity == 1) {
+ $mc->getInfo($obj->entity);
+ print ''.dol_escape_htmltag($mc->label).' | ';
+ }
+ print ''.$obj->nb.' | ';
+ print '';
+ print ''.$obj->nbpermissions.'';
+ print ' | ';
+ print ''.dol_print_date($db->jdate($obj->datec), "dayhour").' | ';
+ print ''.dol_print_date($db->jdate($obj->datem), "dayhour").' | ';
+ print ' | ';
+ print "
\n";
}
- print "";
- //multicompany
- if (isModEnabled('multicompany') && is_object($mc) && empty($conf->global->MULTICOMPANY_TRANSVERSE_MODE) && $conf->entity == 1) {
- $mc->getInfo($obj->entity);
- print ''.dol_escape_htmltag($mc->label).' | ';
- }
- print ''.$obj->nb.' | ';
- print '';
- print ''.$obj->nbpermissions.'';
- print ' | ';
- print ''.dol_print_date($db->jdate($obj->datec), "dayhour").' | ';
- print ''.dol_print_date($db->jdate($obj->datem), "dayhour").' | ';
- print ' | ';
- print "\n";
$i++;
}
print "";