Skip to content

Commit

Permalink
amélioration : définition d'un type rendant les réservations invisibl…
Browse files Browse the repository at this point in the history
…es sur les plannings par domaine
  • Loading branch information
ynaessens committed Dec 29, 2019
1 parent 908b861 commit d821e94
Show file tree
Hide file tree
Showing 11 changed files with 623 additions and 553 deletions.
29 changes: 29 additions & 0 deletions admin/admin_type.php
Expand Up @@ -48,13 +48,42 @@
fatal_error(1, "<p>" . grr_sql_error());
}
}
// -------------------------------------------- ModifExclure Début-1
if (!Settings::load())
die("Erreur chargement settings");
if (isset($_GET['exclude_type_in_views_all']))
{
if (!Settings::set("exclude_type_in_views_all", $_GET['exclude_type_in_views_all']))
echo "Erreur lors de l'enregistrement de exclude_type_in_views_all !<br />";
}
if (isset($_GET['ok']))
{ $msg = get_vocab("message_records"); }
// ------------------------------------------- ModifExclure Fin-1

// code HTML
start_page_w_header("", "", "", $type="with_session");
include "admin_col_gauche2.php";
echo "<div class='col-md-9 col-sm-8 col-xs-12'>";
affiche_pop_up($msg,"admin");
echo "<h2>".get_vocab('admin_type.php')."</h2>";

// ------------------------------------------ ModifExclure Début-2
echo '<form action="./admin_type.php" method="get">'.PHP_EOL;
echo '<tr><td>'.get_vocab('exclude_type_in_views_all').'</td>'.PHP_EOL;
echo '<table>'.PHP_EOL;
echo '<td>'.PHP_EOL;
echo '<input class="form-control" type="text" id="exclude_type_in_views_all" name="exclude_type_in_views_all" value="'.Settings::get('exclude_type_in_views_all').'" size="30">'.PHP_EOL;
echo '</td>'.PHP_EOL;
echo '<td>'.PHP_EOL;
echo '<input class="btn btn-primary" type="submit" name="ok" value="'.get_vocab('save').'" style="font-variant: small-caps;"/>'.PHP_EOL;
echo '</td>'.PHP_EOL;
echo '</tr>'.PHP_EOL;
echo '</table>'.PHP_EOL;
echo "<br />\n";
// ------------------------------------------ ModifExclure Fin-2

echo get_vocab('admin_type_explications');

