From 910a92516711a006ad0f7424b4d3f44ce2de7594 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur <eldy@destailleur.fr> Date: Sat, 6 May 2017 20:43:14 +0200 Subject: [PATCH] NEW Add last activation author and ip of modules --- htdocs/admin/modulehelp.php | 18 ++++++++ htdocs/admin/modules.php | 6 +-- htdocs/admin/user.php | 4 +- htdocs/admin/usergroup.php | 2 +- htdocs/comm/mailing/card.php | 2 +- htdocs/core/lib/admin.lib.php | 2 +- htdocs/core/menus/standard/auguria.lib.php | 2 +- htdocs/core/menus/standard/eldy.lib.php | 2 +- htdocs/core/modules/DolibarrModules.class.php | 42 ++++++++++++++++-- htdocs/core/tpl/login.tpl.php | 2 +- htdocs/core/tpl/passwordforgotten.tpl.php | 2 +- htdocs/langs/en_US/admin.lang | 4 +- htdocs/societe/admin/contact_extrafields.php | 2 +- htdocs/societe/admin/societe.php | 2 +- htdocs/societe/admin/societe_extrafields.php | 2 +- htdocs/theme/dolibarr_logo.png | Bin 14646 -> 10289 bytes htdocs/theme/eldy/style.css.php | 10 ++++- htdocs/user/admin/group_extrafields.php | 2 +- htdocs/user/admin/user_extrafields.php | 2 +- 19 files changed, 84 insertions(+), 24 deletions(-) mode change 100644 => 100755 htdocs/theme/dolibarr_logo.png diff --git a/htdocs/admin/modulehelp.php b/htdocs/admin/modulehelp.php index 94bfa8e05bb..d318566ff61 100644 --- a/htdocs/admin/modulehelp.php +++ b/htdocs/admin/modulehelp.php @@ -330,6 +330,24 @@ if ($mode == 'desc') else $text.=$langs->trans("Disabled"); $text.='<br>'; + $tmp = $objMod->getLastActivationInfo(); + $authorid = $tmp['authorid']; + if ($authorid > 0) + { + $tmpuser = new User($db); + $tmpuser->fetch($authorid); + $text.='<strong>'.$langs->trans("LastActivationAuthor").':</strong> '; + $text.= $tmpuser->getNomUrl(1); + $text.='<br>'; + } + $ip = $tmp['ip']; + if ($ip) + { + $text.='<strong>'.$langs->trans("LastActivationIP").':</strong> '; + $text.= $ip; + $text.='<br>'; + } + $moduledesclong=$objMod->getDescLong(); if ($moduledesclong) $text.='<br><hr><div class="moduledesclong">'.$moduledesclong.'<div>'; } diff --git a/htdocs/admin/modules.php b/htdocs/admin/modules.php index 88944ee589a..433508be908 100644 --- a/htdocs/admin/modules.php +++ b/htdocs/admin/modules.php @@ -402,9 +402,9 @@ if ($nbofactivatedmodules <= 1) $moreinfo .= ' '.img_warning($langs->trans("YouM print load_fiche_titre($langs->trans("ModulesSetup"),$moreinfo,'title_setup'); // Start to show page -if ($mode=='common') print $langs->trans("ModulesDesc")."<br>\n"; -if ($mode=='marketplace') print $langs->trans("ModulesMarketPlaceDesc")."<br>\n"; -if ($mode=='deploy') print $langs->trans("ModulesDeployDesc", $langs->transnoentitiesnoconv("AvailableModules"))."<br>\n"; +if ($mode=='common') print '<span class="opacitymedium">'.$langs->trans("ModulesDesc")."</span><br>\n"; +if ($mode=='marketplace') print '<span class="opacitymedium">'.$langs->trans("ModulesMarketPlaceDesc")."</span><br>\n"; +if ($mode=='deploy') print '<span class="opacitymedium">'.$langs->trans("ModulesDeployDesc", $langs->transnoentitiesnoconv("AvailableModules"))."</span><br>\n"; $h = 0; diff --git a/htdocs/admin/user.php b/htdocs/admin/user.php index 42feea8f8ec..0c7574b7ec4 100644 --- a/htdocs/admin/user.php +++ b/htdocs/admin/user.php @@ -167,7 +167,7 @@ print load_fiche_titre($langs->trans("UsersSetup"),$linkback,'title_setup'); $head=user_admin_prepare_head(); -dol_fiche_head($head,'card', $langs->trans("MenuUsersAndGroups"), 0, 'user'); +dol_fiche_head($head,'card', $langs->trans("MenuUsersAndGroups"), -1, 'user'); print '<table class="noborder" width="100%">'; print '<tr class="liste_titre">'; @@ -205,7 +205,7 @@ print '</td></tr>'; print '</table>'; - +print '<br>'; $dirmodels=array_merge(array('/'),(array) $conf->modules_parts['models']); diff --git a/htdocs/admin/usergroup.php b/htdocs/admin/usergroup.php index db5ef3cbf59..4642e6d3183 100644 --- a/htdocs/admin/usergroup.php +++ b/htdocs/admin/usergroup.php @@ -151,7 +151,7 @@ print load_fiche_titre($langs->trans("UsersSetup"),$linkback,'title_setup'); $head=user_admin_prepare_head(); -dol_fiche_head($head,'usergroupcard', $langs->trans("MenuUsersAndGroups"), 0, 'user'); +dol_fiche_head($head,'usergroupcard', $langs->trans("MenuUsersAndGroups"), -1, 'user'); $dirmodels=array_merge(array('/'),(array) $conf->modules_parts['models']); diff --git a/htdocs/comm/mailing/card.php b/htdocs/comm/mailing/card.php index fe582d56656..0b4c3c239f9 100644 --- a/htdocs/comm/mailing/card.php +++ b/htdocs/comm/mailing/card.php @@ -1057,7 +1057,7 @@ else // Print mail content print load_fiche_titre($langs->trans("EMail"), $form->textwithpicto($langs->trans("AvailableVariables"), $htmltext, 1, 'help', '', 0, 2, 'emailsubstitionhelp'), 'title_generic'); - dol_fiche_head(''); + dol_fiche_head('', '', '', -1); print '<table class="border" width="100%">'; diff --git a/htdocs/core/lib/admin.lib.php b/htdocs/core/lib/admin.lib.php index 4beb49107d2..2016807efe9 100644 --- a/htdocs/core/lib/admin.lib.php +++ b/htdocs/core/lib/admin.lib.php @@ -812,7 +812,7 @@ function activateModule($value,$withdeps=1) return $ret; } - $result=$objMod->init(); + $result=$objMod->init(); // Enable module if ($result <= 0) { $ret['errors'][]=$objMod->error; diff --git a/htdocs/core/menus/standard/auguria.lib.php b/htdocs/core/menus/standard/auguria.lib.php index e95359e5683..d2d8e36b8ca 100644 --- a/htdocs/core/menus/standard/auguria.lib.php +++ b/htdocs/core/menus/standard/auguria.lib.php @@ -269,7 +269,7 @@ function print_left_auguria_menu($db,$menu_array_before,$menu_array_after,&$tabM print '<div class="menu_titre" id="menu_titre_logo"></div>'; print '<div class="menu_top" id="menu_top_logo"></div>'; print '<div class="menu_contenu" id="menu_contenu_logo">'; - print '<div class="center"><img title="'.dol_escape_htmltag($title).'" alt="" src="'.$urllogo.'" style="max-width: 80%"></div>'."\n"; + print '<div class="center"><img title="'.dol_escape_htmltag($title).'" alt="" src="'.$urllogo.'" style="max-width: 70%"></div>'."\n"; print '</div>'; print '<div class="menu_end" id="menu_end_logo"></div>'; print '</div>'."\n"; diff --git a/htdocs/core/menus/standard/eldy.lib.php b/htdocs/core/menus/standard/eldy.lib.php index 4c873830948..b51292a0bb8 100644 --- a/htdocs/core/menus/standard/eldy.lib.php +++ b/htdocs/core/menus/standard/eldy.lib.php @@ -478,7 +478,7 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu print '<div class="menu_titre" id="menu_titre_logo"></div>'; print '<div class="menu_top" id="menu_top_logo"></div>'; print '<div class="menu_contenu" id="menu_contenu_logo">'; - print '<div class="center"><img class="mycompany" title="'.dol_escape_htmltag($title).'" alt="" src="'.$urllogo.'" style="max-width: 80%"></div>'."\n"; + print '<div class="center"><img class="mycompany" title="'.dol_escape_htmltag($title).'" alt="" src="'.$urllogo.'" style="max-width: 70%"></div>'."\n"; print '</div>'; print '<div class="menu_end" id="menu_end_logo"></div>'; print '</div>'."\n"; diff --git a/htdocs/core/modules/DolibarrModules.class.php b/htdocs/core/modules/DolibarrModules.class.php index 48ce35f1532..d0559268c52 100644 --- a/htdocs/core/modules/DolibarrModules.class.php +++ b/htdocs/core/modules/DolibarrModules.class.php @@ -795,6 +795,37 @@ class DolibarrModules // Can not be abstract, because we need to insta } + /** + * Gives the last author of activation + * + * @return array Array array('authorid'=>Id of last activation user, 'lastactivationdate'=>Date of last activation) + */ + function getLastActivationInfo() + { + global $conf; + + $sql = "SELECT tms, note FROM ".MAIN_DB_PREFIX."const"; + $sql.= " WHERE ".$this->db->decrypt('name')." = '".$this->const_name."'"; + $sql.= " AND entity IN (0, ".$conf->entity.")"; + + dol_syslog(get_class($this)."::getLastActiveDate", LOG_DEBUG); + $resql=$this->db->query($sql); + if (! $resql) $err++; + else + { + $obj=$this->db->fetch_object($resql); + $tmp=array(); + if ($obj->note) + { + $tmp=json_decode($obj->note, true); + } + if ($obj) return array('authorid'=>$tmp['authorid'], 'ip'=>$tmp['ip'], 'lastactivationdate'=>$this->db->jdate($obj->tms)); + } + + return array(); + } + + /** * Insert constants for module activation * @@ -802,7 +833,7 @@ class DolibarrModules // Can not be abstract, because we need to insta */ function _active() { - global $conf; + global $conf, $user; $err = 0; @@ -817,10 +848,13 @@ class DolibarrModules // Can not be abstract, because we need to insta $resql=$this->db->query($sql); if (! $resql) $err++; - $sql = "INSERT INTO ".MAIN_DB_PREFIX."const (name,value,visible,entity) VALUES"; + $note=json_encode(array('authorid'=>$user->id, 'ip'=>$_SERVER['REMOTE_ADDR'])); + + $sql = "INSERT INTO ".MAIN_DB_PREFIX."const (name, value, visible, entity, note) VALUES"; $sql.= " (".$this->db->encrypt($this->const_name,1); - $sql.= ",".$this->db->encrypt('1',1); - $sql.= ",0,".$entity.")"; + $sql.= ", ".$this->db->encrypt('1',1); + $sql.= ", 0, ".$entity; + $sql.= ", '".$this->db->escape($note)."')"; dol_syslog(get_class($this)."::_active", LOG_DEBUG); $resql=$this->db->query($sql); diff --git a/htdocs/core/tpl/login.tpl.php b/htdocs/core/tpl/login.tpl.php index 1245041d98a..81e3936d300 100644 --- a/htdocs/core/tpl/login.tpl.php +++ b/htdocs/core/tpl/login.tpl.php @@ -258,7 +258,7 @@ if (!empty($conf->global->MAIN_EASTER_EGG_COMMITSTRIP)) { <?php if ($main_home) { ?> - <div class="center login_main_home" style="max-width: 80%"> + <div class="center login_main_home" style="max-width: 70%"> <?php echo $main_home; ?> </div><br> <?php diff --git a/htdocs/core/tpl/passwordforgotten.tpl.php b/htdocs/core/tpl/passwordforgotten.tpl.php index bdc38b08873..ad29cbfcd3d 100644 --- a/htdocs/core/tpl/passwordforgotten.tpl.php +++ b/htdocs/core/tpl/passwordforgotten.tpl.php @@ -151,7 +151,7 @@ if (! empty($hookmanager->resArray['options'])) { </form> -<div class="center login_main_home" style="max-width: 80%"> +<div class="center login_main_home" style="max-width: 70%"> <?php if ($mode == 'dolibarr' || ! $disabled) { ?> <font style="font-size: 12px;"> <?php echo $langs->trans('SendNewPasswordDesc'); ?> diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index 8425aa2c4c6..5fd5cb57c8b 100644 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -302,6 +302,8 @@ CurrentVersion=Dolibarr current version CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Latest stable version LastActivationDate=Latest activation date +LastActivationAuthor=Latest activation author +LastActivationIP=Latest activation IP UpdateServerOffline=Update server offline WithCounter=Manage a counter GenericMaskCodes=You may enter any numbering mask. In this mask, the following tags could be used:<br><b>{000000}</b> corresponds to a number which will be incremented on each %s. Enter as many zeros as the desired length of the counter. The counter will be completed by zeros from the left in order to have as many zeros as the mask. <br><b>{000000+000}</b> same as previous but an offset corresponding to the number to the right of the + sign is applied starting on first %s. <br><b>{000000@x}</b> same as previous but the counter is reset to zero when month x is reached (x between 1 and 12, or 0 to use the early months of fiscal year defined in your configuration, or 99 to reset to zero every month). If this option is used and x is 2 or higher, then sequence {yy}{mm} or {yyyy}{mm} is also required. <br><b>{dd}</b> day (01 to 31).<br><b>{mm}</b> month (01 to 12).<br><b>{yy}</b>, <b>{yyyy}</b> or <b>{y}</b> year over 2, 4 or 1 numbers. <br> @@ -1099,7 +1101,7 @@ WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least fo NewTranslationStringToShow=New translation string to show OriginalValueWas=The original translation is overwritten. Original value was:<br><br>%s TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exists in any language files -TotalNumberOfActivatedModules=Total number of activated feature modules: <b>%s</b> / <b>%s</b> +TotalNumberOfActivatedModules=Activated feature/modules: <b>%s</b> / <b>%s</b> YouMustEnableOneModule=You must at least enable 1 module ClassNotFoundIntoPathWarning=Class %s not found into PHP path YesInSummer=Yes in summer diff --git a/htdocs/societe/admin/contact_extrafields.php b/htdocs/societe/admin/contact_extrafields.php index 37db7d02e4c..2a60252f7f8 100644 --- a/htdocs/societe/admin/contact_extrafields.php +++ b/htdocs/societe/admin/contact_extrafields.php @@ -70,7 +70,7 @@ print load_fiche_titre($langs->trans("CompanySetup"),$linkback,'title_setup'); $head = societe_admin_prepare_head(); -dol_fiche_head($head, 'attributes_contacts', $langs->trans("ThirdParties"), 0, 'company'); +dol_fiche_head($head, 'attributes_contacts', $langs->trans("ThirdParties"), -1, 'company'); require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_view.tpl.php'; diff --git a/htdocs/societe/admin/societe.php b/htdocs/societe/admin/societe.php index 517672d14ed..63ba12197fd 100644 --- a/htdocs/societe/admin/societe.php +++ b/htdocs/societe/admin/societe.php @@ -307,7 +307,7 @@ print load_fiche_titre($langs->trans("CompanySetup"),$linkback,'title_setup'); $head = societe_admin_prepare_head(); -dol_fiche_head($head, 'general', $langs->trans("ThirdParties"), 0, 'company'); +dol_fiche_head($head, 'general', $langs->trans("ThirdParties"), -1, 'company'); $dirsociete=array_merge(array('/core/modules/societe/'),$conf->modules_parts['societe']); diff --git a/htdocs/societe/admin/societe_extrafields.php b/htdocs/societe/admin/societe_extrafields.php index 89f44d53aa7..a722ec61b86 100644 --- a/htdocs/societe/admin/societe_extrafields.php +++ b/htdocs/societe/admin/societe_extrafields.php @@ -71,7 +71,7 @@ print load_fiche_titre($langs->trans("CompanySetup"),$linkback,'title_setup'); $head = societe_admin_prepare_head(); -dol_fiche_head($head, 'attributes', $langs->trans("ThirdParties"), 0, 'company'); +dol_fiche_head($head, 'attributes', $langs->trans("ThirdParties"), -1, 'company'); require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_view.tpl.php'; diff --git a/htdocs/theme/dolibarr_logo.png b/htdocs/theme/dolibarr_logo.png old mode 100644 new mode 100755 index 3ee46b5155303f5f03b05594070a6c076e773636..5287d9dcc25bc48dddcc351dd4aa64fd83322463 GIT binary patch literal 10289 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 DtGo)< literal 14646 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Π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 diff --git a/htdocs/theme/eldy/style.css.php b/htdocs/theme/eldy/style.css.php index f4d5c5c32bd..b6e1fa0569d 100644 --- a/htdocs/theme/eldy/style.css.php +++ b/htdocs/theme/eldy/style.css.php @@ -90,7 +90,7 @@ $colorbacklinepair1='248,248,248'; // line pair $colorbacklinepair2='248,248,248'; // line pair $colorbacklinepairhover='238,246,252'; // line pair $colorbackbody='255,255,255'; -$colortexttitlenotab='60,60,20'; +$colortexttitlenotab='100,60,20'; $colortexttitle='0,0,0'; $colortext='0,0,0'; $colortextlink='0,0,120'; @@ -988,6 +988,9 @@ div.fiche { <?php if (! empty($conf->dol_hide_leftmenu) && ! empty($conf->dol_hide_topmenu)) print 'margin-top: 4px;'."\n"; ?> <?php if (! empty($conf->dol_hide_leftmenu)) print 'margin-bottom: 12px;'."\n"; ?> } +div.fiche>table:first-child { + margin-bottom: 15px !important; +} div.fichecenter { /* margin-top: 10px; */ width: 100%; @@ -2018,6 +2021,9 @@ a.tabTitle { white-space: nowrap; } +a.tabunactive { + color: rgb(<?php print $colortextlink; ?>) !important; +} a.tab:link, a.tab:visited, a.tab:hover, a.tab#active { font-family: <?php print $fontlist ?>; padding: 12px 9px 12px; @@ -3034,7 +3040,7 @@ td.legendLabel { padding: 2px 2px 2px 0 !important; } div.titre { font-family: <?php print $fontlist ?>; font-size: 14px; - /* font-weight: bold; */ + font-weight: bold; color: rgb(<?php print $colortexttitlenotab; ?>); text-decoration: none; padding-top: 5px; diff --git a/htdocs/user/admin/group_extrafields.php b/htdocs/user/admin/group_extrafields.php index 99eab0e3a88..8dad702935f 100644 --- a/htdocs/user/admin/group_extrafields.php +++ b/htdocs/user/admin/group_extrafields.php @@ -71,7 +71,7 @@ print load_fiche_titre($langs->trans("UsersSetup"),$linkback,'title_setup'); $head = user_admin_prepare_head(); -dol_fiche_head($head, 'attributes_group', $langs->trans("MenuUsersAndGroups"), 0, 'user'); +dol_fiche_head($head, 'attributes_group', $langs->trans("MenuUsersAndGroups"), -1, 'user'); require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_view.tpl.php'; diff --git a/htdocs/user/admin/user_extrafields.php b/htdocs/user/admin/user_extrafields.php index bb035d9f95f..28bf22da654 100644 --- a/htdocs/user/admin/user_extrafields.php +++ b/htdocs/user/admin/user_extrafields.php @@ -70,7 +70,7 @@ print load_fiche_titre($langs->trans("UsersSetup"),$linkback,'title_setup'); $head = user_admin_prepare_head(); -dol_fiche_head($head, 'attributes', $langs->trans("MenuUsersAndGroups"), 0, 'user'); +dol_fiche_head($head, 'attributes', $langs->trans("MenuUsersAndGroups"), -1, 'user'); require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_view.tpl.php'; -- GitLab