180 lines
8.0 KiB
QML
180 lines
8.0 KiB
QML
//========================================================================================================================================================================
|
|
// HOME_ATTENTE.QML (shipheart_wasm)
|
|
// Affiche un fond d'écran standard mais avec rien dedans, en attendant que l'accès à
|
|
// la BDD permette de déterminer la page d'accueil à charger. Sans cette page, la
|
|
// StackView affiche une page toute blanche pendant 1-2s au démarrage.
|
|
//
|
|
// SIMPLIFIÉ par rapport au fichier natif dont il est issu : toute la notion
|
|
// "écran déporté"/ShipRS (module distant avec son propre écran physique à taille
|
|
// fixe connue, synchronisation de fichiers via rsync/SSH) est retirée - elle n'a
|
|
// aucun sens pour un client web wasm, qui tourne toujours dans un navigateur, jamais
|
|
// comme module matériel dédié. Cf synthèse, chantier "responsive".
|
|
//========================================================================================================================================================================
|
|
import QtQuick 2.12
|
|
import QtQuick.Controls 2.12
|
|
|
|
import qt.koriolan.shipheart 1.0
|
|
|
|
|
|
|
|
Shipheart_page {
|
|
id: page_home_attente
|
|
|
|
|
|
//==============================================================
|
|
// Recherche de la Home Page à utiliser :
|
|
//==============================================================
|
|
Timer {
|
|
id: timer_recherche_home_page
|
|
interval: 300
|
|
running: true
|
|
repeat: true
|
|
onTriggered: {
|
|
|
|
console.log("Adresse de ShipBase = " + AppInfo.adresse_shipbase)
|
|
console.log("Etat de la connexion à la BDD = " + AppInfo.etat_connexion_bdd)
|
|
|
|
//----------------------------------------------------
|
|
// Toujours "wasm" pour ce client - PAS "shipbase" : cette valeur
|
|
// distincte empêche les bips physiques et la mise en veille de
|
|
// l'écran physique du CM5 (Shipheart_page.qml) de se déclencher
|
|
// à tort depuis un client web distant.
|
|
//----------------------------------------------------
|
|
shipheart_type_installation = shipheart_type_installation_wasm;
|
|
|
|
// Constantes de mise en page génériques (sans lien avec le concept
|
|
// écran déporté/ShipRS retiré ci-dessus - utilisées dans toute
|
|
// l'application) :
|
|
shipheart_hauteur_bandeau_haut = 60
|
|
shipheart_hauteur_titre_2 = 50
|
|
shipheart_hauteur_bandeau_bas = 80
|
|
shipheart_hauteur_clavier = 305
|
|
|
|
//----------------------------------------------------
|
|
// Recherche de la version de ShipBase :
|
|
//----------------------------------------------------
|
|
init_shipheart_version_cm();
|
|
|
|
//----------------------------------------------------
|
|
// Recherche du thème d'affichage :
|
|
//----------------------------------------------------
|
|
init_shipheart_theme();
|
|
|
|
|
|
//----------------------------------------------------
|
|
// Première page à afficher selon le client :
|
|
//----------------------------------------------------
|
|
var shipheart_nom_initial_page = "";
|
|
switch (Number(init_shipheart_specifique_client()))
|
|
{
|
|
//---------------------------------
|
|
default:
|
|
case shipheart_specifique_client_tous:
|
|
shipheart_nom_initial_page = "qrc:/home_accueil.qml"
|
|
break;
|
|
|
|
//---------------------------------
|
|
case shipheart_specifique_client_suncy:
|
|
shipheart_nom_initial_page = "qrc:/home_suncy.qml";
|
|
break;
|
|
}
|
|
|
|
if ((shipheart_generation_shipbase != shipheart_generation_shipbase_inconnue) && // A priori, ne devrait pas arriver mais si on n'a pas trouvé, on va recommencer la recherche après une période de timer.
|
|
(shipheart_nom_initial_page !== ""))
|
|
{
|
|
timer_recherche_home_page.stop(); // Arrêt du timer car il n'est plus utile maintenant
|
|
stackView.push(shipheart_nom_initial_page)
|
|
}
|
|
}
|
|
}
|
|
|
|
//==============================================================
|
|
// Réactivation de la recherche lors d'un retour sur cette page :
|
|
//==============================================================
|
|
StackView.onActivated: {
|
|
timer_recherche_home_page.start(); // Relance le timer pour faire une nouvelle recherche
|
|
}
|
|
|
|
//==============================================================
|
|
// Zone d'affichage :
|
|
//==============================================================
|
|
Rectangle {
|
|
anchors.fill: parent
|
|
color: "transparent" // C'est la ligne importante qui permet de ne pas avoir un "flash" blanc au démarrage
|
|
}
|
|
|
|
//============================================================================
|
|
// Fonction : Récupère dans la BDD la valeur de 'Specifique_client' dans
|
|
// TB_Configuration. sépare chaque champs (séparés par des ';').
|
|
// Met à jour la propriété globale 'shipheart_specifique_client'
|
|
// avec toutes les valeurs. Renvoi la première.
|
|
//============================================================================
|
|
function init_shipheart_specifique_client()
|
|
{
|
|
var req, res
|
|
|
|
req = 'SELECT Valeur FROM TB_Configuration WHERE Nom="Specifique_client" ';
|
|
res = bdd.requete_unique(req);
|
|
|
|
shipheart_specifique_client = res[0].split(';')
|
|
|
|
return(shipheart_specifique_client[0]);
|
|
}
|
|
|
|
//============================================================================
|
|
// Fonction : Récupère dans la BDD la valeur de 'Theme' dans
|
|
// TB_Configuration et met à jour la propriété globale 'shipheart_theme'.
|
|
//============================================================================
|
|
function init_shipheart_theme()
|
|
{
|
|
var req, res;
|
|
var nb;
|
|
|
|
chargement_theme();
|
|
|
|
req = 'SELECT Valeur FROM TB_Configuration WHERE Nom="Fichier_image_accueil" ';
|
|
nb = bdd.requete(req);
|
|
if (nb > 0)
|
|
{
|
|
res = bdd.lecture_ligne();
|
|
if (!res.isEmpty)
|
|
{
|
|
shipheart_fichier_image_accueil = res[0];
|
|
console.log("Le fichier d'image d'accueil est : [" + shipheart_fichier_image_accueil + "]");
|
|
}
|
|
else
|
|
{
|
|
shipheart_fichier_image_accueil = "";
|
|
console.log("/!\\ Erreur dans le traitement de la requête de recherche de fichier d'image d'accueil. Valeur par défaut utilisée.");
|
|
}
|
|
}
|
|
else
|
|
{
|
|
shipheart_fichier_image_accueil = "";
|
|
console.log("/!\\ La requête de recherche de fichier d'image d'accueil a échoué. Valeur par défaut utilisée.");
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
//============================================================================
|
|
// Fonction : Récupère dans la BDD la valeur de 'Version_cm' dans
|
|
// TB_Systeme et met à jour la propriété globale 'shipheart_generation_shipbase'.
|
|
//============================================================================
|
|
function init_shipheart_version_cm()
|
|
{
|
|
var req, res
|
|
|
|
req = 'SELECT Valeur FROM TB_Systeme WHERE Nom="Version_cm" ';
|
|
res = bdd.requete_unique(req);
|
|
|
|
if (res[0].indexOf("CM3+") !== -1) shipheart_generation_shipbase = shipheart_generation_shipbase_v1;
|
|
else if (res[0].indexOf("CM4") !== -1) shipheart_generation_shipbase = shipheart_generation_shipbase_v2;
|
|
else if (res[0].indexOf("CM5") !== -1) shipheart_generation_shipbase = shipheart_generation_shipbase_v3;
|
|
else shipheart_generation_shipbase = shipheart_generation_shipbase_inconnue;
|
|
console.log("Génération de ShipBase = " + shipheart_generation_shipbase);
|
|
|
|
return;
|
|
}
|
|
}
|