[Libreoffice-commits] online.git: Branch 'distro/collabora/co-6-4' - 10 commits - cypress_test/data cypress_test/integration_tests cypress_test/plugins debian/changelog ios/Mobile.xcodeproj loleaflet/css loleaflet/images loleaflet/po loleaflet/src loolwsd.spec.in

Andras Timar (via logerrit) logerrit at kemper.freedesktop.org
Fri Sep 25 13:54:31 UTC 2020


 cypress_test/data/mobile/calc/nextcloud.ods                     |binary
 cypress_test/data/mobile/impress/nextcloud.odp                  |binary
 cypress_test/data/mobile/writer/nextcloud.odt                   |binary
 cypress_test/integration_tests/common/helper.js                 |  192 +++++++---
 cypress_test/integration_tests/common/mobile_helper.js          |   15 
 cypress_test/integration_tests/common/nextcloud_helper.js       |  123 ++++++
 cypress_test/integration_tests/mobile/calc/nextcloud_spec.js    |   70 +++
 cypress_test/integration_tests/mobile/impress/nextcloud_spec.js |   69 +++
 cypress_test/integration_tests/mobile/writer/nextcloud_spec.js  |   68 +++
 cypress_test/plugins/blacklists.js                              |    7 
 cypress_test/plugins/index.js                                   |    5 
 debian/changelog                                                |    6 
 ios/Mobile.xcodeproj/project.pbxproj                            |    4 
 loleaflet/css/menubar.css                                       |   18 
 loleaflet/images/lc_menu_chevron.svg                            |   31 +
 loleaflet/po/help-cs.po                                         |   14 
 loleaflet/po/help-gl.po                                         |   16 
 loleaflet/po/help-sl.po                                         |   14 
 loleaflet/po/ui-cs.po                                           |   22 -
 loleaflet/po/ui-dsb.po                                          |   22 -
 loleaflet/po/ui-gl.po                                           |   22 -
 loleaflet/po/ui-hsb.po                                          |   22 -
 loleaflet/po/ui-sl.po                                           |   24 -
 loleaflet/src/control/Control.LokDialog.js                      |    2 
 loleaflet/src/control/Parts.js                                  |   41 ++
 loolwsd.spec.in                                                 |    2 
 26 files changed, 642 insertions(+), 167 deletions(-)

New commits:
commit e520aaa38a83586c1e8f905f8d5811bd4698606d
Author:     Andras Timar <andras.timar at collabora.com>
AuthorDate: Fri Sep 25 15:45:38 2020 +0200
Commit:     Andras Timar <andras.timar at collabora.com>
CommitDate: Fri Sep 25 15:45:38 2020 +0200

    Bump package version to 6.4.0-3
    
    Change-Id: I0b9e681e293d3e685821e3e01add2fe5e9327d50

diff --git a/debian/changelog b/debian/changelog
index d23867b40..d75b45872 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+loolwsd (6.4.0-3) unstable; urgency=medium
+
+  * https://cgit.freedesktop.org/libreoffice/online/log/?h=cp-6.4.0-3
+
+ -- Andras Timar <andras.timar at collabora.com>  Fri, 25 Sep 2020 15:40:00 +0200
+
 loolwsd (6.4.0-2) unstable; urgency=medium
 
   * https://cgit.freedesktop.org/libreoffice/online/log/?h=cp-6.4.0-2
diff --git a/loolwsd.spec.in b/loolwsd.spec.in
index e039e09db..8198325f4 100644
--- a/loolwsd.spec.in
+++ b/loolwsd.spec.in
@@ -12,7 +12,7 @@ Name:           loolwsd%{name_suffix}
 Name:           loolwsd
 %endif
 Version:        @PACKAGE_VERSION@
-Release:        2%{?dist}
+Release:        3%{?dist}
 Vendor:         %{vendor}
 Summary:        LibreOffice Online WebSocket Daemon
 License:        EULA
commit a5cb859373931f9c9d9a59e31b20659f6cd465b0
Author:     Weblate <noreply at documentfoundation.org>
AuthorDate: Thu Sep 24 11:07:06 2020 +0200
Commit:     Andras Timar <andras.timar at collabora.com>
CommitDate: Fri Sep 25 15:44:25 2020 +0200

    update translations
    
    LibreOffice Online/loleaflet-ui (Upper Sorbian)
    Currently translated at 100.0% (347 of 347 strings)
    
    Change-Id: Ie5a09e8d057208fd8f4a36cba3c67501671b4838
    
    update translations
    
    LibreOffice Online/loleaflet-ui (Lower Sorbian)
    Currently translated at 100.0% (347 of 347 strings)
    
    Change-Id: I8a9953cd6f0c9fdbafc176e689bc39c9267c5185
    
    update translations
    
    LibreOffice Online/loleaflet-help (Galician)
    Currently translated at 100.0% (418 of 418 strings)
    
    Change-Id: Ibb233bbbe53f8d2de4ab3fbe2eddbf84b4390e3a
    
    update translations
    
    LibreOffice Online/loleaflet-ui (Galician)
    Currently translated at 100.0% (347 of 347 strings)
    
    Change-Id: I3b8c5a506df128992c0bef8c9b862f894223388d
    
    update translations
    
    LibreOffice Online/loleaflet-help (Slovenian)
    Currently translated at 100.0% (418 of 418 strings)
    
    Change-Id: I11889d56f7be638c5b7965f1c1c6bbf7c375d235
    
    update translations
    
    LibreOffice Online/loleaflet-help (Czech)
    Currently translated at 100.0% (418 of 418 strings)
    
    Change-Id: Ia6a8d574a8b8a7ae64603a5c563e18a3f93a702f
    
    update translations
    
    LibreOffice Online/loleaflet-ui (Slovenian)
    Currently translated at 100.0% (347 of 347 strings)
    
    Change-Id: I3a745b12263c7f4e0ee4f4b7cd675661c347f4ae
    
    update translations
    
    LibreOffice Online/loleaflet-ui (Czech)
    Currently translated at 100.0% (347 of 347 strings)
    
    Change-Id: I4d7ac4ccf5879bd4ee0afe8ec0f77b93e93f4679
    Reviewed-on: https://gerrit.libreoffice.org/c/online/+/103219
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice at gmail.com>
    Reviewed-by: Andras Timar <andras.timar at collabora.com>

diff --git a/loleaflet/po/help-cs.po b/loleaflet/po/help-cs.po
index de7d875e8..0f3039c6c 100644
--- a/loleaflet/po/help-cs.po
+++ b/loleaflet/po/help-cs.po
@@ -3,7 +3,7 @@ msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2020-09-11 09:41+0200\n"
-"PO-Revision-Date: 2020-04-25 12:58+0000\n"
+"PO-Revision-Date: 2020-09-22 21:49+0000\n"
 "Last-Translator: Stanislav Horáček <stanislav.horacek at gmail.com>\n"
 "Language-Team: Czech <https://weblate.documentfoundation.org/projects/libo_online/loleaflet-help/cs/>\n"
 "Language: cs\n"
@@ -11,7 +11,7 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
-"X-Generator: Weblate 3.10.3\n"
+"X-Generator: Weblate 4.1.1\n"
 "X-Pootle-Path: /cs/libo_online/loleaflet-help-cs.po\n"
 "X-Pootle-Revision: 855408\n"
 
@@ -52,14 +52,12 @@ msgid "Paste as unformatted text"
 msgstr "Vložit jako neformátovaný text"
 
 #: html/loleaflet-help.html%2Bdiv.div.table.tr.td:26-70
-#, fuzzy
-#| msgid "Ctrl + Shift + ?"
 msgid "Ctrl + Shift + V"
-msgstr "Ctrl + Shift + ?"
+msgstr "Ctrl + Shift + V"
 
 #: html/loleaflet-help.html%2Bdiv.div.table.tr.td:27-18
 msgid "Paste special"
-msgstr ""
+msgstr "Vložit jinak"
 
 #: html/loleaflet-help.html%2Bdiv.div.table.tr.td:27-58
 msgid "Ctrl + Alt + Shift + V"
@@ -1184,10 +1182,8 @@ msgid "When you paste content copied from within the same document, the format a
 msgstr "Pokud vložíte obsah zkopírovaný v témže dokumentu, zachovají se jeho formát a prvky. Zkopírujete-li jej z dokumentu na jiné kartě či v jiném okně prohlížeče, případně z aplikace mimo prohlížeč, ve vloženém obsahu se zachová formátování textu."
 
 #: html/loleaflet-help.html%2Bdiv.p:303-5
-#, fuzzy
-#| msgid "You can paste as unformatted text with the keyboard shortcut: <span class=\"kbd\">Ctrl</span> + <span class=\"kbd\">Alt</span> + <span class=\"kbd\">Shift</span> + <span class=\"kbd\">V</span>"
 msgid "You can paste as unformatted text with the keyboard shortcut: <span class=\"kbd\">Ctrl</span> + <span class=\"kbd\">Shift</span> + <span class=\"kbd\">V</span>"
-msgstr "Neformátovaný text můžete vložit pomocí klávesové zkratky: <span class=\"kbd\">Ctrl</span>+<span class=\"kbd\">Alt</span>+<span class=\"kbd\">Shift</span>+<span class=\"kbd\">V</span>"
+msgstr "Neformátovaný text můžete vložit pomocí klávesové zkratky: <span class=\"kbd\">Ctrl</span>+<span class=\"kbd\">Shift</span>+<span class=\"kbd\">V</span>"
 
 #: html/loleaflet-help.html%2Bdiv.p:304-5
 msgid "When you paste text from within the document, formatting will be respected. You can also paste objects, such as images, if they are copied from the document you are working in."
diff --git a/loleaflet/po/help-gl.po b/loleaflet/po/help-gl.po
index bb8094195..5c55decc1 100644
--- a/loleaflet/po/help-gl.po
+++ b/loleaflet/po/help-gl.po
@@ -3,15 +3,15 @@ msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2020-09-11 09:41+0200\n"
-"PO-Revision-Date: 2020-06-17 14:02+0000\n"
-"Last-Translator: sophie <gautier.sophie at gmail.com>\n"
+"PO-Revision-Date: 2020-09-23 07:49+0000\n"
+"Last-Translator: Xosé <xosecalvo at gmail.com>\n"
 "Language-Team: Galician <https://weblate.documentfoundation.org/projects/libo_online/loleaflet-help/gl/>\n"
 "Language: gl\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 3.10.3\n"
+"X-Generator: Weblate 4.1.1\n"
 "X-Pootle-Path: /gl/libo_online/loleaflet-help-gl.po\n"
 "X-Pootle-Revision: 3698275\n"
 
@@ -52,14 +52,12 @@ msgid "Paste as unformatted text"
 msgstr "Pegar como texto sen formato"
 
 #: html/loleaflet-help.html%2Bdiv.div.table.tr.td:26-70
-#, fuzzy
-#| msgid "Ctrl + Shift + ?"
 msgid "Ctrl + Shift + V"
-msgstr "Ctrl + Maiús. + ?"
+msgstr "Ctrl + Maiús. + V"
 
 #: html/loleaflet-help.html%2Bdiv.div.table.tr.td:27-18
 msgid "Paste special"
-msgstr ""
+msgstr "Pegado especial"
 
 #: html/loleaflet-help.html%2Bdiv.div.table.tr.td:27-58
 msgid "Ctrl + Alt + Shift + V"
@@ -1184,10 +1182,8 @@ msgid "When you paste content copied from within the same document, the format a
 msgstr "Ao pegar contido copiado do mesmo documento mantéñense o formato e os elementos. Se se copiar doutro documento, noutra lapela ou xanela do navegador, ou desde fóra do navegador, o contido pegado conserva o texto rico."
 
 #: html/loleaflet-help.html%2Bdiv.p:303-5
