diff --git a/htdocs/core/class/conf.class.php b/htdocs/core/class/conf.class.php index 2d74064a97b37..6c2148a4b1ef5 100644 --- a/htdocs/core/class/conf.class.php +++ b/htdocs/core/class/conf.class.php @@ -142,6 +142,7 @@ class Conf extends stdClass public $format_date_hour_text; public $liste_limit; + public $main_checkbox_left_column; public $tzuserinputkey = 'tzserver'; // Use 'tzuserrel' to always store date in GMT and show date in time zone of user. @@ -822,6 +823,11 @@ public function setValues($db) } } + // conf->main_checkbox_left_column = constant to set checkbox list to left + if (!isset($this->main_checkbox_left_column)) { + $this->main_checkbox_left_column = getDolGlobalInt("MAIN_CHECKBOX_LEFT_COLUMN"); + } + // Set PRODUIT_LIMIT_SIZE if never defined if (!isset($this->global->PRODUIT_LIMIT_SIZE)) { $this->global->PRODUIT_LIMIT_SIZE = 1000; diff --git a/htdocs/core/lib/functions2.lib.php b/htdocs/core/lib/functions2.lib.php index 3277bb7ab3c9f..48e8ec902e2e4 100644 --- a/htdocs/core/lib/functions2.lib.php +++ b/htdocs/core/lib/functions2.lib.php @@ -1777,7 +1777,14 @@ function dol_set_user_param($db, $conf, &$user, $tab) foreach ($tab as $key => $value) { // Set new parameters - if ($value) { + $forcevalue = 0; + if (is_array($value)) { + if ($value["forcevalue"] == 1) { + $forcevalue = 1; + } + $value = $value["value"]; + } + if ($forcevalue == 1 || $value) { $sql = "INSERT INTO ".MAIN_DB_PREFIX."user_param(fk_user,entity,param,value)"; $sql .= " VALUES (".((int) $user->id).",".((int) $conf->entity).","; $sql .= " '".$db->escape($key)."','".$db->escape($value)."')"; diff --git a/htdocs/main.inc.php b/htdocs/main.inc.php index 1514626b8788d..d2c1981deb7c2 100644 --- a/htdocs/main.inc.php +++ b/htdocs/main.inc.php @@ -1355,6 +1355,10 @@ function analyseVarsForSqlAndScriptsInjection(&$var, $type, $stopcode = 1) $conf->liste_limit = 20; } } + // Set main_checkbox_left_column from user setup + if (isset($user->conf->MAIN_CHECKBOX_LEFT_COLUMN)) { // If a user setup exists + $conf->main_checkbox_left_column = getDolUserInt('MAIN_CHECKBOX_LEFT_COLUMN'); // Can be 0 + } // Replace conf->css by personalized value if theme not forced if (!getDolGlobalString('MAIN_FORCETHEME') && getDolUserString('MAIN_THEME')) { diff --git a/htdocs/modulebuilder/template/myobject_list.php b/htdocs/modulebuilder/template/myobject_list.php index 2cdc004dae996..2e6f9e6853195 100644 --- a/htdocs/modulebuilder/template/myobject_list.php +++ b/htdocs/modulebuilder/template/myobject_list.php @@ -584,7 +584,7 @@ } $varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage; -$htmlofselectarray = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage, getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')); // This also change content of $arrayfields with user setup +$htmlofselectarray = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage, $conf->main_checkbox_left_column); // This also change content of $arrayfields with user setup $selectedfields = ($mode != 'kanban' ? $htmlofselectarray : ''); $selectedfields .= (count($arrayofmassactions) ? $form->showCheckAddButtons('checkforselect', 1) : ''); @@ -595,7 +595,7 @@ // -------------------------------------------------------------------- print ''; // Action column -if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { +if ($conf->main_checkbox_left_column) { print ''; $searchpicto = $form->showFilterButtons('left'); print $searchpicto; @@ -647,7 +647,7 @@ print ''; }*/ // Action column -if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { +if (!$conf->main_checkbox_left_column) { print ''; $searchpicto = $form->showFilterButtons(); print $searchpicto; @@ -662,7 +662,7 @@ // -------------------------------------------------------------------- print ''; // Action column -if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { +if ($conf->main_checkbox_left_column) { print getTitleFieldOfList($selectedfields, 0, $_SERVER["PHP_SELF"], '', '', '', '', $sortfield, $sortorder, 'center maxwidthsearch ')."\n"; $totalarray['nbfield']++; } @@ -694,7 +694,7 @@ $totalarray['nbfield']++; }*/ // Action column -if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { +if (!$conf->main_checkbox_left_column) { print getTitleFieldOfList($selectedfields, 0, $_SERVER["PHP_SELF"], '', '', '', '', $sortfield, $sortorder, 'center maxwidthsearch ')."\n"; $totalarray['nbfield']++; } @@ -766,7 +766,7 @@ print ''; // Action column - if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + if ($conf->main_checkbox_left_column) { print ''; if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined $selected = 0; @@ -843,7 +843,7 @@ }*/ // Action column - if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { + if (!$conf->main_checkbox_left_column) { print ''; if ($massactionbutton || $massaction) { // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined $selected = 0; diff --git a/htdocs/user/param_ihm.php b/htdocs/user/param_ihm.php index 779bcecafbc1c..b401d90863f15 100644 --- a/htdocs/user/param_ihm.php +++ b/htdocs/user/param_ihm.php @@ -118,6 +118,12 @@ $tabparam["MAIN_SIZE_LISTE_LIMIT"] = ''; } + if (GETPOST("check_MAIN_CHECKBOX_LEFT_COLUMN") == "on") { + $tabparam["MAIN_CHECKBOX_LEFT_COLUMN"] = array("forcevalue" => 1, "value" => GETPOSTINT("MAIN_CHECKBOX_LEFT_COLUMN")); + } else { + $tabparam["MAIN_CHECKBOX_LEFT_COLUMN"] = ''; + } + if (GETPOST("check_MAIN_SIZE_SHORTLIST_LIMIT") == "on") { $tabparam["MAIN_SIZE_SHORTLIST_LIMIT"] = GETPOSTINT("MAIN_SIZE_SHORTLIST_LIMIT"); } else { @@ -325,6 +331,9 @@ function init_myfunc() if (jQuery("#check_MAIN_LANG_DEFAULT").prop("checked")) { jQuery("#main_lang_default").removeAttr(\'disabled\'); } else { jQuery("#main_lang_default").attr(\'disabled\',\'disabled\'); } + if (jQuery("#check_MAIN_CHECKBOX_LEFT_COLUMN").prop("checked")) { jQuery("#MAIN_CHECKBOX_LEFT_COLUMN").removeAttr(\'disabled\');} + else { jQuery("#MAIN_CHECKBOX_LEFT_COLUMN").attr(\'disabled\',\'disabled\');} + if (jQuery("#check_MAIN_SIZE_LISTE_LIMIT").prop("checked")) { jQuery("#MAIN_SIZE_LISTE_LIMIT").removeAttr(\'disabled\'); } else { jQuery("#MAIN_SIZE_LISTE_LIMIT").attr(\'disabled\',\'disabled\'); } @@ -343,6 +352,7 @@ function init_myfunc() init_myfunc(); jQuery("#check_MAIN_LANDING_PAGE").click(function() { init_myfunc(); }); jQuery("#check_MAIN_LANG_DEFAULT").click(function() { init_myfunc(); }); + jQuery("#check_MAIN_CHECKBOX_LEFT_COLUMN").click(function() { init_myfunc(); }); jQuery("#check_MAIN_SIZE_LISTE_LIMIT").click(function() { init_myfunc(); }); jQuery("#check_MAIN_SIZE_SHORTLIST_LIMIT").click(function() { init_myfunc(); }); jQuery("#check_AGENDA_DEFAULT_VIEW").click(function() { init_myfunc(); }); @@ -398,6 +408,14 @@ function init_myfunc() print $form->selectarray('AGENDA_DEFAULT_VIEW', $tmplist, (isset($object->conf->AGENDA_DEFAULT_VIEW) ? $object->conf->AGENDA_DEFAULT_VIEW : ''), 0, 0, 0, ''); print ''."\n"; + // Checkbox left menu + print ''.$langs->trans("MAIN_CHECKBOX_LEFT_COLUMN").''; + print ''.(getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN') ? $langs->trans("Yes") : $langs->trans("No")).''; + print 'conf->MAIN_CHECKBOX_LEFT_COLUMN) ? " checked" : ""); + print empty($dolibarr_main_demo) ? '' : ' disabled="disabled"'; // Disabled for demo + print '> '; + print ''.$form->selectyesno("MAIN_CHECKBOX_LEFT_COLUMN", isset($object->conf->MAIN_CHECKBOX_LEFT_COLUMN) ? $object->conf->MAIN_CHECKBOX_LEFT_COLUMN : getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN'), 1).''; + // Max size of lists print ''.$langs->trans("MaxSizeList").''; print '' . getDolGlobalString('MAIN_SIZE_LISTE_LIMIT').''; @@ -533,6 +551,12 @@ function init_myfunc() } print ''."\n"; + // Checkbox left menu + print ''.$langs->trans("MAIN_CHECKBOX_LEFT_COLUMN").''; + print ''.(getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN') ? $langs->trans("Yes") : $langs->trans("No")).''; + print 'conf->MAIN_CHECKBOX_LEFT_COLUMN) ? " checked" : "").'> '.$langs->trans("UsePersonalValue").''; + print ''.(isset($object->conf->MAIN_CHECKBOX_LEFT_COLUMN) ?( $object->conf->MAIN_CHECKBOX_LEFT_COLUMN == 1 ? $langs->trans("Yes") : $langs->trans("No")) : ' ').''; + // Max size for lists print ''.$langs->trans("MaxSizeList").''; print ''.getDolGlobalString('MAIN_SIZE_LISTE_LIMIT', ' ').'';