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 "";