diff --git a/htdocs/comm/action/index.php b/htdocs/comm/action/index.php index 29ad7182e5bab04b2078eccbe798c8e6449be292..2318c45f132ef6b58c73a747c7561fd4807dfaad 100644 --- a/htdocs/comm/action/index.php +++ b/htdocs/comm/action/index.php @@ -998,7 +998,7 @@ elseif ($action == 'show_week') // View by week if ($todayarray['mday']==$tmpday && $todayarray['mon']==$tmpmonth && $todayarray['year']==$tmpyear) $today=1; if ($today) $style='cal_today'; - echo ' <td class="'.$style.' nowrap" width="14%" valign="top">'; + echo ' <td class="'.$style.'" width="14%" valign="top">'; show_day_events($db, $tmpday, $tmpmonth, $tmpyear, $month, $style, $eventarray, 0, $maxnbofchar, $newparam, 1, 300); echo " </td>\n"; } @@ -1032,7 +1032,7 @@ else // View by day echo ' <td align="center">'.$langs->trans("Day".$arraytimestamp['wday'])."</td>\n"; echo " </tr>\n"; echo " <tr>\n"; - echo ' <td class="'.$style.' nowrap" width="14%" valign="top">'; + echo ' <td class="'.$style.'" width="14%" valign="top">'; $maxnbofchar=80; show_day_events($db, $day, $month, $year, $month, $style, $eventarray, 0, $maxnbofchar, $newparam, 1, 300); echo "</td>\n"; @@ -1073,18 +1073,20 @@ $db->close(); * @param int $maxprint Nb of actions to show each day on month view (0 means no limit) * @param int $maxnbofchar Nb of characters to show for event line * @param string $newparam Parameters on current URL - * @param int $showinfo Add extended information (used by day view) + * @param int $showinfo Add extended information (used by day and week view) * @param int $minheight Minimum height for each event. 60px by default. * @return void */ function show_day_events($db, $day, $month, $year, $monthshown, $style, &$eventarray, $maxprint=0, $maxnbofchar=16, $newparam='', $showinfo=0, $minheight=60) { global $user, $conf, $langs; - global $filter, $filtera, $filtert, $filterd, $status, $actioncode; // Filters used into search form + global $action, $filter, $filtera, $filtert, $filterd, $status, $actioncode; // Filters used into search form global $theme_datacolor; global $cachethirdparties, $cachecontacts, $colorindexused; print '<div id="dayevent_'.sprintf("%04d",$year).sprintf("%02d",$month).sprintf("%02d",$day).'" class="dayevent">'."\n"; + + // Line with title of day $curtime = dol_mktime(0, 0, 0, $month, $day, $year); print '<table class="nobordernopadding" width="100%">'; print '<tr><td align="left" class="nowrap">'; @@ -1092,7 +1094,7 @@ function show_day_events($db, $day, $month, $year, $monthshown, $style, &$eventa print 'action=show_day&day='.str_pad($day, 2, "0", STR_PAD_LEFT).'&month='.str_pad($month, 2, "0", STR_PAD_LEFT).'&year='.$year; print $newparam; print '">'; - if ($showinfo) print dol_print_date($curtime,'daytext'); + if ($showinfo) print dol_print_date($curtime,'daytextshort'); else print dol_print_date($curtime,'%d'); print '</a>'; print '</td><td align="right" class="nowrap">'; @@ -1107,7 +1109,10 @@ function show_day_events($db, $day, $month, $year, $monthshown, $style, &$eventa print '</a>'; } print '</td></tr>'; - print '<tr height="'.$minheight.'"><td valign="top" colspan="2" class="nowrap sortable" style="padding-bottom: 2px;">'; + + // Line with td contains all div of each events + print '<tr height="'.$minheight.'"><td valign="top" colspan="2" class="sortable" style="padding-bottom: 2px;">'; + print '<div style="width: 100%; position: relative;">'; //$curtime = dol_mktime (0, 0, 0, $month, $day, $year); $i=0; $nummytasks=0; $numother=0; $numbirthday=0; $numical=0; $numicals=array(); @@ -1192,15 +1197,23 @@ function show_day_events($db, $day, $month, $year, $monthshown, $style, &$eventa $cssclass.= " unsortable"; } + $h=''; $nowrapontd=1; + if ($action == 'show_day') { $h='height: 100%; '; $nowrapontd=0; } + if ($action == 'show_week') { $h='height: 100%; '; $nowrapontd=0; } + // Show rect of event - print '<div id="event_'.$ymd.'_'.$i.'" class="event '.$cssclass.'">'; - print '<ul class="cal_event"><li class="cal_event">'; - print '<table class="cal_event'.(empty($event->transparency)?'':' cal_event_busy').'" style="'; + print '<div id="event_'.$ymd.'_'.$i.'" class="event '.$cssclass.'"'; + //print ' style="height: 100px;'; + //print ' position: absolute; top: 40px; width: 50%;'; + //print '"'; + print '>'; + print '<ul class="cal_event" style="'.$h.'"><li class="cal_event" style="'.$h.'">'; + print '<table class="cal_event'.(empty($event->transparency)?'':' cal_event_busy').'" style="'.$h; print 'background: #'.$color.'; background: -webkit-gradient(linear, left top, left bottom, from(#'.$color.'), to(#'.dol_color_minus($color,1).'));'; //if (! empty($event->transparency)) print 'background: #'.$color.'; background: -webkit-gradient(linear, left top, left bottom, from(#'.$color.'), to(#'.dol_color_minus($color,1).'));'; //else print 'background-color: transparent !important; background: none; border: 1px solid #bbb;'; print ' -moz-border-radius:4px;" width="100%"><tr>'; - print '<td class="nowrap cal_event'.($event->type_code == 'BIRTHDAY'?' cal_event_birthday':'').'">'; + print '<td class="'.($nowrapontd?'nowrap ':'').'cal_event'.($event->type_code == 'BIRTHDAY'?' cal_event_birthday':'').'">'; if ($event->type_code == 'BIRTHDAY') // It's a birthday { print $event->getNomUrl(1,$maxnbofchar,'cal_event','birthday','contact'); @@ -1367,6 +1380,7 @@ function show_day_events($db, $day, $month, $year, $monthshown, $style, &$eventa print '</script>'."\n"; } + print '</div>'; print '</td></tr>'; print '</table>'; print '</div>'."\n"; diff --git a/htdocs/comm/action/listactions.php b/htdocs/comm/action/listactions.php index a9f5438f1b8711ed0505e2648507c2162983af1e..a2c75386e56a0414a9d7b82cde61ecbda3f5882c 100644 --- a/htdocs/comm/action/listactions.php +++ b/htdocs/comm/action/listactions.php @@ -43,6 +43,7 @@ $pid=GETPOST("projectid",'int',3); $status=GETPOST("status",'alpha'); $type=GETPOST('type'); $actioncode=GETPOST("actioncode","alpha",3)?GETPOST("actioncode","alpha",3):(GETPOST("actioncode")=='0'?'0':(empty($conf->global->AGENDA_USE_EVENT_TYPE)?'AC_OTH':'')); +$dateselect=dol_mktime(0, 0, 0, GETPOST('dateselectmonth'), GETPOST('dateselectday'), GETPOST('dateselectyear')); if ($actioncode == '') $actioncode=(empty($conf->global->AGENDA_DEFAULT_FILTER_TYPE)?'':$conf->global->AGENDA_DEFAULT_FILTER_TYPE); if ($status == '' && ! isset($_GET['status']) && ! isset($_POST['status'])) $status=(empty($conf->global->AGENDA_DEFAULT_FILTER_STATUS)?'':$conf->global->AGENDA_DEFAULT_FILTER_STATUS); @@ -178,6 +179,8 @@ if ($filtera > 0 || $filtert > 0 || $filterd > 0 || $usergroup > 0) if ($usergroup > 0) $sql.= ($filtera>0||$filtert>0||$filterd>0?" OR ":"")." ugu.fk_usergroup = ".$usergroup; $sql.= ")"; } +//if ($dateselect > 0) $sql.= " AND a.datep BETWEEN '".$db->idate($dateselect)."' AND '".$db->idate($dateselect+3600*24-1).'"'; +if ($dateselect > 0) $sql.= " AND a.datep BETWEEN '".$db->idate($dateselect)."' AND '".$db->idate($dateselect+3600*24-1)."'"; $sql.= $db->order($sortfield,$sortorder); $sql.= $db->plimit($limit + 1, $offset); //print $sql; @@ -191,9 +194,11 @@ if ($resql) $num = $db->num_rows($resql); - $title=$langs->trans("DoneAndToDoActions"); + /*$title=$langs->trans("DoneAndToDoActions"); if ($status == 'done') $title=$langs->trans("DoneActions"); if ($status == 'todo') $title=$langs->trans("ToDoActions"); + */ + $title=$langs->trans("ListOfEvents"); $newtitle=$langs->trans($title); @@ -225,6 +230,8 @@ if ($resql) print_barre_liste($newtitle, $page, $_SERVER["PHP_SELF"], $param,$sortfield,$sortorder,$link,$num,0,''); //print '<br>'; + print '<form method="POST" id="searchFormList" action="'.$_SERVER["PHP_SELF"].'?'.$param.'">'."\n"; + $i = 0; print '<table class="liste" width="100%">'; print '<tr class="liste_titre">'; @@ -240,6 +247,22 @@ if ($resql) print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"a.percent",$param,"",'align="right"',$sortfield,$sortorder); print "</tr>\n"; + print '<tr class="liste_titre">'; + print '<td class="liste_titre"></td>'; + print '<td class="liste_titre" align="center">'; + print $form->select_date($dateselect, 'dateselect', 0, 0, 1, '', 1, 0, 1); + print '</td>'; + print '<td class="liste_titre"></td>'; + print '<td class="liste_titre"></td>'; + print '<td class="liste_titre"></td>'; + print '<td class="liste_titre"></td>'; + print '<td class="liste_titre"></td>'; + print '<td class="liste_titre" align="right"><input class="liste_titre" type="image" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">'; + //print ' '; + //print '<input type="image" class="liste_titre" name="button_removefilter" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">'; + print '</td>'; + print "</tr>\n"; + $contactstatic = new Contact($db); $now=dol_now(); $delay_warning=$conf->global->MAIN_DELAY_ACTIONS_TODO*24*60*60; @@ -349,6 +372,9 @@ if ($resql) $i++; } print "</table>"; + + print '</form>'; + $db->free($resql); } diff --git a/htdocs/core/lib/agenda.lib.php b/htdocs/core/lib/agenda.lib.php index 5f4f743a45d3ca0d07f89cbff4875ca3b2ac7232..27b02e060e852e67fdb2ebafdbf18843475e0f16 100644 --- a/htdocs/core/lib/agenda.lib.php +++ b/htdocs/core/lib/agenda.lib.php @@ -501,14 +501,14 @@ function calendars_prepare_head($param) $head[$h][2] = 'cardday'; $h++; - $head[$h][0] = DOL_URL_ROOT.'/comm/action/listactions.php'.($param?'?'.$param:''); - $head[$h][1] = $langs->trans("ViewList"); - $head[$h][2] = 'cardlist'; - $h++; - $head[$h][0] = DOL_URL_ROOT.'/comm/action/peruser.php'.($param?'?'.$param:''); $head[$h][1] = $langs->trans("ViewPerUser"); $head[$h][2] = 'cardperuser'; + $h++; + + $head[$h][0] = DOL_URL_ROOT.'/comm/action/listactions.php'.($param?'?'.$param:''); + $head[$h][1] = $langs->trans("ViewList"); + $head[$h][2] = 'cardlist'; $h++; $object=new stdClass(); diff --git a/htdocs/install/mysql/tables/llx_element_resources.sql b/htdocs/install/mysql/tables/llx_element_resources.sql index 3cc636ceab4bc2779030c537a1a7907d438ed4f5..9c67a0d52afa851c891400778299c9dd890cf975 100644 --- a/htdocs/install/mysql/tables/llx_element_resources.sql +++ b/htdocs/install/mysql/tables/llx_element_resources.sql @@ -13,16 +13,19 @@ -- -- You should have received a copy of the GNU General Public License -- along with this program. If not, see <http://www.gnu.org/licenses/>. +-- ============================================================================ +-- Table used to link an element actioncomm with a resource or user (llx_resource or llx_user) +-- ============================================================================ CREATE TABLE llx_element_resources ( rowid integer AUTO_INCREMENT PRIMARY KEY, - resource_id integer, - resource_type varchar(64), element_id integer, element_type varchar(64), + resource_id integer, -- id of resource or id of user + resource_type varchar(64), -- resource or user busy integer, mandatory integer, - fk_user_create integer, + fk_user_create integer, tms timestamp )ENGINE=innodb; diff --git a/htdocs/langs/en_US/agenda.lang b/htdocs/langs/en_US/agenda.lang index 4fcc6708a73fa996a8003e72286e3530eefdf339..48a5b720f465e32934c0be4319e260dd7717acc3 100644 --- a/htdocs/langs/en_US/agenda.lang +++ b/htdocs/langs/en_US/agenda.lang @@ -2,11 +2,11 @@ IdAgenda=ID event Actions=Events ActionsArea=Events area (Actions and tasks) -Agenda= Agenda -Agendas= Agendas -Calendar= Calendar -Calendars= Calendars -LocalAgenda=Local calendar +Agenda=Agenda +Agendas=Agendas +Calendar=Calendar +Calendars=Calendars +LocalAgenda=Internal calendar AffectedTo=Assigned to DoneBy=Done by Event=Event @@ -22,7 +22,7 @@ MenuToDoActions=All incomplete events MenuDoneActions=All terminated events MenuToDoMyActions=My incomplete events MenuDoneMyActions=My terminated events -ListOfEvents=List of Dolibarr events +ListOfEvents=List of events (internal calendar) ActionsAskedBy=Events reported by ActionsToDoBy=Events assigned to ActionsDoneBy=Events done by diff --git a/htdocs/langs/fr_FR/agenda.lang b/htdocs/langs/fr_FR/agenda.lang index c0fefbfbb0c219932af68451a093ecc96125671d..f33ada9956c974027bc8dfd2380b03420d24e607 100644 --- a/htdocs/langs/fr_FR/agenda.lang +++ b/htdocs/langs/fr_FR/agenda.lang @@ -22,7 +22,7 @@ MenuToDoActions=Événements incomplets MenuDoneActions=Événements terminés MenuToDoMyActions=Mes événem. incomplets MenuDoneMyActions=Mes événem. terminés -ListOfEvents=Liste des événements Dolibarr +ListOfEvents=Liste des événements (calendrier interne) ActionsAskedBy=Événements enregistrés par ActionsToDoBy=Événements affectés à ActionsDoneBy=Événements réalisés par diff --git a/htdocs/theme/eldy/style.css.php b/htdocs/theme/eldy/style.css.php index 45c9499a45b8d91e8a518ffc52bc96dfa525181d..3eef3bd840e997b801bddaf54d7af6c67b97f32f 100644 --- a/htdocs/theme/eldy/style.css.php +++ b/htdocs/theme/eldy/style.css.php @@ -2336,6 +2336,7 @@ table.cal_event { border: none; border-collapse: collapse; margin-bottom: 1px moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.25); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.25); background: -webkit-gradient(linear, left top, left bottom, from(#006aac), to(#00438d)); + min-height: 20px; } table.cal_event td { border: none; padding-<?php print $left; ?>: 2px; padding-<?php print $right; ?>: 2px; padding-top: 0px; padding-bottom: 0px; } ul.cal_event { padding-right: 2px; padding-top: 1px; border: none; list-style-type: none; margin: 0 auto; padding-left: 0px; padding-start: 0px; -khtml-padding-start: 0px; -o-padding-start: 0px; -moz-padding-start: 0px; -webkit-padding-start: 0px; }