opendatasoft / ods-widgets

Components to easily build visualizations and interfaces from a data API.
MIT License
27 stars 11 forks source link

odsInfiniteScrollResults avec params #100

Open itkg-ttourneur opened 7 years ago

itkg-ttourneur commented 7 years ago

Bonjour,

j'utilise dans un odsDatasetContext un odsInfiniteScrollResults pour afficher mes résultats, mais ce dernier ne prend pas en compte mes paramètres de mon dataset défini. J'ai l'impression qu'il m'affiche les 10 premiers résultats de mon jeu de donnée. Quand j'utilise un odsResultEnumerator, tout va bien.

richterb commented 7 years ago

Bonjour,

Il est possible que le scroll infini ne "détecte" pas ses contours et ne sache donc pas quand il doit charger ses pages suivantes. Pouvez-vous écrire un exemple qui ne fonctionne pas ? (vous pouvez remplacer la source de donnée dans l'exemple par XXXXXX si elles sont privées, logiquement en rebranchant l'exemple sur n'importe quel jeu de données on reproduira le soucis)

itkg-ttourneur commented 7 years ago

Voici un exemple:

<ods-dataset-context 
     context='village'
     village-domain="XXXXXXX"
     village-dataset="XXXXXXX"
     village-parameters="{'refine.identifiant_du_lieu' : '123456'}"
     village-apikey="XXXXXXX">

                <div class="village_meme_endroit">
                    <div class="container">
                        <div class="row">
                            <div role="list" aria-live="polite" aria-relevant="additions">
                                <div class="blog-wrapper grid isotope isotope-container">
                                    <ods-infinite-scroll-results context="village">
                                        <div class="col-lg-6 element-item">
                                            {html_ods_template type="item"} //Fonction interne qui affiche une étiquette
                                        </div>
                                    </ods-infinite-scroll-results>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
</ods-dataset-context>

Nous avons plusieurs dataset context de défini dans notre page qui remonte différentes informations. Cela peut poser problème? Autre point, le scroll infini fonctionne, on a bien d'autres résultats qui s'affiche mais se ne sont pas du tout ceux attendu, il ne prend pas en compte dans mon exemple le "village-parameters". Merci.

richterb commented 7 years ago

En fait c'est effectivement exactement le soucis, un bug dans odsInfiniteScrollResults qui ignore totalement les filtres lorsqu'on l'utilise sur des enregistrements.

Utilisez-vous les widgets en mode librairie (téléchargés et utilisés sur un site) ou dans l'éditeur de page d'une plateforme OpenDataSoft ?

itkg-ttourneur commented 7 years ago

Nous les utilisons en mode librairie. Il n'y a donc pas d'alternative?

richterb commented 7 years ago

Pas de contournement en continuant d'utiliser ce widget, mais nous allons faire une nouvelle release des widgets qui va corriger le bug, normalement dans la journée voire en fin de matinée.

itkg-ttourneur commented 7 years ago

Ok, il me suffira donc de mettre à jour ma librairie dans ce cas.

Merci.

richterb commented 7 years ago

Nous venons de faire cette nouvelle release, normalement il n'y a qu'à télécharger cette nouvelle version donc : https://github.com/opendatasoft/ods-widgets/releases/tag/1.0.5

itkg-ttourneur commented 7 years ago

Merci pour cette MAJ rapide. Mon odsInfiniteScroll prend bien en compte les paramètres de mon datasetContext désormais. Mais j'ai un autre problème qui n'existait pas avant il me semble.

J'ai une erreur js qui empêche le loadMore de se lancer...

Voici cette erreur:

TypeError: Cannot read property 'datasetid' of null
    at Object.search (ods-widgets.js:7207)
    at fetchResults (ods-widgets.js:16738)
    at Scope.$scope.loadMore (ods-widgets.js:16757)
    at fn (eval at compile (angular.js:14605), <anonymous>:4:215)
    at Scope.$eval (angular.js:17444)
    at Scope.$apply (angular.js:17544)
    at handler (ods-widgets.js:6576)
    at ods-widgets.js:6602
    at angular.js:19374
    at completeOutstandingRequest (angular.js:5955)

Avez-vous une idée?

richterb commented 7 years ago

Bonjour, puis-je vous faire parvenir un correctif par un autre canal ? (email par ex)

itkg-ttourneur commented 7 years ago

Oui bien sûr. Vous pouvez me contacter via thomas.tourneur@businessdecision.com Merci.