summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* cypress: use selectFromColorPicker which doesn't rely on generated id'sbackport/5244/distro/collabora/co-21-11Szymon Kłos2022-09-152-9/+32
| | | | | | | prefer picker id, not palette id with number which is generated Signed-off-by: Szymon Kłos <szymon.klos@collabora.com> Change-Id: I52d30c3991b516378e82455fdc104b5d94e94f91
* wsd: Cache result of disk space check, tooAron Budea2022-09-131-4/+11
| | | | | | | | | | | ...when it's requested. Previously always an empty string was returned on subsequent calls, and the error message was only shown once. Signed-off-by: Aron Budea <aron.budea@collabora.com> Change-Id: I7645c7770e3e1712c8ef1b3ad145daec14530fb0 (cherry picked from commit 64b0355f648f72652b739ba27310a7d703419f4c)
* wsd: test: enable IsModifiedByUser assertionAshod Nakashian2022-09-091-5/+1
| | | | | | | | | Now that IsModifedByUser is reliably set, we can finally enable this assertion to catch regressions and verify its reliability. Change-Id: I1254be2319ed76f0b92dc045cad7e9c45bfafb7a Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
* wsd: test: modernize UnitWOPIAsyncUpload_ModifyCloseAshod Nakashian2022-09-091-27/+7
| | | | | | | And assert the User-Modified attribute. Change-Id: I44a4aaf9e978da8ff22992565ed0cbfd7e41dd30 Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
* wsd: move storage attributes to DocBrokerAshod Nakashian2022-09-094-86/+162
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are a number of races with having Storage track the attributes. To fix them, we move all attributes to DocBroker and correct a number of issues. The idea of the design is based on the fact that we want to capture the attributes between uploads, but based on the saved document. That is, when we upload a document version, we want to pass to the storage whether from the perspective of the *Storage* there has been any user-modifications or not. Since saving to disk may happen multiple times between uploads (not least because of failures), and since saving resets the modified flag, we need to capture the modified flag at each save and propagate it until we upload successfully. Upon uploading successfully, we reset the attributes. For this reason we have two attribute instances; one is the 'current' attributes as being uploaded and the other the 'next' one. We capture the current state at saving into 'next' and we merge with 'current' when saving succeeds and we aren't already uploading (otherwise, we update it and then discard it when uploading succeeds, losing the last attributes). Furthermore, because the modified flag is reset after each save, and because we might save and upload immediately after a modification, we may not have the modified flag. This means that we need some heuristics to decide if there has been user-issued modifications. (It is better to be conservative here.) We try to detect this by introspecting the commands we receive from users. In effect, we capture the attributes when issuing an internal save, we transfer the captured attributes only when saving succeeds and we aren't uploading, and from then on, uploading has to succeed to reset the 'current' attributes. In the meantime, if we fail to upload and issue another save, the new attributes will be captured and merged with the 'current' and the next upload will not have any lost attributes. Change-Id: I8c5e75d25ac235c6232318343678bf5c0933c31e Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
* wsd: state-dumping and commentsAshod Nakashian2022-09-092-11/+17
| | | | | Change-Id: I2522d1578faf28c40682f63dd487efde9c5a738d Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
* wsd: track modifying user commandsAshod Nakashian2022-09-094-0/+47
| | | | | | | | | | | | | | | | | | There is a race between the time of modifying a document, receiving the modified flag, and saving. This can happen when, for example, the user modifies the document and closes immediately. In that case, when uploading we will not have the modified flag and will not set the User-Modified attribute. While this isn't 100% accurate, and it can never be, it's still better to be conservative and flag a version in storage as user-modified than otherwise. Change-Id: Ia504a7cddd4839bcbfeaaf9bf6c90ed8b68efa91 Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
* wsd: mark last-upload as failed in early-failureAshod Nakashian2022-09-091-1/+1
| | | | | Change-Id: Ie0726141248c605409ea52ee83ee3b17df7b1b0e Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
* wsd: remove unused uploadLocalFileToStorageAshod Nakashian2022-09-092-37/+18
| | | | | | | | | | | Since we have moved to async uploading, this synchronous version is not used. This removes the interface from the base, merges the implementation for the local-file, and removed the error-returning one for wopi. Change-Id: Iad2ba053bbdcd1690083dc69f66c751e7926ef41 Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
* jsdialog: correctly setup & test value for spinfieldsbackport/5107/distro/collabora/co-21-11Szymon Kłos2022-09-019-57/+51
| | | | | | | | | | | | | Adding attribute by jQuery and testing in cypress was not working: visible value was correct after change but in DOM we had original value which was tested by Cypress. Use val() to setup value and have.value for cypress to test. Unify inputs so we don't use attributes but always props. Signed-off-by: Szymon Kłos <szymon.klos@collabora.com> Change-Id: I1b3acccbd6d4ba493f867044b9b3c1f17b16873e
* jsdialog: find real input on setText actionSzymon Kłos2022-09-011-1/+7
| | | | | | | - it is needed for mobile wizard spin fields Signed-off-by: Szymon Kłos <szymon.klos@collabora.com> Change-Id: I7464d7017e54425d3ffd022a45c39af51e05e21f
* feature locked dialog visual improvementsRash4192022-08-302-18/+27
| | | | | | | | | | fixed: - image overlapping with high res image - shows empty bullet when highlight text is empty - no space between bullet points and text Signed-off-by: Rash419 <rashesh.padia@collabora.com> Change-Id: I0e3bcd11d9132913d69f8a7c74d21cc0b4ab3305
* wsd: fix uninitialized DocumentBroker::_savingTimeoutMiklos Vajna2022-08-261-1/+1
| | | | | | | (cherry picked from commit c9cb1f4e01142c4b0eb7bdf48468ff500c6bbda3) Signed-off-by: Miklos Vajna <vmiklos@collabora.com> Change-Id: Id004b635cfd8e77de85f932a3035870300ba1c47
* wsd: log unmount errors only when mounting is enabledAshod Nakashian2022-08-181-1/+11
| | | | | | | | | | | When bind-mounting is disabled, we do a best-effort to unmount any lingering mount-points. This is a cleanup that helps with leftovers. Here, we do a debug log level in case the unmounting fails, and error, otherwise, when bind-mounting is enabled. Change-Id: I199d6234aebfd84e6be812e5b7d3758273086815 Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
* Fix UI Selection bugcp-21.11.6-1ChrisGlad2022-08-081-0/+5
| | | | | | | | | | Signed-off-by: ChrisGlad <chris.gladman2004@gmail.com> This code fixes the problem that elements in the Notebookbar will not be correctly displayed as "selected" after changing the UI mode. Change-Id: I4f889f8593029c375a06e17dbf1062bb9b9f5efc
* Writer: sidebar (table) fix row height spinner's positionPedro Pinto da Silva2022-08-081-0/+4
| | | | | | | | | | | | Since the row height spinner is the 1st element in the row, there is no need for margin. Note: in the future wuld be good to have the spinner coming from the builder with additional class or style when they are the first element being positioned Signed-off-by: Pedro Pinto da Silva <pedro.silva@collabora.com> Change-Id: I2396ab662fcb4a12762b4a6e2b38582f1df7c59b
* Writer: Fix sidebar table btns position shiftPedro Pinto da Silva2022-08-081-5/+0
| | | | | | | | | | | | | | Remove unnecessary rules targetting minimalrowheight and minimalcolumnwidth. These rules were 1. Not being apply always (sometimes jsbuilder was setting them with different id, e.g.: with suffix 1) 2. Even when apply this rules were forcing these two btns to go up, looking like they are mere icon for the spinner. This is wrong. They are buttons that trigger the set to the minimal sizes of that particular row or columns Signed-off-by: Pedro Pinto da Silva <pedro.silva@collabora.com> Change-Id: I53e81c69cdcc3aafd2ca5ab0f8e196d912b86608
* Writer: remove sidebarbar spinner padding for table row & colPedro Pinto da Silva2022-08-081-4/+0
| | | | | | | | Before this change the spinner were getting unnecessary additional padding. Signed-off-by: Pedro Pinto da Silva <pedro.silva@collabora.com> Change-Id: I43b8bffc8bacc13dfc633cee4cd8f7823834d402
* Avatar List: Remove extra margin rule for user-infoPedro Pinto Silva2022-08-081-1/+0
| | | | | | | | Fix misalignment for When no integrator is available or when there is no particular integration bits around avatar list. Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com> Change-Id: Ia80d27e79b91dd1e4e7ff3ee8129f8e6d6168285
* Fix position of avatar listPedro Pinto Silva2022-08-081-7/+1
| | | | | | | | | | Instead of trying to re-position #userListPopover for every case (compact view, tabbed view and rtl), use flex to align the elements - This also fixes the positioning discrepancy of both the popover but also the arrow (triangle) Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com> Change-Id: I32ed3e05efc51001db106f5baaf18012e87965fe
* Make view menu entries behave similar across typesPedro Pinto Silva2022-08-081-46/+57
| | | | | | | | | | | | | | | | - Follow the same order, for generic menu entries: - Toggle UI Mode; Show Ruler; Show Status Bar; Sidebar - Make sure Reset Zoom and all UI toggles are present in all apps (doc type) when using tablet Note: This commit does not change the following because I do agree with remarks stated in 70f4f8b92e44d361c78dd323e147d23abba8b308 - Zoom in and Zoom out entries are not needed in tablet - Zoom also misbehaves, so better to have it out when on a tablet Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com> Change-Id: I06f1c025dba27ae65229c38406d646da75a59aa6
* Remove unnecessary separator from view menu entries (type: text)Pedro Pinto Silva2022-08-081-1/+0
| | | | | | | | No need to have one item (Resolved Annotations toggle) surrounded by separators. Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com> Change-Id: Ie5e560122054fc5904e3b24f984aa682c758d373
* Add UI toggles to view menu (compact view) on tablets (type: text)Pedro Pinto Silva2022-08-081-2/+4
| | | | | | | | | | | Building upon 70f4f8b92e44d361c78dd323e147d23abba8b308 , it makes sense but let's add back in the Reset zoom and let's make sure all the other UI toggles are available when using tablet ( otherwise user is not able to toggle UI mode, ruler or status bar). Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com> Change-Id: I972a3f6f17306484a266dc3cfa2103540ca4761d
* wsd: http: do not assert on net::connect returning nullptrAshod Nakashian2022-08-051-0/+3
| | | | | | | Apparently this is an issue for proxy.php. Change-Id: I18090f17f22fe3145e7fa2364992a34a7e722f1b Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
* wsd: saving timeout set to 4x loading-timeAshod Nakashian2022-08-052-3/+8
| | | | | | | And dump the saving timeout in the state dump. Change-Id: If203d5434ee17f646009ee241b8484ca597840ad Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
* wsd: privatize internal JailUtil helpersAshod Nakashian2022-08-052-5/+3
| | | | | Change-Id: I86c87f162fd174d888cb167d7d89ccd0d13cadeb Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
* Bump package version to 21.11.6.1Andras Timar2022-08-053-3/+9
| | | | | Signed-off-by: Andras Timar <andras.timar@collabora.com> Change-Id: Ie1f3f98d5ed62053fe2264ec513025e2f33c4f94
* Impress add context: MasterPageandreas kainz2022-08-057-3/+46
| | | | | | | | | | Fix #4808 by add SlideMasterPage to impress view tab and add a context related MasterPage tab. Update the icons to use the master*.svg colibre icons from core Signed-off-by: andreas kainz <kainz.a@gmail.com> Change-Id: Ibbd24d1c20a48e26591d217311c5989794aa841e
* Calc: address bar, remove w2ui breakPedro Pinto Silva2022-08-052-3/+3
| | | | | | | | | unclutter formula bar surrouding elements by removing the visual break and instead add padding. This is a partly cherry-pick from 8f0f1c700 Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com> Change-Id: I4a9990a5709918d7cacfac2ef41b91281f9af54a
* wsd: timeout on saving stuck with testbackport/4934/distro/collabora/co-21-11Ashod Nakashian2022-08-054-3/+175
| | | | | | Change-Id: I66769e4e5131f60b41327ada9a6f0a45b2ee11ac Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk> (cherry picked from commit 697607d12276f7d56b2fbd497a169b69735d2190)
* wsd: test: support filtering Kit messagesAshod Nakashian2022-08-052-0/+15
| | | | | | Change-Id: Ic747f805689ad9d639857f0ea8af1529433b5f11 Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk> (cherry picked from commit 71ce1a4f5475327fca2b4297695fdc0393afaccd)
* wsd: Message supports new find and contains operationsAshod Nakashian2022-08-052-0/+33
| | | | | | Change-Id: Id5112dda76fe2aaa27392d59f9b8ecfa3cfabe54 Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk> (cherry picked from commit bb1978770a79453542cca112f9af55c0279b9c9e)
* wsd: test: cleanup and cosmeticsAshod Nakashian2022-08-052-4/+4
| | | | | | Change-Id: I5c72922b1090c920710d3208ab42044b859336c0 Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk> (cherry picked from commit 0f173cfa8cc857bfd2f9255895df8e36afe5150f)
* wsd: test: filterSendMessage -> filterSendWebSocketMessageAshod Nakashian2022-08-058-20/+25
| | | | | | Change-Id: I0254c05e12cde676de8fde99e16f7eface09dceb Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk> (cherry picked from commit ae71f8be823a8b4f5f2c7222a3bf32412915202e)
* wsd: test: handle save notifications in testsAshod Nakashian2022-08-052-28/+70
| | | | | | Change-Id: Ic6b0abcd2ad2f2a895ff81acaf875147d9990c8b Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk> (cherry picked from commit ecda47edd9e48d6b870e513e46bf025ac4958bc9)
* fix selecting redline comment jumps to scroll to beginningMert Tumer2022-08-042-11/+35
| | | | | | | | | | | | | redline comments dont have position properties set and some calculation needed in order to have it and scrolling to comment relies on position property. We have now instead getter for it and if it is a redline comment it is calculated otherwise the default one is returned because it is already set. Signed-off-by: Mert Tumer <mert.tumer@collabora.com> Change-Id: I6a3cefdd1c881783832de3de8fc1df7c849aad09
* add .xlsm mimetype to androidMert Tumer2022-08-043-0/+3
| | | | | Signed-off-by: Mert Tumer <mert.tumer@collabora.com> Change-Id: I7b28870e3b1d3c4941e516871c2077e1d0695d09
* Add home mode option - enabling more configurability for CODE.Henry Castro2022-08-037-15/+53
| | | | | | | | | | | Requested by several users and partners - defaults to off/un-changed. When set it allows optional disabling of welcome/feedback when used in a homely environment. Also bump default max doc/conneciton limits in configure to 10k. Change-Id: I3c917901e02445d45f6f86b554d47a60aa4e575d Signed-off-by: Henry Castro <hcastro@collabora.com>
* ENABLE_WELCOME_MESSAGE should now be 0 for iOS, not "false"Tor Lillqvist2022-08-031-1/+1
| | | | | Signed-off-by: Tor Lillqvist <tml@collabora.com> Change-Id: I3d8e38aac0ed7bd783cc0d8c79b2d4d08fa478a1
* browser: ensure if welcome was disabledHenry Castro2022-08-031-2/+1
| | | | | Change-Id: I22a90c0dd8e80870699aef12b800c85508b17920 Signed-off-by: Henry Castro <hcastro@collabora.com>
* wsd: remove unused welcome codeHenry Castro2022-08-031-7/+0
| | | | | | | clean up unused code Change-Id: I2080942bed0403d3767f282c36c554e7b8bf03ca Signed-off-by: Henry Castro <hcastro@collabora.com>
* browser: add 'dropdown' dialog typeHenry Castro2022-08-031-4/+9
| | | | | | | | Adjust the drop-down dialog to the #map element to show the correct position sent by the server. Change-Id: I74a6d7402438241aae77a18699c3297d64b34098 Signed-off-by: Henry Castro <hcastro@collabora.com>
* android: fix closing the document on interactive dialogsMert Tumer2022-07-301-0/+2
| | | | | | | | | | | | | | | | We get stuck on exitting the app progressbar on mobile with the interactive dialogs such as csv import or macro security dialog, we have a different use case for killing the document as in the normal case. We are not running a separate process but a thread and we dont trigger regular killing use case. This piece is not relevant for android because we always have one connection through fakesocket until the main thread is killed and it is waiting on the mutex to finish before we finally exit the document activity. Signed-off-by: Mert Tumer <mert.tumer@collabora.com> Change-Id: I99bd333152d40a04f95d4747705a721112317bb2
* Fix images' alignment within pushbutton control, add flex classesPedro Pinto Silva2022-07-292-0/+28
| | | | | | | | | | | | | | | | | | Bug - pushbuttons with images get misaligned. Namely the inner image that it's position well. Visible in some places within the sidebar impress, calc: https://archive.org/download/bug-pushbutton-with-img-alignments/bug-pushbutton-with-img-alignments.png Fix - Pushbuttons with images are now classified with .has-img and inherit the respective global flexbox CSS classes. - Add global flex box CSS classes so we can avoid code duplication - Also make sure other pushbuttons with image don't butchered with this change (e.g. calc > pivot table dialog) Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com> Change-Id: Ie37680eb02c15417c505402074bbe01d302910cb
* Revert "Add color-scheme-dark.css support"Pedro Pinto Silva2022-07-292-53/+0
| | | | | | | | | | This reverts commit 08b1d4b1e78fc2560d554b5935452ebb2d025214. Better to avoid backporting WIP dark mode at least until issue number #5054 is fixed Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com> Change-Id: Id4fe8582fdebe9ad078ef5eaa7ba6be655cfb941
* calc: scroll when we reached end of view on AutoFillSzymon Kłos2022-07-281-0/+26
| | | | | | | | | - allow to use auto scrolling feature by event propagation - it required to create new modified event which will contain coordinates of the autofill marker Signed-off-by: Szymon Kłos <szymon.klos@collabora.com> Change-Id: Ic7fe236833f5e1747d0d72e9560d3c9ecdccde51
* wsd: correctly stop DocBroker from interactive modeAshod Nakashian2022-07-271-0/+9
| | | | | | | | | | | | | | | | | | When in interactive mode, the user has a dialog to interact with. The issue is that the user may dismiss said dialog, the Kit process may stop, crash, or otherwise exit. This basically leaves DocBroker in a deadlocked state, expecting input from the interactive document, which will never materialize. Here, we rely on the machinery already in place for flagging such a DocBroker that has no Kit. We check for said flag and stop DocBroker if such a case is detected, exiting clearly. Change-Id: Iecb91c49226da08567cdd2c5d050d458e2f0fc9b Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
* wsd: invoke handlePoll on all socketsAshod Nakashian2022-07-211-4/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before ed5569da30a3f1d4cd29562c7d14eecd0ce512a8 we invoked handlePoll on all sockets in each poll. But that's not true anymore. Since i = _pollStartIndex; (line 432), when we assigned previ = i; (line 451) we made previ == _pollStartIndex, which immediately broke the loop while (previ != _pollStartIndex) at line 438, causing handlePoll to be called on one socket at a time (and likely *not* the socket that had an event). It's inefficient to poll and ignore the result. Now we do handle revents on multiple sockets correctly and efficiently for each ppoll() by going through all sockets and handling based on whatever revents gave us. We need to invoke the handler of each socket to handle timeouts (i.e. if we don't call the handler until the socket gets an revent, we wouldn't be able to support timeouts properly). Notice that we still start at a different socket each time (although it's not entirely clear what advantage that has, it's maintained all the same) as the aforementioned patch does. Change-Id: I9c0a482792aee7df5d44f4b63f173e574db36f97 Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
* wsd: new config entry to add unlock_link for feature lock dialog per alias_groupRash4192022-07-217-6/+50
| | | | | | | - also added unlock_link option in dynamic configuration Signed-off-by: Rash419 <rashesh.padia@collabora.com> Change-Id: I075a4aed4f82059714412def965a8ed4d3581b2f
* introduce new options to customize featurelock dialogRash4192022-07-2113-36/+269
| | | | | | | | | | - adds two new options 1. localize the dialog 2. change upsell image shown in dialog using proxy handler - provides all the settings using dynamic configuration Signed-off-by: Rash419 <rashesh.padia@collabora.com> Change-Id: I7e21c1b31c806c88bf54f891de40f02fa342168f