Relecture code
This commit is contained in:
parent
be678235fc
commit
6c8a613cdf
File diff suppressed because one or more lines are too long
@ -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
9
src/messages.js
Normal 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>"
|
||||||
|
};
|
@ -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();
|
Loading…
Reference in New Issue
Block a user