-#, fuzzy
-#| msgid "You can paste as unformatted text with the keyboard shortcut: <span class=\"kbd\">Ctrl</span> + <span class=\"kbd\">Alt</span> + <span class=\"kbd\">Shift</span> + <span class=\"kbd\">V</span>"
 msgid "You can paste as unformatted text with the keyboard shortcut: <span class=\"kbd\">Ctrl</span> + <span class=\"kbd\">Shift</span> + <span class=\"kbd\">V</span>"
-msgstr "Pódese pegar como texto sen formatar co atallo de teclado: <span class=\"kbd\">Ctrl</span> + <span class=\"kbd\">Alt</span> + <span class=\"kbd\">Maiús</span> + <span class=\"kbd\">V</span>"
+msgstr "Pódese pegar como texto sen formatar co atallo de teclado:  <span class=\"kbd\">Ctrl</span> + <span class=\"kbd\">Maiús.</span> + <span class=\"kbd\">V</span>"
 
 #: html/loleaflet-help.html%2Bdiv.p:304-5
 msgid "When you paste text from within the document, formatting will be respected. You can also paste objects, such as images, if they are copied from the document you are working in."
diff --git a/loleaflet/po/help-sl.po b/loleaflet/po/help-sl.po
index c849efa0f..cd3bff119 100644
--- a/loleaflet/po/help-sl.po
+++ b/loleaflet/po/help-sl.po
@@ -5,7 +5,7 @@ msgstr ""
 "Project-Id-Version: LibreOffice Online - Help\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2020-09-11 09:41+0200\n"
-"PO-Revision-Date: 2020-04-11 11:43+0000\n"
+"PO-Revision-Date: 2020-09-22 21:49+0000\n"
 "Last-Translator: Martin Srebotnjak <miles at filmsi.net>\n"
 "Language-Team: Slovenian <https://weblate.documentfoundation.org/projects/libo_online/loleaflet-help/sl/>\n"
 "Language: sl\n"
@@ -14,7 +14,7 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3;\n"
 "X-Accelerator-Marker: ~\n"
-"X-Generator: Weblate 3.10.3\n"
+"X-Generator: Weblate 4.1.1\n"
 "X-Poedit-SourceCharset: UTF-8\n"
 
 #: html/loleaflet-help.html%2Bdiv.h1:19-5
@@ -54,14 +54,12 @@ msgid "Paste as unformatted text"
 msgstr "Prilepi kot neoblikovano besedilo"
 
 #: html/loleaflet-help.html%2Bdiv.div.table.tr.td:26-70
-#, fuzzy
-#| msgid "Ctrl + Shift + ?"
 msgid "Ctrl + Shift + V"
-msgstr "Krmilka + dvigalka + ?"
+msgstr "Krmilka + dvigalka + V"
 
 #: html/loleaflet-help.html%2Bdiv.div.table.tr.td:27-18
 msgid "Paste special"
-msgstr ""
+msgstr "Posebno lepljenje"
 
 #: html/loleaflet-help.html%2Bdiv.div.table.tr.td:27-58
 msgid "Ctrl + Alt + Shift + V"
@@ -1186,10 +1184,8 @@ msgid "When you paste content copied from within the same document, the format a
 msgstr "Ko prilepite vsebino iz istega dokumenta, se oblika in elementi ohranijo. Če kopirate iz drugega dokumenta iz drugega zavihka ali okna brskalnika ali izvedn brskalnika, bo prilepljena vsebina ohranila obogateno besedilo."
 
 #: html/loleaflet-help.html%2Bdiv.p:303-5
-#, fuzzy
-#| msgid "You can paste as unformatted text with the keyboard shortcut: <span class=\"kbd\">Ctrl</span> + <span class=\"kbd\">Alt</span> + <span class=\"kbd\">Shift</span> + <span class=\"kbd\">V</span>"
 msgid "You can paste as unformatted text with the keyboard shortcut: <span class=\"kbd\">Ctrl</span> + <span class=\"kbd\">Shift</span> + <span class=\"kbd\">V</span>"
-msgstr "Besedilo lahko kot neoblikovano prilepite s tipkami za bližnjico: <span class=\"kbd\">krmilka</span> + <span class=\"kbd\">izmenjalka</span> + <span class=\"kbd\">dvigalka</span> + <span class=\"kbd\">V</span>"
+msgstr "Besedilo lahko kot neoblikovano prilepite s tipkami za bližnjico: <span class=\"kbd\">krmilka</span> + <span class=\"kbd\">dvigalka</span> + <span class=\"kbd\">V</span>"
 
 #: html/loleaflet-help.html%2Bdiv.p:304-5
 msgid "When you paste text from within the document, formatting will be respected. You can also paste objects, such as images, if they are copied from the document you are working in."
diff --git a/loleaflet/po/ui-cs.po b/loleaflet/po/ui-cs.po
index b85e4fedb..f5dddf897 100644
--- a/loleaflet/po/ui-cs.po
+++ b/loleaflet/po/ui-cs.po
@@ -8,7 +8,7 @@ msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2020-09-11 09:41+0200\n"
-"PO-Revision-Date: 2020-08-05 06:58+0000\n"
+"PO-Revision-Date: 2020-09-22 21:49+0000\n"
 "Last-Translator: Stanislav Horáček <stanislav.horacek at gmail.com>\n"
 "Language-Team: Czech <https://weblate.documentfoundation.org/projects/libo_online/loleaflet-ui/cs/>\n"
 "Language: cs\n"
@@ -61,23 +61,17 @@ msgid "User Name"
 msgstr "Uživatelské jméno"
 
 #: admin/admin.strings.js:16
-#, fuzzy
-#| msgid "Documents opened"
 msgid "Documents open"
 msgstr "Otevřené dokumenty"
 
 #: admin/admin.strings.js:17 admin/src/AdminSocketOverview.js:73
 #: admin/src/AdminSocketOverview.js:117 admin/src/AdminSocketOverview.js:328
-#, fuzzy
-#| msgid "0 users"
 msgid " user(s)."
-msgstr "Žádný uživatel"
+msgstr " uživatelů"
 
 #: admin/admin.strings.js:18 admin/src/AdminSocketOverview.js:186
-#, fuzzy
-#| msgid "Documents opened"
 msgid " document(s) open."
-msgstr "Otevřené dokumenty"
+msgstr " otevřených dokumentů."
 
 #: admin/admin.strings.js:19
 msgid "Number of Documents"
@@ -105,7 +99,7 @@ msgstr "Dokument"
 
 #: admin/admin.strings.js:25
 msgid "Views"
-msgstr ""
+msgstr "Zobrazení"
 
 #: admin/admin.strings.js:26
 msgid "Elapsed time"
@@ -163,7 +157,7 @@ msgstr "Časový interval statistiky procesoru (v ms)"
 
 #: admin/admin.strings.js:39 admin/src/AdminSocketOverview.js:91
 msgid "Kill session."
-msgstr ""
+msgstr "Ukončit relaci."
 
 #: admin/admin.strings.js:40
 msgid "Maximum Document process virtual memory (in MB) - reduce only"
@@ -962,7 +956,7 @@ msgstr "~Revize"
 #: src/control/Control.NotebookbarWriter.js:43
 #: src/control/Control.NotebookbarImpress.js:107
 msgid "Format"
-msgstr ""
+msgstr "Formát"
 
 #: src/control/Control.NotebookbarWriter.js:48
 #: src/control/Control.NotebookbarImpress.js:112
@@ -1450,10 +1444,8 @@ msgid "Resolve"
 msgstr "Vyřešit"
 
 #: src/layer/tile/TileLayer.js:826
-#, fuzzy
-#| msgid "Function Wizard"
 msgid "Functions"
-msgstr "Průvodce funkcí"
+msgstr "Funkce"
 
 #: src/map/Clipboard.js:137
 msgid "To paste outside %productName, please first click the 'download' button"
diff --git a/loleaflet/po/ui-dsb.po b/loleaflet/po/ui-dsb.po
index d2f3d0559..78c2c1ae7 100644
--- a/loleaflet/po/ui-dsb.po
+++ b/loleaflet/po/ui-dsb.po
@@ -8,7 +8,7 @@ msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2020-09-11 09:41+0200\n"
-"PO-Revision-Date: 2020-08-04 21:18+0000\n"
+"PO-Revision-Date: 2020-09-24 09:06+0000\n"
 "Last-Translator: Michael Wolf <milupo at sorbzilla.de>\n"
 "Language-Team: Lower Sorbian <https://weblate.documentfoundation.org/projects/libo_online/loleaflet-ui/dsb/>\n"
 "Language: dsb\n"
@@ -61,23 +61,17 @@ msgid "User Name"
 msgstr "Wužywarske mě"
 
 #: admin/admin.strings.js:16
-#, fuzzy
-#| msgid "Documents opened"
 msgid "Documents open"
 msgstr "Wócynjone dokumenty"
 
 #: admin/admin.strings.js:17 admin/src/AdminSocketOverview.js:73
 #: admin/src/AdminSocketOverview.js:117 admin/src/AdminSocketOverview.js:328
-#, fuzzy
-#| msgid "0 users"
 msgid " user(s)."
-msgstr "0 wužywarjow"
+msgstr " wužywarjow."
 
 #: admin/admin.strings.js:18 admin/src/AdminSocketOverview.js:186
-#, fuzzy
-#| msgid "Documents opened"
 msgid " document(s) open."
-msgstr "Wócynjone dokumenty"
+msgstr " wócynjone dokumenty."
 
 #: admin/admin.strings.js:19
 msgid "Number of Documents"
@@ -105,7 +99,7 @@ msgstr "Dokument"
 
 #: admin/admin.strings.js:25
 msgid "Views"
-msgstr ""
+msgstr "Naglědy"
 
 #: admin/admin.strings.js:26
 msgid "Elapsed time"
@@ -163,7 +157,7 @@ msgstr "Casowy interwal CPU-statistiki (w ms)"
 
 #: admin/admin.strings.js:39 admin/src/AdminSocketOverview.js:91
 msgid "Kill session."
-msgstr ""
+msgstr "Pósejźenje znicyś."
 
 #: admin/admin.strings.js:40
 msgid "Maximum Document process virtual memory (in MB) - reduce only"
@@ -962,7 +956,7 @@ msgstr "~Pśeglědanje"
 #: src/control/Control.NotebookbarWriter.js:43
 #: src/control/Control.NotebookbarImpress.js:107
 msgid "Format"
-msgstr ""
+msgstr "Format"
 
 #: src/control/Control.NotebookbarWriter.js:48
 #: src/control/Control.NotebookbarImpress.js:112
@@ -1450,10 +1444,8 @@ msgid "Resolve"
 msgstr "Rozwězaś"
 
 #: src/layer/tile/TileLayer.js:826
-#, fuzzy
-#| msgid "Function Wizard"
 msgid "Functions"
-msgstr "Funkciski asistent"
+msgstr "Funkcije"
 
 #: src/map/Clipboard.js:137
 msgid "To paste outside %productName, please first click the 'download' button"
diff --git a/loleaflet/po/ui-gl.po b/loleaflet/po/ui-gl.po
index 38e5e8407..a400cd22d 100644
--- a/loleaflet/po/ui-gl.po
+++ b/loleaflet/po/ui-gl.po
@@ -8,7 +8,7 @@ msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2020-09-11 09:41+0200\n"
-"PO-Revision-Date: 2020-08-17 11:54+0000\n"
+"PO-Revision-Date: 2020-09-23 07:49+0000\n"
 "Last-Translator: Xosé <xosecalvo at gmail.com>\n"
 "Language-Team: Galician <https://weblate.documentfoundation.org/projects/libo_online/loleaflet-ui/gl/>\n"
 "Language: gl\n"
