kit/ChildSession.cpp | 8 +++++--- loleaflet/css/toolbar.css | 1 + loleaflet/html/loleaflet.html.m4 | 6 ++++-- loleaflet/images/close_toolbar.svg | 1 + loleaflet/js/toolbar.js | 3 ++- loleaflet/src/control/Signing.js | 21 +++++++++++++++++++-- loolwsd.xml.in | 4 ++-- wsd/FileServer.cpp | 8 +++----- 8 files changed, 37 insertions(+), 15 deletions(-)
New commits: commit 7a8c5c072f4e70428deef923a2e78ab104b757b2 Author: Tomaž Vajngerl <[email protected]> AuthorDate: Thu Nov 29 22:34:14 2018 +0100 Commit: Tomaž Vajngerl <[email protected]> CommitDate: Thu Nov 29 22:46:14 2018 +0100 Add "close" function to the document signing info bar Change-Id: I24e967de5c2a975ec2f1321c02712761c6d48de3 Reviewed-on: https://gerrit.libreoffice.org/64299 Reviewed-by: Tomaž Vajngerl <[email protected]> Tested-by: Tomaž Vajngerl <[email protected]> diff --git a/loleaflet/css/toolbar.css b/loleaflet/css/toolbar.css index daef2d11c..c7c01fad3 100644 --- a/loleaflet/css/toolbar.css +++ b/loleaflet/css/toolbar.css @@ -584,6 +584,7 @@ button.leaflet-control-search-next .w2ui-icon.users{ background: url('images/contacts-dark.svg') no-repeat center !important; } .w2ui-icon.fullscreen{ background: url('images/lc_fullscreen.svg') no-repeat center !important; } .w2ui-icon.closemobile{ background: url('images/lc_closedocmobile.svg') no-repeat center !important; } +.w2ui-icon.closetoolbar{ background: url('images/close_toolbar.svg') no-repeat center !important; } .inserttable-pop { z-index: 1000; diff --git a/loleaflet/images/close_toolbar.svg b/loleaflet/images/close_toolbar.svg new file mode 100644 index 000000000..68b09bb18 --- /dev/null +++ b/loleaflet/images/close_toolbar.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><g fill="none" stroke="#5f5f5f" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="m4 20 16-16"/><path d="m20 20-16-15.9999998"/></g></svg> diff --git a/loleaflet/js/toolbar.js b/loleaflet/js/toolbar.js index 4e1b26591..9485d77cc 100644 --- a/loleaflet/js/toolbar.js +++ b/loleaflet/js/toolbar.js @@ -952,9 +952,10 @@ function initNormalToolbar(toolItems) { {type: 'break' }, {type: 'menu', id: 'passport', caption: _('Select passport'), items: []}, {type: 'html', id: 'current-passport', html: 'Passport: N/A'}, - {type: 'break' }, + {type: 'spacer'}, {type: 'button', id: 'logout', caption: 'Logout', img: '', hint: _('Logout')}, {type: 'button', id: 'login', caption: 'Login', img: '', hint: _('Login')}, + {type: 'button', id: 'close', img: 'closetoolbar', hint: _('Close')}, ], onClick: function (e) { onClick(e, e.target); diff --git a/loleaflet/src/control/Signing.js b/loleaflet/src/control/Signing.js index 47c6dbfba..fcfcd970b 100644 --- a/loleaflet/src/control/Signing.js +++ b/loleaflet/src/control/Signing.js @@ -9,6 +9,8 @@ var library = null; var identity = null; var currentPassport = null; +var oldtoolbarSize = null; + function isSuccess(result) { return result.code == '200'; } @@ -227,8 +229,15 @@ function vereignRestoreIdentity() { L.Map.include({ showSignDocument: function() { this.initializeLibrary(); + oldtoolbarSize = $('#document-container').css('top'); - $('#document-container').css('top', '100px'); + $('#document-container').css('top', '110px'); + }, + hideSignDocument: function() { + library = null; + identity = null; + currentPassport = null; + $('#document-container').css('top', oldtoolbarSize); }, signingInitializeBar: function() { adjustUIState(); @@ -377,7 +386,10 @@ L.Map.include({ } }, handleSigningClickEvent: function(id, item) { - if (id === 'login') { + if (id === 'close') { + this.hideSignDocument(); + } + else if (id === 'login') { this.signingLogin(); } else if (id === 'logout') { commit 2861299c7723a259701800b8c80c398898f92d54 Author: Tomaž Vajngerl <[email protected]> AuthorDate: Thu Nov 29 22:16:41 2018 +0100 Commit: Tomaž Vajngerl <[email protected]> CommitDate: Thu Nov 29 22:46:07 2018 +0100 make vereign server configurable, dynamically show sign. infobar document_signing_url in loolwsd now accepts a vereign server URL endpoint. If not provided, the signing functionallity won't be available. The document signing infobar is now shown dynamically so by default it is not shown, but when the users clicks in menu the "sign document", the infobar is shown (the document-content is css "top" value is adjusted via JQuery). Change-Id: I9d5f6b68ba3612eeeb9de28c9c0333b4d1bf41d8 Reviewed-on: https://gerrit.libreoffice.org/64298 Reviewed-by: Tomaž Vajngerl <[email protected]> Tested-by: Tomaž Vajngerl <[email protected]> diff --git a/loleaflet/html/loleaflet.html.m4 b/loleaflet/html/loleaflet.html.m4 index a1b9defdb..3e46444f0 100644 --- a/loleaflet/html/loleaflet.html.m4 +++ b/loleaflet/html/loleaflet.html.m4 @@ -101,6 +101,9 @@ ifelse(MOBILEAPP,[true], </table> <!--%DOCUMENT_SIGNING_DIV%--> + <script> + window.documentSigningURL = '%DOCUMENT_SIGNING_URL%'; + </script> <input id="insertgraphic" type="file" style="position: fixed; top: -100em"> <input id="document-name-input" type="text" disabled="true"/> @@ -111,8 +114,7 @@ ifelse(MOBILEAPP,[true], <div id="spreadsheet-row-column-frame"></div> - ifelse(MOBILEAPP,[true],[<div id="document-container">],[<!--%DOCUMENT_CONTAINER%-->]) - + <div id="document-container"> <div id="map"></div> </div> <div id="spreadsheet-toolbar"></div> diff --git a/loleaflet/src/control/Signing.js b/loleaflet/src/control/Signing.js index dc1341de2..47c6dbfba 100644 --- a/loleaflet/src/control/Signing.js +++ b/loleaflet/src/control/Signing.js @@ -9,8 +9,6 @@ var library = null; var identity = null; var currentPassport = null; -var vereignURL = 'https://integration2.vereign.com'; - function isSuccess(result) { return result.code == '200'; } @@ -229,6 +227,8 @@ function vereignRestoreIdentity() { L.Map.include({ showSignDocument: function() { this.initializeLibrary(); + + $('#document-container').css('top', '100px'); }, signingInitializeBar: function() { adjustUIState(); @@ -255,6 +255,7 @@ L.Map.include({ var filename = 'fileId'; // need to read the filename library.getPassports(filename).then(function(result) { + var vereignURL = window.documentSigningURL == null ? '' : window.documentSigningURL; if (isSuccess(result)) { var resultArray = result.data; for (var i = 0; i < resultArray.length; i++) { @@ -338,6 +339,10 @@ L.Map.include({ }); }, initializeLibrary: function() { + var vereignURL = window.documentSigningURL == null ? '' : window.documentSigningURL; + if (vereignURL.length == 0) + return; + setupViamAPI( 'signdocument-iframe-content', { diff --git a/loolwsd.xml.in b/loolwsd.xml.in index 7ba63f0a0..0ce943bbd 100644 --- a/loolwsd.xml.in +++ b/loolwsd.xml.in @@ -17,7 +17,7 @@ <num_prespawn_children desc="Number of child processes to keep started in advance and waiting for new clients." type="uint" default="1">1</num_prespawn_children> <per_document desc="Document-specific settings, including LO Core settings."> <max_concurrency desc="The maximum number of threads to use while processing a document." type="uint" default="4">4</max_concurrency> - <document_signing desc="If true show the document signing menu item." type="bool" default="false">false</document_signing> + <document_signing_url desc="The endpoint URL of signing server, if empty the document signing is disabled" type="string" default=""></document_signing_url> <redlining_as_comments desc="If true show red-lines as comments" type="bool" default="true">true</redlining_as_comments> <idle_timeout_secs desc="The maximum number of seconds before unloading an idle document. Defaults to 1 hour." type="uint" default="3600">3600</idle_timeout_secs> <!-- Idle save and auto save are checked every 30 seconds --> @@ -28,7 +28,7 @@ <limit_stack_mem_kb desc="The maximum stack size allowed to each document process. 0 for unlimited." type="uint">8000</limit_stack_mem_kb> <limit_file_size_mb desc="The maximum file size allowed to each document process to write. 0 for unlimited." type="uint">0</limit_file_size_mb> <limit_num_open_files desc="The maximum number of files allowed to each document process to open. 0 for unlimited." type="uint">0</limit_num_open_files> - <limit_load_secs desc="Maximum number of seconds to wait for a document load to succeed. 0 for unlimited." type="uint" default="100">100</limit_load_secs> + <limit_load_secs desc="Maximum number of seconds to wait for a document load to succeed. 0 for unlimited." type="uint" default="100">100</limit_load_secs> </per_document> <per_view desc="View-specific settings."> diff --git a/wsd/FileServer.cpp b/wsd/FileServer.cpp index 318a9ff98..cd799929f 100644 --- a/wsd/FileServer.cpp +++ b/wsd/FileServer.cpp @@ -640,15 +640,13 @@ void FileServerRequestHandler::preprocessFile(const HTTPRequest& request, Poco:: // Customization related to document signing. std::string documentSigningDiv; - std::string documentContainerTop("<div id=\"document-container\">"); - const auto documentSigning = config.getBool("per_document.document_signing", false); - if (documentSigning) + const std::string documentSigningURL = config.getString("per_document.document_signing_url", ""); + if (!documentSigningURL.empty()) { documentSigningDiv = "<div id=\"document-signing-bar\"></div>"; - documentContainerTop = "<div id=\"document-container\" style=\"top: 100px;\">"; } Poco::replaceInPlace(preprocess, std::string("<!--%DOCUMENT_SIGNING_DIV%-->"), documentSigningDiv); - Poco::replaceInPlace(preprocess, std::string("<!--%DOCUMENT_CONTAINER%-->"), documentContainerTop); + Poco::replaceInPlace(preprocess, std::string("%DOCUMENT_SIGNING_URL%"), documentSigningURL); const auto loleafletLogging = config.getString("loleaflet_logging", "false"); Poco::replaceInPlace(preprocess, std::string("%LOLEAFLET_LOGGING%"), loleafletLogging); commit 2645829f407ea94bf13f76bdc2d40306ed351445 Author: Tomaž Vajngerl <[email protected]> AuthorDate: Thu Nov 29 22:10:47 2018 +0100 Commit: Tomaž Vajngerl <[email protected]> CommitDate: Thu Nov 29 22:46:00 2018 +0100 don't assert in this case, better to return Change-Id: I38cef1185bef0de67bbb579c5c64e2697f953b0b Reviewed-on: https://gerrit.libreoffice.org/64297 Reviewed-by: Tomaž Vajngerl <[email protected]> Tested-by: Tomaž Vajngerl <[email protected]> diff --git a/kit/ChildSession.cpp b/kit/ChildSession.cpp index e5c758789..114a89a96 100644 --- a/kit/ChildSession.cpp +++ b/kit/ChildSession.cpp @@ -1367,10 +1367,12 @@ bool ChildSession::signDocumentContent(const char* buffer, int length, const std Poco::JSON::Parser parser; Poco::JSON::Object::Ptr root = parser.parse(json).extract<Poco::JSON::Object::Ptr>(); - for (auto& chainPtr : *root->getArray("chain")) + for (auto& rChainPtr : *root->getArray("chain")) { - assert(chainPtr.isString()); - std::string chainCertificate = chainPtr; + if (!rChainPtr.isString()) + return false; + + std::string chainCertificate = rChainPtr; std::vector<unsigned char> binaryChainCertificate = decodeBase64(extractCertificate(chainCertificate)); bResult = getLOKitDocument()->addCertificate( _______________________________________________ Libreoffice-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
