Merge branch 'develop' into fix/accessdbresults
This commit is contained in:
commit
6b80889ca6
22 changed files with 1642 additions and 1098 deletions
|
|
@ -68,7 +68,7 @@ jQuery jqueryFileTree 1.0.1 GPL and MIT License Yes
|
|||
jQuery jquerytreeview 1.4.1 MIT License Yes JS library for filetree
|
||||
jQuery TableDnD 0.6 GPL and MIT License Yes JS library plugin TableDnD (to reorder table rows)
|
||||
jQuery Timepicker 1.1.0 GPL and MIT License Yes JS library Timepicker addon for Datepicker
|
||||
jsGanttImproved 2.7.3 BSD License Yes JS library (to build Gantt reports)
|
||||
jsGanttImproved 2.8.10 BSD License Yes JS library (to build Gantt reports)
|
||||
SwaggerUI 2.2.10 GPL-2+ Yes JS library to offer the REST API explorer
|
||||
|
||||
Image libraries:
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ Replace:
|
|||
d.items&&
|
||||
With
|
||||
d&&d.items&&
|
||||
|
||||
|
||||
|
||||
ESCPOS:
|
||||
-------
|
||||
|
|
@ -55,8 +55,8 @@ NUSOAP:
|
|||
* Line 1257 of file nusoap.php. Add:
|
||||
|
||||
libxml_disable_entity_loader(true); // Avoid load of external entities (security problem). Required only for libxml < 2.
|
||||
|
||||
|
||||
|
||||
|
||||
* Line 4346 of file nusoap.php
|
||||
|
||||
$rev = array();
|
||||
|
|
@ -128,13 +128,13 @@ with
|
|||
if (!@TCPDF_STATIC::file_exists($file)) {
|
||||
// DOL CHANGE If we keep this, the image is not visible on pages after the first one.
|
||||
//var_dump($file.' '.(!@TCPDF_STATIC::file_exists($file)));
|
||||
//return false;
|
||||
//return false;
|
||||
$tfile = str_replace(' ', '%20', $file);
|
||||
if (@TCPDF_STATIC::file_exists($tfile)) {
|
||||
$file = $tfile;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
* Replace in tcpdf.php:
|
||||
if (($imgsrc[0] === '/') AND !empty($_SERVER['DOCUMENT_ROOT']) AND ($_SERVER['DOCUMENT_ROOT'] != '/')) {
|
||||
with
|
||||
|
|
@ -174,7 +174,7 @@ with
|
|||
imagesetpixel($imgalpha, $xpx, $ypx, $alpha);
|
||||
into
|
||||
imagesetpixel($imgalpha, $xpx, $ypx, (int) $alpha);
|
||||
|
||||
|
||||
* Removed useless directories ("examples", "tools")
|
||||
|
||||
* Optionally, removed all fonts except
|
||||
|
|
@ -243,7 +243,7 @@ with:
|
|||
with
|
||||
foreach ($value[1] as $k => $v) {
|
||||
|
||||
* Fix by replacing
|
||||
* Fix by replacing
|
||||
if ($res[0] == PDF_TYPE_OBJECT)
|
||||
with
|
||||
if (isset($res[0]) && $res[0] == PDF_TYPE_OBJECT)
|
||||
|
|
@ -253,23 +253,16 @@ with
|
|||
JSGANTT:
|
||||
--------
|
||||
* Replace in function JSGantt.taskLink
|
||||
var OpenWindow=window.open(pRef, "newwin", "height="+vHeight+",width="+vWidth);
|
||||
window.open(pRef, 'newwin', 'height=' + vHeight + ',width=' + vWidth);
|
||||
with
|
||||
// LDR To open in same window
|
||||
// @CHANGE DOLI To open in same window
|
||||
//var OpenWindow=window.open(pRef, "newwin", "height="+vHeight+",width="+vWidth);
|
||||
window.location.href=pRef
|
||||
|
||||
* Replace
|
||||
vTmpDiv=this.newNode(vTmpCell, 'div', null, null, vTaskList[i].getResource());
|
||||
with
|
||||
var vTmpNode=this.newNode(vTmpCell, 'div', null, '');
|
||||
vTmpNode=this.newNode(vTmpNode, 'a', null, '', vLangs[vLang]['moreinfo']);
|
||||
vTmpNode.setAttribute('href',vTaskList[i].getLink());
|
||||
|
||||
* Replace '% Comp.' to have a smaller text column header
|
||||
'comp':'% Comp.'
|
||||
'comp': '%...'
|
||||
with
|
||||
'comp':'%'
|
||||
'comp': '%'
|
||||
|
||||
|
||||
|
||||
|
|
@ -307,19 +300,19 @@ RESTLER:
|
|||
// @CHANGE LDR
|
||||
if (!is_string($haystack)) return false;
|
||||
|
||||
* Replace
|
||||
* Replace
|
||||
|
||||
$loaders = array_unique(static::$rogueLoaders);
|
||||
|
||||
with
|
||||
|
||||
|
||||
with
|
||||
|
||||
$loaders = array_unique(static::$rogueLoaders, SORT_REGULAR);
|
||||
|
||||
|
||||
* Replace CommentParser.php line 423
|
||||
elseif (count($value) && is_numeric($value[0]))
|
||||
|
||||
|
||||
with
|
||||
|
||||
|
||||
elseif (count($value) && isset($value[0]) && is_numeric($value[0]))
|
||||
|
||||
* Add CommentParser.php line 406 & 407 to remove a warning on api request in php 8.1
|
||||
|
|
@ -417,5 +410,3 @@ Edit CSS to restore line removed between 4.0.5 and 4.0.6. It generates this bug:
|
|||
.select2-hidden-accessible {
|
||||
margin: -10000px !important; /* line to restore */
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -2650,9 +2650,7 @@ ProductsOrServicesTranslations
|
|||
ProductsPipeServices
|
||||
ProductsPricePerCustomer
|
||||
ProfId10
|
||||
ProfId10FR
|
||||
ProfId10Short
|
||||
ProfId10ShortFR
|
||||
ProfId1ShortCM
|
||||
ProfId1ShortFR
|
||||
ProfId2ShortCM
|
||||
|
|
@ -2663,14 +2661,15 @@ ProfId4ShortCM
|
|||
ProfId4ShortFR
|
||||
ProfId5ShortCM
|
||||
ProfId5ShortFR
|
||||
ProfId6ShortCM
|
||||
ProfId6ShortFR
|
||||
ProfId1Short
|
||||
ProfId2Short
|
||||
ProfId3Short
|
||||
ProfId4Short
|
||||
ProfId5Short
|
||||
ProfId6Short
|
||||
ProfId7Short
|
||||
ProfId7ShortFR
|
||||
ProfId8Short
|
||||
ProfId8ShortFR
|
||||
ProfId9Short
|
||||
ProfId9ShortFR
|
||||
ProformaBill
|
||||
ProjectCreatedByEmailCollector
|
||||
ProjectHasNoCategory
|
||||
|
|
|
|||
|
|
@ -129,7 +129,7 @@ if [ -s "${MISSING_AND_UNUSED_FILE}" ] ; then
|
|||
echo "## :warning: Unused Translations may match ->trans(\$key.'SomeString')."
|
||||
echo "## You can add such dynamic keys to $(basename "$DYNAMIC_KEYS_SRC_FILE")"
|
||||
echo "## so that they are ignored for this report."
|
||||
echo "## :warning: Unused Translations may be commented in the code"
|
||||
echo "## :warning: Unused Translations may also be commented in the code"
|
||||
echo "## You can add such 'disabled' keys to $(basename "$EXCLUDE_KEYS_SRC_FILE")"
|
||||
echo "## so that they are ignored for this report."
|
||||
echo
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ $contextpage = GETPOST('contextpage', 'aZ') ? GETPOST('contextpage', 'aZ') : 'ac
|
|||
|
||||
$search_subaccount = GETPOST('search_subaccount', 'alpha');
|
||||
$search_label = GETPOST('search_label', 'alpha');
|
||||
$search_type = GETPOSTINT('search_type');
|
||||
$search_type = GETPOST('search_type', 'intcomma');
|
||||
|
||||
// Security check
|
||||
if ($user->socid > 0) {
|
||||
|
|
|
|||
|
|
@ -652,7 +652,7 @@ print '</td></tr>';
|
|||
if ($langs->transcountry("ProfId1", $mysoc->country_code) != '-') {
|
||||
print '<tr class="oddeven"><td><label for="profid1">'.$langs->transcountry("ProfId1", $mysoc->country_code).'</label></td><td>';
|
||||
if (!empty($mysoc->country_code)) {
|
||||
print '<input name="siren" id="profid1" class="minwidth200" value="'.dol_escape_htmltag(getDolGlobalString('MAIN_INFO_SIREN') ? $conf->global->MAIN_INFO_SIREN : '').'">';
|
||||
print '<input name="siren" id="profid1" class="minwidth200" value="'.dol_escape_htmltag(getDolGlobalString('MAIN_INFO_SIREN')).'">';
|
||||
} else {
|
||||
print $countrynotdefined;
|
||||
}
|
||||
|
|
@ -663,7 +663,7 @@ if ($langs->transcountry("ProfId1", $mysoc->country_code) != '-') {
|
|||
if ($langs->transcountry("ProfId2", $mysoc->country_code) != '-') {
|
||||
print '<tr class="oddeven"><td><label for="profid2">'.$langs->transcountry("ProfId2", $mysoc->country_code).'</label></td><td>';
|
||||
if (!empty($mysoc->country_code)) {
|
||||
print '<input name="siret" id="profid2" class="minwidth200" value="'.dol_escape_htmltag(getDolGlobalString('MAIN_INFO_SIRET') ? $conf->global->MAIN_INFO_SIRET : '').'">';
|
||||
print '<input name="siret" id="profid2" class="minwidth200" value="'.dol_escape_htmltag(getDolGlobalString('MAIN_INFO_SIRET')).'">';
|
||||
} else {
|
||||
print $countrynotdefined;
|
||||
}
|
||||
|
|
@ -674,7 +674,7 @@ if ($langs->transcountry("ProfId2", $mysoc->country_code) != '-') {
|
|||
if ($langs->transcountry("ProfId3", $mysoc->country_code) != '-') {
|
||||
print '<tr class="oddeven"><td><label for="profid3">'.$langs->transcountry("ProfId3", $mysoc->country_code).'</label></td><td>';
|
||||
if (!empty($mysoc->country_code)) {
|
||||
print '<input name="ape" id="profid3" class="minwidth200" value="'.dol_escape_htmltag(getDolGlobalString('MAIN_INFO_APE') ? $conf->global->MAIN_INFO_APE : '').'">';
|
||||
print '<input name="ape" id="profid3" class="minwidth200" value="'.dol_escape_htmltag(getDolGlobalString('MAIN_INFO_APE')).'">';
|
||||
} else {
|
||||
print $countrynotdefined;
|
||||
}
|
||||
|
|
@ -685,7 +685,7 @@ if ($langs->transcountry("ProfId3", $mysoc->country_code) != '-') {
|
|||
if ($langs->transcountry("ProfId4", $mysoc->country_code) != '-') {
|
||||
print '<tr class="oddeven"><td><label for="profid4">'.$langs->transcountry("ProfId4", $mysoc->country_code).'</label></td><td>';
|
||||
if (!empty($mysoc->country_code)) {
|
||||
print '<input name="rcs" id="profid4" class="minwidth200" value="'.dol_escape_htmltag(getDolGlobalString('MAIN_INFO_RCS') ? $conf->global->MAIN_INFO_RCS : '').'">';
|
||||
print '<input name="rcs" id="profid4" class="minwidth200" value="'.dol_escape_htmltag(getDolGlobalString('MAIN_INFO_RCS')).'">';
|
||||
} else {
|
||||
print $countrynotdefined;
|
||||
}
|
||||
|
|
@ -696,7 +696,7 @@ if ($langs->transcountry("ProfId4", $mysoc->country_code) != '-') {
|
|||
if ($langs->transcountry("ProfId5", $mysoc->country_code) != '-') {
|
||||
print '<tr class="oddeven"><td><label for="profid5">'.$langs->transcountry("ProfId5", $mysoc->country_code).'</label></td><td>';
|
||||
if (!empty($mysoc->country_code)) {
|
||||
print '<input name="MAIN_INFO_PROFID5" id="profid5" class="minwidth200" value="'.dol_escape_htmltag(getDolGlobalString('MAIN_INFO_PROFID5') ? $conf->global->MAIN_INFO_PROFID5 : '').'">';
|
||||
print '<input name="MAIN_INFO_PROFID5" id="profid5" class="minwidth200" value="'.dol_escape_htmltag(getDolGlobalString('MAIN_INFO_PROFID5')).'">';
|
||||
} else {
|
||||
print $countrynotdefined;
|
||||
}
|
||||
|
|
@ -707,7 +707,7 @@ if ($langs->transcountry("ProfId5", $mysoc->country_code) != '-') {
|
|||
if ($langs->transcountry("ProfId6", $mysoc->country_code) != '-') {
|
||||
print '<tr class="oddeven"><td><label for="profid6">'.$langs->transcountry("ProfId6", $mysoc->country_code).'</label></td><td>';
|
||||
if (!empty($mysoc->country_code)) {
|
||||
print '<input name="MAIN_INFO_PROFID6" id="profid6" class="minwidth200" value="'.dol_escape_htmltag(getDolGlobalString('MAIN_INFO_PROFID6') ? $conf->global->MAIN_INFO_PROFID6 : '').'">';
|
||||
print '<input name="MAIN_INFO_PROFID6" id="profid6" class="minwidth200" value="'.dol_escape_htmltag(getDolGlobalString('MAIN_INFO_PROFID6')).'">';
|
||||
} else {
|
||||
print $countrynotdefined;
|
||||
}
|
||||
|
|
@ -716,9 +716,9 @@ if ($langs->transcountry("ProfId6", $mysoc->country_code) != '-') {
|
|||
|
||||
// ProfId7
|
||||
if ($langs->transcountry("ProfId7", $mysoc->country_code) != '-') {
|
||||
print '<tr class="oddeven"><td><label for="profid7">'.$langs->transcountry("profid7", $mysoc->country_code).'</label></td><td>';
|
||||
print '<tr class="oddeven"><td><label for="profid7">'.$langs->transcountry("ProfId7", $mysoc->country_code).'</label></td><td>';
|
||||
if (!empty($mysoc->country_code)) {
|
||||
print '<input name="MAIN_INFO_PROFID7" id="profid7" class="minwidth200" value="'.dol_escape_htmltag(getDolGlobalString('MAIN_INFO_PROFID7') ? $conf->global->MAIN_INFO_PROFID7 : '').'">';
|
||||
print '<input name="MAIN_INFO_PROFID7" id="profid7" class="minwidth200" value="'.dol_escape_htmltag(getDolGlobalString('MAIN_INFO_PROFID7')).'">';
|
||||
} else {
|
||||
print $countrynotdefined;
|
||||
}
|
||||
|
|
@ -727,9 +727,9 @@ if ($langs->transcountry("ProfId7", $mysoc->country_code) != '-') {
|
|||
|
||||
// ProfId8
|
||||
if ($langs->transcountry("ProfId8", $mysoc->country_code) != '-') {
|
||||
print '<tr class="oddeven"><td><label for="profid8">'.$langs->transcountry("profid8", $mysoc->country_code).'</label></td><td>';
|
||||
print '<tr class="oddeven"><td><label for="profid8">'.$langs->transcountry("ProfId8", $mysoc->country_code).'</label></td><td>';
|
||||
if (!empty($mysoc->country_code)) {
|
||||
print '<input name="MAIN_INFO_PROFID8" id="profid8" class="minwidth200" value="'.dol_escape_htmltag(getDolGlobalString('MAIN_INFO_PROFID8') ? $conf->global->MAIN_INFO_PROFID8 : '').'">';
|
||||
print '<input name="MAIN_INFO_PROFID8" id="profid8" class="minwidth200" value="'.dol_escape_htmltag(getDolGlobalString('MAIN_INFO_PROFID8')).'">';
|
||||
} else {
|
||||
print $countrynotdefined;
|
||||
}
|
||||
|
|
@ -738,9 +738,9 @@ if ($langs->transcountry("ProfId8", $mysoc->country_code) != '-') {
|
|||
|
||||
// ProfId9
|
||||
if ($langs->transcountry("ProfId9", $mysoc->country_code) != '-') {
|
||||
print '<tr class="oddeven"><td><label for="profid9">'.$langs->transcountry("profid9", $mysoc->country_code).'</label></td><td>';
|
||||
print '<tr class="oddeven"><td><label for="profid9">'.$langs->transcountry("ProfId9", $mysoc->country_code).'</label></td><td>';
|
||||
if (!empty($mysoc->country_code)) {
|
||||
print '<input name="MAIN_INFO_PROFID9" id="profid9" class="minwidth200" value="'.dol_escape_htmltag(getDolGlobalString('MAIN_INFO_PROFID9') ? $conf->global->MAIN_INFO_PROFID9 : '').'">';
|
||||
print '<input name="MAIN_INFO_PROFID9" id="profid9" class="minwidth200" value="'.dol_escape_htmltag(getDolGlobalString('MAIN_INFO_PROFID9')).'">';
|
||||
} else {
|
||||
print $countrynotdefined;
|
||||
}
|
||||
|
|
@ -749,9 +749,9 @@ if ($langs->transcountry("ProfId9", $mysoc->country_code) != '-') {
|
|||
|
||||
// ProfId10
|
||||
if ($langs->transcountry("ProfId10", $mysoc->country_code) != '-') {
|
||||
print '<tr class="oddeven"><td><label for="profid10">'.$langs->transcountry("profid10", $mysoc->country_code).'</label></td><td>';
|
||||
print '<tr class="oddeven"><td><label for="profid10">'.$langs->transcountry("ProfId10", $mysoc->country_code).'</label></td><td>';
|
||||
if (!empty($mysoc->country_code)) {
|
||||
print '<input name="MAIN_INFO_PROFID10" id="profid10" class="minwidth200" value="'.dol_escape_htmltag(getDolGlobalString('MAIN_INFO_PROFID10') ? $conf->global->MAIN_INFO_PROFID10 : '').'">';
|
||||
print '<input name="MAIN_INFO_PROFID10" id="profid10" class="minwidth200" value="'.dol_escape_htmltag(getDolGlobalString('MAIN_INFO_PROFID10')).'">';
|
||||
} else {
|
||||
print $countrynotdefined;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1271,7 +1271,7 @@ class FormOther
|
|||
$selectboxlist .= '<input type="hidden" name="userid" value="'.$user->id.'">';
|
||||
$selectboxlist .= '<input type="hidden" name="areacode" value="'.$areacode.'">';
|
||||
$selectboxlist .= '<input type="hidden" name="boxorder" value="'.$boxorder.'">';
|
||||
$selectboxlist .= Form::selectarray('boxcombo', $arrayboxtoactivatelabel, -1, $langs->trans("ChooseBoxToAdd").'...', 0, 0, '', 0, 0, 0, 'ASC', 'maxwidth150onsmartphone hideonprint', 0, 'hidden selected', 0, 0);
|
||||
$selectboxlist .= Form::selectarray('boxcombo', $arrayboxtoactivatelabel, -1, $langs->trans("ChooseBoxToAdd").'...', 0, 0, '', 0, 0, 0, 'ASC', 'maxwidth300 hideonprint', 0, 'hidden selected', 0, 0);
|
||||
if (empty($conf->use_javascript_ajax)) {
|
||||
$selectboxlist .= ' <input type="submit" class="button" value="'.$langs->trans("AddBox").'">';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7648,7 +7648,11 @@ function dol_string_onlythesehtmlattributes($stringtoclean, $allowed_attributes
|
|||
|
||||
// Warning: loadHTML does not support HTML5 on old libxml versions.
|
||||
$dom = new DOMDocument('', 'UTF-8');
|
||||
// If $stringtoclean is wrong, it will generates warnings. So we disable warnings and restore them later.
|
||||
$savwarning = error_reporting();
|
||||
error_reporting(E_ALL & ~E_WARNING & ~E_NOTICE);
|
||||
$dom->loadHTML($stringtoclean, LIBXML_ERR_NONE | LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD | LIBXML_NONET | LIBXML_NOWARNING | LIBXML_NOXMLDECL);
|
||||
error_reporting($savwarning);
|
||||
|
||||
if ($dom instanceof DOMDocument) {
|
||||
for ($els = $dom->getElementsByTagname('*'), $i = $els->length - 1; $i >= 0; $i--) {
|
||||
|
|
|
|||
|
|
@ -123,7 +123,7 @@ class mod_codecompta_digitaria extends ModeleAccountancyCode
|
|||
$texte = str_replace(array('{s1}', '{s2}', '{s3}', '{s4}'), array($s1, $s2, $s3, $s4), $texte);
|
||||
$texte .= "<br>\n";
|
||||
// Remove special char if COMPANY_DIGITARIA_REMOVE_SPECIAL is set to 1 or not set (default)
|
||||
if (!isset($conf->global->COMPANY_DIGITARIA_REMOVE_SPECIAL) || !empty($conf->global->$conf->global->COMPANY_DIGITARIA_REMOVE_SPECIAL)) {
|
||||
if (!isset($conf->global->COMPANY_DIGITARIA_REMOVE_SPECIAL) || !empty($conf->global->COMPANY_DIGITARIA_REMOVE_SPECIAL)) {
|
||||
$texte .= $langs->trans('RemoveSpecialChars').' = '.yn(1)."<br>\n";
|
||||
}
|
||||
// Apply a regex replacement pattern on code if COMPANY_DIGITARIA_CLEAN_REGEX is set. Value must be a regex with parenthesis. The part into parenthesis is kept, the rest removed.
|
||||
|
|
|
|||
|
|
@ -103,7 +103,7 @@ if (!$sortfield) {
|
|||
$sall = trim((GETPOST('search_all', 'alphanohtml') != '') ? GETPOST('search_all', 'alphanohtml') : GETPOST('sall', 'alphanohtml'));
|
||||
|
||||
$search_ref = GETPOST('search_ref', 'alpha');
|
||||
$search_user = GETPOSTINT('search_user');
|
||||
$search_user = GETPOST('search_user', 'intcomma');
|
||||
$search_amount_ht = GETPOST('search_amount_ht', 'alpha');
|
||||
$search_amount_vat = GETPOST('search_amount_vat', 'alpha');
|
||||
$search_amount_ttc = GETPOST('search_amount_ttc', 'alpha');
|
||||
|
|
|
|||
|
|
@ -451,7 +451,7 @@ if ($action == 'confirm_deleteline' && $confirm == 'yes' && $permissiontoreceive
|
|||
}
|
||||
|
||||
// Update a dispatched line
|
||||
if ($action == 'updateline' && $permissiontoreceive) {
|
||||
if ($action == 'updateline' && $permissiontoreceive && empty($cancel)) {
|
||||
$db->begin();
|
||||
$error = 0;
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
div.gantt {
|
||||
font-family: tahoma, arial, verdana, Sans-serif;
|
||||
font-size: 10px;
|
||||
font-size: 12px;
|
||||
color: #656565;
|
||||
}
|
||||
|
||||
|
|
@ -31,10 +31,9 @@ div.gantt {
|
|||
font-size: 12px;
|
||||
border: #efefef 1px solid;
|
||||
text-align: center;
|
||||
cursor: default
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
|
||||
.gtasklist {
|
||||
height: 19px;
|
||||
min-width: 5px;
|
||||
|
|
@ -44,7 +43,7 @@ div.gantt {
|
|||
border-right: none;
|
||||
}
|
||||
|
||||
.gtasknolist-label{
|
||||
.gtasknolist-label {
|
||||
padding: 10px 50px;
|
||||
}
|
||||
/* all three width values set just to make sure - helps resizing code */
|
||||
|
|
@ -56,7 +55,7 @@ div.gantt {
|
|||
.gminorheading {
|
||||
background-color: #ffffff;
|
||||
font-weight: bold;
|
||||
font-size: 9px;
|
||||
font-size: 11px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
|
|
@ -154,9 +153,9 @@ td.gspanning {
|
|||
|
||||
.gtaskname {
|
||||
min-width: 170px;
|
||||
max-width: 170px;
|
||||
width: 170px;
|
||||
font-size: 9px;
|
||||
max-width: 220px;
|
||||
width: 220px;
|
||||
font-size: 12px;
|
||||
border-left: none;
|
||||
}
|
||||
|
||||
|
|
@ -246,6 +245,11 @@ span.gfoldercollapse {
|
|||
background-color: #fffde5;
|
||||
}
|
||||
|
||||
.gitemdifferent td {
|
||||
background-image: none;
|
||||
background-color: rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
|
||||
/* task bar caption text styles */
|
||||
|
||||
.gmilecaption,
|
||||
|
|
@ -487,7 +491,7 @@ span.gfoldercollapse {
|
|||
div.gtaskbarcontainer {
|
||||
z-index: 1;
|
||||
position: absolute;
|
||||
top: 0px
|
||||
top: 0px;
|
||||
}
|
||||
|
||||
.textbar {
|
||||
|
|
@ -510,7 +514,7 @@ div.gtaskbarcontainer {
|
|||
font-size: 10px;
|
||||
display: block;
|
||||
background: #ffffff;
|
||||
color: #656565
|
||||
color: #656565;
|
||||
}
|
||||
|
||||
.gTaskInfo {
|
||||
|
|
@ -652,7 +656,7 @@ div.gtaskbarcontainer {
|
|||
/* Old Internet Explorer version hacks */
|
||||
|
||||
.gantt {
|
||||
_height: 100%
|
||||
_height: 100%;
|
||||
}
|
||||
|
||||
/* otherwise the chart disappears! */
|
||||
|
|
@ -777,7 +781,6 @@ td.gspanning div {
|
|||
}
|
||||
|
||||
@media print {
|
||||
|
||||
/* All your print styles go here */
|
||||
html,
|
||||
.gchartgrid {
|
||||
|
|
@ -787,6 +790,32 @@ td.gspanning div {
|
|||
.glistgrid {
|
||||
float: none !important;
|
||||
}
|
||||
|
||||
/* Hide scrollbar for Chrome, Safari and Opera */
|
||||
.gchartcontainer *::-webkit-scrollbar {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* Hide scrollbar for IE, Edge and Firefox */
|
||||
.gchartcontainer * {
|
||||
-ms-overflow-style: none; /* IE and Edge */
|
||||
scrollbar-width: none; /* Firefox */
|
||||
}
|
||||
|
||||
/* Hide tool-tip */
|
||||
.JSGanttToolTip {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/* This is the default css, injected by the JSGantt.printChart(width,height); function -->
|
||||
@page {
|
||||
size: ${width}mm ${height}mm;
|
||||
}
|
||||
|
||||
.gchartcontainer {
|
||||
width: ${width}mm;
|
||||
}
|
||||
<-- This will be injected by the JSGantt.printChart() function */
|
||||
}
|
||||
|
||||
/* if using setUseSingleCell(1) the following is a suggested set of CSS3 styles to recreate the table grid - won't work on old browsers
|
||||
|
|
@ -812,16 +841,21 @@ td.gspanning div {
|
|||
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
/* Allow resize */
|
||||
resize: horizontal;
|
||||
}
|
||||
|
||||
.gmainright {
|
||||
overflow: hidden;
|
||||
flex: auto;
|
||||
flex: 1 1 auto;
|
||||
}
|
||||
|
||||
.gmainleft {
|
||||
overflow: hidden;
|
||||
flex: 0 0 50%;
|
||||
flex: 0 0 20%;
|
||||
min-width: 220px;
|
||||
/* Allow side to grow and shrink */
|
||||
flex: 1 0 auto;
|
||||
}
|
||||
|
||||
.gtasktableh tr,
|
||||
|
|
@ -927,25 +961,25 @@ td.gspanning div {
|
|||
}
|
||||
|
||||
table {
|
||||
page-break-after: auto
|
||||
page-break-after: auto;
|
||||
}
|
||||
|
||||
tr {
|
||||
page-break-inside: avoid;
|
||||
page-break-after: auto
|
||||
page-break-after: auto;
|
||||
}
|
||||
|
||||
td {
|
||||
page-break-inside: avoid;
|
||||
page-break-after: auto
|
||||
page-break-after: auto;
|
||||
}
|
||||
|
||||
thead {
|
||||
display: table-header-group
|
||||
display: table-header-group;
|
||||
}
|
||||
|
||||
tfoot {
|
||||
display: table-footer-group
|
||||
display: table-footer-group;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -966,7 +1000,7 @@ td.gspanning div {
|
|||
border-radius: 8px;
|
||||
border: 2px solid white;
|
||||
/* should match background, can't be transparent */
|
||||
background-color: rgba(0, 0, 0, .5);
|
||||
background-color: rgba(0, 0, 0, 0.5);
|
||||
}
|
||||
|
||||
.frame::-webkit-scrollbar-track {
|
||||
|
|
@ -979,4 +1013,4 @@ td.gspanning div {
|
|||
overflow: scroll;
|
||||
-ms-overflow-style: scrollbar;
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -135,180 +135,97 @@ ProfId9=Professional ID 9
|
|||
ProfId10=Professional ID 10
|
||||
ProfId1AR=Prof Id 1 (CUIT/CUIL)
|
||||
ProfId2AR=Prof Id 2 (Revenu brutes)
|
||||
ProfId3AR=-
|
||||
ProfId4AR=-
|
||||
ProfId5AR=-
|
||||
ProfId6AR=-
|
||||
ProfId1AT=Prof Id 1 (USt.-IdNr)
|
||||
ProfId2AT=Prof Id 2 (USt.-Nr)
|
||||
ProfId3AT=Prof Id 3 (Handelsregister-Nr.)
|
||||
ProfId4AT=-
|
||||
ProfId5AT=EORI number
|
||||
ProfId6AT=-
|
||||
ProfId1AU=Prof Id 1 (ABN)
|
||||
ProfId2AU=-
|
||||
ProfId3AU=-
|
||||
ProfId4AU=-
|
||||
ProfId5AU=-
|
||||
ProfId6AU=-
|
||||
ProfId1BE=Prof Id 1 (Professional number)
|
||||
ProfId2BE=-
|
||||
ProfId3BE=-
|
||||
ProfId4BE=-
|
||||
ProfId5BE=EORI number
|
||||
ProfId6BE=-
|
||||
ProfId1BR=-
|
||||
ProfId2BR=IE (Inscricao Estadual)
|
||||
ProfId3BR=IM (Inscricao Municipal)
|
||||
ProfId4BR=CPF
|
||||
#ProfId5BR=CNAE
|
||||
#ProfId6BR=INSS
|
||||
ProfId1CH=UID-Nummer
|
||||
ProfId2CH=-
|
||||
ProfId3CH=Prof Id 1 (Federal number)
|
||||
ProfId4CH=Prof Id 2 (Commercial Record number)
|
||||
ProfId5CH=EORI number
|
||||
ProfId6CH=-
|
||||
ProfId1CL=Prof Id 1 (R.U.T.)
|
||||
ProfId2CL=-
|
||||
ProfId3CL=-
|
||||
ProfId4CL=-
|
||||
ProfId5CL=-
|
||||
ProfId6CL=-
|
||||
ProfId1CM=Id. prof. 1 (Trade Register)
|
||||
ProfId2CM=Id. prof. 2 (Taxpayer No.)
|
||||
ProfId3CM=Id. prof. 3 (No. of Creation decree)
|
||||
ProfId4CM=Id. prof. 4 (No. of Deposit certificate)
|
||||
ProfId5CM=Id. prof. 5 (Others)
|
||||
ProfId6CM=-
|
||||
ProfId1ShortCM=Trade Register
|
||||
ProfId2ShortCM=Taxpayer No.
|
||||
ProfId3ShortCM=No. of Creation decree
|
||||
ProfId4ShortCM=No. of Deposit certificate
|
||||
ProfId5ShortCM=Others
|
||||
ProfId6ShortCM=-
|
||||
ProfId1CO=Prof Id 1 (R.U.T.)
|
||||
ProfId2CO=-
|
||||
ProfId3CO=-
|
||||
ProfId4CO=-
|
||||
ProfId5CO=-
|
||||
ProfId6CO=-
|
||||
ProfId1DE=Prof Id 1 (USt.-IdNr)
|
||||
ProfId2DE=Prof Id 2 (USt.-Nr)
|
||||
ProfId3DE=Prof Id 3 (Handelsregister-Nr.)
|
||||
ProfId4DE=-
|
||||
ProfId5DE=EORI number
|
||||
ProfId6DE=-
|
||||
ProfId1ES=Prof Id 1 (CIF/NIF)
|
||||
ProfId2ES=Prof Id 2 (Social security number)
|
||||
ProfId3ES=Prof Id 3 (CNAE)
|
||||
ProfId4ES=Prof Id 4 (Collegiate number)
|
||||
ProfId5ES=Prof Id 5 (EORI number)
|
||||
ProfId6ES=-
|
||||
ProfId1FR=Prof Id 1 (SIREN)
|
||||
ProfId2FR=Prof Id 2 (SIRET)
|
||||
ProfId3FR=Prof Id 3 (NAF, old APE)
|
||||
ProfId4FR=Prof Id 4 (RCS/RM)
|
||||
ProfId5FR=Prof Id 5 (numéro EORI)
|
||||
ProfId6FR=-
|
||||
ProfId7FR=-
|
||||
ProfId8FR=-
|
||||
ProfId9FR=-
|
||||
ProfId10FR=-
|
||||
ProfId1ShortFR=SIREN
|
||||
ProfId2ShortFR=SIRET
|
||||
ProfId3ShortFR=NAF
|
||||
ProfId4ShortFR=RCS
|
||||
ProfId5ShortFR=EORI
|
||||
ProfId6ShortFR=-
|
||||
ProfId7ShortFR=-
|
||||
ProfId8ShortFR=-
|
||||
ProfId9ShortFR=-
|
||||
ProfId10ShortFR=-
|
||||
ProfId1GB=Registration Number
|
||||
ProfId2GB=-
|
||||
ProfId3GB=SIC
|
||||
ProfId4GB=-
|
||||
ProfId5GB=-
|
||||
ProfId6GB=-
|
||||
ProfId1HN=Id prof. 1 (RTN)
|
||||
ProfId2HN=-
|
||||
ProfId3HN=-
|
||||
ProfId4HN=-
|
||||
ProfId5HN=-
|
||||
ProfId6HN=-
|
||||
ProfId1IN=Prof Id 1 (TIN)
|
||||
ProfId2IN=Prof Id 2 (PAN)
|
||||
ProfId3IN=Prof Id 3 (SRVC TAX)
|
||||
ProfId4IN=Prof Id 4
|
||||
ProfId5IN=Prof Id 5
|
||||
ProfId6IN=-
|
||||
ProfId1IT=-
|
||||
ProfId2IT=-
|
||||
ProfId3IT=-
|
||||
ProfId4IT=-
|
||||
ProfId5IT=EORI number
|
||||
ProfId6IT=-
|
||||
ProfId1LU=Id. prof. 1 (R.C.S. Luxembourg)
|
||||
ProfId2LU=Id. prof. 2 (Business permit)
|
||||
ProfId3LU=-
|
||||
ProfId4LU=-
|
||||
ProfId5LU=EORI number
|
||||
ProfId6LU=-
|
||||
ProfId1MA=Id prof. 1 (R.C.)
|
||||
ProfId2MA=Id prof. 2 (Patente)
|
||||
ProfId3MA=Id prof. 3 (I.F.)
|
||||
ProfId4MA=Id prof. 4 (C.N.S.S.)
|
||||
ProfId5MA=Id prof. 5 (I.C.E.)
|
||||
ProfId6MA=-
|
||||
ProfId1MX=Prof Id 1 (R.F.C).
|
||||
ProfId2MX=Prof Id 2 (R..P. IMSS)
|
||||
ProfId3MX=Prof Id 3 (Professional Charter)
|
||||
ProfId4MX=-
|
||||
ProfId5MX=-
|
||||
ProfId6MX=-
|
||||
ProfId1NL=KVK nummer
|
||||
ProfId2NL=-
|
||||
ProfId3NL=-
|
||||
ProfId4NL=Burgerservicenummer (BSN)
|
||||
ProfId5NL=EORI number
|
||||
ProfId6NL=-
|
||||
ProfId1PT=Prof Id 1 (NIPC)
|
||||
ProfId2PT=Prof Id 2 (Social security number)
|
||||
ProfId3PT=Prof Id 3 (Commercial Record number)
|
||||
ProfId4PT=Prof Id 4 (Conservatory)
|
||||
ProfId5PT=Prof Id 5 (EORI number)
|
||||
ProfId6PT=-
|
||||
ProfId1SN=RC
|
||||
ProfId2SN=NINEA
|
||||
ProfId3SN=-
|
||||
ProfId4SN=-
|
||||
ProfId5SN=-
|
||||
ProfId6SN=-
|
||||
ProfId1TN=Prof Id 1 (RC)
|
||||
ProfId2TN=Prof Id 2 (Fiscal matricule)
|
||||
ProfId3TN=Prof Id 3 (Douane code)
|
||||
ProfId4TN=Prof Id 4 (BAN)
|
||||
ProfId5TN=-
|
||||
ProfId6TN=-
|
||||
ProfId1US=Prof Id (FEIN)
|
||||
ProfId2US=-
|
||||
ProfId3US=-
|
||||
ProfId4US=-
|
||||
ProfId5US=-
|
||||
ProfId6US=-
|
||||
ProfId1RO=Prof Id 1 (CUI)
|
||||
ProfId2RO=Prof Id 2 (Nr. Înmatriculare)
|
||||
ProfId3RO=Prof Id 3 (CAEN)
|
||||
ProfId4RO=Prof Id 5 (EUID)
|
||||
ProfId5RO=Prof Id 5 (EORI number)
|
||||
ProfId6RO=-
|
||||
ProfId1RU=Prof Id 1 (OGRN)
|
||||
ProfId2RU=Prof Id 2 (INN)
|
||||
ProfId3RU=Prof Id 3 (KPP)
|
||||
ProfId4RU=Prof Id 4 (OKPO)
|
||||
ProfId5RU=-
|
||||
ProfId6RU=-
|
||||
ProfId1UA=Prof Id 1 (EDRPOU)
|
||||
ProfId2UA=Prof Id 2 (DRFO)
|
||||
ProfId3UA=Prof Id 3 (INN)
|
||||
|
|
|
|||
|
|
@ -64,6 +64,8 @@ $enddate = dol_mktime(23, 59, 59, GETPOSTINT('enddatemonth'), GETPOSTINT('enddat
|
|||
|
||||
$search_ref = GETPOST('search_ref', 'alpha');
|
||||
|
||||
$hookmanager->initHooks(array('checkmarginlist'));
|
||||
|
||||
// Security check
|
||||
$result = restrictedArea($user, 'margins');
|
||||
|
||||
|
|
|
|||
|
|
@ -204,7 +204,7 @@ function constructGanttLine($tarr, $task, $task_dependencies, $level = 0, $proje
|
|||
//$parent = $task["task_parent"];
|
||||
}
|
||||
// Define percent
|
||||
$percent = $task['task_percent_complete'] ? $task['task_percent_complete'] : 0;
|
||||
$percent = empty($task['task_percent_complete']) ? 0 : $task['task_percent_complete'];
|
||||
// Link (more information)
|
||||
if ($task["task_id"] < 0) {
|
||||
//$link=DOL_URL_ROOT.'/projet/tasks.php?withproject=1&id='.abs($task["task_id"]);
|
||||
|
|
@ -264,9 +264,9 @@ function constructGanttLine($tarr, $task, $task_dependencies, $level = 0, $proje
|
|||
$taskid = $task["task_alternate_id"];
|
||||
//$taskid = $task['task_id'];
|
||||
|
||||
$note = $task['note'];
|
||||
$note = empty($task['note']) ? '' : $task['note'];
|
||||
|
||||
$note = dol_concatdesc($note, $langs->trans("Workload").' : '.($task['task_planned_workload'] ? convertSecondToTime($task['task_planned_workload'], 'allhourmin') : ''));
|
||||
$note = dol_concatdesc($note, $langs->trans("Workload").' : '.(empty($task['task_planned_workload']) ? '' : convertSecondToTime($task['task_planned_workload'], 'allhourmin')));
|
||||
|
||||
$s .= "g.AddTaskItem(new JSGantt.TaskItem('".$taskid."', '".dol_escape_js(trim($name))."', '".$start_date."', '".$end_date."', '".$css."', '".$link."', ".$task['task_milestone'].", '".dol_escape_js($resources)."', ".($percent >= 0 ? $percent : 0).", ".$line_is_auto_group.", '".$parent."', 1, '".$dependency."', '".(empty($task["task_is_group"]) ? (($percent >= 0 && $percent != '') ? $percent.'%' : '') : '')."', '".dol_escape_js($note)."', g));";
|
||||
echo $s;
|
||||
|
|
|
|||
|
|
@ -356,7 +356,7 @@ if (count($tasksarray) > 0) {
|
|||
//if ($s) $tasks[$taskcursor]['task_resources']=implode(',',$idofusers);
|
||||
$tasks[$taskcursor]['task_resources'] = $s;
|
||||
if ($s) {
|
||||
$tasks[$taskcursor]['task_resources'] = '<a href="'.DOL_URL_ROOT.'/projet/tasks/contact.php?id='.$val->id.'&withproject=1" title="'.dol_escape_htmltag($s).'">'.$langs->trans("List").'</a>';
|
||||
$tasks[$taskcursor]['task_resources'] = '<a href="'.DOL_URL_ROOT.'/projet/tasks/contact.php?id='.$val->id.'&withproject=1" title="'.dol_escape_htmltag($s).'">'.$langs->trans("Contacts").'</a>';
|
||||
}
|
||||
//print "xxx".$val->id.$tasks[$taskcursor]['task_resources'];
|
||||
$tasks[$taskcursor]['note'] = $task->note_public;
|
||||
|
|
|
|||
|
|
@ -413,7 +413,7 @@ if ($id > 0 || !empty($ref)) {
|
|||
print '<td>';
|
||||
$formcompany->selectTypeContact($object, '', 'type', 'internal', 'position');
|
||||
print '</td>';
|
||||
print '<td class="right" colspan="3" ><input type="submit" class="button button-add" value="'.$langs->trans("Add").'" name="addsourceinternal"></td>';
|
||||
print '<td class="right" colspan="3" ><input type="submit" class="button button-add small" value="'.$langs->trans("Add").'" name="addsourceinternal"></td>';
|
||||
print '</tr>';
|
||||
|
||||
// Line to add an external contact. Only if project linked to a third party.
|
||||
|
|
@ -438,7 +438,7 @@ if ($id > 0 || !empty($ref)) {
|
|||
print '<td>';
|
||||
$formcompany->selectTypeContact($object, '', 'typecontact', 'external', 'position');
|
||||
print '</td>';
|
||||
print '<td class="right" colspan="3" ><input type="submit" class="button" id="add-customer-contact" name="addsourceexternal" value="'.$langs->trans("Add").'"';
|
||||
print '<td class="right" colspan="3" ><input type="submit" class="button button-add small" id="add-customer-contact" name="addsourceexternal" value="'.$langs->trans("Add").'"';
|
||||
if (!$nbofcontacts) {
|
||||
print ' disabled';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1539,9 +1539,11 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($canvasdisplayactio
|
|||
$i = 1;
|
||||
$j = 0;
|
||||
$NBCOLS = ($conf->browser->layout == 'phone' ? 1 : 2);
|
||||
while ($i <= 6) {
|
||||
$NBPROFIDMIN = getDolGlobalInt('THIRDPARTY_MIN_NB_PROF_ID', 2);
|
||||
$NBPROFIDMAX = getDolGlobalInt('THIRDPARTY_MAX_NB_PROF_ID', 6);
|
||||
while ($i <= $NBPROFIDMAX) {
|
||||
$idprof = $langs->transcountry('ProfId'.$i, $object->country_code);
|
||||
if ($idprof != '-') {
|
||||
if ($idprof != '-' && ($i <= $NBPROFIDMIN || !empty($langs->tab_translate['ProfId'.$i.$object->country_code]))) {
|
||||
$key = 'idprof'.$i;
|
||||
|
||||
if (($j % $NBCOLS) == 0) {
|
||||
|
|
@ -2281,9 +2283,11 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($canvasdisplayactio
|
|||
$i = 1;
|
||||
$j = 0;
|
||||
$NBCOLS = ($conf->browser->layout == 'phone' ? 1 : 2);
|
||||
while ($i <= 6) {
|
||||
$NBPROFIDMIN = getDolGlobalInt('THIRDPARTY_MIN_NB_PROF_ID', 2);
|
||||
$NBPROFIDMAX = getDolGlobalInt('THIRDPARTY_MAX_NB_PROF_ID', 6);
|
||||
while ($i <= $NBPROFIDMAX) {
|
||||
$idprof = $langs->transcountry('ProfId'.$i, $object->country_code);
|
||||
if ($idprof != '-') {
|
||||
if ($idprof != '-' && ($i <= $NBPROFIDMIN || !empty($langs->tab_translate['ProfId'.$i.$object->country_code]))) {
|
||||
$key = 'idprof'.$i;
|
||||
|
||||
if (($j % $NBCOLS) == 0) {
|
||||
|
|
@ -2705,10 +2709,11 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($canvasdisplayactio
|
|||
// Prof ids
|
||||
$i = 1;
|
||||
$j = 0;
|
||||
while ($i <= 6) {
|
||||
$NBPROFIDMIN = getDolGlobalInt('THIRDPARTY_MIN_NB_PROF_ID', 2);
|
||||
$NBPROFIDMAX = getDolGlobalInt('THIRDPARTY_MAX_NB_PROF_ID', 6);
|
||||
while ($i <= $NBPROFIDMAX) {
|
||||
$idprof = $langs->transcountry('ProfId'.$i, $object->country_code);
|
||||
if ($idprof != '-') {
|
||||
//if (($j % 2) == 0) print '<tr>';
|
||||
if ($idprof != '-' && ($i <= $NBPROFIDMIN || !empty($langs->tab_translate['ProfId'.$i.$object->country_code]))) {
|
||||
print '<tr>';
|
||||
print '<td>'.$idprof.'</td><td>';
|
||||
$key = 'idprof'.$i;
|
||||
|
|
@ -2723,13 +2728,11 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($canvasdisplayactio
|
|||
}
|
||||
}
|
||||
print '</td>';
|
||||
//if (($j % 2) == 1) print '</tr>';
|
||||
print '</tr>';
|
||||
$j++;
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
//if ($j % 2 == 1) print '<td colspan="2"></td></tr>';
|
||||
|
||||
|
||||
// This fields are used to know VAT to include in an invoice when the thirdparty is making a sale, so when it is a supplier.
|
||||
|
|
|
|||
|
|
@ -3961,6 +3961,13 @@ table.liste tr:last-of-type td, table.noborder:not(#tablelines):not(#tableliness
|
|||
border-bottom-color: var(--colortopbordertitle1);
|
||||
border-bottom-style: solid;
|
||||
}
|
||||
/* CSS to remove the interline border */
|
||||
table.nointerlines tr:not(:last-child) td {
|
||||
border-bottom: unset !important;
|
||||
border-top: unset !important;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
div.tabBar div.fichehalfright table.noborder:not(.margintable):not(.paymenttable):not(.lastrecordtable):last-of-type {
|
||||
border-bottom: 1px solid var(--colortopbordertitle1);
|
||||
|
|
@ -4019,10 +4026,10 @@ table.liste tr, table.noborder tr, div.noborder form {
|
|||
min-height: 20px;
|
||||
}
|
||||
table.liste th, table.noborder th, table.noborder tr.liste_titre td, table.noborder tr.box_titre td {
|
||||
padding: 7px 8px 7px 8px; /* t r b l */
|
||||
padding: 7px 10px 7px 12px; /* t r b l */
|
||||
}
|
||||
table.liste td, table.noborder td, div.noborder form div, table.tableforservicepart1 td, table.tableforservicepart2 td {
|
||||
padding: 8px 6px 8px 6px; /* t r b l */
|
||||
padding: 8px 10px 8px 12px; /* t r b l */
|
||||
/* line-height: 22px; This create trouble on cell login on list of last events of a contract*/
|
||||
height: 22px;
|
||||
}
|
||||
|
|
@ -6074,7 +6081,7 @@ td.gminorheading {
|
|||
}*/
|
||||
.gtaskname div, .gtaskname {
|
||||
min-width: 250px !important;
|
||||
max-width: unset !important;
|
||||
max-width: 500px !important;
|
||||
width: unset !important;
|
||||
}
|
||||
.gpccomplete div, .gpccomplete {
|
||||
|
|
|
|||
|
|
@ -4086,6 +4086,11 @@ table.paddingtopbottomonly tr td {
|
|||
padding-top: 1px;
|
||||
padding-bottom: 2px;
|
||||
}
|
||||
/* CSS to remove the interline border */
|
||||
table.nointerlines tr:not(:last-child) td {
|
||||
border-bottom: unset !important;
|
||||
border-top: unset !important;
|
||||
}
|
||||
|
||||
.liste_titre_filter {
|
||||
background: var(--colorbacktitle1) !important;
|
||||
|
|
@ -4117,11 +4122,11 @@ tr#trlinefordates td {
|
|||
}
|
||||
|
||||
table.liste th, table.noborder th, table.noborder tr.liste_titre td, table.noborder tr.box_titre td {
|
||||
padding: 8px 6px 8px 6px; /* t r b l */
|
||||
padding: 8px 8px 8px 10px; /* t r b l */
|
||||
}
|
||||
|
||||
table.liste td, table.noborder td, div.noborder form div, table.tableforservicepart1 td, table.tableforservicepart2 td {
|
||||
padding: 4px 6px 4px 6px; /* t r b l */
|
||||
padding: 4px 8px 4px 10px; /* t r b l */
|
||||
height: 22px;
|
||||
}
|
||||
table.liste tr.trkanban td {
|
||||
|
|
|
|||
|
|
@ -85,19 +85,21 @@ if (empty($account->userid)) {
|
|||
}
|
||||
|
||||
// Define value to know what current user can do on users
|
||||
$canadduser = (!empty($user->admin) || $user->hasRight('user', 'user', 'creer') || $user->rights->hrm->write_personal_information->write);
|
||||
$canreaduser = (!empty($user->admin) || $user->rights->user->user->lire || $user->rights->hrm->read_personal_information->read);
|
||||
$permissiontoaddbankaccount = ($user->hasRight('salaries', 'write') || $user->hasRight('hrm', 'employee', 'write') || $user->hasRight('user', 'creer'));
|
||||
$selfpermission = ($user->id == $id && $user->hasRight('user', 'self', 'creer'));
|
||||
$canadduser = (!empty($user->admin) || $user->hasRight('user', 'user', 'creer') || $user->hasRight('hrm', 'write_personal_information', 'write') );
|
||||
$canreaduser = (!empty($user->admin) || $user->hasRight('user', 'user', 'lire') || $user->hasRight('hrm', 'read_personal_information', 'read') );
|
||||
$permissiontoaddbankaccount = ($user->hasRight('salaries', 'write') || $user->hasRight('hrm', 'employee', 'write') || $user->hasRight('user', 'user', 'creer') || $selfpermission);
|
||||
$permissiontoreadhr = $user->hasRight('hrm', 'read_personal_information', 'read') || $user->hasRight('hrm', 'write_personal_information', 'write');
|
||||
$permissiontowritehr = $user->hasRight('hrm', 'write_personal_information', 'write');
|
||||
$permissiontosimpleedit = ($selfpermission || $canadduser);
|
||||
|
||||
// Ok if user->hasRight('salaries', 'read') or user->hasRight('hrm', 'read')
|
||||
// Ok if user->hasRight('salaries', 'readall') or user->hasRight('hrm', 'read')
|
||||
//$result = restrictedArea($user, 'salaries|hrm', $object->id, 'user&user', $feature2);
|
||||
$ok = false;
|
||||
if ($user->id == $id) {
|
||||
$ok = true; // A user can always read its own card
|
||||
}
|
||||
if ($user->hasRight('salaries', 'read')) {
|
||||
if ($user->hasRight('salaries', 'readall')) {
|
||||
$ok = true;
|
||||
}
|
||||
if ($user->hasRight('hrm', 'read')) {
|
||||
|
|
@ -201,7 +203,7 @@ if ($action == 'setbirth' && $canadduser && !$cancel) {
|
|||
}
|
||||
|
||||
// update personal email
|
||||
if ($action == 'setpersonal_email' && $canadduser && !$cancel) {
|
||||
if ($action == 'setpersonal_email' && $permissiontosimpleedit && !$cancel) {
|
||||
$object->personal_email = (string) GETPOST('personal_email', 'alphanohtml');
|
||||
$result = $object->update($user);
|
||||
if ($result < 0) {
|
||||
|
|
@ -210,7 +212,7 @@ if ($action == 'setpersonal_email' && $canadduser && !$cancel) {
|
|||
}
|
||||
|
||||
// update personal mobile
|
||||
if ($action == 'setpersonal_mobile' && $canadduser && !$cancel) {
|
||||
if ($action == 'setpersonal_mobile' && $permissiontosimpleedit && !$cancel) {
|
||||
$object->personal_mobile = (string) GETPOST('personal_mobile', 'alphanohtml');
|
||||
$result = $object->update($user);
|
||||
if ($result < 0) {
|
||||
|
|
@ -282,7 +284,7 @@ llxHeader('', $title, $help_url);
|
|||
|
||||
$head = user_prepare_head($object);
|
||||
|
||||
if ($id && $bankid && $action == 'edit' && ($user->hasRight('user', 'user', 'creer') || $user->hasRight('hrm', 'write_personal_information', 'write'))) {
|
||||
if ($id && $bankid && $action == 'edit' && !$cancel && $permissiontoaddbankaccount) {
|
||||
if ($conf->use_javascript_ajax) {
|
||||
print "\n<script>";
|
||||
print 'jQuery(document).ready(function () {
|
||||
|
|
@ -303,7 +305,7 @@ if ($id && $bankid && $action == 'edit' && ($user->hasRight('user', 'user', 'cre
|
|||
print '<input type="hidden" name="id" value="'.GETPOSTINT("id").'">';
|
||||
print '<input type="hidden" name="bankid" value="'.$bankid.'">';
|
||||
}
|
||||
if ($id && $action == 'create' && $user->hasRight('user', 'user', 'creer')) {
|
||||
if ($id && $action == 'create' && !$cancel && $permissiontoaddbankaccount) {
|
||||
if ($conf->use_javascript_ajax) {
|
||||
print "\n<script>";
|
||||
print 'jQuery(document).ready(function () {
|
||||
|
|
@ -493,7 +495,7 @@ if ($action != 'edit' && $action != 'create') { // If not bank account yet, $ac
|
|||
}
|
||||
|
||||
// Personal email
|
||||
if ($user->hasRight('hrm', 'read_personal_information', 'read') || $user->hasRight('hrm', 'write_personal_information', 'write')) {
|
||||
if ($user->hasRight('hrm', 'read_personal_information', 'read') || $user->hasRight('hrm', 'write_personal_information', 'write') || $permissiontosimpleedit) {
|
||||
print '<tr class="nowrap">';
|
||||
print '<td>';
|
||||
print $form->editfieldkey("UserPersonalEmail", 'personal_email', $object->personal_email, $object, $user->hasRight('user', 'user', 'creer') || $user->hasRight('hrm', 'write_personal_information', 'write'));
|
||||
|
|
@ -504,7 +506,7 @@ if ($action != 'edit' && $action != 'create') { // If not bank account yet, $ac
|
|||
}
|
||||
|
||||
// Personal phone
|
||||
if ($user->hasRight('hrm', 'read_personal_information', 'read') || $user->hasRight('hrm', 'write_personal_information', 'write')) {
|
||||
if ($user->hasRight('hrm', 'read_personal_information', 'read') || $user->hasRight('hrm', 'write_personal_information', 'write') || $permissiontosimpleedit) {
|
||||
print '<tr class="nowrap">';
|
||||
print '<td>';
|
||||
print $form->editfieldkey("UserPersonalMobile", 'personal_mobile', $object->personal_mobile, $object, $user->hasRight('user', 'user', 'creer') || $user->hasRight('hrm', 'write_personal_information', 'write'));
|
||||
|
|
@ -895,7 +897,7 @@ if ($action != 'edit' && $action != 'create') { // If not bank account yet, $ac
|
|||
}
|
||||
|
||||
// Edit
|
||||
if ($id && ($action == 'edit' || $action == 'create') && $user->hasRight('user', 'user', 'creer')) {
|
||||
if ($id && ($action == 'edit' || $action == 'create') && $permissiontoaddbankaccount) {
|
||||
$title = $langs->trans("User");
|
||||
print dol_get_fiche_head($head, 'bank', $title, 0, 'user');
|
||||
|
||||
|
|
@ -1030,11 +1032,11 @@ if ($id && ($action == 'edit' || $action == 'create') && $user->hasRight('user',
|
|||
print $form->buttonsSaveCancel($action == 'create' ? "Create" : "Modify");
|
||||
}
|
||||
|
||||
if ($id && $action == 'edit' && $user->hasRight('user', 'user', 'creer')) {
|
||||
if ($id && $action == 'edit' && $permissiontoaddbankaccount) {
|
||||
print '</form>';
|
||||
}
|
||||
|
||||
if ($id && $action == 'create' && $user->hasRight('user', 'user', 'creer')) {
|
||||
if ($id && $action == 'create' && $permissiontoaddbankaccount) {
|
||||
print '</form>';
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue