loleaflet/dist/admin/adminSettings.html    |   12 ++++++++++++
 loleaflet/src/admin/AdminSocketSettings.js |   24 +++++++++++++++++++++++-
 wsd/Admin.cpp                              |   12 ++++++++++++
 wsd/protocol.txt                           |   26 ++++++++++++++++++++++++++
 4 files changed, 73 insertions(+), 1 deletion(-)

New commits:
commit 92ad94f259cfbaa6c81eb86f69ebea0d59b8fdad
Author: Dewan <[email protected]>
Date:   Tue Mar 14 18:55:16 2017 +0530

    display lokit and loolwsd version in admin panel
    
    Change-Id: Ia5b89373bfd7e921597b73d5a84963268244b748
    Reviewed-on: https://gerrit.libreoffice.org/35199
    Reviewed-by: pranavk <[email protected]>
    Tested-by: pranavk <[email protected]>

diff --git a/loleaflet/dist/admin/adminSettings.html 
b/loleaflet/dist/admin/adminSettings.html
index d860de21..3b74b80e 100644
--- a/loleaflet/dist/admin/adminSettings.html
+++ b/loleaflet/dist/admin/adminSettings.html
@@ -59,6 +59,18 @@
             <li><a 
href="admin.html"><script>document.write(l10nstrings.strOverview)</script> 
<span 
class="sr-only"><script>document.write(l10nstrings.strCurrent)</script></span></a></li>
             <li><a 
href="adminAnalytics.html"><script>document.write(l10nstrings.strAnalytics)</script></a></li>
           </ul>
+          <hr />
+          <div style="position:absolute; bottom:0px">
+            <h3>About</h3>
+            <p>
+              <h5><b>LOOLWSD</b></h5>
+              <div id="loolwsd-version"></div>
+            </p>
+            <p>
+              <h5><b>LOKit</b></h5>
+              <div id="lokit-version"></div>
+            </p>
+          </div>
         </div>
         <div class="col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2 main">
           <h1 
class="page-header"><script>document.write(l10nstrings.strSettings)</script></h1>
diff --git a/loleaflet/src/admin/AdminSocketSettings.js 
b/loleaflet/src/admin/AdminSocketSettings.js
index 5f4ba6f2..5a7ec207 100644
--- a/loleaflet/src/admin/AdminSocketSettings.js
+++ b/loleaflet/src/admin/AdminSocketSettings.js
@@ -41,9 +41,9 @@ var AdminSocketSettings = AdminSocketBase.extend({
        onSocketOpen: function() {
                // Base class' onSocketOpen handles authentication
                this.base.call(this);
-
                this.socket.send('subscribe settings');
                this.socket.send('settings');
+               this.socket.send('version');
        },
 
        onSocketMessage: function(e) {
@@ -65,6 +65,28 @@ var AdminSocketSettings = AdminSocketBase.extend({
                                document.getElementById(settingKey).value = 
settingVal;
                        }
                }
+               else if (textMsg.startsWith('loolserver ')) {
+                       // This must be the first message, unless we reconnect.
+                       var loolwsdVersionObj = 
JSON.parse(textMsg.substring(textMsg.indexOf('{')));
+                       var h = loolwsdVersionObj.Hash;
+                       if (parseInt(h,16).toString(16) === 
h.toLowerCase().replace(/^0+/, '')) {
+                               h = '<a target="_blank" 
href="https://gerrit.libreoffice.org/gitweb?p=online.git;a=log;h=' + h + '">' + 
h + '</a>';
+                               
$('#loolwsd-version').html(loolwsdVersionObj.Version + ' (git hash: ' + h + 
')');
+                       }
+                       else {
+                               
$('#loolwsd-version').text(loolwsdVersionObj.Version);
+                       }
+               }
+               else if (textMsg.startsWith('lokitversion ')) {
+                       var lokitVersionObj = 
JSON.parse(textMsg.substring(textMsg.indexOf('{')));
+                       var h = lokitVersionObj.BuildId.substring(0, 7);
+                       if (parseInt(h,16).toString(16) === 
h.toLowerCase().replace(/^0+/, '')) {
+                               h = '<a target="_blank" 
href="https://gerrit.libreoffice.org/gitweb?p=core.git;a=log;h=' + h + '">' + h 
+ '</a>';
+                       }
+                       $('#lokit-version').html(lokitVersionObj.ProductName + 
' ' +
+                                                lokitVersionObj.ProductVersion 
+ lokitVersionObj.ProductExtension.replace('.10.','-') +
+                                                ' (git hash: ' + h + ')');
+               }
        },
 
        onSocketClose: function() {
diff --git a/wsd/Admin.cpp b/wsd/Admin.cpp
index 1870cb0f..dfa97bc4 100644
--- a/wsd/Admin.cpp
+++ b/wsd/Admin.cpp
@@ -109,6 +109,18 @@ void AdminSocketHandler::handleMessage(bool /* fin */, 
WSOpCode /* code */,
         if (!result.empty())
             sendTextFrame(tokens[0] + ' ' + result);
     }
+    else if (tokens[0] == "version")
+    {
+        // Send LOOL version information
+        std::string version, hash;
+        Util::getVersionInfo(version, hash);
+        std::string versionStr =
+            "{ \"Version\":  \"" + version + "\", " +
+            "\"Hash\":  \"" + hash  + "\" }";
+        sendTextFrame("loolserver " + versionStr);
+        // Send LOKit version information
+        sendTextFrame("lokitversion " + LOOLWSD::LOKitVersion);
+    }
     else if (tokens[0] == "subscribe" && tokens.count() > 1)
     {
         for (std::size_t i = 0; i < tokens.count() - 1; i++)
diff --git a/wsd/protocol.txt b/wsd/protocol.txt
index ba3a191d..867380b3 100644
--- a/wsd/protocol.txt
+++ b/wsd/protocol.txt
@@ -476,6 +476,12 @@ subscribe <space seperated list of commands>
     Where list of commands are the ones that client wants to get notified
     about. For eg. 'subscribe adddoc rmdoc'
 
+version
+
+    Queries the server for current version of lokit and loolserver. See
+    'lokitversion' and 'loolserver' in admin -> client for the format of
+    response message.
+
 documents
 
     Queries the server for list of opened documents. See `documents` command
@@ -594,3 +600,23 @@ mem_stats <comma separated list of memory consumed values>
 
      The length of the list is equal to the value of setting
      mem_stats_size`
+
+loolserver <JSON string>
+
+    The returned JSON string contains information in the following format:
+    {Version: <>, Hash: <>}
+
+    Eg: {"Version": "master..",
+         "Hash": "4897710"}
+
+lokitversion <JSON string>
+
+    JSON string contains version information in format:
+    {ProductName: <>, ProductVersion: <>, ProductExtension: <>, BuildId: <>}
+
+    Eg: {"ProductName": "LibreOffice",
+         "ProductVersion": "5.3",
+         "ProductExtension": ".0.0.alpha0",
+         "BuildId": "<full 40 char git hash>"}
+
+
_______________________________________________
Libreoffice-commits mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to