@@ -61,23 +61,17 @@ msgid "User Name"
 msgstr "Nome de usuario"
 
 #: admin/admin.strings.js:16
-#, fuzzy
-#| msgid "Documents opened"
 msgid "Documents open"
 msgstr "Documentos abertos"
 
 #: admin/admin.strings.js:17 admin/src/AdminSocketOverview.js:73
 #: admin/src/AdminSocketOverview.js:117 admin/src/AdminSocketOverview.js:328
-#, fuzzy
-#| msgid "0 users"
 msgid " user(s)."
-msgstr "0 usuarios"
+msgstr " usuario(s)."
 
 #: admin/admin.strings.js:18 admin/src/AdminSocketOverview.js:186
-#, fuzzy
-#| msgid "Documents opened"
 msgid " document(s) open."
-msgstr "Documentos abertos"
+msgstr " documento(s) aberto(s)."
 
 #: admin/admin.strings.js:19
 msgid "Number of Documents"
@@ -105,7 +99,7 @@ msgstr "Documento"
 
 #: admin/admin.strings.js:25
 msgid "Views"
-msgstr ""
+msgstr "Vistas"
 
 #: admin/admin.strings.js:26
 msgid "Elapsed time"
@@ -163,7 +157,7 @@ msgstr "Intervalo de tempo da estatística da CPU (en ms)"
 
 #: admin/admin.strings.js:39 admin/src/AdminSocketOverview.js:91
 msgid "Kill session."
-msgstr ""
+msgstr "Rematar sesión."
 
 #: admin/admin.strings.js:40
 msgid "Maximum Document process virtual memory (in MB) - reduce only"
@@ -962,7 +956,7 @@ msgstr "~Revisión"
 #: src/control/Control.NotebookbarWriter.js:43
 #: src/control/Control.NotebookbarImpress.js:107
 msgid "Format"
-msgstr ""
+msgstr "Formatar"
 
 #: src/control/Control.NotebookbarWriter.js:48
 #: src/control/Control.NotebookbarImpress.js:112
@@ -1450,10 +1444,8 @@ msgid "Resolve"
 msgstr "Solucionar"
 
 #: src/layer/tile/TileLayer.js:826
-#, fuzzy
-#| msgid "Function Wizard"
 msgid "Functions"
-msgstr "Asistente de funcións"
+msgstr "Funcións"
 
 #: src/map/Clipboard.js:137
 msgid "To paste outside %productName, please first click the 'download' button"
diff --git a/loleaflet/po/ui-hsb.po b/loleaflet/po/ui-hsb.po
index bf436576c..b5495365e 100644
--- a/loleaflet/po/ui-hsb.po
+++ b/loleaflet/po/ui-hsb.po
@@ -8,7 +8,7 @@ msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2020-09-11 09:41+0200\n"
-"PO-Revision-Date: 2020-08-04 21:18+0000\n"
+"PO-Revision-Date: 2020-09-24 09:06+0000\n"
 "Last-Translator: Michael Wolf <milupo at sorbzilla.de>\n"
 "Language-Team: Upper Sorbian <https://weblate.documentfoundation.org/projects/libo_online/loleaflet-ui/hsb/>\n"
 "Language: hsb\n"
@@ -61,23 +61,17 @@ msgid "User Name"
 msgstr "Wužiwarske mjeno"
 
 #: admin/admin.strings.js:16
-#, fuzzy
-#| msgid "Documents opened"
 msgid "Documents open"
 msgstr "Wočinjene dokumenty"
 
 #: admin/admin.strings.js:17 admin/src/AdminSocketOverview.js:73
 #: admin/src/AdminSocketOverview.js:117 admin/src/AdminSocketOverview.js:328
-#, fuzzy
-#| msgid "0 users"
 msgid " user(s)."
-msgstr "0 wužiwarjow"
+msgstr " wužiwarjow."
 
 #: admin/admin.strings.js:18 admin/src/AdminSocketOverview.js:186
-#, fuzzy
-#| msgid "Documents opened"
 msgid " document(s) open."
-msgstr "Wočinjene dokumenty"
+msgstr " wočinjene dokumenty."
 
 #: admin/admin.strings.js:19
 msgid "Number of Documents"
@@ -105,7 +99,7 @@ msgstr "Dokument"
 
 #: admin/admin.strings.js:25
 msgid "Views"
-msgstr ""
+msgstr "Napohlady"
 
 #: admin/admin.strings.js:26
 msgid "Elapsed time"
@@ -163,7 +157,7 @@ msgstr "Časowy interwal CPU-statistiki (w ms)"
 
 #: admin/admin.strings.js:39 admin/src/AdminSocketOverview.js:91
 msgid "Kill session."
-msgstr ""
+msgstr "Posedźenje zničić."
 
 #: admin/admin.strings.js:40
 msgid "Maximum Document process virtual memory (in MB) - reduce only"
@@ -962,7 +956,7 @@ msgstr "~Přepruwowanje"
 #: src/control/Control.NotebookbarWriter.js:43
 #: src/control/Control.NotebookbarImpress.js:107
 msgid "Format"
-msgstr ""
+msgstr "Format"
 
 #: src/control/Control.NotebookbarWriter.js:48
 #: src/control/Control.NotebookbarImpress.js:112
@@ -1450,10 +1444,8 @@ msgid "Resolve"
 msgstr "Rozrisać"
 
 #: src/layer/tile/TileLayer.js:826
-#, fuzzy
-#| msgid "Function Wizard"
 msgid "Functions"
-msgstr "Funkciski asistent"
+msgstr "Funkcije"
 
 #: src/map/Clipboard.js:137
 msgid "To paste outside %productName, please first click the 'download' button"
diff --git a/loleaflet/po/ui-sl.po b/loleaflet/po/ui-sl.po
index a7f68dcc0..fb45a7ffc 100644
--- a/loleaflet/po/ui-sl.po
+++ b/loleaflet/po/ui-sl.po
@@ -5,7 +5,7 @@ msgstr ""
 "Project-Id-Version: LibreOffice Online UI\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2020-09-11 09:41+0200\n"
-"PO-Revision-Date: 2020-08-05 16:46+0000\n"
+"PO-Revision-Date: 2020-09-22 21:49+0000\n"
 "Last-Translator: Martin Srebotnjak <miles at filmsi.net>\n"
 "Language-Team: Slovenian <https://weblate.documentfoundation.org/projects/libo_online/loleaflet-ui/sl/>\n"
 "Language: sl\n"
@@ -58,23 +58,17 @@ msgid "User Name"
 msgstr "Uporabniško ime"
 
 #: admin/admin.strings.js:16
-#, fuzzy
-#| msgid "Documents opened"
 msgid "Documents open"
-msgstr "odprtih dokumentov"
+msgstr "Odprti dokumenti"
 
 #: admin/admin.strings.js:17 admin/src/AdminSocketOverview.js:73
 #: admin/src/AdminSocketOverview.js:117 admin/src/AdminSocketOverview.js:328
-#, fuzzy
-#| msgid "0 users"
 msgid " user(s)."
-msgstr "0 uporabnikov"
+msgstr " uporabnik(ov)."
 
 #: admin/admin.strings.js:18 admin/src/AdminSocketOverview.js:186
-#, fuzzy
-#| msgid "Documents opened"
 msgid " document(s) open."
-msgstr "odprtih dokumentov"
+msgstr " odprtih dokumentov."
 
 #: admin/admin.strings.js:19
 msgid "Number of Documents"
@@ -102,7 +96,7 @@ msgstr "Dokument"
 
 #: admin/admin.strings.js:25
 msgid "Views"
-msgstr ""
+msgstr "Pogledi"
 
 #: admin/admin.strings.js:26
 msgid "Elapsed time"
@@ -160,7 +154,7 @@ msgstr "Časovni interval za statistiko CPE (v ms)"
 
 #: admin/admin.strings.js:39 admin/src/AdminSocketOverview.js:91
 msgid "Kill session."
-msgstr ""
+msgstr "Ubij sejo."
 
 #: admin/admin.strings.js:40
 msgid "Maximum Document process virtual memory (in MB) - reduce only"
@@ -959,7 +953,7 @@ msgstr "P~regled"
 #: src/control/Control.NotebookbarWriter.js:43
 #: src/control/Control.NotebookbarImpress.js:107
 msgid "Format"
-msgstr ""
+msgstr "Oblika"
 
 #: src/control/Control.NotebookbarWriter.js:48
 #: src/control/Control.NotebookbarImpress.js:112
@@ -1447,10 +1441,8 @@ msgid "Resolve"
 msgstr "Razreši"
 
 #: src/layer/tile/TileLayer.js:826
-#, fuzzy
-#| msgid "Function Wizard"
 msgid "Functions"
-msgstr "Čarovnik za funkcije"
+msgstr "Funkcije"
 
 #: src/map/Clipboard.js:137
 msgid "To paste outside %productName, please first click the 'download' button"
commit b219e81e69b547fcec13337c67e6b9f386d9a3e6
Author:     gokaysatir <gokaysatir at collabora.com>
AuthorDate: Wed Sep 23 17:10:56 2020 +0300
Commit:     Andras Timar <andras.timar at collabora.com>
CommitDate: Fri Sep 25 15:44:20 2020 +0200

    Loleaflet: Show sheet feature is enabled also for mobile.
    
    Change-Id: I60dd7354ee5e54c00e8ea78f93d15b34ab5c1fda
    Reviewed-on: https://gerrit.libreoffice.org/c/online/+/103259
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice at gmail.com>
    Tested-by: Henry Castro <hcastro at collabora.com>
    Reviewed-by: Henry Castro <hcastro at collabora.com>

diff --git a/loleaflet/src/control/Parts.js b/loleaflet/src/control/Parts.js
index 427a3238f..0e52e7472 100644
--- a/loleaflet/src/control/Parts.js
+++ b/loleaflet/src/control/Parts.js
@@ -2,6 +2,9 @@
 /*
  * Document parts switching and selecting handler
  */
+
+/* global vex */
+
 L.Map.include({
 	setPart: function (part, external, calledFromSetPartHandler) {
 		var docLayer = this._docLayer;
@@ -345,7 +348,43 @@ L.Map.include({
 
 	showPage: function () {
 		if (this.getDocType() === 'spreadsheet' && this.hasAnyHiddenPart()) {
-			this._socket.sendMessage('uno .uno:Show');
+			var partNames_ = this._docLayer._partNames;
+			var hiddenParts_ = this._docLayer._hiddenParts;
+
+			if (hiddenParts_.length > 0) {
+				var container = document.createElement('div');
+				container.style.maxHeight = '300px';
+				container.style.maxWidth = '200px';
+				for (var i = 0; i < hiddenParts_.length; i++) {
+					var checkbox = document.createElement('input');
+					checkbox.type = 'checkbox';
+					checkbox.id = 'hidden-part-checkbox-' + String(hiddenParts_[i]);
+					var label = document.createElement('label');
+					label.htmlFor = 'hidden-part-checkbox-' + String(hiddenParts_[i]);
+					label.innerText = partNames_[hiddenParts_[i]];
+					var newLine = document.createElement('br');
+					container.appendChild(checkbox);
+					container.appendChild(label);
+					container.appendChild(newLine);
+				}
+			}
+
+			var socket_ = this._socket;
+			vex.dialog.confirm({
+				unsafeMessage: container.outerHTML,
+				callback: function (value) {
+					if (value === true) {
+						var checkboxList = document.querySelectorAll('input[id^="hidden-part-checkbox"]');
+						for (var i = 0; i < checkboxList.length; i++) {
+							if (checkboxList[i].checked === true) {
+								var partName_ = partNames_[parseInt(checkboxList[i].id.replace('hidden-part-checkbox-', ''))];
+								var argument = {aTableName: {type: 'string', value: partName_}};
+								socket_.sendMessage('uno .uno:Show ' + JSON.stringify(argument));
+							}
+						}
+					}
+				}
+			});
 		}
 	},
 
commit 351792c4c35de09edc3756e69ced2c158a64fac2
Author:     Tamás Zolnai <tamas.zolnai at collabora.com>
AuthorDate: Thu Sep 24 09:02:58 2020 +0200
Commit:     Andras Timar <andras.timar at collabora.com>
CommitDate: Fri Sep 25 15:44:16 2020 +0200

    cypress: NC: extract some helper methods for nextcloud specific features.
    
    Change-Id: I47b1811ce08888501733544eaa42b8b117a08a8c
    Reviewed-on: https://gerrit.libreoffice.org/c/online/+/103292
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice at gmail.com>
    Reviewed-by: Tamás Zolnai <tamas.zolnai at collabora.com>

diff --git a/cypress_test/integration_tests/common/nextcloud_helper.js b/cypress_test/integration_tests/common/nextcloud_helper.js
new file mode 100644
index 000000000..304c814e9
--- /dev/null
+++ b/cypress_test/integration_tests/common/nextcloud_helper.js
@@ -0,0 +1,123 @@
+/* global cy Cypress require */
+
+var mobileHelper = require('./mobile_helper');
+
+function checkAndCloseRevisionHistory() {
+	mobileHelper.openHamburgerMenu();
+
+	cy.contains('.menu-entry-with-icon', 'File')
+		.click();
+
+	cy.contains('.menu-entry-with-icon', 'See revision history')
+		.then(function(item) {
+			Cypress.env('IFRAME_LEVEL', '');
+			cy.wrap(item)
+				.click();
+		});
+	cy.get('#app-sidebar')
+		.should('be.visible');
+
+	cy.get('section#tab-versionsTabView')
+		.should('be.visible');
+
+	cy.get('.app-sidebar__close.icon-close')
+		.then(function(item) {
+			Cypress.env('IFRAME_LEVEL', '1');
+			cy.wrap(item)
+				.click();
+		});
+
+	cy.get('#revViewerContainer .icon-close')
+		.then(function(item) {
+			Cypress.env('IFRAME_LEVEL', '2');
+			cy.wrap(item)
+				.click();
+		});
+}
+
+function checkAndCloseSharing() {
+	mobileHelper.openHamburgerMenu();
+
+	cy.contains('.menu-entry-with-icon', 'File')
+		.click();
+
+	cy.contains('.menu-entry-with-icon', 'Share...')
+		.then(function(item) {
+			Cypress.env('IFRAME_LEVEL', '');
+			cy.wrap(item)
+				.click();
+		});
+
+	cy.get('#app-sidebar')
+		.should('be.visible');
+
+	// issue here
+	//cy.get('section#sharing')
+	//	.should('be.visible');
+
+	cy.get('.app-sidebar__close.icon-close')
+		.then(function(item) {
+			Cypress.env('IFRAME_LEVEL', '2');
+			cy.wrap(item)
+				.click();
+		});
+}
+
+function insertImageFromStorage(fileName) {
+	mobileHelper.openInsertionWizard();
+
+	cy.get('.insertgraphicremote')
+		.then(function(item) {
+			Cypress.env('IFRAME_LEVEL', '');
+			cy.wrap(item)
+				.click();
+		});
+
+	cy.get('.oc-dialog')
+		.should('be.visible');
+
+	cy.get('tr[data-entryname=\'' + fileName + '\']')
+		.click();
+
+	cy.get('.oc-dialog-buttonrow .primary')
+		.then(function(item) {
+			Cypress.env('IFRAME_LEVEL', '2');
+			cy.wrap(item)
+				.click();
+		});
+}
+
+function saveFileAs(fileName) {
+	mobileHelper.enableEditingMobile();
+
+	mobileHelper.openHamburgerMenu();
+
+	cy.contains('.menu-entry-with-icon', 'File')
+		.click();
+
+	cy.contains('.menu-entry-with-icon', 'Save As...')
+		.then(function(item) {
+			Cypress.env('IFRAME_LEVEL', '1');
+			cy.wrap(item)
+				.click();
+		});
+
+	cy.get('.oc-dialog')
+		.should('be.visible');
+
+	cy.get('.oc-dialog input')
+		.clear()
+		.type(fileName);
+
+	cy.get('.oc-dialog-buttonrow .primary')
+		.then(function(item) {
+			Cypress.env('IFRAME_LEVEL', '2');
+			cy.wrap(item)
+				.click();
+		});
+}
+
+module.exports.checkAndCloseRevisionHistory = checkAndCloseRevisionHistory;
+module.exports.checkAndCloseSharing = checkAndCloseSharing;
+module.exports.insertImageFromStorage = insertImageFromStorage;
+module.exports.saveFileAs = saveFileAs;
diff --git a/cypress_test/integration_tests/mobile/calc/nextcloud_spec.js b/cypress_test/integration_tests/mobile/calc/nextcloud_spec.js
index 5423ec68c..a384e2c29 100644
--- a/cypress_test/integration_tests/mobile/calc/nextcloud_spec.js
+++ b/cypress_test/integration_tests/mobile/calc/nextcloud_spec.js
@@ -2,6 +2,7 @@
 
 var helper = require('../../common/helper');
 var mobileHelper = require('../../common/mobile_helper');
+var nextcloudHelper = require('../../common/nextcloud_helper');
 
 describe('Nextcloud specific tests.', function() {
 	var testFileName = 'nextcloud.ods';
@@ -15,30 +16,9 @@ describe('Nextcloud specific tests.', function() {
 
 		helper.beforeAll(testFileName, 'calc', undefined, true);
 
-		// Click on edit button
 		mobileHelper.enableEditingMobile();
 
-		mobileHelper.openInsertionWizard();
-
-		cy.get('.insertgraphicremote')
-			.then(function(item) {
-				Cypress.env('IFRAME_LEVEL', '');
-				cy.wrap(item)
-					.click();
-			});
-
-		cy.get('.oc-dialog')
-			.should('be.visible');
-
-		cy.get('tr[data-entryname=\'image_to_insert.png\']')
-			.click();
-
-		cy.get('.oc-dialog-buttonrow .primary')
-			.then(function(item) {
-				Cypress.env('IFRAME_LEVEL', '2');
-				cy.wrap(item)
-					.click();
-			});
+		nextcloudHelper.insertImageFromStorage('image_to_insert.png');
 
 		// TOD
 		//cy.get('.leaflet-pane.leaflet-overlay-pane svg g.Graphic')
@@ -51,31 +31,7 @@ describe('Nextcloud specific tests.', function() {
 		// Click on edit button
 		mobileHelper.enableEditingMobile();
 
-		mobileHelper.openHamburgerMenu();
-
-		cy.contains('.menu-entry-with-icon', 'File')
-			.click();
-
-		cy.contains('.menu-entry-with-icon', 'Save As...')
-			.then(function(item) {
-				Cypress.env('IFRAME_LEVEL', '1');
-				cy.wrap(item)
-					.click();
-			});
-
-		cy.get('.oc-dialog')
-			.should('be.visible');
-
-		cy.get('.oc-dialog input')
-			.clear()
-			.type('1' + testFileName);
-
-		cy.get('.oc-dialog-buttonrow .primary')
-			.then(function(item) {
-				Cypress.env('IFRAME_LEVEL', '2');
-				cy.wrap(item)
-					.click();
-			});
+		nextcloudHelper.saveFileAs('1' + testFileName);
 
 		// Close the document
 		cy.get('#mobile-edit-button')
@@ -98,73 +54,17 @@ describe('Nextcloud specific tests.', function() {
 	it('Share.', function() {
 		helper.beforeAll(testFileName, 'calc');
 
-		// Click on edit button
 		mobileHelper.enableEditingMobile();
 
-		mobileHelper.openHamburgerMenu();
-
-		cy.contains('.menu-entry-with-icon', 'File')
-			.click();
-
-		cy.contains('.menu-entry-with-icon', 'Share...')
-			.then(function(item) {
-				Cypress.env('IFRAME_LEVEL', '');
-				cy.wrap(item)
-					.click();
-			});
-
-		cy.get('#app-sidebar')
-			.should('be.visible');
-
-		// issue here
-		//cy.get('section#sharing')
-		//	.should('be.visible');
-
-		cy.get('.app-sidebar__close.icon-close')
-			.then(function(item) {
-				Cypress.env('IFRAME_LEVEL', '2');
-				cy.wrap(item)
-					.click();
-			});
+		nextcloudHelper.checkAndCloseSharing();
 	});
 
 	it('Revision history.', function() {
 		helper.beforeAll(testFileName, 'calc');
 
-		// Click on edit button
 		mobileHelper.enableEditingMobile();
 
-		mobileHelper.openHamburgerMenu();
-
-		cy.contains('.menu-entry-with-icon', 'File')
-			.click();
-
-		cy.contains('.menu-entry-with-icon', 'See revision history')
-			.then(function(item) {
-				Cypress.env('IFRAME_LEVEL', '');
-				cy.wrap(item)
-					.click();
-			});
-
-		cy.get('#app-sidebar')
-			.should('be.visible');
-
-		cy.get('section#tab-versionsTabView')
-			.should('be.visible');
-
-		cy.get('.app-sidebar__close.icon-close')
-			.then(function(item) {
-				Cypress.env('IFRAME_LEVEL', '1');
-				cy.wrap(item)
-					.click();
-			});
-
-		cy.get('#revViewerContainer .icon-close')
-			.then(function(item) {
-				Cypress.env('IFRAME_LEVEL', '2');
-				cy.wrap(item)
-					.click();
-			});
+		nextcloudHelper.checkAndCloseRevisionHistory();
 	});
 });
 
diff --git a/cypress_test/integration_tests/mobile/impress/nextcloud_spec.js b/cypress_test/integration_tests/mobile/impress/nextcloud_spec.js
index ea2cc9e4b..b16398298 100644
--- a/cypress_test/integration_tests/mobile/impress/nextcloud_spec.js
+++ b/cypress_test/integration_tests/mobile/impress/nextcloud_spec.js
@@ -2,6 +2,7 @@
 
 var helper = require('../../common/helper');
 var mobileHelper = require('../../common/mobile_helper');
+var nextcloudHelper = require('../../common/nextcloud_helper');
 
 describe('Nextcloud specific tests.', function() {
 	var testFileName = 'nextcloud.odp';
@@ -15,30 +16,9 @@ describe('Nextcloud specific tests.', function() {
 
 		helper.beforeAll(testFileName, 'impress', undefined, true);
 
-		// Click on edit button
 		mobileHelper.enableEditingMobile();
 
-		mobileHelper.openInsertionWizard();
-
-		cy.get('.insertgraphicremote')
-			.then(function(item) {
-				Cypress.env('IFRAME_LEVEL', '');
-				cy.wrap(item)
-					.click();
-			});
-
-		cy.get('.oc-dialog')
-			.should('be.visible');
-
-		cy.get('tr[data-entryname=\'image_to_insert.png\']')
-			.click();
-
-		cy.get('.oc-dialog-buttonrow .primary')
-			.then(function(item) {
-				Cypress.env('IFRAME_LEVEL', '2');
-				cy.wrap(item)
-					.click();
-			});
+		nextcloudHelper.insertImageFromStorage('image_to_insert.png');
 
 		cy.get('.leaflet-pane.leaflet-overlay-pane svg g')
 			.should('exist');
@@ -50,31 +30,7 @@ describe('Nextcloud specific tests.', function() {
 		// Click on edit button
 		mobileHelper.enableEditingMobile();
 
-		mobileHelper.openHamburgerMenu();
-
-		cy.contains('.menu-entry-with-icon', 'File')
-			.click();
-
-		cy.contains('.menu-entry-with-icon', 'Save As...')
-			.then(function(item) {
-				Cypress.env('IFRAME_LEVEL', '1');
-				cy.wrap(item)
-					.click();
-			});
-
-		cy.get('.oc-dialog')
-			.should('be.visible');
-
-		cy.get('.oc-dialog input')
-			.clear()
-			.type('1' + testFileName);
-
-		cy.get('.oc-dialog-buttonrow .primary')
-			.then(function(item) {
-				Cypress.env('IFRAME_LEVEL', '2');
-				cy.wrap(item)
-					.click();
-			});
+		nextcloudHelper.saveFileAs('1' + testFileName);
 
 		// Close the document
 		cy.get('#mobile-edit-button')
@@ -97,73 +53,17 @@ describe('Nextcloud specific tests.', function() {
 	it('Share.', function() {
 		helper.beforeAll(testFileName, 'impress');
 
-		// Click on edit button
 		mobileHelper.enableEditingMobile();
 
-		mobileHelper.openHamburgerMenu();
-
-		cy.contains('.menu-entry-with-icon', 'File')
-			.click();
-
-		cy.contains('.menu-entry-with-icon', 'Share...')
-			.then(function(item) {
-				Cypress.env('IFRAME_LEVEL', '');
-				cy.wrap(item)
-					.click();
-			});
-
-		cy.get('#app-sidebar')
-			.should('be.visible');
-
-		// issue here
-		//cy.get('section#sharing')
-		//	.should('be.visible');
-
-		cy.get('.app-sidebar__close.icon-close')
-			.then(function(item) {
-				Cypress.env('IFRAME_LEVEL', '2');
-				cy.wrap(item)
-					.click();
-			});
+		nextcloudHelper.checkAndCloseSharing();
 	});
 
 	it('Revision history.', function() {
 		helper.beforeAll(testFileName, 'impress');
 
-		// Click on edit button
 		mobileHelper.enableEditingMobile();
 
-		mobileHelper.openHamburgerMenu();
-
-		cy.contains('.menu-entry-with-icon', 'File')
-			.click();
-
-		cy.contains('.menu-entry-with-icon', 'See revision history')
-			.then(function(item) {
-				Cypress.env('IFRAME_LEVEL', '');
-				cy.wrap(item)
-					.click();
-			});
-
-		cy.get('#app-sidebar')
-			.should('be.visible');
-
-		cy.get('section#tab-versionsTabView')
-			.should('be.visible');
-
-		cy.get('.app-sidebar__close.icon-close')
-			.then(function(item) {
-				Cypress.env('IFRAME_LEVEL', '1');
-				cy.wrap(item)
-					.click();
-			});
-
-		cy.get('#revViewerContainer .icon-close')
-			.then(function(item) {
-				Cypress.env('IFRAME_LEVEL', '2');
-				cy.wrap(item)
-					.click();
-			});
+		nextcloudHelper.checkAndCloseRevisionHistory();
 	});
 });
 
diff --git a/cypress_test/integration_tests/mobile/writer/nextcloud_spec.js b/cypress_test/integration_tests/mobile/writer/nextcloud_spec.js
index 717ea1e0d..5224cb090 100644
--- a/cypress_test/integration_tests/mobile/writer/nextcloud_spec.js
+++ b/cypress_test/integration_tests/mobile/writer/nextcloud_spec.js
@@ -2,6 +2,7 @@
 
 var helper = require('../../common/helper');
 var mobileHelper = require('../../common/mobile_helper');
+var nextcloudHelper = require('../../common/nextcloud_helper');
 
 describe('Nextcloud specific tests.', function() {
 	var testFileName = 'nextcloud.odt';
@@ -15,30 +16,9 @@ describe('Nextcloud specific tests.', function() {
 
 		helper.beforeAll(testFileName, 'writer', undefined, true);
 
-		// Click on edit button
 		mobileHelper.enableEditingMobile();
 
-		mobileHelper.openInsertionWizard();
-
-		cy.get('.insertgraphicremote')
-			.then(function(item) {
-				Cypress.env('IFRAME_LEVEL', '');
-				cy.wrap(item)
-					.click();
-			});
-
-		cy.get('.oc-dialog')
-			.should('be.visible');
-
-		cy.get('tr[data-entryname=\'image_to_insert.png\']')
-			.click();
-
-		cy.get('.oc-dialog-buttonrow .primary')
-			.then(function(item) {
-				Cypress.env('IFRAME_LEVEL', '2');
-				cy.wrap(item)
-					.click();
-			});
+		nextcloudHelper.insertImageFromStorage('image_to_insert.png');
 
 		cy.get('.leaflet-pane.leaflet-overlay-pane svg g.Graphic')
 			.should('exist');
@@ -47,34 +27,9 @@ describe('Nextcloud specific tests.', function() {
 	it('Save as.', function() {
 		helper.beforeAll(testFileName, 'writer');
 
-		// Click on edit button
 		mobileHelper.enableEditingMobile();
 
-		mobileHelper.openHamburgerMenu();
-
-		cy.contains('.menu-entry-with-icon', 'File')
-			.click();
-
-		cy.contains('.menu-entry-with-icon', 'Save As...')
-			.then(function(item) {
-				Cypress.env('IFRAME_LEVEL', '1');
-				cy.wrap(item)
-					.click();
-			});
-
-		cy.get('.oc-dialog')
-			.should('be.visible');
-
-		cy.get('.oc-dialog input')
-			.clear()
-			.type('1' + testFileName);
-
-		cy.get('.oc-dialog-buttonrow .primary')
-			.then(function(item) {
-				Cypress.env('IFRAME_LEVEL', '2');
-				cy.wrap(item)
-					.click();
-			});
+		nextcloudHelper.saveFileAs('1' + testFileName);
 
 		// Close the document
 		cy.get('#mobile-edit-button')
@@ -97,73 +52,17 @@ describe('Nextcloud specific tests.', function() {
 	it('Share.', function() {
 		helper.beforeAll(testFileName, 'writer');
 
-		// Click on edit button
 		mobileHelper.enableEditingMobile();
 
-		mobileHelper.openHamburgerMenu();
-
-		cy.contains('.menu-entry-with-icon', 'File')
-			.click();
-
-		cy.contains('.menu-entry-with-icon', 'Share...')
-			.then(function(item) {
-				Cypress.env('IFRAME_LEVEL', '');
-				cy.wrap(item)
-					.click();
-			});
-
-		cy.get('#app-sidebar')
-			.should('be.visible');
-
-		// issue here
-		//cy.get('section#sharing')
-		//	.should('be.visible');
-
-		cy.get('.app-sidebar__close.icon-close')
-			.then(function(item) {
-				Cypress.env('IFRAME_LEVEL', '2');
-				cy.wrap(item)
-					.click();
-			});
+		nextcloudHelper.checkAndCloseSharing();
 	});
 
 	it('Revision history.', function() {
 		helper.beforeAll(testFileName, 'writer');
 
-		// Click on edit button
 		mobileHelper.enableEditingMobile();
 
-		mobileHelper.openHamburgerMenu();
-
-		cy.contains('.menu-entry-with-icon', 'File')
-			.click();
-
-		cy.contains('.menu-entry-with-icon', 'See revision history')
-			.then(function(item) {
-				Cypress.env('IFRAME_LEVEL', '');
-				cy.wrap(item)
-					.click();
-			});
-
-		cy.get('#app-sidebar')
-			.should('be.visible');
-
-		cy.get('section#tab-versionsTabView')
-			.should('be.visible');
-
-		cy.get('.app-sidebar__close.icon-close')
-			.then(function(item) {
-				Cypress.env('IFRAME_LEVEL', '1');
-				cy.wrap(item)
-					.click();
-			});
-
-		cy.get('#revViewerContainer .icon-close')
-			.then(function(item) {
-				Cypress.env('IFRAME_LEVEL', '2');
-				cy.wrap(item)
-					.click();
-			});
+		nextcloudHelper.checkAndCloseRevisionHistory();
 	});
 });
 
commit 72c2e94f5489b49c1072d2b4d113aa1dbeb8b342
Author:     Tamás Zolnai <tamas.zolnai at collabora.com>
AuthorDate: Thu Sep 24 08:04:52 2020 +0200
Commit:     Andras Timar <andras.timar at collabora.com>
CommitDate: Fri Sep 25 15:44:11 2020 +0200

    cypress: check close/edit button state on mobile.
    
    Change-Id: I576f2d8358fd922a10fd4a9e846dd28b49191cb3
    Reviewed-on: https://gerrit.libreoffice.org/c/online/+/103291
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice at gmail.com>
    Reviewed-by: Tamás Zolnai <tamas.zolnai at collabora.com>

diff --git a/cypress_test/integration_tests/common/mobile_helper.js b/cypress_test/integration_tests/common/mobile_helper.js
index 9875b29d9..1396ef6ca 100644
--- a/cypress_test/integration_tests/common/mobile_helper.js
+++ b/cypress_test/integration_tests/common/mobile_helper.js
@@ -9,13 +9,24 @@ function enableEditingMobile() {
 	cy.get('#mobile-edit-button')
 		.then(function(button) {
 			if (button.css('display') !== 'none') {
+
+				cy.get('#tb_actionbar_item_closemobile .editmode')
+					.should('not.exist');
+
+				cy.get('#tb_actionbar_item_closemobile .closemobile')
+					.should('be.visible');
+
 				cy.get('#mobile-edit-button')
 					.click();
 			}
 		});
 
-	cy.get('#tb_actionbar_item_mobile_wizard')
-		.should('not.have.class', 'disabled');
+
+	cy.get('#tb_actionbar_item_closemobile .editmode')
+		.should('be.visible');
+
+	cy.get('#tb_actionbar_item_closemobile .closemobile')
+		.should('not.exist');
 
 	// Wait until all UI update is finished.
 	cy.get('#toolbar-down')
commit 83e68205c6d1b4ba08673ed525ff29d6ba69e777
Author:     Tamás Zolnai <tamas.zolnai at collabora.com>
AuthorDate: Thu Sep 24 07:57:11 2020 +0200
Commit:     Andras Timar <andras.timar at collabora.com>
CommitDate: Fri Sep 25 15:44:07 2020 +0200

    cypress: NC: test nextcloud specific features also in Impress / Calc.
    
    Change-Id: I47c5a318239c2b5c96f1bf8f69298d3369f67d43
    Reviewed-on: https://gerrit.libreoffice.org/c/online/+/103290
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice at gmail.com>
    Reviewed-by: Tamás Zolnai <tamas.zolnai at collabora.com>

diff --git a/cypress_test/data/mobile/calc/nextcloud.ods b/cypress_test/data/mobile/calc/nextcloud.ods
new file mode 100644
index 000000000..2e2c500fc
Binary files /dev/null and b/cypress_test/data/mobile/calc/nextcloud.ods differ
diff --git a/cypress_test/data/mobile/impress/nextcloud.odp b/cypress_test/data/mobile/impress/nextcloud.odp
new file mode 100644
index 000000000..8907786e3
Binary files /dev/null and b/cypress_test/data/mobile/impress/nextcloud.odp differ
diff --git a/cypress_test/integration_tests/mobile/calc/nextcloud_spec.js b/cypress_test/integration_tests/mobile/calc/nextcloud_spec.js
new file mode 100644
index 000000000..5423ec68c
--- /dev/null
+++ b/cypress_test/integration_tests/mobile/calc/nextcloud_spec.js
@@ -0,0 +1,170 @@
+/* global describe it cy require afterEach Cypress */
+
+var helper = require('../../common/helper');
+var mobileHelper = require('../../common/mobile_helper');
+
+describe('Nextcloud specific tests.', function() {
+	var testFileName = 'nextcloud.ods';
+
+	afterEach(function() {
+		helper.afterAll(testFileName);
+	});
+
+	it('Insert image from storage.', function() {
+		helper.loadFileToNextCloud('image_to_insert.png', 'calc');
+
+		helper.beforeAll(testFileName, 'calc', undefined, true);
+
+		// Click on edit button
+		mobileHelper.enableEditingMobile();
+
+		mobileHelper.openInsertionWizard();
+
+		cy.get('.insertgraphicremote')
+			.then(function(item) {
+				Cypress.env('IFRAME_LEVEL', '');
+				cy.wrap(item)
+					.click();
+			});
+
+		cy.get('.oc-dialog')
+			.should('be.visible');
+
+		cy.get('tr[data-entryname=\'image_to_insert.png\']')
+			.click();
+
+		cy.get('.oc-dialog-buttonrow .primary')
+			.then(function(item) {
+				Cypress.env('IFRAME_LEVEL', '2');
+				cy.wrap(item)
+					.click();
+			});
+
+		// TOD
+		//cy.get('.leaflet-pane.leaflet-overlay-pane svg g.Graphic')
+		//	.should('exist');
+	});
+
+	it('Save as.', function() {
+		helper.beforeAll(testFileName, 'calc');
+
+		// Click on edit button
+		mobileHelper.enableEditingMobile();
+
+		mobileHelper.openHamburgerMenu();
+
+		cy.contains('.menu-entry-with-icon', 'File')
+			.click();
+
+		cy.contains('.menu-entry-with-icon', 'Save As...')
+			.then(function(item) {
+				Cypress.env('IFRAME_LEVEL', '1');
+				cy.wrap(item)
+					.click();
+			});
+
+		cy.get('.oc-dialog')
+			.should('be.visible');
+
+		cy.get('.oc-dialog input')
+			.clear()
+			.type('1' + testFileName);
+
+		cy.get('.oc-dialog-buttonrow .primary')
+			.then(function(item) {
+				Cypress.env('IFRAME_LEVEL', '2');
+				cy.wrap(item)
+					.click();
+			});
+
+		// Close the document
+		cy.get('#mobile-edit-button')
+			.should('be.visible');
+
+		cy.get('#tb_actionbar_item_closemobile')
+			.then(function(item) {
+				cy.wrap(item)
+					.click();
+				Cypress.env('IFRAME_LEVEL', '');
+			});
+
+		cy.get('tr[data-file=\'1' + testFileName + '\']')
+			.should('be.visible');
+
+		cy.get('tr[data-file=\'' + testFileName + '\']')
+			.should('be.visible');
+	});
+
+	it('Share.', function() {
+		helper.beforeAll(testFileName, 'calc');
+
+		// Click on edit button
+		mobileHelper.enableEditingMobile();
+
+		mobileHelper.openHamburgerMenu();
+
+		cy.contains('.menu-entry-with-icon', 'File')
+			.click();
+
+		cy.contains('.menu-entry-with-icon', 'Share...')
+			.then(function(item) {
+				Cypress.env('IFRAME_LEVEL', '');
+				cy.wrap(item)
+					.click();
+			});
+
+		cy.get('#app-sidebar')
+			.should('be.visible');
+
+		// issue here
+		//cy.get('section#sharing')
+		//	.should('be.visible');
+
+		cy.get('.app-sidebar__close.icon-close')
+			.then(function(item) {
+				Cypress.env('IFRAME_LEVEL', '2');
+				cy.wrap(item)
+					.click();
+			});
+	});
+
+	it('Revision history.', function() {
+		helper.beforeAll(testFileName, 'calc');
+
+		// Click on edit button
+		mobileHelper.enableEditingMobile();
+
+		mobileHelper.openHamburgerMenu();
+
+		cy.contains('.menu-entry-with-icon', 'File')
+			.click();
+
+		cy.contains('.menu-entry-with-icon', 'See revision history')
+			.then(function(item) {
+				Cypress.env('IFRAME_LEVEL', '');
+				cy.wrap(item)
+					.click();
+			});
+
+		cy.get('#app-sidebar')
+			.should('be.visible');
+
+		cy.get('section#tab-versionsTabView')
+			.should('be.visible');
+
+		cy.get('.app-sidebar__close.icon-close')
+			.then(function(item) {
+				Cypress.env('IFRAME_LEVEL', '1');
+				cy.wrap(item)
+					.click();
+			});
+
+		cy.get('#revViewerContainer .icon-close')
+			.then(function(item) {
+				Cypress.env('IFRAME_LEVEL', '2');
+				cy.wrap(item)
+					.click();
+			});
+	});
+});
+
diff --git a/cypress_test/integration_tests/mobile/impress/nextcloud_spec.js b/cypress_test/integration_tests/mobile/impress/nextcloud_spec.js
new file mode 100644
index 000000000..ea2cc9e4b
--- /dev/null
+++ b/cypress_test/integration_tests/mobile/impress/nextcloud_spec.js
@@ -0,0 +1,169 @@
+/* global describe it cy require afterEach Cypress */
+
+var helper = require('../../common/helper');
+var mobileHelper = require('../../common/mobile_helper');
+
+describe('Nextcloud specific tests.', function() {
+	var testFileName = 'nextcloud.odp';
+
+	afterEach(function() {
+		helper.afterAll(testFileName);
+	});
+
+	it('Insert image from storage.', function() {
+		helper.loadFileToNextCloud('image_to_insert.png', 'impress');
+
+		helper.beforeAll(testFileName, 'impress', undefined, true);
+
+		// Click on edit button
+		mobileHelper.enableEditingMobile();
+
+		mobileHelper.openInsertionWizard();
+
+		cy.get('.insertgraphicremote')
+			.then(function(item) {
+				Cypress.env('IFRAME_LEVEL', '');
+				cy.wrap(item)
+					.click();
+			});
+
+		cy.get('.oc-dialog')
+			.should('be.visible');
+
+		cy.get('tr[data-entryname=\'image_to_insert.png\']')
+			.click();
+
+		cy.get('.oc-dialog-buttonrow .primary')
+			.then(function(item) {
+				Cypress.env('IFRAME_LEVEL', '2');
+				cy.wrap(item)
+					.click();
+			});
+
+		cy.get('.leaflet-pane.leaflet-overlay-pane svg g')
+			.should('exist');
+	});
+
+	it('Save as.', function() {
+		helper.beforeAll(testFileName, 'impress');
+
+		// Click on edit button
+		mobileHelper.enableEditingMobile();
+
+		mobileHelper.openHamburgerMenu();
+
+		cy.contains('.menu-entry-with-icon', 'File')
+			.click();
+
+		cy.contains('.menu-entry-with-icon', 'Save As...')
+			.then(function(item) {
+				Cypress.env('IFRAME_LEVEL', '1');
+				cy.wrap(item)
+					.click();
+			});
+
+		cy.get('.oc-dialog')
+			.should('be.visible');
+
+		cy.get('.oc-dialog input')
+			.clear()
+			.type('1' + testFileName);
+
+		cy.get('.oc-dialog-buttonrow .primary')
+			.then(function(item) {
+				Cypress.env('IFRAME_LEVEL', '2');
+				cy.wrap(item)
+					.click();
+			});
+
+		// Close the document
+		cy.get('#mobile-edit-button')
+			.should('be.visible');
+
+		cy.get('#tb_actionbar_item_closemobile')
+			.then(function(item) {
+				cy.wrap(item)
+					.click();
+				Cypress.env('IFRAME_LEVEL', '');
+			});
+
+		cy.get('tr[data-file=\'1' + testFileName + '\']')
+			.should('be.visible');
+
+		cy.get('tr[data-file=\'' + testFileName + '\']')
+			.should('be.visible');
+	});
+
+	it('Share.', function() {
+		helper.beforeAll(testFileName, 'impress');
+
+		// Click on edit button
+		mobileHelper.enableEditingMobile();
+
+		mobileHelper.openHamburgerMenu();
+
+		cy.contains('.menu-entry-with-icon', 'File')
+			.click();
+
+		cy.contains('.menu-entry-with-icon', 'Share...')
+			.then(function(item) {
+				Cypress.env('IFRAME_LEVEL', '');
+				cy.wrap(item)
+					.click();
+			});
+
+		cy.get('#app-sidebar')
+			.should('be.visible');
+
+		// issue here
+		//cy.get('section#sharing')
+		//	.should('be.visible');
+
+		cy.get('.app-sidebar__close.icon-close')
+			.then(function(item) {
+				Cypress.env('IFRAME_LEVEL', '2');
+				cy.wrap(item)
+					.click();
+			});
+	});
+
+	it('Revision history.', function() {
+		helper.beforeAll(testFileName, 'impress');
+
+		// Click on edit button
+		mobileHelper.enableEditingMobile();
+
+		mobileHelper.openHamburgerMenu();
+
+		cy.contains('.menu-entry-with-icon', 'File')
+			.click();
+
+		cy.contains('.menu-entry-with-icon', 'See revision history')
+			.then(function(item) {
+				Cypress.env('IFRAME_LEVEL', '');
+				cy.wrap(item)
+					.click();
+			});
+
+		cy.get('#app-sidebar')
+			.should('be.visible');
+
+		cy.get('section#tab-versionsTabView')
+			.should('be.visible');
+
+		cy.get('.app-sidebar__close.icon-close')
+			.then(function(item) {
+				Cypress.env('IFRAME_LEVEL', '1');
+				cy.wrap(item)
+					.click();
+			});
+
+		cy.get('#revViewerContainer .icon-close')
+			.then(function(item) {
+				Cypress.env('IFRAME_LEVEL', '2');
+				cy.wrap(item)
+					.click();
+			});
+	});
+});
+
diff --git a/cypress_test/integration_tests/mobile/writer/nextcloud_spec.js b/cypress_test/integration_tests/mobile/writer/nextcloud_spec.js
index 8df27bd59..717ea1e0d 100644
--- a/cypress_test/integration_tests/mobile/writer/nextcloud_spec.js
+++ b/cypress_test/integration_tests/mobile/writer/nextcloud_spec.js
@@ -158,7 +158,6 @@ describe('Nextcloud specific tests.', function() {
 					.click();
 			});
 
-		// issue here
 		cy.get('#revViewerContainer .icon-close')
 			.then(function(item) {
 				Cypress.env('IFRAME_LEVEL', '2');
diff --git a/cypress_test/plugins/blacklists.js b/cypress_test/plugins/blacklists.js
index 3fc54ba6b..0821feaae 100644
--- a/cypress_test/plugins/blacklists.js
+++ b/cypress_test/plugins/blacklists.js
@@ -165,6 +165,8 @@ var phpProxyBlackList = [
 
 var nextcloudOnlyList = [
 	['mobile/writer/nextcloud_spec.js', []],
+	['mobile/calc/nextcloud_spec.js', []],
+	['mobile/impress/nextcloud_spec.js', []],
 ];
 
 module.exports.coreBlackLists = coreBlackLists;
commit 1abb3e396f797fb0452791d01a79955ec563ac13
Author:     Tamás Zolnai <tamas.zolnai at collabora.com>
AuthorDate: Tue Sep 22 16:51:23 2020 +0200
Commit:     Andras Timar <andras.timar at collabora.com>
CommitDate: Fri Sep 25 15:44:03 2020 +0200

    cypress: NC: test nextcloud specific features.
    
    Change-Id: I52bc1709f29de1d69c2ae52c806bedad4eee8bc4
    Reviewed-on: https://gerrit.libreoffice.org/c/online/+/103254
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice at gmail.com>
    Reviewed-by: Tamás Zolnai <tamas.zolnai at collabora.com>

diff --git a/cypress_test/data/mobile/writer/nextcloud.odt b/cypress_test/data/mobile/writer/nextcloud.odt
new file mode 100644
index 000000000..f7494e82f
Binary files /dev/null and b/cypress_test/data/mobile/writer/nextcloud.odt differ
diff --git a/cypress_test/integration_tests/common/helper.js b/cypress_test/integration_tests/common/helper.js
index f748b9bde..b41cbdeff 100644
--- a/cypress_test/integration_tests/common/helper.js
+++ b/cypress_test/integration_tests/common/helper.js
@@ -59,7 +59,138 @@ function loadTestDocLocal(fileName, subFolder, noFileCopy) {
 	cy.log('Loading test document with a local build - end.');
 }
 
-function loadTestDocNextcloud(fileName, subFolder) {
+function loadTestDocNextcloud(fileName, subFolder, subsequentLoad) {
+	cy.log('Loading test document with nextcloud - start.');
+	cy.log('Param - fileName: ' + fileName);
+	cy.log('Param - subFolder: ' + subFolder);
+	cy.log('Param - subsequentLoad: ' + subsequentLoad);
+
+	// Open local nextcloud installation
+	cy.visit('http://localhost/nextcloud');
+
+	if (subsequentLoad !== true) {
+		// Log in with cypress test user / password
+		cy.get('input#user')
+			.clear()
+			.type('cypress_test');
+
+		cy.get('input#password')
+			.clear()
+			.type('cypress_test');
+
+		cy.get('input#submit-form')
+			.click();
+
+		cy.get('.button.new')
+			.should('be.visible');
+
+		// Wait for free space calculation before uploading document
+		cy.get('#free_space')
+			.should('not.have.attr', 'value', '');
+
+		// Remove all files
+		cy.get('#fileList')
+			.then(function(filelist) {
+				if (filelist.find('tr').length !== 0) {
+					cy.waitUntil(function() {
+						cy.get('#fileList tr:nth-of-type(1) .action-menu.permanent')
+							.click();
+
+						cy.get('.menuitem.action.action-delete.permanent')
+							.click();
+
+						cy.get('#uploadprogressbar')
+							.should('not.be.visible');
+
+						return cy.get('#fileList')
+							.then(function(filelist) {
+								return filelist.find('tr').length === 0;
+							});
+					}, {timeout: 60000});
+				}
+			});
+	} else {
+		// Wait for free space calculation before uploading document
+		cy.get('#free_space')
+			.should('not.have.attr', 'value', '');
+	}
+
+	cy.get('tr[data-file=\'' + fileName + '\']')
+		.should('not.exist');
+
+	// Upload test document
+	var fileURI = '';
+	if (subFolder === undefined) {
+		fileURI += fileName;
+	} else {
+		fileURI += subFolder + '/' + fileName;
+	}
+	doIfOnDesktop(function() {
+		cy.get('input#file_upload_start')
+			.attachFile({ filePath: 'desktop/' + fileURI, encoding: 'binary' });
+	});
+	doIfOnMobile(function() {
+		cy.get('input#file_upload_start')
+			.attachFile({ filePath: 'mobile/' + fileURI, encoding: 'binary' });
+	});
+
+	cy.get('#uploadprogressbar')
+		.should('not.be.visible');
+
+	// Open test document
+	cy.get('tr[data-file=\'' + fileName + '\']')
+		.click();
+
+	cy.get('iframe#richdocumentsframe')
+		.should('be.visible', {timeout : Cypress.config('defaultCommandTimeout') * 2.0});
+
+	var getIframeBody = function(originalGet, level) {
+		if (level === 1) {
+			return cy.wrap(originalGet('iframe#richdocumentsframe'))
+				.its('0.contentDocument', {log: false}).should('exist')
+				.its('body', {log: false}).should('not.be.undefined')
+				.then(cy.wrap, {log: false});
+		} else if (level === 2) {
+			return cy.wrap(originalGet('iframe#richdocumentsframe'))
+				.its('0.contentDocument', {log: false}).should('exist')
+				.its('body', {log: false}).should('not.be.undefined')
+				.then(cy.wrap, {log: false})
+				.find('iframe#loleafletframe', {log: false})
+				.its('0.contentDocument', {log: false}).should('exist')
+				.its('body', {log: false}).should('not.be.undefined')
+				.then(cy.wrap, {log: false});
+		}
+	};
+
+	cy.get('iframe#richdocumentsframe')
+		.then(function() {
+			Cypress.env('IFRAME_LEVEL', '2');
+		});
+
+	Cypress.Commands.overwrite('get', function(originalFn, selector, options) {
+		var iFrameLevel = Cypress.env('IFRAME_LEVEL');
+		if ((iFrameLevel === '1' || iFrameLevel === '2') && !selector.startsWith('@'))
+			if (selector === 'body')
+				return getIframeBody(originalFn, parseInt(iFrameLevel));
+			else
+				return getIframeBody(originalFn, parseInt(iFrameLevel)).find(selector, options);
+		else
+			return originalFn(selector, options);
+	});
+
+	Cypress.Commands.overwrite('contains', function(originalFn, selector, content, options) {
+		if (Cypress.env('IFRAME_LEVEL') === '2')
+			return cy.get('#document-container').parent().wrap(originalFn(selector, content, options));
+		else
+			return originalFn(selector, content, options);
+	});
+
+	cy.wait(10000);
+
+	cy.log('Loading test document with nextcloud - end.');
+}
+
+function loadFileToNextCloud(fileName, subFolder) {
 	cy.log('Loading test document with nextcloud - start.');
 	cy.log('Param - fileName: ' + fileName);
 	cy.log('Param - subFolder: ' + subFolder);
@@ -86,7 +217,6 @@ function loadTestDocNextcloud(fileName, subFolder) {
 	cy.get('#free_space')
 		.should('not.have.attr', 'value', '');
 
-	// Remove all files
 	cy.get('#fileList')
 		.then(function(filelist) {
 			if (filelist.find('tr').length !== 0) {
@@ -130,52 +260,11 @@ function loadTestDocNextcloud(fileName, subFolder) {
 	cy.get('#uploadprogressbar')
 		.should('not.be.visible');
 
-	// Open test document
 	cy.get('tr[data-file=\'' + fileName + '\']')
-		.click();
-
-	cy.get('iframe#richdocumentsframe')
-		.should('be.visible', {timeout : Cypress.config('defaultCommandTimeout') * 2.0});
-
-	var getIframeBody = function(originalGet) {
-		return cy.wrap(originalGet('iframe#richdocumentsframe'))
-			.its('0.contentDocument', {log: false}).should('exist')
-			.its('body', {log: false}).should('not.be.undefined')
-			.then(cy.wrap, {log: false})
-			.find('iframe#loleafletframe', {log: false})
-			.its('0.contentDocument', {log: false}).should('exist')
-			.its('body', {log: false}).should('not.be.undefined')
-			.then(cy.wrap, {log: false});
-	};
-
-	cy.get('iframe#richdocumentsframe')
-		.then(function() {
-			Cypress.env('WITHIN_IFRAME', 'TRUE');
-		});
-
-	Cypress.Commands.overwrite('get', function(originalFn, selector, options) {
-		if (Cypress.env('WITHIN_IFRAME') === 'TRUE' && !selector.startsWith('@'))
-			if (selector === 'body')
-				return getIframeBody(originalFn);
-			else
-				return getIframeBody(originalFn).find(selector, options);
-		else
-			return originalFn(selector, options);
-	});
-
-	Cypress.Commands.overwrite('contains', function(originalFn, selector, content, options) {
-		if (Cypress.env('WITHIN_IFRAME') === 'TRUE')
-			return cy.get('#document-container').parent().wrap(originalFn(selector, content, options));
-		else
-			return originalFn(selector, content, options);
-	});
-	
-	cy.wait(10000);
-
-	cy.log('Loading test document with nextcloud - end.');
+		.should('be.visible');
 }
 
-function loadTestDoc(fileName, subFolder, noFileCopy) {
+function loadTestDoc(fileName, subFolder, noFileCopy, subsequentLoad) {
 	cy.log('Loading test document - start.');
 	cy.log('Param - fileName: ' + fileName);
 	cy.log('Param - subFolder: ' + subFolder);
@@ -186,7 +275,7 @@ function loadTestDoc(fileName, subFolder, noFileCopy) {
 	});
 
 	if (Cypress.env('INTEGRATION') === 'nextcloud') {
-		loadTestDocNextcloud(fileName, subFolder);
+		loadTestDocNextcloud(fileName, subFolder, subsequentLoad);
 	} else {
 		loadTestDocLocal(fileName, subFolder, noFileCopy);
 	}
@@ -321,8 +410,8 @@ function matchClipboardText(regexp) {
 	});
 }
 
-function beforeAll(fileName, subFolder, noFileCopy) {
-	loadTestDoc(fileName, subFolder, noFileCopy);
+function beforeAll(fileName, subFolder, noFileCopy, subsequentLoad) {
+	loadTestDoc(fileName, subFolder, noFileCopy, subsequentLoad);
 }
 
 function afterAll(fileName) {
@@ -333,7 +422,7 @@ function afterAll(fileName) {
 		return;
 
 	if (Cypress.env('INTEGRATION') === 'nextcloud') {
-		if (Cypress.env('WITHIN_IFRAME') === 'TRUE') {
+		if (Cypress.env('IFRAME_LEVEL') === '2') {
 			// Close the document
 			doIfOnMobile(function() {
 				cy.get('#tb_actionbar_item_closemobile')
@@ -346,7 +435,7 @@ function afterAll(fileName) {
 					.then(function(item) {
 						cy.wrap(item)
 							.click();
-						Cypress.env('WITHIN_IFRAME', '');
+						Cypress.env('IFRAME_LEVEL', '');
 					});
 			});
 			doIfOnDesktop(function() {
@@ -354,7 +443,7 @@ function afterAll(fileName) {
 					.then(function(item) {
 						cy.wrap(item)
 							.click();
-						Cypress.env('WITHIN_IFRAME', '');
+						Cypress.env('IFRAME_LEVEL', '');
 					});
 			});
 
@@ -774,3 +863,4 @@ module.exports.doIfOnMobile = doIfOnMobile;
 module.exports.doIfOnDesktop = doIfOnDesktop;
 module.exports.moveCursor = moveCursor;
 module.exports.typeIntoDocument = typeIntoDocument;
+module.exports.loadFileToNextCloud = loadFileToNextCloud;
diff --git a/cypress_test/integration_tests/mobile/writer/nextcloud_spec.js b/cypress_test/integration_tests/mobile/writer/nextcloud_spec.js
new file mode 100644
index 000000000..8df27bd59
--- /dev/null
+++ b/cypress_test/integration_tests/mobile/writer/nextcloud_spec.js
@@ -0,0 +1,170 @@
+/* global describe it cy require afterEach Cypress */
+
+var helper = require('../../common/helper');
+var mobileHelper = require('../../common/mobile_helper');
+
+describe('Nextcloud specific tests.', function() {
+	var testFileName = 'nextcloud.odt';
+
+	afterEach(function() {
+		helper.afterAll(testFileName);
+	});
+
+	it('Insert image from storage.', function() {
+		helper.loadFileToNextCloud('image_to_insert.png', 'writer');
+
+		helper.beforeAll(testFileName, 'writer', undefined, true);
+
+		// Click on edit button
+		mobileHelper.enableEditingMobile();
+
+		mobileHelper.openInsertionWizard();
+
+		cy.get('.insertgraphicremote')
+			.then(function(item) {
+				Cypress.env('IFRAME_LEVEL', '');
+				cy.wrap(item)
+					.click();
+			});
+
+		cy.get('.oc-dialog')
+			.should('be.visible');
+
+		cy.get('tr[data-entryname=\'image_to_insert.png\']')
+			.click();
+
+		cy.get('.oc-dialog-buttonrow .primary')
+			.then(function(item) {
+				Cypress.env('IFRAME_LEVEL', '2');
+				cy.wrap(item)
+					.click();
+			});
+
+		cy.get('.leaflet-pane.leaflet-overlay-pane svg g.Graphic')
+			.should('exist');
+	});
+
+	it('Save as.', function() {
+		helper.beforeAll(testFileName, 'writer');
+
+		// Click on edit button
+		mobileHelper.enableEditingMobile();
+
+		mobileHelper.openHamburgerMenu();
+
+		cy.contains('.menu-entry-with-icon', 'File')
+			.click();
+
+		cy.contains('.menu-entry-with-icon', 'Save As...')
+			.then(function(item) {
+				Cypress.env('IFRAME_LEVEL', '1');
+				cy.wrap(item)
+					.click();
+			});
+
+		cy.get('.oc-dialog')
+			.should('be.visible');
+
+		cy.get('.oc-dialog input')
+			.clear()
+			.type('1' + testFileName);
+
+		cy.get('.oc-dialog-buttonrow .primary')
+			.then(function(item) {
+				Cypress.env('IFRAME_LEVEL', '2');
+				cy.wrap(item)
+					.click();
+			});
+
+		// Close the document
+		cy.get('#mobile-edit-button')
+			.should('be.visible');
+
+		cy.get('#tb_actionbar_item_closemobile')
+			.then(function(item) {
+				cy.wrap(item)
+					.click();
+				Cypress.env('IFRAME_LEVEL', '');
+			});
+
+		cy.get('tr[data-file=\'1' + testFileName + '\']')
+			.should('be.visible');
+
+		cy.get('tr[data-file=\'' + testFileName + '\']')
+			.should('be.visible');
+	});
+
+	it('Share.', function() {
+		helper.beforeAll(testFileName, 'writer');
+
+		// Click on edit button
+		mobileHelper.enableEditingMobile();
+
+		mobileHelper.openHamburgerMenu();
+
+		cy.contains('.menu-entry-with-icon', 'File')
+			.click();
+
+		cy.contains('.menu-entry-with-icon', 'Share...')
+			.then(function(item) {
+				Cypress.env('IFRAME_LEVEL', '');
+				cy.wrap(item)
+					.click();
+			});
+
+		cy.get('#app-sidebar')
+			.should('be.visible');
+
+		// issue here
+		//cy.get('section#sharing')
+		//	.should('be.visible');
+
+		cy.get('.app-sidebar__close.icon-close')
+			.then(function(item) {
+				Cypress.env('IFRAME_LEVEL', '2');
+				cy.wrap(item)
+					.click();
+			});
+	});
+
+	it('Revision history.', function() {
+		helper.beforeAll(testFileName, 'writer');
+
+		// Click on edit button
+		mobileHelper.enableEditingMobile();
+
+		mobileHelper.openHamburgerMenu();
+
+		cy.contains('.menu-entry-with-icon', 'File')
+			.click();
+
+		cy.contains('.menu-entry-with-icon', 'See revision history')
+			.then(function(item) {
+				Cypress.env('IFRAME_LEVEL', '');
+				cy.wrap(item)
+					.click();
+			});
+
+		cy.get('#app-sidebar')
+			.should('be.visible');
+
+		cy.get('section#tab-versionsTabView')
+			.should('be.visible');
+
+		cy.get('.app-sidebar__close.icon-close')
+			.then(function(item) {
+				Cypress.env('IFRAME_LEVEL', '1');
+				cy.wrap(item)
+					.click();
+			});
+
+		// issue here
+		cy.get('#revViewerContainer .icon-close')
+			.then(function(item) {
+				Cypress.env('IFRAME_LEVEL', '2');
+				cy.wrap(item)
+					.click();
+			});
+	});
+});
+
diff --git a/cypress_test/plugins/blacklists.js b/cypress_test/plugins/blacklists.js
index cf2edb893..3fc54ba6b 100644
--- a/cypress_test/plugins/blacklists.js
+++ b/cypress_test/plugins/blacklists.js
@@ -163,6 +163,11 @@ var phpProxyBlackList = [
 	],
 ];
 
+var nextcloudOnlyList = [
+	['mobile/writer/nextcloud_spec.js', []],
+];
+
 module.exports.coreBlackLists = coreBlackLists;
 module.exports.nextcloudBlackList = nextcloudBlackList;
+module.exports.nextcloudOnlyList = nextcloudOnlyList;
 module.exports.phpProxyBlackList = phpProxyBlackList;
diff --git a/cypress_test/plugins/index.js b/cypress_test/plugins/index.js
index 4547a88ba..83eccb2b6 100644
--- a/cypress_test/plugins/index.js
+++ b/cypress_test/plugins/index.js
@@ -79,8 +79,9 @@ function pickTests(filename, foundTests, config) {
 	testsToRun = removeBlacklistedTest(filename, testsToRun, coreblackList);
 
 	if (process.env.CYPRESS_INTEGRATION === 'nextcloud') {
-		var NCblackList = blacklists.nextcloudBlackList;
-		testsToRun = removeBlacklistedTest(filename, testsToRun, NCblackList);
+		testsToRun = removeBlacklistedTest(filename, testsToRun, blacklists.nextcloudBlackList);
+	} else {
+		testsToRun = removeBlacklistedTest(filename, testsToRun, blacklists.nextcloudOnlyList);
 	}
 
 	if (process.env.CYPRESS_INTEGRATION === 'php-proxy') {
commit 54ed7a7dc509293f3083d097019cb7e14348391f
Author:     Pedro Pinto Silva <pedro.silva at collabora.com>
AuthorDate: Wed Sep 23 12:25:50 2020 +0200
Commit:     Andras Timar <andras.timar at collabora.com>
CommitDate: Fri Sep 25 15:43:58 2020 +0200

    Top Menu: improve resolution of menu marks by
    
    using svg instead of unicode content
    
    Change-Id: I66629ef6cfade8c24701bace3f172e28fd5243ae
    Reviewed-on: https://gerrit.libreoffice.org/c/online/+/103241
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice at gmail.com>
    Reviewed-by: Pedro Silva <pedro.silva at collabora.com>

diff --git a/loleaflet/css/menubar.css b/loleaflet/css/menubar.css
index df58c5fcc..b630141ba 100644
--- a/loleaflet/css/menubar.css
+++ b/loleaflet/css/menubar.css
@@ -146,7 +146,13 @@
 .lo-menu ul a span.sub-arrow {
 	right: 0;
 	margin-right: 5px;
-	background: transparent; /* we want them to be transparent always whether mobile or desktop */
+	background: transparent url('images/lc_menu_chevron.svg') no-repeat center right; /* we want them to be transparent always whether mobile or desktop */
+	color: transparent;
+	/*transform: rotate(180deg);*/
+}
+.lo-menu ul a:hover > span.sub-arrow {
+	-webkit-filter: brightness(100);
+	filter: brightness(100);
 }
 .lo-menu ul > li {
 	border-left: 0;
@@ -245,13 +251,17 @@
 /* The smartmenus plugin doesn't seem to have support for icons, so implement our own pseudo-elements */
 .lo-menu-item-checked::before {
 	position: absolute;
-	content: '\2713';
-	left: 5px;
-	top: 5px;
+	content: ' ';
+	left: 2px;
+	background: url('images/lc_listitem-selected.svg') no-repeat left -2px;
+	width: 20px;
+	height: 20px;
 }
 
 .lo-menu-item-checked:hover::before {
 	color: #fff;
+	-webkit-filter: brightness(100);
+	filter: brightness(100);
 }
 
 .writer-icon-img {
diff --git a/loleaflet/images/lc_menu_chevron.svg b/loleaflet/images/lc_menu_chevron.svg
new file mode 100644
index 000000000..ad7ae2be7
--- /dev/null
+++ b/loleaflet/images/lc_menu_chevron.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   height="9"
+   width="9"
+   id="svg4"
+   version="1.1"
+   viewBox="0 0 9 9">
+  <metadata
+     id="metadata10">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs8" />
+  <path
+     id="path2"
+     d="M 2.8222656,0.22851562 A 0.70006999,0.70006999 0 0 0 2.3027344,1.4160156 L 5.2265625,4.5 2.3027344,7.5839844 A 0.70006999,0.70006999 0 1 0 3.3183594,8.546875 L 6.6992188,4.9824219 a 0.70006999,0.70006999 0 0 0 0,-0.9648438 L 3.3183594,0.453125 A 0.70006999,0.70006999 0 0 0 2.8222656,0.22851562 Z"
+     style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#bbbbbb;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.39
 999998;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+</svg>
commit 651537f64b9a19e68fe1f1fd95531c1f6d99a32d
Author:     Szymon Kłos <szymon.klos at collabora.com>
AuthorDate: Wed Sep 23 09:24:42 2020 +0200
Commit:     Andras Timar <andras.timar at collabora.com>
CommitDate: Fri Sep 25 15:43:53 2020 +0200

    LokDialog: Remember tooltip position
    
    Change-Id: Ib3d6ca3d554ed2ebf47b5012b5101fbf194a970d
    Reviewed-on: https://gerrit.libreoffice.org/c/online/+/103229
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice at gmail.com>
    Reviewed-by: Szymon Kłos <szymon.klos at collabora.com>

diff --git a/loleaflet/src/control/Control.LokDialog.js b/loleaflet/src/control/Control.LokDialog.js
index 2be933037..23fe890cd 100644
--- a/loleaflet/src/control/Control.LokDialog.js
+++ b/loleaflet/src/control/Control.LokDialog.js
@@ -345,6 +345,8 @@ L.Control.LokDialog = L.Control.extend({
 				this._dialogs[parentId].childid = e.id;
 				this._dialogs[parentId].childwidth = width;
 				this._dialogs[parentId].childheight = height;
+				this._dialogs[parentId].childx = left;
+				this._dialogs[parentId].childy = top;
 
 				if (e.winType === 'tooltip')
 					this._dialogs[parentId].childistooltip = true;
commit b59167141ac9d2504a335bac7a4d7c30456ecd27
Author:     Tor Lillqvist <tml at collabora.com>
AuthorDate: Wed Sep 23 00:02:11 2020 +0300
Commit:     Andras Timar <andras.timar at collabora.com>
CommitDate: Fri Sep 25 15:43:49 2020 +0200

    Compile C++ for the iOS app as C++17
    
    Needed by headers in core:master now.
    
    Change-Id: I997bcf267ffd74479c04d83c8703e7f520046aa2

diff --git a/ios/Mobile.xcodeproj/project.pbxproj b/ios/Mobile.xcodeproj/project.pbxproj
index b023e85f2..4981bb13c 100644
--- a/ios/Mobile.xcodeproj/project.pbxproj
+++ b/ios/Mobile.xcodeproj/project.pbxproj
@@ -3464,7 +3464,7 @@
 				CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
 				CLANG_ANALYZER_NONNULL = YES;
 				CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
-				CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
+				CLANG_CXX_LANGUAGE_STANDARD = "c++17";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_ENABLE_MODULES = YES;
 				CLANG_ENABLE_OBJC_ARC = YES;
@@ -3524,7 +3524,7 @@
 				CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
 				CLANG_ANALYZER_NONNULL = YES;
 				CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
-				CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
+				CLANG_CXX_LANGUAGE_STANDARD = "c++17";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_ENABLE_MODULES = YES;
 				CLANG_ENABLE_OBJC_ARC = YES;


More information about the Libreoffice-commits mailing list