Debug v17

This commit is contained in:
Laurent Destailleur 2022-11-08 03:01:32 +01:00
parent ddf60b399e
commit f371bf96db
7 changed files with 68 additions and 32 deletions

View File

@ -430,7 +430,36 @@ if (empty($reshook) && $action == 'add') {
if (!$error) {
$db->begin();
$selectedrecurrulefreq = 'no';
$selectedrecurrulebymonthday = '';
$selectedrecurrulebyday = '';
$object->recurrule = GETPOSTISSET('recurrulefreq') ? "FREQ=".GETPOST('recurrulefreq', 'alpha') : "";
$object->recurrule .= (GETPOST('recurrulefreq', 'alpha') == 'MONTHLY' && GETPOSTISSET('BYMONTHDAY')) ? "_BYMONTHDAY".GETPOST('BYMONTHDAY', 'alpha') : "";
$object->recurrule .= (GETPOST('recurrulefreq', 'alpha') == 'WEEKLY' && GETPOSTISSET('BYDAY')) ? "_BYDAY".GETPOST('BYDAY', 'alpha') : "";
$reg1 = array(); $reg2 = array(); $reg3 = array();
if ($object->recurrule && preg_match('/FREQ=([A-Z]+)/i', $object->recurrule, $reg1)) {
$selectedrecurrulefreq = $reg1[1];
}
if ($object->recurrule && preg_match('/FREQ=MONTHLY.*BYMONTHDAY(\d+)/i', $object->recurrule, $reg2)) {
$selectedrecurrulebymonthday = $reg2[1];
}
if ($object->recurrule && preg_match('/FREQ=WEEKLY.*BYDAY(\d+)/i', $object->recurrule, $reg3)) {
$selectedrecurrulebyday = $reg3[1];
}
// Is event recurrent ?
$eventisrecurring = 0;
$userepeatevent = (getDolGlobalInt('MAIN_FEATURES_LEVEL') == 2 ? 1 : 0);
if ($userepeatevent && !empty($selectedrecurrulefreq) && $selectedrecurrulefreq != 'no') {
$eventisrecurring = 1;
$object->recurid = dol_print_date(dol_now('gmt'), 'dayhourlog', 'gmt');
$object->recurdateend = dol_mktime(0, 0, 0, GETPOST('limitmonth', 'int'), GETPOST('limitday', 'int'), GETPOST('limityear', 'int'));
} else {
unset($object->recurid);
unset($object->recurrule);
unset($object->recurdateend);
}
// Creation of action/event
$idaction = $object->create($user);
@ -517,26 +546,7 @@ if (empty($reshook) && $action == 'add') {
$action = 'create'; $donotclearsession = 1;
}
$selectedrecurrulefreq = 'no';
$selectedrecurrulebymonthday = '';
$selectedrecurrulebyday = '';
$object->recurrule = GETPOSTISSET('recurrulefreq') ? "FREQ=".GETPOST('recurrulefreq', 'alpha') : "";
$object->recurrule .= GETPOSTISSET('BYMONTHDAY') ? "_BYMONTHDAY".GETPOST('BYMONTHDAY', 'alpha') : "";
$object->recurrule .= GETPOSTISSET('BYDAY') ? "_BYDAY".GETPOST('BYDAY', 'alpha') : "";
if ($object->recurrule && preg_match('/FREQ=([A-Z]+)/i', $object->recurrule, $reg1)) {
$selectedrecurrulefreq = $reg1[1];
}
if ($object->recurrule && preg_match('/FREQ=MONTHLY.*BYMONTHDAY(\d+)/i', $object->recurrule, $reg2)) {
$selectedrecurrulebymonthday = $reg2[1];
}
if ($object->recurrule && preg_match('/FREQ=WEEKLY.*BYDAY(\d+)/i', $object->recurrule, $reg3)) {
$selectedrecurrulebyday = $reg3[1];
}
// If event is recurrent
$userepeatevent = ($conf->global->MAIN_FEATURES_LEVEL == 2 ? 1 : 0);
if ($userepeatevent && !empty($selectedrecurrulefreq) && $selectedrecurrulefreq != 'no') {
if ($eventisrecurring) {
// We set first date of recurrence and offsets
if ($selectedrecurrulefreq == 'WEEKLY' && !empty($selectedrecurrulebyday)) {
$firstdatearray = dol_get_first_day_week(GETPOST("apday", 'int'), GETPOST("apmonth", 'int'), GETPOST("apyear", 'int'));
@ -944,9 +954,7 @@ if (empty($reshook) && $action == 'update') {
}
}
/*
* delete event
*/
// Delete event
if (empty($reshook) && $action == 'confirm_delete' && GETPOST("confirm") == 'yes') {
$object->fetch($id);
$object->fetch_optionals();
@ -2205,11 +2213,18 @@ if ($id > 0) {
}
// Private
if ($object->elementtype == 'ticket') print '<tr><td class="titlefield">'.$langs->trans("PrivateEventMessage").'</td><td>'.yn(($object->code == 'TICKET_MSG_PRIVATE') ? 1 : 0, 3).'</td></tr>';
if ($object->elementtype == 'ticket') {
print '<tr><td class="titlefield">'.$langs->trans("PrivateEventMessage").'</td><td>'.yn(($object->code == 'TICKET_MSG_PRIVATE') ? 1 : 0, 3).'</td></tr>';
}
// Full day event
print '<tr><td class="titlefield">'.$langs->trans("EventOnFullDay").'</td><td>'.yn($object->fulldayevent ? 1 : 0, 3).'</td></tr>';
// Event into a serie
if ($object->recurid) {
print '<tr><td class="titlefield">'.$langs->trans("EventIntoASerie").'</td><td>'.dol_escape_htmltag($object->recurid).'</td></tr>';
}
$rowspan = 4;
if (empty($conf->global->AGENDA_DISABLE_LOCATION)) {
$rowspan++;

View File

@ -269,6 +269,7 @@ class ActionComm extends CommonObject
*/
public $contact_id;
/**
* @var Societe|null Company linked to action (optional)
* @deprecated
@ -376,9 +377,9 @@ class ActionComm extends CommonObject
/**
* Properties to manage the recurring events
*/
public $recurid;
public $recurrule;
public $recurdateend;
public $recurid; /* A string YYYYMMDDHHMMSS shared by allevent of same serie */
public $recurrule; /* Rule of recurring */
public $recurdateend; /* Repeat until this date */
public $calling_duration;
@ -549,6 +550,9 @@ class ActionComm extends CommonObject
$sql .= "email_tobcc,";
$sql .= "email_subject,";
$sql .= "errors_to,";
$sql .= "recurid,";
$sql .= "recurrule,";
$sql .= "recurdateend,";
$sql .= "num_vote,";
$sql .= "event_paid,";
$sql .= "status";
@ -587,6 +591,9 @@ class ActionComm extends CommonObject
$sql .= (!empty($this->email_tobcc) ? "'".$this->db->escape($this->email_tobcc)."'" : "null").", ";
$sql .= (!empty($this->email_subject) ? "'".$this->db->escape($this->email_subject)."'" : "null").", ";
$sql .= (!empty($this->errors_to) ? "'".$this->db->escape($this->errors_to)."'" : "null").", ";
$sql .= (!empty($this->recurid) ? "'".$this->db->escape($this->recurid)."'" : "null").", ";
$sql .= (!empty($this->recurrule) ? "'".$this->db->escape($this->recurrule)."'" : "null").", ";
$sql .= (!empty($this->recurdateend) ? "'".$this->db->idate($this->recurdateend)."'" : "null").", ";
$sql .= (!empty($this->num_vote) ? (int) $this->num_vote : "null").", ";
$sql .= (!empty($this->event_paid) ? (int) $this->event_paid : 0).", ";
$sql .= (!empty($this->status) ? (int) $this->status : "0");
@ -716,6 +723,9 @@ class ActionComm extends CommonObject
$this->fetchResources();
$this->id = 0;
$this->recurid = '';
$this->recurrule = '';
$this->recurdateend = '';
// Create clone
$this->context['createfromclone'] = 'createfromclone';

View File

@ -1010,7 +1010,7 @@ if (!empty($arrayfields['p.tms']['checked'])) {
// Status
if (!empty($arrayfields['p.statut']['checked'])) {
print '<td class="liste_titre center">';
print $form->selectarray('search_status', array('-1'=>'', '0'=>$langs->trans('ActivityCeased'), '1'=>$langs->trans('InActivity')), $search_status, 0, 0, 0, '', 0, 0, 0, '', 'minwidth75');
print $form->selectarray('search_status', array('-1'=>'', '0'=>$langs->trans('ActivityCeased'), '1'=>$langs->trans('InActivity')), $search_status, 0, 0, 0, '', 0, 0, 0, '', 'minwidth75 onrightofpage');
print '</td>';
}
if (!empty($arrayfields['p.import_key']['checked'])) {

View File

@ -8097,7 +8097,7 @@ class Form
if ($addjscombo && $jsbeautify) {
// Enhance with select2
include_once DOL_DOCUMENT_ROOT.'/core/lib/ajax.lib.php';
$out .= ajax_combobox($htmlname, array(), 0, 0, 'resolve', $show_empty < 0 ? (string) $show_empty : '-1');
$out .= ajax_combobox($htmlname, array(), 0, 0, 'resolve', ($show_empty < 0 ? (string) $show_empty : '-1'), $morecss);
}
return $out;

View File

@ -434,10 +434,11 @@ function ajax_dialog($title, $message, $w = 350, $h = 150)
* @param int $forcefocus Force focus on field
* @param string $widthTypeOfAutocomplete 'resolve' or 'off'
* @param string $idforemptyvalue '-1'
* @param string $morecss More css
* @return string Return html string to convert a select field into a combo, or '' if feature has been disabled for some reason.
* @see selectArrayAjax() of html.form.class
*/
function ajax_combobox($htmlname, $events = array(), $minLengthToAutocomplete = 0, $forcefocus = 0, $widthTypeOfAutocomplete = 'resolve', $idforemptyvalue = '-1')
function ajax_combobox($htmlname, $events = array(), $minLengthToAutocomplete = 0, $forcefocus = 0, $widthTypeOfAutocomplete = 'resolve', $idforemptyvalue = '-1', $morecss = '')
{
global $conf;
@ -463,14 +464,17 @@ function ajax_combobox($htmlname, $events = array(), $minLengthToAutocomplete =
$minLengthToAutocomplete = 0;
}
$moreselect2theme = ($morecss ? dol_escape_js(' '.$morecss) : '');
$moreselect2theme = preg_replace('/widthcentpercentminus[^\s]*/', '', $moreselect2theme);
$tmpplugin = 'select2';
$msg = "\n".'<!-- JS CODE TO ENABLE '.$tmpplugin.' for id = '.$htmlname.' -->
<script>
$(document).ready(function () {
$(\''.(preg_match('/^\./', $htmlname) ? $htmlname : '#'.$htmlname).'\').'.$tmpplugin.'({
dir: \'ltr\',
width: \''.$widthTypeOfAutocomplete.'\', /* off or resolve */
minimumInputLength: '.$minLengthToAutocomplete.',
width: \''.dol_escape_js($widthTypeOfAutocomplete).'\', /* off or resolve */
minimumInputLength: '.((int) $minLengthToAutocomplete).',
language: select2arrayoflanguage,
matcher: function (params, data) {
if ($.trim(params.term) === "") {
@ -484,6 +488,7 @@ function ajax_combobox($htmlname, $events = array(), $minLengthToAutocomplete =
}
return data;
},
theme: \'default'.$moreselect2theme.'\', /* to add css on generated html components */
containerCssClass: \':all:\', /* Line to add class of origin SELECT propagated to the new <span class="select2-selection...> tag */
selectionCssClass: \':all:\', /* Line to add class of origin SELECT propagated to the new <span class="select2-selection...> tag */
templateResult: function (data, container) { /* Format visible output into combo list */

View File

@ -6453,6 +6453,9 @@ ul.select2-results__options li {
.select2-container.select2-container--open .select2-dropdown--below {
min-width: 220px !important;
}
.onrightofpage span.select2-dropdown.ui-dialog.select2-dropdown--below {
min-width: 140px !important;
}
.select2-container--open .select2-dropdown--below {
border-top: 1px solid var(--inputbordercolor);

View File

@ -6221,6 +6221,9 @@ ul.select2-results__options li {
.select2-container.select2-container--open .select2-dropdown--below {
min-width: 220px !important;
}
.onrightofpage span.select2-dropdown.ui-dialog.select2-dropdown--below {
min-width: 140px !important;
}
.select2-container--open .select2-dropdown--below {
border-top: 1px solid var(--inputbordercolor);