Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop
This commit is contained in:
commit
6c3d191727
@ -43,7 +43,7 @@ $wikihelp='EN:First_setup|FR:Premiers_paramétrages|ES:Primeras_configuraciones'
|
||||
llxHeader('', $langs->trans("Setup"), $wikihelp);
|
||||
|
||||
|
||||
print load_fiche_titre($langs->trans("SetupArea"), '', 'title_setup.png');
|
||||
print load_fiche_titre($langs->trans("SetupArea"), '', 'tools_title');
|
||||
|
||||
|
||||
if (! empty($conf->global->MAIN_MOTD_SETUPPAGE))
|
||||
|
||||
@ -66,19 +66,20 @@ function fichinter_prepare_head($object)
|
||||
if ($conf->resource->enabled)
|
||||
{
|
||||
require_once DOL_DOCUMENT_ROOT.'/resource/class/dolresource.class.php';
|
||||
$nbResource = 0;
|
||||
$objectres=new Dolresource($db);
|
||||
if (is_array($objectres->available_resources))
|
||||
{
|
||||
foreach ($objectres->available_resources as $modresources => $resources)
|
||||
{
|
||||
$resources=(array) $resources; // To be sure $resources is an array
|
||||
foreach($resources as $resource_obj)
|
||||
{
|
||||
$linked_resources = $object->getElementResources('fichinter', $object->id, $resource_obj);
|
||||
}
|
||||
}
|
||||
}
|
||||
$objectres = new Dolresource($db);
|
||||
$linked_resources = $objectres->getElementResources('fichinter', $object->id);
|
||||
$nbResource = (is_array($linked_resources)?count($linked_resources):0);
|
||||
// if (is_array($objectres->available_resources))
|
||||
// {
|
||||
// foreach ($objectres->available_resources as $modresources => $resources)
|
||||
// {
|
||||
// $resources=(array) $resources; // To be sure $resources is an array
|
||||
// foreach($resources as $resource_obj)
|
||||
// {
|
||||
// $linked_resources = $object->getElementResources('fichinter', $object->id, $resource_obj);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
$head[$h][0] = DOL_URL_ROOT.'/resource/element_resource.php?element=fichinter&element_id='.$object->id;
|
||||
$head[$h][1] = $langs->trans("Resources");
|
||||
|
||||
@ -3015,7 +3015,7 @@ function img_picto($titlealt, $picto, $moreatt = '', $pictoisfullpath = false, $
|
||||
//if (in_array($picto, array('switch_off', 'switch_on', 'off', 'on')))
|
||||
if (empty($srconly) && in_array($pictowithoutext, array(
|
||||
'bank', 'close_title', 'delete', 'edit', 'ellipsis-h', 'filter', 'grip', 'grip_title', 'list', 'listlight', 'note', 'off', 'on', 'play', 'playdisabled', 'printer', 'resize',
|
||||
'note', 'setup', 'sign-out', 'split', 'switch_off', 'switch_on', 'unlink', 'uparrow', '1downarrow', '1uparrow', '1leftarrow', '1rightarrow',
|
||||
'note', 'setup', 'tools_title', 'sign-out', 'split', 'switch_off', 'switch_on', 'unlink', 'uparrow', '1downarrow', '1uparrow', '1leftarrow', '1rightarrow',
|
||||
'jabber','skype','twitter','facebook','linkedin',
|
||||
'chevron-left','chevron-right','chevron-down','chevron-top'
|
||||
)
|
||||
@ -3029,6 +3029,10 @@ function img_picto($titlealt, $picto, $moreatt = '', $pictoisfullpath = false, $
|
||||
$fakey = 'fa-cog';
|
||||
$fasize = '1.4em';
|
||||
}
|
||||
elseif ($pictowithoutext == 'tools_title') {
|
||||
$fakey = 'fa-tools';
|
||||
$fasize = '2.4em';
|
||||
}
|
||||
elseif ($pictowithoutext == 'switch_off') {
|
||||
$fakey = 'fa-toggle-off';
|
||||
$facolor = '#999';
|
||||
|
||||
@ -166,9 +166,13 @@ function check_user_password_ldap($usertotest, $passwordtotest, $entitytotest)
|
||||
if ($ldapdebug) print "DEBUG: pwdLastSet = ".dol_print_date($ldap->pwdlastset, 'day')."<br>\n";
|
||||
if ($ldapdebug) print "DEBUG: badPasswordTime = ".dol_print_date($ldap->badpwdtime, 'day')."<br>\n";
|
||||
|
||||
// On recherche le user dolibarr en fonction de son SID ldap
|
||||
$sid = $ldap->getObjectSid($login);
|
||||
if ($ldapdebug) print "DEBUG: sid = ".$sid."<br>\n";
|
||||
// On recherche le user dolibarr en fonction de son SID ldap (only for Active Directory)
|
||||
$sid = null;
|
||||
if ($conf->global->LDAP_SERVER_TYPE == "activedirectory")
|
||||
{
|
||||
$sid = $ldap->getObjectSid($login);
|
||||
if ($ldapdebug) print "DEBUG: sid = ".$sid."<br>\n";
|
||||
}
|
||||
|
||||
$usertmp=new User($db);
|
||||
$resultFetchUser=$usertmp->fetch('', $login, $sid);
|
||||
|
||||
@ -514,47 +514,55 @@ if (empty($conf->global->MAIN_DISABLE_GLOBAL_WORKBOARD)) {
|
||||
'project' =>
|
||||
array(
|
||||
'groupName' => 'Projects',
|
||||
'globalStatsKey' => 'projects',
|
||||
'stats' => array('project', 'project_task'),
|
||||
),
|
||||
'propal' =>
|
||||
array(
|
||||
'groupName' => 'Proposals',
|
||||
'globalStatsKey' => 'proposals',
|
||||
'stats' =>
|
||||
array('propal_opened', 'propal_signed'),
|
||||
),
|
||||
'commande' =>
|
||||
array(
|
||||
'groupName' => 'Orders',
|
||||
'globalStatsKey' => 'orders',
|
||||
'stats' =>
|
||||
array('commande'),
|
||||
),
|
||||
'facture' =>
|
||||
array(
|
||||
'groupName' => 'Invoices',
|
||||
'globalStatsKey' => 'invoices',
|
||||
'stats' =>
|
||||
array('facture'),
|
||||
),
|
||||
'contrat' =>
|
||||
array(
|
||||
'groupName' => 'Contracts',
|
||||
'globalStatsKey' => 'Contracts',
|
||||
'stats' =>
|
||||
array('contrat_inactive', 'contrat_active'),
|
||||
),
|
||||
'supplier_proposal' =>
|
||||
array(
|
||||
'groupName' => 'SupplierProposals',
|
||||
'globalStatsKey' => 'askprice',
|
||||
'stats' =>
|
||||
array('supplier_proposal_opened', 'supplier_proposal_signed'),
|
||||
),
|
||||
'order_supplier' =>
|
||||
array(
|
||||
'groupName' => 'SuppliersOrders',
|
||||
'globalStatsKey' => 'supplier_orders',
|
||||
'stats' =>
|
||||
array('order_supplier'),
|
||||
),
|
||||
'invoice_supplier' =>
|
||||
array(
|
||||
'groupName' => 'BillsSuppliers',
|
||||
'globalStatsKey' => 'supplier_invoices',
|
||||
'stats' =>
|
||||
array('invoice_supplier'),
|
||||
),
|
||||
@ -567,18 +575,21 @@ if (empty($conf->global->MAIN_DISABLE_GLOBAL_WORKBOARD)) {
|
||||
'Adherent' =>
|
||||
array(
|
||||
'groupName' => 'Members',
|
||||
'globalStatsKey' => 'members',
|
||||
'stats' =>
|
||||
array('Adherent'),
|
||||
),
|
||||
'ExpenseReport' =>
|
||||
array(
|
||||
'groupName' => 'ExpenseReport',
|
||||
'globalStatsKey' => 'expensereports',
|
||||
'stats' =>
|
||||
array('ExpenseReport'),
|
||||
),
|
||||
'Holiday' =>
|
||||
array(
|
||||
'groupName' => 'Holidays',
|
||||
'globalStatsKey' => 'holidays',
|
||||
'stats' =>
|
||||
array('Holiday'),
|
||||
),
|
||||
@ -651,7 +662,7 @@ if (empty($conf->global->MAIN_DISABLE_GLOBAL_WORKBOARD)) {
|
||||
|
||||
// Show dashboard
|
||||
$nbworkboardempty = 0;
|
||||
$isIntopOpenedDashBoard = array();
|
||||
$isIntopOpenedDashBoard = $globalStatInTopOpenedDashBoard = array();
|
||||
if (!empty($valid_dashboardlines)) {
|
||||
$openedDashBoard = '';
|
||||
|
||||
@ -672,12 +683,47 @@ if (empty($conf->global->MAIN_DISABLE_GLOBAL_WORKBOARD)) {
|
||||
if (!empty($boards)) {
|
||||
$groupName = $langs->trans($groupElement['groupName']);
|
||||
$groupKeyLowerCase = strtolower($groupKey);
|
||||
$nbTotalForGroup = 0;
|
||||
|
||||
// global stats
|
||||
$globalStatsKey = false;
|
||||
if (!empty($groupElement['globalStatsKey']) && empty($groupElement['globalStats'])){ // can be filled by hook
|
||||
$globalStatsKey = $groupElement['globalStatsKey'];
|
||||
$groupElement['globalStats'] = array();
|
||||
|
||||
if(in_array($globalStatsKey, $keys))
|
||||
{
|
||||
// get key index of stats used in $includes, $classes, $keys, $icons, $titres, $links
|
||||
$keyIndex = array_search($globalStatsKey, $keys);
|
||||
|
||||
$classe=$classes[$keyIndex];
|
||||
if (isset($boardloaded[$classe]) && is_object($boardloaded[$classe]))
|
||||
{
|
||||
$groupElement['globalStats']['total'] = $boardloaded[$classe]->nb[$globalStatsKey]?$boardloaded[$classe]->nb[$globalStatsKey]:0;
|
||||
$nbTotal = doubleval($groupElement['globalStats']['total']);
|
||||
if($nbTotal>=10000){ $nbTotal = round($nbTotal/1000, 2) .'k'; }
|
||||
$groupElement['globalStats']['text'] = $langs->trans('Total').' : '.$langs->trans($titres[$keyIndex]).' ('.$groupElement['globalStats']['total'].')';
|
||||
$groupElement['globalStats']['total'] = $nbTotal;
|
||||
$groupElement['globalStats']['link'] = $links[$keyIndex];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$openedDashBoard .= '<div class="box-flex-item">' . "\n";
|
||||
$openedDashBoard .= ' <div class="info-box ' . $openedDashBoardSize . '">' . "\n";
|
||||
$openedDashBoard .= ' <span class="info-box-icon bg-infoxbox-' . $groupKeyLowerCase . '"><i class="fa fa-dol-' . $groupKeyLowerCase . '"></i></span>' . "\n";
|
||||
$openedDashBoard .= ' <div class="info-box-content">' . "\n";
|
||||
$openedDashBoard .= ' <span class="info-box-title" title="' . dol_escape_htmltag($groupName) . '">' . $groupName . '</span>' . "\n";
|
||||
$openedDashBoard.= ' <span class="info-box-icon bg-infoxbox-'.$groupKeyLowerCase.'">'."\n";
|
||||
$openedDashBoard.= ' <i class="fa fa-dol-'.$groupKeyLowerCase.'"></i>'."\n";
|
||||
|
||||
if(!empty($groupElement['globalStats'])){
|
||||
$globalStatInTopOpenedDashBoard[] = $groupElement['globalStats'];
|
||||
$openedDashBoard.= ' <span class="info-box-icon-text" title="'.$groupElement['globalStats']['text'].'">'.$nbTotal.'</span>'."\n";
|
||||
}
|
||||
|
||||
$openedDashBoard.= ' </span>'."\n";
|
||||
$openedDashBoard .= ' <div class="info-box-content">' . "\n";
|
||||
|
||||
$openedDashBoard .= ' <span class="info-box-title" title="'.strip_tags($groupName).'">'.$groupName.'</span>' . "\n";
|
||||
|
||||
foreach ($boards as $board) {
|
||||
if (!empty($board->labelShort)) {
|
||||
|
||||
@ -636,7 +636,7 @@ else
|
||||
/*
|
||||
* Edition fiche
|
||||
*/
|
||||
if (($action == 'edit' || $action == 're-edit') && 1)
|
||||
if ($action == 'edit' || $action == 're-edit')
|
||||
{
|
||||
$langs->trans("WarehouseEdit");
|
||||
|
||||
|
||||
@ -477,8 +477,8 @@ foreach ($dirsociete as $dirroot)
|
||||
$arrayofmodules[$file] = $modCodeCompta;
|
||||
}
|
||||
}
|
||||
closedir($handle);
|
||||
}
|
||||
closedir($handle);
|
||||
}
|
||||
|
||||
$arrayofmodules = dol_sort_array($arrayofmodules, 'position');
|
||||
|
||||
@ -8,6 +8,7 @@ if (! defined('ISLOADEDBYSTEELSHEET')) die('Must be call by steelsheet'); ?>
|
||||
*/
|
||||
.info-box {
|
||||
display: block;
|
||||
position: relative;
|
||||
min-height: 90px;
|
||||
background: #fff;
|
||||
width: 100%;
|
||||
@ -54,6 +55,7 @@ if (! defined('ISLOADEDBYSTEELSHEET')) die('Must be call by steelsheet'); ?>
|
||||
border-bottom-right-radius: 0;
|
||||
border-bottom-left-radius: 2px;
|
||||
display: block;
|
||||
overflow: hidden;
|
||||
float: left;
|
||||
height: 90px;
|
||||
width: 90px;
|
||||
@ -71,6 +73,32 @@ if (! defined('ISLOADEDBYSTEELSHEET')) die('Must be call by steelsheet'); ?>
|
||||
.info-box-icon > img {
|
||||
max-width: 100%;
|
||||
}
|
||||
.info-box-icon-text{
|
||||
box-sizing: border-box;
|
||||
display: block;
|
||||
position: absolute;
|
||||
width: 90px;
|
||||
bottom: 0px;
|
||||
color: #ffffff;
|
||||
background-color: rgba(0,0,0,0.1);
|
||||
cursor: default;
|
||||
|
||||
font-size: 10px;
|
||||
line-height: 15px;
|
||||
padding: 0px 3px;
|
||||
text-align: center;
|
||||
opacity: 0;
|
||||
-webkit-transition: opacity 0.5s, visibility 0s 0.5s;
|
||||
transition: opacity 0.5s, visibility 0s 0.5s;
|
||||
}
|
||||
.info-box-sm .info-box-icon-text{
|
||||
overflow: hidden;
|
||||
width: 80px;
|
||||
}
|
||||
.info-box:hover .info-box-icon-text{
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.info-box-content {
|
||||
padding: 5px 10px;
|
||||
margin-left: 90px;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user