Collabora Online Weekly Meeting #7

Collabora Online Weekly Meeting #7

Date: Jan 07, 2020

Next meeting: Jan 14, 2021

Attendees: Nicoael, Gabriel, Pranam, Andras, Szymon, Aron, Ezine, Gokay, Michael, Pedro, Andreas, Kendy, Thorsten, Cor


Quick update (Muhammet)

  • Muhammet on vacation → lets get an update next week.

CSV handling (Pedro)

  • created an easy-hack for this #1020

    • Rizal accepted and is creating an icon
  • Will get icon only for notebookbar – in classic mode – part of the menu.

Template Contest (Nicolas)

News on iOS article (Nicolas)

Managing templates in Online (Andreas K)

  • AI: Better templates for Nextcloud / richdocuments – file ticket for Julius (Kendy)

  • An issue for the templates on github (Andreas K)

  • AI: File LibreOffice ticket for an XSLT filter to remove locales from templates (Kendy)

Toolbar / Notebookbar changes (Andreas K)

  • Made some patches for better alignment in the last weeks

  • A few patches there – working with Szymon

    • can we use just the JS part for the Home tab ? Since we can align better

    • custom widget: styles preview come from core …

  • Do we want ‘home’ to look beautiful and not other tabs ? (Michael)

    • can we not improve the look for LibreOffice too ?

    • Need to also update the cached version …

  • Home tab is our first impression: it should be beautiful (Andreas)

    • height of notebookbar comes from the home tab

    • caching from core – we need more height; everything relies on it.

    • Keeping the two in sync. Is a maintenance pain

      • its a really complicated tab.
  • Working on partial updates for all dialogs (Szymon)

    • perhaps in the future – use this pre-cached JS definition of the home tab.

    • and update only the style previews

  • Sometimes need features only in Online in the notebookbar (Szymon)

    • we have most tabs defined in JS now, not sent from the core.

    • Some commands are not available / useful in COOL (Andreas)

      • looks like a half solution.
  • Previews only available in writer, can we switch in impress/calc to use JS ? (AndreasK)

    • so we don’t need to load previews, check if it is better or not.
  • There are solutions here (Kendy)

    • can add annotation to glade files – something for desktop vs. mobile

    • welding abandons the idea of custom annotations? (Szymon)

    • can’t we use the glade editor ? (Michael)

      • possible in the glade file, needs additional coding.
  • In calc & impress – perhaps not re-load home tab (Andreas K)

  • Why does it take so long ? (Michael)

    • Noel fixed the JSON

    • loading the notebookbar takes a lot of time (Szymon)

      • lots of custom widgets, and creation of toolbox items.
    • Is it necessary to create these items ? (Kendy)

      • currently Notebookbar is not welded (Szymon)

      • prefer to separate these … write in JS.

  • Would like to hide items in dialogs (Michael)

    • lets do this cleanly – and do this nicely.

    • Have a prefix for the name – in glade: or some annotation.

    • Harder to maintain glade files (Szymon)

      • easier to have separate UI files for Online.

      • JSON & glade files – vs. two glade files.

  • Should we have a custom format for notebookbar ? (Kendy)

    • and generate glade & JSON from this ?

    • Had as a GSOC project (Szymon)

      • have a schema and generate elements from it …

      • Caolan was not pleased to store glade files in a user directory

        • especially for notebookbar; in future releases – can drop widgets.
    • A build-time thing, not run-time though:

      • for the build of the core – build the glade files so they’re usable directly by the desktop

      • and use same source to generate Javascript.

    • Sounds like the delta work for changes would be good for customization (Michael)

  • Toolbars in core we use XML files – which are really simple (Andreas K)

    • show/hide/etc. everything is easy & fine

    • Notebookbar done in glade – have more arrangement options

      • very flexible – but in the end too complicated.
    • The ‘home’ tab is complex, but all other tabs have the same layout

      • a simpler layout – could change two row → one row layouts eg.

      • all easy excluding the home tab.

  • Lets switch to a simple JSON in core for the Notebookbars (Kendy)

    • AI: design some nice JSON for core notebookbar structure (Andreas K)

    • Like JSON instead of XML – faster to parse (Michael)

      • possibly if we do this more intelligently we don’t need the cache

      • lets use a simpler structure than in the JS.

Dynamic changes of Toolbar type (Gabriel)

  • Not worked much over the vacation, not finished yet.

  • Conclusion → not to add the UX pieces (Gabriel)

    • Adding tests to the ‘make run’ ‘framed.html’
  • Problems with context / missing details for notebookbar

    • taking UNO state eg. bold data from the local UNO command cache.

Bind Mounting / Hard-linking (Michael)

  • Pushed a patch that adds cap_chown so we can create a copy nearby in ‘linkable’/ that is then hard-link-able

    • small patch, should give a nice win – due in 6.4.3 soon.
  • 1&1’s Slow-Start patch will be re-worked (Gabriel)

    • and moved inside / somewhere near the changes from Michael’s patch

    • when implemented this for the 1st time, put this in a separate helper.

    • Started work today – may finish tomorrow.

  • Slow-start is specific to specific overlay-fs (Gabriel)

    • how do we deal with these …

    • is this even something we can avoid ? (Michael)

      • hard to detect – slow copy happens inside the file-system.
    • a shell copy command is needed to accelerate this.

      • Talked to Ash → lets review the patch …
  • Reducing size of the jails (Michael)

    • ripped the dictionaries out → 100’s of Mb of links.

    • Fonts are the next biggest thing …

      • pre-populate our Cairo font cache → mmap them all beforehand.

        • saves 100’s of Mbs.

        • Needs more development work.

      • Happy to send some stack-traces / code-pointers (Michael)

        • Perhaps re-visit the size of things in the jails

Where do minutes go ? (Muhammet)

  • Publish on formus – and provide instrcutions on opt-in via E-mail.

  • AI: check options (Muhammet)

CanvasTileLayer bits (Kendy)

  • Lots of progress (Gokay)

    • new code that will replace big chunks of leaflet

      • “CanvasSections”
    • a thin layer on top of the canvas, allowing you to split a canvas into logical sections

      • that together compose a document on the screen.
    • Calc: One canvas: sections for column/row headers

    • sections for scroll-bars in future:

      • will help to kill mCustomScrollbar
    • section in the middle for the document itself

    • written in TypeScript → better for the future as well.

    • Gets us closer to the goal of not using Leaflet, using our own Canvas, TypeScript

  • Currently – calc tiles are using that

    • Dennis is working on removing the SVG layers for selections & cursor, drawn directly.
  • Query around events in JS (Szymon)

    • do we pass them to the core for moving of objects ? (Kendy)

      • handles events as well – will remove the need for Hammer.js

      • selections: an additional section on top of that for the document

        • will get its own event handling.

Icon theming (css class names) (Kendy)

  • Unsure if better to have icon CSS & SVG file separated (Andreas K)

    • or if SVG files are changes at build-time

    • discussed before – but need to have a meeting

  • AI: setup a call to sort it out Kendy, Pedro, Andreas K (Pedro)

Pivot bits (Szymon)

  • all done.

three new pull requests (MKara)

Help / getting setup ?

  • All questions / comments welcome here – or on IRC / Telegram etc. ?

    • Ping MKara any time for help / if stuck.

Next Meeting

Next meeting will take place on Thursday, January 14, 2021 at 11:00 am (UTC)