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: