';
- }
- break;
- }
- //===========================================================
- case "TB_BATEAUX_Batteries":
- {
- for ($i = 0; $i < $nb_entrees; $i ++)
- {
- echo '
'; // L'utilisation d'une div dédiée permet de donner une "hauteur" à l'ancre et ainsi dégager de dessous le bandeau de menu...
-
- echo '
-
-
- '.$bateau['details_bateau'][$i]['Nom'].'
-
-
-
-
-
'.Recuperer_texte("bateau","details","batterie","tension").' : '.number_format($bateau['details_bateau'][$i]['Tension'], 2, ".", " ").' V
-
'.Recuperer_texte("bateau","details","batterie","soc").' :
- $bateau['details_bateau'][$i]['Soc_seuil_haut']) echo " green";
- else echo " orange";
- echo '">'.number_format($bateau['details_bateau'][$i]['Soc'], 2, ".", " ").' %
-
-
-
-
-
';
-
- // Graphique :
- if (($bateau['details_bateau'][$i]['Cle_primaire'] == $_SESSION['Bateaux']['id_entree_details_bateau']) AND
- ($_SESSION['Bateaux']['type_courbe_details_bateau'] != "Aucune"))
- {
- echo '
';
- echo '
';
- for($j = 0; $j < $nb_var; $j++){
- if ($_SESSION['Bateaux']['id_variable_details_bateau'] == $variables[$j]['Cle_primaire']){
- $titre_graphique = $variables[$j]['Nom'].' (en '.$variables[$j]['Unite'].')'.$titre_graphique;
- }
- }
- echo $titre_graphique;
- echo '
';
- if($_SESSION['Bateaux']['type_courbe_details_bateau'] == "Synthese" ){
- echo '
-
';
- }
- echo '
';
- if($_SESSION['Bateaux']['type_courbe_details_bateau'] == "Tous" || $_SESSION['Bateaux']['type_courbe_details_bateau'] == "Synthese"){
- echo '
';
-
- for($j = 0; $j < $nb_var; $j++){
- echo '
';
- }
- echo'
-
';
- }
- echo'
-
';
- echo '
-
-
';
- $_SESSION['Bateaux']['graphe_date_debut'] = '';
- $_SESSION['Bateaux']['graphe_date_fin'] = '';
- echo '
';
- // Capacité 1 :
- echo '
-
'.Recuperer_texte("bateau","details","batterie","cap").' 1
-
'.$bateau['details_bateau'][$i]['capacite_1'].'
-
';
-
- // Capacité 2 :
- echo '
-
'.Recuperer_texte("bateau","details","batterie","cap").' 2
-
'.$bateau['details_bateau'][$i]['capacite_2'].'
-
';
-
- // Type :
- echo '
';
- //echo '
'.Recuperer_texte("bateau","details","batterie","cap").' 2
- echo '
Type de batterie
-
'.$bateau['details_bateau'][$i]['type'].'
-
';
-
- // Seuil soc haut :
- echo '
-
'.Recuperer_texte("bateau","details","batterie","seuil_haut").'
-
'.number_format($bateau['details_bateau'][$i]['Soc_seuil_haut'], 0, ".", " ").' %
-
';
-
- // Seuil soc bas :
- echo '
-
'.Recuperer_texte("bateau","details","batterie","seuil_bas").'
-
'.number_format($bateau['details_bateau'][$i]['Soc_seuil_bas'], 0, ".", " ").' %
-
';
-
- }
-
-
- }
-
- break;
- }
-
- //===========================================================
- case "TB_BATEAUX_Circuits":
- {
- for ($i = 0; $i < $nb_entrees; $i ++)
- {
- echo '
'; // L'utilisation d'une div dédiée permet de donner une "hauteur" à l'ancre et ainsi dégager de dessous le bandeau de menu...
-
- echo '
-
-
- '.$bateau['details_bateau'][$i]['Nom'].'
-
-
-
-
-
Off';
- elseif ($bateau['details_bateau'][$i]['Etat_commande_carte'] == 2) echo 'A DEFINIR en fonction de la valeur de Mode_test de la carte de commande';
- elseif ($bateau['details_bateau'][$i]['Consigne'] == 0) echo 'capteur_off "> Off';
- else
- {
- echo 'capteur_on "> On';
- echo '
'.number_format($bateau['details_bateau'][$i]['Intensite'], 2, ".", " ").' A
';
- if (($bateau['details_bateau'][$i]['Consigne'] > 0) AND
- ($bateau['details_bateau'][$i]['Consigne'] < 100)) echo '['.$bateau['details_bateau'][$i]['Consigne'].' %]';
- }
- echo '
-
-
-
-
-
-
';
-
-
- // Graphique :
- if (($bateau['details_bateau'][$i]['Cle_primaire'] == $_SESSION['Bateaux']['id_entree_details_bateau']) AND
- ($_SESSION['Bateaux']['type_courbe_details_bateau'] != "Aucune"))
- {
- echo '
';
- echo '
';
- for($j = 0; $j < $nb_var; $j++){
- if ($_SESSION['Bateaux']['id_variable_details_bateau'] == $variables[$j]['Cle_primaire']){
- $titre_graphique = $variables[$j]['Nom'].' (en '.$variables[$j]['Unite'].')'.$titre_graphique;
- }
- }
- echo $titre_graphique;
- echo '
';
- if($_SESSION['Bateaux']['type_courbe_details_bateau'] == "Synthese" ){
- echo '
-
';
- }
- echo '
';
- if($_SESSION['Bateaux']['type_courbe_details_bateau'] == "Tous" || $_SESSION['Bateaux']['type_courbe_details_bateau'] == "Synthese"){
- echo '
';
-
- for($j = 0; $j < $nb_var; $j++){
- echo '
';
- }
- echo'
-
';
- }
- echo'
-
';
- echo '
-
-
';
- $_SESSION['Bateaux']['graphe_date_debut'] = '';
- $_SESSION['Bateaux']['graphe_date_fin'] = '';
- echo '
';
-
- // Etat :
- echo '
-
'.Recuperer_texte("bateau","details","circuits","etat").'
-
';
- if ($bateau['details_bateau'][$i]['Etat_commande_carte'] == 1) { echo Recuperer_texte("bateau","details","circuits","tension_faible"); }
- elseif ($bateau['details_bateau'][$i]['Etat_commande_carte'] == 2) { echo Recuperer_texte("bateau","details","circuits","cmd_man"); }
- else
- {
- switch($bateau['details_bateau'][$i]['Etat'])
- {
- case 1 : { echo Recuperer_texte("bateau","details","circuits","limitation"); break; }
- case 2 : { echo Recuperer_texte("bateau","details","circuits","protection"); break; }
- case 3 : { echo Recuperer_texte("bateau","details","circuits","disjonction"); break; }
- case 4 : { echo Recuperer_texte("bateau","details","circuits","court_circuit_batterie"); break; }
- case 5 : { echo Recuperer_texte("bateau","details","circuits","delestage"); break; }
- default: { echo Recuperer_texte("bateau","details","circuits","ok"); break; }
- }
- }
- echo '
-
';
-
- // Consigne :
- echo '
-
'.Recuperer_texte("bateau","details","circuits","etat").'
-
';
- if ($bateau['details_bateau'][$i]['Etat_commande_carte'] == 1) echo 'Off';
- elseif ($bateau['details_bateau'][$i]['Etat_commande_carte'] == 2) echo 'A DEFINIR en fonction de la valeur de Mode_test de la carte de commande';
- elseif ($bateau['details_bateau'][$i]['Consigne'] == 0) echo 'Off';
- else
- {
- echo 'On';
- if (($bateau['details_bateau'][$i]['Consigne'] > 0) AND
- ($bateau['details_bateau'][$i]['Consigne'] < 100)) echo '['.$bateau['details_bateau'][$i]['Consigne'].' %]';
- }
- echo '
-
';
-
- // Seuil de disjonction :
- echo '
-
'.Recuperer_texte("bateau","details","circuits","seuil_disjonction").'
-
'.number_format($bateau['details_bateau'][$i]['Intensite_seuil_haut'], 0, ".", " ").' A
-
';
-
- // Temporisation de disjonction :
- echo '
-
'.Recuperer_texte("bateau","details","circuits","temp_disjonction").'
-
'.number_format($bateau['details_bateau'][$i]['Intensite_seuil_haut_tempo']/1000, 1, ".", " ").' '.Recuperer_texte("bateau","details","circuits","sec").'
-
';
-
- }
-
- }
-
- break;
- }
-
- //===========================================================
- case "TB_BATEAUX_Reservoirs":
- {
- for ($i = 0; $i < $nb_entrees; $i ++)
- {
- echo '
'; // L'utilisation d'une div dédiée permet de donner une "hauteur" à l'ancre et ainsi dégager de dessous le bandeau de menu...
-
- echo '
-
-
- '.$bateau['details_bateau'][$i]['Nom'].'
-
-
-
-
-
'.Recuperer_texte("bateau","details","reservoirs","niveau").' :
- $bateau['details_bateau'][$i]['Niveau_seuil_haut']) echo " green";
- else echo " orange";
- echo '">'.number_format(($bateau['details_bateau'][$i]['Capacite'] * $bateau['details_bateau'][$i]['Niveau'])/100, 0, ".", " ").' '.Recuperer_texte("bateau","details","reservoirs","litres").'
- soit '.number_format($bateau['details_bateau'][$i]['Niveau'], 1, ".", " ").' %
-
-
-
'.Recuperer_texte("bateau","details","reservoirs","capacite_totale").' : '.$bateau['details_bateau'][$i]['Capacite'].' litres
-
-
-
-
-
';
-
- // Graphique :
- if (($bateau['details_bateau'][$i]['Cle_primaire'] == $_SESSION['Bateaux']['id_entree_details_bateau']) AND
- ($_SESSION['Bateaux']['type_courbe_details_bateau'] != "Aucune"))
- {
- echo '
';
- echo '
';
- for($j = 0; $j < $nb_var; $j++){
- if ($_SESSION['Bateaux']['id_variable_details_bateau'] == $variables[$j]['Cle_primaire']){
- $titre_graphique = $variables[$j]['Nom'].' (en '.$variables[$j]['Unite'].')'.$titre_graphique;
- }
- }
- echo $titre_graphique;
- echo '
';
- if($_SESSION['Bateaux']['type_courbe_details_bateau'] == "Synthese" ){
- echo '
-
';
- }
- echo '
';
- if($_SESSION['Bateaux']['type_courbe_details_bateau'] == "Tous" || $_SESSION['Bateaux']['type_courbe_details_bateau'] == "Synthese"){
- echo '
';
-
- for($j = 0; $j < $nb_var; $j++){
- echo '
';
- }
- echo'
-
';
- }
- echo'
-
';
- echo '
-
-
';
- $_SESSION['Bateaux']['graphe_date_debut'] = '';
- $_SESSION['Bateaux']['graphe_date_fin'] = '';
- echo '
';
-
- // // Seuil niveau haut :
- echo '
-
'.Recuperer_texte("bateau","details","reservoirs","seuil_haut").'
-
'.number_format($bateau['details_bateau'][$i]['Niveau_seuil_haut'], 0, ".", " ").' %
-
';
-
- // Seuil niveau bas :
- echo '
-
'.Recuperer_texte("bateau","details","reservoirs","seuil_bas").'
-
'.number_format($bateau['details_bateau'][$i]['Niveau_seuil_bas'], 0, ".", " ").' %
-
';
- }
- }
-
- break;
- }
-
- //===========================================================
- case "TB_BATEAUX_Capteurs":
- {
- for ($i = 0; $i < $nb_entrees; $i ++)
- {
- echo '
'; // L'utilisation d'une div dédiée permet de donner une "hauteur" à l'ancre et ainsi dégager de dessous le bandeau de menu...
-
- echo '
-
-
- '.$bateau['details_bateau'][$i]['Nom'].'
-
-
-
-
-
'.Recuperer_texte("bateau","details","capteurs","valeur").' :
- '.number_format($bateau['details_bateau'][$i]['Valeur'], $bateau['details_bateau'][$i]['Precision_affichage_accueil'], ".", " ").' '.$bateau['details_bateau'][$i]['Unite'].'
-
-
-
-
-
';
-
-
-
- // Graphique :
- if (($bateau['details_bateau'][$i]['Cle_primaire'] == $_SESSION['Bateaux']['id_entree_details_bateau']) AND
- ($_SESSION['Bateaux']['type_courbe_details_bateau'] != "Aucune"))
- {
- echo '
';
- echo '
';
- echo $titre_graphique;
- echo '
';
-
- if($_SESSION['Bateaux']['type_courbe_details_bateau'] == "Synthese"){
- echo '
';
- }
- echo '
-
-
';
- $_SESSION['Bateaux']['graphe_date_debut'] = '';
- $_SESSION['Bateaux']['graphe_date_fin'] = '';
- echo '
';
-
- // Valeur seuil haut :
- echo '
-
'.Recuperer_texte("bateau","details","capteurs","valeur_seuil_haut").'
-
'.number_format($bateau['details_bateau'][$i]['Valeur_seuil_haut'], $bateau['details_bateau'][$i]['Precision_affichage_accueil'], ".", " ").' '.$bateau['details_bateau'][$i]['Unite'].'
-
';
-
- // Valeur seuil bas :
- echo '
-
'.Recuperer_texte("bienvenue","details","capteurs","valeur_seuil_bas").'
-
'.number_format($bateau['details_bateau'][$i]['Valeur_seuil_bas'], $bateau['details_bateau'][$i]['Precision_affichage_accueil'], ".", " ").' '.$bateau['details_bateau'][$i]['Unite'].'
-
';
-
- // Etat :
- echo '
-
'.Recuperer_texte("bateau","details","capteurs","etat").'
-
';
- if ($bateau['details_bateau'][$i]['Etat'] == 0) { echo Recuperer_texte("bateau","details","capteurs","ok"); }
- elseif ($bateau['details_bateau'][$i]['Etat'] == 1) { echo Recuperer_texte("bateau","details","capteurs","alerte"); }
- elseif ($bateau['details_bateau'][$i]['Etat'] == 2) { echo Recuperer_texte("bateau","details","capteurs","alarme"); }
-
- echo '
-
';
- }
-
-
-
- // // Boutons graphique :
- // echo '
';
- }
-
- break;
- }
-
- //===========================================================
- case "TB_BATEAUX_Systeme":
- {
- // Informations provenant de TB_Systeme :
- // Version :
- echo '
-
'.Recuperer_texte("bateau","details","parsys","ver").'
-
'.$bateau['version'].'
-
';
-
- // Version modem :
- echo '
-
'.Recuperer_texte("bateau","details","parsys","verm").'
-
'.$bateau['details_bateau']['Version_soft_modem']['Valeur'].'
-
';
-
- // N° d'ICCID :
- echo '
-
'.Recuperer_texte("bateau","details","parsys","iccid").'
-
'.$bateau['details_bateau']['No_iccid']['Valeur'].'
-
';
-
- // N° d'IMEI :
- echo '
-
'.Recuperer_texte("bateau","details","parsys","imei").'
-
'.$bateau['details_bateau']['No_imei']['Valeur'].'
-
';
-
- // N° d'IMSI :
- echo '
-
'.Recuperer_texte("bateau","details","parsys","imsi").'
-
'.$bateau['details_bateau']['No_imsi']['Valeur'].'
-
';
-
- // Informations sur les cartes présentes à bord (TB_Cartes) :
- for ($i = 0; $i < $nb_cartes; $i ++)
- {
-
- echo '
'; // L'utilisation d'une div dédiée permet de donner une "hauteur" à l'ancre et ainsi dégager de dessous le bandeau de menu...
-
- echo '
';
-
- if ($cartes[$i]['Cle_primaire'] == $_SESSION['Bateaux']['id_entree_details_bateau']){
- echo '
';
- // Résistance de terminaison :
- echo '
-
'.Recuperer_texte("bateau","details","parsys","resistance").'
-
'.$cartes[$i]['libelle_resistance_terminaison'].'
-
';
-
- // Version matérielle :
- echo '
-
'.Recuperer_texte("bateau","details","parsys","ver_materielle").'
-
'.$cartes[$i]['Hardware_version'].'
-
';
-
- // Données spécifiques en fonction du type de carte :
- echo '
';
- switch($cartes[$i]['Type'])
- {
- //---------------------------
- case TYPE_CARTE_SP812:
- case TYPE_CARTE_SP8DC:
- {
- // Circuits affectés à ce module :
- for ($j = 0; $j < 8; $j++)
- {
- echo '
-
Circuit n° '.($j + 1).'
-
'.$cartes[$i]['circuits'][$j]['Nom'].'
-
';
- }
-
- break;
- }
-
- //---------------------------
- case TYPE_CARTE_SP4AC:
- {
- // Circuits affectés à ce module :
- for ($j = 0; $j < 4; $j++)
- {
- echo '
-
Circuit n° '.($j + 1).'
-
'.$cartes[$i]['circuits'][$j]['Nom'].'
-
';
- }
- break;
- }
-
- //---------------------------
- case TYPE_CARTE_COMPAGNON:
- case TYPE_CARTE_SBS1224:
- default : break;
- }
- echo '
';
- }
- }
-
- /* // Version complète de tous les champs de TB_Systeme :
- foreach($bateau['details_bateau'] as $key => $value)
- {
- echo '
-
- '.$key.'
-
-
- '.$value['Valeur'].'
-
';
- if (isset($value['Description']))
- {
- echo '
- '.$value['Description'].'
-
';
- }
- echo '
';
- }
- */
- break;
- }
-
-
//===========================================================
case "gerer_les_acces":
{
@@ -3095,11 +729,11 @@ echo "Requête = [ ".$requete."; ]
";
echo '
';
echo '
';
echo ' ';
- echo ' '.Recuperer_texte("bateau","details","acces","validite").' ';
- echo ' '.Recuperer_texte("bateau","details","acces","shipmember").' ';
- echo ' '.Recuperer_texte("bateau","details","acces","cree_par").' ';
- echo ' '.Recuperer_texte("bateau","details","acces","type_profil").' ';
- echo ' '.Recuperer_texte("bateau","details","acces","fin_validite").' ';
+ echo ' '.t("Validite").' ';
+ echo ' '.t("Shipmember").' ';
+ echo ' '.t("Créé_par").' ';
+ echo ' '.t("Type de profil").' ';
+ echo ' '.t("Fin de validité").' ';
echo ' ';
echo ' ';
if ($utilisateur_acces_nb == 0) echo ' 0 shipmember / acces ';
@@ -3137,17 +771,17 @@ echo "Requête = [ ".$requete."; ] ";
echo '';
@@ -3173,9 +807,10 @@ echo "Requête = [ ".$requete."; ] ";
}
//===========================================================
+ // 'resume' (et toute ancienne valeur de session) :
default:
{
- echo ''.Recuperer_texte("bateau","details","autres","autre").'
';
+ echo ''.t("La consultation des données du bateau sera disponible prochainement.").'
';
break;
}
}
@@ -3201,42 +836,12 @@ echo "Requête = [ ".$requete."; ] ";
echo '';
switch($_SESSION['Bateaux']['type_details_bateau'])
{
- case 'TB_BATEAUX_Carte':
- {
- echo Recuperer_texte("bateau","details","help_note","carte").Ajouter_lien_modif("bateau","details","help_note","carte");
- break;
- }
- case 'TB_BATEAUX_Batteries':
- {
- echo Recuperer_texte("bateau","details","help_note","batteries").Ajouter_lien_modif("bateau","details","help_note","batteries");
- break;
- }
- case 'TB_BATEAUX_Circuits':
- {
- echo Recuperer_texte("bateau","details","help_note","circuits").Ajouter_lien_modif("bateau","details","help_note","circuits");
- break;
- }
- case 'TB_BATEAUX_Reservoirs':
- {
- echo Recuperer_texte("bateau","details","help_note","reservoirs").Ajouter_lien_modif("bateau","details","help_note","reservoirs");
- break;
- }
- case 'TB_BATEAUX_Capteurs':
- {
- echo Recuperer_texte("bateau","details","help_note","capteurs").Ajouter_lien_modif("bateau","details","help_note","capteurs");
- break;
- }
- case 'TB_BATEAUX_Systeme':
- {
- echo Recuperer_texte("bateau","details","help_note","systeme").Ajouter_lien_modif("bateau","details","help_note","systeme");
- break;
- }
case 'gerer_les_acces':
- {
- echo Recuperer_texte("bateau","details","help_note","acces").Ajouter_lien_modif("bateau","details","help_note","acces");
- break;
- }
-
+ {
+ echo t("Aide accès");
+ break;
+ }
+ default: break;
}
echo '
';
echo '';
@@ -3306,39 +911,6 @@ echo "Requête = [ ".$requete."; ] ";
';
- //----------------------------------------
- // Carte :
- echo '
-
- Carte ShipBase installée à bord
-
-
- ';
- for ($i=0; $i<$nb_cartes; $i++)
- {
- echo '
- '.$cartes[$i]['No_serie'].'';
- if (strlen($cartes[$i]['Adresse_mac']) == 17) echo '['.$cartes[$i]['Adresse_mac'].']';
- echo ' ';
- }
- echo '
-
-
';
-
- //----------------------------------------
- // Date d'installation de la carte ShipBase à bord :
- echo '
-
- Date d\'installation de la carte ShipBase à bord
-
-
-
-
-
';
-
//----------------------------------------
// Commentaires :
echo '
@@ -3431,9 +1003,6 @@ Pied_de_page();
}
}
- $(window).resize(function(){
- drawChart();
- });
function closeEditAccess(){
document.getElementById('popUpAcces').style.display = "none";
@@ -3458,228 +1027,4 @@ Pied_de_page();
document.getElementById('fin_validiteForm').value = acces['Fin_validite'].substring(0,10);
}
- function calculateDistance(lat1, lon1, lat2, lon2) {
- const earthRadius = 6371;
-
- const deltaLat = (lat2 - lat1) * (Math.PI / 180);
- const deltaLon = (lon2 - lon1) * (Math.PI / 180);
-
- const a = Math.sin(deltaLat / 2) ** 2 + Math.cos(lat1 * (Math.PI / 180)) * Math.cos(lat2 * (Math.PI / 180)) * Math.sin(deltaLon / 2) ** 2;
- const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
-
- const distance = earthRadius * c;
-
- // 2eme méthode, même résultat
- // a1 = Math.sin(lat1 * (Math.PI / 180)) * Math.sin(lat2 * (Math.PI / 180));
- // a2 = Math.cos(lat1 * (Math.PI / 180)) * Math.cos(lat2 * (Math.PI / 180));
- // a3 = Math.cos(lon2 * (Math.PI / 180) - lon1 * (Math.PI / 180));
- // a4 = a1 + a2 * a3;
- // a5 = Math.acos(a4);
- // distance = a5 * earthRadius;
-
- return distance;
- }
- // MAP
- var nb_data = ;
-
- if (nb_data > 0) {
- var data_map = 0) ? json_encode($data_map) : '[]'; ?>;
- // Additional JavaScript code using data_map can follow here
-
- // Custom scale control for displaying nautical miles
- var nauticalScaleControl = L.control.scale({
- position: 'bottomleft',
- imperial: false
- });
-
- nauticalScaleControl.options.update = function (options) {
- var maxMeters = this._map.options.crs.getSize(this._map.getPixelBounds()).x,
- maxNMiles = maxMeters / 1852;
-
- this._updateScale(maxNMiles, 'NM', this._getRoundNum(maxNMiles, options));
- };
-
- var carte = L.map('maCarte').setView([data_map[nb_data-1]['latitude'],data_map[nb_data-1]['longitude']],10);
-
- //----------------------------------
- // Fond de carte :
- // Très épurée :
- L.tileLayer('https://tiles.stadiamaps.com/tiles/alidade_smooth/{z}/{x}/{y}{r}.png', {
- maxZoom: 20,
- attribution: '
© Stadia Maps |
© OpenMapTiles |
© OpenStreetMap '
- }).addTo(carte);
-
- //----------------------------------
- // Couches additionnelles :
- // Open Sea Map :
- L.tileLayer('https://tiles.openseamap.org/seamark/{z}/{x}/{y}.png', {
- attribution: '|
© OpenSeaMap '
- }).addTo(carte);
-
- nauticalScaleControl.addTo(carte);
-
- var circles = {};
- var lines = [];
-
- var distance_total = 0;
- var distance24h = 0;
- var now = new Date();
-
- for (var i = 0; i < nb_data; i++)
- {
- if (data_map[i]['latitude'] != null && data_map[i]['longitude'] != null)
- {
- var circle = L.circle([data_map[i]['latitude'], data_map[i]['longitude']],
- {
- //color: '#004563',
- color: data_map[i]['couleur'],
- opacity: data_map[i]['opacite'],
- fillColor: '#75B9DA',
- fillOpacity: 0.7,
- radius: 50
- }).addTo(carte);
- circle.bindPopup(data_map[i]['date'] + '
' + data_map[i]['latitude_dms'] + '
' + data_map[i]['longitude_dms']);
-
- if (i == (nb_data-1))
- {
- var myIcon = L.icon({
- iconUrl: "images/location-pointer.png",
- iconSize: [30, 30],
- popupAnchor: [0, -30],
- });
- if (!(nb_data == 1 && data_map[i]['latitude'] == 45.735237 && data_map[i]['longitude'] == 4.804827)){
- var marker = L.marker([data_map[i]['latitude'], data_map[i]['longitude']]).addTo(carte);
- marker.bindPopup(data_map[i]['date'] + '
' + data_map[i]['latitude_dms'] + '
' + data_map[i]['longitude_dms']);
- }
- }
- circles['circle' + i] = circle;
-
- if (i > 0)
- {
- var previousCircle = circles['circle' + (i - 1)];
- if (previousCircle!= null)
- {
- var line = L.polyline([previousCircle.getLatLng(), circle.getLatLng()], {
- //(((data_map[i]['jour'] % 2) == 0) ? color: '#004563' : color: '#554563')
- //color: '#004563'
- color: data_map[i]['couleur'],
- opacity: data_map[i]['opacite'],
- }).addTo(carte);
- lines.push(line);
-
- // Calculate distance
- var lat1 = data_map[i - 1]['latitude'];
- var lon1 = data_map[i - 1]['longitude'];
- var lat2 = data_map[i]['latitude'];
- var lon2 = data_map[i]['longitude'];
-
- var distance = calculateDistance(lat1, lon1, lat2, lon2); // Implement the distance calculation function
- data_map[i]['distance'] = distance;
-
- distance_total += distance;
- }
- }
- }
- }
-
- //Initialiser l'affichage avec la distance totale sur 90jrs
-
- // A DECOMMENTER !!!!
- // document.getElementById("distance").innerText = (distance_total*1.852).toFixed(2)+" NM";
- // document.getElementById("date_debut_croisire").innerText = data_map[1]['date'];
- // document.getElementById("date_fin_croisire").innerText = data_map[nb_data-1]['date'];
-
- if(nb_data > 1){
- // Convert date strings to timestamps
- data_map.forEach(function(item) {
- item.timestamp = Date.parse(item.raw_date) / 1000;
- });
- // Initialize the slider
- var dateSlider = document.getElementById('dateSlider');
- noUiSlider.create(dateSlider, {
- range: {
- min: data_map[1]['timestamp'], // Use the timestamp directly
- max: data_map[nb_data-1]['timestamp'] // Use the timestamp directly
- },
- step: 1,
- start: [data_map[1]['timestamp'], data_map[nb_data-1]['timestamp']], // Use the timestamp directly
- connect: true,
- tooltips: [true, true],
- format: {
- to: function (value) {
- return new Date(value * 1000).toISOString().replace("T"," ").slice(0,19)+"Z"; // The Z is needed so the algo knows that the dates are in UTC, if we remove it it won't work correctly, we will lose data for the first and last 2 hours
- },
- from: function (value) {
- return value;
- }
- }
- });
-
- // Put right date on the bottom
- const lastElement = $('.noUi-tooltip:last');
- lastElement[0].style.bottom="-40px";
-
- // Handle slider change event
- dateSlider.noUiSlider.on('slide', function (values) {
- var startDate = new Date(values[0]);
- var endDate = new Date(values[1]);
-
- var totalDistance = 0; // Initialize the total distance for the selected date range
- var debut_croisiere = 0;
- for (var i = 0; i < nb_data; i++) {
- var currentDate = new Date(data_map[i]['timestamp'] * 1000);
- if (currentDate >= startDate && currentDate <= endDate) {
- if(debut_croisiere == 0) debut_croisiere = data_map[i]['date']; // Date début croisière, premier point dans l'intervalle
- fin_croisiere = data_map[i]['date']; // Date fin croisière, dernier point dans l'intervalle
- if (i > 0) {
- (typeof data_map[i]['distance'] !== 'undefined' && data_map[i]['distance'] !== null) ? totalDistance += data_map[i]['distance'] : totalDistance = totalDistance; // Add the distance to the total
- }
- if (circles['circle' + i]) {
- circles['circle' + i].addTo(carte);
- }
- if (i > 0 && lines[i - 1]) {
- lines[i - 1].addTo(carte);
- }
- } else {
- if (circles['circle' + i]) {
- circles['circle' + i].removeFrom(carte);
- }
- if (i > 0 && lines[i - 1]) {
- lines[i - 1].removeFrom(carte);
- }
- }
- }
- // Update the table
-
- // A DECOMMENTER !!!!
- // document.getElementById("distance").innerText = (totalDistance * 1.852).toFixed(2) + " NM";
- // document.getElementById("date_debut_croisire").innerText = debut_croisiere;
- // document.getElementById("date_fin_croisire").innerText = fin_croisiere;
- });
-
-
- }
-
- //Calculer la distance pour les derniers 24hrs
- var totalDistance24h = 0; // Initialize total distance for the past 24 hours
- var twentyFourHoursAgo = new Date() - 24 * 60 * 60 * 1000; // Calculate the timestamp for 24 hours ago
-
- for (var i = 2; i < nb_data; i++) {
- var currentDate = new Date(data_map[i]['timestamp'] * 1000);
- if (currentDate >= twentyFourHoursAgo) { // Check if the data point is within the past 24 hours
- if (i > 0) {
- if (typeof data_map[i]['distance'] !== 'undefined' && data_map[i]['distance'] !== null) {
- totalDistance24h += data_map[i]['distance']; // Add the distance to the total
- }
- }
- }
- }
-
- // A DECOMMENTER !!!!
- // document.getElementById("distance24h").innerText = (totalDistance24h*1.852).toFixed(2)+" NM";
- }
-
-
-
-
\ No newline at end of file
diff --git a/sql/date_derniere_maj.sql b/sql/date_derniere_maj.sql
new file mode 100644
index 0000000..5835af4
--- /dev/null
+++ b/sql/date_derniere_maj.sql
@@ -0,0 +1,13 @@
+-- ============================================================================
+-- TB_Bateaux.Date_derniere_maj : redéfinition (synthèse §47)
+-- Date-heure UTC de génération (par le CM5) de l'archive la plus récente
+-- chargée avec succès. Mise à jour par cron_archivage.php et
+-- cron_quarantaine.php (Mettre_a_jour_derniere_archive). NULL = aucune
+-- archive chargée à ce jour (remplace l'ancienne valeur sentinelle
+-- 2020-01-01 du modèle CM4).
+-- ============================================================================
+ALTER TABLE TB_Bateaux
+ MODIFY COLUMN Date_derniere_maj DATETIME NULL DEFAULT NULL
+ COMMENT 'Date-heure UTC de génération (CM5) de l''archive la plus récente chargée avec succès - NULL si aucune';
+
+UPDATE TB_Bateaux SET Date_derniere_maj = NULL WHERE Date_derniere_maj < '2020-01-02';