Debug pagination
This commit is contained in:
parent
96db98ae4a
commit
19809182d8
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "freedatas2html",
|
||||
"version": "1.5.0",
|
||||
"version": "1.5.1",
|
||||
"description": "Conversion and display of data in different formats (CSV, JSON, HTML) with the possibility of filtering, classifying and paginating the results.",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -228,7 +228,7 @@ export class FreeDatas2HTML
|
||||
else
|
||||
this.datasRender.fields=this.realFields2Rend();
|
||||
|
||||
this._datas2Rend=this.datas2HTML();
|
||||
this._datas2Rend=this.datas2HTML(paginationSelected);
|
||||
this.datasRender.datas=this._datas2Rend;
|
||||
this._datasViewElt.eltDOM!.innerHTML=this.datasRender.rend2HTML(); // "!", car l'existence de "eltDOM" est testée par le setter.
|
||||
|
||||
@ -236,12 +236,12 @@ export class FreeDatas2HTML
|
||||
// car l'élément HTML du compteur peut être dans le template du Render.
|
||||
this.datasCounter2HTML();
|
||||
|
||||
// (ré)activation des éventuels liens de classement, si ils sont affichés en même temps que le reste des données :
|
||||
// (ré)activation des éventuels liens de classement, s'ils sont affichés en même temps que le reste des données :
|
||||
for(let field of this.datasSortingFields)
|
||||
field.field2HTML();
|
||||
|
||||
// Tout réaffichage peut entraîner une modification du nombre de pages (évolution filtres, etc.)
|
||||
// Mais ne pas recharger si l'appel vient du choix de la page à afficher
|
||||
// Sauf si la demande de réaffichage vient du choix de la page à afficher
|
||||
if(this.pagination !== undefined && !paginationSelected)
|
||||
this.pagination.pages2HTML();
|
||||
}
|
||||
@ -260,7 +260,7 @@ export class FreeDatas2HTML
|
||||
}
|
||||
|
||||
// Fonction sélectionnant les données à afficher en prenant en compte les éventuels filtres, la pagination, etc.
|
||||
public datas2HTML() : {[index: string]:string}[]
|
||||
public datas2HTML(paginationSelected : boolean) : {[index: string]:string}[]
|
||||
{
|
||||
// Dois-je classer les données par rapport à un champ ?
|
||||
if(this.datasSortedField !== undefined)
|
||||
@ -283,6 +283,11 @@ export class FreeDatas2HTML
|
||||
firstData=this.pagination.selectedValue*(this.pagination.pages.selectedValue-1);
|
||||
let maxData=(this.pagination !== undefined && this.pagination.selectedValue !== undefined) ? this.pagination.selectedValue : this._datas.length;
|
||||
|
||||
// Sauf si l'utilisateur vient de choisir la page à afficher, on revient à la première page
|
||||
// Car dans les autres cas le nombre d'enregistrements peut avoir évolué et donc le nombre de pages proposées :
|
||||
if(this.pagination !== undefined && this.pagination.pages !== undefined && this.pagination.pages.selectedValue !== undefined && !paginationSelected)
|
||||
this.pagination.pages.selectedValue=1; // ajouter un test unitaire ?
|
||||
|
||||
// Création du tableau des données à afficher :
|
||||
let datas2Display=[];
|
||||
let nbVisible=0, nbTotal=0;
|
||||
|
@ -133,9 +133,6 @@ export class Pagination implements Paginations
|
||||
|
||||
let selectElement=document.getElementById("freeDatas2HTMLPagesSelector") as HTMLInputElement;
|
||||
|
||||
// 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;
|
||||
|
||||
let pagination=this;
|
||||
selectElement.addEventListener("change", function(e)
|
||||
{
|
||||
|
@ -219,7 +219,8 @@ var FreeDatas2HTML = (function () {
|
||||
enumerable: true,
|
||||
configurable: true
|
||||
});
|
||||
FreeDatas2HTML.prototype.refreshView = function () {
|
||||
FreeDatas2HTML.prototype.refreshView = function (paginationSelected) {
|
||||
if (paginationSelected === void 0) { paginationSelected = false; }
|
||||
if (this._fields.length === 0 || this._datasViewElt === undefined)
|
||||
throw new Error(errors.converterRefreshFail);
|
||||
else {
|
||||
@ -227,7 +228,7 @@ var FreeDatas2HTML = (function () {
|
||||
this.datasRender.fields = this._fields;
|
||||
else
|
||||
this.datasRender.fields = this.realFields2Rend();
|
||||
this._datas2Rend = this.datas2HTML();
|
||||
this._datas2Rend = this.datas2HTML(paginationSelected);
|
||||
this.datasRender.datas = this._datas2Rend;
|
||||
this._datasViewElt.eltDOM.innerHTML = this.datasRender.rend2HTML();
|
||||
this.datasCounter2HTML();
|
||||
@ -235,7 +236,7 @@ var FreeDatas2HTML = (function () {
|
||||
var field = _a[_i];
|
||||
field.field2HTML();
|
||||
}
|
||||
if (this.pagination !== undefined)
|
||||
if (this.pagination !== undefined && !paginationSelected)
|
||||
this.pagination.pages2HTML();
|
||||
}
|
||||
};
|
||||
@ -245,7 +246,7 @@ var FreeDatas2HTML = (function () {
|
||||
this.datasCounterElt.eltDOM.textContent = "" + this._nbDatasValid;
|
||||
}
|
||||
};
|
||||
FreeDatas2HTML.prototype.datas2HTML = function () {
|
||||
FreeDatas2HTML.prototype.datas2HTML = function (paginationSelected) {
|
||||
if (this.datasSortedField !== undefined) {
|
||||
var field_1 = this._fields[this.datasSortedField.datasFieldNb];
|
||||
var fieldOrder_1 = this.datasSortedField.order;
|
||||
@ -260,6 +261,8 @@ var FreeDatas2HTML = (function () {
|
||||
if (this.pagination !== undefined && this.pagination.selectedValue !== undefined && this.pagination.pages !== undefined && this.pagination.pages.selectedValue !== undefined)
|
||||
firstData = this.pagination.selectedValue * (this.pagination.pages.selectedValue - 1);
|
||||
var maxData = (this.pagination !== undefined && this.pagination.selectedValue !== undefined) ? this.pagination.selectedValue : this._datas.length;
|
||||
if (this.pagination !== undefined && this.pagination.pages !== undefined && this.pagination.pages.selectedValue !== undefined && !paginationSelected)
|
||||
this.pagination.pages.selectedValue = 1;
|
||||
var datas2Display = [];
|
||||
var nbVisible = 0, nbTotal = 0;
|
||||
for (var row in this._datas) {
|
||||
|
@ -101,11 +101,11 @@ var Pagination = (function () {
|
||||
selectorsHTML += "</select>";
|
||||
this.pages.displayElement.eltDOM.innerHTML = selectorsHTML;
|
||||
var selectElement_2 = document.getElementById("freeDatas2HTMLPagesSelector");
|
||||
this.pages.selectedValue = 1;
|
||||
var pagination_2 = this;
|
||||
selectElement_2.addEventListener("change", function (e) {
|
||||
pagination_2.pages.selectedValue = Number(selectElement_2.value);
|
||||
pagination_2._converter.refreshView();
|
||||
pagination_2._converter.refreshView(true);
|
||||
selectElement_2.value = "" + pagination_2.pages.selectedValue;
|
||||
});
|
||||
}
|
||||
};
|
||||
|
@ -169,7 +169,7 @@ describe("Test de la pagination.", () =>
|
||||
expect(selectElement).toEqual(fixtures.selectorForManyPages);
|
||||
});
|
||||
|
||||
it("Après chaque actualisation de la liste de pages, la valeur sélectionnée est remise à 0.", () =>
|
||||
/*it("Après chaque actualisation de la liste de pages, la valeur sélectionnée est remise à 0.", () =>
|
||||
{
|
||||
pagination.pages2HTML();
|
||||
let selectElement=document.getElementById("freeDatas2HTMLPagesSelector") as HTMLInputElement;
|
||||
@ -178,7 +178,7 @@ describe("Test de la pagination.", () =>
|
||||
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, tout en gardant la page choisie présélectionnée.", () =>
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user