echo "<br />\n";
echo "<br />\n";
echo "| <a href=\"admin_type_modify.php?id=0\">".get_vocab("display_add_type")."</a> |\n";
Expand Down
1 change: 1 addition & 0 deletions language/lang.de
Expand Up @@ -392,6 +392,7 @@ $vocab['etape_n'] = "Phase Nr ";
$vocab['eveningends_area'] = "Der Tag endet um:";
$vocab['eveningends_minutes_area'] = "Anzahl der Minuten um das tatsächliche Ende des Tages zu erhalten.";
$vocab['every week'] = "wöchentlich";
$vocab['exclude_type_in_views_all'] = "Here You can define a type that will not be displayed in views per domain (week_all, month_all, month_all2, year et year_all).";
$vocab['execution automatique backup'] = "Exécution automatique de la sauvegarde"; // A traduire
$vocab['execution automatique backup explications'] = "Une sauvegarde automatique peut être déclenchée par l'exécution du script « admin_save_mysql.php », par exemple en programmant son exécution à l'aide d'une tâche « cron ».
<br />
Expand Down
1 change: 1 addition & 0 deletions language/lang.en
Expand Up @@ -394,6 +394,7 @@ $vocab['eveningends_area'] = "Close of day hour (later than the start day hour)"
$vocab['eveningends_minutes_area'] = "Number of minutes to be added at the close of day hour to have the real end of day.
";
$vocab['every week'] = "every week";
$vocab['exclude_type_in_views_all'] = "Here You can define a type that will not be displayed in views per domain (week_all, month_all, month_all2, year et year_all).";
$vocab['execution automatique backup'] = "Automatic backup execution";
$vocab['execution automatique backup explications'] = "Une sauvegarde automatique peut être déclenchée par l'exécution du script « admin_save_mysql.php », par exemple en programmant son exécution à l'aide d'une tâche « cron ».
<br />
Expand Down
1 change: 1 addition & 0 deletions language/lang.es
Expand Up @@ -391,6 +391,7 @@ $vocab['etape_n'] = "Etapa n° ";
$vocab['eveningends_area'] = "Hora de fin de día (superior a la hora de comienzo de día)";
$vocab['eveningends_minutes_area'] = "Número de minutos a añadir a la hora de fin de día para tener el fin real de un día.";
$vocab['every week'] = "cada semana";
$vocab['exclude_type_in_views_all'] = "Here You can define a type that will not be displayed in views per domain (week_all, month_all, month_all2, year et year_all).";
$vocab['execution automatique backup'] = "Exécution automatique de la sauvegarde"; // A traduire
$vocab['execution automatique backup explications'] = "Une sauvegarde automatique peut être déclenchée par l'exécution du script « admin_save_mysql.php », par exemple en programmant son exécution à l'aide d'une tâche « cron ».
<br />
Expand Down
3 changes: 2 additions & 1 deletion language/lang.fr
@@ -1,6 +1,6 @@
<?php
# GRR : fichier de langue française
# Last modification : 2019-02-21
# Last modification : 2019-12-29
# Charset (jeu de caractères) utilisé dans l'en-tête des pages HTML
$charset_html = "utf-8";
$vocab = array();
Expand Down Expand Up @@ -394,6 +394,7 @@ $vocab['etape_n'] = "Etape n° ";
$vocab['eveningends_area'] = "Heure de fin de journée (supérieure à l'heure de début de journée)";
$vocab['eveningends_minutes_area'] = "Nombre de minutes à ajouter à l'heure de fin de journée pour avoir la fin réelle d'une journée.";
$vocab['every week'] = "chaque semaine";
$vocab['exclude_type_in_views_all'] = "Vous pouvez choisir ici un type de réservation existant qui sera exclu des vues par domaine (week_all, month_all, month_all2, year et year_all).";
$vocab['execution automatique backup'] = "Exécution automatique de la sauvegarde";
$vocab['execution automatique backup explications'] = "Une sauvegarde automatique peut être déclenchée par l'exécution du script « admin_save_mysql.php », par exemple en programmant son exécution à l'aide d'une tâche « cron ».
<br />
Expand Down
1 change: 1 addition & 0 deletions language/lang.it
Expand Up @@ -392,6 +392,7 @@ $vocab['etape_n'] = "Tappa n° ";
$vocab['eveningends_area'] = "Ora di fine di giorno (superiore all'ora d'inizio di giorno)";
$vocab['eveningends_minutes_area'] = "Numero di minuti da aggiungere all'ora di fine di giorno per avere la fine reale di un giorno.";
$vocab['every week'] = "ogni settimana";
$vocab['exclude_type_in_views_all'] = "Here You can define a type that will not be displayed in views per domain (week_all, month_all, month_all2, year et year_all).";
$vocab['execution automatique backup'] = "Exécution automatique de la sauvegarde"; // A traduire
$vocab['execution automatique backup explications'] = "Une sauvegarde automatique peut être déclenchée par l'exécution du script « admin_save_mysql.php », par exemple en programmant son exécution à l'aide d'une tâche « cron ».
<br />
Expand Down
216 changes: 111 additions & 105 deletions month_all.php
Expand Up @@ -3,9 +3,9 @@
* month_all.php
* Interface d'accueil avec affichage par mois des réservation de toutes les ressources d'un domaine
* Ce script fait partie de l'application GRR
* Dernière modification : $Date: 2018-11-15 16:35$
* Dernière modification : $Date: 2019-12-29 13:35$
* @author Laurent Delineau & JeromeB & Yan Naessens
* @copyright Copyright 2003-2018 Team DEVOME - JeromeB
* @copyright Copyright 2003-2019 Team DEVOME - JeromeB
* @link http://www.gnu.org/licenses/licenses.html
*
* This file is part of GRR.
Expand Down Expand Up @@ -186,10 +186,13 @@
//row[8] = Modération
//row[9] = beneficiaire extérieur
//row[10] = id de la ressource
$sql = "SELECT start_time, end_time, ".TABLE_PREFIX."_entry.id, name, beneficiaire, room_name, ".TABLE_PREFIX."_entry.description, type, ".TABLE_PREFIX."_entry.moderate, beneficiaire_ext, ".TABLE_PREFIX."_room.id
FROM ".TABLE_PREFIX."_entry inner join ".TABLE_PREFIX."_room on ".TABLE_PREFIX."_entry.room_id=".TABLE_PREFIX."_room.id
//row[11] = Type_name
$sql = "SELECT start_time, end_time, ".TABLE_PREFIX."_entry.id, name, beneficiaire, room_name, ".TABLE_PREFIX."_entry.description, type, ".TABLE_PREFIX."_entry.moderate, beneficiaire_ext, ".TABLE_PREFIX."_room.id, ".TABLE_PREFIX."_type_area.type_name
FROM (".TABLE_PREFIX."_entry inner join ".TABLE_PREFIX."_room on ".TABLE_PREFIX."_entry.room_id=".TABLE_PREFIX."_room.id )
inner join ".TABLE_PREFIX."_type_area on ".TABLE_PREFIX."_entry.type=".TABLE_PREFIX."_type_area.type_letter
WHERE (start_time <= $month_end AND end_time > $month_start and area_id='".$area."')
ORDER by start_time, end_time, ".TABLE_PREFIX."_room.room_name";

