Uploaded image for project: 'onedata'
  1. onedata
  2. VFS-10411

Handle infinite scroll chunks whose size are smaller than requested

XMLWordPrintable

      • Icon: Bug Bug
      • Resolution: Fixed
      • Icon: Minor Minor
      • 21.02.7
      • None
      • None
      • None
      • Sprint 231, Sprint 232, Sprint 233, Sprint 234, Sprint 235
      • 4
      • Web GUI: Added support for incomplete infinite scroll listing chunks from backend. It increases stability of file browser GUI.
      • Include to Changelog

        Jeśli mam wysoki ekran i proszę o 24 pliki w chunku, ale dostanę np. 4 i nie wypełnią one do końca ekranu to inifinite scroll nie pobierze dalszych chunków. Szczególnie jest to widoczne przy refreshu, kiedy nowa lista o błędnej wielkości 4 zastąpi starą listę nie wypełni ekranu.

        Problem sprowadza się raczej do obsługi chunków mniejszych niż wysokość ekranu pozwalająca na wypełnienie listy wpisami.

        Kod do testowania po stronie GUI:

        file-manager, fetchDirChildren
         

        .then(({ children }) => {
          const slicedChildren = children.slice(0, 4);
          const isSlicedLast = children.length <= slicedChildren.length;
          return {
            children: slicedChildren,
            isLast: isSlicedLast,
           };
        })
        

        Reprodukcja za pomocą backendu:

        file_middleware_plugin

        w funkcji

        get(#op_req{auth = Auth, data = Data, gri = #gri{id = FileGuid, aspect = children_details}}, _) ->
        

        zamiast:

            {ok, value, {ChildrenDetails, file_listing:is_finished(ListingPaginationToken)}};
        

         zwracać:

            case file_listing:is_finished(ListingPaginationToken) of
                true -> {ok, value, {ChildrenDetails, true}};
                false -> {ok, value, {lists:sublist(ChildrenDetails, 0 + rand:uniform(length(ChildrenDetails) + 1) - 1), false}}
            end;
        

                  plgjliput Jakub Liput
                  plgjliput Jakub Liput
                  Votes:
                  0 Vote for this issue
                  Watchers:
                  1 Start watching this issue

                    Created:
                    Updated:
                    Resolved: