loleaflet/src/control/Control.Menubar.js |   10 ------
 wsd/FileServer.cpp                       |   46 ++++++++++++++++++++++++++++---
 2 files changed, 43 insertions(+), 13 deletions(-)

New commits:
commit c1c9ff3cf2c4ead7236564329eb3c812c2297f07
Author:     Jan Holesovsky <[email protected]>
AuthorDate: Wed Apr 15 16:02:45 2020 +0200
Commit:     Jan Holesovsky <[email protected]>
CommitDate: Thu Apr 16 14:29:56 2020 +0200

    Welcome: Kill the Latest Updates from the menu.
    
    For the moment, we are missing a way to disable it when the feature is
    switched off in loolwsd.xml; so let's just avoid it for the moment.
    
    Change-Id: Ic0cde3ef3c415c9ac7009e4db285b04560018b74
    Reviewed-on: https://gerrit.libreoffice.org/c/online/+/92276
    Tested-by: Jenkins CollaboraOffice <[email protected]>
    Reviewed-by: Jan Holesovsky <[email protected]>
    Reviewed-on: https://gerrit.libreoffice.org/c/online/+/92354
    Tested-by: Jan Holesovsky <[email protected]>

diff --git a/loleaflet/src/control/Control.Menubar.js 
b/loleaflet/src/control/Control.Menubar.js
index 67b8b0d01..919a4ab3f 100644
--- a/loleaflet/src/control/Control.Menubar.js
+++ b/loleaflet/src/control/Control.Menubar.js
@@ -240,7 +240,6 @@ L.Control.Menubar = L.Control.extend({
                                {name: _('Online Help'), id: 'online-help', 
type: 'action', iosapp: false},
                                {name: _('Keyboard shortcuts'), id: 
'keyboard-shortcuts', type: 'action', iosapp: false},
                                {name: _('Report an issue'), id: 
'report-an-issue', type: 'action', iosapp: false},
-                               {name: _('Latest Updates'), id: 
'latest-updates', type: 'action'},
                                {name: _('About'), id: 'about', type: 'action'}]
                        },
                        {name: _('Last modification'), id: 'last-mod', type: 
'action', tablet: false}
@@ -342,7 +341,6 @@ L.Control.Menubar = L.Control.extend({
                                {name: _('Online Help'), id: 'online-help', 
type: 'action', iosapp: false},
                                {name: _('Keyboard shortcuts'), id: 
'keyboard-shortcuts', type: 'action', iosapp: false},
                                {name: _('Report an issue'), id: 
'report-an-issue', type: 'action', iosapp: false},
-                               {name: _('Latest Updates'), id: 
'latest-updates', type: 'action'},
                                {name: _('About'), id: 'about', type: 'action'}]
                        },
                        {name: _('Last modification'), id: 'last-mod', type: 
'action', tablet: false}
@@ -459,7 +457,6 @@ L.Control.Menubar = L.Control.extend({
                                {name: _('Online Help'), id: 'online-help', 
type: 'action', iosapp: false},
                                {name: _('Keyboard shortcuts'), id: 
'keyboard-shortcuts', type: 'action', iosapp: false},
                                {name: _('Report an issue'), id: 
'report-an-issue', type: 'action', iosapp: false},
-                               {name: _('Latest Updates'), id: 
'latest-updates', type: 'action'},
                                {name: _('About'), id: 'about', type: 'action'}]
                        },
                        {name: _('Last modification'), id: 'last-mod', type: 
'action', tablet: false}
@@ -512,7 +509,6 @@ L.Control.Menubar = L.Control.extend({
                                {name: _UNO('.uno:ShowResolvedAnnotations', 
'text'), id: 'showresolved', type: 'action'},
                        ]
                        },
-                       {name: _('Latest Updates'), id: 'latest-updates', type: 
'action'},
                        {name: _('About'), id: 'about', type: 'action'},
                ],
 
@@ -559,7 +555,6 @@ L.Control.Menubar = L.Control.extend({
                        {name: _UNO('.uno:FullScreen', 'presentation'), id: 
'fullscreen', type: 'action', mobileapp: false},
                        {uno: '.uno:SpellOnline'},
                        {name: _('Fullscreen presentation'), id: 
'fullscreen-presentation', type: 'action'},
-                       {name: _('Latest Updates'), id: 'latest-updates', type: 
'action'},
                        {name: _('About'), id: 'about', type: 'action'},
                ],
 
@@ -623,7 +618,6 @@ L.Control.Menubar = L.Control.extend({
                        ]},
                        {uno: '.uno:SpellOnline'},
                        {name: _UNO('.uno:FullScreen', 'spreadsheet'), id: 
'fullscreen', type: 'action', mobileapp: false},
-                       {name: _('Latest Updates'), id: 'latest-updates', type: 
'action'},
                        {name: _('About'), id: 'about', type: 'action'},
                ],
 
@@ -711,7 +705,7 @@ L.Control.Menubar = L.Control.extend({
                        'downloadas-odp', 'downloadas-ppt', 'downloadas-pptx', 
'print', // file menu
                        'downloadas-ods', 'downloadas-xls', 'downloadas-xlsx', 
'closedocument', // file menu
                        'fullscreen', 'zoomin', 'zoomout', 'zoomreset', 
'showresolved', // view menu
-                       'about', 'keyboard-shortcuts', 'latest-updates', 
'online-help', 'report-an-issue' // help menu
+                       'about', 'keyboard-shortcuts', 'online-help', 
'report-an-issue' // help menu
                ]
        },
 
@@ -1180,8 +1174,6 @@ L.Control.Menubar = L.Control.extend({
                        });
                } else if (id === 'about') {
                        this._map.showLOAboutDialog();
-               } else if (id === 'latest-updates') {
-                       this._map.showWelcomeDialog(/*calledFromMenu=*/true);
                } else if (id === 'report-an-issue') {
                        
window.open('https://bugs.documentfoundation.org/enter_bug.cgi?product=LibreOffice%20Online',
 '_blank');
                } else if (id === 'inserthyperlink') {
commit 640a4d26ec4afeaf0b2860665742b8e1fb3f1847
Author:     Jan Holesovsky <[email protected]>
AuthorDate: Wed Apr 15 15:37:49 2020 +0200
Commit:     Jan Holesovsky <[email protected]>
CommitDate: Thu Apr 16 14:29:42 2020 +0200

    Welcome: Handle language versions of the welcome files.
    
    If eg. welcome-cs-CZ.html is not available, try welcome-cs.html and
    fallback to welcome.html (which should be the en-US version).
    
    Change-Id: I5df6a6d6da97fb3c111a709a63a54ee86248f73d
    Reviewed-on: https://gerrit.libreoffice.org/c/online/+/92274
    Tested-by: Jenkins CollaboraOffice <[email protected]>
    Reviewed-by: Jan Holesovsky <[email protected]>
    Reviewed-on: https://gerrit.libreoffice.org/c/online/+/92353
    Tested-by: Jan Holesovsky <[email protected]>

diff --git a/loleaflet/welcome/welcome-en-US.html 
b/loleaflet/welcome/welcome.html
similarity index 100%
rename from loleaflet/welcome/welcome-en-US.html
rename to loleaflet/welcome/welcome.html
diff --git a/wsd/FileServer.cpp b/wsd/FileServer.cpp
index d019957c0..9c4bd8ba4 100644
--- a/wsd/FileServer.cpp
+++ b/wsd/FileServer.cpp
@@ -56,6 +56,10 @@ using Poco::Util::Application;
 
 std::map<std::string, std::pair<std::string, std::string>> 
FileServerRequestHandler::FileHash;
 
+/// Place from where we serve the welcome-<lang>.html; defaults to
+/// welcome.html if no lang matches.
+#define WELCOME_ENDPOINT "/loleaflet/dist/welcome"
+
 namespace {
 
 int functionConversation(int /*num_msg*/, const struct pam_message** /*msg*/,
@@ -283,8 +287,11 @@ void FileServerRequestHandler::handleRequest(const 
HTTPRequest& request, Poco::M
 
         std::vector<std::string> requestSegments;
         requestUri.getPathSegments(requestSegments);
-        const std::string relPath = getRequestPathname(request);
-        const std::string endPoint = requestSegments[requestSegments.size() - 
1];
+        if (requestSegments.size() < 1)
+            throw Poco::FileNotFoundException("Invalid URI request: [" + 
requestUri.toString() + "].");
+
+        std::string relPath = getRequestPathname(request);
+        std::string endPoint = requestSegments[requestSegments.size() - 1];
         const auto& config = Application::instance().config();
 
         if (request.getMethod() == HTTPRequest::HTTP_POST && endPoint == 
"logging.html")
@@ -301,8 +308,39 @@ void FileServerRequestHandler::handleRequest(const 
HTTPRequest& request, Poco::M
             }
         }
 
+        // handling of the language in welcome-*.html - shorten the langtag as
+        // necessary, if we don't have the particular language version
+        if (Util::startsWith(relPath, WELCOME_ENDPOINT "/"))
+        {
+            bool found = true;
+            while (FileHash.find(relPath) == FileHash.end())
+            {
+                size_t dot = relPath.find_last_of('.');
+                if (dot == std::string::npos)
+                {
+                    found = false;
+                    break;
+                }
+
+                size_t dash = relPath.find_last_of("-_", dot);
+                if (dash == std::string::npos)
+                {
+                    found = false;
+                    break;
+                }
+
+                relPath = relPath.substr(0, dash) + relPath.substr(dot);
+                LOG_TRC("Shortening welcome file request to: " << relPath);
+            }
+
+            if (!found)
+                throw Poco::FileNotFoundException("Invalid URI welcome file 
request: [" + requestUri.toString() + "].");
+
+            endPoint = relPath.substr(sizeof(WELCOME_ENDPOINT));
+        }
+
         // Is this a file we read at startup - if not; its not for serving.
-        if (requestSegments.size() < 1 || FileHash.find(relPath) == 
FileHash.end())
+        if (FileHash.find(relPath) == FileHash.end())
             throw Poco::FileNotFoundException("Invalid URI request: [" + 
requestUri.toString() + "].");
 
         const std::string loleafletHtml = config.getString("loleaflet_html", 
"loleaflet.html");
@@ -562,7 +600,7 @@ void FileServerRequestHandler::initialize()
     if (!LOOLWSD::WelcomeFilesRoot.empty())
     {
         try {
-            readDirToHash(LOOLWSD::WelcomeFilesRoot, "", 
"/loleaflet/dist/welcome");
+            readDirToHash(LOOLWSD::WelcomeFilesRoot, "", WELCOME_ENDPOINT);
         } catch (...) {
             LOG_ERR("Failed to read from directory " << 
LOOLWSD::WelcomeFilesRoot);
         }
_______________________________________________
Libreoffice-commits mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to