//Build an array of information about each day in the month.
//The information is stored as:
//d[monthday]["id"][] = ID of each entry, for linking.
Expand All @@ -204,114 +207,117 @@
$acces_fiche_reservation = array();
for ($i = 0; ($row = grr_sql_row($res, $i)); $i++)
{
$verif_acces_ressource[$row[10]] = verif_acces_ressource(getUserName(), $row[10]);
$acces_fiche_reservation[$row[10]] = verif_acces_fiche_reservation(getUserName(), $row[10]);
$t = max((int)$row[0], $month_start);
$end_t = min((int)$row[1], $month_end);
$day_num = date("j", $t);
if ($enable_periods == 'y')
$midnight = mktime(12, 0, 0, $month, $day_num, $year);
else
$midnight = mktime(0, 0, 0, $month, $day_num, $year);
while ($t < $end_t)
{
$d[$day_num]["id"][] = $row[2];
$d[$day_num]["id_room"][] = $row[10];
if (Settings::get("display_info_bulle") == 1)
$d[$day_num]["who"][] = get_vocab("reservee au nom de").affiche_nom_prenom_email($row[4], $row[9], "nomail");
else if (Settings::get("display_info_bulle") == 2)
$d[$day_num]["who"][] = $row[6];
else
$d[$day_num]["who"][] = "";
$d[$day_num]["who1"][] = affichage_lien_resa_planning($row[3],$row[2]);
$d[$day_num]["room"][] = $row[5] ;
$d[$day_num]["color"][] = $row[7];
$d[$day_num]["description"][] = affichage_resa_planning($row[6],$row[2]);
$d[$day_num]["moderation"][] = $row[8];
$midnight_tonight = $midnight + 86400;
//Describe the start and end time, accounting for "all day"
//and for entries starting before/ending after today.
//There are 9 cases, for start time < = or > midnight this morning,
//and end time < = or > midnight tonight.
//Use ~ (not -) to separate the start and stop times, because MSIE
//will incorrectly line break after a -.
if ($enable_periods == 'y')
if ($row['11'] <> (Settings::get('exclude_type_in_views_all')))
{
$start_str = preg_replace("/ /", " ", period_time_string($row[0]));
$end_str = preg_replace("/ /", " ", period_time_string($row[1], -1));
// Debug
//echo affiche_date($row[0])." ".affiche_date($midnight)." ".affiche_date($row[1])." ".affiche_date($midnight_tonight)."<br />";
switch (cmp3($row[0], $midnight) . cmp3($row[1], $midnight_tonight))
{
case "> < ": //Starts after midnight, ends before midnight
case "= < ": //Starts at midnight, ends before midnight
if ($start_str == $end_str)
$d[$day_num]["data"][] = $start_str;
else
$d[$day_num]["data"][] = $start_str . get_vocab("to") . $end_str;
break;
case "> = ": //Starts after midnight, ends at midnight
$d[$day_num]["data"][] = $start_str . get_vocab("to")."24:00";
break;
case "> > ": //Starts after midnight, continues tomorrow
$d[$day_num]["data"][] = $start_str . get_vocab("to")."&gt;";
break;
case "= = ": //Starts at midnight, ends at midnight
$d[$day_num]["data"][] = $all_day;
break;
case "= > ": //Starts at midnight, continues tomorrow
$d[$day_num]["data"][] = $all_day . "&gt;";
break;
case "< < ": //Starts before today, ends before midnight
$d[$day_num]["data"][] = "&lt;".get_vocab("to") . $end_str;
break;
case "< = ": //Starts before today, ends at midnight
$d[$day_num]["data"][] = "&lt;" . $all_day;
break;
case "< > ": //Starts before today, continues tomorrow
$d[$day_num]["data"][] = "&lt;" . $all_day . "&gt;";
break;
}
}
$verif_acces_ressource[$row[10]] = verif_acces_ressource(getUserName(), $row[10]);
$acces_fiche_reservation[$row[10]] = verif_acces_fiche_reservation(getUserName(), $row[10]);
$t = max((int)$row[0], $month_start);
$end_t = min((int)$row[1], $month_end);
$day_num = date("j", $t);
if ($enable_periods == 'y')
$midnight = mktime(12, 0, 0, $month, $day_num, $year);
else
$midnight = mktime(0, 0, 0, $month, $day_num, $year);
while ($t < $end_t)
{
switch (cmp3($row[0], $midnight) . cmp3($row[1], $midnight_tonight))
$d[$day_num]["id"][] = $row[2];
$d[$day_num]["id_room"][] = $row[10];
if (Settings::get("display_info_bulle") == 1)
$d[$day_num]["who"][] = get_vocab("reservee au nom de").affiche_nom_prenom_email($row[4], $row[9], "nomail");
else if (Settings::get("display_info_bulle") == 2)
$d[$day_num]["who"][] = $row[6];
else
$d[$day_num]["who"][] = "";
$d[$day_num]["who1"][] = affichage_lien_resa_planning($row[3],$row[2]);
$d[$day_num]["room"][] = $row[5] ;
$d[$day_num]["color"][] = $row[7];
$d[$day_num]["description"][] = affichage_resa_planning($row[6],$row[2]);
$d[$day_num]["moderation"][] = $row[8];
$midnight_tonight = $midnight + 86400;
//Describe the start and end time, accounting for "all day"
//and for entries starting before/ending after today.
//There are 9 cases, for start time < = or > midnight this morning,
//and end time < = or > midnight tonight.
//Use ~ (not -) to separate the start and stop times, because MSIE
//will incorrectly line break after a -.
if ($enable_periods == 'y')
{
case "> < ": //Starts after midnight, ends before midnight
case "= < ": //Starts at midnight, ends before midnight
$d[$day_num]["data"][] = date(hour_min_format(), $row[0]) . get_vocab("to") . date(hour_min_format(), $row[1]);
break;
case "> = ": //Starts after midnight, ends at midnight
$d[$day_num]["data"][] = date(hour_min_format(), $row[0]) . get_vocab("to")."24:00";
break;
case "> > ": //Starts after midnight, continues tomorrow
$d[$day_num]["data"][] = date(hour_min_format(), $row[0]) . get_vocab("to")."&gt;";
break;
case "= = ": //Starts at midnight, ends at midnight
$d[$day_num]["data"][] = $all_day;
break;
case "= > ": //Starts at midnight, continues tomorrow
$d[$day_num]["data"][] = $all_day . "&gt;";
break;
case "< < ": //Starts before today, ends before midnight
$d[$day_num]["data"][] = "&lt;".get_vocab("to") . date(hour_min_format(), $row[1]);
break;
case "< = ": //Starts before today, ends at midnight
$d[$day_num]["data"][] = "&lt;" . $all_day;
break;
case "< > ": //Starts before today, continues tomorrow
$d[$day_num]["data"][] = "&lt;" . $all_day . "&gt;";
break;
$start_str = preg_replace("/ /", " ", period_time_string($row[0]));
$end_str = preg_replace("/ /", " ", period_time_string($row[1], -1));
// Debug
//echo affiche_date($row[0])." ".affiche_date($midnight)." ".affiche_date($row[1])." ".affiche_date($midnight_tonight)."<br />";
switch (cmp3($row[0], $midnight) . cmp3($row[1], $midnight_tonight))
{
case "> < ": //Starts after midnight, ends before midnight
case "= < ": //Starts at midnight, ends before midnight
if ($start_str == $end_str)
$d[$day_num]["data"][] = $start_str;
else
$d[$day_num]["data"][] = $start_str . get_vocab("to") . $end_str;
break;
case "> = ": //Starts after midnight, ends at midnight
$d[$day_num]["data"][] = $start_str . get_vocab("to")."24:00";
break;
case "> > ": //Starts after midnight, continues tomorrow
$d[$day_num]["data"][] = $start_str . get_vocab("to")."&gt;";
break;
case "= = ": //Starts at midnight, ends at midnight
$d[$day_num]["data"][] = $all_day;
break;
case "= > ": //Starts at midnight, continues tomorrow
$d[$day_num]["data"][] = $all_day . "&gt;";
break;
case "< < ": //Starts before today, ends before midnight
$d[$day_num]["data"][] = "&lt;".get_vocab("to") . $end_str;
break;
case "< = ": //Starts before today, ends at midnight
$d[$day_num]["data"][] = "&lt;" . $all_day;
break;
case "< > ": //Starts before today, continues tomorrow
$d[$day_num]["data"][] = "&lt;" . $all_day . "&gt;";
break;
}
}
else
{
switch (cmp3($row[0], $midnight) . cmp3($row[1], $midnight_tonight))
{
case "> < ": //Starts after midnight, ends before midnight
case "= < ": //Starts at midnight, ends before midnight
$d[$day_num]["data"][] = date(hour_min_format(), $row[0]) . get_vocab("to") . date(hour_min_format(), $row[1]);
break;
case "> = ": //Starts after midnight, ends at midnight
$d[$day_num]["data"][] = date(hour_min_format(), $row[0]) . get_vocab("to")."24:00";
break;
case "> > ": //Starts after midnight, continues tomorrow
$d[$day_num]["data"][] = date(hour_min_format(), $row[0]) . get_vocab("to")."&gt;";
break;
case "= = ": //Starts at midnight, ends at midnight
$d[$day_num]["data"][] = $all_day;
break;
case "= > ": //Starts at midnight, continues tomorrow
$d[$day_num]["data"][] = $all_day . "&gt;";
break;
case "< < ": //Starts before today, ends before midnight
$d[$day_num]["data"][] = "&lt;".get_vocab("to") . date(hour_min_format(), $row[1]);
break;
case "< = ": //Starts before today, ends at midnight
$d[$day_num]["data"][] = "&lt;" . $all_day;
break;
case "< > ": //Starts before today, continues tomorrow
$d[$day_num]["data"][] = "&lt;" . $all_day . "&gt;";
break;
}
}
//Only if end time > midnight does the loop continue for the next day.
if ($row[1] <= $midnight_tonight)
break;
$day_num++;
$t = $midnight = $midnight_tonight;
}
}
//Only if end time > midnight does the loop continue for the next day.
if ($row[1] <= $midnight_tonight)
break;
$day_num++;
$t = $midnight = $midnight_tonight;
}
}
}
}
// Début du tableau affichant le planning
if ($_GET['pview'] != 1){
echo "<div id='planning2'>";
Expand Down

0 comments on commit d821e94

Please sign in to comment.