[00:00.000 --> 00:08.480] Okay, let's go, it's me again. [00:08.480 --> 00:15.400] Somebody just throws some, I don't know, vegetables at me if the ten minutes are over. [00:15.400 --> 00:21.080] If you came for a WebAssembly here, I have to disappoint you, so we'll have to wait another [00:21.080 --> 00:24.280] one or two talks when we will talk about that. [00:24.280 --> 00:30.240] I re-purposed the slot here to talk a little bit about something equally cool, wonderful, [00:30.240 --> 00:33.800] spiffy with a rocket engine for liberal office templates. [00:33.800 --> 00:42.960] Well, small disappointment, it's about Walmux, but I think it's, I'm kind of serious there, [00:42.960 --> 00:51.080] that perhaps the name, we could think about a different one. [00:51.080 --> 00:56.200] So quick intro, what is that if you haven't heard about it? [00:56.200 --> 01:05.720] It's a Java extension to liberal office and it's there for template and forms management [01:05.720 --> 01:08.440] and also like extending mail merge. [01:08.440 --> 01:16.080] So those are two views on it, the left one is the sidebar extension, you see three sidebar [01:16.080 --> 01:18.000] panels been added there. [01:18.000 --> 01:22.960] This is just a selection of sample templates there. [01:22.960 --> 01:31.760] And the right side is the kind of constructed, generated document out of that thing. [01:31.760 --> 01:42.520] So and all of that has been developed by the city of Munich starting around 2005-2006-ish [01:42.520 --> 01:49.760] under the Linux project umbrella, why, because they wanted to migrate to open office, they [01:49.760 --> 01:54.800] wanted some template management and there was nothing that was powerful enough. [01:54.800 --> 02:00.520] So they did what you do when it's not there and you do open-sourced stuff, you started [02:00.520 --> 02:05.080] doing something yourself and then open-sourced it. [02:05.080 --> 02:11.600] So that's what Munich did and there was some, well it was in production I think since 2008 [02:11.600 --> 02:18.440] and there was some major upgrade to liberal office from open office which had some, we [02:18.440 --> 02:26.520] had to change some UNO stuff there and another major rework migrating from Java swing dialogues [02:26.520 --> 02:33.040] and UI to native liberal office UI and mostly sidebar which really nicely integrates as [02:33.040 --> 02:35.640] you've seen before. [02:35.640 --> 02:47.440] And this year or end of last year, since the Linux project is kind of sunsetting the extension [02:47.440 --> 02:53.120] itself which is extremely powerful, lovely, great, also cool for QA because it triggers [02:53.120 --> 03:02.520] really literally every little corner of the writer UNO API there, moving house to CDF. [03:02.520 --> 03:10.720] And what is it in the first place, it's predominantly for let's say very complex document generation [03:10.720 --> 03:17.720] workflows that you will find in larger companies, perhaps also in law firms or something but [03:17.720 --> 03:21.280] predominantly in the public sector. [03:21.280 --> 03:28.960] The idea behind there is kind of assemble your letter on the fly and employ the dry [03:28.960 --> 03:35.520] principle and only ever have one stylistic element or part of the template defined once [03:35.520 --> 03:42.560] and then you kind of include that like PHP or other template programming languages so [03:42.560 --> 03:49.160] you kind of piece that together, there's also like loops and control flow statements that [03:49.160 --> 03:53.880] you can use to kind of very dynamically generate forms. [03:53.880 --> 03:59.680] There's a forms generator so you can kind of have some user guidance like where to fill [03:59.680 --> 04:05.840] in what and pre-fill things and also dynamically kind of say oh when this is on then do that [04:05.840 --> 04:08.960] or not to do that or disable here. [04:08.960 --> 04:15.000] As I said, mail merge stuff and yeah this text programming and quotes content based [04:15.000 --> 04:18.120] directors doing something very dynamic. [04:18.120 --> 04:27.320] Okay so that thing is now has moved to CDF end of last year and we have been quite busy [04:27.320 --> 04:33.560] first of all like doing the move and also like doing some adaptations and adjustments [04:33.560 --> 04:41.120] and getting a kind of fit for let's say an international open source project like LibreOffice. [04:41.120 --> 04:49.080] What happened, Git repose moved to under the LibreOffice project on GitHub which was an [04:49.080 --> 04:55.560] easy like click so the old URL still work, you got a redirect that's pretty nice feature [04:55.560 --> 05:00.800] on GitHub so everybody can still, who had this clone can still work with it but the [05:00.800 --> 05:03.080] official location is now there. [05:03.080 --> 05:11.800] We added some translation workflow stuff, we made the Java like everything that it was [05:11.800 --> 05:17.760] a user visible string and the Java sources is now in PO files. [05:17.760 --> 05:22.240] We put this on TDS web late so the UI can be translated. [05:22.240 --> 05:28.920] We moved the documentation from a mark down Git based workflow into Media Wiki which is [05:28.920 --> 05:36.360] also much nicer than to translate for the community, for this mark down stuff, essentially [05:36.360 --> 05:44.200] needed some kind of developer setup to do that and Media Wiki has really nice, excellent [05:44.200 --> 05:47.160] translation support meanwhile. [05:47.160 --> 05:52.360] Fixed a number of bugs, made sure that it actually works not just with all the LibreOffice [05:52.360 --> 05:56.080] versions but with the most recent ones. [05:56.080 --> 06:01.880] We did some build fixes on the, there was some bits of the internal build system kind [06:01.880 --> 06:07.720] of leaking through that still so we made it actually build out of the box so you clone [06:07.720 --> 06:12.400] that, you build that with Maven and it actually works. [06:12.400 --> 06:19.800] Some tweaks with namespaces so we can then upload artifacts to the LibreOffice Maven repository [06:19.800 --> 06:27.320] and it doesn't have the old names anymore that were sometimes internal to City of Munich. [06:27.320 --> 06:33.760] We set up Jenkins drops so we can actually not only run tests on pull requests, we can [06:33.760 --> 06:43.040] also run releases there on the CI and tons of smaller things like started to do comment [06:43.040 --> 06:50.040] translation in the code, renamed variable names, got the build houses and other auxiliary [06:50.040 --> 06:53.280] documentation translated to English. [06:53.280 --> 06:58.760] It's not done, in particular the code stuff, that's not done. [06:58.760 --> 07:04.560] Part of that was already English but that's quite a bit left. [07:04.560 --> 07:10.200] Which gets us to next steps and the possible future. [07:10.200 --> 07:19.880] So handbook is not fully line of super clean, the original handbook was German so we translated [07:19.880 --> 07:24.880] it to English and then we wanted to reuse the old German translation because why do [07:24.880 --> 07:30.040] that work again and with the Bickey markup so that's kind of busy work there and we're [07:30.040 --> 07:33.960] kind of still mostly, we're still busy with that. [07:33.960 --> 07:44.360] I guess help appreciate it but no, okay so we get it done in the very near future. [07:44.360 --> 07:53.600] Some renaming for the Java packages, that kind of blocks each other with possibly renaming [07:53.600 --> 07:59.040] the project, we don't want to rename it twice, have some new landing page done, some more [07:59.040 --> 08:05.760] bug fixing, there's still some side bar, not so nice things and some thing that was one [08:05.760 --> 08:11.800] crash somewhere and then we want to reasonably soonish have some release there so that people [08:11.800 --> 08:12.880] actually can use that. [08:12.880 --> 08:20.160] If anybody's interested, we can have some snapshots possibly published, then again it [08:20.160 --> 08:24.760] should be relatively easy to build and if it's not, let's fix it. [08:24.760 --> 08:31.480] So actually maybe not publishing snapshots far and wide is a feature, not a bug, so we [08:31.480 --> 08:36.440] can fix the build system, yeah renaming. [08:36.440 --> 08:44.120] So we kind of brainstormed a little bit in the background, those are three suggestions [08:44.120 --> 08:52.320] that we will probably mull over and think about, so this LibreOffice template tool or [08:52.320 --> 08:56.760] template engine is probably what it actually is. [08:56.760 --> 09:02.400] So people would understand what it does when they see that somewhere. [09:02.400 --> 09:08.640] This forms and templates is a bit more ambitious because it does much more than just templates, [09:08.640 --> 09:11.920] but hey, naming is hard. [09:11.920 --> 09:16.840] So yeah and if you're curious come and help, so there's some easy hack there for comment [09:16.840 --> 09:21.240] translation, that's the easiest thing to get your feet wet. [09:21.240 --> 09:28.120] There are certainly more like UI and document translation, that would be great and of course [09:28.120 --> 09:31.560] if you have cool feature ideas, go get it implemented. [09:31.560 --> 09:37.120] So there's one thing, there's an old branch about QR code support, so you can kind of [09:37.120 --> 09:43.400] generate QR code and insert it like in this process of programmed software controlled [09:43.400 --> 09:49.600] template generation, that would be nice to get in or other things that people want in [09:49.600 --> 09:53.000] templates these days, and that's it, thanks so much.