Adaptation du code à la nouvelle version de la classe principale du module.

This commit is contained in:
Fabrice PENHOËT 2021-10-26 18:02:43 +02:00
parent 739b83f365
commit 80b90f98a5
7 changed files with 18 additions and 20 deletions

View File

@ -18,7 +18,7 @@ export class Pagination implements Paginations
// L'élément du DOM devant recevoir la liste des pages doit exister
constructor(converter: FreeDatas2HTML, pagesElt: DOMElement, pagesName="Pages")
{
if(converter.fields === undefined)
if(converter.fields.length === 0)
throw new Error(errors.paginationNeedDatas);
else
{
@ -114,13 +114,13 @@ export class Pagination implements Paginations
}
// Création du <select> permettant de se déplacer entre les pages
public pages2HTML(nbTotal:number) : void
public pages2HTML() : void
{
if (this._selectedValue === undefined || nbTotal <= this._selectedValue)
if (this._selectedValue === undefined || this._converter.nbDatasValid <= this._selectedValue)
this.pages.displayElement.eltDOM!.innerHTML=""; // "!" car displayElement testé par le constructeur
else
{
let nbPages=Math.ceil(nbTotal/this._selectedValue);
let nbPages=Math.ceil(this._converter.nbDatasValid/this._selectedValue);
let selectorsHTML="<label for='freeDatas2HTMLPagesSelector'>"+this.pages.name+"</label><select name='freeDatas2HTMLPagesSelector' id='freeDatas2HTMLPagesSelector'>";
this.pages.values=[];
for(let j=1; j <= nbPages; j++)

View File

@ -17,7 +17,7 @@ export class Selector implements Selectors
// Le champ duquel le sélecteur tire ses données doit exister ?
constructor(converter: FreeDatas2HTML, datasFieldNb: number, elt: DOMElement, separator?: string)
{
if(converter.fields === undefined || converter.datas.length === 0)
if(converter.fields.length === 0 || converter.datas.length === 0)
throw new Error(errors.filterNeedDatas);
else if(! converter.checkFieldExist(Number(datasFieldNb)))
throw new Error(errors.selectorFieldNotFound);

View File

@ -13,7 +13,7 @@ export class SortingField implements SortingFields
// Injection de la classe principale, mais uniquement si les noms des champs ont été importés et affichés correctement
constructor(converter: FreeDatas2HTML, datasFieldNb: number, fieldsDOMSelector: string="th")
{
if(converter.fields === undefined)
if(converter.fields.length === 0)
throw new Error(errors.sortingFieldNeedDatas);
else if(! converter.checkFieldExist(datasFieldNb))
throw new Error(errors.sortingFieldNotFound);

View File

@ -56,7 +56,7 @@ const initialise = async () =>
pagination.options2HTML();
// Affichage initial
converter.datasCounter={ id:"compteur" };
converter.datasCounterElt={ id:"compteur" };
await converter.run();
// Création d'outils permettant de filtrer les données des champs de données

View File

@ -38,7 +38,7 @@ const initialise = async () =>
pagination.options2HTML();
// Affichage initial
converter.datasCounter={ id:"compteur" };
converter.datasCounterElt={ id:"compteur" };
await converter.run();
// Création d'un filtre par auteur :

View File

@ -39,7 +39,7 @@ const initialise = async () =>
pagination.options2HTML();
// Affichage initial
converter.datasCounter={ id:"compteur" };
converter.datasCounterElt={ id:"compteur" };
await converter.run();
// Création d'un filtre par auteur :

View File

@ -149,42 +149,40 @@ describe("Test de la pagination.", () =>
it("S'il n'y a pas de pagination définie, le sélecteur de pages ne doit pas être proposé.", () =>
{
pagination.selectedValue=undefined;
pagination.pages2HTML(118);
pagination.pages2HTML();
const selectElement=document.getElementById("pages").innerHTML;
expect(selectElement).toEqual("");
});
it("S'il n'y pa plus de données que le nombre de lignes par page, le sélecteur de pages ne doit pas être proposé.", () =>
{
pagination.pages2HTML(10);
pagination.selectedValue=500;
pagination.pages2HTML();
const selectElement=document.getElementById("pages").innerHTML;
expect(selectElement).toEqual("");
});
it("Si il y a plus de données que le nombre de lignes autorisées par page, un <select> listant les pages doit être affiché.", () =>
it("S'il y a plus de données que le nombre de lignes autorisées par page, un <select> listant les pages doit être affiché.", () =>
{
pagination.pages2HTML(11);
let selectElement=document.getElementById("pages").innerHTML;
expect(selectElement).toEqual(fixtures.selectorFor2Pages);
pagination.pages2HTML(118);
selectElement=document.getElementById("pages").innerHTML;
pagination.pages2HTML();
const selectElement=document.getElementById("pages").innerHTML;
expect(selectElement).toEqual(fixtures.selectorForManyPages);
});
it("Après chaque actualisation de la liste de pages, la valeur sélectionnée est remise à 0.", () =>
{
pagination.pages2HTML(11);
pagination.pages2HTML();
let selectElement=document.getElementById("freeDatas2HTMLPagesSelector") as HTMLInputElement;
expect(pagination.pages.selectedValue).toEqual(1);
pagination.pages.selectedValue=2;
pagination.pages2HTML(11);
pagination.pages2HTML();
selectElement=document.getElementById("freeDatas2HTMLPagesSelector") as HTMLInputElement;
expect(pagination.pages.selectedValue).toEqual(1);
});
it("La manipulation du sélecteur de pages doit enregistrer la valeur sélectionnée et appeler la fonction actualisant l'affichage.", () =>
{
pagination.pages2HTML(31);
pagination.pages2HTML();
spyOn(converter, "refreshView");
const selectElement=document.getElementById("freeDatas2HTMLPagesSelector") as HTMLInputElement;
selectElement.value="4";