Relecture code

This commit is contained in:
Fabrice PENHOËT 2023-12-09 09:50:12 +01:00
parent be678235fc
commit 6c8a613cdf
4 changed files with 34 additions and 21 deletions

File diff suppressed because one or more lines are too long

View File

@ -12,15 +12,13 @@
<body> <body>
<header><h1>XPath Trainer</h1></header> <header><h1>XPath Trainer</h1></header>
<main> <main>
<form id="trainerForm" with="90%"> <form id="trainerForm" with="90%">
<fieldset> <fieldset>
<label for="myFile">Sélectionnez votre fichier XML : </label><input type="file" id="myFile" name="myFile" accept=".xml"><br> <label for="myFile">Sélectionnez votre fichier XML : </label><input type="file" id="myFile" name="myFile" accept=".xml"><br>
<label>XPath à tester : </label><input type="text" id="myXPath" name="myXPath" width="1000px"> <input type="button" id="runTest" name="runTest" value="Lancez le test"><br> <label>XPath à tester : </label><input type="text" id="myXPath" name="myXPath" size="150px"> <input type="submit" id="runTest" name="runTest" value="Lancez le test"><br>
</fieldset> </fieldset>
<div id="result"></div> <iframe id="display" src="" style="width:65%;float:left; margin:2em;" height="800px"></iframe>
<iframe id="display" src="" width="1000px" height="600px"> <div id="result" style="width:30%: float::right"></div>
</iframe>
</form> </form>
</main> </main>
</body> </body>

9
src/messages.js Normal file
View File

@ -0,0 +1,9 @@
module.exports =
{
emptyXPathError: "<p>Votre XPath est vide !</p>",
exceptionError: "<p>Bug imprévu.</p>",
gitSources: "Hello, les dev !\nLe code source TypeScript utilisé pour faire fonctionner cette page est lisible ici : :\nhttps://forge.chapril.org/Fab_Blab/xPathTrainer/src/branch/master/src/xpathTrainer.ts",
needXMLFile : "Commencer pour sélectionner un fichier",
needXPath: "Saisissez votre XPath",
notXMLError: "<p>Le fichier que vous avez sélectionné ne semble pas être un fichier XML.</p>"
};

View File

@ -1,19 +1,22 @@
const messages=require("./messages.js");
const initialise = () => const initialise = () =>
{ {
const myForm=document.getElementById("trainerForm") as HTMLInputElement;
const myFile=document.getElementById("myFile") as HTMLInputElement;
const myXPath=document.getElementById("myXPath") as HTMLInputElement;
const testButton=document.getElementById("runTest") as HTMLButtonElement;
const myIframe=document.getElementById("display") as HTMLIFrameElement;
const divResult=document.getElementById("result") as HTMLDivElement;
const xpath=require('xpath');
try try
{ {
const myFile=document.getElementById("myFile") as HTMLInputElement; // Accueil : doit choisir un fichier avant de pouvoir tester un XPath
const myXPath=document.getElementById("myXPath") as HTMLInputElement;
const testButton=document.getElementById("runTest") as HTMLButtonElement;
const myIframe=document.getElementById("display") as HTMLIFrameElement;
const divResult=document.getElementById("result") as HTMLDivElement;
myXPath.disabled=true; myXPath.disabled=true;
testButton.disabled=true; testButton.disabled=true;
myXPath.placeholder="Commencer pour sélectionner un fichier"; myXPath.placeholder=messages.needXMLFile;
myIframe.style.display="none"; myIframe.style.display="none";
const xpath=require('xpath');
const dom=require('@xmldom/xmldom').DOMParser; const dom=require('@xmldom/xmldom').DOMParser;
myFile.addEventListener("change", function(e) myFile.addEventListener("change", function(e)
@ -26,7 +29,7 @@ const initialise = () =>
// selectedFiles[0].type ne fonctionne pas avec certains navigateurs (Fennec), donc... : // selectedFiles[0].type ne fonctionne pas avec certains navigateurs (Fennec), donc... :
const extension=selectedFiles[0].name.substring(selectedFiles[0].name.lastIndexOf(".")+1); const extension=selectedFiles[0].name.substring(selectedFiles[0].name.lastIndexOf(".")+1);
if(extension !== "xml") if(extension !== "xml")
divResult.innerHTML=`<p>Le fichier que vous avez sélectionné ne semble pas être un fichier XML.</p>`; divResult.innerHTML=messages.notXMLError;
else else
{ {
// Création d'un fichier XML temporaire que l'on va charger dans l'iframe : // Création d'un fichier XML temporaire que l'on va charger dans l'iframe :
@ -41,16 +44,19 @@ const initialise = () =>
myIframe.src=iframeURL; myIframe.src=iframeURL;
myIframe.style.display="block"; myIframe.style.display="block";
myXPath.disabled=false; myXPath.disabled=false;
myXPath.placeholder=messages.needXPath;
testButton.disabled=false; testButton.disabled=false;
myXPath.placeholder="Saisir l'XPath à tester"; myXPath.value="";
myXPath.placeholder=messages.needXPath;
// Et on peut commencer à jouer avec ! // Et on peut commencer à jouer avec !
const doc=new dom().parseFromString(xmlDatas, 'text/xml'); const doc=new dom().parseFromString(xmlDatas, 'text/xml');
testButton.addEventListener("click", (e) => myForm.addEventListener("submit", (e) =>
{ {
e.preventDefault();
let xPathTested=myXPath.value.trim(); let xPathTested=myXPath.value.trim();
if(xPathTested == "") if(xPathTested == "")
divResult.innerHTML=`<p>XPath vide !</p>`; divResult.innerHTML=messages.emptyXPathError;
else else
{ {
const nodes=xpath.select(xPathTested , doc); const nodes=xpath.select(xPathTested , doc);
@ -69,9 +75,9 @@ const initialise = () =>
} }
catch(e) catch(e)
{ {
divResult.innerHTML=messages.exceptionError;
console.error(e); console.error(e);
document.getElementById("result")!.innerHTML=`<p>Désolé, mais un problème technique empêche le fonctionnement normal de cette page.</p>`;
} }
} }
console.log("Hello, les dev !\nLe code source TypeScript utilisé pour faire fonctionner cette page est lisible ici : :\nhttps://forge.chapril.org/Fab_Blab/xPathTrainer/src/branch/master/src/xpathTrainer.ts"); console.log(messages.gitSources);
initialise(); initialise();