Bebug problème pagination perdue suite au réaffichage.
This commit is contained in:
parent
488c357e21
commit
96db98ae4a
@ -217,7 +217,7 @@ export class FreeDatas2HTML
|
|||||||
|
|
||||||
// Actualise l'affichage des données.
|
// Actualise l'affichage des données.
|
||||||
// Méthode également appelée par les autres classes.
|
// Méthode également appelée par les autres classes.
|
||||||
public refreshView() : void
|
public refreshView(paginationSelected=false) : void
|
||||||
{
|
{
|
||||||
if(this._fields.length === 0 || this._datasViewElt === undefined)
|
if(this._fields.length === 0 || this._datasViewElt === undefined)
|
||||||
throw new Error(errors.converterRefreshFail);
|
throw new Error(errors.converterRefreshFail);
|
||||||
@ -241,7 +241,8 @@ export class FreeDatas2HTML
|
|||||||
field.field2HTML();
|
field.field2HTML();
|
||||||
|
|
||||||
// Tout réaffichage peut entraîner une modification du nombre de pages (évolution filtres, etc.)
|
// Tout réaffichage peut entraîner une modification du nombre de pages (évolution filtres, etc.)
|
||||||
if(this.pagination !== undefined)
|
// Mais ne pas recharger si l'appel vient du choix de la page à afficher
|
||||||
|
if(this.pagination !== undefined && !paginationSelected)
|
||||||
this.pagination.pages2HTML();
|
this.pagination.pages2HTML();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -132,14 +132,17 @@ export class Pagination implements Paginations
|
|||||||
this.pages.displayElement.eltDOM!.innerHTML=selectorsHTML;
|
this.pages.displayElement.eltDOM!.innerHTML=selectorsHTML;
|
||||||
|
|
||||||
let selectElement=document.getElementById("freeDatas2HTMLPagesSelector") as HTMLInputElement;
|
let selectElement=document.getElementById("freeDatas2HTMLPagesSelector") as HTMLInputElement;
|
||||||
// Réinitialisé, car dans le cas d'un réaffichage, les données et leur nombre peuvent changer.
|
|
||||||
|
// Réinitialisé, car dans le cas d'un réaffichage lancé ailleurs, les données et leur nombre peuvent avoir changé.
|
||||||
this.pages.selectedValue=1;
|
this.pages.selectedValue=1;
|
||||||
|
|
||||||
let pagination=this;
|
let pagination=this;
|
||||||
selectElement.addEventListener("change", function(e)
|
selectElement.addEventListener("change", function(e)
|
||||||
{
|
{
|
||||||
pagination.pages.selectedValue=Number(selectElement.value);
|
pagination.pages.selectedValue=Number(selectElement.value);
|
||||||
pagination._converter.refreshView();
|
pagination._converter.refreshView(true);
|
||||||
|
// Présélection de la page dont on vient de demander l'affichage :
|
||||||
|
selectElement.value=""+pagination.pages.selectedValue;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -180,7 +180,7 @@ describe("Test de la pagination.", () =>
|
|||||||
expect(pagination.pages.selectedValue).toEqual(1);
|
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.", () =>
|
it("La manipulation du sélecteur de pages doit enregistrer la valeur sélectionnée et appeler la fonction actualisant l'affichage, tout en gardant la page choisie présélectionnée.", () =>
|
||||||
{
|
{
|
||||||
pagination.pages2HTML();
|
pagination.pages2HTML();
|
||||||
spyOn(converter, "refreshView");
|
spyOn(converter, "refreshView");
|
||||||
@ -189,10 +189,26 @@ describe("Test de la pagination.", () =>
|
|||||||
selectElement.dispatchEvent(new Event('change'));
|
selectElement.dispatchEvent(new Event('change'));
|
||||||
expect(pagination.pages.selectedValue).toEqual(4);
|
expect(pagination.pages.selectedValue).toEqual(4);
|
||||||
expect(converter.refreshView).toHaveBeenCalledTimes(1);
|
expect(converter.refreshView).toHaveBeenCalledTimes(1);
|
||||||
|
let selectElementAfter=document.getElementById("freeDatas2HTMLPagesSelector") as HTMLInputElement;
|
||||||
|
expect(selectElementAfter.value).toEqual("4");
|
||||||
selectElement.value="1";
|
selectElement.value="1";
|
||||||
selectElement.dispatchEvent(new Event('change'));
|
selectElement.dispatchEvent(new Event('change'));
|
||||||
expect(pagination.pages.selectedValue).toEqual(1);
|
expect(pagination.pages.selectedValue).toEqual(1);
|
||||||
expect(converter.refreshView).toHaveBeenCalledTimes(2);
|
expect(converter.refreshView).toHaveBeenCalledTimes(2);
|
||||||
|
selectElementAfter=document.getElementById("freeDatas2HTMLPagesSelector") as HTMLInputElement;
|
||||||
|
expect(selectElementAfter.value).toEqual("1");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("Tout actualisation de l'affichage non généré par le choix d'une page, doit supprimer ce choix.", () =>
|
||||||
|
{
|
||||||
|
pagination.pages2HTML();
|
||||||
|
const selectElement=document.getElementById("freeDatas2HTMLPagesSelector") as HTMLInputElement;
|
||||||
|
selectElement.value="4";
|
||||||
|
selectElement.dispatchEvent(new Event('change'));
|
||||||
|
converter.refreshView();
|
||||||
|
const selectElementAfter=document.getElementById("freeDatas2HTMLPagesSelector") as HTMLInputElement;
|
||||||
|
expect(selectElementAfter.value).toEqual("1");
|
||||||
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
});
|
});
|
Loading…
Reference in New Issue
Block a user